diff --git a/server/gameserver/ability.cc b/server/gameserver/ability.cc index 89e551c5..85be6b03 100644 --- a/server/gameserver/ability.cc +++ b/server/gameserver/ability.cc @@ -100,27 +100,27 @@ struct AttrRuduce Ability::Ability(CreatureWeakPtr owner) { for (auto& tuple : attr_abs_) { - std::get<0>(tuple) = .0f; + std::get<0>(tuple) = 0.0f; INIT_LIST_HEAD(&std::get<1>(tuple)); } for (auto& tuple : attr_rate_) { - std::get<0>(tuple) = .0f; + std::get<0>(tuple) = 0.0f; INIT_LIST_HEAD(&std::get<1>(tuple)); } for (auto& tuple : attr_add_) { - std::get<0>(tuple) = .0f; + std::get<0>(tuple) = 0.0f; INIT_LIST_HEAD(&std::get<1>(tuple)); } for (auto& tuple : attr_dec_) { - std::get<0>(tuple) = .0f; + std::get<0>(tuple) = 0.0f; INIT_LIST_HEAD(&std::get<1>(tuple)); } for (auto& tuple : vattr_add_) { - std::get<0>(tuple) = .0f; + std::get<0>(tuple) = 0.0f; INIT_LIST_HEAD(&std::get<1>(tuple)); } for (auto& tuple : vattr_dec_) { - std::get<0>(tuple) = .0f; + std::get<0>(tuple) = 0.0f; INIT_LIST_HEAD(&std::get<1>(tuple)); } } @@ -199,62 +199,6 @@ void Ability::Clear() } -void Ability::AddDefAddition(float rate) -{ - def_addition_rate_ += rate; - ++def_addition_times_; -} - -void Ability::DelDefAddition(float rate) -{ - def_addition_rate_ -= rate; - def_addition_rate_ = std::max(0.0f, def_addition_rate_); - --def_addition_times_; -#ifdef DEBUG - if (def_addition_times_ < 0) { - abort(); - } -#endif -} - -float Ability::GetDefAddition() -{ - return def_addition_rate_; -} - -int Ability::GetDefAdditionTimes() -{ - return def_addition_times_; -} - -void Ability::AddAtkAddition(float rate) -{ - atk_addition_rate_ += rate; - ++atk_addition_times_; -} - -void Ability::DelAtkAddition(float rate) -{ - atk_addition_rate_ -= rate; - atk_addition_rate_ = std::max(0.0f, atk_addition_rate_); - --atk_addition_times_; -#ifdef DEBUG - if (atk_addition_times_ < 0) { - abort(); - } -#endif -} - -float Ability::GetAtkAddition() -{ - return atk_addition_rate_; -} - -int Ability::GetAtkAdditionTimes() -{ - return atk_addition_times_; -} - void Ability::IncImmuneTimes(int tag) { auto itr = immune_tags_.find(tag); diff --git a/server/gameserver/ability.h b/server/gameserver/ability.h index 1b18d87c..8e40cb7c 100644 --- a/server/gameserver/ability.h +++ b/server/gameserver/ability.h @@ -5,36 +5,21 @@ typedef std::weak_ptr AttrAdditionHandle; typedef std::weak_ptr AttrRuduceHandle; - typedef std::weak_ptr AttrAbsHandle; typedef std::weak_ptr AttrRateHandle; -class Room; -class Human; class Ability { public: Ability(CreatureWeakPtr owner); - void AddDefAddition(float rate); - void DelDefAddition(float rate); - float GetDefAddition(); - int GetDefAdditionTimes(); - - void AddAtkAddition(float rate); - void DelAtkAddition(float rate); - float GetAtkAddition(); - int GetAtkAdditionTimes(); - void IncImmuneTimes(int tag); void DecImmuneTimes(int tag); bool CanImmune(int tag); bool CanImmune(const std::set& tags); - void IncDisableShotTimes(); void DecDisableShotTimes(); int GetDisableShotTimes(); - void IncDisableUseSkillTimes(); void DecDisableUseSkillTimes(); int GetDisableUseSkillTimes(); @@ -43,8 +28,6 @@ class Ability void RemoveAttrAbs(AttrAbsHandle handle); AttrRateHandle AddAttrRate(int attr_id, float value); void RemoveAttrRate(AttrRateHandle handle); - void RecalcAttrAbs(int attr_id); - void RecalcAttrRate(int attr_id); float GetAttrAbs(int attr_id); float GetAttrRate(int attr_id); @@ -52,33 +35,25 @@ class Ability void RemoveAttrAddition(AttrAdditionHandle handler); AttrRuduceHandle AddAttrRuduce(int attr_id, float rate); void RemoveAttrRuduce(AttrRuduceHandle handler); - void RecalcAttrAddition(int attr_id); - void RecalcAttrRuduce(int attr_id); float GetAttrAddition(int attr_id); float GetAttrRuduce(int attr_id); - private: void Clear(); - + void RecalcAttrAbs(int attr_id); + void RecalcAttrRate(int attr_id); + void RecalcAttrAddition(int attr_id); + void RecalcAttrRuduce(int attr_id); private: CreatureWeakPtr owner_; std::array, kHAT_End> attr_abs_ = {}; std::array, kHAT_End> attr_rate_ = {}; - std::array, kHAT_End> attr_add_ = {}; std::array, kHAT_End> attr_dec_ = {}; std::array, kHVAT_End - kHVAT_Begin> vattr_add_ = {}; std::array, kHVAT_End - kHVAT_Begin> vattr_dec_ = {}; - int def_addition_times_ = 0; - float def_addition_rate_ = 0; - - int atk_addition_times_ = 0; - float atk_addition_rate_ = 0; - int disable_shot_times_ = 0; int disable_useskill_times_ = 0; - std::map immune_tags_; friend class PBUtils; diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 1e3cdac7..4faebe8d 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -3147,7 +3147,7 @@ void Human::ProcGemStoneItem(AddItemDTO& dto) 0, gemstone, false); - GetAbility()->AddAtkAddition(dto.item_meta->_atk); + GetAbility()->AddAttrRate(kHAT_Atk, dto.item_meta->_atk); SetMaxHP(GetMaxHP() + dto.item_meta->_max_hp * GetBattleContext()->GetMaxHP()); SetHP(GetHP() + dto.item_meta->_max_hp * GetBattleContext()->GetMaxHP()); room->frame_event.AddPropChg