/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['energy_per_sec' => null, 'dodge_energy_cost' => null, 'retarget_seconds' => null, 'enemy_attack_interval' => null, 'attack_server_interval' => null, 'round_duration_seconds' => null, 'bonus_time_per_ally_seconds' => null, 'maximum_attackers_per_battle' => null, 'same_type_attack_bonus_multiplier' => null, 'maximum_energy' => null, 'energy_delta_per_health_lost' => null, 'dodge_duration_ms' => null, 'minimum_player_level' => null, 'swap_duration_ms' => null, 'dodge_damage_reduction_percent' => null], $values); $message->setEnergyPerSec($values['energy_per_sec']); $message->setDodgeEnergyCost($values['dodge_energy_cost']); $message->setRetargetSeconds($values['retarget_seconds']); $message->setEnemyAttackInterval($values['enemy_attack_interval']); $message->setAttackServerInterval($values['attack_server_interval']); $message->setRoundDurationSeconds($values['round_duration_seconds']); $message->setBonusTimePerAllySeconds($values['bonus_time_per_ally_seconds']); $message->setMaximumAttackersPerBattle($values['maximum_attackers_per_battle']); $message->setSameTypeAttackBonusMultiplier($values['same_type_attack_bonus_multiplier']); $message->setMaximumEnergy($values['maximum_energy']); $message->setEnergyDeltaPerHealthLost($values['energy_delta_per_health_lost']); $message->setDodgeDurationMs($values['dodge_duration_ms']); $message->setMinimumPlayerLevel($values['minimum_player_level']); $message->setSwapDurationMs($values['swap_duration_ms']); $message->setDodgeDamageReductionPercent($values['dodge_damage_reduction_percent']); return $message; }