forked from halo-battle/game
Correctifs sur la page de préparation d'envoie des flotte
This commit is contained in:
parent
7c3999c5cd
commit
a3ac838a19
8 changed files with 125 additions and 58 deletions
|
|
@ -734,7 +734,7 @@ class dSpatial implements Donnees
|
|||
}
|
||||
|
||||
|
||||
public static function tailleCales($id)
|
||||
public static function tailleCales($id, surface $planete)
|
||||
{
|
||||
if ($planete->race == "humain") {
|
||||
switch ($id) {
|
||||
|
|
@ -781,7 +781,7 @@ class dSpatial implements Donnees
|
|||
$vitesse = 15000;
|
||||
break;
|
||||
default:
|
||||
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
|
||||
$vitesse = 0;
|
||||
}
|
||||
} else {
|
||||
switch ($id) {
|
||||
|
|
@ -837,7 +837,7 @@ class dSpatial implements Donnees
|
|||
$vitesse = 20000000;
|
||||
break;
|
||||
default:
|
||||
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
|
||||
$vitesse = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -846,7 +846,7 @@ class dSpatial implements Donnees
|
|||
}
|
||||
|
||||
|
||||
public static function vitesseP($id)
|
||||
public static function vitesseP($id, surface $planete)
|
||||
{
|
||||
if ($planete->race == "humain") {
|
||||
switch ($id) {
|
||||
|
|
@ -957,7 +957,7 @@ class dSpatial implements Donnees
|
|||
return $vitesse;
|
||||
}
|
||||
|
||||
public static function vitesseS($id)
|
||||
public static function vitesseS($id, surface $planete)
|
||||
{
|
||||
if ($planete->race == "humain") {
|
||||
switch ($id) {
|
||||
|
|
@ -1068,7 +1068,7 @@ class dSpatial implements Donnees
|
|||
return $vitesse;
|
||||
}
|
||||
|
||||
public static function vitesseG($id)
|
||||
public static function vitesseG($id, surface $planete)
|
||||
{
|
||||
if ($planete->race == "humain") {
|
||||
switch ($id) {
|
||||
|
|
|
|||
|
|
@ -88,12 +88,13 @@ class Flotte
|
|||
|
||||
public function calculer()
|
||||
{
|
||||
global $planete;
|
||||
$this->nb_vais = 0;
|
||||
|
||||
//Calcul de la capacité maximale d'embarquement de la flotte
|
||||
foreach ($this->vaisseaux as $key => $vais) {
|
||||
$this->nb_vais += $vais;
|
||||
$this->contenuMax += dSpatial::tailleCales($key) * $vais;
|
||||
$this->contenuMax += dSpatial::tailleCales($key, $planete) * $vais;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -265,20 +266,20 @@ class Flotte
|
|||
|
||||
//Calcul du temps de déplacement entre planètes
|
||||
if ($start_planete->ss == $end_systeme && $start_planete->galaxie == $end_galaxie) {
|
||||
$temps[0][$key] = (1000/dSpatial::vitesseP($key)) * (1 + 0.1 * $diff_position);
|
||||
$temps[0][$key] = (1000/dSpatial::vitesseP($key, $start_planete)) * (1 + 0.1 * $diff_position);
|
||||
$temps[1][$key] = $temps[2][$key] = 0;
|
||||
}
|
||||
//Calcul du temps de déplacement entre système
|
||||
elseif ($start_planete->galaxie == $end_galaxie) {
|
||||
$temps[0][$key] = (1000/dSpatial::vitesseP($key)) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
|
||||
$temps[1][$key] = (2000/dSpatial::vitesseS($key)) * (2 + 1 * $diff_systeme);
|
||||
$temps[0][$key] = (1000/dSpatial::vitesseP($key, $start_planete)) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
|
||||
$temps[1][$key] = (2000/dSpatial::vitesseS($key, $start_planete)) * (2 + 1 * $diff_systeme);
|
||||
$temps[2][$key] = 0;
|
||||
}
|
||||
//Calcul du temps de déplacement entre galaxies
|
||||
else {
|
||||
$temps[0][$key] = (1000/dSpatial::vitesseP($key)) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
|
||||
$temps[1][$key] = (2000/dSpatial::vitesseS($key)) * (2 + 1 * ($diff_centre_systeme_start + $diff_centre_systeme_end));
|
||||
$temps[2][$key] = (5000/dSpatial::vitesseG($key)) * (2 + 1.5 * $diff_galaxie);
|
||||
$temps[0][$key] = (1000/dSpatial::vitesseP($key, $start_planete)) * (1 + 0.1 * ($diff_centre_position_start + $diff_centre_position_end));
|
||||
$temps[1][$key] = (2000/dSpatial::vitesseS($key, $start_planete)) * (2 + 1 * ($diff_centre_systeme_start + $diff_centre_systeme_end));
|
||||
$temps[2][$key] = (5000/dSpatial::vitesseG($key, $start_planete)) * (2 + 1.5 * $diff_galaxie);
|
||||
}
|
||||
|
||||
//Calcul du bonus pour le réacteur à combustion
|
||||
|
|
@ -332,7 +333,7 @@ class Flotte
|
|||
}
|
||||
|
||||
//Si les chasseurs peuvent rentrer dans les cales des vaisseaux, on les enlèves
|
||||
if ($contenuDispo - ceil($conso[0]+$conso[1]+$conso[2]) - ($vaisseaux[4] * dSpatial::tailleCales(4) + $vaisseaux[5] * dSpatial::tailleCales(5)) >= ($vaisseaux[4] + $vaisseaux[5]) * 200) {
|
||||
if ($contenuDispo - ceil($conso[0]+$conso[1]+$conso[2]) - ($vaisseaux[4] * dSpatial::tailleCales(4, $start_planete) + $vaisseaux[5] * dSpatial::tailleCales(5, $start_planete)) >= ($vaisseaux[4] + $vaisseaux[5]) * 200) {
|
||||
$temps[2][4] = $temps[2][5] = $temps[1][4] = $temps[1][5] = $temps[0][4] = $temps[0][5] = 0;
|
||||
}
|
||||
|
||||
|
|
@ -347,6 +348,21 @@ class Flotte
|
|||
}
|
||||
|
||||
|
||||
public function calcStockage($vaisseaux, surface $planete)
|
||||
{
|
||||
global $LANG;
|
||||
|
||||
$contenuMax = 0;
|
||||
foreach ($vaisseaux as $key => $vais) {
|
||||
if (!isset($LANG[$planete->race]["vaisseaux"]["noms_sing"][$key])) {
|
||||
continue;
|
||||
}
|
||||
$contenuMax += dSpatial::tailleCales($key, $planete) * $vais;
|
||||
}
|
||||
return $contenuMax;
|
||||
}
|
||||
|
||||
|
||||
public function check_mission()
|
||||
{
|
||||
//On vérifie qu'un calcul ne soit pas déjà en cours
|
||||
|
|
|
|||
|
|
@ -5,7 +5,29 @@ if (!defined('INDEX')) {
|
|||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE (id_user = ".$planete->id_user." OR end_planete = ".$planete->id." OR id_alliance = ".$planete->id_alliance." OR end_planete = ".$planete->id_alliance.") AND (start_time + end_time) <= ".time()." AND last < ".(time()-10).";");
|
||||
$sql = "";
|
||||
if ($planete->id_user != null) {
|
||||
$sql = "id_user = " . $planete->id_user . " ";
|
||||
}
|
||||
if ($planete->id != null) {
|
||||
if ($sql != "") {
|
||||
$sql .= " OR ";
|
||||
}
|
||||
$sql .= "end_planete = " . $planete->id . " ";
|
||||
}
|
||||
if ($planete->id_alliance != null) {
|
||||
if ($sql != "") {
|
||||
$sql .= " OR ";
|
||||
}
|
||||
$sql .= "id_alliance = " . $planete->id_alliance . " ";
|
||||
}
|
||||
if ($planete->id_alliance != null) {
|
||||
if ($sql != "") {
|
||||
$sql .= " OR ";
|
||||
}
|
||||
$sql .= "end_planete = " . $planete->id_alliance . " ";
|
||||
}
|
||||
$flottes = $bdd->query("SELECT id FROM $table_flottes WHERE (" . $sql . ") AND (start_time + end_time) <= ".time()." AND last < ".(time()-10).";");
|
||||
$bdd->deconnexion();
|
||||
|
||||
if (!empty($flottes)) {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,10 @@ if (!defined('INDEX')) {
|
|||
//Génération d'un ID unique pour identifier la flotte durant sa création
|
||||
$idPrep = random();
|
||||
|
||||
//Supression des précédentes flottes, sinon il y a un risque de remplir le champs de BDD qui sauvegarde les flottes
|
||||
$SESS->values["prepFlottes"] = null;
|
||||
$SESS->values["prepFlottes"] = array();
|
||||
|
||||
//Création du tableau de session
|
||||
$SESS->values["prepFlottes"][$idPrep] = array();
|
||||
|
||||
|
|
@ -41,6 +45,7 @@ $SESS->values["prepFlottes"][$idPrep]['nbVaisseaux'] = $nombreVaisseau;
|
|||
$SESS->values['forceFlotte'] = false;
|
||||
$SESS->values["prepFlottes"][$idPrep]['time'] = time();
|
||||
$SESS->values["prepFlottes"][$idPrep]['statut'] = 1;
|
||||
$SESS->values["prepFlottes"][$idPrep]['vitesse'] = 100; // vitesse par défaut: 100%
|
||||
$SESS->put();
|
||||
|
||||
unset($nombreVaisseau, $key, $vaisseau, $v);
|
||||
|
|
|
|||
|
|
@ -45,8 +45,8 @@ if ($onglet == "rapports") {
|
|||
}
|
||||
|
||||
$bdd->reconnexion();
|
||||
$data = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = ".$planete->id_user." AND expediteur = false AND vu != 's' ORDER BY id DESC;");
|
||||
$bdd->query("UPDATE $table_mail SET vu = 0 WHERE destinataire = ".$planete->id_user." AND expediteur = false AND vu != 's';");
|
||||
$data = $bdd->query("SELECT * FROM $table_mail WHERE destinataire = ".$planete->id_user." AND expediteur IS NULL AND vu != 's' ORDER BY id DESC;");
|
||||
$bdd->query("UPDATE $table_mail SET vu = 0 WHERE destinataire = ".$planete->id_user." AND expediteur IS NULL AND vu != 's';");
|
||||
$bdd->deconnexion();
|
||||
|
||||
$template->assign('messages', $data);
|
||||
|
|
|
|||
|
|
@ -23,10 +23,10 @@
|
|||
</fieldset>
|
||||
<h2>Envoyer</h2>
|
||||
<noscript><span style="color: #FF0000; font-weight: bolder;">Le JavaScript est nécessaire pour envoyer une flotte.</span><br /></noscript>
|
||||
<input type="submit" value="GO" class="submit" /><input type="hidden" name="cds" value="{$idPrep}" /><br />
|
||||
<input type="hidden" name="cds" value="{$idPrep}" /><br />
|
||||
Temps de déplacement : <span id="temps">-</span><br />
|
||||
Consomation : <span id="conso">-</span><br />
|
||||
<span id="deblok"><b>Complètez les champs ci-dessus</b></span>
|
||||
<br /><span id="vp"></span>
|
||||
</form>
|
||||
{include file='game/footer.tpl'}
|
||||
{include file='game/footer.tpl'}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue