<?php

#################################################################################
##              -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =-                 ##
## --------------------------------------------------------------------------- ##
##  Filename       : playerheroinfo.tpl 		                               ##
##  Type           : Admin Panel Frontend                                      ##
## --------------------------------------------------------------------------- ##
##  Developed by   : Dzoki (Original)                                          ##
##  Refactored by  : Shadow                                                    ##
##  Redesign by    : Shadow                                                    ##
## --------------------------------------------------------------------------- ##
##  Contact        : cata7007@gmail.com                                        ##
##  Project        : TravianZ                                                  ##
##  GitHub         : https://github.com/Shadowss/TravianZ                      ##
## --------------------------------------------------------------------------- ##
##  License        : TravianZ Project                                          ##
##  Copyright      : TravianZ (c) 2010-2025. All rights reserved.              ##
## --------------------------------------------------------------------------- ##
#################################################################################

include_once("../GameEngine/Data/hero_full.php"); 
include_once("../GameEngine/Units.php");
$id = (int) $_GET['uid'];
$hero = $units->Hero($id,1);

$heroAliveIndex = -1;
if ($hero !== false) {
	foreach ($hero as $hid => $h) {
		if (!$h['dead']) { $heroAliveIndex = $hid; break; }
	}
}
?>
<style>
.hero-wrap{width:100%;margin-top:15px;font-family:system-ui}
.hero-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.hero-table th,.hero-table td{vertical-align:middle;padding:3px 8px;border-bottom:1px solid #f1f5f9;font-size:12px;color:#1e293b;line-height:1.2}
.hero-table thead th{background:linear-gradient(180deg,#f8fafc,#eef2f7);text-align:center;font-weight:600;color:#334155;border-bottom:1px solid #e2e8f0;padding:4px 8px}
.hero-table tr:last-child td{border-bottom:0}
.hero-table thead th.hero-head{background:linear-gradient(135deg,#66CCFF,#66CCCC) !important;color:#fff !important;padding:6px 10px !important;font-size:13px}
.hero-sub{background:#e2e8f0 !important;font-weight:600;color:#1e293b;text-align:center;padding:3px 8px !important}
.hero-name{font-weight:600;color:#0f172a}
.badge{display:inline-block;padding:1px 6px;border-radius:5px;font-size:10.5px;font-weight:600}
.badge-alive{background:#dcfce7;color:#166534}
.badge-dead{background:#fee2e2;color:#991b1b}
.hero-actions{display:flex;align-items:center;gap:8px}
.hero-icon{display:inline-flex;opacity:.8;transition:.15s}
.hero-icon:hover{opacity:1}
.hero-icon svg{width:14px;height:14px;stroke:#64748b;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.hero-icon.edit:hover svg{stroke:#2563eb}
.hero-icon.kill:hover svg{stroke:#dc2626}
.hero-icon.revive:hover svg{stroke:#16a34a}
.hero-unit img{vertical-align:middle;margin-right:3px;width:16px;height:16px}
.hero-bar{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;margin-top:2px}
.hero-bar-fill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a)}
.add-hero a{margin:0 2px;opacity:.9}
.add-hero a:hover{opacity:1}
.add-hero img{width:18px;height:18px}
.notice{margin-top:6px;text-align:center;font-size:12px;padding:4px;border-radius:5px}
.notice-blue{background:#eff6ff;color:#1d4ed8}
.notice-red{background:#fef2f2;color:#b91c1c}
</style>

<div class="hero-wrap">
<table class="hero-table">
	<thead>
	<tr><th colspan="3" class="hero-head"><?php echo ADM_PLAYER_HEROES; ?></th></tr>
	</thead>
	
	<?php if ($hero === false) {?>
	<tr>
		<td colspan="3" align="center" class="add-hero"><?php echo ADM_NONE_3; ?><span style="color:#2563eb;font-weight:600"><?php echo ADM_ADD_HERO; ?></span>
			<?php
			$utribe=($user['tribe']-1)*10;
			// Sloturile 1-6 care au erou definit in hero_full.php (generic pentru toate triburile)
			for ($hs = 1; $hs <= 6; $hs++) {
				$huid = $utribe + $hs;
				if (!isset(${'h'.$huid})) continue;
				echo "&nbsp;<a href='?action=addHero&uid=".$id."&u=".$huid."'><img class=\"unit u".$huid."\" src=\"img/x.gif\" alt=\"".$technology->getUnitName($huid)."\" title=\"".$technology->getUnitName($huid)."\" /></a>";
			}
			?>
		</td>
	</tr>	
	<?php } else {
	$x = 1;
	foreach ($hero as $h) { ?>
	<tr><td colspan="3" class="hero-sub" style="text-align:center">Hero #<?php echo $x++; ?></td></tr>
	<tr>
		<td width="35%"><?php echo ADM_HERO_NAME; ?></td> 
		<td colspan="2" class="hero-name"><?php echo htmlspecialchars($h['name']); ?></td>
	</tr>
	<tr>
		<td><?php echo ADM_HERO_LEVEL; ?></td> 
		<td colspan="2"><?php echo $h['level']; ?></td> 
	</tr>
	<tr>
		<td><?php echo ADM_HERO_UNIT; ?></td> 
		<td colspan="2" class="hero-unit"><?php echo "<img class=\"unit u".$h['unit']."\" src=\"img/x.gif\" alt=\"".$technology->getUnitName($h['unit'])."\" title=\"".$technology->getUnitName($h['unit'])."\" /> ".$technology->getUnitName($h['unit']); ?></td> 
	</tr>
	<tr> 
		<td><?php echo ADM_STATUS; ?></td> 
		<td colspan="2" class="hero-actions">
		<?php if (!$h['dead']) { ?>
			<span class="badge badge-alive"><?php echo ADM_ALIVE; ?></span>
			<a class="hero-icon edit" href='admin.php?p=editHero&uid=<?php echo $id; ?>&amp;hid=<?php echo $h['heroid'] ?>' title="<?php echo ADM_EDIT; ?>">
				<svg viewBox="0 0 24 24"><path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z"/></svg>
			</a>
			<?php if (defined('NEW_FUNCTIONS_HERO_T4') && NEW_FUNCTIONS_HERO_T4) { ?>
			<a class="hero-icon edit" href='admin.php?p=editHeroT4&uid=<?php echo $id; ?>' title="<?php echo ADM_T4_ITEMS_SILVER_AUCTIONS; ?>">
				<svg viewBox="0 0 24 24"><path d="M6 2l1.5 4h9L18 2"/><path d="M4 6h16l-2 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L4 6z"/></svg>
			</a>
			<?php } ?>
			<a class="hero-icon kill" href='?action=killHero&uid=<?php echo $id; ?>' title="<?php echo ADM_KILL; ?>">
				<svg viewBox="0 0 24 24"><path d="M3 6h18M8 6V4h8v2m-1 0v14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2V6h10z"/></svg>
			</a>
		<?php } else { ?>
			<span class="badge badge-dead"><?php echo ADM_DEAD; ?></span>
			<?php if ($heroAliveIndex === -1) { ?>
				<a class="hero-icon revive" href="?action=reviveHero&uid=<?php echo $id;?>&amp;hid=<?php echo $h['heroid'] ?>" title="<?php echo ADM_REVIVE; ?>">
					<svg viewBox="0 0 24 24"><path d="M21 12a9 9 0 1 1-3-6.7"/><path d="M21 3v6h-6"/></svg>
				</a>
			<?php } else { echo '<span style="color:#64748b;font-size:11px">(kill living hero first)</span>'; } ?>
		<?php } ?>
		</td>
	</tr>

	<?php if (!$h['dead']) { ?>
	<tr><th><?php echo ADM_DETAILS; ?></th><th><?php echo ADM_POINT; ?></th><th><?php echo ADM_LEVEL_2; ?></th></tr>
	<tr><td><?php echo ADM_OFFENCE_2; ?></td><td><?php echo $h['atk']; ?></td><td><?php echo $h['attack']; ?></td></tr> 
	<tr><td><?php echo ADM_DEFENCE_2; ?></td><td><?php echo $h['di']."/".$h['dc']; ?></td><td><?php echo $h['defence']; ?></td></tr> 
	<tr><td><?php echo ADM_OFF_BONUS_2; ?></td><td><?php echo round(($h['ob']-1)*100, 1); ?>%</td><td><?php echo $h['attackbonus']; ?></td></tr> 
	<tr><td><?php echo ADM_DEF_BONUS_2; ?></td><td><?php echo round(($h['db']-1)*100, 1); ?>%</td><td><?php echo $h['defencebonus']; ?></td></tr> 
	<tr><td><?php echo ADM_REGENERATION; ?></td><td><?php echo min(100,$h['regeneration'])*5*SPEED; ?>/Day</td><td><?php echo $h['regeneration']; ?></td></tr>
	<?php if (defined('NEW_FUNCTIONS_HERO_T4') && NEW_FUNCTIONS_HERO_T4) {
		$hResPoints = (int) ($h['resources'] ?? 0);
		$hResType   = (int) ($h['res_type'] ?? 0);
		$hPerAll    = defined('HERO_RES_PER_POINT_ALL') ? (int) HERO_RES_PER_POINT_ALL : 3;
		$hPerOne    = defined('HERO_RES_PER_POINT_ONE') ? (int) HERO_RES_PER_POINT_ONE : 10;
		$hResNames  = [0 => 'all', 1 => 'lumber', 2 => 'clay', 3 => 'iron', 4 => 'crop'];
		$hResAmount = ($hResType >= 1 && $hResType <= 4)
			? (int) round($hResPoints * $hPerOne * SPEED)
			: (int) round($hResPoints * $hPerAll * SPEED);
	?>
	<tr><td><?php echo ADM_RESOURCES_2; ?></td><td><?php echo $hResAmount; ?>/h (<?php echo $hResNames[$hResType] ?? 'all'; ?>)</td><td><?php echo $hResPoints; ?></td></tr>
	<?php } ?>
	<tr>
		<?php 
		// 1. puncte rămase - nu lăsa negativ
		$used = (int)$h['attack'] + (int)$h['defence'] + (int)$h['attackbonus']
		      + (int)$h['defencebonus'] + (int)$h['regeneration'] + (int)($h['resources'] ?? 0);

		// totalul de puncte vine din tabelul de niveluri: 5 initiale + 5 per nivel
		$hMaxLevel = isset($hero_levels) ? max(array_keys($hero_levels)) - 1 : 119;
		$hMaxPoints = 5 + ($hMaxLevel * 5);
		$count_level_exp = max(0, $hMaxPoints - $used);
		if ($h['points'] > $count_level_exp) $h['points'] = $count_level_exp;

		// 2. procent XP - protejat pentru level 100
		$level = (int)$h['level'];
		if ($level >= $hMaxLevel || !isset($hero_levels[$level+1])) {
		$expPct = 100;
		} else {
		$curr = $hero_levels[$level] ?? 0;
		$next = $hero_levels[$level+1] ?? $curr;
		$den  = $next - $curr;
		$expPct = ($den > 0 && $h['experience'] < $next) 
        ? (int)(($h['experience'] - $curr) * 100 / $den) 
        : 100;
		}
		$expPct = max(0, min(100, $expPct));
		?>
		<td>Experience: <?php echo $expPct; ?>%</td> 
		<td colspan="2"><?php echo $h['points']; ?><div class="hero-bar"><div class="hero-bar-fill" style="width:<?php echo $expPct; ?>%"></div></div></td> 
	</tr>
	<tr><td><?php echo ADM_HEALTH_2; ?></td><td colspan="2"><?php echo round($h['health']); ?>%<div class="hero-bar"><div class="hero-bar-fill" style="width:<?php echo round($h['health']); ?>%"></div></div></td></tr>
	<tr><td colspan="3" style="height:8px;background:#f8fafc"></td></tr>
	<?php } else { ?>
	<tr><td colspan="3" style="height:8px;background:#f8fafc"></td></tr>
	<?php } } } ?>
</table>

<?php
if(isset($_GET['e'])) echo '<div class="notice notice-red"><b>Hero could not be killed.</b></div>';
elseif(isset($_GET['kc'])) echo '<div class="notice notice-blue"><b>Hero has been killed.</b></div>';
elseif(isset($_GET['rc'])) echo '<div class="notice notice-blue"><b>Hero has been revived.</b></div>';
elseif(isset($_GET['re'])) echo '<div class="notice notice-red"><b>Cannot revive – another hero lives.</b></div>';
elseif(isset($_GET['ac'])) echo '<div class="notice notice-blue"><b>New hero added.</b></div>';
elseif(isset($_GET['cs'])) echo '<div class="notice notice-blue"><b>Hero information saved.</b></div>';
elseif(isset($_GET['ce'])) echo '<div class="notice notice-red"><b>Edit failed.</b></div>';
?>
</div>