This commit is contained in:
2023-11-09 19:24:47 +02:00
parent 1645f58a63
commit fc17eada24
19 changed files with 1255 additions and 953 deletions
+12 -72
View File
@@ -2,77 +2,23 @@
namespace Item\Data;
use Model\Constant\Stat;
class Bonuses
{
public static array $names = [
'hpAll' => 'Уровень жизни (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 Stat $stat;
private array $result = [];
public function __construct(array $data)
{
$this->stat = new Stat();
foreach ($data as $bonusName => $value) {
if (!self::$names[$bonusName]) {
continue;
if (!$this->stat->getBonusNames()[$bonusName]) {
$this->result[$bonusName] = $value; //fixme на период отладки для отлова забытых
//continue;
}
$this->result[self::$names[$bonusName]] = $value;
$this->result[$this->stat->getBonusNames()[$bonusName]] = $value;
}
$this->armor($data);
}
@@ -112,16 +58,10 @@ class Bonuses
public function addZonb(): void
{
if (isset($this->result[self::$names['zonb']])) {
$this->result[self::$names['zonb']]++;
if (isset($this->result[$this->stat->getBonusNames()['zonb']])) {
$this->result[$this->stat->getBonusNames()['zonb']]++;
} else {
$this->result[self::$names['zonb']] = 1;
$this->result[$this->stat->getBonusNames()['zonb']] = 1;
}
}
public static function getBonusSystemNames(): array
{
return array_keys(self::$names);
}
}