2008-09-20 10:00:00 +00:00
< ? php
if ( ! defined ( 'INDEX' )) { header ( 'Location: ../' ); exit ; }
$page = 'batiments' ;
$titre = 'Batiments' ;
$TEMP_batiments = array ();
//Lancement d'une nouvelle construction
if ( isset ( $_GET [ 'c' ])) {
//Vérification que la planète ne soit pas pleine
2009-11-01 11:00:00 +00:00
if ( $planete -> casesRest - count ( $planete -> file_bat ) + 1 <= 0 ) erreur ( 'Vous n\'avez plus de place sur votre planète.' , " red " , " ?p=batiments " , 3500 );
2008-11-19 11:00:00 +00:00
//On vérifie qu'il n'y ait pas de technologie en cours de recherche si l'on veut améliorer le centre de recherche
if ( $_GET [ 'c' ] == 6 && ! empty ( $planete -> file_tech [ 1 ])) erreur ( 'Une technologie est en cours de recherche dans votre laboratoire, vous ne pouvez pas faire de travaux !' );
2008-09-20 10:00:00 +00:00
//Récupération des erreurs de la mise en file d'attente pour traitement
$construction = $planete -> file_addObjet ( " batiments " , intval ( gpc ( 'c' )));
switch ( $construction ){
case 1 : erreur ( 'Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour construire ce bâtiment.' ); break ;
case 2 : erreur ( 'Ce bâtiment est déjà en file d\'attente !' ); break ;
case 3 : erreur ( 'Vous n\'avez pas les ressources nécessaire pour construire ce bâtiment !' ); 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=batiments' ); exit ;
}
}
2008-11-19 11:00:00 +00:00
//Lancement d'une déconstruction
if ( isset ( $_GET [ 'd' ])) {
2009-11-01 11:00:00 +00:00
//Si l'on ne possède pas de batiment, erreur
if ( $planete -> batiments [ intval ( gpc ( 'd' ))] <= 0 ) erreur ( 'Vous ne pouvez pas démolir un batiment que vous ne possédez pas !' );
2008-11-19 11:00:00 +00:00
//Récupération des erreurs de la mise en file d'attente pour traitement
$construction = $planete -> file_addObjet ( " batiments " , intval ( gpc ( 'd' )), - 1 );
switch ( $construction ){
case 1 : erreur ( 'Vous n\'avez pas les bâtiments et/ou technologies nécessaires pour construire ce bâtiment.' ); break ;
case 2 : erreur ( 'Ce bâtiment est déjà en file d\'attente !' ); break ;
case 3 : erreur ( 'Vous n\'avez pas les ressources nécessaire pour construire ce bâtiment !' ); break ;
case 4 : erreur ( 'File d\'attente pleine !' ); break ;
case 5 : erreur ( 'Le nombre d\'objets est négatif !' ); break ;
default : header ( 'Location: ?p=batiments' ); exit ;
}
}
2008-09-20 10:00:00 +00:00
//Annulation d'une nouvelle construction
if ( isset ( $_GET [ 'a' ]) && isset ( $batiment [ $_GET [ 'a' ]])) {
$i = intval ( gpc ( 'a' ));
//Vérification de la présence du batiment dans la file d'attente
if ( $planete -> file_exist ( $i , 'file_bat' )) {
$planete -> file_delObjet ( " batiments " , $i );
header ( 'Location: ?p=batiments' );
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 ;
} */
2009-11-01 11:00:00 +00:00
//Calcul du bonus de construction des mines en fonction des technologies
if ( $planete -> technologies [ 0 ] & 262144 )
{
$bonusMine_a = 0.85 ;
$bonusMine_b = 0.85 ;
$bonusMine_c = 0.85 ;
}
elseif ( $planete -> technologies [ 0 ] & 131072 )
{
$bonusMine_a = 0.9 ;
$bonusMine_b = 0.9 ;
$bonusMine_c = 0.9 ;
}
elseif ( $planete -> technologies [ 0 ] & 65536 )
{
$bonusMine_a = 0.95 ;
$bonusMine_b = 0.95 ;
$bonusMine_c = 0.95 ;
}
else
{
$bonusMine_a = 1 ;
$bonusMine_b = 1 ;
$bonusMine_c = 1 ;
}
2008-11-08 11:00:00 +00:00
foreach ( $planete -> batiments as $i => $PLbatiment ) {
2009-11-01 11:00:00 +00:00
//Si l'on est pas sur la planète mère, on désactive le laboratoire
if ( $i == 6 && $queryPlanetes [ 0 ][ 'id' ] != $planete -> id ) continue ;
2008-09-20 10:00:00 +00:00
$tr = 0 ; $a = 0 ; $b = 0 ; $c = 0 ; $sec = 0 ; $enFile = false ;
2008-11-08 11:00:00 +00:00
if ( $PLbatiment > 0 ) $niveau = $PLbatiment ; else $niveau = 0 ;
2008-11-19 11:00:00 +00:00
$n = $PLbatiment + 1 ;
eval ( $batimentCALC [ $i ][ 0 ]); eval ( $batimentCALC [ $i ][ 1 ]); eval ( $batimentCALC [ $i ][ 2 ]); eval ( $batimentCALC [ $i ][ 3 ]);
2008-11-08 11:00:00 +00:00
if ( $planete -> file_exist ( $i , 'file_bat' )) $enFile = true ; else $enFile = false ;
2009-11-01 11:00:00 +00:00
if ( $i < 4 )
{
$a *= $bonusMine_a ;
$b *= $bonusMine_b ;
$c *= $bonusMine_c ;
}
//On applique le bonus de temps des ingénieurs et des centrales informatiques
if ( $i != 11 ) $sec /= pow ( 1.23 , $planete -> batiments [ 11 ]) + 0.0025 * $planete -> casernes [ 7 ];
2008-11-08 11:00:00 +00:00
//On applique les bonus de test
$sec /= VITESSE ;
2008-09-20 10:00:00 +00:00
if ( ! empty ( $batiment [ $i ]) && requestDeblok ( $batimentTECH [ $i ], $planete )) $TEMP_batiments [] =
array (
'image' => $batimeni [ $i ],
'nom' => $batiment [ $i ],
'niveau' => $niveau ,
'description' => $batimede [ $i ],
'descriptione' => addslashes ( $batimede [ $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 ,
'enfile' => $enFile ,
'maq_metal' => ceil ( $a - $planete -> metal ),
'maq_cristal' => ceil ( $b - $planete -> cristal ),
'maq_hydrogene' => ceil ( $c - $planete -> hydrogene )
);
}
$template -> assign ( 'batiments' , $TEMP_batiments );
$template -> assign ( 'chaine' , $planete -> batiments );
$nbfile = count ( $planete -> file_bat ) - 1 ;
if ( $nbfile == 1 ) $template -> assign ( 'Pchaine' , true );
else $template -> assign ( 'Pchaine' , false );
if ( $nbfile == 0 ) $template -> assign ( 'Vchaine' , true );
else $template -> assign ( 'Vchaine' , false );
$file = array ();
2008-11-08 11:00:00 +00:00
foreach ( $planete -> file_bat as $key => $bout ){
if ( $key == 0 ) continue ;
$n = $planete -> batiments [ $bout [ 0 ]] + 1 ;
eval ( $batimentCALC [ $bout [ 0 ]][ 3 ]);
2009-11-01 11:00:00 +00:00
if ( $bout [ 0 ] != 11 ) $sec /= pow ( 1.23 , $planete -> batiments [ 11 ]) + 0.0025 * $planete -> casernes [ 7 ];
2008-11-19 11:00:00 +00:00
if ( $bout [ 1 ] < 0 ) $sec *= 0.6 ;
2008-11-08 11:00:00 +00:00
if ( $key == 1 ) $file [] = array ( $bout [ 0 ], $bout [ 1 ], ceil ( $sec / VITESSE - ( time () - $planete -> file_bat [ 0 ])), $batiment [ $bout [ 0 ]]);
else $file [] = array ( $bout [ 0 ], $bout [ 1 ], ceil ( $sec / VITESSE ), $batiment [ $bout [ 0 ]]);
2008-09-20 10:00:00 +00:00
}
$template -> assign ( 'file' , $file );
?>