This commit is contained in:
aozhiwei 2024-01-05 17:38:12 +08:00
parent ade8d12bc1
commit c604e4c6e1

View File

@ -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)