feat: added damage function to player
This commit is contained in:
parent
80270546e0
commit
5bb287252c
|
@ -1,4 +1,6 @@
|
||||||
#include "car_player.hpp"
|
#include "car_player.hpp"
|
||||||
|
#include "rally_rush_game_mode.hpp"
|
||||||
|
#include "utils/game_root.hpp"
|
||||||
#include "utils/player_input.hpp"
|
#include "utils/player_input.hpp"
|
||||||
#include <godot_cpp/variant/transform3d.hpp>
|
#include <godot_cpp/variant/transform3d.hpp>
|
||||||
#include <godot_cpp/classes/physics_direct_body_state3d.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});
|
this->set_scale({1,1,1});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Node *CarPlayer::to_node() { return this; }
|
||||||
|
|
||||||
void CarPlayer::on_steer(Ref<InputEvent> event, float value) {
|
void CarPlayer::on_steer(Ref<InputEvent> event, float value) {
|
||||||
this->set_current_steering(value * this->steering_factor);
|
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);
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,10 @@ public:
|
||||||
void on_steer(Ref<InputEvent> event, float value);
|
void on_steer(Ref<InputEvent> event, float value);
|
||||||
void on_brake(Ref<InputEvent> event, float value);
|
void on_brake(Ref<InputEvent> event, float value);
|
||||||
void on_accelerate(Ref<InputEvent> event, float value);
|
void on_accelerate(Ref<InputEvent> event, float value);
|
||||||
|
|
||||||
|
void damage();
|
||||||
private:
|
private:
|
||||||
int health{0};
|
int health{1};
|
||||||
|
|
||||||
const float max_speed{40.f};
|
const float max_speed{40.f};
|
||||||
const float max_speed_reverse{10.f};
|
const float max_speed_reverse{10.f};
|
||||||
|
|
Loading…
Reference in a new issue