mitigation_modifier sint16 added to info struct to allow modification of mitigation after the base is obtained from items
This commit is contained in:
parent
abfba27112
commit
b8738480b2
@ -189,6 +189,7 @@ void Entity::MapInfoStruct()
|
||||
get_int16_funcs["cur_mitigation"] = l::bind(&InfoStruct::get_cur_mitigation, &info_struct);
|
||||
get_int16_funcs["max_mitigation"] = l::bind(&InfoStruct::get_max_mitigation, &info_struct);
|
||||
get_int16_funcs["mitigation_base"] = l::bind(&InfoStruct::get_mitigation_base, &info_struct);
|
||||
get_sint16_funcs["mitigation_modifier"] = l::bind(&InfoStruct::get_mitigation_modifier, &info_struct);
|
||||
get_int16_funcs["avoidance_display"] = l::bind(&InfoStruct::get_avoidance_display, &info_struct);
|
||||
get_float_funcs["cur_avoidance"] = l::bind(&InfoStruct::get_cur_avoidance, &info_struct);
|
||||
get_int16_funcs["base_avoidance_pct"] = l::bind(&InfoStruct::get_base_avoidance_pct, &info_struct);
|
||||
@ -395,6 +396,7 @@ void Entity::MapInfoStruct()
|
||||
set_int16_funcs["cur_mitigation"] = l::bind(&InfoStruct::set_cur_mitigation, &info_struct, l::_1);
|
||||
set_int16_funcs["max_mitigation"] = l::bind(&InfoStruct::set_max_mitigation, &info_struct, l::_1);
|
||||
set_int16_funcs["mitigation_base"] = l::bind(&InfoStruct::set_mitigation_base, &info_struct, l::_1);
|
||||
set_sint16_funcs["mitigation_modifier"] = l::bind(&InfoStruct::set_mitigation_modifier, &info_struct, l::_1);
|
||||
set_int16_funcs["avoidance_display"] = l::bind(&InfoStruct::set_avoidance_display, &info_struct, l::_1);
|
||||
set_float_funcs["cur_avoidance"] = l::bind(&InfoStruct::set_cur_avoidance, &info_struct, l::_1);
|
||||
set_int16_funcs["base_avoidance_pct"] = l::bind(&InfoStruct::set_base_avoidance_pct, &info_struct, l::_1);
|
||||
@ -1469,6 +1471,10 @@ void Entity::CalculateBonuses(){
|
||||
|
||||
info->set_cur_mitigation(info->get_mitigation_base());
|
||||
|
||||
sint32 temp_mitigation = static_cast<sint32>(info->get_cur_mitigation()) + info->get_mitigation_modifier();
|
||||
temp_mitigation = std::max(temp_mitigation, 0);
|
||||
info->set_cur_mitigation(static_cast<int16>(temp_mitigation));
|
||||
|
||||
int32 calc_mit_cap = effective_level * rule_manager.GetZoneRule(GetZoneID(), R_Combat, CalculatedMitigationCapLevel)->GetInt32();
|
||||
info->set_max_mitigation(calc_mit_cap);
|
||||
|
||||
|
@ -116,6 +116,7 @@ struct InfoStruct{
|
||||
cur_mitigation_ = 0;
|
||||
max_mitigation_ = 0;
|
||||
mitigation_base_ = 0;
|
||||
mitigation_modifier_ = 0;
|
||||
avoidance_display_ = 0;
|
||||
cur_avoidance_ = 0.0f;
|
||||
base_avoidance_pct_ = 0;
|
||||
@ -322,6 +323,7 @@ struct InfoStruct{
|
||||
cur_mitigation_ = oldStruct->get_cur_mitigation();
|
||||
max_mitigation_ = oldStruct->get_max_mitigation();
|
||||
mitigation_base_ = oldStruct->get_mitigation_base();
|
||||
mitigation_modifier_ = oldStruct->get_mitigation_modifier();
|
||||
avoidance_display_ = oldStruct->get_avoidance_display();
|
||||
cur_avoidance_ = oldStruct->get_cur_avoidance();
|
||||
base_avoidance_pct_ = oldStruct->get_base_avoidance_pct();
|
||||
@ -523,6 +525,7 @@ struct InfoStruct{
|
||||
int16 get_max_mitigation() { std::lock_guard<std::mutex> lk(classMutex); return max_mitigation_; }
|
||||
|
||||
int16 get_mitigation_base() { std::lock_guard<std::mutex> lk(classMutex); return mitigation_base_; }
|
||||
sint16 get_mitigation_modifier() { std::lock_guard<std::mutex> lk(classMutex); return mitigation_modifier_; }
|
||||
int16 get_avoidance_display() { std::lock_guard<std::mutex> lk(classMutex); return avoidance_display_; }
|
||||
float get_cur_avoidance() { std::lock_guard<std::mutex> lk(classMutex); return cur_avoidance_; }
|
||||
int16 get_base_avoidance_pct() { std::lock_guard<std::mutex> lk(classMutex); return base_avoidance_pct_; }
|
||||
@ -752,6 +755,7 @@ struct InfoStruct{
|
||||
void set_max_mitigation(int16 value) { std::lock_guard<std::mutex> lk(classMutex); max_mitigation_ = value; }
|
||||
void set_mitigation_base(int16 value) { std::lock_guard<std::mutex> lk(classMutex); mitigation_base_ = value; }
|
||||
void add_mitigation_base(int16 value) { std::lock_guard<std::mutex> lk(classMutex); mitigation_base_ += value; }
|
||||
void set_mitigation_modifier(sint16 value) { std::lock_guard<std::mutex> lk(classMutex); mitigation_modifier_ = value; }
|
||||
|
||||
void set_avoidance_display(int16 value) { std::lock_guard<std::mutex> lk(classMutex); avoidance_display_ = value; }
|
||||
void set_cur_avoidance(float value) { std::lock_guard<std::mutex> lk(classMutex); cur_avoidance_ = value; }
|
||||
@ -1076,6 +1080,7 @@ private:
|
||||
int16 cur_mitigation_;
|
||||
int16 max_mitigation_;
|
||||
int16 mitigation_base_;
|
||||
sint16 mitigation_modifier_;
|
||||
int16 avoidance_display_;
|
||||
float cur_avoidance_;
|
||||
int16 base_avoidance_pct_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user