mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-05-11 22:42:10 +02:00
Clenaups to Stat.
This commit is contained in:
parent
cbac91ae1e
commit
085890cd15
@ -6622,11 +6622,7 @@ bool Entity::_get(const StringName &p_name, Variant &r_ret) const {
|
||||
|
||||
Ref<Stat> stat = _stats[stat_id];
|
||||
|
||||
if (stat_prop_name == "modifier_apply_type") {
|
||||
r_ret = stat->get_stat_modifier_type();
|
||||
|
||||
return true;
|
||||
} else if (stat_prop_name == "public") {
|
||||
if (stat_prop_name == "public") {
|
||||
r_ret = stat->get_public();
|
||||
|
||||
return true;
|
||||
@ -6846,7 +6842,6 @@ void Entity::_get_property_list(List<PropertyInfo> *p_list) const {
|
||||
if (!stat.is_valid())
|
||||
continue;
|
||||
|
||||
p_list->push_back(PropertyInfo(Variant::INT, "stat/" + itos(i) + "/modifier_apply_type", PROPERTY_HINT_NONE, "", property_usange));
|
||||
p_list->push_back(PropertyInfo(Variant::BOOL, "stat/" + itos(i) + "/public", PROPERTY_HINT_NONE, "", property_usange));
|
||||
p_list->push_back(PropertyInfo(Variant::BOOL, "stat/" + itos(i) + "/locked", PROPERTY_HINT_NONE, "", property_usange));
|
||||
p_list->push_back(PropertyInfo(Variant::REAL, "stat/" + itos(i) + "/base", PROPERTY_HINT_NONE, "", property_usange));
|
||||
|
@ -28,10 +28,6 @@ SOFTWARE.
|
||||
|
||||
#include "core/version.h"
|
||||
|
||||
const String Stat::MAIN_STAT_BINDING_STRING = "Agility,Strength,Stamina,Intellect,Spirit";
|
||||
|
||||
const String Stat::MODIFIER_APPLY_TYPE_BINDING_STRING = "Standard,Only min modifier,Only Max modifier";
|
||||
|
||||
int Stat::get_id() {
|
||||
return _id;
|
||||
}
|
||||
@ -66,13 +62,6 @@ void Stat::set_owner_bind(Node *value) {
|
||||
_owner = e;
|
||||
}
|
||||
|
||||
Stat::StatModifierApplyType Stat::get_stat_modifier_type() {
|
||||
return _modifier_apply_type;
|
||||
}
|
||||
void Stat::set_stat_modifier_type(Stat::StatModifierApplyType value) {
|
||||
_modifier_apply_type = value;
|
||||
}
|
||||
|
||||
bool Stat::get_public() {
|
||||
return _public;
|
||||
}
|
||||
@ -251,35 +240,12 @@ void Stat::apply_modifiers() {
|
||||
|
||||
reset_values();
|
||||
|
||||
if (_modifier_apply_type == MODIFIER_APPLY_TYPE_STANDARD) {
|
||||
for (int i = 0; i < _modifiers.size(); ++i) {
|
||||
Ref<StatModifier> mod = _modifiers.get(i);
|
||||
for (int i = 0; i < _modifiers.size(); ++i) {
|
||||
Ref<StatModifier> mod = _modifiers.get(i);
|
||||
|
||||
_base += mod->get_base_mod();
|
||||
_bonus += mod->get_bonus_mod();
|
||||
_percent += mod->get_percent_mod();
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < _modifiers.size(); ++i) {
|
||||
Ref<StatModifier> modifier = _modifiers.get(i);
|
||||
|
||||
_base += modifier->get_base_mod();
|
||||
_bonus += modifier->get_bonus_mod();
|
||||
|
||||
if (modifier->get_percent_mod() >= 0) {
|
||||
_percent += modifier->get_percent_mod();
|
||||
}
|
||||
}
|
||||
|
||||
float p = 0;
|
||||
for (int i = 0; i < _modifiers.size(); ++i) {
|
||||
Ref<StatModifier> modifier = _modifiers.get(i);
|
||||
|
||||
if (modifier->get_percent_mod() < p)
|
||||
p = modifier->get_percent_mod();
|
||||
}
|
||||
|
||||
_percent += p;
|
||||
_base += mod->get_base_mod();
|
||||
_bonus += mod->get_bonus_mod();
|
||||
_percent += mod->get_percent_mod();
|
||||
}
|
||||
|
||||
refresh_currmax();
|
||||
@ -354,7 +320,6 @@ Dictionary Stat::_to_dict() {
|
||||
Dictionary dict;
|
||||
|
||||
dict["id"] = _id;
|
||||
dict["modifier_apply_type"] = _modifier_apply_type;
|
||||
|
||||
dict["public"] = _public;
|
||||
dict["locked"] = _locked;
|
||||
@ -382,7 +347,6 @@ void Stat::_from_dict(const Dictionary &dict) {
|
||||
ERR_FAIL_COND(dict.empty());
|
||||
|
||||
_id = dict.get("id", 0);
|
||||
_modifier_apply_type = (StatModifierApplyType)((int)dict.get("modifier_apply_type", 0));
|
||||
|
||||
_public = dict.get("public", false);
|
||||
_locked = dict.get("locked", false);
|
||||
@ -421,8 +385,6 @@ Stat::Stat() {
|
||||
_id = 0;
|
||||
_owner = NULL;
|
||||
|
||||
_modifier_apply_type = MODIFIER_APPLY_TYPE_STANDARD;
|
||||
|
||||
_public = false;
|
||||
_dirty_mods = false;
|
||||
|
||||
@ -444,31 +406,6 @@ Stat::Stat(int id, Entity *owner) {
|
||||
_id = id;
|
||||
_owner = owner;
|
||||
|
||||
_modifier_apply_type = MODIFIER_APPLY_TYPE_STANDARD;
|
||||
|
||||
_public = false;
|
||||
_dirty_mods = false;
|
||||
|
||||
_locked = false;
|
||||
_dirty = true;
|
||||
|
||||
_base = 0;
|
||||
_bonus = 0;
|
||||
_percent = 0;
|
||||
|
||||
_s_current = 0;
|
||||
_s_max = 0;
|
||||
|
||||
_c_current = 0;
|
||||
_c_max = 0;
|
||||
}
|
||||
|
||||
Stat::Stat(int id, StatModifierApplyType modifier_apply_type, Entity *owner) {
|
||||
_id = id;
|
||||
_owner = owner;
|
||||
|
||||
_modifier_apply_type = modifier_apply_type;
|
||||
|
||||
_public = false;
|
||||
_dirty_mods = false;
|
||||
|
||||
@ -514,10 +451,6 @@ void Stat::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_owner", "value"), &Stat::set_owner_bind);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "owner", PROPERTY_HINT_RESOURCE_TYPE, "Entity", 0), "set_owner", "get_owner");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_stat_modifier_type"), &Stat::get_stat_modifier_type);
|
||||
ClassDB::bind_method(D_METHOD("set_stat_modifier_type", "value"), &Stat::set_stat_modifier_type);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "stat_type", PROPERTY_HINT_ENUM, "Standard, Min Modifier, Max modifier"), "set_stat_modifier_type", "get_stat_modifier_type");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_public"), &Stat::get_public);
|
||||
ClassDB::bind_method(D_METHOD("set_public", "value"), &Stat::set_public);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "public"), "set_public", "get_public");
|
||||
@ -592,8 +525,4 @@ void Stat::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("_from_dict", "dict"), &Stat::_from_dict);
|
||||
ClassDB::bind_method(D_METHOD("_to_dict"), &Stat::_to_dict);
|
||||
|
||||
BIND_ENUM_CONSTANT(MODIFIER_APPLY_TYPE_STANDARD);
|
||||
BIND_ENUM_CONSTANT(MODIFIER_APPLY_TYPE_ONLY_MIN_MODIFIER);
|
||||
BIND_ENUM_CONSTANT(MODIFIER_APPLY_TYPE_ONLY_MAX_MODIFIER);
|
||||
}
|
||||
|
@ -37,15 +37,6 @@ class Stat : public Reference {
|
||||
GDCLASS(Stat, Reference);
|
||||
|
||||
public:
|
||||
static const String MAIN_STAT_BINDING_STRING;
|
||||
static const String MODIFIER_APPLY_TYPE_BINDING_STRING;
|
||||
|
||||
enum StatModifierApplyType {
|
||||
MODIFIER_APPLY_TYPE_STANDARD,
|
||||
MODIFIER_APPLY_TYPE_ONLY_MIN_MODIFIER,
|
||||
MODIFIER_APPLY_TYPE_ONLY_MAX_MODIFIER,
|
||||
};
|
||||
|
||||
static String stat_id_name(int stat_id);
|
||||
|
||||
public:
|
||||
@ -59,9 +50,6 @@ public:
|
||||
void set_owner(Entity *value);
|
||||
void set_owner_bind(Node *value);
|
||||
|
||||
StatModifierApplyType get_stat_modifier_type();
|
||||
void set_stat_modifier_type(StatModifierApplyType value);
|
||||
|
||||
bool get_public();
|
||||
void set_public(bool value);
|
||||
|
||||
@ -123,7 +111,6 @@ public:
|
||||
|
||||
Stat();
|
||||
Stat(int id, Entity *owner);
|
||||
Stat(int id, StatModifierApplyType modifier_apply_type, Entity *owner);
|
||||
~Stat();
|
||||
|
||||
protected:
|
||||
@ -133,8 +120,6 @@ protected:
|
||||
private:
|
||||
int _id;
|
||||
|
||||
StatModifierApplyType _modifier_apply_type;
|
||||
|
||||
Vector<Ref<StatModifier> > _modifiers;
|
||||
|
||||
bool _public;
|
||||
@ -156,6 +141,4 @@ private:
|
||||
Ref<StatDataEntry> _stat_data_entry;
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(Stat::StatModifierApplyType);
|
||||
|
||||
#endif
|
||||
|
@ -81,8 +81,6 @@ StatDataEntry::StatDataEntry() {
|
||||
_base = 0;
|
||||
_mod_stat_count = 0;
|
||||
|
||||
_modifier_apply_type = Stat::MODIFIER_APPLY_TYPE_STANDARD;
|
||||
|
||||
for (int i = 0; i < MAX_MOD_STATS; ++i) {
|
||||
_mod_stats[i].stat_id = 0;
|
||||
_mod_stats[i].multiplier = 0;
|
||||
|
@ -71,8 +71,6 @@ private:
|
||||
|
||||
int _mod_stat_count;
|
||||
ModStat _mod_stats[MAX_MOD_STATS];
|
||||
|
||||
Stat::StatModifierApplyType _modifier_apply_type;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user