1
This commit is contained in:
parent
94f4386b96
commit
d0e6c6478d
@ -380,6 +380,7 @@ void Creature::RecalcBuffAttr()
|
||||
{
|
||||
CheckAbilityUsed();
|
||||
ability_->Clear();
|
||||
bool need_refresh_hp = false;
|
||||
for (auto& buff : buff_list_) {
|
||||
if (buff.meta->i->buff_effect() == kBET_ChgAttr ||
|
||||
buff.meta->i->buff_effect() == kBET_Car ||
|
||||
@ -399,8 +400,16 @@ void Creature::RecalcBuffAttr()
|
||||
}
|
||||
}
|
||||
}
|
||||
if (buff.add_frameno == room->GetFrameNo() ||
|
||||
attr_type == kHAT_MaxHp) {
|
||||
need_refresh_hp = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (need_refresh_hp) {
|
||||
SetHP(GetMaxHP());
|
||||
GetTrigger()->HpChg();
|
||||
}
|
||||
}
|
||||
|
||||
void Creature::OnBuffRemove(Buff& buff)
|
||||
@ -1920,7 +1929,8 @@ float Creature::GetHP()
|
||||
|
||||
float Creature::GetMaxHP()
|
||||
{
|
||||
return ability.max_hp;
|
||||
return ability.max_hp * (1 + GetAbility()->GetAttrRate(kHAT_MaxHp)) +
|
||||
GetAbility()->GetAttrAbs(kHAT_MaxHp);
|
||||
}
|
||||
|
||||
float Creature::GetDef()
|
||||
@ -2191,3 +2201,8 @@ void Creature::CheckAbilityUsed()
|
||||
*ability_.get() = *(old_val.get());
|
||||
}
|
||||
}
|
||||
|
||||
void Creature::RefreshHP()
|
||||
{
|
||||
|
||||
}
|
||||
|
@ -203,6 +203,7 @@ class Creature : public MoveableEntity
|
||||
bool CheckCollision();
|
||||
Trigger* GetTrigger() { return trigger_; };
|
||||
std::shared_ptr<Ability>& GetAbility() { return ability_; };
|
||||
void RefreshHP();
|
||||
|
||||
protected:
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user