battles/classes/Item.php

278 lines
10 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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;
/**
* Item constructor.
*
* @param $row
*/
public function __construct($row)
{
foreach ($this as $key => $value) {
if (!empty($key)) {
$this->$key = $row[$key];
} else $this->$key = null;
}
// ТА ЛААААДНО?!
// $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->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;
}
}
}