diff --git a/src/Application/UseCase/Room/DispatchMissionsAndTargetsUseCase.php b/src/Application/UseCase/Room/DispatchMissionsAndTargetsUseCase.php index bab7dae..2e45af2 100644 --- a/src/Application/UseCase/Room/DispatchMissionsAndTargetsUseCase.php +++ b/src/Application/UseCase/Room/DispatchMissionsAndTargetsUseCase.php @@ -45,6 +45,10 @@ public function execute(Room $room): void foreach ($players as $player) { $this->assignMissions($missions, $player); + + if (!$player->getAssignedMission()) { + throw new \LogicException('Error while assigning mission to the player'); + } } return; @@ -78,6 +82,11 @@ public function execute(Room $room): void // Dive into all playerMissions missions. $this->assignMissions($missions, $player); + + // Break to not keep trying to assign mission to the player + if ($player->getAssignedMission() instanceof Mission) { + break; + } } } } @@ -104,9 +113,5 @@ private function assignMissions(array $missions, Player $player): void break; } - - if (!$player->getAssignedMission()) { - throw new \LogicException('Error while assigning mission to player'); - } } }