Example #1
0
 /**
  * @param string $api_data
  * @return CombatReport
  */
 public static function createSpyReport($api_data)
 {
     $generic = $api_data['generic'];
     $details = $api_data['details'];
     $spyreport = new self($generic['sr_id'], $generic['activity'], $generic['attacker_name'], $generic['attacker_planet_coordinates'], $generic['attacker_planet_name'], $generic['attacker_planet_type'], $generic['attacker_alliance_name'], $generic['attacker_alliance_tag'], $generic['defender_name'], $generic['defender_planet_coordinates'], $generic['defender_planet_name'], $generic['defender_planet_type'], $generic['defender_alliance_name'], $generic['defender_alliance_tag'], $generic['event_time'], $generic['event_timestamp'], $generic['loot_percentage'], $generic['spy_fail_chance'], $generic['total_defense_count'], $generic['total_ship_count']);
     if (isset($details['resources'])) {
         $spyreport->getDefender()->setResources(new Resources($details['resources']['metal'], $details['resources']['crystal'], $details['resources']['deuterium']));
     }
     if ($generic['failed_buildings'] === false) {
         if (isset($details['buildings'])) {
             foreach ($details['buildings'] as $state) {
                 $buildingState = new StateEconomy(TechnologyFactory::create($state['building_type']), $state['level']);
                 $spyreport->getDefender()->addBuilding($buildingState);
             }
         }
     }
     if ($generic['failed_research'] === false) {
         if (isset($details['research'])) {
             foreach ($details['research'] as $state) {
                 $researchState = new StateEconomy(TechnologyFactory::create($state['research_type']), $state['level']);
                 $spyreport->getDefender()->addResearch($researchState);
             }
         }
     }
     if ($generic['failed_ships'] === false) {
         if (isset($details['ships'])) {
             foreach ($details['ships'] as $state) {
                 $shipState = new StateCombat(TechnologyFactory::create($state['ship_type']), $state['count']);
                 $spyreport->getDefender()->addShip($shipState);
             }
         }
     }
     if ($generic['failed_defense'] === false) {
         if (isset($details['defense'])) {
             foreach ($details['defense'] as $state) {
                 $defenceState = new StateCombat(TechnologyFactory::create($state['defense_type']), $state['count']);
                 $spyreport->getDefender()->addDefence($defenceState);
             }
         }
     }
     return $spyreport;
 }