Compare commits

...

11 Commits

Author SHA1 Message Date
2269a56ce5 MàJ des descriptions des tech covies pour les vaisseaux et affichage des bons noms
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
2021-01-27 18:40:32 +01:00
4fedde4cf9 Les covies et les humains ont besoin des mêmes recherches pour créer des sondes d'espionnages 2021-01-27 17:50:27 +01:00
81cb1e9660 Les humains et les covies n'ont pas besoin des mêmes recherches pour débloquer certains vasseaux 2021-01-27 17:46:21 +01:00
bd5e4c75c1 Sauvegarde les rapports d'espionnages 2021-01-27 17:13:01 +01:00
9a14ddcd8d Différencie les humains et covies au niveaux des défenses accessibles 2021-01-27 17:06:54 +01:00
b7ab2b3640 Prend en compte les nouveaux modèles de vaisseaux d'espionnages pour Humain et COvie 2021-01-27 17:06:10 +01:00
eea4226991 Corrige le calcul des rapports d'espionnages 2021-01-27 17:05:39 +01:00
3191822644 Mise à jour du commentaire signalant que les attaques sont désactivées pour le moment 2021-01-27 11:40:07 +01:00
c1bac50417 Rend le lien vers le détail d'une flotte fonctionnel 2021-01-27 11:32:12 +01:00
ba1de13034 On ne peux pas donner des vaisseaux a une autre race 2021-01-27 11:25:48 +01:00
e4219f493d Mise à jour des ID de la liste des missions, pour que ça corresponde à la réalité 2021-01-27 11:25:27 +01:00
15 changed files with 212 additions and 109 deletions

View File

@ -108,7 +108,8 @@ if (isset($SESS) && isset($SESS->values['connected']) && $SESS->values['connecte
$places -= ($met+$cri+$hyd);
}
$tactique = '';
if ($_POST['mission'] == '1') {
// si la mission est une mission d'attaque
if ($_POST['mission'] == '3') {
$tactique = '<label for="selecttactique">Tactique d\'attaque :</label><select id="selecttactique" name="tactique">';
//On récupère le niveau actuel de la technologie Commandement militaire
$id_user = $SESS->values['id'];

View File

@ -27,7 +27,7 @@
<var name="version">1.14 Béta</var>
<var name="vitesse">1</var>
<var name="flottes">1</var> <!-- Les flottes sont activées -->
<var name="attaques">0</var> <!-- Les attaques sont activées -->
<var name="attaques">0</var> <!-- Les attaques sont désactivées -->
<var name="time_maintenance">20000</var> <!-- Heure de génération du classement et des tâches cron -->
<var name="galaxie">1</var> <!-- Numéro de la galaxie -->
<var name="nb_amas">1</var> <!-- Nombre d'amas dans la galaxie -->

View File

@ -87,10 +87,12 @@ class dDonnees
}
}
public static function print_neededCheck($tableau, surface $planete)
public static function print_neededCheck($tableau, surface $planete, $race = null)
{
global $LANG;
if ($race == null) {
$race = $planete->race;
}
if (!is_array($tableau)) {
return 'Débloqué';
} else {

View File

@ -648,8 +648,8 @@ class dSpatial implements Donnees
array('technologies', 7,9)
),
array(
array('batiments', 8, 10),
array('technologies', 7,10)
array('batiments', 8, 3),
array('technologies', 7, 4)
)
);
} else {
@ -727,7 +727,7 @@ class dSpatial implements Donnees
}
if ($print) {
return dDonnees::print_neededCheck($neededSpatial[$id], $planete);
return dDonnees::print_neededCheck($neededSpatial[$id], $planete, $race);
} else {
return dDonnees::neededCheck($neededSpatial[$id], $planete);
}

View File

@ -1046,8 +1046,11 @@ class dTechnologies implements Donnees
}
public static function needed($object, surface $planete, $print = false)
public static function needed($object, surface $planete, $print = false, $race = null)
{
if ($race == null) {
$race = $planete->race;
}
switch ($object[0]) {
case 0:
$tableau = array(
@ -1488,6 +1491,66 @@ class dTechnologies implements Donnees
);
break;
case 7:
if ($race == "humain") {
$tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 7, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 7, 1),
array('batiments', 6, 3)
),
array(
array("technologies", 7, 2),
array('batiments', 6, 5)
),
array(
array("technologies", 7, 1),
array('batiments', 6, 3)
),
array(
array("technologies", 7, 3),
array('batiments', 6, 8)
),
array(
array("technologies", 7, 5),
array('batiments', 6, 10)
),
array(
array("technologies", 7, 6),
array('batiments', 6, 15)
),
array(
array("technologies", 7, 7),
array('batiments', 6, 20)
),
array(
array("technologies", 7, 8),
array('batiments', 6, 30)
),
array(
array("technologies", 7, 5),
array('batiments', 6, 10)
),
array(
array("technologies", 7, 4),
array('batiments', 6, 3)
),
array(
array('batiments', 6, 5)
),
array(
array("technologies", 7, 12)
),
array(
array("technologies", 7, 13)
),
);
} else {
$tableau = array(
array(
array('batiments', 6, 1)
@ -1546,6 +1609,7 @@ class dTechnologies implements Donnees
array("technologies", 7, 13)
),
);
}
break;
case 8:
$tableau = array(
@ -1614,7 +1678,7 @@ class dTechnologies implements Donnees
}
if ($print) {
return dDonnees::print_neededCheck($tableau[$object[1]], $planete);
return dDonnees::print_neededCheck($tableau[$object[1]], $planete, $race);
} else {
return dDonnees::neededCheck($tableau[$object[1]], $planete);
}

View File

@ -738,7 +738,7 @@ class dTerrestre implements Donnees
}
if ($print) {
return dDonnees::print_neededCheck($neededTerrestre[$id], $planete);
return dDonnees::print_neededCheck($neededTerrestre[$id], $planete, $race);
} else {
return dDonnees::neededCheck($neededTerrestre[$id], $planete);
}

View File

@ -573,17 +573,17 @@ class Flotte
if (($this->start_planete->technologies[1]& 67108864) == 67108864) {
$espionnage_A = 3;
} elseif (($this->start_planete->technologies[1]& 33554432) == 33554432) {
$espionnage_A = 3;
$espionnage_A = 2;
} elseif (($this->start_planete->technologies[1]& 16777216) == 16777216) {
$espionnage_A = 3;
$espionnage_A = 1;
} else {
$espionnage_A = 0;
}
if (($this->start_planete->technologies[1]& 536870912) == 536870912) {
if (($this->end_planete->technologies[1]& 536870912) == 536870912) {
$contreespionnage_B = 3;
} elseif (($this->start_planete->technologies[1]& 268435456) == 268435456) {
} elseif (($this->end_planete->technologies[1]& 268435456) == 268435456) {
$contreespionnage_B = 2;
} elseif (($this->start_planete->technologies[1]& 134217728) == 134217728) {
} elseif (($this->end_planete->technologies[1]& 134217728) == 134217728) {
$contreespionnage_B = 1;
} else {
$contreespionnage_B = 0;
@ -592,8 +592,20 @@ class Flotte
//Création du rapport
$rapport = new Rapport(5, $this->start_planete, $this->end_planete, $this->start_time + $this->end_time);
$rapport->addInfo($this->end_planete, 0);
$rapport->addInfo($contreespionnage_B/$espionnage_A/10, 1);
//Rend aléatoire le niveau affiché des bâtiments
$diff_esp = $espionnage_A - $contreespionnage_B;
//Il y a au moins 2 niveaux d'erreur (soit 1 positif et 1 négatif)
if ($diff_esp == 0) {
$diff_esp = 1;
}
$rapport->addInfo($diff_esp, 1);
//Où x est le résultat de cette formule, si x >= y, ça donne accès a plus d'informations
// si y >= 1 : ressources
// si y >= 2 : batiment
// si y >= 3 : défenses
// si y >= 4 : flottes
$rapport->addInfo($espionnage_A + 2 - $contreespionnage_B + 1, 2);
//Si le joueur a au moins le niveau 1 du contre-espionnage, on le prévient qu'il a été espionné, sinon il n'en sait rien
$rapport->addInfo($contreespionnage_B, 3);
$rapport->send();

View File

@ -128,7 +128,7 @@ class Planete extends Surface
$this->file_cas = new FileCaserne();
}
foreach ($terrestreVAR as $ter) {
foreach ($terrestreVAR[$this->race] as $ter) {
$this->terrestres[] = $plan[$ter];
}
if (!empty($plan["file_ter"])) {

View File

@ -91,36 +91,42 @@ class Rapport
if ($this->var[2] > 2) {
$this->rapportA .= "<table style=\"margin: auto;\"><tr><th>Niveau</th><th>B&acirc;timent</th></tr>";
foreach ($this->var[0]->batiments as $key => $batiment) {
$this->rapportA .= "<tr><td>".rand($batiment * (1 - $this->var[1]), $batiment * (1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["batiments"]["noms_sing"][$key]."</td></tr>";
$this->rapportA .= "<tr><td>".rand(($batiment - $this->var[1]), ($batiment + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["batiments"]["noms_sing"][$key]."</td></tr>";
}
$this->rapportA .= "</table><br />";
}
//Flottes en orbite
if ($this->var[2] > 3) {
}
//Flottes au sol
if ($this->var[2] > 5) {
if ($this->var[2] > 4) {
$this->rapportA .= "<table style=\"margin: auto;\"><tr><th>Nombre</th><th>Vaisseaux</th></tr>";
foreach ($this->var[0]->vaisseaux as $key => $vaisseau) {
$this->rapportA .= "<tr><td>".rand($vaisseau * (1 - $this->var[1]), $vaisseau * (1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["vaisseaux"]["noms_sing"][$key]."</td></tr>";
$this->rapportA .= "<tr><td>".rand(($vaisseau - $this->var[1]), ($vaisseau + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["vaisseaux"]["noms_sing"][$key]."</td></tr>";
}
$this->rapportA .= "</table><br />";
}
//Défenses
if ($this->var[2] > 4) {
if ($this->var[2] > 3) {
$this->rapportA .= "<table style=\"margin: auto;\"><tr><th>Nombre</th><th>Défenses</th></tr>";
foreach ($this->var[0]->terrestres as $key => $unite) {
if (!dTerrestre::type($key)) {
$this->rapportA .= "<tr><td>".rand($unite * (1 - $this->var[1]), $unite * (1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["terrestre"]["noms_sing"][$key]."</td></tr>";
if (!dTerrestre::type($key, $this->var[0])) {
$this->rapportA .= "<tr><td>".rand($unite * floor(1 - $this->var[1]), $unite * ceil(1 + $this->var[1]))."</td><td>".$LANG[$this->var[0]->race]["terrestre"]["noms_sing"][$key]."</td></tr>";
}
}
$this->rapportA .= "</table><br />";
}
}
//On envoit le rapport d'espionnage
$temps = $this->timestamp;
$db = new BDD();
$db->escape($this->titreA);
$db->escape($this->rapportA);
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilA->id_user.", '$this->titreA', '$this->rapportA', '$temps');");
$db->deconnexion();
//On envoit le rapport de cdontre-espionnage
if ($this->var[3] >= 1) {
$this->titreB = "Rapport de contre-espionnage";
if (!isset($this->var[0]->nom_planete)) {
@ -128,8 +134,15 @@ class Rapport
} else {
$this->rapportB = "Nous venons d'apprendre que notre planète : ".$this->var[0]->nom_planete."[".$this->var[0]->galaxie.":".$this->var[0]->ss.":".$this->var[0]->position."] a été la cible d'un espionnage de la part de ".$this->utilA->pseudo;
}
$temps = $this->timestamp;
$db = new BDD();
$db->escape($this->titreB);
$db->escape($this->rapportB);
$db->query("INSERT INTO ".$this->table." (destinataire, sujet, contenu, temps) VALUES(".$this->utilB->id_user.", '$this->titreB', '$this->rapportB', '$temps');");
$db->deconnexion();
}
$this->rapportA = $this->rapportA;
}
public function sendTransport()

View File

@ -29,5 +29,7 @@ $technologiesVAR = array("techno_indu", "techno_inge", "techno_inge2", "techno_p
$batimentsVAR = array("mine_m", "mine_c", "mine_h", "centrale_s", "centrale_f", "radar", "labo", "chantier_terrestre", "chantier_spatial", "caserne", "silo", "centre_info", "habitation", "arcologies", "bunker", "stations", "commercial", "loisir", "administration");
$caserneVAR = array("soldat1", "soldat2", "soldat3", "soldat4", "sniper", "spartan", "medecin", "ingenieur", "soldat_lourd");
$spatialVAR = array("vaisseau_1", "vaisseau_2", "vaisseau_3", "vaisseau_4", "vaisseau_5", "vaisseau_6", "vaisseau_7", "vaisseau_8", "vaisseau_9", "vaisseau_10", "vaisseau_11", "vaisseau_12", "vaisseau_13", "vaisseau_14", "vaisseau_15", "vaisseau_16", "vaisseau_17");
$terrestreVAR = array("vais_0", "vais_1", "vais_2", "vais_3", "vcl_1", "vcl_2", "vcl_3", "vcl_4", "def_1", "def_2", "def_3", "def_4", "def_5", "def_6", "def_7", "def_8");
$terrestreVAR = array();
$terrestreVAR["humain"] = array("vais_0", "vais_1", "vais_2", "vais_3", "vcl_1", "vcl_2", "vcl_3", "vcl_4", "def_1", "def_2", "def_3", "def_4", "def_5", "def_6", "def_7", "def_8");
$terrestreVAR["covenant"] = array("vais_0", "vais_1", "vais_2", "vais_3", "vcl_1", "vcl_2", "vcl_3", "vcl_4", "def_1", "def_2", "def_3", "def_4", "def_5");
$coeffVAR = array("coeff_mine_m", "coeff_mine_c", "coeff_mine_h", "coeff_centrale_s", "coeff_centrale_f");

View File

@ -44,13 +44,13 @@ if (SURFACE == "asteroide") {
}
function traiterBrancheTechnologie($TEMP_liste, $branche, $i)
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);
$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);
@ -61,7 +61,7 @@ function traiterBrancheTechnologie($TEMP_liste, $branche, $i)
'branche' => $branche,
'niveau' => $niveau,
'niveau_max' => $niveau_max,
'etat' => dTechnologies::needed($object, $planete, true)
'etat' => dTechnologies::needed($object, $planete, true, $race)
);
}
}
@ -72,7 +72,7 @@ $TEMP_liste = array();
$branche = 0;
while ($branche < 9) {
$TEMP_liste[$branche] = array();
$TEMP_liste = traiterBrancheTechnologie($TEMP_liste, $branche, dTechnologies::type($branche, $planete->race));
$TEMP_liste = traiterBrancheTechnologie($TEMP_liste, $branche, dTechnologies::type($branche, $planete->race), $race);
$branche++;
}
$template->assign('technologies', $TEMP_liste);

View File

@ -70,7 +70,7 @@ if ($mission == 4 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][3] <= 0)
}
//On vérifie la mission, si elle est d'espionner, il faut qu'il y ait des sondes
if ($mission == 5 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][6] <= 0 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13] <= 0) {
if ($mission == 5 && (($planete->race == "humain" && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13] <= 0) || ($planete->race == "covenant" && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][7] <= 0))) {
erreur('Vous ne pouvez pas espionner sans sonde d\'espionnage !', "red", '?p=flotte');
}
@ -156,7 +156,16 @@ elseif ($mission == 5) {
erreur('La planète sur laquelle vous désirez stationner ne vous appartient pas.', "red", '?p=flotte', 3000);
} elseif ($mission == 7 && !$resultat) {
erreur('La planète sur laquelle vous désirez donner vos vaisseaux n\'existe pas.', "red", '?p=flotte', 3000);
} elseif ($mission == 7) {
$bdd->reconnexion();
$resultatu = $bdd->unique_query("SELECT race FROM $table_user WHERE id = ".$resultat['id_user'].";");
$bdd->deconnexion();
if ($resultatu['race'] != $planete->race) {
erreur("Vous ne pouvez pas donner vos vaisseaux a une autre race que la votre", "red");
}
}
//Création de la flotte

View File

@ -29,7 +29,7 @@ if ($planete->technologies[7]& 16 && $VAR["attaques"]) {
if ($SESS->values["prepFlottes"][$idPrep]['type'] == 1 && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][3]) {
$missions[4] = "Recycler";
}
if ($SESS->values["prepFlottes"][$idPrep]['type'] == 1 && ($SESS->values["prepFlottes"][$idPrep]['vaisseaux'][6] || $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13])) {
if ($SESS->values["prepFlottes"][$idPrep]['type'] == 1 && (($planete->race == "humain" && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][13]) || ($planete->race == "covenant" && $SESS->values["prepFlottes"][$idPrep]['vaisseaux'][7]))) {
$missions[5] = "Espionner";
}

View File

@ -870,20 +870,20 @@
</var>
<var name="7">
<var name="0">Prototype Intercepteur Longsword</var>
<var name="1">Prototype Bombardier Longsword</var>
<var name="2">Corvette de classe Mako</var>
<var name="3">Prototype de Frégate</var>
<var name="1">Prototype Séraphin</var>
<var name="2">Prototype de chasseur lourd Tarasque</var>
<var name="3">Prototype de bombardier Gigas</var>
<var name="4">Récupération</var>
<var name="5">Prototype de Destroyer</var>
<var name="6">Prototype de Croiseur de classe Halcyon</var>
<var name="7">Prototype de Croiseur de classe Marathon</var>
<var name="8">Prototype de Porte-vaisseaux</var>
<var name="9">Prototype de Super Porte-Vaisseaux</var>
<var name="10">Prototype de Vaisseau d'exfiltration de classe Black Cat</var>
<var name="11">Prototype de Super canon à accélération magnétique</var>
<var name="12">Bunker souterrain</var>
<var name="13">Bunker souterrain</var>
<var name="14">Bunker souterrain</var>
<var name="6">Prototype de Destroyer de classe CVP</var>
<var name="7">Prototype de Croiseur de classe CCS</var>
<var name="8">Prototype de Croiseur de classe Révérence</var>
<var name="9">Prototype de Cuirassé</var>
<var name="10">Prototype de Super croiseur</var>
<var name="11">Prototype de Porte-vaisseau</var>
<var name="12">Prototype de Porte-vaisseau lourd</var>
<var name="13">Prototype de station orbitale</var>
<var name="14">Prototype de ...</var>
</var>
<var name="8">
<var name="0">Expansion</var>

View File

@ -8,7 +8,7 @@
{if $flottesEC}
{foreach from=$flottesEC item=flotteEC}
<tr>
<td><a href="{$menu.flotte}&amp;n={$flotteEC->id}">{$flotteEC->nom|escape}</a></td>
<td><a href="{$menu.flotte}&amp;n={$flotteEC->id_flotte}">{$flotteEC->nom|escape}</a></td>
<td>{$flotteEC->txtMission($flotteEC->mission)}</td>
<td>{$flotteEC->nb_vais}</td>
<td>{if $flotteEC->end_type == "2"}{$flotteEC->end_planete->nom_alliance} [{$flotteEC->end_planete->galaxie}:{$flotteEC->end_planete->ss}:A]{elseif $flotteEC->end_type == "1"}[{$flotteEC->end_planete}]{elseif $flotteEC->end_type == "3"}[{$flotteEC->end_planete}:A]{else}{$flotteEC->end_planete->nom_planete} [{$flotteEC->end_planete->galaxie}:{$flotteEC->end_planete->ss}:{$flotteEC->end_planete->position}]{/if}</td>