1
This commit is contained in:
parent
193cbe9771
commit
9c5274c8d3
@ -103,3 +103,72 @@ void Ability::FillMFAttrAdditionList(Room* room, Human* hum,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Ability::AddSpeedAddition(float rate)
|
||||
{
|
||||
speed_addition_rate_ += rate;
|
||||
++speed_addition_times_;
|
||||
}
|
||||
|
||||
void Ability::DelSpeedAddition(float rate)
|
||||
{
|
||||
speed_addition_rate_ -= rate;
|
||||
speed_addition_rate_ = std::max(0.0f, speed_addition_rate_);
|
||||
--speed_addition_times_;
|
||||
#ifdef DEBUG
|
||||
if (speed_addition_times_ < 0) {
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
float Ability::GetSpeedAddition()
|
||||
{
|
||||
return speed_addition_rate_;
|
||||
}
|
||||
|
||||
void Ability::AddDmgRuduce(float rate)
|
||||
{
|
||||
dmg_ruduce_rate_ += rate;
|
||||
++dmg_ruduce_times_;
|
||||
}
|
||||
|
||||
void Ability::DelDmgRuduce(float rate)
|
||||
{
|
||||
dmg_ruduce_rate_ -= rate;
|
||||
dmg_ruduce_rate_ = std::max(0.0f, dmg_ruduce_rate_);
|
||||
--dmg_ruduce_times_;
|
||||
#ifdef DEBUG
|
||||
if (dmg_ruduce_times_ < 0) {
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
float Ability::GetDmgRuduce()
|
||||
{
|
||||
return dmg_ruduce_rate_;
|
||||
}
|
||||
|
||||
void Ability::AddDmgAddition(float rate)
|
||||
{
|
||||
dmg_addition_rate_ += rate;
|
||||
++dmg_addition_times_;
|
||||
}
|
||||
|
||||
void Ability::DelDmgAddition(float rate)
|
||||
{
|
||||
dmg_addition_rate_ -= rate;
|
||||
dmg_addition_rate_ = std::max(0.0f, dmg_addition_rate_);
|
||||
--dmg_addition_times_;
|
||||
#ifdef DEBUG
|
||||
if (dmg_addition_times_ < 0) {
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
float Ability::GetDmgAddition()
|
||||
{
|
||||
return dmg_addition_rate_;
|
||||
}
|
||||
|
@ -19,9 +19,27 @@ class Ability
|
||||
float* GetBuffAttrRatePtr(int attr_id);
|
||||
void FillMFAttrAdditionList(Room* room, Human* hum,
|
||||
::google::protobuf::RepeatedPtrField<::cs::MFAttrAddition>* pb_attr_list);
|
||||
void AddSpeedAddition(float rate);
|
||||
void DelSpeedAddition(float rate);
|
||||
float GetSpeedAddition();
|
||||
void AddDmgRuduce(float rate);
|
||||
void DelDmgRuduce(float rate);
|
||||
float GetDmgRuduce();
|
||||
void AddDmgAddition(float rate);
|
||||
void DelDmgAddition(float rate);
|
||||
float GetDmgAddition();
|
||||
|
||||
private:
|
||||
std::array<float, kHAT_End> buff_attr_abs_ = {};
|
||||
std::array<float, kHAT_End> buff_attr_rate_ = {};
|
||||
std::array<int, kHAT_End> buff_attr_flag_ = {};
|
||||
|
||||
int speed_addition_times_ = 0;
|
||||
float speed_addition_rate_ = 0;
|
||||
|
||||
int dmg_ruduce_times_ = 0;
|
||||
float dmg_ruduce_rate_ = 0;
|
||||
|
||||
int dmg_addition_times_ = 0;
|
||||
float dmg_addition_rate_ = 0;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user