diff --git a/magic/CureInjury.php b/magic/CureInjury.php new file mode 100644 index 0000000..e4279de --- /dev/null +++ b/magic/CureInjury.php @@ -0,0 +1,51 @@ +isUsable()) { + $injury = db::c()->query('SELECT effect_id, type, name FROM users_effects WHERE type IN (11,12,13,14) AND owner_id = ?i ORDER BY type DESC LIMIT 1', $this->target->id)->fetch_object(); + if (in_array($injury->effect_id, [11,12,13,14]) && $injuryType >= $injury->type) { + db::c()->query('DELETE FROM users_effects WHERE effect_id = ?i', $injury->effect_id); + $targetName = $this->target->login; + if (empty($injury->name) || $injury->name == 'Неизвестный эффект') { + $injuryName = self::$effectName[$injury->type]; + } else { + $injuryName = $injury->name; + } + return "Вы вылечили повреждение ${injuryName} персонажу ${targetName}."; + } else { + return false; + } + } 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) && $this->isNotInBattle($caster)); + } +} \ No newline at end of file