HB/game/jeu/chantierspatial.php

101 lines
3.6 KiB
PHP
Raw Normal View History

2008-09-20 10:00:00 +00:00
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'chantierspatial';
$titre = $batiment[8];
//Vérification que le joueur ait bien un labo avant d'afficher la page
2008-11-08 11:00:00 +00:00
if ($planete->batiments[8] == 0) erreur('Vous devez d\'abord construire un '.strtolower($batiment[8]), "red", '?p=batiments', 4000);
2008-09-20 10:00:00 +00:00
$TEMP_batiments = array();
//Lancement d'une nouvelle construction
if (isset($_GET['v']) && is_numeric($_GET['v']) && $nbv = floor(gpc('nombre', 'post'))) {
//Récupération des erreurs de la mise en file d'attente pour traitement
$construction = $planete->file_addObjet("vaisseaux", intval(gpc('v')), $nbv);
switch($construction){
case 1: erreur('Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour entraîner cette unité.'); break;
case 3: erreur('Vous n\'avez pas les ressources nécessaire pour entraîner cette unité !'); break;
2008-11-08 11:00:00 +00:00
case 4: erreur('File d\'attente pleine !'); break;
case 5: erreur('Le nombre d\'objets est négatif !'); break;
2008-09-20 10:00:00 +00:00
default: header('Location: ?p=chantierspatial'); exit;
}
}
//Annulation d'une nouvelle construction
if (isset($_GET['a'])) {
$i = intval(gpc('a'));
$n = intval(gpc('n'));
if (empty($n)) $n = 1;
$w = intval(gpc('w'));
if (empty($w) && !$w === 0) $w = 99;
else $w++;
//Vérification de la présence du batiment dans la file d'attente
if($planete->file_exist($i, 'file_vais')) {
$planete->file_delObjet("vaisseaux", $i, $n, $w);
header('Location: ?p=chantierspatial');
exit;
}
}
//Règler la production à la châine
/* if (isset($_GET['r']) && ($_GET['r'] == 1 || $_GET['r'] == 0)) {
if($_GET['r']) $file->chaine = false;
else $file->chaine = true;
$export = mysql_real_escape_string(serialize($file));
mysql_query("UPDATE planete SET file_bat = '$export' WHERE id = '$idPlan';");
header('Location: ?p=batiments');
exit;
}*/
2008-11-08 11:00:00 +00:00
foreach($planete->vaisseaux as $i => $PLvaisseaux) {
2008-09-20 10:00:00 +00:00
$a = $nomvaisnCALC[$i][0]; $b = $nomvaisnCALC[$i][1]; $c = $nomvaisnCALC[$i][2]; eval($nomvaisnCALC[$i][3]);
if ($planete->file_exist($i, 'file_vais')) $enFile = true;
2008-11-08 11:00:00 +00:00
else $enFile = false;
$nombre = $PLvaisseaux;
//On applique les bonus politiques aux temps et coûts
if ($planete->politique == 1) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
$sec *= 0.9;
}
//On applique les bonus de test
$sec /= VITESSE;
2008-09-20 10:00:00 +00:00
if (!empty($nomvaisn[$i]) && requestDeblok($nomvaisnTECH[$i], $planete)) $TEMP_batiments[] =
array(
2008-11-08 11:00:00 +00:00
'image' => $nomvaisi[$i],
'nom' => $nomvaisn[$i],
'nombre' => $nombre,
'description' => $nomvaisd[$i],
'descriptione' => addslashes($nomvaisd[$i]),
'nec_metal' => $a,
'nec_cristal' => $b,
'nec_hydrogene' => $c,
'nec_metalS' => separerNombres($a),
'nec_cristalS' => separerNombres($b),
'nec_hydrogeneS' => separerNombres($c),
'temps' => sec($sec),
'num' => $i
2008-09-20 10:00:00 +00:00
);
}
$template->assign('vaisseaux', $TEMP_batiments);
$template->assign('chaine', $planete->vaisseaux);
$nbfile = count($planete->file_vais) - 1;
if ($nbfile == 1) $template->assign('Pchaine', true);
else $template->assign('Pchaine', false);
2008-11-08 11:00:00 +00:00
if ($nbfile <= 0) $template->assign('Vchaine', true);
2008-09-20 10:00:00 +00:00
else $template->assign('Vchaine', false);
$file = array();
2008-11-08 11:00:00 +00:00
foreach ($planete->file_vais as $key => $bout){
if ($key == 0) continue;
$n = $planete->vaisseaux[$bout[0]] + 1;
eval($nomvaisnCALC[$bout[0]][3]);
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_vais[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomvaisn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_vais[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomvaisn[$bout[0]]);
2008-09-20 10:00:00 +00:00
}
$template->assign('file', $file);
?>