1
This commit is contained in:
parent
ade8d12bc1
commit
c604e4c6e1
@ -127,128 +127,143 @@ public:
|
||||
#endif
|
||||
}
|
||||
|
||||
void RecalcHp()
|
||||
{
|
||||
float pHealRateAm = 0.0f; //加基础点数属性绝对值
|
||||
float pHealthAm_Add = 0.0f; //buff或者养成的属性
|
||||
pHealRateAm += pHealthAm_Add;
|
||||
|
||||
float pHealthRateSe = 0.0f;
|
||||
float pHealthRateSe_Add = 0.0f; //buff或者养成的属性
|
||||
pHealthRateSe += pHealthRateSe_Add;
|
||||
|
||||
float pHealthRateIn = 0.0f;
|
||||
float pHealthRateIn_Add = 0.0f; //buff或者养成的属性
|
||||
pHealthRateIn = (1 + pHealthRateIn) * (1 + pHealthRateIn_Add) - 1;
|
||||
|
||||
float pHealth = (hero_meta->GetBasicMeta()->pOrigHealth() + pHealRateAm) * (1 + pHealthRateSe) * (1 + pHealthRateIn);
|
||||
|
||||
float vHealthAm = 0.0f;
|
||||
float vHealthAm_Add = 0.0f; //buff或者养成的属性
|
||||
vHealthAm += vHealthAm_Add;
|
||||
|
||||
float vHealthRateSe = 0.0f;
|
||||
float vHealthRateSe_Add = 0.0f; //buff或者养成的属性
|
||||
vHealthRateSe += vHealthRateSe_Add;
|
||||
|
||||
float vHealthRateIn = 0.0f;
|
||||
float vHealthRateIn_Add = 0.0f; //buff或者养成的属性
|
||||
vHealthRateIn = (1 + vHealthRateIn) * (1 + vHealthRateIn_Add) - 1;
|
||||
|
||||
hp_ = (hero_meta->GetBasicMeta()->vOrigHealth() * (1 + pHealth / hero_meta->GetBasicMeta()->pBaseHealth() + vHealthAm)) *
|
||||
(1 + vHealthRateSe) * (1 + vHealthRateIn);
|
||||
}
|
||||
|
||||
void RecalcAttack()
|
||||
{
|
||||
float pAttackAm = 0.0f;
|
||||
float pAttackAm_Add = 0.0f;
|
||||
pAttackAm += pAttackAm_Add;
|
||||
|
||||
float pAttackRateSe = 0.0f;
|
||||
float pAttackRateSe_Add = 0.0f;
|
||||
pAttackRateSe += pAttackRateSe_Add;
|
||||
|
||||
float pAttackRateIn = 0.0f;
|
||||
float pAttackRateIn_Add = 0.0f;
|
||||
pAttackRateIn = (1 + pAttackRateIn) * ( 1 + pAttackRateIn_Add) - 1;
|
||||
|
||||
float vAttackAm = 0.0f;
|
||||
float vAttackAm_Add = 0.0f;
|
||||
vAttackAm += vAttackAm_Add;
|
||||
|
||||
float vAttackRateSe = 0.0f;
|
||||
float vAttackRateSe_Add = 0.0f;
|
||||
vAttackRateSe += vAttackRateSe_Add;
|
||||
|
||||
float vAttackRateIn = 0.0f;
|
||||
float vAttackRateIn_Add = 0.0f;
|
||||
vAttackRateIn = (1 + vAttackRateIn) * (1 + vAttackRateIn_Add) - 1;
|
||||
|
||||
float pAttack = 0.0f;
|
||||
pAttack = (hero_meta->GetBasicMeta()->vOrigAttack() + pAttackAm) * (1 + pAttackRateSe) * (1 + pAttackRateIn);
|
||||
|
||||
atk_ = (hero_meta->GetBasicMeta()->vOrigAttack() * (1 + pAttack / hero_meta->GetBasicMeta()->pBaseAttack()) + vAttackAm) *
|
||||
(1 + vAttackRateSe) * (1 + vAttackRateIn);
|
||||
}
|
||||
|
||||
void RecalcDef()
|
||||
{
|
||||
float pDefendAm = 0.0f;
|
||||
float pDefendAm_Add = 0.0f;
|
||||
pDefendAm += pDefendAm_Add;
|
||||
|
||||
float pDefendRateSe = 0.0f;
|
||||
float pDefendRateSe_Add = 0.0f;
|
||||
pDefendRateSe += pDefendRateSe_Add;
|
||||
|
||||
float pDefendRateIn = 0.0f;
|
||||
float pDefendRateIn_Add = 0.0f;
|
||||
pDefendRateIn = (1 + pDefendRateIn) * (1 + pDefendRateIn_Add) - 1;
|
||||
|
||||
def_ = (hero_meta->GetBasicMeta()->vOrigDefend() + pDefendAm) *
|
||||
(1 + pDefendRateSe) * (1 + pDefendRateIn);
|
||||
}
|
||||
|
||||
void RecalcBlock()
|
||||
{
|
||||
float pBlockAm = 0.0f;
|
||||
float pBlockAm_Add = 0.0f;
|
||||
pBlockAm += pBlockAm_Add;
|
||||
|
||||
float pBlockRateSe = 0.0f;
|
||||
float pBlockRateSe_Add = 0.0f;
|
||||
pBlockRateSe += pBlockRateSe_Add;
|
||||
|
||||
float pBlockRateIn = 0.0f;
|
||||
float pBlockRateIn_Add = 0.0f;
|
||||
pBlockRateIn = (1 + pBlockRateIn) * (1 + pBlockRateIn_Add) - 1;
|
||||
|
||||
float pBlock = 0.0f;
|
||||
pBlock = (hero_meta->GetBasicMeta()->pOrigBlock() +pBlockAm) * (1 + pBlockRateSe) * (1 + pBlockRateIn);
|
||||
|
||||
|
||||
float vBlock = 1 - (1 - hero_meta->GetBasicMeta()->vOrigBlock()) / (1 + pBlock / hero_meta->GetBasicMeta()->pBaseBlock());
|
||||
|
||||
block_ = vBlock;
|
||||
}
|
||||
|
||||
void RecalcCrit()
|
||||
{
|
||||
float pCritAm = 0.0f;
|
||||
float pCritAm_Add = 0.0f;
|
||||
pCritAm += pCritAm_Add;
|
||||
|
||||
float pCritRateSe = 0.0f;
|
||||
float pCritRateSe_Add = 0.0f;
|
||||
pCritRateSe += pCritRateSe_Add;
|
||||
|
||||
float pCritRateIn = 0.0f;
|
||||
float pCritRateIn_Add = 0.0f;
|
||||
pCritRateIn = (1 + pCritRateIn) * (1 + pCritRateIn_Add) - 1;
|
||||
|
||||
float pCrit = 0.0f;
|
||||
pCrit = (hero_meta->GetBasicMeta()->pOrigCrit() + pCritAm) * (1 + pCritRateSe) * (1 + pCritRateIn);
|
||||
|
||||
float vCrit = 0.0f;
|
||||
vCrit = (1 + hero_meta->GetBasicMeta()->vOrigCrit()) * (1 + pCrit / hero_meta->GetBasicMeta()->pBaseCrit()) - 1;
|
||||
crit_ = vCrit;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void DefaultInit(Creature* c)
|
||||
{
|
||||
{
|
||||
float pHealRateAm = 0.0f; //加基础点数属性绝对值
|
||||
float pHealthAm_Add = 0.0f; //buff或者养成的属性
|
||||
pHealRateAm += pHealthAm_Add;
|
||||
|
||||
float pHealthRateSe = 0.0f;
|
||||
float pHealthRateSe_Add = 0.0f; //buff或者养成的属性
|
||||
pHealthRateSe += pHealthRateSe_Add;
|
||||
|
||||
float pHealthRateIn = 0.0f;
|
||||
float pHealthRateIn_Add = 0.0f; //buff或者养成的属性
|
||||
pHealthRateIn = (1 + pHealthRateIn) * (1 + pHealthRateIn_Add) - 1;
|
||||
|
||||
float pHealth = (hero_meta->GetBasicMeta()->pOrigHealth() + pHealRateAm) * (1 + pHealthRateSe) * (1 + pHealthRateIn);
|
||||
|
||||
float vHealthAm = 0.0f;
|
||||
float vHealthAm_Add = 0.0f; //buff或者养成的属性
|
||||
vHealthAm += vHealthAm_Add;
|
||||
|
||||
float vHealthRateSe = 0.0f;
|
||||
float vHealthRateSe_Add = 0.0f; //buff或者养成的属性
|
||||
vHealthRateSe += vHealthRateSe_Add;
|
||||
|
||||
float vHealthRateIn = 0.0f;
|
||||
float vHealthRateIn_Add = 0.0f; //buff或者养成的属性
|
||||
vHealthRateIn = (1 + vHealthRateIn) * (1 + vHealthRateIn_Add) - 1;
|
||||
|
||||
hp_ = (hero_meta->GetBasicMeta()->vOrigHealth() * (1 + pHealth / hero_meta->GetBasicMeta()->pBaseHealth() + vHealthAm)) *
|
||||
(1 + vHealthRateSe) * (1 + vHealthRateIn);
|
||||
}
|
||||
{
|
||||
float pAttackAm = 0.0f;
|
||||
float pAttackAm_Add = 0.0f;
|
||||
pAttackAm += pAttackAm_Add;
|
||||
|
||||
float pAttackRateSe = 0.0f;
|
||||
float pAttackRateSe_Add = 0.0f;
|
||||
pAttackRateSe += pAttackRateSe_Add;
|
||||
|
||||
float pAttackRateIn = 0.0f;
|
||||
float pAttackRateIn_Add = 0.0f;
|
||||
pAttackRateIn = (1 + pAttackRateIn) * ( 1 + pAttackRateIn_Add) - 1;
|
||||
|
||||
float vAttackAm = 0.0f;
|
||||
float vAttackAm_Add = 0.0f;
|
||||
vAttackAm += vAttackAm_Add;
|
||||
|
||||
float vAttackRateSe = 0.0f;
|
||||
float vAttackRateSe_Add = 0.0f;
|
||||
vAttackRateSe += vAttackRateSe_Add;
|
||||
|
||||
float vAttackRateIn = 0.0f;
|
||||
float vAttackRateIn_Add = 0.0f;
|
||||
vAttackRateIn = (1 + vAttackRateIn) * (1 + vAttackRateIn_Add) - 1;
|
||||
|
||||
float pAttack = 0.0f;
|
||||
pAttack = (hero_meta->GetBasicMeta()->vOrigAttack() + pAttackAm) * (1 + pAttackRateSe) * (1 + pAttackRateIn);
|
||||
|
||||
atk_ = (hero_meta->GetBasicMeta()->vOrigAttack() * (1 + pAttack / hero_meta->GetBasicMeta()->pBaseAttack()) + vAttackAm) *
|
||||
(1 + vAttackRateSe) * (1 + vAttackRateIn);
|
||||
}
|
||||
{
|
||||
float pDefendAm = 0.0f;
|
||||
float pDefendAm_Add = 0.0f;
|
||||
pDefendAm += pDefendAm_Add;
|
||||
|
||||
float pDefendRateSe = 0.0f;
|
||||
float pDefendRateSe_Add = 0.0f;
|
||||
pDefendRateSe += pDefendRateSe_Add;
|
||||
|
||||
float pDefendRateIn = 0.0f;
|
||||
float pDefendRateIn_Add = 0.0f;
|
||||
pDefendRateIn = (1 + pDefendRateIn) * (1 + pDefendRateIn_Add) - 1;
|
||||
|
||||
def_ = (hero_meta->GetBasicMeta()->vOrigDefend() + pDefendAm) *
|
||||
(1 + pDefendRateSe) * (1 + pDefendRateIn);
|
||||
}
|
||||
{
|
||||
float pBlockAm = 0.0f;
|
||||
float pBlockAm_Add = 0.0f;
|
||||
pBlockAm += pBlockAm_Add;
|
||||
|
||||
float pBlockRateSe = 0.0f;
|
||||
float pBlockRateSe_Add = 0.0f;
|
||||
pBlockRateSe += pBlockRateSe_Add;
|
||||
|
||||
float pBlockRateIn = 0.0f;
|
||||
float pBlockRateIn_Add = 0.0f;
|
||||
pBlockRateIn = (1 + pBlockRateIn) * (1 + pBlockRateIn_Add) - 1;
|
||||
|
||||
float pBlock = 0.0f;
|
||||
pBlock = (hero_meta->GetBasicMeta()->pOrigBlock() +pBlockAm) * (1 + pBlockRateSe) * (1 + pBlockRateIn);
|
||||
|
||||
|
||||
float vBlock = 1 - (1 - hero_meta->GetBasicMeta()->vOrigBlock()) / (1 + pBlock / hero_meta->GetBasicMeta()->pBaseBlock());
|
||||
|
||||
block_ = vBlock;
|
||||
}
|
||||
{
|
||||
float pCritAm = 0.0f;
|
||||
float pCritAm_Add = 0.0f;
|
||||
pCritAm += pCritAm_Add;
|
||||
|
||||
float pCritRateSe = 0.0f;
|
||||
float pCritRateSe_Add = 0.0f;
|
||||
pCritRateSe += pCritRateSe_Add;
|
||||
|
||||
float pCritRateIn = 0.0f;
|
||||
float pCritRateIn_Add = 0.0f;
|
||||
pCritRateIn = (1 + pCritRateIn) * (1 + pCritRateIn_Add) - 1;
|
||||
|
||||
float pCrit = 0.0f;
|
||||
pCrit = (hero_meta->GetBasicMeta()->pOrigCrit() + pCritAm) * (1 + pCritRateSe) * (1 + pCritRateIn);
|
||||
|
||||
float vCrit = 0.0f;
|
||||
vCrit = (1 + hero_meta->GetBasicMeta()->vOrigCrit()) * (1 + pCrit / hero_meta->GetBasicMeta()->pBaseCrit()) - 1;
|
||||
crit_ = vCrit;
|
||||
}
|
||||
RecalcHp();
|
||||
RecalcAttack();
|
||||
RecalcDef();
|
||||
RecalcBlock();
|
||||
RecalcCrit();
|
||||
}
|
||||
|
||||
void DtoInit(Creature* c)
|
||||
|
Loading…
x
Reference in New Issue
Block a user