146 lines
6.2 KiB
PHP
146 lines
6.2 KiB
PHP
<?php
|
||
|
||
namespace Inf;
|
||
|
||
use Core\Config;
|
||
use Core\Db;
|
||
|
||
class Awards
|
||
{
|
||
private const KNIGHT = [
|
||
1 => 'Рыцарь первого круга',
|
||
2 => 'Рыцарь второго круга',
|
||
3 => 'Рыцарь третьего круга',
|
||
];
|
||
private const SCHOLAR = [
|
||
1 => 'Посвящённый первого круга',
|
||
2 => 'Посвящённый второго круга',
|
||
3 => 'Посвящённый третьего круга',
|
||
];
|
||
private const IZLOM = [
|
||
1 => 'Аттестованный боец',
|
||
2 => 'Опытный боец',
|
||
3 => 'Ветеран',
|
||
4 => 'Генерал',
|
||
];
|
||
private const DUNGEON_NAME = [
|
||
'repdreamscity' => 'Водосток',
|
||
'repizlom' => 'Излом Хаоса',
|
||
'rep1' => 'Храм Знаний',
|
||
];
|
||
private array $awards = [];
|
||
|
||
public function __construct(int $userid)
|
||
{
|
||
$reputations = Db::getRow('select * from rep where id = ?', [$userid]) ?: [];
|
||
$customAwards = Db::getRows('select text, img from users_ico where uid = ? and (endTime = 0 or endTime > unix_timestamp())', [$userid]);
|
||
|
||
foreach ($customAwards as $award) {
|
||
$this->awards[] = ['', $award['text'], $award['img']];
|
||
}
|
||
|
||
if (!empty($reputations)) {
|
||
$this->addDungeonAwards($reputations);
|
||
}
|
||
}
|
||
|
||
private function addDungeonAwards(mixed $reputations): void
|
||
{
|
||
match (true) {
|
||
$reputations['repdreamscity'] > 9999 => $this->awards[] = [self::DUNGEON_NAME['repdreamscity'], self::KNIGHT[3], 'i/ico/ric_kanal3.gif'],
|
||
$reputations['repdreamscity'] > 4999 => $this->awards[] = [self::DUNGEON_NAME['repdreamscity'], self::KNIGHT[2], 'i/ico/ric_kanal2.gif'],
|
||
$reputations['repdreamscity'] > 999 => $this->awards[] = [self::DUNGEON_NAME['repdreamscity'], self::KNIGHT[1], 'i/ico/ric_kanal1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['rep1'] > 9999 => $this->awards[] = [self::DUNGEON_NAME['rep1'], self::SCHOLAR[3], 'znrune_3.gif'],
|
||
$reputations['rep1'] > 999 => $this->awards[] = [self::DUNGEON_NAME['rep1'], self::SCHOLAR[2], 'znrune_2.gif'],
|
||
$reputations['rep1'] > 99 => $this->awards[] = [self::DUNGEON_NAME['rep1'], self::SCHOLAR[1], 'znrune_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repizlom'] > 24999 => $this->awards[] = [self::DUNGEON_NAME['repizlom'], self::IZLOM[4], 'iz_zn_ver10_4.gif'],
|
||
$reputations['repizlom'] > 9999 => $this->awards[] = [self::DUNGEON_NAME['repizlom'], self::IZLOM[3], 'iz_zn_ver10_3.gif'],
|
||
$reputations['repizlom'] > 999 => $this->awards[] = [self::DUNGEON_NAME['repizlom'], self::IZLOM[2], 'iz_zn_ver10_2.gif'],
|
||
$reputations['repizlom'] > 99 => $this->awards[] = [self::DUNGEON_NAME['repizlom'], self::IZLOM[1], 'iz_zn_ver10_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repcapitalcity'] > 24999 => $this->awards[] = ['Capital city', self::KNIGHT[2], 'zn1_2.gif'],
|
||
$reputations['repcapitalcity'] > 9999 => $this->awards[] = ['Capital city', self::KNIGHT[1], 'zn1_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repangelscity'] > 24999 => $this->awards[] = ['Angels city', self::KNIGHT[2], 'zn2_2.gif'],
|
||
$reputations['repangelscity'] > 9999 => $this->awards[] = ['Angels city', self::KNIGHT[1], 'zn2_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repdemonscity'] > 24999 => $this->awards[] = ['Demons city', self::KNIGHT[2], 'zn3_2.gif'],
|
||
$reputations['repdemonscity'] > 9999 => $this->awards[] = ['Demons city', self::KNIGHT[1], 'zn3_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repdevilscity'] > 24999 => $this->awards[] = ['Devils city', self::KNIGHT[2], 'zn4_2.gif'],
|
||
$reputations['repdevilscity'] > 9999 => $this->awards[] = ['Devils city', self::KNIGHT[1], 'zn4_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repsuncity'] > 24999 => $this->awards[] = ['Sun city', self::KNIGHT[2], 'zn5_2.gif'],
|
||
$reputations['repsuncity'] > 9999 => $this->awards[] = ['Sun city', self::KNIGHT[1], 'zn5_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repsandcity'] > 24999 => $this->awards[] = ['Sand city', self::KNIGHT[2], 'zn7_2.gif'],
|
||
$reputations['repsandcity'] > 9999 => $this->awards[] = ['Sand city', self::KNIGHT[1], 'zn7_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repemeraldscity'] > 24999 => $this->awards[] = ['Emeralds city', self::KNIGHT[2], 'zn6_2.gif'],
|
||
$reputations['repemeraldscity'] > 9999 => $this->awards[] = ['Emeralds city', self::KNIGHT[1], 'zn6_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repmooncity'] > 24999 => $this->awards[] = ['Moon city', self::KNIGHT[2], 'zn9_2.gif'],
|
||
$reputations['repmooncity'] > 9999 => $this->awards[] = ['Moon city', self::KNIGHT[1], 'zn9_1.gif'],
|
||
default => '',
|
||
};
|
||
|
||
match (true) {
|
||
$reputations['repabandonedplain'] > 9999 => $this->awards[] = ['Гора Легиона', self::KNIGHT[2], '1_gora.gif'],
|
||
$reputations['repabandonedplain'] > 999 => $this->awards[] = ['Гора Легиона', self::KNIGHT[1], '2_gora.gif'],
|
||
default => '',
|
||
};
|
||
}
|
||
|
||
public function addCustom(string $name, string $description, string $image): void
|
||
{
|
||
$this->awards[] = [$name, $description, $image];
|
||
}
|
||
|
||
public function print(): void
|
||
{
|
||
foreach ($this->awards as $award) {
|
||
$img = Config::img() . DIRECTORY_SEPARATOR . $award[2];
|
||
if (!empty($award[0])) {
|
||
$award[1] = "<b>$award[0]</b><br>$award[1]";
|
||
}
|
||
echo <<<HTML
|
||
<img src="$img" alt="" onmouseover="top.hi(this,'$award[1]',event,0,0,1,0);" onmouseout="top.hic();" onmousedown="top.hic();" style="cursor: pointer;">
|
||
HTML;
|
||
}
|
||
}
|
||
|
||
|
||
}
|