game/onyx2/include/game/arbre.php

120 lines
3.5 KiB
PHP

<?php
if (!defined('INDEX')) {
header('Location: ./'.$VAR['first_page']);
exit;
}
$page = 'arbre';
$titre = 'Arbre des technologies';
if (empty($_GET['q'])) {
$_GET['q'] = '';
}
$template->assign('defaut', gpc('q'));
//Récupération et vérification de la race voulue ou définition d'une race par défaut
if (empty($_GET['r']) || (gpc('r') != 'humain' && gpc('r') != 'covenant')) {
$_GET['r'] = $planete->race;
}
$race = gpc('r');
$template->assign('raceAff', $race);
if (SURFACE == "asteroide") {
$TEMP_liste = array();
foreach ($planete->batiments as $id => $batiment) {
if (!empty($LANG[$race]["alli_batiments"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $batiment,
'etat' => dAlliancesBatiments::needed($id, $planete, true)
);
}
}
$template->assign('batiments', $TEMP_liste);
} else {
$TEMP_liste = array();
foreach ($planete->batiments as $id => $batiment) {
if (!empty($LANG[$race]["batiments"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $batiment,
'etat' => dBatiments::needed($id, $planete, true)
);
}
}
$template->assign('batiments', $TEMP_liste);
}
function traiterBrancheTechnologie($TEMP_liste, $branche, $i, $race)
{
global $LANG, $planete;
foreach ($i as $key => $id) {
if (is_array($id)) {
$TEMP_liste = traiterBrancheTechnologie($TEMP_liste, $branche, $id, $race);
} else {
$niveau = dTechnologies::niveau_du_joueur($branche, $id, $planete);
$niveau_max = dTechnologies::niveau_max($branche, $id, $planete, $LANG);
$object = array($branche, $id);
$TEMP_liste[$branche][$id] = array(
'id' => $id,
'branche' => $branche,
'niveau' => $niveau,
'niveau_max' => $niveau_max,
'etat' => dTechnologies::needed($object, $planete, true, $race)
);
}
}
return $TEMP_liste;
}
$TEMP_liste = array();
$branche = 0;
while ($branche < 9) {
$TEMP_liste[$branche] = array();
$TEMP_liste = traiterBrancheTechnologie($TEMP_liste, $branche, dTechnologies::type($branche, $planete->race), $race);
$branche++;
}
$template->assign('technologies', $TEMP_liste);
$TEMP_liste = array();
foreach ($planete->casernes as $id => $unite) {
if (!empty($LANG[$race]["caserne"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $unite,
'etat' => dCaserne::needed($id, $planete, true)
);
}
}
$template->assign('caserne', $TEMP_liste);
$TEMP_liste = array();
$id = 0;
$max_unite = count($LANG[$race]["terrestre"]["noms_sing"]);
while ($id <= $max_unite) {
if (!empty($LANG[$race]["terrestre"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => ($race == $planete->race) ? $planete->terrestres[$id] : 0,
'etat' => dTerrestre::needed($id, $planete, true, $race)
);
}
$id++;
}
$template->assign('unites', $TEMP_liste);
$TEMP_liste = array();
$id = 0;
$max_unite = count($LANG[$race]["vaisseaux"]["noms_sing"]);
while ($id <= $max_unite) {
if (!empty($LANG[$race]["vaisseaux"]["noms_sing"][$id])) {
$TEMP_liste[$id] = array(
'niveau' => $planete->vaisseaux[$id],
'etat' => dSpatial::needed($id, $planete, true, $race)
);
}
$id++;
}
$template->assign('vaisseaux', $TEMP_liste);
unset($TEMP_liste, $id, $unite);