feat(enemy): els enemics poden disparar bales via tick d'IA
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
#include "game/entities/ship.hpp"
|
||||
#include "game/stage_system/stage_config.hpp"
|
||||
#include "game/stage_system/stage_manager.hpp"
|
||||
#include "game/systems/collision_system.hpp"
|
||||
|
||||
// Game over state machine
|
||||
enum class GameOverState : uint8_t {
|
||||
@@ -67,7 +68,7 @@ class GameScene final : public Scene {
|
||||
std::array<Enemy, Constants::MAX_ORNIS> enemies_;
|
||||
// 6 balas: P1=[0,1,2], P2=[3,4,5]. El cast a size_t evita la
|
||||
// widening conversion implícita que detecta clang-tidy.
|
||||
std::array<Bullet, static_cast<std::size_t>(Constants::MAX_BULLETS) * 2> bullets_;
|
||||
std::array<Bullet, static_cast<std::size_t>(Defaults::Entities::MAX_BULLETS_TOTAL)> bullets_;
|
||||
std::array<float, 2> hit_timer_per_player_; // Death timers per player (seconds)
|
||||
|
||||
// Lives and game over system
|
||||
@@ -144,6 +145,10 @@ class GameScene final : public Scene {
|
||||
void runStageLevelStart(float delta_time);
|
||||
void runStagePlaying(float delta_time);
|
||||
void runStageLevelCompleted(float delta_time);
|
||||
// Construeix el Collision::Context del frame actual (referències a tots els
|
||||
// pools/managers + on_player_hit). Reutilitzat tant per al tick d'IA com
|
||||
// per a runCollisionDetections.
|
||||
[[nodiscard]] auto buildCollisionContext() -> Systems::Collision::Context;
|
||||
// Helper: ejecuta colisiones de gameplay con el Context preparado.
|
||||
void runCollisionDetections();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user