Only auto aim and healthbars

This commit is contained in:
armel committed 2026-09-07 23:02:47 +02:00
1 parent 54c6327ac7
commit a914bd74fe
14 files changed
+95 -89

No files matched your search

+1 -1
View File
@@ -59,7 +59,7 @@ final class GameEngineTest extends TestCase
'health' => 1,
]);
$room->addPlayer($player);
$zombie = new Zombie(944.4, 540.0, $room->entities, $room, ['emergeTime' => 0.0]);
$zombie = new Zombie(944.4, 540.0, $room->entities, $room, ['emergeTime' => 0.0, 'health' => 20]);
$zombie->target = $player;
$room->entities->append($zombie);
$engine->tick(1.0 / 60.0);
+14 -2
View File
@@ -69,6 +69,18 @@ final class GameSimulatorTest extends TestCase
$this->assertSame(['p1' => true, 'p2' => false], $hosts);
}
#[Test]
public function lobby_snapshots_have_monotonic_seq(): void
{
$sim = $this->makeSimulator();
$sim->applyControl('room-a', ['type' => 'create', 'id' => 'p1', 'name' => 'A']);
$firstSeq = $sim->room('room-a')->seq;
$sim->applyControl('room-a', ['type' => 'join', 'id' => 'p2', 'name' => 'B']);
$this->assertGreaterThan($firstSeq, $sim->room('room-a')->seq);
}
#[Test]
public function start_transitions_to_playing(): void
{
@@ -190,7 +202,7 @@ final class GameSimulatorTest extends TestCase
$sim = $this->makeSimulator();
$sim->applyControl('room-a', ['type' => 'create', 'id' => 'p1', 'name' => 'A']);
$sim->applyControl('room-a', ['type' => 'start', 'id' => 'p1']);
$sim->applyInput('room-a', ['id' => 'p1', 'keys' => [], 'aim' => ['x' => 1.0, 'y' => 0.0], 'fire' => true, 'autoAim' => true]);
$sim->applyInput('room-a', ['id' => 'p1', 'keys' => [], 'aim' => ['x' => 1.0, 'y' => 0.0], 'fire' => true]);
$sawZombie = false;
for ($i = 0; $i < 600; $i++) {
$sim->tick(1.0 / 60.0);
@@ -337,7 +349,7 @@ final class GameSimulatorTest extends TestCase
$zombie = new Zombie($player->pos->x + 40.0, $player->pos->y, $room->entities, $room, ['emergeTime' => 0.0]);
$room->entities->append($zombie);
$sim->applyInput('room-a', ['id' => 'p1', 'keys' => [], 'aim' => ['x' => 1.0, 'y' => 0.0], 'fire' => true, 'autoAim' => false]);
$sim->applyInput('room-a', ['id' => 'p1', 'keys' => [], 'aim' => ['x' => 1.0, 'y' => 0.0], 'fire' => true]);
$hit = false;
$kills = false;
+3 -3
View File
@@ -52,7 +52,7 @@ final class PlayerTest extends TestCase
{
$room = new Room('test');
$room->state = Room::STATE_PLAYING;
$input = new InputState(fire: false, autoAim: true);
$input = new InputState(fire: false);
$player = new Player('p1', 'Tester', $input, $room->entities, $room, ['x' => 100.0, 'y' => 100.0]);
$room->addPlayer($player);
$zombie = new Zombie(300.0, 100.0, $room->entities, $room, ['emergeTime' => 0.0]);
@@ -69,7 +69,7 @@ final class PlayerTest extends TestCase
public function auto_aim_does_not_fire_without_target(): void
{
$room = new Room('test');
$input = new InputState(fire: false, autoAim: true);
$input = new InputState(fire: false);
$player = new Player('p1', 'Tester', $input, $room->entities, $room, ['x' => 100.0, 'y' => 100.0]);
$room->addPlayer($player);
$player->update(1.0 / 60.0);
@@ -163,7 +163,7 @@ final class PlayerTest extends TestCase
public function auto_aim_tracks_nearest_zombie(): void
{
$room = new Room('test');
$input = new InputState(fire: true, autoAim: true);
$input = new InputState(fire: true);
$player = new Player('p1', 'Tester', $input, $room->entities, $room, ['x' => 100.0, 'y' => 100.0]);
$room->addPlayer($player);
$zombie = new Zombie(200.0, 100.0, $room->entities, $room, ['emergeTime' => 0.0]);