016e5a9ccd
2. shop bying fixes 3. item class code clear 4. moved all gifts to separate file 5. removed artefact upgrade
225 lines
8.1 KiB
PHP
225 lines
8.1 KiB
PHP
<?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;
|
||
|
||
|
||
/**
|
||
* 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);
|
||
}
|
||
|
||
protected function printMagic()
|
||
{
|
||
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;
|
||
}
|
||
}
|
||
} |