/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['type' => null, 'action_start_ms' => null, 'duration_ms' => null, 'energy_delta' => null, 'attacker_index' => null, 'target_index' => null, 'active_pokemon_id' => null, 'player_joined' => null, 'battle_results' => null, 'damage_windows_start_timestamp_ms' => null, 'damage_windows_end_timestamp_ms' => null, 'player_left' => null, 'target_pokemon_id' => null], $values); $message->setType($values['type']); $message->setActionStartMs($values['action_start_ms']); $message->setDurationMs($values['duration_ms']); $message->setEnergyDelta($values['energy_delta']); $message->setAttackerIndex($values['attacker_index']); $message->setTargetIndex($values['target_index']); $message->setActivePokemonId($values['active_pokemon_id']); $message->setPlayerJoined($values['player_joined']); $message->setBattleResults($values['battle_results']); $message->setDamageWindowsStartTimestampMs($values['damage_windows_start_timestamp_ms']); $message->setDamageWindowsEndTimestampMs($values['damage_windows_end_timestamp_ms']); $message->setPlayerLeft($values['player_left']); $message->setTargetPokemonId($values['target_pokemon_id']); return $message; }