mirror of
https://github.com/Shadowss/TravianZ.git
synced 2026-06-28 00:24:23 +00:00
228 lines
5.3 KiB
Smarty
228 lines
5.3 KiB
Smarty
<?php
|
|
#################################################################################
|
|
## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ##
|
|
## --------------------------------------------------------------------------- ##
|
|
## Filename field.tpl ##
|
|
## Developed by: Dzoki ##
|
|
## Refactored by: Shadow Incremental Refactor ##
|
|
## License: TravianZ Project ##
|
|
## Copyright: TravianZ (c) 2010-2026. All rights reserved. ##
|
|
## ##
|
|
## Refactor notes: ##
|
|
## - păstrată logica originală 100% ##
|
|
## - compatibil PHP 5.6+ / 7+ ##
|
|
## - redus cod duplicat ##
|
|
## - optimizat verificarea upgrade-urilor ##
|
|
## - output HTML mai sigur ##
|
|
## - comentarii adăugate ##
|
|
## ##
|
|
#################################################################################
|
|
|
|
/**
|
|
* Escape HTML compatibil PHP vechi
|
|
*/
|
|
if (!function_exists('safeHTML')) {
|
|
function safeHTML($string)
|
|
{
|
|
return htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Coordonatele câmpurilor de resurse
|
|
* Format:
|
|
* fieldId => coords
|
|
*/
|
|
$coorarray = array(
|
|
1 => "101,33,28",
|
|
2 => "165,32,28",
|
|
3 => "224,46,28",
|
|
4 => "46,63,28",
|
|
5 => "138,74,28",
|
|
6 => "203,94,28",
|
|
7 => "262,86,28",
|
|
8 => "31,117,28",
|
|
9 => "83,110,28",
|
|
10 => "214,142,28",
|
|
11 => "269,146,28",
|
|
12 => "42,171,28",
|
|
13 => "93,164,28",
|
|
14 => "160,184,28",
|
|
15 => "239,199,28",
|
|
16 => "87,217,28",
|
|
17 => "140,231,28",
|
|
18 => "190,232,28"
|
|
);
|
|
|
|
/**
|
|
* Shortcut către resarray
|
|
*/
|
|
$arrayVillage = $village->resarray;
|
|
|
|
/**
|
|
* Tipuri câmpuri resurse
|
|
*/
|
|
$fieldNames = array(
|
|
1 => 'Woodcutter Level',
|
|
2 => 'Clay Pit Level',
|
|
3 => 'Iron Mine Level',
|
|
4 => 'Cropland Level'
|
|
);
|
|
?>
|
|
|
|
<!-- ===================== RESOURCE MAP ===================== -->
|
|
|
|
<map name="rx" id="rx">
|
|
|
|
<?php
|
|
|
|
/**
|
|
* Lucrări active în sat
|
|
* Folosit pentru highlight upgrade în progres
|
|
*/
|
|
$jobs = $database->getJobs($village->wid);
|
|
|
|
/**
|
|
* Cache fields active
|
|
*/
|
|
$activeFields = array();
|
|
|
|
/**
|
|
* Compatibil PHP vechi
|
|
*/
|
|
if (!empty($jobs) && is_array($jobs)) {
|
|
|
|
foreach ($jobs as $job) {
|
|
|
|
/**
|
|
* Doar resource fields (1-4)
|
|
*/
|
|
if (isset($job['type']) && (int)$job['type'] <= 4) {
|
|
|
|
$activeFields[(int)$job['field']] = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Generare areas resurse
|
|
*/
|
|
for ($i = 1; $i <= 18; $i++) {
|
|
|
|
$fieldType = isset($arrayVillage['f'.$i.'t'])
|
|
? (int)$arrayVillage['f'.$i.'t']
|
|
: 0;
|
|
|
|
$fieldLevel = isset($arrayVillage['f'.$i])
|
|
? (int)$arrayVillage['f'.$i]
|
|
: 0;
|
|
|
|
/**
|
|
* Nume resursă
|
|
*/
|
|
$resourceName = Building::procResType($fieldType);
|
|
|
|
/**
|
|
* Upgrade activ
|
|
*/
|
|
$isActive = isset($activeFields[$i]);
|
|
|
|
/**
|
|
* Tooltip
|
|
*/
|
|
$title = $resourceName .
|
|
' Level ' .
|
|
$fieldLevel;
|
|
|
|
if ($isActive) {
|
|
$title .= ' (upgrade in progress)';
|
|
}
|
|
|
|
echo '<area href="build.php?id=' . $i . '"
|
|
coords="' . safeHTML($coorarray[$i]) . '"
|
|
shape="circle"
|
|
title="' . safeHTML($title) . '" />' . "\r\n";
|
|
}
|
|
?>
|
|
|
|
<!-- Village center -->
|
|
<area href="dorf2.php"
|
|
coords="144,131,36"
|
|
shape="circle"
|
|
title="<?php echo VILLAGE_CENTER; ?>"
|
|
alt="" />
|
|
|
|
</map>
|
|
|
|
<!-- ===================== RESOURCE VILLAGE MAP ===================== -->
|
|
|
|
<div id="village_map" class="f<?php echo (int)$village->type; ?>">
|
|
|
|
<?php
|
|
|
|
/**
|
|
* Randare resource fields
|
|
*/
|
|
for ($i = 1; $i <= 18; $i++) {
|
|
|
|
$fieldType = isset($arrayVillage['f'.$i.'t'])
|
|
? (int)$arrayVillage['f'.$i.'t']
|
|
: 0;
|
|
|
|
$fieldLevel = isset($arrayVillage['f'.$i])
|
|
? (int)$arrayVillage['f'.$i]
|
|
: 0;
|
|
|
|
/**
|
|
* Dacă slotul este gol skip
|
|
*/
|
|
if ($fieldType == 0) {
|
|
continue;
|
|
}
|
|
|
|
/**
|
|
* Text alt
|
|
*/
|
|
$text = isset($fieldNames[$fieldType])
|
|
? $fieldNames[$fieldType]
|
|
: 'Resource Field Level';
|
|
|
|
/**
|
|
* Upgrade activ
|
|
*/
|
|
$isActive = isset($activeFields[$i]);
|
|
|
|
/**
|
|
* CSS class
|
|
*/
|
|
$cssClass = 'reslevel rf' .
|
|
$i .
|
|
' level' .
|
|
$fieldLevel;
|
|
|
|
if ($isActive) {
|
|
$cssClass .= '_active';
|
|
}
|
|
|
|
/**
|
|
* Alt text
|
|
*/
|
|
$altText = $text . ' ' . $fieldLevel;
|
|
|
|
if ($isActive) {
|
|
$altText .= ' (upgrade in progress)';
|
|
}
|
|
|
|
echo '<img src="img/x.gif"
|
|
class="' . safeHTML($cssClass) . '"
|
|
alt="' . safeHTML($altText) . '" />';
|
|
}
|
|
?>
|
|
|
|
<!-- Overlay click map -->
|
|
<img id="resfeld"
|
|
usemap="#rx"
|
|
src="img/x.gif"
|
|
alt="" />
|
|
|
|
</div> |