/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['level' => null, 'experience' => null, 'prev_level_xp' => null, 'next_level_xp' => null, 'km_walked' => null, 'pokemons_encountered' => null, 'unique_pokedex_entries' => null, 'pokemons_captured' => null, 'evolutions' => null, 'poke_stop_visits' => null, 'pokeballs_thrown' => null, 'eggs_hatched' => null, 'big_magikarp_caught' => null, 'battle_attack_won' => null, 'battle_attack_total' => null, 'battle_defended_won' => null, 'battle_training_won' => null, 'battle_training_total' => null, 'prestige_raised_total' => null, 'prestige_dropped_total' => null, 'pokemon_deployed' => null, 'pokemon_caught_by_type' => [], 'small_rattata_caught' => null], $values); $message->setLevel($values['level']); $message->setExperience($values['experience']); $message->setPrevLevelXp($values['prev_level_xp']); $message->setNextLevelXp($values['next_level_xp']); $message->setKmWalked($values['km_walked']); $message->setPokemonsEncountered($values['pokemons_encountered']); $message->setUniquePokedexEntries($values['unique_pokedex_entries']); $message->setPokemonsCaptured($values['pokemons_captured']); $message->setEvolutions($values['evolutions']); $message->setPokeStopVisits($values['poke_stop_visits']); $message->setPokeballsThrown($values['pokeballs_thrown']); $message->setEggsHatched($values['eggs_hatched']); $message->setBigMagikarpCaught($values['big_magikarp_caught']); $message->setBattleAttackWon($values['battle_attack_won']); $message->setBattleAttackTotal($values['battle_attack_total']); $message->setBattleDefendedWon($values['battle_defended_won']); $message->setBattleTrainingWon($values['battle_training_won']); $message->setBattleTrainingTotal($values['battle_training_total']); $message->setPrestigeRaisedTotal($values['prestige_raised_total']); $message->setPrestigeDroppedTotal($values['prestige_dropped_total']); $message->setPokemonDeployed($values['pokemon_deployed']); $message->setSmallRattataCaught($values['small_rattata_caught']); foreach ($values['pokemon_caught_by_type'] as $item) { $message->addPokemonCaughtByType($item); } return $message; }