diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index adc2f04b..b414980f 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -350,3 +350,14 @@ float BattleDataContext::GetDodgeRate() { return dodge_damage_rate; } + +std::shared_ptr BattleDataContext::GetWeaponByUniId(long long weapon_uuid) +{ + if (weapon1_ability_ && weapon1_ability_->weapon_uniid == weapon_uuid) { + return weapon1_ability_; + } + if (weapon2_ability_ && weapon2_ability_->weapon_uniid == weapon_uuid) { + return weapon2_ability_; + } + return nullptr; +} diff --git a/server/gameserver/battledatacontext.h b/server/gameserver/battledatacontext.h index 73f31510..0df6d3e3 100644 --- a/server/gameserver/battledatacontext.h +++ b/server/gameserver/battledatacontext.h @@ -67,6 +67,7 @@ private: float GetCritRate(); bool IsDodge(); float GetDodgeRate(); + std::shared_ptr GetWeaponByUniId(long long weapon_uniid); private: