85 lines
2.7 KiB
PHP
85 lines
2.7 KiB
PHP
|
<?php
|
|||
|
|
|||
|
namespace Item\Data;
|
|||
|
|
|||
|
class Requirements
|
|||
|
{
|
|||
|
private static array $names = [
|
|||
|
'sex' => 'Пол',
|
|||
|
'lvl' => 'Уровень',
|
|||
|
's1' => 'Сила',
|
|||
|
's2' => 'Ловкость',
|
|||
|
's3' => 'Интуиция',
|
|||
|
's4' => 'Выносливость',
|
|||
|
's5' => 'Интелект',
|
|||
|
's6' => 'Мудрость',
|
|||
|
'a1' => 'Мастерство владения ножами, кинжалами',
|
|||
|
'a2' => 'Мастерство владения топорами, секирами',
|
|||
|
'a3' => 'Мастерство владения дубинами, молотами',
|
|||
|
'a4' => 'Мастерство владения мечами',
|
|||
|
'a5' => 'Мастерство владения магическими посохами',
|
|||
|
'mg1' => 'Мастерство владения магией огня',
|
|||
|
'mg2' => 'Мастерство владения магией воздуха',
|
|||
|
'mg3' => 'Мастерство владения магией воды',
|
|||
|
'mg4' => 'Мастерство владения магией земли',
|
|||
|
'mg7' => 'Мастерство владения серой магией',
|
|||
|
'align' => 'Склонность',
|
|||
|
];
|
|||
|
private static array $sex = [
|
|||
|
0 => 'Мужской',
|
|||
|
1 => 'Женский',
|
|||
|
];
|
|||
|
private static array $align = [
|
|||
|
1 => 'Свет',
|
|||
|
2 => 'Хаос',
|
|||
|
3 => 'Тьма',
|
|||
|
7 => 'Нейстралитет',
|
|||
|
9 => 'Дитя подземелья',
|
|||
|
];
|
|||
|
private int $alignValue = 0;
|
|||
|
|
|||
|
private array $result = [];
|
|||
|
|
|||
|
public function __construct(array $data)
|
|||
|
{
|
|||
|
foreach ($data as $requirementName => $value) {
|
|||
|
if (!self::$names[$requirementName]) {
|
|||
|
continue;
|
|||
|
}
|
|||
|
if ($requirementName === 'sex') {
|
|||
|
if (self::$sex[$value]) {
|
|||
|
$value = self::$sex[$value];
|
|||
|
} else {
|
|||
|
continue;
|
|||
|
}
|
|||
|
}
|
|||
|
if ($requirementName === 'align') {
|
|||
|
if (self::$align[$value]) {
|
|||
|
$this->alignValue = $value;
|
|||
|
$value = self::$align[$value];
|
|||
|
} else {
|
|||
|
continue;
|
|||
|
}
|
|||
|
}
|
|||
|
$this->result[$requirementName] = [
|
|||
|
'name' => self::$names[$requirementName],
|
|||
|
'value' => $value,
|
|||
|
];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public function get(): array
|
|||
|
{
|
|||
|
return $this->result;
|
|||
|
}
|
|||
|
|
|||
|
/** Число для отрисовки иконки.
|
|||
|
* @return int
|
|||
|
*/
|
|||
|
public function getAlign(): int
|
|||
|
{
|
|||
|
return $this->alignValue;
|
|||
|
}
|
|||
|
}
|
|||
|
|