<?php
session_start();
require_once 'inc/functions.php';
check404();
securityCheck();
if (!isLoggedIn()) {
    header('Location: index.php');
    exit;
}

$user = getUserById($_SESSION['user_id']);
if (!$user) {
    session_destroy();
    header('Location: index.php');
    exit;
}

$bossId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$boss = getBossById($bossId);
if (!$boss) {
    header('Location: bosses.php');
    exit;
}

// Проверка уровня
if ($user['level'] < $boss['level_required']) {
    header('Location: bosses.php');
    exit;
}

// Проверяем кулдаун
$cooldown = getBossCooldownSeconds($user['id'], $bossId);
if ($cooldown > 0) {
    // Редирект на список с сообщением? Покажем на этой же странице сообщение.
    $error = "Кулдаун ещё не прошёл. Осталось " . ceil($cooldown / 60) . " мин.";
} else {
    // Проверяем, есть ли активный бой
    $fight = getActiveBossFight($user['id'], $bossId);
    if (!$fight) {
        // Начинаем новый бой
        if (!startBossFight($user['id'], $bossId)) {
            $error = "Не удалось начать бой.";
        } else {
            $fight = getActiveBossFight($user['id'], $bossId);
        }
    }
}

// Обработка атаки
$attackResult = null;
if (isset($_POST['attack']) && !isset($error)) {
    $attackResult = processBossAttack($user['id'], $bossId);
    if ($attackResult) {
        // Обновляем данные пользователя (для отображения здоровья, если изменилось)
        $user = getUserById($user['id']);
        // Перезагружаем бой
        $fight = getActiveBossFight($user['id'], $bossId);
        if (!$fight && $attackResult['status'] != 'active') {
            // Бой завершён, кулдаун установлен
            // Обновим кулдаун для проверки
            $cooldown = getBossCooldownSeconds($user['id'], $bossId);
        }
    } else {
        $error = "Ошибка при атаке.";
    }
}

require_once 'inc/header.php';
?>

<span class="ttl"><b>Бой с боссом: <?= htmlspecialchars($boss['name']) ?></b></span>
<div class="clb"></div>
<div class="hr"></div>

<?php if (isset($error)): ?>
    <div class="error"><?= htmlspecialchars($error) ?></div>
    <div class="hr"></div>
    <a href="bosses.php" class="btn full">К списку боссов</a>
<?php elseif ($cooldown > 0): ?>
    <div class="cntr">
        <b class="minor">Кулдаун активен</b><br>
        Вы сможете сразиться снова через <?= ceil($cooldown / 60) ?> мин.
    </div>
    <div class="hr"></div>
    <a href="bosses.php" class="btn full">К списку боссов</a>
<?php elseif ($fight && $fight['status'] == 'active'): ?>
    <!-- Отображение боя -->
    <table width="100%" cellpadding="5">
        <tr>
            <td align="center" width="50%">
                <img src="<?= getAvatarUrl($user) ?>" width="60" height="60" alt=""><br>
                <b><?= htmlspecialchars($user['username']) ?></b><br>
                <span class="info">❤️ <?= $fight['player_current_hp'] ?> / <?= $user['health'] ?></span>
            </td>
            <td align="center" width="50%">
                <img src="<?= $boss['image'] ? htmlspecialchars($boss['image']) : 'images/icons/boss_placeholder.png' ?>" width="60" height="60" alt=""><br>
                <b><?= htmlspecialchars($boss['name']) ?></b><br>
                <span class="info">❤️ <?= $fight['boss_current_hp'] ?> / <?= $boss['health'] ?></span>
            </td>
        </tr>
    </table>

    <?php if ($attackResult): ?>
        <div class="battle-result" style="margin-top:10px;">
            <b>Результат атаки:</b><br>
            Вы нанесли <span class="info"><?= $attackResult['player_damage'] ?></span> урона<?= $attackResult['player_crit'] ? ' (крит!)' : '' ?>.<br>
            Босс ответил <span class="minor"><?= $attackResult['boss_damage'] ?></span> урона<?= $attackResult['boss_crit'] ? ' (крит!)' : '' ?>.<br>
            <?php if ($attackResult['status'] == 'won'): ?>
                <span class="info">Вы победили босса!</span><br>
                Получено: +<?= $attackResult['reward_exp'] ?> опыта, +<?= $attackResult['reward_bucks'] ?> баксов.
            <?php elseif ($attackResult['status'] == 'lost'): ?>
                <span class="minor">Вы проиграли...</span>
            <?php endif; ?>
        </div>
        <div class="hr"></div>
    <?php endif; ?>

    <?php if ($fight['player_current_hp'] > 0 && $fight['boss_current_hp'] > 0): ?>
        <form method="post">
            <button type="submit" name="attack" class="btn full">Атаковать</button>
        </form>
    <?php else: ?>
        <a href="bosses.php" class="btn full">К списку боссов</a>
    <?php endif; ?>

<?php else: ?>
    <div class="cntr">Неизвестное состояние боя.</div>
    <a href="bosses.php" class="btn full">К списку боссов</a>
<?php endif; ?>

<div class="hr"></div>

<?php require_once 'inc/foot.php'; ?>