mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-02-20 17:14:44 +01:00
The diminishing return categories are now customizable.
This commit is contained in:
parent
8ed462ece2
commit
e3be2555d2
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user