<?php abstract class Item { public $item_id; 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; /** * Item constructor. * * @param $row */ public function __construct($row) { foreach ($this as $key => $value) { if (isset($row[$key])) { $this->$key = $row[$key]; } } 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 = 'Хлам'; } } abstract public function printInfo(); public function printImage() { echo <<<IMG <img src="//{$_SERVER['SERVER_NAME']}/i/sh/{$this->image}" 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 printAllInfo() { 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; } if ($damage) { echo "Урон: " . $damage; } } }