/** * @param CombatPlayer[] $start * @param CombatPlayer[] $end * @param CombatParty $party * @return CombatParty */ private static function getFleetDifferences($start, $end, $party) { foreach ($start as $i => $player) { $last = $end[$i]; foreach ($player->getFleets() as $fleet) { $combatIndex = $fleet->getCombatIndex(); $partyPlayer = $party->getPlayerByCombatIndex($combatIndex); $partyPlayer->updateFleet($fleet->difference($last->getFleetByCombatIndex($combatIndex))); } } return $party; }
/** * @param array $fleetDetails * @param CombatParty $party * @return CombatPlayer[] */ private function createFleets($fleetDetails, $party) { $players = array(); foreach ($party->getPlayers() as $player) { $clone = clone $player; foreach ($clone->getFleets() as $fleet) { $fleetData = $fleetDetails[$fleet->getCombatIndex()]; foreach ($fleetData as $type => $techData) { $lost = isset($techData['lost']) ? $techData['lost'] : 0; $fleet->addTechnologyState(TechnologyFactory::create($type), $techData['ships'], $lost); } } $players[$player->getId()] = $clone; } return $players; }
/** * @param array $defenders */ private function loadDefenders($defenders) { $players = $this->loadParty($defenders); $this->defender_party->setPlayers($players); }