/**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['active_pokemon' => null, 'trainer_public_profile' => null, 'reverse_pokemon' => [], 'defeated_pokemon' => []], $values);
     $message->setActivePokemon($values['active_pokemon']);
     $message->setTrainerPublicProfile($values['trainer_public_profile']);
     foreach ($values['reverse_pokemon'] as $item) {
         $message->addReversePokemon($item);
     }
     foreach ($values['defeated_pokemon'] as $item) {
         $message->addDefeatedPokemon($item);
     }
     return $message;
 }
 /**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['pokemon_data' => null, 'trainer_public_profile' => null, 'training_pokemon' => null], $values);
     $message->setPokemonData($values['pokemon_data']);
     $message->setTrainerPublicProfile($values['trainer_public_profile']);
     $message->setTrainingPokemon($values['training_pokemon']);
     return $message;
 }