mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-02-20 17:14:44 +01:00
Added permanent option for auras. Also added is_aura helper check.
This commit is contained in:
parent
e14ba1e368
commit
ac18bda70f
@ -28,9 +28,9 @@ SOFTWARE.
|
||||
#include "../items/craft_recipe.h"
|
||||
|
||||
#include "../../entities/auras/aura_data.h"
|
||||
#include "../auras/aura_group.h"
|
||||
#include "../../infos/aura_infos.h"
|
||||
#include "../../entities/data/entity_data.h"
|
||||
#include "../../infos/aura_infos.h"
|
||||
#include "../auras/aura_group.h"
|
||||
|
||||
#include "../../singletons/ess.h"
|
||||
|
||||
@ -537,6 +537,13 @@ void Spell::set_training_required_skill_level(const int value) {
|
||||
|
||||
// Aura
|
||||
|
||||
bool Spell::aura_get_permanent() const {
|
||||
return _aura_permanent;
|
||||
}
|
||||
void Spell::aura_set_permanent(const bool value) {
|
||||
_aura_permanent = value;
|
||||
}
|
||||
|
||||
float Spell::aura_get_time() const {
|
||||
return _aura_time;
|
||||
}
|
||||
@ -1711,6 +1718,7 @@ Spell::Spell() {
|
||||
_projectile_use_speed = false;
|
||||
_projectile_speed = 0;
|
||||
|
||||
_aura_permanent = false;
|
||||
_aura_ability_scale_data_id = 1;
|
||||
_aura_time = 0;
|
||||
_aura_tick = 0;
|
||||
@ -2864,6 +2872,10 @@ void Spell::_bind_methods() {
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "training_required_skill_level"), "set_training_required_skill_level", "get_training_required_skill_level");
|
||||
|
||||
ADD_GROUP("Aura", "aura");
|
||||
ClassDB::bind_method(D_METHOD("aura_get_permanent"), &Spell::aura_get_permanent);
|
||||
ClassDB::bind_method(D_METHOD("aura_set_permanent", "value"), &Spell::aura_set_permanent);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "aura_permanent"), "aura_set_permanent", "aura_get_permanent");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("aura_get_time"), &Spell::aura_get_time);
|
||||
ClassDB::bind_method(D_METHOD("aura_set_time", "value"), &Spell::aura_set_time);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "aura_time"), "aura_set_time", "aura_get_time");
|
||||
@ -3110,6 +3122,7 @@ void Spell::_bind_methods() {
|
||||
ADD_PROPERTYI(PropertyInfo(Variant::REAL, "aura_stat_attribute_" + itos(i) + "/percent_mod", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_INTERNAL), "aura_stat_attribute_set_percent_mod", "aura_stat_attribute_get_percent_mod", i);
|
||||
}
|
||||
|
||||
ClassDB::bind_method(D_METHOD("is_aura"), &Spell::is_aura);
|
||||
ClassDB::bind_method(D_METHOD("aura_is_talent"), &Spell::aura_is_talent);
|
||||
|
||||
BIND_ENUM_CONSTANT(TARGET_SELF);
|
||||
|
@ -298,6 +298,10 @@ public:
|
||||
int get_training_required_skill_level() const;
|
||||
void set_training_required_skill_level(const int value);
|
||||
|
||||
//Auras
|
||||
bool aura_get_permanent() const;
|
||||
void aura_set_permanent(const bool value);
|
||||
|
||||
float aura_get_time() const;
|
||||
void aura_set_time(const float value);
|
||||
|
||||
@ -590,6 +594,7 @@ public:
|
||||
void aura_calculate_initial_heal(Ref<AuraData> aura_data, Ref<AuraApplyInfo> info);
|
||||
void handle_aura_heal(Ref<AuraData> aura_data, Ref<SpellHealInfo> info);
|
||||
|
||||
_FORCE_INLINE_ bool is_aura() const { return _aura_permanent || (_aura_time > CMP_EPSILON); }
|
||||
_FORCE_INLINE_ bool aura_is_talent() const { return _aura_type == SpellEnums::AURA_TYPE_TALENT; }
|
||||
|
||||
String get_name_translated() const;
|
||||
@ -764,7 +769,7 @@ private:
|
||||
int _training_required_skill_level;
|
||||
|
||||
//Aura
|
||||
|
||||
bool _aura_permanent;
|
||||
float _aura_time;
|
||||
float _aura_tick;
|
||||
Ref<AuraGroup> _aura_group;
|
||||
|
Loading…
Reference in New Issue
Block a user