<?php // Магия восстагновления здоровья use Battles\User; class Healing extends \Battles\Magic\Magic { private $target; private $magicPower; /** * Магия лечения. * @param $target - кого лечим. * @param $power - на сколько лечим. * @param null $isPercentage - если включён, считает $power в процентах, иначе, по-умочанию просто как число. */ public function __construct($target, $power, $isPercentage = null) { $this->magicPower = $power; $this->target = $target; if ($target && $this->isUsable()) { if ($isPercentage) { $healHealthAmount = $this->target->health + $this->target->maxHealth / 100 * $this->magicPower; } else { $healHealthAmount = $this->target->health + $this->magicPower; } if ($healHealthAmount > $this->target->maxHealth) { $healHealthAmount = $this->target->maxHealth; } db::c()->query('UPDATE users SET health = ?i WHERE id = ?i', $healHealthAmount, $this->target->id); $targetName = $this->target->login; return "Вы восстановили ${healHealthAmount} здоровья персонажу ${targetName}."; } else { return $this->status; } } /** * Проверки на успех. * @return bool */ private function isUsable() { $caster = new User($_SESSION['uid']); if ($this->target == $_SESSION['uid']) { $this->target = $caster; } else { $this->target = new User($this->target); } return ($this->isVisible($caster, $this->target) && $this->isNotDead($caster) && $this->enoughMana($caster)); } }