From d5a6aec9d1a6810099a68178d44baa680000110c Mon Sep 17 00:00:00 2001 From: Sara Date: Thu, 2 May 2024 15:08:45 +0200 Subject: [PATCH] feat: added character_type to CharacterActor --- src/character_actor.cpp | 10 ++++++++++ src/character_actor.hpp | 6 +++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/character_actor.cpp b/src/character_actor.cpp index 273d0fb..3667370 100644 --- a/src/character_actor.cpp +++ b/src/character_actor.cpp @@ -17,6 +17,7 @@ void CharacterActor::_bind_methods() { #define CLASSNAME CharacterActor GDPROPERTY_HINTED(rotation_speed_curve, Variant::OBJECT, PROPERTY_HINT_RESOURCE_TYPE, "Curve"); GDPROPERTY_HINTED(target, Variant::OBJECT, PROPERTY_HINT_NODE_TYPE, "Node"); + GDPROPERTY_HINTED(character_type, Variant::INT, PROPERTY_HINT_ENUM, "Neutral,Player,Enemy"); GDPROPERTY(acceleration, Variant::FLOAT); GDPROPERTY(walk_speed, Variant::FLOAT); GDPROPERTY(sprint_speed, Variant::FLOAT); @@ -195,6 +196,15 @@ void CharacterActor::set_state(goap::State state) { } } +void CharacterActor::set_character_type(int character_type) { + this->character_type = static_cast(character_type); + UtilityFunctions::print("set_character_type ", character_type); +} + +int CharacterActor::get_character_type() const { + return static_cast(this->character_type); +} + void CharacterActor::process_behaviour(double delta_time) { if(this->current_state.is_complete(this) || this->planner->is_action_complete()) this->set_state(this->planner->get_next_state()); diff --git a/src/character_actor.hpp b/src/character_actor.hpp index 11279b4..c106158 100644 --- a/src/character_actor.hpp +++ b/src/character_actor.hpp @@ -70,7 +70,9 @@ public: Node *get_target() const; goap::Planner *get_planner() const; void set_state(goap::State state); - + void set_character_type(int character_type); + int get_character_type() const; + // character settings void set_acceleration(float acceleration); float get_acceleration() const; void set_walk_speed(float walk_speed); @@ -113,6 +115,8 @@ private: Ref data; float fire_interval{0.f}; // derived from 1 / the current weapon's rps + CharacterType character_type{CharacterType::NEUTRAL}; + float acceleration{20.f}; float walk_speed{3.f}; float sprint_speed{5.f};