/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['gym_state' => null, 'attackers' => [], 'player_experience_awarded' => [], 'next_defender_pokemon_id' => null, 'gym_points_delta' => null], $values); $message->setGymState($values['gym_state']); $message->setNextDefenderPokemonId($values['next_defender_pokemon_id']); $message->setGymPointsDelta($values['gym_points_delta']); foreach ($values['attackers'] as $item) { $message->addAttackers($item); } foreach ($values['player_experience_awarded'] as $item) { $message->addPlayerExperienceAwarded($item); } return $message; }