Version 1.12

This commit is contained in:
nemunaire 2009-11-01 12:00:00 +01:00
commit de31cd3e9a
1373 changed files with 156282 additions and 45238 deletions

View file

@ -10,9 +10,9 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
$mission = floor(gpc('mission', 'post'));
if (isset($_POST['tactique'])) $tactique = floor(gpc('tactique', 'post'));
else $tactique = 0;
$EBmetal = floor(gpc('metal', 'post'));
$EBcristal = floor(gpc('cristal', 'post'));
$EBhydrogene = floor(gpc('hydrogene', 'post'));
$EBmetal = floor(str_replace(' ', '', gpc('metal', 'post')));
$EBcristal = floor(str_replace(' ', '', gpc('cristal', 'post')));
$EBhydrogene = floor(str_replace(' ', '', gpc('hydrogene', 'post')));
$vitesse = floor(gpc('vitesse', 'post'))/100;
$bdd->connexion();
@ -56,7 +56,7 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
else {
//On vérifie qu'il n'y ait pas une interaction entre deux multi-comptes
$cnt = count($multi);
if ($cnt > 1 && $mission == 2) {
if ($cnt > 1 && $mission == 1) {
for($i = 0; $i < $cnt; $i++){
if ($multi[$i]['id_util'] == $resultat['id_user']) erreur('Vous ne pouvez pas avoir d\'interaction avec ce joueur pour raison de multi-compte (voir page d\'accueil).');
}
@ -78,8 +78,8 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
elseif (!$resultat) erreur('La planète que vous tentez d\'attaquer est inhabitée.', "red", '?p=flotte');
elseif ($resultat['id_user'] == $id_user) erreur('La planète que vous tentez d\'attaquer vous appartient.', "red", '?p=flotte');
}
elseif ($mission == 2 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
elseif ($mission == 3 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
elseif ($mission == 1 && !$resultat) erreur('Impossible de transporter des ressources vers la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'] car elle est inhabitée.', "red", '?p=flotte', 4000);
elseif ($mission == 2 && $resultat) erreur('La planète que vous voulez coloniser est déjà habitée.', "red", '?p=flotte', 3000);
elseif ($mission == 0 && $resultat['id_user'] != $id_user) erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000);
elseif ($mission == 4 && ($resultat['debris_met'] <= 0 || $resultat['debris_cri'] <= 0) && empty($sess->values['forceFlotte'])) {
$sess->values['forceFlotte'] = true;
@ -112,30 +112,35 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
$flotte->mission = $mission;
$flotte->start_planete = $planete;
$flotte->start_time = time();
$flotte->end_planete = $resultat['id'];
//On traite le cas des planètes qui n'existent pas (dans le cas de la mission colonisation)
if ($mission == 2) $flotte->end_planete = $end_galaxie.':'.$end_ss.':'.$end_pos;
else $flotte->end_planete = $resultat['id'];
$calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse, false, true);
$flotte->end_time = $calc[0];
$conso = $calc[1];
//On double la consomation si on fait un aller-retour
if ($mission == 1 || $mission == 3 || $mission == 4 || $mission == 5) $conso *= 2;
if ($mission == 1 || $mission == 2 || $mission == 4 || $mission == 5) $conso *= 2;
//On vérifie qu'il y a assez de place dans les cales des vaisseaux avant l'envoie ainsi que de ressources sur la planète
$flotte->calculer();
if ($flotte->contenuMax < ceil(gpc('metal', 'post')) + ceil(gpc('cristal', 'post')) + ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$flotte->contenuMax, "red", '?p=flotte', 3500);
elseif ($planete->metal < ceil(gpc('metal', 'post')) || $planete->cristal < ceil(gpc('cristal', 'post')) || $planete->hydrogene < ceil(gpc('hydrogene', 'post')) + $conso) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
if ($flotte->contenuMax < $EBmetal + $EBcristal + $EBhydrogene + $conso) erreur('Vous ne pouvez pas embarquer autant de ressources, les cales débordent. '.$flotte->contenuMax, "red", '?p=flotte', 3500);
elseif ($planete->metal < $EBmetal || $planete->cristal < $EBcristal || $planete->hydrogene < $EBhydrogene + $conso) erreur('Vous n\'avez pas assez de ressources sur cette planète pour envoyer cette flotte.', "red", '?p=flotte', 3500);
else {
if ($mission == 1) $flotte->tactique = gpc('tactique', 'post');
$flotte->contenu = array(floor(gpc('metal', 'post')), floor(gpc('cristal', 'post')), floor(gpc('hydrogene', 'post')));
//if ($mission == 3) $flotte->tactique = gpc('tactique', 'post');
$flotte->contenu = array($EBmetal, $EBcristal, $EBhydrogene);
$flotte->modifFlotte = "INSERT";
//On actualise la planète
$planete->metal -= floor(gpc('metal', 'post'));
$planete->cristal -= floor(gpc('cristal', 'post'));
$planete->hydrogene -= floor(gpc('hydrogene', 'post') + $conso);
$planete->metal -= $EBmetal;
$planete->cristal -= $EBcristal;
$planete->hydrogene -= floor($EBhydrogene + $conso);
$planete->vaisseaux = $sauv;
if (!in_array('vaisseaux', $planete->modif)) $planete->modif[] = 'vaisseaux';
unset($flotte);
unset($sess->values['vais']);
$sess->put();
@ -152,7 +157,6 @@ elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) ||
else $v = (int)abs($v);
if ($vaisseau < $v) {
$planete->vaisseaux = $sauv;
erreur('Il ne vous reste plus assez de vaisseaux !', "red", '?p=flotte');
}
@ -167,12 +171,11 @@ elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) ||
$sess->values['forceFlotte'] = false;
//Génération de la liste de mission possible avec les vaisseaux de la flotte
$missions = array('Stationner');
if ($planete->technologies[0] & 8) $missions[1] = "Transporter";
$missions = array("Stationner", "Transporter");
if ($sess->values['vais'][2]) $missions[2] = "Coloniser";
if ($planete->technologies[7] & 16) $missions[3] = "Attaquer";
if ($sess->values['vais'][3]) $missions[4] = "Recycler";
if ($sess->values['vais'][3] || $sess->values['vais'][3]) $missions[5] = "Espionner";
if ($sess->values['vais'][4] || $sess->values['vais'][13]) $missions[5] = "Espionner";
$template->assign('missions', $missions);
//On enregistre les modification de la session
@ -184,6 +187,22 @@ elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) ||
$template->assign('script', '<script type="text/javascript">document.getElementById(\'nom\').focus();</script><script src="js/flotte.js" type="text/javascript"></script>');
//TODO Ajouter les destinations favorites + Colonies
$favoris = array();
$favorisC = array();
include_once(_FCORE."../game/Class/class.tinyplanete.php");
foreach ($planete->destinationsFavoris as $fav)
{
$fav_Planete = new TinyPlanete($fav);
if (!empty($fav_Planete->nom_planete)) $favoris[$fav_Planete->id] = $fav_Planete->nom_planete;
else $favoris[$fav_Planete->id] = '['.$fav_Planete->galaxie.':'.$fav_Planete->ss.':'.$fav_Planete->position.']';
}
foreach ($queryPlanetes as $fav)
{
if (!empty($fav['nom_planete'])) $favorisC[$fav['id']] = $fav['nom_planete'];
else $favorisC[$fav['id']] = '['.$fav['galaxie'].':'.$fav['ss'].':'.$fav['position'].']';
}
$template->assign('favoris', $favoris);
$template->assign('favorisColonies', $favorisC);
}
//Affichage du détail d'une flotte
elseif (!empty($_GET['n'])) {
@ -246,15 +265,16 @@ else {
$TEMP_flottesEC = array();
if ($flottes) {
foreach ($flottes as $flotte){
if ($flotte['mission'] != 1 && ($flotte['mission'] != 3 || $flotte['effectue'] == '1' || $flotte['nb_vais'] >= 1) && $flotte['mission'] != 0) {
$retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position'];
if ($flotte['mission'] != 1 && ($flotte['mission'] != 2 || $flotte['statut'] == '1') && $flotte['mission'] != 0) {
$planete_retour = new Planete($flotte['start_planete']);
$retour = $planete_retour->galaxie.':'.$planete_retour->ss.':'.$planete_retour->position;
$Hretour = date('d/m H:i:s',$flotte['start_time']+2*$flotte['end_time']);
}
elseif ($flotte['mission'] == 1) {
/*elseif ($flotte['mission'] == 1) {
$retour = $flotte['start_galaxie'].':'.$flotte['start_ss'].':'.$flotte['start_position'];
if (empty($flotte['ret_time'])) $Hretour = '-';
else $Hretour = date('d/m H:i:s',$flotte['ret_time']+$flotte['end_time']);
}
}*/
else {
$retour = '-';
$Hretour = '-';
@ -262,7 +282,11 @@ else {
$end_planete = new Planete($flotte['end_planete']);
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $end_planete->nom_planete.' ['.$end_planete->galaxie.':'.$end_planete->ss.':'.$end_planete->position.']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
if ($flotte['mission'] == 2) {
preg_match('#^\[?([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})\]?$#', $flotte['end_planete'], $position);
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], ' ['.$position[1].':'.$position[2].':'.$position[3].']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
}
else $TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $end_planete->nom_planete.' ['.$end_planete->galaxie.':'.$end_planete->ss.':'.$end_planete->position.']', date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
}
}
$template->assign('flottesEC', $TEMP_flottesEC);