<?php
session_start();
require '../conexao.php';

if (!isset($_SESSION['local'])) {
    echo "<div style='color: white; text-align: center;'>Local não definido.</div>";
    exit;
}

$localAtual = $_SESSION['local'];
$jogadorAtual = $_SESSION['user_name'] ?? '';

// Buscar o clã do personagem do jogador atual
$claAtual = '';
if (!empty($jogadorAtual)) {
    try {
        $sqlCla = "SELECT cla FROM personagens WHERE jogador = :jogador AND ativo = 1";
        $stmtCla = $pdo->prepare($sqlCla);
        $stmtCla->bindParam(':jogador', $jogadorAtual, PDO::PARAM_STR);
        $stmtCla->execute();
        
        if ($rowCla = $stmtCla->fetch(PDO::FETCH_ASSOC)) {
            $claAtual = $rowCla['cla'];
        }
    } catch (PDOException $e) {
        $claAtual = '';
    }
}

echo "<style>
    .scroll-container {
        max-height: 400px;
        overflow-y: auto;
        margin: 10px auto;
        border: 2px solid #0066cc;
        border-radius: 5px;
        background-color: #000;
    }
    
    .personagens-table {
        width: 100%;
        border-collapse: collapse;
        color: white;
        font-size: 14px;
    }
    
    .personagens-table th {
        position: sticky;
        top: 0;
        background-color: #001a33;
        color: white;
        padding: 10px;
        border: 1px solid #0066cc;
        text-align: center;
        z-index: 10;
    }
    
    .personagens-table td {
        padding: 8px;
        border: 1px solid #0066cc;
        text-align: center;
        max-width: 150px;
        word-break: break-word;
    }
    
    .personagens-table tr:nth-child(even) {
        background-color: #0a0a0a;
    }
    
    .personagens-table tr:hover {
        background-color: #002b4d;
    }
    
    .meu-personagem {
        background-color: #001133 !important;
        border-left: 4px solid blue !important;
    }
    
    .meu-cla {
        background-color: #003300 !important;
        border-left: 4px solid #00ff00 !important;
    }
    
    .meu-cla:hover {
        background-color: #004400 !important;
    }
    
    .meu-personagem:hover {
        background-color: #002244 !important;
    }
    
    .btn-ataque {
        background-color: #ff0000;
        color: white;
        border: none;
        padding: 5px 10px;
        border-radius: 4px;
        cursor: pointer;
        font-family: 'MedievalSharp', cursive;
        font-size: 12px;
        transition: background-color 0.3s;
    }
    
    .btn-ataque:hover {
        background-color: #cc0000;
    }
    
    .scroll-container::-webkit-scrollbar {
        width: 12px;
    }
    
    .scroll-container::-webkit-scrollbar-track {
        background: #001a33;
        border-radius: 6px;
    }
    
    .scroll-container::-webkit-scrollbar-thumb {
        background: #0066cc;
        border-radius: 6px;
        border: 2px solid #001a33;
    }
    
    .scroll-container::-webkit-scrollbar-thumb:hover {
        background: #0099ff;
    }
    
    .title {
        color: white;
        text-align: center;
        margin: 15px 0;
        font-size: 1.4em;
    }
    
    .status-completed {
        color: #00ff00;
        font-weight: bold;
    }
    
    .status-inprogress {
        color: #ff6666;
        font-weight: bold;
    }
    
    .total-personagens {
        color: white;
        text-align: center;
        margin: 10px 0;
        font-size: 0.9em;
    }
    
    .poucos-soldados {
        color: #ffcc00;
        font-style: italic;
    }
</style>";

try {
    $sql = "SELECT personagem, jogador, situacao, cla, cargo, paralisado, reputacao, soldados 
            FROM personagens 
            WHERE local = :local 
            AND ativo = 1 
            AND situacao NOT IN ('escondido', 'fugindo', 'reagrupando soldados')
            ORDER BY reputacao DESC, personagem ASC";
    
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':local', $localAtual, PDO::PARAM_STR);
    $stmt->execute();
    
    if ($stmt->rowCount() > 0) {
        echo "<h3 class='title'>Personagens em " . htmlspecialchars($localAtual) . "</h3>";
        echo "<div class='scroll-container'>";
        echo "<table class='personagens-table'>";
        echo "<thead>
                <tr>
                    <th>Personagem</th>
                    <th>Jogador</th>
                    <th>Situação</th>
                    <th>Reputação</th>
                    <th>Clã</th>
                    <th>Cargo</th>
                    <th>Ação</th>
                </tr>
              </thead>
              <tbody>";
        
        while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $situacao = htmlspecialchars($row['situacao']);
            $isMeuPersonagem = ($row['jogador'] == $jogadorAtual);
            $isMeuCla = ($row['cla'] == $claAtual && !$isMeuPersonagem);
            $classeLinha = '';
            $soldados = (int)$row['soldados'];
            
            if ($isMeuPersonagem) {
                $classeLinha = 'meu-personagem';
            } elseif ($isMeuCla) {
                $classeLinha = 'meu-cla';
            }
            
            if (in_array($row['situacao'], ['caçando', 'pegando madeira'])) {
                $paralisado = new DateTime($row['paralisado']);
                $agora = new DateTime();
                $status_class = ($paralisado <= $agora) ? 'status-completed' : 'status-inprogress';
                $status_text = ($paralisado <= $agora) ? '(concluído)' : '(em andamento)';
                $situacao .= " <span class='$status_class'>$status_text</span>";
            }
            
            echo "<tr class='$classeLinha'>";
            echo "<td>" . htmlspecialchars($row['personagem']) . "</td>";
            echo "<td>" . htmlspecialchars($row['jogador']) . "</td>";
            echo "<td>" . $situacao . "</td>";
            echo "<td>" . htmlspecialchars($row['reputacao']) . "</td>";
            echo "<td>" . htmlspecialchars($row['cla']) . "</td>";
            echo "<td>" . htmlspecialchars($row['cargo']) . "</td>";
            
            echo "<td>";
            // Só mostra botão de ataque se NÃO for meu personagem E NÃO for do meu clã
            if (!$isMeuPersonagem && !$isMeuCla) {
                if ($soldados <= 10) {
                    echo "<span class='poucos-soldados'>Poucos soldados</span>";
                } else {
                    echo "<form method='post' action='atacando.php' style='margin:0;'>";
                    echo "<input type='hidden' name='inimigo' value='" . htmlspecialchars($row['personagem']) . "'>";
                    echo "<button type='submit' class='btn-ataque' onclick=\"return confirm('Tem certeza que deseja atacar " . htmlspecialchars($row['personagem']) . "?')\">Atacar</button>";
                    echo "</form>";
                }
            }
            echo "</td>";
            
            echo "</tr>";
        }
        
        echo "</tbody></table></div>";
        echo "<div class='total-personagens'>Total: " . $stmt->rowCount() . " personagens</div>";
    } else {
        echo "<div style='color: white; text-align: center; padding: 20px;'>Nenhum personagem ativo encontrado neste local.</div>";
    }
} catch (PDOException $e) {
    echo "<div style='color: white; text-align: center; padding: 20px;'>Erro ao consultar o banco de dados.</div>";
}
?>