невидимка'; class Nick extends UserStats { private function isInvisible() { return Db::getInstance()->execute('SELECT count(*) FROM users_effects WHERE type = 1022 AND owner_id = ?', $this->id)->fetchColumn(); } /** * Отображение иконки склонности. * @return string */ private function getAlignImage(): ?string { return $this->align ? "Склонность" : null; } /** * Отображение иконки клана. * @return string */ private function getClanImage(): ?string { return $this->clan ? "Клан" : null; } private function getInfolinkImage(): string { return "Ссылка на профиль"; } /** * Вызов класса из самого себя. Читать про обратное связывание и пытаться что-то понять. * @param $playerId * * @return Nick */ public static function id($playerId): self { return new self($playerId); } /** * Возвращает строку со склонностью, кланом, логином, уровнем, ссылкой на профиль. * * @param int $showInvisibility отображать логин даже если персонаж невидимка. * * @return string */ public function full(int $showInvisibility = 0): string { return !$showInvisibility && $this->isInvisible() ? INVIS : $this->getAlignImage() . $this->getClanImage() . " $this->login [$this->level] " . $this->getInfolinkImage(); } /** * Возвращает строку с логином. * Избавиться от этого! Оставлено для совместимости. * @return string */ public function short(): string { return $this->login; } /** * Возвращает строку со склонностью, кланом, логином, уровнем, ссылкой на профиль, здоровьем. * @return string */ public function battle(): string { return $this->full() . "HP [$this->health/$this->maxHealth]"; } }