88 lines
2.3 KiB
PHP
88 lines
2.3 KiB
PHP
<?php
|
||
|
||
namespace App\Support;
|
||
|
||
class WowData
|
||
{
|
||
/**
|
||
* @return array<int, string>
|
||
*/
|
||
public static function securityLevels(): array
|
||
{
|
||
return [
|
||
0 => __('Игрок'),
|
||
1 => __('Модератор'),
|
||
2 => __('Гейммастер'),
|
||
3 => __('Администратор'),
|
||
];
|
||
}
|
||
|
||
public static function securityLevelName(int $level): string
|
||
{
|
||
return self::securityLevels()[$level] ?? __('Неизвестно');
|
||
}
|
||
|
||
public static function raceName(int $race): string
|
||
{
|
||
return [
|
||
1 => __('Человек'),
|
||
2 => __('Орк'),
|
||
3 => __('Дворф'),
|
||
4 => __('Ночной эльф'),
|
||
5 => __('Нежить'),
|
||
6 => __('Таурен'),
|
||
7 => __('Гном'),
|
||
8 => __('Тролль'),
|
||
][$race] ?? __('Неизвестно');
|
||
}
|
||
|
||
public static function className(int $class): string
|
||
{
|
||
return [
|
||
1 => __('Воин'),
|
||
2 => __('Паладин'),
|
||
3 => __('Охотник'),
|
||
4 => __('Разбойник'),
|
||
5 => __('Жрец'),
|
||
7 => __('Шаман'),
|
||
8 => __('Маг'),
|
||
9 => __('Чернокнижник'),
|
||
11 => __('Друид'),
|
||
][$class] ?? __('Неизвестно');
|
||
}
|
||
|
||
public static function genderName(int $gender): string
|
||
{
|
||
return [
|
||
0 => __('Мужской'),
|
||
1 => __('Женский'),
|
||
][$gender] ?? __('Неизвестно');
|
||
}
|
||
|
||
public static function formatMoney(int $copper): string
|
||
{
|
||
$gold = intdiv($copper, 10000);
|
||
$silver = intdiv($copper % 10000, 100);
|
||
$bronze = $copper % 100;
|
||
|
||
return sprintf(__('%dз %dс %dм'), $gold, $silver, $bronze);
|
||
}
|
||
|
||
public static function formatPlayedTime(int $seconds): string
|
||
{
|
||
$days = intdiv($seconds, 86400);
|
||
$hours = intdiv($seconds % 86400, 3600);
|
||
$minutes = intdiv($seconds % 3600, 60);
|
||
|
||
if ($days > 0) {
|
||
return sprintf(__('%dд %dч'), $days, $hours);
|
||
}
|
||
|
||
if ($hours > 0) {
|
||
return sprintf(__('%dч %dм'), $hours, $minutes);
|
||
}
|
||
|
||
return sprintf(__('%dм'), $minutes);
|
||
}
|
||
}
|