<?php abstract class Item { public $id; public $name; public $nalign; public $massa; public $maxdur; public $img; public $cost; public $artefact; public $type; 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 $dategoden; public $goden; public $needident; public $magic; public $magic_name; public $magic_img; public $isrep; public $gmp; public $encicl; public $koll; public $prof; public $prof1; public $count; public $razdel; public $ecost; public $zeton; public $onlyone; public $shshop; public $otdel; public $setsale; /** * Item constructor. * * @param $row */ public function __construct($row) { foreach ($this as $key => $value) { if (isset($row[$key])) { $this->$key = $row[$key]; } } 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->mfkrit) echo "<br>Шанс крита" . $this->wrap($this->mfkrit); if ($this->mfakrit) echo "<br>Шанс антикрита" . $this->wrap($this->mfakrit); if ($this->mfuvorot) echo "<br>Шанс уворота" . $this->wrap($this->mfuvorot); if ($this->mfauvorot) echo "<br>Шанс антиуворота" . $this->wrap($this->mfauvorot); 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); if ($this->magic AND $this->type != 12) { echo "<br>Магические свойства:"; if ($this->magic_name) echo "<br><i style='color: dimgray;'>{$this->magic_name}</i>"; else echo "<br><i style='color: dimgray;'>Неопознанная магия</i>"; if ($this->magic_img AND $this->type != 50) echo <<<IMG <br><img src="//{$_SERVER['SERVER_NAME']}/i/sh/{$this->magic_img}" class="item-wrap-normal"> IMG; } } }