mirror of
https://github.com/Relintai/entity_spell_system.git
synced 2025-05-09 22:41:39 +02:00
Added a bunch on new classes (Visual related). Moved some of the bindings around.
This commit is contained in:
parent
1667a315ed
commit
c6b50a2c66
8
SCsub
8
SCsub
@ -43,6 +43,14 @@ module_env.add_source_files(env.modules_sources,"entities/stats/stat.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"entities/stats/stat_modifier.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"entities/stats/stat_data.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"spells/spell_projectile.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"spells/world_spell_effect.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"data/spell_effect_visual.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"data/spell_effect_visual_simple.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"data/spell_projectile_data.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"data/world_effect_data.cpp")
|
||||
|
||||
module_env.add_source_files(env.modules_sources,"entities/player_talent.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"inventory/bag.cpp")
|
||||
module_env.add_source_files(env.modules_sources,"inventory/inventory.cpp")
|
||||
|
@ -70,6 +70,27 @@ void Aura::set_aura_description(String description) {
|
||||
_aura_description = description;
|
||||
}
|
||||
|
||||
Ref<SpellEffectVisual> Aura::get_visual_spell_effects() {
|
||||
return _visual_spell_effects;
|
||||
}
|
||||
void Aura::set_visual_spell_effects(Ref<SpellEffectVisual> value) {
|
||||
_visual_spell_effects = value;
|
||||
}
|
||||
|
||||
Ref<SpellProjectileData> Aura::get_spell_projectile_data() {
|
||||
return _spell_projectile_data;
|
||||
}
|
||||
void Aura::set_spell_projectile_data(Ref<SpellProjectileData> value) {
|
||||
_spell_projectile_data = value;
|
||||
}
|
||||
|
||||
Ref<WorldEffectData> Aura::get_world_effect_data() {
|
||||
return _world_effect_data;
|
||||
}
|
||||
void Aura::set_world_effect_data(Ref<WorldEffectData> value) {
|
||||
_world_effect_data = value;
|
||||
}
|
||||
|
||||
int Aura::get_ability_scale_data_id() {
|
||||
return ability_scale_data_id;
|
||||
}
|
||||
@ -117,26 +138,6 @@ void Aura::OnAuraAbilityScalingDataLoaded(AbilityScalingDataLoaderHelper *h) {
|
||||
}
|
||||
*/
|
||||
|
||||
//Visual Effect
|
||||
|
||||
bool Aura::has_effect_visual() {
|
||||
return _effect_visual.is_valid();
|
||||
}
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints Aura::get_effect_visual_point() {
|
||||
return _effect_visual_point;
|
||||
}
|
||||
void Aura::set_effect_visual_point(EntityEnums::CharacterSkeletonPoints point) {
|
||||
_effect_visual_point = point;
|
||||
}
|
||||
|
||||
Ref<PackedScene> Aura::get_effect_visual() {
|
||||
return _effect_visual;
|
||||
}
|
||||
void Aura::set_effect_visual(Ref<PackedScene> value) {
|
||||
_effect_visual = value;
|
||||
}
|
||||
|
||||
//Damage
|
||||
bool Aura::is_damage_enabled() {
|
||||
return _damage_enabled;
|
||||
@ -1136,18 +1137,6 @@ void Aura::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("_setup_aura_data", "data", "info"), &Aura::_setup_aura_data);
|
||||
|
||||
//Visual Effect
|
||||
ADD_GROUP("Visual Effect", "effect");
|
||||
ClassDB::bind_method(D_METHOD("has_effect_visual"), &Aura::has_effect_visual);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_effect_visual_point"), &Aura::get_effect_visual_point);
|
||||
ClassDB::bind_method(D_METHOD("set_effect_visual_point", "value"), &Aura::set_effect_visual_point);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "effect_visual_point", PROPERTY_HINT_ENUM, EntityEnums::BINDING_STRING_CHARCATER_SKELETON_POINTS), "set_effect_visual_point", "get_effect_visual_point");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_effect_visual"), &Aura::get_effect_visual);
|
||||
ClassDB::bind_method(D_METHOD("set_effect_visual", "value"), &Aura::set_effect_visual);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "effect_visual", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_effect_visual", "get_effect_visual");
|
||||
|
||||
//damage
|
||||
ClassDB::bind_method(D_METHOD("sapply_passives_damage_receive", "data"), &Aura::sapply_passives_damage_receive);
|
||||
ClassDB::bind_method(D_METHOD("sapply_passives_damage_deal", "data"), &Aura::sapply_passives_damage_deal);
|
||||
@ -1226,6 +1215,18 @@ void Aura::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_aura_description", "value"), &Aura::set_aura_description);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "text_aura_description", PROPERTY_HINT_MULTILINE_TEXT), "set_aura_description", "get_aura_description");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_visual_spell_effects"), &Aura::get_visual_spell_effects);
|
||||
ClassDB::bind_method(D_METHOD("set_visual_spell_effects", "value"), &Aura::set_visual_spell_effects);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "visual_spell_effects", PROPERTY_HINT_RESOURCE_TYPE, "SpellEffectVisual"), "set_visual_spell_effects", "get_visual_spell_effects");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_projectile_data"), &Aura::get_spell_projectile_data);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_projectile_data", "value"), &Aura::set_spell_projectile_data);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "spell_projectile_data", PROPERTY_HINT_RESOURCE_TYPE, "SpellProjectileData"), "set_spell_projectile_data", "get_spell_projectile_data");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_world_effect_data"), &Aura::get_world_effect_data);
|
||||
ClassDB::bind_method(D_METHOD("set_world_effect_data", "value"), &Aura::set_world_effect_data);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "world_effect_data", PROPERTY_HINT_RESOURCE_TYPE, "WorldEffectData"), "set_world_effect_data", "get_world_effect_data");
|
||||
|
||||
ADD_GROUP("Damage", "damage");
|
||||
//Damage
|
||||
ClassDB::bind_method(D_METHOD("is_damage_enabled"), &Aura::is_damage_enabled);
|
||||
|
27
data/aura.h
27
data/aura.h
@ -23,6 +23,10 @@
|
||||
#include "../utility/cooldown.h"
|
||||
#include "../utility/category_cooldown.h"
|
||||
|
||||
#include "spell_effect_visual.h"
|
||||
#include "spell_projectile_data.h"
|
||||
#include "world_effect_data.h"
|
||||
|
||||
class AuraApplyInfo;
|
||||
class AuraScript;
|
||||
class Entity;
|
||||
@ -62,6 +66,15 @@ public:
|
||||
String get_aura_description();
|
||||
void set_aura_description(String description);
|
||||
|
||||
Ref<SpellEffectVisual> get_visual_spell_effects();
|
||||
void set_visual_spell_effects(Ref<SpellEffectVisual> value);
|
||||
|
||||
Ref<SpellProjectileData> get_spell_projectile_data();
|
||||
void set_spell_projectile_data(Ref<SpellProjectileData> value);
|
||||
|
||||
Ref<WorldEffectData> get_world_effect_data();
|
||||
void set_world_effect_data(Ref<WorldEffectData> value);
|
||||
|
||||
int get_ability_scale_data_id();
|
||||
void set_ability_scale_data_id(int value);
|
||||
|
||||
@ -79,15 +92,6 @@ public:
|
||||
// static void FromJSON(Aura* ada, JsonReader* r);
|
||||
// static void ToJSON(Aura* ada, JsonWriter* w);
|
||||
|
||||
//VisualEffect
|
||||
bool has_effect_visual();
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints get_effect_visual_point();
|
||||
void set_effect_visual_point(EntityEnums::CharacterSkeletonPoints point);
|
||||
|
||||
Ref<PackedScene> get_effect_visual();
|
||||
void set_effect_visual(Ref<PackedScene> value);
|
||||
|
||||
//Damage
|
||||
bool is_damage_enabled();
|
||||
void set_damage_enabled(bool value);
|
||||
@ -384,8 +388,9 @@ private:
|
||||
String _aura_description;
|
||||
int ability_scale_data_id;
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints _effect_visual_point;
|
||||
Ref<PackedScene> _effect_visual;
|
||||
Ref<SpellEffectVisual> _visual_spell_effects;
|
||||
Ref<SpellProjectileData> _spell_projectile_data;
|
||||
Ref<WorldEffectData> _world_effect_data;
|
||||
|
||||
bool _damage_enabled;
|
||||
int _damage_type;
|
||||
|
105
data/spell.cpp
105
data/spell.cpp
@ -208,6 +208,27 @@ void Spell::set_spell_description(String value) {
|
||||
_spell_description = value;
|
||||
}
|
||||
|
||||
Ref<SpellEffectVisual> Spell::get_visual_spell_effects() {
|
||||
return _visual_spell_effects;
|
||||
}
|
||||
void Spell::set_visual_spell_effects(Ref<SpellEffectVisual> value) {
|
||||
_visual_spell_effects = value;
|
||||
}
|
||||
|
||||
Ref<SpellProjectileData> Spell::get_spell_projectile_data() {
|
||||
return _spell_projectile_data;
|
||||
}
|
||||
void Spell::set_spell_projectile_data(Ref<SpellProjectileData> value) {
|
||||
_spell_projectile_data = value;
|
||||
}
|
||||
|
||||
Ref<WorldEffectData> Spell::get_world_effect_data() {
|
||||
return _world_effect_data;
|
||||
}
|
||||
void Spell::set_world_effect_data(Ref<WorldEffectData> value) {
|
||||
_world_effect_data = value;
|
||||
}
|
||||
|
||||
float Spell::get_damage_scale_for_level(int level) {
|
||||
//return getDamageLevelScaling()->Evaluate((float)(level));
|
||||
return 1;
|
||||
@ -377,51 +398,6 @@ void Spell::set_aoe_half_extents(Vector3 value) {
|
||||
_aoe_half_extents = value;
|
||||
}
|
||||
|
||||
bool Spell::has_effect_visual() {
|
||||
return _effect_visual.is_valid();
|
||||
}
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints Spell::get_effect_visual_point() {
|
||||
return _effect_visual_point;
|
||||
}
|
||||
void Spell::set_effect_visual_point(EntityEnums::CharacterSkeletonPoints point) {
|
||||
_effect_visual_point = point;
|
||||
}
|
||||
|
||||
Ref<PackedScene> Spell::get_effect_visual() {
|
||||
return _effect_visual;
|
||||
}
|
||||
void Spell::set_effect_visual(Ref<PackedScene> value) {
|
||||
_effect_visual = value;
|
||||
}
|
||||
|
||||
bool Spell::has_spell_cast_finish_effect() {
|
||||
return _spell_cast_finish_effect.is_valid();
|
||||
}
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints Spell::get_spell_cast_finish_effect_point() {
|
||||
return _spell_cast_finish_effect_point;
|
||||
}
|
||||
void Spell::set_spell_cast_finish_effect_point(EntityEnums::CharacterSkeletonPoints point) {
|
||||
_spell_cast_finish_effect_point = point;
|
||||
}
|
||||
|
||||
Ref<PackedScene> Spell::get_spell_cast_finish_effect() {
|
||||
return _spell_cast_finish_effect;
|
||||
}
|
||||
void Spell::set_spell_cast_finish_effect(Ref<PackedScene> value) {
|
||||
_spell_cast_finish_effect = value;
|
||||
}
|
||||
|
||||
bool Spell::has_spell_cast_effect() {
|
||||
return _spell_cast_effect.is_valid();
|
||||
}
|
||||
Ref<PackedScene> Spell::get_spell_cast_effect() {
|
||||
return _spell_cast_effect;
|
||||
}
|
||||
void Spell::set_spell_cast_effect(Ref<PackedScene> value) {
|
||||
_spell_cast_effect = value;
|
||||
}
|
||||
|
||||
Ref<PackedScene> Spell::get_projectile() {
|
||||
return _projectile;
|
||||
@ -914,6 +890,18 @@ void Spell::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_needs_target", "value"), &Spell::set_needs_target);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "needs_target"), "set_needs_target", "get_needs_target");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_visual_spell_effects"), &Spell::get_visual_spell_effects);
|
||||
ClassDB::bind_method(D_METHOD("set_visual_spell_effects", "value"), &Spell::set_visual_spell_effects);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "visual_spell_effects", PROPERTY_HINT_RESOURCE_TYPE, "SpellEffectVisual"), "set_visual_spell_effects", "get_visual_spell_effects");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_projectile_data"), &Spell::get_spell_projectile_data);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_projectile_data", "value"), &Spell::set_spell_projectile_data);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "spell_projectile_data", PROPERTY_HINT_RESOURCE_TYPE, "SpellProjectileData"), "set_spell_projectile_data", "get_spell_projectile_data");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_world_effect_data"), &Spell::get_world_effect_data);
|
||||
ClassDB::bind_method(D_METHOD("set_world_effect_data", "value"), &Spell::set_world_effect_data);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "world_effect_data", PROPERTY_HINT_RESOURCE_TYPE, "WorldEffectData"), "set_world_effect_data", "get_world_effect_data");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_damage_scale_for_level"), &Spell::get_damage_scale_for_level);
|
||||
ClassDB::bind_method(D_METHOD("get_heal_scale_for_level"), &Spell::get_heal_scale_for_level);
|
||||
ClassDB::bind_method(D_METHOD("get_absorb_scale_for_level"), &Spell::get_absorb_scale_for_level);
|
||||
@ -1077,33 +1065,6 @@ void Spell::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("set_aoe_half_extents", "value"), &Spell::set_aoe_half_extents);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "aoe_half_extents"), "set_aoe_half_extents", "get_aoe_half_extents");
|
||||
|
||||
ADD_GROUP("Effect", "effect");
|
||||
ClassDB::bind_method(D_METHOD("has_effect_visual"), &Spell::has_effect_visual);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_effect_visual_point"), &Spell::get_effect_visual_point);
|
||||
ClassDB::bind_method(D_METHOD("set_effect_visual_point", "value"), &Spell::set_effect_visual_point);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "effect_visual_point", PROPERTY_HINT_ENUM, EntityEnums::BINDING_STRING_CHARCATER_SKELETON_POINTS), "set_effect_visual_point", "get_effect_visual_point");
|
||||
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_effect_visual"), &Spell::get_effect_visual);
|
||||
ClassDB::bind_method(D_METHOD("set_effect_visual", "value"), &Spell::set_effect_visual);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "effect_visual", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_effect_visual", "get_effect_visual");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("has_spell_cast_finish_effect"), &Spell::has_spell_cast_finish_effect);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_cast_finish_effect_point"), &Spell::get_spell_cast_finish_effect_point);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_cast_finish_effect_point", "value"), &Spell::set_spell_cast_finish_effect_point);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "spell_cast_finish_effect_point", PROPERTY_HINT_ENUM, EntityEnums::BINDING_STRING_CHARCATER_SKELETON_POINTS), "set_spell_cast_finish_effect_point", "get_spell_cast_finish_effect_point");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_cast_finish_effect"), &Spell::get_spell_cast_finish_effect);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_cast_finish_effect", "value"), &Spell::set_spell_cast_finish_effect);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "effect_spell_cast_finish_effect", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_spell_cast_finish_effect", "get_spell_cast_finish_effect");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("has_spell_cast_effect"), &Spell::has_spell_cast_effect);
|
||||
ClassDB::bind_method(D_METHOD("get_spell_cast_effect"), &Spell::get_spell_cast_effect);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_cast_effect", "value"), &Spell::set_spell_cast_effect);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "effect_spell_cast_effect_id", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_spell_cast_effect", "get_spell_cast_effect");
|
||||
|
||||
ADD_GROUP("Projectile", "projectile");
|
||||
ClassDB::bind_method(D_METHOD("has_projectile"), &Spell::has_projectile);
|
||||
ClassDB::bind_method(D_METHOD("get_projectile"), &Spell::get_projectile);
|
||||
|
46
data/spell.h
46
data/spell.h
@ -3,7 +3,6 @@
|
||||
|
||||
#include "core/resource.h"
|
||||
#include "scene/resources/curve.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
#include "scene/resources/texture.h"
|
||||
|
||||
#include "../entity_enums.h"
|
||||
@ -16,6 +15,10 @@
|
||||
#include "../pipelines/spell_damage_info.h"
|
||||
#include "../infos/aura_infos.h"
|
||||
|
||||
#include "spell_effect_visual.h"
|
||||
#include "spell_projectile_data.h"
|
||||
#include "world_effect_data.h"
|
||||
|
||||
class Entity;
|
||||
class Aura;
|
||||
class SpellCastInfo;
|
||||
@ -157,6 +160,15 @@ public:
|
||||
String get_spell_description();
|
||||
void set_spell_description(String value);
|
||||
|
||||
Ref<SpellEffectVisual> get_visual_spell_effects();
|
||||
void set_visual_spell_effects(Ref<SpellEffectVisual> value);
|
||||
|
||||
Ref<SpellProjectileData> get_spell_projectile_data();
|
||||
void set_spell_projectile_data(Ref<SpellProjectileData> value);
|
||||
|
||||
Ref<WorldEffectData> get_world_effect_data();
|
||||
void set_world_effect_data(Ref<WorldEffectData> value);
|
||||
|
||||
float get_damage_scale_for_level(int level);
|
||||
float get_heal_scale_for_level(int level);
|
||||
float get_absorb_scale_for_level(int level);
|
||||
@ -227,26 +239,6 @@ public:
|
||||
Vector3 get_aoe_half_extents();
|
||||
void set_aoe_half_extents(Vector3 value);
|
||||
|
||||
bool has_effect_visual();
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints get_effect_visual_point();
|
||||
void set_effect_visual_point(EntityEnums::CharacterSkeletonPoints point);
|
||||
|
||||
Ref<PackedScene> get_effect_visual();
|
||||
void set_effect_visual(Ref<PackedScene> value);
|
||||
|
||||
bool has_spell_cast_finish_effect();
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints get_spell_cast_finish_effect_point();
|
||||
void set_spell_cast_finish_effect_point(EntityEnums::CharacterSkeletonPoints point);
|
||||
|
||||
Ref<PackedScene> get_spell_cast_finish_effect();
|
||||
void set_spell_cast_finish_effect(Ref<PackedScene> value);
|
||||
|
||||
bool has_spell_cast_effect();
|
||||
Ref<PackedScene> get_spell_cast_effect();
|
||||
void set_spell_cast_effect(Ref<PackedScene> value);
|
||||
|
||||
Ref<PackedScene> get_projectile();
|
||||
void set_projectile(Ref<PackedScene> value);
|
||||
|
||||
@ -403,6 +395,10 @@ private:
|
||||
String _spell_name;
|
||||
String _spell_description;
|
||||
|
||||
Ref<SpellEffectVisual> _visual_spell_effects;
|
||||
Ref<SpellProjectileData> _spell_projectile_data;
|
||||
Ref<WorldEffectData> _world_effect_data;
|
||||
|
||||
bool _has_range;
|
||||
float _range;
|
||||
|
||||
@ -432,14 +428,6 @@ private:
|
||||
SpellAOEColliderType _aoe_colliderType;
|
||||
Vector3 _aoe_half_extents;
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints _effect_visual_point;
|
||||
Ref<PackedScene> _effect_visual;
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints _spell_cast_finish_effect_point;
|
||||
Ref<PackedScene> _spell_cast_finish_effect;
|
||||
|
||||
Ref<PackedScene> _spell_cast_effect;
|
||||
|
||||
Ref<PackedScene> _projectile;
|
||||
float _projectile_speed;
|
||||
float _projectile_time;
|
||||
|
10
data/spell_effect_visual.cpp
Normal file
10
data/spell_effect_visual.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "spell_effect_visual.h"
|
||||
|
||||
SpellEffectVisual::SpellEffectVisual() {
|
||||
}
|
||||
|
||||
SpellEffectVisual::~SpellEffectVisual() {
|
||||
}
|
||||
|
||||
void SpellEffectVisual::_bind_methods() {
|
||||
}
|
19
data/spell_effect_visual.h
Normal file
19
data/spell_effect_visual.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef SPELL_EFFECT_VISUAL_H
|
||||
#define SPELL_EFFECT_VISUAL_H
|
||||
|
||||
#include "core/resource.h"
|
||||
|
||||
class SpellEffectVisual : public Resource {
|
||||
GDCLASS(SpellEffectVisual, Resource);
|
||||
|
||||
public:
|
||||
SpellEffectVisual();
|
||||
~SpellEffectVisual();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
//private:
|
||||
};
|
||||
|
||||
#endif
|
117
data/spell_effect_visual_simple.cpp
Normal file
117
data/spell_effect_visual_simple.cpp
Normal file
@ -0,0 +1,117 @@
|
||||
#include "spell_effect_visual_simple.h"
|
||||
|
||||
|
||||
bool SpellEffectVisualSimple::has_spell_effect_visual() {
|
||||
return _effect_visual.is_valid();
|
||||
}
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints SpellEffectVisualSimple::get_spell_effect_visual_point() {
|
||||
return _effect_visual_point;
|
||||
}
|
||||
void SpellEffectVisualSimple::set_spell_effect_visual_point(EntityEnums::CharacterSkeletonPoints point) {
|
||||
_effect_visual_point = point;
|
||||
}
|
||||
|
||||
Ref<PackedScene> SpellEffectVisualSimple::get_spell_effect_visual() {
|
||||
return _effect_visual;
|
||||
}
|
||||
void SpellEffectVisualSimple::set_spell_effect_visual(Ref<PackedScene> value) {
|
||||
_effect_visual = value;
|
||||
}
|
||||
|
||||
bool SpellEffectVisualSimple::has_spell_cast_finish_effect() {
|
||||
return _spell_cast_finish_effect.is_valid();
|
||||
}
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints SpellEffectVisualSimple::get_spell_cast_finish_effect_point() {
|
||||
return _spell_cast_finish_effect_point;
|
||||
}
|
||||
void SpellEffectVisualSimple::set_spell_cast_finish_effect_point(EntityEnums::CharacterSkeletonPoints point) {
|
||||
_spell_cast_finish_effect_point = point;
|
||||
}
|
||||
|
||||
Ref<PackedScene> SpellEffectVisualSimple::get_spell_cast_finish_effect() {
|
||||
return _spell_cast_finish_effect;
|
||||
}
|
||||
void SpellEffectVisualSimple::set_spell_cast_finish_effect(Ref<PackedScene> value) {
|
||||
_spell_cast_finish_effect = value;
|
||||
}
|
||||
|
||||
bool SpellEffectVisualSimple::has_spell_cast_effect() {
|
||||
return _spell_cast_effect.is_valid();
|
||||
}
|
||||
Ref<PackedScene> SpellEffectVisualSimple::get_spell_cast_effect() {
|
||||
return _spell_cast_effect;
|
||||
}
|
||||
void SpellEffectVisualSimple::set_spell_cast_effect(Ref<PackedScene> value) {
|
||||
_spell_cast_effect = value;
|
||||
}
|
||||
|
||||
|
||||
//Visual Effect
|
||||
|
||||
bool SpellEffectVisualSimple::has_aura_effect_visual() {
|
||||
return _effect_visual.is_valid();
|
||||
}
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints SpellEffectVisualSimple::get_aura_effect_visual_point() {
|
||||
return _aura_effect_visual_point;
|
||||
}
|
||||
void SpellEffectVisualSimple::set_aura_effect_visual_point(EntityEnums::CharacterSkeletonPoints point) {
|
||||
_aura_effect_visual_point = point;
|
||||
}
|
||||
|
||||
Ref<PackedScene> SpellEffectVisualSimple::get_aura_effect_visual() {
|
||||
return _aura_effect_visual;
|
||||
}
|
||||
void SpellEffectVisualSimple::set_aura_effect_visual(Ref<PackedScene> value) {
|
||||
_aura_effect_visual = value;
|
||||
}
|
||||
|
||||
|
||||
SpellEffectVisualSimple::SpellEffectVisualSimple() {
|
||||
}
|
||||
|
||||
SpellEffectVisualSimple::~SpellEffectVisualSimple() {
|
||||
}
|
||||
|
||||
void SpellEffectVisualSimple::_bind_methods() {
|
||||
|
||||
ADD_GROUP("Effect", "spell_effect");
|
||||
ClassDB::bind_method(D_METHOD("has_spell_effect_visual"), &SpellEffectVisualSimple::has_spell_effect_visual);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_effect_visual_point"), &SpellEffectVisualSimple::get_spell_effect_visual_point);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_effect_visual_point", "value"), &SpellEffectVisualSimple::set_spell_effect_visual_point);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "spell_effect_visual_point", PROPERTY_HINT_ENUM, EntityEnums::BINDING_STRING_CHARCATER_SKELETON_POINTS), "set_spell_effect_visual_point", "get_spell_effect_visual_point");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_effect_visual"), &SpellEffectVisualSimple::get_spell_effect_visual);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_effect_visual", "value"), &SpellEffectVisualSimple::set_spell_effect_visual);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "spell_effect_visual", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_spell_effect_visual", "get_spell_effect_visual");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("has_spell_spell_cast_finish_effect"), &SpellEffectVisualSimple::has_spell_cast_finish_effect);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_cast_finish_effect_point"), &SpellEffectVisualSimple::get_spell_cast_finish_effect_point);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_cast_finish_effect_point", "value"), &SpellEffectVisualSimple::set_spell_cast_finish_effect_point);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "spell_cast_finish_effect_point", PROPERTY_HINT_ENUM, EntityEnums::BINDING_STRING_CHARCATER_SKELETON_POINTS), "set_spell_cast_finish_effect_point", "get_spell_cast_finish_effect_point");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_spell_cast_finish_effect"), &SpellEffectVisualSimple::get_spell_cast_finish_effect);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_cast_finish_effect", "value"), &SpellEffectVisualSimple::set_spell_cast_finish_effect);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "effect_spell_cast_finish_effect", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_spell_cast_finish_effect", "get_spell_cast_finish_effect");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("has_spell_cast_effect"), &SpellEffectVisualSimple::has_spell_cast_effect);
|
||||
ClassDB::bind_method(D_METHOD("get_spell_cast_effect"), &SpellEffectVisualSimple::get_spell_cast_effect);
|
||||
ClassDB::bind_method(D_METHOD("set_spell_cast_effect", "value"), &SpellEffectVisualSimple::set_spell_cast_effect);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "effect_spell_cast_effect_id", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_spell_cast_effect", "get_spell_cast_effect");
|
||||
|
||||
//Visual Effect
|
||||
ADD_GROUP("Aura Effect", "aura_effect");
|
||||
ClassDB::bind_method(D_METHOD("has_aura_effect_visual"), &SpellEffectVisualSimple::has_aura_effect_visual);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_aura_effect_visual_point"), &SpellEffectVisualSimple::get_aura_effect_visual_point);
|
||||
ClassDB::bind_method(D_METHOD("set_aura_effect_visual_point", "value"), &SpellEffectVisualSimple::set_aura_effect_visual_point);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "aura_effect_visual_point", PROPERTY_HINT_ENUM, EntityEnums::BINDING_STRING_CHARCATER_SKELETON_POINTS), "set_aura_effect_visual_point", "get_aura_effect_visual_point");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_aura_effect_visual"), &SpellEffectVisualSimple::get_aura_effect_visual);
|
||||
ClassDB::bind_method(D_METHOD("set_aura_effect_visual", "value"), &SpellEffectVisualSimple::set_aura_effect_visual);
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "aura_effect_visual", PROPERTY_HINT_RESOURCE_TYPE, "PackedScene"), "set_aura_effect_visual", "get_aura_effect_visual");
|
||||
}
|
62
data/spell_effect_visual_simple.h
Normal file
62
data/spell_effect_visual_simple.h
Normal file
@ -0,0 +1,62 @@
|
||||
#ifndef SPELL_EFFECT_VISUAL_SIMPLE_H
|
||||
#define SPELL_EFFECT_VISUAL_SIMPLE_H
|
||||
|
||||
#include "spell_effect_visual.h"
|
||||
|
||||
#include "scene/resources/packed_scene.h"
|
||||
|
||||
#include "../entity_enums.h"
|
||||
|
||||
class SpellEffectVisualSimple : public SpellEffectVisual {
|
||||
GDCLASS(SpellEffectVisualSimple, SpellEffectVisual);
|
||||
|
||||
public:
|
||||
bool has_spell_effect_visual();
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints get_spell_effect_visual_point();
|
||||
void set_spell_effect_visual_point(EntityEnums::CharacterSkeletonPoints point);
|
||||
|
||||
Ref<PackedScene> get_spell_effect_visual();
|
||||
void set_spell_effect_visual(Ref<PackedScene> value);
|
||||
|
||||
bool has_spell_cast_finish_effect();
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints get_spell_cast_finish_effect_point();
|
||||
void set_spell_cast_finish_effect_point(EntityEnums::CharacterSkeletonPoints point);
|
||||
|
||||
Ref<PackedScene> get_spell_cast_finish_effect();
|
||||
void set_spell_cast_finish_effect(Ref<PackedScene> value);
|
||||
|
||||
bool has_spell_cast_effect();
|
||||
Ref<PackedScene> get_spell_cast_effect();
|
||||
void set_spell_cast_effect(Ref<PackedScene> value);
|
||||
|
||||
//VisualEffect
|
||||
bool has_aura_effect_visual();
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints get_aura_effect_visual_point();
|
||||
void set_aura_effect_visual_point(EntityEnums::CharacterSkeletonPoints point);
|
||||
|
||||
Ref<PackedScene> get_aura_effect_visual();
|
||||
void set_aura_effect_visual(Ref<PackedScene> value);
|
||||
|
||||
SpellEffectVisualSimple();
|
||||
~SpellEffectVisualSimple();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
private:
|
||||
EntityEnums::CharacterSkeletonPoints _effect_visual_point;
|
||||
Ref<PackedScene> _effect_visual;
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints _spell_cast_finish_effect_point;
|
||||
Ref<PackedScene> _spell_cast_finish_effect;
|
||||
|
||||
Ref<PackedScene> _spell_cast_effect;
|
||||
|
||||
EntityEnums::CharacterSkeletonPoints _aura_effect_visual_point;
|
||||
Ref<PackedScene> _aura_effect_visual;
|
||||
};
|
||||
|
||||
#endif
|
10
data/spell_projectile_data.cpp
Normal file
10
data/spell_projectile_data.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "spell_projectile_data.h"
|
||||
|
||||
SpellProjectileData::SpellProjectileData() {
|
||||
}
|
||||
|
||||
SpellProjectileData::~SpellProjectileData() {
|
||||
}
|
||||
|
||||
void SpellProjectileData::_bind_methods() {
|
||||
}
|
19
data/spell_projectile_data.h
Normal file
19
data/spell_projectile_data.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef SPELL_PROJECTILE_DATA_H
|
||||
#define SPELL_PROJECTILE_DATA_H
|
||||
|
||||
#include "core/resource.h"
|
||||
|
||||
class SpellProjectileData : public Resource {
|
||||
GDCLASS(SpellProjectileData, Resource);
|
||||
|
||||
public:
|
||||
SpellProjectileData();
|
||||
~SpellProjectileData();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
//private:
|
||||
};
|
||||
|
||||
#endif
|
10
data/world_effect_data.cpp
Normal file
10
data/world_effect_data.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "world_effect_data.h"
|
||||
|
||||
WorldEffectData::WorldEffectData() {
|
||||
}
|
||||
|
||||
WorldEffectData::~WorldEffectData() {
|
||||
}
|
||||
|
||||
void WorldEffectData::_bind_methods() {
|
||||
}
|
19
data/world_effect_data.h
Normal file
19
data/world_effect_data.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef WORLD_EFFECT_DATA_H
|
||||
#define WORLD_EFFECT_DATA_H
|
||||
|
||||
#include "core/resource.h"
|
||||
|
||||
class WorldEffectData : public Resource {
|
||||
GDCLASS(WorldEffectData, Resource);
|
||||
|
||||
public:
|
||||
WorldEffectData();
|
||||
~WorldEffectData();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
//private:
|
||||
};
|
||||
|
||||
#endif
|
@ -76,6 +76,14 @@
|
||||
#include "data/mob_data.h"
|
||||
#include "data/player_character_data.h"
|
||||
|
||||
#include "data/spell_effect_visual.h"
|
||||
#include "data/spell_effect_visual_simple.h"
|
||||
#include "data/spell_projectile_data.h"
|
||||
#include "data/world_effect_data.h"
|
||||
|
||||
#include "spells/spell_projectile.h"
|
||||
#include "spells/world_spell_effect.h"
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
#include "editor/editor_plugin.h"
|
||||
|
||||
@ -170,6 +178,14 @@ void register_entity_spell_system_types() {
|
||||
ClassDB::register_class<MobData>();
|
||||
ClassDB::register_class<PlayerCharacterData>();
|
||||
|
||||
ClassDB::register_class<SpellEffectVisual>();
|
||||
ClassDB::register_class<SpellEffectVisualSimple>();
|
||||
ClassDB::register_class<SpellProjectileData>();
|
||||
ClassDB::register_class<WorldEffectData>();
|
||||
|
||||
ClassDB::register_class<SpellProjectile>();
|
||||
ClassDB::register_class<WorldSpellEffect>();
|
||||
|
||||
//meshes
|
||||
ClassDB::register_class<MeshDataResource>();
|
||||
|
||||
|
11
spells/spell_projectile.cpp
Normal file
11
spells/spell_projectile.cpp
Normal file
@ -0,0 +1,11 @@
|
||||
#include "spell_projectile.h"
|
||||
|
||||
|
||||
SpellProjectile::SpellProjectile() {
|
||||
}
|
||||
|
||||
SpellProjectile::~SpellProjectile() {
|
||||
}
|
||||
|
||||
void SpellProjectile::_bind_methods() {
|
||||
}
|
28
spells/spell_projectile.h
Normal file
28
spells/spell_projectile.h
Normal file
@ -0,0 +1,28 @@
|
||||
#ifndef SPELL_PROJECTILE_H
|
||||
#define SPELL_PROJECTILE_H
|
||||
|
||||
#ifdef ENTITIES_2D
|
||||
#include "scene/2d/node_2d.h"
|
||||
#else
|
||||
#include "scene/3d/spatial.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ENTITIES_2D
|
||||
class SpellProjectile : public Node2D {
|
||||
GDCLASS(SpellProjectile, Node2D);
|
||||
#else
|
||||
class SpellProjectile : public Spatial {
|
||||
GDCLASS(SpellProjectile, Spatial);
|
||||
#endif
|
||||
|
||||
public:
|
||||
SpellProjectile();
|
||||
~SpellProjectile();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
//private:
|
||||
};
|
||||
|
||||
#endif
|
10
spells/world_spell_effect.cpp
Normal file
10
spells/world_spell_effect.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include "world_spell_effect.h"
|
||||
|
||||
WorldSpellEffect::WorldSpellEffect() {
|
||||
}
|
||||
|
||||
WorldSpellEffect::~WorldSpellEffect() {
|
||||
}
|
||||
|
||||
void WorldSpellEffect::_bind_methods() {
|
||||
}
|
19
spells/world_spell_effect.h
Normal file
19
spells/world_spell_effect.h
Normal file
@ -0,0 +1,19 @@
|
||||
#ifndef WORLD_SPELL_EFFECT_H
|
||||
#define WORLD_SPELL_EFFECT_H
|
||||
|
||||
#include "../entities/entity.h"
|
||||
|
||||
class WorldSpellEffect : public Entity {
|
||||
GDCLASS(WorldSpellEffect, Entity);
|
||||
|
||||
public:
|
||||
WorldSpellEffect();
|
||||
~WorldSpellEffect();
|
||||
|
||||
protected:
|
||||
static void _bind_methods();
|
||||
|
||||
//private:
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user