feat: added damage function to player

This commit is contained in:
Sara 2024-05-21 11:55:34 +02:00
parent 80270546e0
commit 5bb287252c
2 changed files with 14 additions and 2 deletions

View file

@ -1,4 +1,6 @@
#include "car_player.hpp"
#include "rally_rush_game_mode.hpp"
#include "utils/game_root.hpp"
#include "utils/player_input.hpp"
#include <godot_cpp/variant/transform3d.hpp>
#include <godot_cpp/classes/physics_direct_body_state3d.hpp>
@ -19,6 +21,8 @@ void CarPlayer::spawn_at_position(Transform3D const &transform) {
this->set_scale({1,1,1});
}
Node *CarPlayer::to_node() { return this; }
void CarPlayer::on_steer(Ref<InputEvent> event, float value) {
this->set_current_steering(value * this->steering_factor);
}
@ -31,5 +35,11 @@ void CarPlayer::on_accelerate(Ref<InputEvent> input, float value) {
this->set_target_speed(max_speed * value);
}
Node *CarPlayer::to_node() { return this; }
void CarPlayer::damage() {
--this->health;
if(this->health <= 0) {
RallyRushGameMode *game_mode = Ref<RallyRushGameMode>(GameRoot3D::get_singleton()->get_game_mode()).ptr();
game_mode->notify_player_death();
}
}
}

View file

@ -20,8 +20,10 @@ public:
void on_steer(Ref<InputEvent> event, float value);
void on_brake(Ref<InputEvent> event, float value);
void on_accelerate(Ref<InputEvent> event, float value);
void damage();
private:
int health{0};
int health{1};
const float max_speed{40.f};
const float max_speed_reverse{10.f};