#ifndef SPELL_ENUMS_H #define SPELL_ENUMS_H #include "core/object.h" class SpellEnums : public Object { GDCLASS(SpellEnums, Object); public: static const String BINDING_STRING_SPELL_TYPES; 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; enum DamageType { DAMAGE_TYPE_NONE = 0, DAMAGE_TYPE_MELEE = 1 << 0, DAMAGE_TYPE_HOLY = 1 << 1, DAMAGE_TYPE_SHADOW = 1 << 2, DAMAGE_TYPE_NATURE = 1 << 3, DAMAGE_TYPE_FIRE = 1 << 4, DAMAGE_TYPE_FROST = 1 << 5, DAMAGE_TYPE_LIGHTNING = 1 << 6, DAMAGE_TYPE_CHAOS = 1 << 7, }; enum SpellType { SPELL_TYPE_NONE = 0, SPELL_TYPE_MELEE = 1 << 0, SPELL_TYPE_HOLY = 1 << 1, SPELL_TYPE_SHADOW = 1 << 2, SPELL_TYPE_NATURE = 1 << 3, SPELL_TYPE_FIRE = 1 << 4, SPELL_TYPE_FROST = 1 << 5, SPELL_TYPE_LIGHTNING = 1 << 6, SPELL_TYPE_CHAOS = 1 << 7, }; enum DiminishingReturnCategory { DIMINISHING_RETURN_CATEGORY_NONE, DIMINISHING_RETURN_CATEGORY_ROOT, DIMINISHING_RETURN_CATEGORY_STUN, }; enum TriggerEvents { TRIGGER_NONE, TRIGGER_AURA_EVENT_S_ON_BEFORE_DAMAGE, TRIGGER_AURA_EVENT_S_ON_DAMAGE_RECEIVE, TRIGGER_AURA_EVENT_S_ON_HIT, TRIGGER_AURA_EVENT_S_ON_DAMAGE_DEALT, TRIGGER_AURA_EVENT_S_ON_AURA_REMOVE, TRIGGER_AURA_EVENT_S_ON_AURA_DISPELL, TRIGGER_AURA_EVENT_S_ON_BEFORE_AURA_APPLIED, TRIGGER_AURA_EVENT_S_ON_AFTER_AURA_APPLIED, TRIGGER_AURA_EVENT_C_ON_AURA_ADDED, TRIGGER_AURA_EVENT_C_ON_AURA_REMOVED, TRIGGER_AURA_EVENT_C_ON_AURA_REFRESHED, }; enum AuraType { AURA_TYPE_NONE = 0, AURA_TYPE_MAGIC = 1, AURA_TYPE_POISON = 2, AURA_TYPE_PHYSICAL = 3, AURA_TYPE_CURSE = 4, AURA_TYPE_BLEED = 5, AURA_TYPE_TALENT = 6, }; SpellEnums() {} protected: static void _bind_methods() { BIND_ENUM_CONSTANT(DAMAGE_TYPE_NONE); BIND_ENUM_CONSTANT(DAMAGE_TYPE_MELEE); BIND_ENUM_CONSTANT(DAMAGE_TYPE_HOLY); BIND_ENUM_CONSTANT(DAMAGE_TYPE_SHADOW); BIND_ENUM_CONSTANT(DAMAGE_TYPE_NATURE); BIND_ENUM_CONSTANT(DAMAGE_TYPE_FIRE); BIND_ENUM_CONSTANT(DAMAGE_TYPE_FROST); BIND_ENUM_CONSTANT(DAMAGE_TYPE_LIGHTNING); BIND_ENUM_CONSTANT(DAMAGE_TYPE_CHAOS); BIND_ENUM_CONSTANT(SPELL_TYPE_NONE); BIND_ENUM_CONSTANT(SPELL_TYPE_MELEE); BIND_ENUM_CONSTANT(SPELL_TYPE_HOLY); BIND_ENUM_CONSTANT(SPELL_TYPE_SHADOW); BIND_ENUM_CONSTANT(SPELL_TYPE_NATURE); BIND_ENUM_CONSTANT(SPELL_TYPE_FIRE); BIND_ENUM_CONSTANT(SPELL_TYPE_FROST); 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(TRIGGER_NONE); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_BEFORE_DAMAGE); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_DAMAGE_RECEIVE); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_HIT); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_DAMAGE_DEALT); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_AURA_REMOVE); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_AURA_DISPELL); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_BEFORE_AURA_APPLIED); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_S_ON_AFTER_AURA_APPLIED); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_C_ON_AURA_ADDED); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_C_ON_AURA_REMOVED); BIND_ENUM_CONSTANT(TRIGGER_AURA_EVENT_C_ON_AURA_REFRESHED); BIND_ENUM_CONSTANT(AURA_TYPE_NONE); BIND_ENUM_CONSTANT(AURA_TYPE_MAGIC); BIND_ENUM_CONSTANT(AURA_TYPE_POISON); BIND_ENUM_CONSTANT(AURA_TYPE_PHYSICAL); BIND_ENUM_CONSTANT(AURA_TYPE_CURSE); BIND_ENUM_CONSTANT(AURA_TYPE_BLEED); BIND_ENUM_CONSTANT(AURA_TYPE_TALENT); } }; VARIANT_ENUM_CAST(SpellEnums::SpellType); VARIANT_ENUM_CAST(SpellEnums::DiminishingReturnCategory); VARIANT_ENUM_CAST(SpellEnums::TriggerEvents); VARIANT_ENUM_CAST(SpellEnums::DamageType); VARIANT_ENUM_CAST(SpellEnums::AuraType); #endif