'Уровень жизни (HP)', 'mpAll' => 'Уровень маны', 's1' => 'Сила', 's2' => 'Ловкость', 's3' => 'Интуиция', 's4' => 'Выносливость', 's5' => 'Интелект', 's6' => 'Мудрость', 'm1' => 'Мф. критического удара (%)', 'm2' => 'Мф. против критического удара (%)', 'm3' => 'Мф. мощности критического удара (%)', 'm4' => 'Мф. увертывания (%)', 'm5' => 'Мф. против увертывания (%)', 'm6' => 'Мф. контрудара (%)', 'm7' => 'Мф. парирования (%)', 'm8' => 'Мф. блока щитом (%)', 'm9' => 'Мф. пробоя брони (%)', 'm10' => 'Мф. мощности урона', 'm11' => 'Мф. мощности магии стихий', 'm14' => 'Мф. абс. критического удара (%)', 'm15' => 'Мф. абс. увертывания (%)', 'm18' => 'Мф. абс. блока щитом (%)', 'a1' => 'Мастерство владения ножами, кинжалами', 'a2' => 'Мастерство владения топорами, секирами', 'a3' => 'Мастерство владения дубинами, молотами', 'a4' => 'Мастерство владения мечами', 'a5' => 'Мастерство владения магическими посохами', 'aall' => 'Мастерство владения оружием', 'mall' => 'Мастерство владения магией стихий', 'mg1' => 'Мастерство владения магией огня', 'mg2' => 'Мастерство владения магией воздуха', 'mg3' => 'Мастерство владения магией воды', 'mg4' => 'Мастерство владения магией земли', 'mg7' => 'Мастерство владения серой магией', 'pa1' => 'Мф. мощности колющего урона', 'pa2' => 'Мф. мощности рубящего урона', 'pa3' => 'Мф. мощности дробящий урона', 'pa4' => 'Мф. мощности режущий урона', 'pm1' => 'Мф. мощности магии огня', 'pm2' => 'Мф. мощности магии воздуха', 'pm3' => 'Мф. мощности магии воды', 'pm4' => 'Мф. мощности магии земли', 'za' => 'Защита от урона', 'zm' => 'Защита от магии стихий', 'speedhp' => 'Регенерация здоровья (НР)', 'speedmp' => 'Регенерация маны (МР)', 'zona' => 'Дополнительная зона атаки', 'zonb' => 'Дополнительная зона блока', 'speed_dungeon' => 'Скорость перемещения по пещерам', 'antm3' => 'Мф. против мощности крит. удара', 'spasenie' => 'Спасение после смерти', 'exp' => 'Получаемый опыт (%)', 'repair_z' => 'Бесплатное извлечение заточек', 'repair_r' => 'Бесплатное извлечение рун', 'repair_discount' => 'Скидка на ремонт вещей', 'gold' => 'Благодать Ангела', 'magic_cast' => 'Дополнительное заклинание за ход', ]; private array $result = []; public function __construct(array $data) { foreach ($data as $bonusName => $value) { if (!self::$names[$bonusName]) { continue; } $this->result[self::$names[$bonusName]] = $value; } $this->armor($data); } private function armor(array $data): void { $min = 0; $max = 0; $type = [ 1 => 'головы', 2 => 'корпуса', 3 => 'пояса', 4 => 'ног', ]; foreach ($type as $k => $v) { if (!empty($data['mib' . $k])) { $min = $data['mib' . $k]; $max = $data['mib' . $k]; } if (!empty($data['mab' . $k])) { if (empty($data['mib' . $k])) { $min = $data['mab' . $k]; } $max = $data['mab' . $k]; } if (empty($min) && empty($max)) { return; } $this->result['Броня ' . $v] = $min . ' - ' . $max; } } public function get(): array { return $this->result; } public function addZonb() { if (isset($this->result[self::$names['zonb']])) { $this->result[self::$names['zonb']]++; } else { $this->result[self::$names['zonb']] = 1; } } public static function getBonusSystemNames(): array { return array_keys(self::$names); } }