/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['upgrades_per_level' => null, 'allowed_levels_above_player' => null, 'candy_cost' => [], 'stardust_cost' => []], $values); $message->setUpgradesPerLevel($values['upgrades_per_level']); $message->setAllowedLevelsAbovePlayer($values['allowed_levels_above_player']); foreach ($values['candy_cost'] as $item) { $message->addCandyCost($item); } foreach ($values['stardust_cost'] as $item) { $message->addStardustCost($item); } return $message; }