<?php
/**
 * Copyright (c) 2018.
 * Author: Igor Barkov <lopar.4ever@gmail.com>
 * Project name: Battles-Game
 */

class nick
{
    private $user_data;

    /**
     * nick constructor.
     * @param int $playerId
     */
    private function __construct($playerId)
    {
        if (!$this->user_data) {
            $user = db::c()->query('
              SELECT `login`, `level`, U.`align`, `short`, (SELECT 1 FROM `effects` WHERE `owner` = U.`id` AND `type` = 1022) AS `invis`, U.`hp`, `maxhp`
              FROM `users` U
              LEFT JOIN `clans` C ON C.`id` = `klan`
              WHERE U.`id` = ?i', $playerId)->fetch_assoc();
            $this->user_data = $user;
        }

    }

    /**
     * @param $playerId
     * @return nick
     */
    public static function id($playerId)
    {
        return new self($playerId);
    }

    /**
     * @param int $showInvisibility
     * @return string
     */
    public function full($showInvisibility = 0)
    {
        $n = '';
        if ($showInvisibility && isset($this->user_data['invis'])) {
            return '<i>невидимка</i>';
        } else {
            if (isset($this->user_data['align'])) {
                $n .= sprintf('<img src="i/align_%s.gif">', intval($this->user_data['align']));
            }
            if (isset($this->user_data['klan'])) {
                $n .= sprintf('<img src="i/klan/%s.gif">', htmlspecialchars($this->user_data['klan']));
            }
        }
        $n .= sprintf('<b>%s</b> [%s] <a href="inf.php?%s" target="_blank"><img src="i/inf.gif" style="width:12px;height:11px"></a>', htmlspecialchars($this->user_data['login']), intval($this->user_data['level']), htmlspecialchars($this->user_data['login']));

        return $n;
    }

    /**
     * @return string
     */
    public function short()
    {
        if ($this->user_data['invis']) {
            return '<i>невидимка</i>';
        } else return htmlspecialchars($this->user_data['login']);
    }
}