/**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['rank_num' => [], 'required_experience' => [], 'cp_multiplier' => [], 'max_egg_player_level' => null, 'max_encounter_player_level' => null], $values);
     $message->setMaxEggPlayerLevel($values['max_egg_player_level']);
     $message->setMaxEncounterPlayerLevel($values['max_encounter_player_level']);
     foreach ($values['rank_num'] as $item) {
         $message->addRankNum($item);
     }
     foreach ($values['required_experience'] as $item) {
         $message->addRequiredExperience($item);
     }
     foreach ($values['cp_multiplier'] as $item) {
         $message->addCpMultiplier($item);
     }
     return $message;
 }
 /**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['required_experience' => [], 'leader_slots' => [], 'trainer_slots' => [], 'search_roll_bonus' => []], $values);
     foreach ($values['required_experience'] as $item) {
         $message->addRequiredExperience($item);
     }
     foreach ($values['leader_slots'] as $item) {
         $message->addLeaderSlots($item);
     }
     foreach ($values['trainer_slots'] as $item) {
         $message->addTrainerSlots($item);
     }
     foreach ($values['search_roll_bonus'] as $item) {
         $message->addSearchRollBonus($item);
     }
     return $message;
 }