The diminishing return categories are now customizable.

This commit is contained in:
Relintai 2020-06-06 18:06:30 +02:00
parent 8ed462ece2
commit e3be2555d2
6 changed files with 73 additions and 20 deletions

View File

@ -139,12 +139,18 @@ float Aura::absorb_get_scale_for_level(const int level) const {
return 1;
}
SpellEnums::DiminishingReturnCategory Aura::get_diminishing_category() const {
return _diminishing_category;
bool Aura::diminishing_return_enabled_get() const {
return _diminishing_return_enabled;
}
void Aura::diminishing_return_enabled_set(const bool value) {
_diminishing_return_enabled = value;
}
void Aura::set_diminishing_category(SpellEnums::DiminishingReturnCategory diminishingCategory) {
_diminishing_category = diminishingCategory;
int Aura::diminishing_return_category_get() const {
return _diminishing_return_category;
}
void Aura::diminishing_return_category_set(const int value) {
_diminishing_return_category = value;
}
Ref<Spell> Aura::get_teaches_spell() {
@ -358,6 +364,9 @@ Aura::Aura() {
_aura_stat_attribute_count = 0;
_trigger_count = 0;
_diminishing_return_enabled = false;
_diminishing_return_category = 0;
}
Aura::~Aura() {
@ -1183,6 +1192,8 @@ void Aura::_validate_property(PropertyInfo &property) const {
if (property.name.ends_with("stat"))
property.hint_string = ESS::get_singleton()->stat_get_string();
} else if (prop == "diminishing_return_category") {
property.hint_string = ESS::get_singleton()->dminishing_return_categories_get();
} else if (prop.begins_with("trigger_")) {
if (prop.ends_with("count"))
return;
@ -1669,6 +1680,16 @@ void Aura::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_supress_states", "value"), &Aura::set_supress_states);
ADD_PROPERTY(PropertyInfo(Variant::INT, "states_supress", PROPERTY_HINT_FLAGS, EntityEnums::BINDING_STRING_ENTITY_STATE_TYPES), "set_supress_states", "get_supress_states");
//Diminishing Returns
ADD_GROUP("Diminishing Returns", "diminishing_return");
ClassDB::bind_method(D_METHOD("diminishing_return_enabled_get"), &Aura::diminishing_return_enabled_get);
ClassDB::bind_method(D_METHOD("diminishing_return_enabled_set", "value"), &Aura::diminishing_return_enabled_set);
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "diminishing_return_enabled"), "diminishing_return_enabled_set", "diminishing_return_enabled_get");
ClassDB::bind_method(D_METHOD("diminishing_return_category_get"), &Aura::diminishing_return_category_get);
ClassDB::bind_method(D_METHOD("diminishing_return_category_set", "value"), &Aura::diminishing_return_category_set);
ADD_PROPERTY(PropertyInfo(Variant::INT, "diminishing_return_category", PROPERTY_HINT_ENUM, ""), "diminishing_return_category_set", "diminishing_return_category_get");
//// Talents ////
ADD_GROUP("Talent", "talent");
ClassDB::bind_method(D_METHOD("get_talent_required_talent"), &Aura::get_talent_required_talent);

View File

@ -193,8 +193,11 @@ public:
void set_supress_states(const int value) { _supress_states = value; }
//DiminishingReturns
SpellEnums::DiminishingReturnCategory get_diminishing_category() const;
void set_diminishing_category(const SpellEnums::DiminishingReturnCategory diminishingCategory);
bool diminishing_return_enabled_get() const;
void diminishing_return_enabled_set(const bool value);
int diminishing_return_category_get() const;
void diminishing_return_category_set(const int value);
//Triggers
int trigger_get_count() const;
@ -451,7 +454,8 @@ private:
int _aura_stat_attribute_count;
AuraStatAttribute _aura_stat_attributes[MAX_AURA_STATS];
SpellEnums::DiminishingReturnCategory _diminishing_category;
bool _diminishing_return_enabled;
int _diminishing_return_category;
static const int DIMINISHING_RETURN_ROOT_AURA_ID = 1;
static const int DIMINISHING_RETURN_TIME = 15;

View File

@ -460,6 +460,28 @@ void ESS::texture_layers_set(const String &value) {
_texture_layers = value;
}
//Diminishing Returns
String ESS::dminishing_return_categories_get() const {
return _dminishing_return_categories;
}
void ESS::dminishing_return_categories_set(const String &value) {
_dminishing_return_categories = value;
}
float ESS::dminishing_return_length_get() const {
return _dminishing_return_length;
}
void ESS::dminishing_return_length_set(const float value) {
_dminishing_return_length = value;
}
int ESS::dminishing_return_steps_get() const {
return _dminishing_return_steps;
}
void ESS::dminishing_return_steps_set(const int value) {
_dminishing_return_steps = value;
}
void ESS::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_use_spell_points"), &ESS::get_use_spell_points);
ClassDB::bind_method(D_METHOD("set_use_spell_points", "value"), &ESS::set_use_spell_points);
@ -629,6 +651,10 @@ ESS::ESS() {
_texture_layers = GLOBAL_DEF("ess/enums/texture_layers", "None,Skin,Underwear,Shirt,Clothes Base,Clothes 1,Clothes 2,Clothes 3,Clothes 4,Clothes 5,Belt,Tabard,Overlay");
_dminishing_return_categories = GLOBAL_DEF("ess/enums/dminishing_return_categories", "Stun,Sleep,Disorient");
_dminishing_return_length = GLOBAL_DEF("ess/enums/dminishing_return_length", 15.0);
_dminishing_return_steps = GLOBAL_DEF("ess/enums/dminishing_return_steps", 4);
if (!Engine::get_singleton()->is_editor_hint() && _automatic_load) {
call_deferred("load_all");
}

View File

@ -156,6 +156,16 @@ public:
String texture_layers_get() const;
void texture_layers_set(const String &value);
//Diminishing Returns
String dminishing_return_categories_get() const;
void dminishing_return_categories_set(const String &value);
float dminishing_return_length_get() const;
void dminishing_return_length_set(const float value);
int dminishing_return_steps_get() const;
void dminishing_return_steps_set(const int value);
ESS();
~ESS();
@ -210,6 +220,11 @@ private:
//Other
String _model_visual_groups;
String _texture_layers;
//Diminishing Returns
String _dminishing_return_categories;
float _dminishing_return_length;
int _dminishing_return_steps;
};
#endif

View File

@ -24,7 +24,6 @@ SOFTWARE.
const String SpellEnums::BINDING_STRING_SPELL_TYPES = "Melee,Holy,Shadow,Nature,Fire,Frost,Lightning,Chaos";
const String SpellEnums::BINDING_STRING_SPELL_CATEGORY = "Normal,Alchemy,Cooking,Engineering,Crafting,Hidden,Development";
const String SpellEnums::BINDING_STRING_DIMINISHING_RETURN_CATEGORIES = "None,Root,Stun";
const String SpellEnums::BINDING_STRING_TRIGGER_EVENTS = "None,S On Before Damage,S On Damage Receive,S On Hit,S On Damage Dealt,S Aura Remove,S Aura Dispell,S On Before Aura Applied,S On After Aura Applied,C On Aura Added,C On Aura Removed,C On Aura Refreshed";
const String SpellEnums::BINDING_STRING_DAMAGE_TYPES = "Melee,Holy,Shadow,Nature,Fire,Frost,Lightning,Chaos";
const String SpellEnums::BINDING_STRING_AURA_TYPES = "None,Magic,Poison,Physical,Curse,Bleed,Talent,Skill";

View File

@ -31,7 +31,6 @@ class SpellEnums : public Object {
public:
static const String BINDING_STRING_SPELL_TYPES;
static const String BINDING_STRING_SPELL_CATEGORY;
static const String BINDING_STRING_DIMINISHING_RETURN_CATEGORIES;
static const String BINDING_STRING_TRIGGER_EVENTS;
static const String BINDING_STRING_DAMAGE_TYPES;
static const String BINDING_STRING_AURA_TYPES;
@ -80,12 +79,6 @@ public:
SPELL_TYPE_CHAOS = 1 << 7,
};
enum DiminishingReturnCategory {
DIMINISHING_RETURN_CATEGORY_NONE,
DIMINISHING_RETURN_CATEGORY_ROOT,
DIMINISHING_RETURN_CATEGORY_STUN,
};
enum AuraType {
AURA_TYPE_NONE = 0,
AURA_TYPE_MAGIC = 1 << 0,
@ -211,10 +204,6 @@ protected:
BIND_ENUM_CONSTANT(SPELL_TYPE_LIGHTNING);
BIND_ENUM_CONSTANT(SPELL_TYPE_CHAOS);
BIND_ENUM_CONSTANT(DIMINISHING_RETURN_CATEGORY_NONE);
BIND_ENUM_CONSTANT(DIMINISHING_RETURN_CATEGORY_ROOT);
BIND_ENUM_CONSTANT(DIMINISHING_RETURN_CATEGORY_STUN);
BIND_ENUM_CONSTANT(AURA_TYPE_NONE);
BIND_ENUM_CONSTANT(AURA_TYPE_MAGIC);
BIND_ENUM_CONSTANT(AURA_TYPE_POISON);
@ -293,7 +282,6 @@ protected:
VARIANT_ENUM_CAST(SpellEnums::SpellType);
VARIANT_ENUM_CAST(SpellEnums::SpellCategory);
VARIANT_ENUM_CAST(SpellEnums::DiminishingReturnCategory);
VARIANT_ENUM_CAST(SpellEnums::DamageType);
VARIANT_ENUM_CAST(SpellEnums::AuraType);
VARIANT_ENUM_CAST(SpellEnums::ColliderType);