/**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['success' => null, 'pokemon_id' => [], 'experience_awarded' => [], 'candy_awarded' => [], 'stardust_awarded' => [], 'egg_km_walked' => []], $values);
     $message->setSuccess($values['success']);
     foreach ($values['pokemon_id'] as $item) {
         $message->addPokemonId($item);
     }
     foreach ($values['experience_awarded'] as $item) {
         $message->addExperienceAwarded($item);
     }
     foreach ($values['candy_awarded'] as $item) {
         $message->addCandyAwarded($item);
     }
     foreach ($values['stardust_awarded'] as $item) {
         $message->addStardustAwarded($item);
     }
     foreach ($values['egg_km_walked'] as $item) {
         $message->addEggKmWalked($item);
     }
     return $message;
 }