diff --git a/godot/AI/defeat_enemy_unit.tres b/godot/AI/defeat_enemy_unit.tres index a3a9c16..768b5de 100644 --- a/godot/AI/defeat_enemy_unit.tres +++ b/godot/AI/defeat_enemy_unit.tres @@ -5,5 +5,5 @@ requirements_dict = { "is_target_enemy": true } desired_state_dict = { -"is_target_dead": true +"is_target_unconscious": true } diff --git a/src/rts_actions.cpp b/src/rts_actions.cpp index 8bf316e..4a90b51 100644 --- a/src/rts_actions.cpp +++ b/src/rts_actions.cpp @@ -30,7 +30,7 @@ UseWeapon::UseWeapon() : Action() { this->required.insert("can_see_target", true); this->required.insert("is_in_range", true); - this->effects.insert("is_target_dead", true); + this->effects.insert("is_target_unconscious", true); } goap::State *UseWeapon::get_apply_state(goap::ActorWorldState *context) const { diff --git a/src/rts_player.cpp b/src/rts_player.cpp index ce6fca0..a123b57 100644 --- a/src/rts_player.cpp +++ b/src/rts_player.cpp @@ -117,7 +117,7 @@ bool RTSPlayer::order_activate_object(gd::Node3D *node) { } Unit *unit{gd::Object::cast_to(node)}; if(unit && unit->get_team() == UnitTeam::Enemy) { - this->selected_unit->set_target_goal(unit, goap::Goal::create("is_target_dead", true)); + this->selected_unit->set_target_goal(unit, goap::Goal::create("is_target_unconscious", true)); return true; } return unit != nullptr; diff --git a/src/unit_world_state.cpp b/src/unit_world_state.cpp index aa0eac5..7ef2b83 100644 --- a/src/unit_world_state.cpp +++ b/src/unit_world_state.cpp @@ -14,7 +14,7 @@ void UnitWorldState::_bind_methods() { GDSIGNAL("attention_changed"); GDFUNCTION(get_weapon_animation); GDFUNCTION(get_can_see_target); - GDFUNCTION(get_is_target_dead); + GDFUNCTION(get_is_target_unconscious); GDFUNCTION(get_is_at_target); GDFUNCTION(get_has_target); GDFUNCTION(get_target_node); @@ -84,9 +84,9 @@ bool UnitWorldState::get_has_target() const { return this->target_node != nullptr; } -bool UnitWorldState::get_is_target_dead() const { +bool UnitWorldState::get_is_target_unconscious() const { if(EntityHealth *health{this->target_node->get_node("%EntityHealth")}) - return health->get_injury_current() <= 0.f; + return !health->is_conscious(); return false; } diff --git a/src/unit_world_state.hpp b/src/unit_world_state.hpp index 6a49872..3009b10 100644 --- a/src/unit_world_state.hpp +++ b/src/unit_world_state.hpp @@ -28,7 +28,7 @@ public: bool get_can_see_node(gd::Node3D *node) const; bool get_is_at_target() const; bool get_has_target() const; - bool get_is_target_dead() const; + bool get_is_target_unconscious() const; bool get_is_target_unit() const; bool get_is_target_enemy() const; bool get_is_unit_enemy(Unit *unit) const;