/**
  * {@inheritdoc}
  */
 public static function fromArray(array $values)
 {
     $message = new self();
     $values = array_merge(['pokemon_data' => null, 'item' => null, 'pokedex_entry' => null, 'player_stats' => null, 'player_currency' => null, 'player_camera' => null, 'inventory_upgrades' => null, 'applied_items' => null, 'egg_incubators' => null, 'candy' => null, 'quest' => null], $values);
     $message->setPokemonData($values['pokemon_data']);
     $message->setItem($values['item']);
     $message->setPokedexEntry($values['pokedex_entry']);
     $message->setPlayerStats($values['player_stats']);
     $message->setPlayerCurrency($values['player_currency']);
     $message->setPlayerCamera($values['player_camera']);
     $message->setInventoryUpgrades($values['inventory_upgrades']);
     $message->setAppliedItems($values['applied_items']);
     $message->setEggIncubators($values['egg_incubators']);
     $message->setCandy($values['candy']);
     $message->setQuest($values['quest']);
     return $message;
 }