battles/classes/Item.php

162 lines
5.2 KiB
PHP
Raw Normal View History

2019-01-11 16:02:57 +00:00
<?php
2019-01-11 19:16:39 +00:00
abstract class Item
2019-01-11 16:02:57 +00:00
{
public $item_id;
2019-01-11 16:02:57 +00:00
public $name;
public $item_type;
public $durability;
public $price;
public $need_strength;
public $need_dexterity;
public $need_intuition;
public $need_endurance;
public $need_intelligence;
public $need_wisdom;
public $add_strength;
public $add_dexterity;
public $add_intuition;
public $add_endurance;
public $add_intelligence;
public $add_wisdom;
public $add_accuracy;
public $add_evasion;
public $add_criticals;
public $add_min_physical_damage;
public $add_max_physical_damage;
public $weight;
public $image;
2019-01-14 21:54:20 +00:00
2019-01-11 16:26:33 +00:00
/**
* Item constructor.
2019-02-15 11:38:30 +00:00
*
2019-01-11 16:26:33 +00:00
* @param $row
*/
2019-01-11 16:02:57 +00:00
public function __construct($row)
{
2019-01-14 14:31:42 +00:00
foreach ($this as $key => $value) {
2019-01-14 21:31:59 +00:00
if (isset($row[$key])) {
2019-01-14 14:42:05 +00:00
$this->$key = $row[$key];
2019-01-14 21:31:59 +00:00
}
2019-01-14 13:46:20 +00:00
}
2019-01-14 14:18:04 +00:00
switch ($this->item_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 6:
$this->typename = 'Оружие';
break;
case 7:
$this->typename = 'Щит';
break;
case 8:
$this->typename = 'Пояс';
break;
case 9:
case 10:
case 11:
$this->typename = 'Кольцо';
break;
case 12:
$this->typename = 'Амулет';
break;
default:
$this->typename = 'Хлам';
2019-01-11 22:50:10 +00:00
}
2019-01-11 16:02:57 +00:00
}
2019-01-11 19:39:37 +00:00
2019-01-12 10:17:20 +00:00
abstract public function printInfo();
2019-01-12 20:02:08 +00:00
public function printImage()
2019-01-11 19:39:37 +00:00
{
2019-01-12 19:51:08 +00:00
echo <<<IMG
<img src="/i/sh/{$this->image}" class="item-wrap-normal">
2019-01-12 19:51:08 +00:00
IMG;
2019-01-11 19:39:37 +00:00
}
2019-01-11 19:49:00 +00:00
2019-01-11 20:05:09 +00:00
protected function wrap($number)
{
if ($number > 0) {
return ": <b>" . $number . "</b>";
} else {
return ": <b style='color: maroon;'>" . $number . "</b>";
}
2019-01-11 20:05:09 +00:00
}
protected function printAllInfo()
2019-01-11 20:05:09 +00:00
{
echo "<b>" . $this->name . "</b> (Масса: " . $this->weight . ")";
if ($this->durability) {
echo "<br> Долговечность: " . $this->durability;
}
echo "<br><em>{$this->typename}</em><br>";
if ($this->need_strength > 0) {
echo "<br>Требуется сила" . $this->wrap($this->need_strength);
}
if ($this->need_dexterity > 0) {
echo "<br>Требуется ловкость" . $this->wrap($this->need_dexterity);
}
if ($this->need_intuition > 0) {
echo "<br>Требуется интуиция" . $this->wrap($this->need_intuition);
}
if ($this->need_endurance > 0) {
echo "<br>Требуется выносливость" . $this->wrap($this->need_endurance);
}
if ($this->need_intelligence > 0) {
echo "<br>Требуется интеллект" . $this->wrap($this->need_intelligence);
}
if ($this->need_wisdom > 0) {
echo "<br>Требуется мудрость" . $this->wrap($this->need_wisdom);
}
if ($this->add_strength > 0) {
echo "<br>Сила" . $this->wrap($this->add_strength);
}
if ($this->add_dexterity) {
echo "<br>Ловкость" . $this->wrap($this->add_dexterity);
}
if ($this->add_intuition) {
echo "<br>Интуиция" . $this->wrap($this->add_intuition);
}
if ($this->add_endurance) {
echo "<br>Выносливость" . $this->wrap($this->add_endurance);
}
if ($this->add_intelligence) {
echo "<br>Интеллект" . $this->wrap($this->add_intelligence);
}
if ($this->add_wisdom) {
echo "<br>Мудрость" . $this->wrap($this->add_wisdom);
}
if ($this->add_accuracy) {
echo "<br>Точность" . $this->wrap($this->add_accuracy);
}
if ($this->add_evasion) {
echo "<br>Увёртливость" . $this->wrap($this->add_evasion);
}
if ($this->add_criticals) {
echo "<br>Шанс крита" . $this->wrap($this->add_criticals);
}
if ($this->add_min_physical_damage && !$this->add_max_physical_damage) {
$damage = $this->add_min_physical_damage . " - " . $this->add_min_physical_damage;
} elseif (!$this->add_min_physical_damage && $this->add_max_physical_damage) {
$damage = $this->add_max_physical_damage . " - " . $this->add_max_physical_damage;
} elseif ($this->add_min_physical_damage && $this->add_max_physical_damage) {
$damage = $this->add_min_physical_damage . " - " . $this->add_max_physical_damage;
}
2020-07-22 09:50:14 +00:00
if (isset($damage)) {
echo "<br>Урон: " . $damage;
2019-01-14 13:46:20 +00:00
}
}
2019-01-11 16:02:57 +00:00
}