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

$userId = $_SESSION['user_id'];
$user = getUserById($userId);
updateLastActivity($userId);

$pos = getPlayerWorldPosition($userId);

// Обработка перемещения
if (isset($_GET['move'])) {
    $dir = $_GET['move'];
    $dx = $dy = 0;
    if ($dir == 'up') $dy = -1;
    elseif ($dir == 'down') $dy = 1;
    elseif ($dir == 'left') $dx = -1;
    elseif ($dir == 'right') $dx = 1;
    $moveResult = movePlayer($userId, $dx, $dy);
    if ($moveResult['success']) {
        $pos = getPlayerWorldPosition($userId); // обновить
    } else {
        $error = $moveResult['message'];
    }
}

// Обработка атаки монстра
if (isset($_GET['fight'])) {
    $fightResult = fightWorldMonster($userId);
    // Обновляем данные пользователя
    $user = getUserById($userId);
}

require_once 'inc/header.php';
?>

<span class="ttl"><b>Открытый мир</b></span>
<div class="hr"></div>

<?php if (isset($error)): ?>
    <div class="error"><?= htmlspecialchars($error) ?></div>
    <div class="hr"></div>
<?php endif; ?>

<?php if (isset($fightResult)): ?>
    <div class="battle-result">
        <b>Результат боя</b><br>
        Вы нанесли монстру <?= $fightResult['damage_to_monster'] ?> урона (<?= $fightResult['is_crit'] ? 'крит' : 'обычный' ?>).<br>
        Здоровье монстра: <?= $fightResult['new_monster_hp'] ?>/<?= $fightResult['monster']['max_health'] ?><br>
        Монстр нанёс вам <?= $fightResult['damage_to_player'] ?> урона.<br>
        Ваше здоровье: <?= $fightResult['new_player_hp'] ?>/<?= $user['health'] ?><br>
        <?php if ($fightResult['victory']): ?>
            <span class="info">Победа! +<?= $fightResult['exp_gain'] ?> опыта, +<?= $fightResult['bucks_gain'] ?> баксов.</span>
        <?php elseif ($fightResult['defeat']): ?>
            <span class="minor">Вы погибли и вернулись в центр.</span>
        <?php endif; ?>
    </div>
    <div class="hr"></div>
<?php endif; ?>

<div style="text-align: center; margin: 20px 0;">
    <div>Ваши координаты: X=<?= $pos['x'] ?>, Y=<?= $pos['y'] ?></div>
    <div style="display: flex; justify-content: center; gap: 10px; margin-top: 20px;">
        <a href="?move=up" class="btn">↑ Вверх</a>
    </div>
    <div style="display: flex; justify-content: center; gap: 10px; margin: 5px 0;">
        <a href="?move=left" class="btn">← Влево</a>
        <a href="?move=down" class="btn">↓ Вниз</a>
        <a href="?move=right" class="btn">→ Вправо</a>
    </div>
</div>

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

<?php
// Проверим, есть ли монстр в текущей клетке
$monster = ensureMonsterAtPosition($pos['seed'], $pos['x'], $pos['y'], $user['level']);
if ($monster && $monster['health'] > 0):
?>
    <div style="background: #f0e6d2; border: 1px solid #0e0429; padding: 10px; margin-top: 10px;">
        <b>Монстр: <?= htmlspecialchars($monster['monster_type']) ?> (ур. <?= $monster['level'] ?>)</b><br>
        ❤️ <?= $monster['health'] ?>/<?= $monster['max_health'] ?><br>
        ⚔️ <?= $monster['attack'] ?> | 🛡️ <?= $monster['defense'] ?><br>
        <a href="?fight=1" class="btn full">Сразиться</a>
    </div>
<?php else: ?>
    <div class="cntr small">Здесь никого нет. Идите дальше.</div>
<?php endif; ?>

<div class="hr"></div>
<a href="index.php" class="btn full">Вернуться в город</a>

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