Added a bunch on new classes (Visual related). Moved some of the bindings around.

This commit is contained in:
Relintai 2019-08-26 20:10:26 +02:00
parent 1667a315ed
commit c6b50a2c66
18 changed files with 457 additions and 144 deletions

8
SCsub
View File

@ -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")

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -0,0 +1,10 @@
#include "spell_effect_visual.h"
SpellEffectVisual::SpellEffectVisual() {
}
SpellEffectVisual::~SpellEffectVisual() {
}
void SpellEffectVisual::_bind_methods() {
}

View 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

View 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");
}

View 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

View File

@ -0,0 +1,10 @@
#include "spell_projectile_data.h"
SpellProjectileData::SpellProjectileData() {
}
SpellProjectileData::~SpellProjectileData() {
}
void SpellProjectileData::_bind_methods() {
}

View 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

View 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
View 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

View File

@ -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>();

View File

@ -0,0 +1,11 @@
#include "spell_projectile.h"
SpellProjectile::SpellProjectile() {
}
SpellProjectile::~SpellProjectile() {
}
void SpellProjectile::_bind_methods() {
}

28
spells/spell_projectile.h Normal file
View 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

View File

@ -0,0 +1,10 @@
#include "world_spell_effect.h"
WorldSpellEffect::WorldSpellEffect() {
}
WorldSpellEffect::~WorldSpellEffect() {
}
void WorldSpellEffect::_bind_methods() {
}

View 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