<?php abstract class Item { public $name; public $massa; public $nalign; public $maxdur; public $img; public $type; # эти. что есть что нет... private $typename; public $nlevel; public $nsila; public $nlovk; public $ninta; public $nvinos; public $nintel; public $nmudra; public $nnoj; public $ntopor; public $ndubina; public $nmech; public $nfire; public $nwater; public $nair; public $nearth; public $nlight; public $ngray; public $ndark; public $minu; public $maxu; public $gsila; public $glovk; public $ginta; public $gintel; public $gnoj; public $gtopor; public $gdubina; public $gmech; public $gfire; public $gwater; public $gair; public $gearth; public $glight; public $ggray; public $gdark; public $ghp; public $bron1; public $bron2; public $bron3; public $bron4; public $mfkrit; public $mfakrit; public $mfuvorot; public $mfauvorot; public $magic; public $magic_name = 'Неизвестная магия'; public $magic_img; /** * Item constructor. * * @param $row */ public function __construct($row) { foreach ($this as $key=>$value) { if (!empty($key)) { $this->$key = $row[$key]; } } $this->magic_name = $row['magic_name']; $this->magic_img = $row['magic_img']; // ТА ЛААААДНО?! // $this->name = $row['name']; // $this->massa = $row['massa']; // $this->maxdur = $row['maxdur']; // $this->img = $row['img']; // // $this->type = $row['type']; // // $this->nlevel = $row['nlevel']; // $this->nalign = $row['nalign']; // $this->nsila = $row['nsila']; // $this->nlovk = $row['nlovk']; // $this->ninta = $row['ninta']; // $this->nvinos = $row['nvinos']; // $this->nintel = $row['nintel']; // $this->nmudra = $row['nmudra']; // $this->nnoj = $row['nnoj']; // $this->ntopor = $row['ntopor']; // $this->ndubina = $row['ndubina']; // $this->nmech = $row['nmech']; // $this->nfire = $row['nfire']; // $this->nwater = $row['nwater']; // $this->nair = $row['nair']; // $this->nearth = $row['nearth']; // $this->nlight = $row['nlight']; // $this->ngray = $row['ngray']; // $this->ndark = $row['ndark']; // // $this->minu = $row['minu']; // $this->maxu = $row['maxu']; // // $this->gsila = $row['gsila']; // $this->glovk = $row['glovk']; // $this->ginta = $row['ginta']; // $this->gintel = $row['gintel']; // $this->gnoj = $row['gnoj']; // $this->gtopor = $row['gtopor']; // $this->gdubina = $row['gdubina']; // $this->gmech = $row['gmech']; // $this->gfire = $row['gfire']; // $this->gwater = $row['gwater']; // $this->gair = $row['gair']; // $this->gearth = $row['gearth']; // $this->glight = $row['glight']; // $this->ggray = $row['ggray']; // $this->gdark = $row['gdark']; // $this->ghp = $row['ghp']; // // $this->bron1 = $row['bron1']; // $this->bron2 = $row['bron2']; // $this->bron3 = $row['bron3']; // $this->bron4 = $row['bron4']; // // $this->mfkrit = $row['mfkrit']; // $this->mfakrit = $row['mfakrit']; // $this->mfuvorot = $row['mfuvorot']; // $this->mfauvorot = $row['mfauvorot']; switch ($this->type) { case 1: $this->typename = 'Серьги'; break; case 2: $this->typename = 'Ожерелье'; break; case 3: $this->typename = 'Оружие'; break; case 4: $this->typename = 'Броня'; break; case 5: $this->typename = 'Кольцо'; break; case 8: $this->typename = 'Шлем'; break; case 9: $this->typename = 'Перчатки'; break; case 10: $this->typename = 'Щит'; break; case 11: $this->typename = 'Обувь'; break; case 12: $this->typename = 'Магический свиток'; break; case 22: $this->typename = 'Рубашка'; break; case 50: $this->typename = 'Волшебное зелье'; break; case 200: $this->typename = 'Сувенир'; break; default: $this->typename = 'Хлам'; } } abstract public function printInfo(); public function printImage() { echo <<<IMG <img src="//{$_SERVER['SERVER_NAME']}/i/sh/{$this->img}" class="item-wrap-normal"> IMG; } protected function wrap($number) { if ($number > 0) return ": <b>" . $number . "</b>"; else return ": <b style='color: maroon;'>" . $number . "</b>"; } protected function printBaseInfo() { echo "<b>" . $this->name . "</b> (Масса: " . $this->massa . ")"; if ($this->nalign) echo " <img src=i/align_{$this->nalign}.gif title='Этот предмет могут использовать только игроки с определённой склонностью.'> "; if ($this->maxdur > 0) echo "<br>Долговечность: {$this->maxdur}"; if ($this->maxdur == -1) echo "<br>Долговечность: <i>неразрушимо</i>"; echo "<br><i>{$this->typename}</i>"; } protected function printRequirements() { if ($this->nlevel > 0) echo "<br>Требуется уровень" . $this->wrap($this->nlevel); if ($this->nnoj > 0) echo "<br>Требуется владение колющим оружиием" . $this->wrap($this->nnoj); if ($this->ndubina > 0) echo "<br>Требуется владение дробящим оружием" . $this->wrap($this->ndubina); if ($this->ntopor > 0) echo "<br>Требуется владение рубящим оружием" . $this->wrap($this->ntopor); if ($this->nmech > 0) echo "<br>Требуется владение режущим оружием" . $this->wrap($this->nmech); if ($this->nsila > 0) echo "<br>Требуется сила" . $this->wrap($this->nsila); if ($this->nlovk > 0) echo "<br>Требуется ловкость" . $this->wrap($this->nlovk); if ($this->ninta > 0) echo "<br>Требуется интуиция" . $this->wrap($this->ninta); if ($this->nvinos > 0) echo "<br>Требуется выносливость" . $this->wrap($this->nvinos); if ($this->nintel > 0) echo "<br>Требуется интеллект" . $this->wrap($this->nintel); } protected function printBonuses() { if ($this->gsila) echo "<br>Сила" . $this->wrap($this->gsila); if ($this->glovk) echo "<br>Ловкость" . $this->wrap($this->glovk); if ($this->ginta) echo "<br>Интуиция" . $this->wrap($this->ginta); if ($this->gintel) echo "<br>Интеллект" . $this->wrap($this->gintel); if ($this->minu AND $this->maxu) echo "<br>Урон: {$this->minu} - {$this->maxu}"; if ($this->ghp) echo "<br>Здоровье" . $this->wrap($this->ghp); if ($this->gnoj) echo "<br>Владение колющим оружиием" . $this->wrap($this->gnoj); if ($this->gdubina) echo "<br>Владение дробящим оружием" . $this->wrap($this->gdubina); if ($this->gtopor) echo "<br>Владение рубящим оружием" . $this->wrap($this->gtopor); if ($this->gmech) echo "<br>Владение режущим оружием" . $this->wrap($this->gmech); if ($this->gfire) echo "<br>Владение магией огня" . $this->wrap($this->gfire); if ($this->gwater) echo "<br>Владение магией воды" . $this->wrap($this->gwater); if ($this->gair) echo "<br>Владение магией воздуха" . $this->wrap($this->gair); if ($this->gearth) echo "<br>Владение магией земли" . $this->wrap($this->gearth); if ($this->glight) echo "<br>Владение магией света" . $this->wrap($this->glight); if ($this->ggray) echo "<br>Владение магией серости" . $this->wrap($this->ggray); if ($this->gdark) echo "<br>Владение магией тьмы" . $this->wrap($this->gdark); if ($this->bron1) echo "<br>Броня головы" . $this->wrap($this->bron1); if ($this->bron2) echo "<br>Броня корпуса" . $this->wrap($this->bron2); if ($this->bron3) echo "<br>Броня пояса" . $this->wrap($this->bron3); if ($this->bron4) echo "<br>Броня ног" . $this->wrap($this->bron4); } protected function printMagic() { if ($this->magic) { echo "<br>Магические свойства:"; if ($this->magic_name) echo "<br><i style='color: dimgray;'>{$this->magic_name}</i>"; if ($this->magic_img) echo <<<IMG <img src="//{$_SERVER['SERVER_NAME']}/i/sh/{$this->magic_img}" class="item-wrap-normal"> IMG; } } }