/** * @param CombatFleet $updatedFleet */ public function updateFleet(CombatFleet $updatedFleet) { foreach ($this->fleets as $i => $fleet) { if ($fleet->getCombatIndex() === $updatedFleet->getCombatIndex()) { $this->fleets[$i] = $updatedFleet; break; } } }
/** * @param array $rawPlayers */ private function loadParty($rawPlayers) { $playerIdMapping = array(); $players = array(); foreach ($rawPlayers as $combat_index => $fleetData) { $rawPlayer = $fleetData['fleet_owner']; $playerId = isset($playerIdMapping[$rawPlayer]) ? $playerIdMapping[$rawPlayer] : false; //Check if player already exists, if not create it & add it if ($playerId === false) { $playerId = $this->player_id_count++; $playerIdMapping[$rawPlayer] = $playerId; $players[$playerId] = new CombatPlayer($rawPlayer, $playerId); $players[$playerId]->setCombatTechnologies($fleetData['fleet_armor_percentage'], $fleetData['fleet_shield_percentage'], $fleetData['fleet_weapon_percentage']); $players[$playerId]->setAlliance(new Alliance($fleetData['fleet_owner_alliance_tag'], $fleetData['fleet_owner_alliance'])); } $player = $players[$playerId]; $planet = new Planet($fleetData['fleet_owner_planet_type'], $fleetData['fleet_owner_coordinates'], $fleetData['fleet_owner_planet_name']); $fleet = new CombatFleet($planet, $combat_index); foreach ($fleetData['fleet_composition'] as $rawTechnology) { $technology = TechnologyFactory::create($rawTechnology['ship_type']); $fleet->addTechnologyState($technology, $rawTechnology['count']); } $player->addFleet($fleet); } return $players; }