From f89d2ccf53a60c3bcb4527e5c69717ace361af3e Mon Sep 17 00:00:00 2001 From: Sara Date: Fri, 13 Jun 2025 14:37:16 +0200 Subject: [PATCH] initial --- .../index/actor_body.cpp.3DBD3D1A5C1819D9.idx | Bin 0 -> 1424 bytes .../index/actor_body.h.E6B5DA66D5128F55.idx | Bin 0 -> 2888 bytes .../index/equipment.cpp.0DAD3B9F041D4E8F.idx | Bin 0 -> 7180 bytes .../index/equipment.h.87F30A43991E43C4.idx | Bin 0 -> 13676 bytes .../index/macros.h.2ABF5D78F9EC4C2D.idx | Bin 0 -> 252 bytes .../register_types.cpp.C2CF44F1B437E8E2.idx | Bin 0 -> 1658 bytes .../register_types.h.1B701265B4D42B11.idx | Bin 0 -> 438 bytes .gitignore | 6 +- compile_commands.json | 1 + modules/PROJECT/register_types.cpp | 15 -- modules/PROJECT/register_types.h | 9 -- modules/{PROJECT => tabtargeting}/SCsub | 0 .../__pycache__/config.cpython-313.pyc | Bin 0 -> 399 bytes modules/tabtargeting/actor_body.cpp | 10 ++ modules/tabtargeting/actor_body.h | 20 +++ modules/tabtargeting/actor_state_machine.h | 13 ++ modules/{PROJECT => tabtargeting}/config.py | 0 modules/tabtargeting/equipment.cpp | 138 ++++++++++++++++++ modules/tabtargeting/equipment.h | 104 +++++++++++++ modules/{PROJECT => tabtargeting}/macros.h | 0 modules/tabtargeting/register_types.cpp | 23 +++ modules/tabtargeting/register_types.h | 9 ++ project/export_presets.cfg | 4 +- project/project.godot | 2 +- 24 files changed, 324 insertions(+), 30 deletions(-) create mode 100644 .cache/clangd/index/actor_body.cpp.3DBD3D1A5C1819D9.idx create mode 100644 .cache/clangd/index/actor_body.h.E6B5DA66D5128F55.idx create mode 100644 .cache/clangd/index/equipment.cpp.0DAD3B9F041D4E8F.idx create mode 100644 .cache/clangd/index/equipment.h.87F30A43991E43C4.idx create mode 100644 .cache/clangd/index/macros.h.2ABF5D78F9EC4C2D.idx create mode 100644 .cache/clangd/index/register_types.cpp.C2CF44F1B437E8E2.idx create mode 100644 .cache/clangd/index/register_types.h.1B701265B4D42B11.idx create mode 120000 compile_commands.json delete mode 100644 modules/PROJECT/register_types.cpp delete mode 100644 modules/PROJECT/register_types.h rename modules/{PROJECT => tabtargeting}/SCsub (100%) create mode 100644 modules/tabtargeting/__pycache__/config.cpython-313.pyc create mode 100644 modules/tabtargeting/actor_body.cpp create mode 100644 modules/tabtargeting/actor_body.h create mode 100644 modules/tabtargeting/actor_state_machine.h rename modules/{PROJECT => tabtargeting}/config.py (100%) create mode 100644 modules/tabtargeting/equipment.cpp create mode 100644 modules/tabtargeting/equipment.h rename modules/{PROJECT => tabtargeting}/macros.h (100%) create mode 100644 modules/tabtargeting/register_types.cpp create mode 100644 modules/tabtargeting/register_types.h diff --git a/.cache/clangd/index/actor_body.cpp.3DBD3D1A5C1819D9.idx b/.cache/clangd/index/actor_body.cpp.3DBD3D1A5C1819D9.idx new file mode 100644 index 0000000000000000000000000000000000000000..5b29a397d1eae4d724a4215a03a8e9ea0a09d13c GIT binary patch literal 1424 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 literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/equipment.h.87F30A43991E43C4.idx b/.cache/clangd/index/equipment.h.87F30A43991E43C4.idx new file mode 100644 index 0000000000000000000000000000000000000000..3202309daa2f7275b9113ed98595269ebcfe9685 GIT binary patch literal 13676 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 VN-pLGF&J5|uGa6}Q>4eh007L)M>GHc literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/register_types.cpp.C2CF44F1B437E8E2.idx b/.cache/clangd/index/register_types.cpp.C2CF44F1B437E8E2.idx new file mode 100644 index 0000000000000000000000000000000000000000..aca6c2606134091d37028df1b949f00f4a22b886 GIT binary patch literal 1658 zcmYk52T&7f7>54<39#8DbOg zAQEgKc$5(-iVZJ06)AGU2`Gr=D7QKj$jnJ8>fp;|t^KYi6a=WTS*A;^e2=nD#tTcMXic^QVjjZUo z-(vD-UT1b<9N^p+E@zLuV>C#)w-Du@Q2XgMG zRrJWJmswZo3nf+UeWv;F53APd`hy=0YU-6rry|W1?Mxce<(&p6l$=fm9BqNRCW}_) zZl0AXk~Z%z)X)u#?~Ae;l-m2nE(FUwDP2CMYvg*1F~KH=wXhnr3P#0;58qU8)mh}J z6N4YfI+mp>_zdA?w8LqasGdb1(o9JU-%=cB;dn=Xb#_?;9+XvM-;L-VzZ4Uq-yfG= z*%#m_w>W;}HvPkw09Hex6`uLKS*L0B$Tp|KgITXWdwBBBi$+xxw-o46)pUmCtg1_> zZu5Y7U#1~%@<~j-u4$iNYDVhF6Rcx^U(f2dH)>f{+|wO-${ceBJiF}ptNeE5w&&>* zgLm@q+De4LnT}>|hq@LQQF&m`@q0SjH>aVM^tm}n+2P;h#~)9!))l<_jwDd(i|V4A zCWN|H;I62HI;)H|IxVlF@vZz?$hmA91Ab1@yN2UEvQZg z7At4CiXmXz%L|KpNM|w46<5F`Xs^wH$mHV?m)h$krM!Vc*Nfe2EBai93L!UCRqKZ2 zPG8HBujH)Z#aZX%!}tENT-04pg$gtxY&5+og``V~~s<(N5;1M{K1USCqx&ta^IJUhlk`c54F5c$ZY$N-@AgWCOg=#pTLR> z_fN-41cAVP?WOBy)*QkaZC9G78(O*0NKq1FpUjlnE;euG?WwQrvi%-juR_&~e$KFw zAM{UI-t)pP!`GKWNH?CDkeqw!(zHHMQ`Mubb;IRFD$!=O_O9x&$uWva9;FT>q{i)W zM9-;3)g5;q%=1PV1OdR5!b)km zn+A4NbV54@fNX=Av7wtJyb#R9Y2xfQ`j}E%r4W7$!*tE%9^O_812c(aqAK6y(l~d9 ze)N((D&xs`O}-qIc-e%*6bnOT5}BmVm&Juw4y4;{4M$~&3~k85S9$LxgqG6K1&B(B zn(*B)Q(8jWguj6O|0&28n|EcSy#z9W!Z&e@XxSq$JLnE_IJnO&TBYy8yHB8pNWnDgBKte0}BuVLl7V$ zhA2QJ3~7V-Uqds$|1*B(y$RbjzZ_#Ox_y`oZ;Xx|6&wEDlE98gutlF3CQIU$SiWyq zrieS;jRENVegGJorTb>-wpm8RMaG7r=oIWM;^1OUquTytV{UJ^-O|cp3xO!1sG=q* zCaPoztLnWN`|lr?0tHONt~dYi4R>VvKkrI}smbH{y>3Ab|)A R@j^TiKV%o;>nOYf{10(ojhg@f literal 0 HcmV?d00001 diff --git a/.cache/clangd/index/register_types.h.1B701265B4D42B11.idx b/.cache/clangd/index/register_types.h.1B701265B4D42B11.idx new file mode 100644 index 0000000000000000000000000000000000000000..9a8c86f1d99cb1d983a2c5559a768bf8eff2f0ca GIT binary patch literal 438 zcmWIYbaPwB$iU#7;#rZKT9U}Zz`!5^#Kk2=nHz!h7NA_koUIcaxegf!xE70u>)mSQ z%iCS1{6f;n=U9o#+?JH6fRFDMZGEv$VTaTYn|sguS54dQTimgZe@C*AQR6x{jZbpy zJl#tUf4-L;de&*{rn3wDL^d!sn3ZuHO<}&B@tZG_t75yC<-ChtjP0#9>n8~wJi|J{ z*3jvDmgaUE~%D~CQ$iT_W$i})t z@qgBYOb TfC4sgPm>Gc5}#HvvM>Mu`#^{t literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore index b8680775..1e91b0d4 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ config.log engine/.github project/.godot -build/PROJECT.pck -build/PROJECT.x86_64 -build/PROJECT.exe +build/tabtargeting.pck +build/tabtargeting.x86_64 +build/tabtargeting.exe build.zip diff --git a/compile_commands.json b/compile_commands.json new file mode 120000 index 00000000..1cdd971f --- /dev/null +++ b/compile_commands.json @@ -0,0 +1 @@ +engine/compile_commands.json \ No newline at end of file diff --git a/modules/PROJECT/register_types.cpp b/modules/PROJECT/register_types.cpp deleted file mode 100644 index a367b16d..00000000 --- a/modules/PROJECT/register_types.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "register_types.h" - -#include "core/object/class_db.h" - -void initialize_PROJECT_module(ModuleInitializationLevel p_level) { - if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { - return; - } -} - -void uninitialize_PROJECT_module(ModuleInitializationLevel p_level) { - if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { - return; - } -} diff --git a/modules/PROJECT/register_types.h b/modules/PROJECT/register_types.h deleted file mode 100644 index 2a1d0257..00000000 --- a/modules/PROJECT/register_types.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef PROJECT_REGISTER_TYPES_H -#define PROJECT_REGISTER_TYPES_H - -#include "modules/register_module_types.h" - -void initialize_PROJECT_module(ModuleInitializationLevel p_level); -void uninitialize_PROJECT_module(ModuleInitializationLevel p_level); - -#endif // !PROJECT_REGISTER_TYPES_H diff --git a/modules/PROJECT/SCsub b/modules/tabtargeting/SCsub similarity index 100% rename from modules/PROJECT/SCsub rename to modules/tabtargeting/SCsub diff --git a/modules/tabtargeting/__pycache__/config.cpython-313.pyc b/modules/tabtargeting/__pycache__/config.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7edde2dc57e8619d5f61efd8459ba3faae9a47d5 GIT binary patch literal 399 zcmZ8dy-ve05cVadgjP{uWyiHw&-4s64&8L|x!f{u7xL{lPZpBvK~X9NeP zfk*k%2jkHYEAu)eT`k?N#m4%gEE^uhzHOAS5~a9ri@s6DS)t2yhwY0hh?mM%+N?Y2 zoI+zo)0Ta$tZ;JcBx>ahealth -= event.compound_damage; + print_line(vformat("Damage dealth (%d to %s, %d remaining", event.compound_damage, this->get_name(), this->health)); +} diff --git a/modules/tabtargeting/actor_body.h b/modules/tabtargeting/actor_body.h new file mode 100644 index 00000000..c1fa26ee --- /dev/null +++ b/modules/tabtargeting/actor_body.h @@ -0,0 +1,20 @@ +#ifndef ACTOR_BODY_H +#define ACTOR_BODY_H + +#include "scene/3d/physics/character_body_3d.h" +#include "equipment.h" +class ActorBody; + +class ActorBody : public CharacterBody3D { + GDCLASS(ActorBody, CharacterBody3D); + static void _bind_methods(); +public: + void receive_damage(DamageEvent event); + void send_damage(int amount, ActorBody *target); +private: + int health{10}; + int max_health{10}; + + class Equipment *equipment{nullptr}; +}; +#endif // !ACTOR_BODY_H diff --git a/modules/tabtargeting/actor_state_machine.h b/modules/tabtargeting/actor_state_machine.h new file mode 100644 index 00000000..0f71f381 --- /dev/null +++ b/modules/tabtargeting/actor_state_machine.h @@ -0,0 +1,13 @@ +#ifndef ACTOR_STATE_MACHINE_H +#define ACTOR_STATE_MACHINE_H + +#include "scene/main/node.h" + +class ActorStateMachine : public Node { + GDCLASS(ActorStateMachine, Node); + static void _bind_methods(); +public: +private: +}; + +#endif // !ACTOR_STATE_MACHINE_H diff --git a/modules/PROJECT/config.py b/modules/tabtargeting/config.py similarity index 100% rename from modules/PROJECT/config.py rename to modules/tabtargeting/config.py diff --git a/modules/tabtargeting/equipment.cpp b/modules/tabtargeting/equipment.cpp new file mode 100644 index 00000000..18a3de83 --- /dev/null +++ b/modules/tabtargeting/equipment.cpp @@ -0,0 +1,138 @@ +#include "equipment.h" +#include "macros.h" +#include "tabtargeting/actor_body.h" + +DamageEvent::DamageEvent(int damage, ActorBody *source) +: compound_damage{damage} +, initial_damage{damage} +, source{source} +{} + +void DamageStats::_bind_methods() { + BIND_PROPERTY(Variant::INT, damage_add); + BIND_PROPERTY(Variant::INT, damage_mul); + BIND_PROPERTY(Variant::INT, defend_add); + BIND_PROPERTY(Variant::INT, defend_mul); +} + +DamageEvent DamageStats::apply(DamageEvent event, ActorBody *owner) { + if(owner == event.get_source()) { + event.compound_damage *= this->damage_mul; + event.compound_damage += this->damage_add; + } else { + event.compound_damage *= this->defend_mul; + event.compound_damage += this->defend_add; + } + return event; +} + +void DamageStats::set_damage_add(int val) { + this->damage_add = val; +} +int DamageStats::get_damage_add() const { + return this->damage_add; +} +void DamageStats::set_damage_mul(float val) { + this->damage_mul = val; +} +float DamageStats::get_damage_mul() const { + return this->damage_mul; +} +void DamageStats::set_defend_add(int val) { + this->defend_add = val; +} +int DamageStats::get_defend_add() const { + return this->defend_add; +} +void DamageStats::set_defend_mul(float val) { + this->defend_mul = val; +} +float DamageStats::get_defend_mul() const { + return this->defend_mul; +} + +void EquipItem::_bind_methods() { + BIND_HPROPERTY(Variant::OBJECT, stats, PROPERTY_HINT_RESOURCE_TYPE, "DamageStats"); +} + +DamageEvent EquipItem::apply(DamageEvent event, ActorBody *owner) { + return this->stats->apply(event, owner); +} + +void EquipItem::set_stats(Ref stats) { + this->stats = stats; +} + +Ref EquipItem::get_stats() const { + return this->stats; +} + +void Weapon::_bind_methods() { + BIND_PROPERTY(Variant::INT, base_damage); +} + +void Weapon::set_base_damage(int amount) { + this->base_damage = amount; +} + +int Weapon::get_base_damage() const { + return this->base_damage; +} + +DamageEvent Weapon::create_base_damage_event(ActorBody *source) { + return DamageEvent(this->base_damage, source); +} + +void Armor::_bind_methods() { + BIND_HPROPERTY(Variant::INT, armor_type, PROPERTY_HINT_ENUM, "Helmet, Chest, Legs"); +} +void Armor::set_armor_type(int type) { + this->type = ArmorType(type); +} +int Armor::get_armor_type() const { + return this->type; +} + +void Equipment::_bind_methods() { + BIND_HPROPERTY(Variant::OBJECT, weapon, PROPERTY_HINT_RESOURCE_TYPE, "Weapon"); + BIND_HPROPERTY(Variant::OBJECT, helmet, PROPERTY_HINT_RESOURCE_TYPE, "Armor"); + BIND_HPROPERTY(Variant::OBJECT, chest, PROPERTY_HINT_RESOURCE_TYPE, "Armor"); + BIND_HPROPERTY(Variant::OBJECT, legs, PROPERTY_HINT_RESOURCE_TYPE, "Armor"); +} + +DamageEvent Equipment::apply(DamageEvent event, ActorBody *target) { + +} + +void Equipment::set_weapon(Ref weapon) { + this->weapon = weapon; +} + +Ref Equipment::get_weapon() const { + return this->weapon; +} + +void Equipment::set_helmet(Ref helmet) { + this->helmet = helmet; +} + +Ref Equipment::get_helmet() const { + return this->helmet; +} + +void Equipment::set_chest(Ref chest) { + this->chest = chest; +} + +Ref Equipment::get_chest() const { + return this->chest; +} + +void Equipment::set_legs(Ref legs) { + this->legs = legs; +} + +Ref Equipment::get_legs() const { + return this->legs; +} + diff --git a/modules/tabtargeting/equipment.h b/modules/tabtargeting/equipment.h new file mode 100644 index 00000000..2b540f8e --- /dev/null +++ b/modules/tabtargeting/equipment.h @@ -0,0 +1,104 @@ +#ifndef EQUIPMENT_H +#define EQUIPMENT_H + +#include "core/io/resource.h" +#include "core/templates/vector.h" +#include "scene/main/node.h" +class ActorBody; + +struct DamageEvent { + DamageEvent(int damage, ActorBody *source); + int compound_damage{1}; + int get_initial_damage() const; + ActorBody *get_source() const; +private: + int initial_damage{1}; + ActorBody *source{nullptr}; +}; + +class DamageModifier { +public: + virtual DamageEvent apply(DamageEvent event, ActorBody *target) = 0; +}; + +class DamageStats : public Resource, + public DamageModifier { + GDCLASS(DamageStats, Resource); + static void _bind_methods(); +public: + virtual DamageEvent apply(DamageEvent event, ActorBody *target) override; + void set_damage_add(int val); + int get_damage_add() const; + void set_damage_mul(float val); + float get_damage_mul() const; + void set_defend_add(int val); + int get_defend_add() const; + void set_defend_mul(float val); + float get_defend_mul() const; +public: + int damage_add{0}; + float damage_mul{1.f}; + int defend_add{0}; + float defend_mul{1.f}; +}; + +class EquipItem : public Resource, + public DamageModifier { + GDCLASS(EquipItem, Resource); + static void _bind_methods(); +public: + virtual DamageEvent apply(DamageEvent event, ActorBody *target) override; + void set_stats(Ref stats); + Ref get_stats() const; +private: + Ref stats{}; +}; + +class Weapon : public EquipItem { + GDCLASS(Weapon, EquipItem); + static void _bind_methods(); +public: + void set_base_damage(int amount); + int get_base_damage() const; + + DamageEvent create_base_damage_event(ActorBody *source); +private: + int base_damage{1}; +}; + +enum ArmorType { + Helmet, Chest, Legs +}; + +class Armor : public EquipItem { + GDCLASS(Armor, EquipItem); + static void _bind_methods(); +public: + void set_armor_type(int type); + int get_armor_type() const; +private: + ArmorType type{}; +}; + +class Equipment : public Node, + public DamageModifier { + GDCLASS(Equipment, Node); + static void _bind_methods(); +public: + virtual DamageEvent apply(DamageEvent event, ActorBody *target) override; + void set_weapon(Ref weapon); + Ref get_weapon() const; + void set_helmet(Ref helmet); + Ref get_helmet() const; + void set_chest(Ref chest); + Ref get_chest() const; + void set_legs(Ref legs); + Ref get_legs() const; +private: + Ref weapon{}; + Ref helmet{}; + Ref chest{}; + Ref legs{}; +}; + +#endif // !EQUIPMENT_H diff --git a/modules/PROJECT/macros.h b/modules/tabtargeting/macros.h similarity index 100% rename from modules/PROJECT/macros.h rename to modules/tabtargeting/macros.h diff --git a/modules/tabtargeting/register_types.cpp b/modules/tabtargeting/register_types.cpp new file mode 100644 index 00000000..ab2fc76d --- /dev/null +++ b/modules/tabtargeting/register_types.cpp @@ -0,0 +1,23 @@ +#include "register_types.h" + +#include "core/object/class_db.h" +#include "tabtargeting/equipment.h" +#include "tabtargeting/actor_body.h" + +void initialize_tabtargeting_module(ModuleInitializationLevel p_level) { + if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { + return; + } + ClassDB::register_class(); + ClassDB::register_class(); + ClassDB::register_class(); + ClassDB::register_class(); + ClassDB::register_class(); + ClassDB::register_class(); +} + +void uninitialize_tabtargeting_module(ModuleInitializationLevel p_level) { + if (p_level != MODULE_INITIALIZATION_LEVEL_SCENE) { + return; + } +} diff --git a/modules/tabtargeting/register_types.h b/modules/tabtargeting/register_types.h new file mode 100644 index 00000000..cbf1e6e5 --- /dev/null +++ b/modules/tabtargeting/register_types.h @@ -0,0 +1,9 @@ +#ifndef tabtargeting_REGISTER_TYPES_H +#define tabtargeting_REGISTER_TYPES_H + +#include "modules/register_module_types.h" + +void initialize_tabtargeting_module(ModuleInitializationLevel p_level); +void uninitialize_tabtargeting_module(ModuleInitializationLevel p_level); + +#endif // !tabtargeting_REGISTER_TYPES_H diff --git a/project/export_presets.cfg b/project/export_presets.cfg index a04762ac..c349193a 100644 --- a/project/export_presets.cfg +++ b/project/export_presets.cfg @@ -9,7 +9,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../build/PROJECT.x86_64" +export_path="../build/tabtargeting.x86_64" patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" @@ -51,7 +51,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="../build/PROJECT.exe" +export_path="../build/tabtargeting.exe" patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" diff --git a/project/project.godot b/project/project.godot index bd5ab3b0..a51099b5 100644 --- a/project/project.godot +++ b/project/project.godot @@ -10,6 +10,6 @@ config_version=5 [application] -config/name="PROJECT" +config/name="tabtargeting" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="res://icon.svg"