Version 1.10c

This commit is contained in:
nemunaire 2008-11-19 12:00:00 +01:00
commit 2a066a7498
148 changed files with 2174 additions and 134960 deletions

View file

@ -9,6 +9,20 @@
*
***************************************************************************/
class File{
var $file;
function File($file){
$this->file = unserialize($file);
}
function reajusteVacances($timeVac){
if (isset($this->file[0])) {
$this->file[0] += time() - $timeVac;
}
return serialize($this->file);
}
/**
* Ajoute $nombre objets $objet dans la file $file
* @param int $file Nom de la file d'attente
@ -20,10 +34,13 @@ class File{
*/
function file_addObjet($file, $objet, $nombre = 1){
$planete = $this;
if ($nombre > 99999) erreur('Dépacement de capacité !<br />Vous ne pouvez pas mettre autant d\'unités en file d\'attente en une seule fois.');
switch($file){
case "alli_batiments": $court = "abat"; $calc = "alli_batiment"; global ${$calc.'LIMIT'}; $exist = $this->file_exist($objet, "file_".$court); break;
case "batiments": $court = "bat"; $calc = "batiment"; $exist = $this->file_exist($objet, "file_".$court); break;
case "technologies": $court = "tech"; $calc = "technolo"; $exist = $this->file_exist($objet, "file_".$court); break;
case "technologies": $court = "tech"; $calc = "technolo"; $exist = $this->file_exist($objet, $nombre); break;
case "casernes": $court = "cas"; $calc = "casernen"; $exist = false; break;
case "terrestres": $court = "ter"; $calc = "nomterrn"; $exist = false; break;
case "vaisseaux": $court = "vais"; $calc = "nomvaisn"; $exist = false; break;
@ -67,44 +84,52 @@ class File{
if ($exist) return 2;
//Vérification que le nombre ne soit pas négatif
if ($nombre < 0) return 5;
if ($nombre < 0 && ($file != "batiments" || $nombre < -1)) return 5;
//Actualisation du temps s'il n'y a pas d'objet en file
if (count($this->{"file_".$court}) < 2) $this->{"file_".$court}[0] = time();
if ($file == "alli_batiments" || $file == "batiments") {
eval(${$calc.'CALC'}[$objet][0]);
eval(${$calc.'CALC'}[$objet][1]);
eval(${$calc.'CALC'}[$objet][2]);
$d = 0;
}
elseif ($file == "technologies") {
$a = $b = $c = 0;
$d = $technologiesCALC[$file_tech][$objet][2];
if ($nombre > 0) {
if ($file == "alli_batiments" || $file == "batiments") {
eval(${$calc.'CALC'}[$objet][0]);
eval(${$calc.'CALC'}[$objet][1]);
eval(${$calc.'CALC'}[$objet][2]);
$d = 0;
}
elseif ($file == "technologies") {
$a = $b = $c = 0;
$d = $technologiesCALC[$file_tech][$objet][2];
}
else {
$a = ${$calc.'CALC'}[$objet][0];
$b = ${$calc.'CALC'}[$objet][1];
$c = ${$calc.'CALC'}[$objet][2];
$d = 0;
}
//On applique les bonus politiques aux temps et coûts
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
}
//Vérification du nombre maximum d'entraînement possible de cette unité sur cette planète
if ($nombre > 1) {
if ($a) $nombre = min(floor($this->metal/$a), $nombre);
if ($b) $nombre = min(floor($this->cristal/$b), $nombre);
if ($c) $nombre = min(floor($this->hydrogene/$c), $nombre);
if ($d) $nombre = min(floor($this->credits/$d), $nombre);
}
}
else {
$a = ${$calc.'CALC'}[$objet][0];
$b = ${$calc.'CALC'}[$objet][1];
$c = ${$calc.'CALC'}[$objet][2];
$a = 0;
$b = 0;
$c = 0;
$d = 0;
}
//On applique les bonus politiques aux temps et coûts
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
}
//Vérification du nombre maximum d'entraînement possible de cette unité sur cette planète
if ($nombre > 1) {
if ($a) $nombre = min(floor($this->metal/$a), $nombre);
if ($b) $nombre = min(floor($this->cristal/$b), $nombre);
if ($c) $nombre = min(floor($this->hydrogene/$c), $nombre);
if ($d) $nombre = min(floor($this->credits/$d), $nombre);
}
//Vérification des ressources de la planète
if ($this->metal < $a * $nombre) return 3;
elseif ($this->cristal < $b * $nombre) return 3;
@ -153,10 +178,10 @@ class File{
//On gère les files de type arbre
if ($file == "technologies") {
if (isset($this->{"file_".$court}[$objet])) {
if (isset($this->{"file_".$court}[$objet+1])) {
global ${$file.'CALC'};
//On réinitialise le temps si c'est la première
if ($objet == 1) $this->{"file_".$court}[0] = time();
if ($objet == 0) $this->{"file_".$court}[0] = time();
$i = $objet;
$filearbre = $this->{"file_".$court}[$objet+1][1];
@ -190,37 +215,40 @@ class File{
$n = $this->{$file}[$objet] + 1;
}
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
if ($file == "batiments") {
eval(${$calc.'CALC'}[$objet][0]);
eval(${$calc.'CALC'}[$objet][1]);
eval(${$calc.'CALC'}[$objet][2]);
$d = 0;
}
elseif ($file == "technologies") {
$a = $b = $c = 0;
$d = $technologiesCALC[$filearbre][$objet][2];
}
else {
$a = ${$calc.'CALC'}[$objet][0];
$b = ${$calc.'CALC'}[$objet][1];
$c = ${$calc.'CALC'}[$objet][2];
$d = 0;
}
if ($nombre > 0) {
if ($file == "batiments") {
eval(${$calc.'CALC'}[$objet][0]);
eval(${$calc.'CALC'}[$objet][1]);
eval(${$calc.'CALC'}[$objet][2]);
$d = 0;
}
elseif ($file == "technologies") {
$a = $b = $c = 0;
$d = $technologiesCALC[$filearbre][$objet][2];
}
else {
$a = ${$calc.'CALC'}[$objet][0];
$b = ${$calc.'CALC'}[$objet][1];
$c = ${$calc.'CALC'}[$objet][2];
$d = 0;
}
//On applique les bonus politiques aux temps et coûts
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
}
//On applique les bonus politiques aux temps et coûts
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
$a *= 0.9;
$b *= 0.9;
$c *= 0.9;
}
//Mise à jour des ressources de la planète en conséquence à la construction
$this->metal += $a * $nombre;
$this->cristal += $b * $nombre;
$this->hydrogene += $c * $nombre;
$this->credits += $d * $nombre;
//Mise à jour des ressources de la planète en conséquence à la construction
$this->metal += $a * $nombre;
$this->cristal += $b * $nombre;
$this->hydrogene += $c * $nombre;
$this->credits += $d * $nombre;
}
return $nombre;
}
@ -259,7 +287,6 @@ class File{
* @access public
*/
function file_pret($file){
$nanite = 0;
$planete = $this;
switch($file){
case "alli_batiments": $court = "abat"; $calc = "alli_batiment"; $exist = $this->file_exist($objet, "file_".$court); break;
@ -283,7 +310,7 @@ class File{
if ($key == 0) continue;
//Récupération du temps de recherche
$sec = $technologiesCALC[$bout[1]][$bout[0]][3] / (1 + $planete->batiments[6] * 0.005);
$sec = $technologiesCALC[$bout[1]][$bout[0]][3] / (1 + $this->batiments[6] * 0.01);
//On applique les bonus politiques aux temps et coûts
if (isset($this->politique) && $this->politique == 1 && ($file == "casernes" || $file == "terrestres" || $file == "vaisseaux")) {
@ -296,9 +323,16 @@ class File{
if ($sec < $tps) {
$this->{$file}[$bout[1]] += $technologiesCALC[$bout[1]][$bout[0]][0];
$this->{"file_".$court}[0] += $sec;
unset($this->{"file_".$court}[$key]); //CAUSE DE PROBLEME POSSIBLE !
$tps -= $sec;
unset($this->{"file_".$court}[$key]);
$this->{"file_".$court} = array_merge($this->{"file_".$court});
//La déouverte de technologie est bénéfique pour le moral de la population
if ($this->moral) {
if ($this->politique == 3) $this->setMoral(0.1); //Démocratie : Découvrir une nouvelle technologie a plus d'effet bénéfique sur le moral
else $this->setMoral(0.05);
}
if (!in_array($file, $this->modifUser)) $this->modifUser[] = $file;
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
}
@ -320,7 +354,31 @@ class File{
//Accélération du temps de construction
$sec = floor($sec/VITESSE);
if ($sec * $bout[1] < $tps) {
if ($bout[1] < 0) {
$n--;
eval(${$calc.'CALC'}[$bout[0]][3]);
$sec = floor($sec*0.6/VITESSE);
if ($sec < $tps) {
eval(${$calc.'CALC'}[$bout[0]][0]);
eval(${$calc.'CALC'}[$bout[0]][1]);
eval(${$calc.'CALC'}[$bout[0]][2]);
//On reçoit 70% des ressources en bonus
$this->metal += $a * 0.7;
$this->cristal += $b * 0.7;
$this->hydrogene += $c * 0.7;
$this->{$file}[$bout[0]]--;
$this->{"file_".$court}[0] += $bout[1] * $sec;
$tps -= $sec;
unset($this->{"file_".$court}[$key]);
if (!in_array($file, $this->modif)) $this->modif[] = $file;
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
}
}
elseif ($sec * $bout[1] < $tps && $bout[1] > 0) {
//S'il s'agit d'un silo, on sauvegarde le temps pour utilisation par le script de production
if ($file == "batiments" && $bout[0] == 10) $timestamp_lastSilo = $this->{"file_".$court}[0];
if ($file == "batiments" && $bout[0] == 0) $timestamp_mineM = $this->{"file_".$court}[0];
@ -334,7 +392,7 @@ class File{
if (!in_array($file, $this->modif)) $this->modif[] = $file;
if (!in_array("file_".$court, $this->modif)) $this->modif[] = "file_".$court;
}
elseif ($sec < time() - $this->{"file_".$court}[0]) {
elseif ($sec < time() - $this->{"file_".$court}[0] && $bout[1] > 0) {
//TODO Trouver plus simple que la ligne en dessous
for($j=0 ; $j * $sec < $tps ; $j++) {}
$j--;

View file

@ -9,7 +9,7 @@
*
***************************************************************************/
class Flotte{
var $id_flotte,
var $id_flotte = 0,
$nom,
$start_planete,
$start_time,
@ -17,6 +17,7 @@ class Flotte{
$end_time,
$ret_planete,
$ret_time,
$nb_vais,
$vaisseaux = array(),
$tactique = 0,
$mission,
@ -57,14 +58,13 @@ class Flotte{
$this->mission = $flotte["mission"];
$this->statut = $flotte["statut"];
$this->last = $flotte["last"];
$this->nb_vais = $flotte["nb_vais"];
foreach($nomvaisnVAR as $vais){
$this->vaisseaux[] = $flotte[$vais];
}
foreach($ressoVAR as $contenu){
$this->contenu[] = $flotte[$contenu];
}
$this->contenu = array($flotte["contenu_metal"], $flotte["contenu_cristal"], $flotte["contenu_hydrogene"]);
$this->calculer();
}
@ -74,8 +74,11 @@ class Flotte{
function calculer(){
global $nomvais_rs;
$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 += $nomvais_rs[$key] * $vais;
}
}
@ -161,6 +164,9 @@ class Flotte{
$conso[2] += $vais * $temps[2][$key] * $bonus / exp($vitesse/10);
}
if (!isset($this->vaisseaux[4])) $this->vaisseaux[4] = 0;
if (!isset($this->vaisseaux[5])) $this->vaisseaux[5] = 0;
//Si les chasseurs peuvent rentrer dans les cales des vaisseaux, on les enlèves
if ($this->contenuMax - ($this->contenu[0] + $this->contenu[1] + $this->contenu[2]) - ($this->vaisseaux[4] * $nomvais_rs[4] + $this->vaisseaux[5] * $nomvais_rs[5]) >= ($this->vaisseaux[4] + $this->vaisseaux[5]) * 200) {
$temps[2][4] = $temps[2][5] = $temps[1][4] = $temps[1][5] = $temps[0][4] = $temps[0][5] = 0;
@ -242,38 +248,42 @@ class Flotte{
$bdd->connexion();
if ($this->modifFlotte === "DELETE") $bdd->query("DELETE FROM $table_flottes WHERE id = ".$this->id_flotte.";");
else {
for($i = 0; $i < $nb; $i++){
if (!is_array($this->{$this->modifFlotte[$i]})) {
$bdd->escape($this->{$this->modifFlotte[$i]});
if (is_int($this->{$this->modifFlotte[$i]}) || is_float($this->{$this->modifFlotte[$i]})) $out[] .= $this->modifFlotte[$i]." = ".$this->{$this->modifFlotte[$i]};
else $out[] .= $this->modifFlotte[$i]." = '".$this->{$this->modifFlotte[$i]}."'";
if (empty($this->id_flotte)) {
if ($this->modifFlotte === "INSERT") {
$out1 = ''; $out2 = '';
global $nomvaisnVAR;
foreach ($this->vaisseaux as $key => $vais){
$out1 .= ', '.$nomvaisnVAR[$key];
$out2 .= ', '.$vais;
}
$sql = "INSERT INTO $table_flottes (id_user, mission, start_time, start_planete, end_time, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom, nbvais$out1) VALUES ('".$this->start_planete->id_user."', '".$this->mission."', '".$this->start_time."', '".$this->start_planete->id."', '".$this->end_time."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom.", ".$nb_vais."'$out2);";
//var_dump($sql);
$bdd->query($sql);
}
else {
if ($this->modifFlotte[$i] == "contenu") $calc = "resso";
elseif ($this->modifFlotte[$i] == "vaisseaux") $calc = "nomvaisn";
}
else {
for($i = 0; $i < $nb; $i++){
if (!is_array($this->{$this->modifFlotte[$i]})) {
$bdd->escape($this->{$this->modifFlotte[$i]});
if (is_int($this->{$this->modifFlotte[$i]}) || is_float($this->{$this->modifFlotte[$i]})) $out[] .= $this->modifFlotte[$i]." = ".$this->{$this->modifFlotte[$i]};
else $out[] .= $this->modifFlotte[$i]." = '".$this->{$this->modifFlotte[$i]}."'";
}
else {
if ($this->modifFlotte[$i] == "contenu") $calc = "resso";
elseif ($this->modifFlotte[$i] == "vaisseaux") $calc = "nomvaisn";
if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'};
if (!isset(${$calc.'VAR'})) global ${$calc.'VAR'};
$nombr = count(${$calc.'VAR'});
for($j = 0; $j < $nombr; $j++){
$bdd->escape($this->{$this->modifFlotte[$i]}[$j]);
$out[] = ${$calc.'VAR'}[$j]." = ".$this->{$this->modifFlotte[$i]}[$j];
$nombr = count(${$calc.'VAR'});
for($j = 0; $j < $nombr; $j++){
$bdd->escape($this->{$this->modifFlotte[$i]}[$j]);
$out[] = ${$calc.'VAR'}[$j]." = ".$this->{$this->modifFlotte[$i]}[$j];
}
}
}
if (!empty($out)) $bdd->query("UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";");
else $bdd->query("UPDATE $table_flottes SET last = 0 WHERE id = ".$this->id_flotte.";");
}
if (empty($id_flotte)) {
$out1 = ''; $out2 = '';
global $nomvaisnVAR;
foreach ($this->vaisseaux as $key => $vais){
$out1 .= ', '.${$calc.'VAR'}[$key];
$out2 .= ', '.$vais;
}
$sql = "INSERT INTO $table_flottes (id_user, mission, start_time, start_planete, end_time, end_planete, vitesse, contenu_metal, contenu_cristal, contenu_hydrogene, tactique, nom$out1) VALUES ('".$start_planete->id_user."', '".$this->mission."', '".$this->start_time."', '".$start_planete->id."', '".$this->end_time."', '".$this->end_planete."', '".$this->vitesse."', '".$this->contenu[0]."', '".$this->contenu[1]."', '".$this->contenu[2]."', '".$this->tactique."', '".$this->nom."'$out2);";
var_dump($sql);
//$bdd->query($sql);
}
elseif (!empty($out)) $bdd->query("UPDATE $table_flottes SET ".implode(', ', $out).", last = 0 WHERE id = ".$this->id_flotte.";");
else $bdd->query("UPDATE $table_flottes SET last = 0 WHERE id = ".$this->id_flotte.";");
}
$bdd->deconnexion();
}

View file

@ -24,6 +24,7 @@ class Planete extends User{
$cristal,
$hydrogene,
$population,
$moral,
$alert_ressources = array(false, false, false),
$timestamp,
$timestamp_lastSilo,
@ -51,7 +52,7 @@ class Planete extends User{
* @return void
* @access public
*/
function Planete($id = 0){
function Planete($id = 0, $first = false){
if (!empty($id)) {
global $var___db, $config, $table_planete;
global $batimentVAR, $casernenVAR, $nomterrnVAR, $nomvaisnVAR;
@ -77,6 +78,7 @@ class Planete extends User{
$this->cristal = $plan["cristal"];
$this->hydrogene = $plan["hydrogene"];
$this->population = $plan["population"];
$this->moral = $plan["moral"];
$this->timestamp = $plan["timestamp"];
foreach($batimentVAR as $bat){
@ -109,7 +111,7 @@ class Planete extends User{
if (!empty($plan["file_vais"])) $this->file_vais = unserialize($plan["file_vais"]);
else $this->file_vais = array();
$this->actualiser();
$this->actualiser(true, $first);
}
}
}
@ -120,7 +122,7 @@ class Planete extends User{
* @return void
* @access public
*/
function actualiser($actuFile = true){
function actualiser($actuFile = true, $first = false){
//Actualisation des files d'attentes
if ($actuFile) {
$this->file_pret("batiments");
@ -177,11 +179,24 @@ class Planete extends User{
}
}
//Vérification de la date pour faire les actions journalières
if (date('zya') != date('zya', $this->timestamp)) {
//On évalue le moral
$this->evalMoral($first);
//Si la population est à 0, on ajoute des habitants
if ($this->population <= 0) $this->population = 1000;
$this->population = $this->population * 1.0153^max(1, floor((time()-$this->timestamp)/86400));
$popPlus = $this->population * 0.0153^max(1, floor((time()-$this->timestamp)/86400));
if ($this->politique == 2) $popPlus *= 1.1; //Communisme : 10 % de population qui arrive en plus.
elseif ($this->politique == 3) $popPlus *= 1.05; //Démocratie : 5 % de population qui arrive en plus.
if ($this->technologies[2] & 4) $popPlus *= 1.15;
elseif ($this->technologies[2] & 2) $popPlus *= 1.10;
elseif ($this->technologies[2] & 1) $popPlus *= 1.05;
$this->population += $popPlus;
$this->credits += $this->population/100*exp(0.01)*25;
$this->modif[] = 'population';
}
@ -196,6 +211,75 @@ class Planete extends User{
}
}
function setMoral($difference){
$this->moral += $difference;
//Ajustement du moral
if ($this->moral > 1) $this->moral = 1;
elseif ($this->moral < 0) $this->moral = 0;
if (!in_array("moral", $this->modif)) $this->modif[] = "moral";
}
function evalMoral($first = false){
//Cas de sous-production
if (($this->coeff_bat[0] + $this->coeff_bat[1] + $this->coeff_bat[2])/3 < 0.9) {
if ($this->politique == 2) $this->moral -= 0.10; //Communisme : démoralise 2x plus
else $this->moral -= 0.05;
if (!in_array('moral', $this->modif)) $this->modif[] = 'moral';
}
//Surpopulation
//Surlogement
//Ajustement du moral en fonction de la politique
if ($this->politique == 1 && $this->moral > 0.7) $this->moral = 0.7;
//Isolement si besoin
if ($this->moral < 0.1) {
//On vérifie qu'il ne s'agit pas de la planète mère
global $bdd, $table_planete;
$bdd->connexion();
$res = $bdd->unique_query("SELECT id FROM $table_planete WHERE id_user = ".$this->id_user." ORDER BY id LIMIT 1;");
$bdd->deconnexion();
if ($res['id'] != $this->id) {
if ($this->moral <= 0.01 || $this->moral <= 0.04) {
if ($this->moral <= 0.01) $rand = rand(0,4);
else $rand = rand(0,20);
//Perte de la planète
if ($rand == 1) {
$bdd->connexion();
$bdd->query("DELETE FROM $table_planete WHERE id = ".$this->id.";");
$bdd->deconnexion();
send_mp($this->id_user, 'Perte de contrôle de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a renversé votre gouvernement en tuant tous vos gouverneurs. Vous perdez donc définitivement le contrôle de cette planète.");
if (!$first) {
$sess->values['idPlan'] = $res['id'];
erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révolté contre vous. Vous ne contrôlez plus cette planète.');
}
}
}
elseif ($this->moral <= 0.06 || $this->moral <= 0.1) {
if ($this->moral <= 0.06) $rand = rand(0,2);
else $rand = rand(0,10);
//Perte de contrôle temporaire
if ($rand == 1) {
$debut = time() - rand(0, 3600)*4;
$fin = $debut + 86400;
$this->isolement = array($debut, $fin);
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
send_mp($this->id_user, 'Perte de contrôle temporaire de '.$this->nom_planete, "Suite à une démoralisation percistante de la population sur la planète ".$this->nom_planete." [".$this->galaxie.":".$this->ss.":".$this->position."], la population a pris le contrôle de votre planète. Vous perdez le contrôle de cette planète le temps que vos gouverneurs reprennent le pouvoir.");
if (!$first) {
$sess->values['idPlan'] = $res['id'];
erreur('La population de cette planète est tellement démoralisée qu\'elle s\'est révoltée contre vous. Vous perdez temporairement le contrôle de cette planète.');
}
}
}
}
}
}
/**
* Vérifie si la planète est isolée ou non
*
@ -205,8 +289,8 @@ class Planete extends User{
function isolement(){
$return = false;
if (time() > $isolement[0]) {
if (!isset($isolement[1]) || (time() > $isolement[1] && date('dmY') != date('dmY', $isolement[0]))) {
if (time() > $this->isolement[0]) {
if (!isset($this->isolement[1]) || (time() > $this->isolement[1] && date('dmY') != date('dmY', $this->isolement[0]))) {
$nbPlan = count($queryPlanetes);
$numP = 0;
for ($i=0 ; $i<$nbPlan ; $i++) {
@ -226,25 +310,17 @@ class Planete extends User{
$debut = mktime(rand(0, 24-$tps), 0, 0, date('n'), date('j'), date('Y'));
$fin = $debut + $tps * 3600;
$bdd->connexion();
$bdd->query("UPDATE $table_planete SET isolement = '$debut $fin' WHERE id = '$idPlan';");
$bdd->deconnexion();
$isolement[0] = $debut;
if (time() > $isolement[0]) $isolement[1] = $fin;
$this->isolement[0] = $debut;
if (time() > $this->isolement[0]) $this->isolement[1] = $fin;
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
}
}
$p = gpc('p');
if (isset($isolement[1]) && time() < $isolement[1]) {
if (isset($this->isolement[1]) && time() < $this->isolement[1]) {
$return = true;
}
}
//On applique les bonus politiques aux productions
if (isset($this->politique) && $this->politique == 1) {
$sec *= 0.9;
}
if (!in_array('isolement', $this->modif)) $this->modif[] = 'isolement';
return $return;
}
@ -301,7 +377,7 @@ class Planete extends User{
else $prod_cri = ((ceil(pow(1.1, $this->batiments[1]) * 23 * $this->batiments[1]) / 3600) * $temps_ecoule) * $this->coeff_bat[1] * 1.5;
if ($this->batiments[2] <= 0) $prod_hy = 0;
else $prod_hy = ((ceil(pow(1.1, $this->batiments[2]) * 14 * ($this->batiments[2] + 0.7)) / 3600) * $temps_ecoule) * $this->coeff_bat[2] * 1.5 - $conso_h;
else $prod_hy = ((ceil(pow(1.1, $this->batiments[2]) * 14 * ($this->batiments[2] + 0.7)) / 3600) * $temps_ecoule) * $this->coeff_bat[2] * 1.5;
//Augmentation de la production en fonction des technologies
if ($this->technologies[0] & 4) {
@ -320,6 +396,28 @@ class Planete extends User{
$prod_hy *= 1.05;
}
//Augmentation de la production en fonction du moral
if ($this->moral > 0.9) {
$prod_met *= 1.05;
$prod_cri *= 1.05;
$prod_hy *= 1.05;
}
elseif ($this->moral > 0.75) {
$prod_met *= 1.02;
$prod_cri *= 1.02;
$prod_hy *= 1.02;
}
elseif ($this->moral < 0.45) {
$prod_met *= 0.97;
$prod_cri *= 0.97;
$prod_hy *= 0.97;
}
elseif ($this->moral < 0.25) {
$prod_met *= 0.94;
$prod_cri *= 0.94;
$prod_hy *= 0.94;
}
//Augmentation de la production en fonction de la politique
if ($this->politique == 2) {
$prod_met *= 1.10;
@ -327,6 +425,9 @@ class Planete extends User{
$prod_hy *= 1.10;
}
//On enlève la consomation d'hydrogène
$prod_hy -= $conso_h;
if ($retarray) return array(array(ceil($this->coeff_bat[0]*100), ceil($this->coeff_bat[1]*100), ceil($this->coeff_bat[2]*100), ceil($this->coeff_bat[3]*100), ceil($this->coeff_bat[4]*100)), array($prod_met, $prod_cri, $prod_hy + $conso_h, $energie_s*$this->coeff_bat[3], $energie_f*$this->coeff_bat[4]), array($energie_m*$this->coeff_bat[0], $energie_c*$this->coeff_bat[1], $energie_h*$this->coeff_bat[2], $conso_h, ($energie_s*$this->coeff_bat[3] + $energie_f*$this->coeff_bat[4])-($energie_m*$this->coeff_bat[0] + $energie_c*$this->coeff_bat[1] + $energie_h*$this->coeff_bat[2])));
else return array($prod_met, $prod_cri, $prod_hy);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
game/bourse/AAAcovenant.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

BIN
game/bourse/AAcovenant.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
game/bourse/Acovenant.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
game/bourse/covenant.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

BIN
game/bourse/humain.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Before After
Before After

View file

@ -1,13 +1,17 @@
<?php
if ($config['stnb'] && (!isset($sess->values['auth_level']) || $sess->values['auth_level'] < 8)) {
if ($config['stnb'] && (!isset($sess->level) || $sess->level < 5)) {
switch($config['stnb']){
case 1:
$titre = 'Serveur en maintenance';
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire l\'<a href="'.$config['link']['accueil'].'" class="lien">annonce officielle de cette maintenance sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
break;
case 2:
$titre = 'Serveur en maintenance';
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire la <a href="'.$config['link']['accueil'].'" class="lien">HB Weekly Update sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
break;
case 3:
$titre = 'Serveur en maintenance';
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire la <a href="'.$config['link']['accueil'].'" class="lien">HB Weekly Update sur le forum du jeu</a>.<br /><br />Merci de votre compréhension';
$contenu = 'Nous effectuons actuellement des opérations de maintenance sur le serveur, il est indisponible durant '.($config['dureestnb']/60).' minutes.<br /><br />Pour plus d\'information sur les corrections et nouveautés apportés, nous vous conseillons de lire le <a href="http://www.halo-battle.fr/tester/changelog_page.php" class="lien">ChangeLog de Mantis</a>.<br /><br />Merci de votre compréhension';
break;
}

View file

@ -306,7 +306,7 @@ function send_mailHTML($admail, $sujet, $corps){
function erreur($message, $color = "red", $lien = "", $temps = 2500){
global $template;
$template->assign('message', $message);
if (!empty($lien)) $template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$lien.'";\', '.$temps.');</script>');
//if (!empty($lien)) $template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="'.$lien.'";\', '.$temps.');</script>');
$template->assign('couleur',$color);
$template->display('game/erreur.tpl');
exit;

View file

@ -10,6 +10,8 @@ $titre = 'Batiments';
if (isset($_GET['c'])) {
//Vérification que la planète ne soit pas pleine
if ($planete->casesRest <= 0) erreur('Vous n\'avez plus de place sur votre planète.', "red", "?p=batiments", 3500);
//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 !');
//Récupération des erreurs de la mise en file d'attente pour traitement
$construction = $planete->file_addObjet("batiments", intval(gpc('c')));
@ -23,6 +25,20 @@ $titre = 'Batiments';
default: header('Location: ?p=batiments'); exit;
}
}
//Lancement d'une déconstruction
if (isset($_GET['d'])) {
//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;
}
}
//Annulation d'une nouvelle construction
if (isset($_GET['a']) && isset($batiment[$_GET['a']])) {
$i = intval(gpc('a'));
@ -46,7 +62,8 @@ $titre = 'Batiments';
foreach($planete->batiments as $i => $PLbatiment) {
$tr = 0; $a = 0; $b = 0; $c = 0; $sec = 0; $enFile = false;
if ($PLbatiment > 0) $niveau = $PLbatiment; else $niveau = 0;
$n = $PLbatiment + 1; eval($batimentCALC[$i][0]); eval($batimentCALC[$i][1]); eval($batimentCALC[$i][2]); eval($batimentCALC[$i][3]);
$n = $PLbatiment + 1;
eval($batimentCALC[$i][0]); eval($batimentCALC[$i][1]); eval($batimentCALC[$i][2]); eval($batimentCALC[$i][3]);
if ($planete->file_exist($i, 'file_bat')) $enFile = true; else $enFile = false;
//On applique les bonus de test
@ -88,6 +105,7 @@ $titre = 'Batiments';
$n = $planete->batiments[$bout[0]] + 1;
eval($batimentCALC[$bout[0]][3]);
if ($bout[1] < 0) $sec *= 0.6;
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]]);
}

View file

@ -5,6 +5,8 @@ include_once(_FCORE."../game/Class/class.bourse.php");
define('MAX_ACTION_PAR_JOUR', 5);
erreur('Arrêtez de tester la bourse, on attend le nouveau script !');
/*if (date('G') < 7 && date('G') >= 0 && date('w') != 0 && date('w') != 6 && $queryUser['auth_level'] < 3)
erreur('La bourse est actuellement fermée !<br />Réouverture à 7h00', "orange");
else*/if ($queryPlanetes[0]['id'] != $planete->id)

View file

@ -65,14 +65,10 @@ for ($i = 1; $i <= MAX_PLANETE; $i++) {
$bdd->escape($s);
$resultat = $bdd->query("SELECT id FROM $table_planete WHERE galaxie = $g AND ss = $s AND position = $i;");
if($resultat) {
$d = $bdd->unique_query("SELECT P.nom_planete, P.debris_met, P.debris_cri, U.pseudo, U.race, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE P.galaxie = $g AND P.ss = $s AND P.position = $i;");
if ($d['race'] == 'covenant') $ra = '(c)';
elseif ($auth_level >= 6 && md5($d['race']) == '34c19b21bd4a3dda389e767d32fe9779') $ra = '(f)';
else $ra = '(h)';
$d = $bdd->unique_query("SELECT P.nom_planete, P.image, P.debris_met, P.debris_cri, U.pseudo, U.race, U.politique, U.id_alliance, A.tag FROM $table_planete P INNER JOIN $table_user U ON U.id = P.id_user LEFT OUTER JOIN $table_alliances A ON A.id = U.id_alliance WHERE P.galaxie = $g AND P.ss = $s AND P.position = $i;");
$bdd->deconnexion();
$TEMP_carte[] = array($i, $d['nom_planete'], $d['debris_met'], $d['debris_cri'], $ra, $d['pseudo'], '<a href="?p=envoyer&amp;d='.$d['pseudo'].'" class="msg"><span>Message</span></a>', $d['tag']);//, $eA['tag']);
$TEMP_carte[] = array($i, $d['nom_planete'], $d['debris_met'], $d['debris_cri'], $d['race'], $d['pseudo'], $d['tag'], $d['image'], $d['politique']);
}
else {
$bdd->deconnexion();

View file

@ -95,7 +95,7 @@ foreach ($planete->file_vais as $key => $bout){
$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]]);
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomvaisn[$bout[0]]);
}
$template->assign('file', $file);
?>

View file

@ -94,7 +94,7 @@ foreach ($planete->file_ter as $key => $bout){
$n = $planete->terrestres[$bout[0]] + 1;
eval($nomterrnCALC[$bout[0]][3]);
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomterrn[$bout[0]]);
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomterrn[$bout[0]]);
}
$template->assign('file', $file);
?>

View file

@ -64,10 +64,13 @@ if ($TypeSearch) {
$j = ($pageClassement-1)*$nbppage;
$TEMP_classement = array();
foreach($data as $lign){
$j++;
$TEMP_classement[] = array($j, $lign['tag'], $lign['nbr_membres'], separerNombres($lign[$export]),0);
if ($data) {
foreach($data as $lign){
$j++;
$TEMP_classement[] = array($j, $lign['tag'], $lign['nbr_membres'], separerNombres($lign[$export]),0);
}
}
else erreur('Classement non disponible.');
$template->assign('places', $TEMP_classement);
}
@ -80,10 +83,13 @@ else {
$j = ($pageClassement-1)*$nbppage;
$TEMP_classement = array();
foreach($data as $lign){
$j++;
$TEMP_classement[] = array($j, $lign['pseudo'], $lign['race'], $lign['tag'], $lign['nom'], separerNombres($lign[$export]));
if ($data) {
foreach($data as $lign){
$j++;
$TEMP_classement[] = array($j, $lign['pseudo'], $lign['race'], $lign['tag'], $lign['nom'], separerNombres($lign[$export]));
}
}
else erreur('Classement non disponible.');
$template->assign('places', $TEMP_classement);
}

View file

@ -93,8 +93,8 @@ foreach ($planete->file_ter as $key => $bout){
if ($key == 0) continue;
$n = $planete->terrestres[$bout[0]] + 1;
eval($nomterrnCALC[$bout[0]][3]);
if ($i == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE), $nomterrn[$bout[0]]);
if ($key == 1) $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE - (time() - $planete->file_ter[0])) + ceil($sec/VITESSE) * ($bout[1]-1), $nomterrn[$bout[0]], ceil($sec/VITESSE - (time() - $planete->file_ter[0])));
else $file[] = array($bout[0], $bout[1], ceil($sec/VITESSE) * $bout[1], $nomterrn[$bout[0]]);
}
$template->assign('file', $file);
?>

View file

@ -6,5 +6,5 @@ $bdd->connexion();
$message = $bdd->unique_query("SELECT * FROM $table_messages_demarrage ORDER BY time DESC LIMIT 1;");
$bdd->deconnexion();
$titre = $message['titre'];
$template->assign('contenu', bbcode(nl2br($message['contenu']), 1).'<br /><br /><a class="submit" href="?p=accueil">Continuer</a>');
$template->assign('contenu', '<p style="margin: 0 5px;">'.bbcode(nl2br($message['contenu']), 1).'<br /><br /><a class="submit" href="?p=accueil">Continuer</a></p>');
?>

View file

@ -17,21 +17,20 @@ if (!empty($_POST['objet']) && !empty($_POST['nom']) && !empty($_POST['message']
$bdd->escape($objet);
$bdd->escape($pseudo);
$introuv = array();
for($i = 0; $i < $nbutil; $i++){
$util = trim($utils[$i]);
if (empty($util)) continue;
$bdd->escape($util);
if ($env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) {
if ($util != $planete->pseudo && $env = $bdd->unique_query("SELECT id, pseudo, mail, envoyerMail FROM $table_user WHERE pseudo = '$util';")) {
$bdd->query("INSERT INTO $table_mail (destinataire, expediteur, sujet, contenu, temps) VALUES(".$env['id'].", '$id_user', '$objet', '$message', '$time');");
if ($env["envoyerMail"] >= 1 && !empty($env["mail"])) send_mail($env["mail"], 'Nouveau message privé', 'Bonjour '.$env["pseudo"].',<br /><br />Un nouveau message privé vous a été envoyé dans la galaxie '.$config['serveur_name']);
}
else {
$bdd->deconnexion();
erreur('Impossible de trouver l\'un des destinataire du message : '.htmlentities($util), "red", '?p=envoyer');
}
else $introuv[] = htmlentities($util);
}
$bdd->deconnexion();
erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
if (!empty($introuv[0])) erreur('Impossible de trouver le/les destinataire(s) suivant(s) : '.implode(', ', $introuv).'.<br />Les autres ont bien reçu votre message.', "red", '?p=envoyer');
else erreur('Votre message a été envoyé avec succès.', "green", '?p=messagerie');
}
$amis = array();

View file

@ -1,6 +1,7 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Flottes';
include_once(_FCORE."../game/Class/class.flotte.php");
if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']) && !empty($_POST['ss']) && !empty($_POST['pos']) && !empty($_POST['vitesse']) && isset($_POST['mission']) && isset($_POST['metal']) && isset($_POST['cristal']) && isset($_POST['hydrogene'])) {
$end_galaxie = floor(gpc('amas', 'post'));
@ -47,7 +48,7 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
//On vérifie la mission, si elle est de recycler, il faut qu'il y ait des reclycleurs
elseif ($mission == 4 && $sess->values['vais'][3] <= 0) erreur('Vous ne pouvez pas recycler sans recycleur !', "red", '?p=flotte');
//On vérifie que l'on possède assez de ressources
elseif ((!empty($EBmetal) && !$EBmetal > $queryPlanete['metal']) || (!empty($EBcristal) && !$EBcristal > $queryPlanete['cristal']) || (!empty($EBhydrogene) && !$EBhydrogene > $queryPlanete['hydrogene'])) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
elseif ((!empty($EBmetal) && !$EBmetal > $planete->metal) || (!empty($EBcristal) && !$EBcristal > $planete->cristal) || (!empty($EBhydrogene) && !$EBhydrogene > $planete->hydrogene)) erreur('Vous ne pouvez pas envoyer plus de ressources que vous n\'en posséder.', "red", '?p=flotte');
//On vérifie que l'on n'envoie pas des ressources négatives
elseif ((!empty($EBmetal) && $EBmetal < 0) || (!empty($EBcristal) && $EBcristal < 0) || (!empty($EBhydrogene) && $EBhydrogene < 0)) erreur('Vous avez spécifié des valeurs de ressources à embarquer incorrectes !', "red", '?p=flotte', 4000);
//On vérifie la vitesse du vaisseau
@ -86,33 +87,33 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
erreur('Il n\'y a rien à recycler sur la planète ['.$end_galaxie.':'.$end_ss.':'.$end_pos.'].<br />Vous pouvez forcer le lancement de la flotte en rechargeant cette page.', "orange");
}
//Création de la flotte
$req = array();
$reqPlan = array();
$nbVais = 0;
foreach ($sess->values['vais'] as $key => $vaisseau){
if ($vaisseau > 0) {
if ($vaisseau > $planete->vaisseaux[$key]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte');
else {
$req[] = $nomvaisnVAR[$key].' = '.$vaisseau;
$reqPlan[] = $nomvaisnVAR[$key].' = '.$nomvaisnVAR[$key].' - '.$vaisseau;
$nbVais += $vaisseau;
}
}
}
if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte');
elseif ($sess->values['flnbvais'] != $nbVais) erreur('Une erreur est survenue lors de la création de la flotte :<br /><br /><i>Calcul du nombre de vaisseaux incorrect !</i><br /><br />Si le problème perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
if (!isset($sess->values['vais']) || !is_array($sess->values['vais'])) erreur('Erreur lors de la création de la flotte, absence de données des vaisseaux', "red", '?p=flotte');
else {
//Envoie de la flotte
$flotte = new flotte();
$sauv = $planete->vaisseaux; //Sauvegarde du contenu de la flotte avant lancement
$nbVais = 0;
foreach ($sess->values['vais'] as $key => $vaisseau){
if ($vaisseau > 0) {
if ($vaisseau > $planete->vaisseaux[$key]) erreur('Vous avez envoyé plus de vaisseaux que vous n\'en posséder sur cette planète.', "red", '?p=flotte');
else $nbVais += $vaisseau;
}
elseif ($vaisseau < 0) $vaisseau = 0;
$flotte->vaisseaux[$key] = $vaisseau;
$sauv[$key] -= $vaisseau;
}
if ($nbVais <= 0) erreur('Vous devez envoyer au moins un vaisseau pour former une flotte !', "red", '?p=flotte');
elseif (!isset($sess->values['flnbvais']) || $sess->values['flnbvais'] != $nbVais) erreur('Une erreur est survenue lors de la création de la flotte :<br /><br /><i>Calcul du nombre de vaisseaux incorrect !</i><br /><br />Si le problème perciste, <a href="mailto:'.$config['mailadmin'].'">contactez un administrateur</a>.', "red", '?p=flotte', 4500);
$flotte->nom = gpc('nomflotte', 'post');
$flotte->mission = $mission;
$flotte->start_planete = $planete;
$flotte->start_time = time();
$flotte->end_planete = $resultat['id'];
$calc = $flotte->calc_deplacement($planete->galaxie, $planete->ss, $planete->position, $end_galaxie, $end_ss, $end_pos, $vitesse);
$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];
@ -121,11 +122,19 @@ if (!empty($_POST['cds']) && !empty($_POST['nomflotte']) && isset($_POST['amas']
//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.', "red", '?p=flotte', 3500);
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);
else {
if ($mission == 1) $flotte->tactique = gpc('tactique', 'post');
$flotte->contenu = array(ceil(gpc('metal', 'post')), ceil(gpc('cristal', 'post')), ceil(gpc('hydrogene', 'post')));
$flotte->contenu = array(floor(gpc('metal', 'post')), floor(gpc('cristal', 'post')), floor(gpc('hydrogene', 'post')));
$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->vaisseaux = $sauv;
if (!in_array('vaisseaux', $planete->modif)) $planete->modif[] = 'vaisseaux';
unset($sess->values['vais']);
$sess->put();
@ -143,6 +152,7 @@ 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');
}
@ -175,6 +185,37 @@ elseif (!empty($_POST['v0']) || !empty($_POST['v1']) || !empty($_POST['v2']) ||
//TODO Ajouter les destinations favorites + Colonies
}
//Affichage du détail d'une flotte
elseif (!empty($_GET['n'])) {
$idN = ceil(gpc('n'));
$flotteN = new Flotte($idN);
$flotteN->load_planete();
if ($flotteN->id_flotte == 0 || $flotteN->start_planete->id_user != $planete->id_user) erreur('Impossible de trouver cette flotte !', "red", '?p=flotte', 1500);
else {
//Annulation de la mission
if (isset($_GET['a']) && isset($sess->values['ret_fleet']) && $_GET['a'] == $sess->values['ret_fleet']) {
//Calcul du temps passé depuis le lancement de la flotte
$tpsDD = time() - $flotteN->start_time;
if ($flotteN->mission == '6') erreur('Votre flotte est déjà en train de revenir !', 'red', '?p=flotte&n='.$idN, 1500);
elseif ($flotteN->end_time > $tpsDD) {
$bdd->query("UPDATE $table_flottes SET mission = '6', effectue = '1', end_time = '$tpsDD', end_galaxie = start_galaxie, end_ss = start_ss, end_position = start_position WHERE id_user = '$id_user' AND id = '$idN';");
header('Location: ?p=flotte&n='.$idN);
exit;
}
else erreur('Impossible d\'annuler la mission, elle a déjà commencée.', "red", '?p=flotte&n='.$idN, 1500);
}
$sess->values['ret_fleet'] = sha1('HB.fleet_'.rand().'☺ß☻');
$sess->put();
$template->assign('ret_fleet', $sess->values['ret_fleet']);
$template->assign('flotte', $flotteN);
$template->assign('nomvais', $nomvaisa);
$page = 'flotten';
}
}
//Affichage de la page générale
else {
//Mise à jour des tactiques par défaut
@ -218,7 +259,10 @@ else {
$retour = '-';
$Hretour = '-';
}
$TEMP_flottesEC[] = array($flotte['id'], $flotte['nom'], txtmission($flotte['mission']), $flotte['nb_vais'], $flotte['end_galaxie'].':'.$flotte['end_ss'].':'.$flotte['end_position'], date('d/m H:i:s',$flotte['start_time']+$flotte['end_time']), $retour, $Hretour);
$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);
}
}
$template->assign('flottesEC', $TEMP_flottesEC);

View file

@ -17,7 +17,7 @@ $politique = gpc('politique', 'post');
if (is_numeric($politique)) {
//On annule le changement politique si le dernier a eu lieu dans la semaine.
if ($planete->politique_lastchange > time() - 604800) erreur("La population de votre empire planètaire vient d'entrer dans une phase de révolution contre le changement de régime.<br />Pour ne pas perdre votre place au sommet de l'empire, le système politique n'a pas été changé.");
if ((($planete->technologies[3] & 2048 && $politique == 3) || ($planete->technologies[3] & 1024 && $politique == 2) || ($planete->technologies[3] & 512 && $politique == 1) || $politique == 0) && $planete->politique != $politique) {
if (($planete->technologies[3] & 2048 && ($politique == 3 || $politique == 2 || $politique == 1) || $politique == 0) && $planete->politique != $politique) {
$planete->politique = $politique;
$planete->politique_lastchange = time();
$planete->modifUser[] = "politique";
@ -29,8 +29,10 @@ if (is_numeric($politique)) {
}
$politiques = array('Anarchie');
if ($planete->technologies[3] & 512) $politiques[] = 'Fascisme (Mouvement Frieden)';
if ($planete->technologies[3] & 1024) $politiques[] = 'Communisme (Mouvement Koslovic)';
if ($planete->technologies[3] & 2048) $politiques[] = 'Démocratie (Administration coloniale)';
if ($planete->technologies[3] & 2048) {
$politiques[] = 'Fascisme (Mouvement Frieden)';
$politiques[] = 'Communisme (Mouvement Koslovic)';
$politiques[] = 'Démocratie (Administration coloniale)';
}
$template->assign('politiques', $politiques);
?>

View file

@ -8,6 +8,9 @@ if ($planete->batiments[6] == 0) erreur('Vous devez d\'abord construire un '.str
//Lancement d'une nouvelle recherche
if (isset($_GET['t']) && isset($_GET['f']) ) {
//On annule la recherche si le labo est en construction
if ($planete->file_exist(6, 'file_bat')) erreur('Votre laboratoire est en travaux, vous ne pouvez pas faire de recherches pour le moment !');
//Récupération des erreurs de la mise en file d'attente pour traitement
$construction = $planete->file_addObjet("technologies", intval(gpc('t')), intval(gpc('f')));
@ -43,13 +46,14 @@ foreach ($planete->technologies as $key => $technologie){
//On applique les bonus de test
$calc[3] /= VITESSE;
$calc[3] /= (1 + $planete->batiments[6] * 0.005);
$TEMP_technologies[] =
array(
'image' => $planete->race=='humain'?'../humain_na.jpg':'../covenant_na.jpg',
'nom' => $technolo[$key][$i],
'niveau' => '0',
'description' => 'Technologie de '.$technologiesVAR[$key].' ; numéro : '.$calc[0].'<br />Résultat : '.((int)($technologie & $calc[1]).' | '.$calc[1]),
'description' => 'Technologie de '.$technologiesVAR[$key].' ; numéro : '.$calc[0].'<br />Résultat : '.((int)($technologie & $calc[1]).' | '.$calc[1].' | '.$technologie),
'nec_metal' => 0,
'nec_cristal' => 0,
'nec_hydrogene' => 0,
@ -80,7 +84,7 @@ $file = array();
foreach ($planete->file_tech as $key => $tech_infile){
if ($key == 0) continue;
$sec = $technologiesCALC[$tech_infile[1]][$tech_infile[0]][3];
$sec = $technologiesCALC[$tech_infile[1]][$tech_infile[0]][3] / (1 + $planete->batiments[6] * 0.01);
if ($key == 1) $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE - (time() - $planete->file_tech[0])), $technolo[$tech_infile[1]][$tech_infile[0]]);
else $file[] = array($tech_infile[0], 1, ceil($sec/VITESSE), $technolo[$tech_infile[1]][$tech_infile[0]]);
}

5
game/jeu/marche.php Normal file
View file

@ -0,0 +1,5 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$titre = 'Marché';
?>

View file

@ -33,6 +33,16 @@ if (isset($_POST['IR'])) {
if ($stop) { header('Location: ?p=messagerie'); exit; }
}
if (gpc('avertir')) {
$id = gpc('avertir');
$bdd->connexion();
$bdd->escape($id);
$bdd->query("UPDATE $table_mail SET statut = 1 WHERE destinataire = $id_user AND id = $id;");
if ($bdd->affected()) erreur('La demande de vérification de contenu par les opérateurs a été transmise avec succès.', 'green', '?p=messagerie');
else erreur('Une demande est déjà en cours ou vous n\'êtes pas autorisé à avertir ce message.', 'red', '?p=messagerie');
$bdd->deconnexion();
}
$bdd->connexion();
$messcomp = $bdd->query("SELECT M.*, U.pseudo AS expediteur FROM $table_mail M INNER JOIN $table_user U ON U.id = M.expediteur WHERE M.destinataire = $id_user AND M.expediteur != false ORDER BY M.id DESC;");
$nbmax = $bdd->num_rows;

View file

@ -14,39 +14,16 @@ $mdp = $queryUser['mdp'];
$mdp_var = $queryUser['mdp_var'];
if (isset($_GET['a']) && $_GET['a'] == 'mv' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
$impossible = false;
include_once(_FCORE."../game/Class/class.gerefile.php");
$nbPlan = count($queryPlanetes);
for ($i=0 ; $i<$nbPlan ; $i++) {
$file = unserialize($queryPlanetes[$i]['file_bat']);
if (!empty($queryPlanetes[$i]['file_bat']) && count($file->file)) $impossible = true;
$bdd->connexion();
$bdd->query("SELECT * FROM flottes WHERE id_user = '$id_user'");
if ($bdd->num_rows) erreur('Des flottes sont actuellement en mission, veuillez toutes les faire revenir à quai avant d\'activer le mode vacances.', "red", '?p=options', 4000);
$file = unserialize($queryPlanetes[$i]['file_tech']);
if (!empty($queryPlanetes[$i]['file_tech']) && count($file->file)) $impossible = true;
$bdd->query("UPDATE user SET mv = 1 WHERE id = '$id_user'");
$bdd->deconnexion();
$sess->values['connected'] = FALSE;
$sess->put();
$file = unserialize($queryPlanetes[$i]['file_cas']);
if (!empty($queryPlanetes[$i]['file_cas']) && count($file->file)) $impossible = true;
$file = unserialize($queryPlanetes[$i]['file_vais']);
if (!empty($queryPlanetes[$i]['file_vais']) && count($file->file)) $impossible = true;
$file = unserialize($queryPlanetes[$i]['file_ter']);
if (!empty($queryPlanetes[$i]['file_ter']) && count($file->file)) $impossible = true;
}
if ($impossible) erreur('Impossible d\'activer le mode vacances.<br />Toutes les files d\'attentes sur vos diff&eacute;rentes plan&egrave;tes ne sont pas vides.', "red", '?p=options', 4000);
else {
$bdd->connexion();
$bdd->query("SELECT * FROM flottes WHERE id_user = '$id_user'");
if ($bdd->num_rows) erreur('Des flottes sont actuellement en mission, veuillez toutes les faire revenir à quai avant d\'activer le mode vacances.', "red", '?p=options', 4000);
$bdd->query("UPDATE user SET mv = '1' WHERE id = '$id_user'");
$bdd->deconnexion();
$sess->values['connected'] = FALSE;
$sess->put();
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $planete->last_visite+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
}
erreur('Le mode vacances est maintenant actif sur votre compte.<br /><br />Vous pourez vous reconnecter sur votre compte à partir de<br />'.strftime("%A %d %B à %H:%M", $planete->last_visite+259200).'<br /><br />Bonnes vacances !', "green", '?index', 10000);
}
elseif (isset($_GET['a']) && $_GET['a'] == 'dl' && isset($_GET['n']) && $_GET['n'] == $sess->values['idvac']) {
$bdd->connexion();

View file

@ -11,8 +11,9 @@ if (!empty($_GET['i']) && isset($_GET['n'])) {
$bdd->connexion();
$bdd->escape($Un);
$bdd->escape($Ui);
$user = $bdd->unique_query("SELECT * FROM user WHERE pseudo = '$Un' AND mdpNOUV = '$Ui';");
if ($user && $bdd->unique_query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '' WHERE pseudo = '$Un'")) {
$user = $bdd->unique_query("SELECT * FROM $table_user WHERE pseudo = '$Un' AND mdpNOUV = '$Ui';");
if ($user) {
$bdd->query("UPDATE user SET mdp = mdpNOUV, mdpNOUV = '' WHERE pseudo = '$Un'");
$bdd->deconnexion();
$template->assign('message','Votre mot de passe a été réinitialisé avec succès.');
$template->assign('script','<script type="text/javascript">setTimeout(\'document.location.href="?index";\', 3500);</script>');
@ -29,19 +30,29 @@ if (!empty($_GET['i']) && isset($_GET['n'])) {
}
}
if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_captcha'])) {
if ((isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_captcha'])) || (isset($_GET['ps']) && isset($_GET['m']) && isset($_GET['a']))) {
$ok = true;
if (empty($_POST['HB_pseudo']) || empty($_POST['HB_mail'])) {
if ((empty($_POST['HB_pseudo']) || empty($_POST['HB_mail'])) && (empty($_GET['ps']) || empty($_GET['m']))) {
$ok = false;
$erreur .= '<p style="color: #FF0000"><b>Pseudo ou adresse électronique vide :</b><br />Veuillez compléter tous les champs de ce formulaire avant de le valider.</p><br />';
}
if (strtolower($_POST['HB_captcha']) != strtolower($_SESSION['aleat_nbr'])) {
if (isset($_GET['m']) && is_numeric('0x'.$_GET['m'])) $_GET['m'] = cxor(hexstr($_GET['m']), date('WYDj'));
if (!isset($_POST['HB_captcha'])) $_POST['HB_captcha'] = '';
if (strtolower($_POST['HB_captcha']) != strtolower($_SESSION['aleat_nbr']) && gpc('a') != hash_var($_GET['ps'].'☻♫☼'.date('W!Y¨D@j').'Ņ♂↨'.$_GET['m'], "sha512")) {
$ok = false;
$erreur .= '<p style="color: #FF0000"><b>Code de vérification incorrect :</b><br />Le texte que vous avez recopier ne correspondait pas au texte de l\'image, veuillez recommencer.</p><br />';
}
if ($ok) {
$HB_pseudo = $_POST['HB_pseudo'];
$HB_mail = $_POST['HB_mail'];
if (strtolower($_POST['HB_captcha']) == strtolower($_SESSION['aleat_nbr'])) {
$HB_pseudo = gpc('HB_pseudo', 'post');
$HB_mail = gpc('HB_mail', 'post');
}
else {
$HB_pseudo = gpc('ps');
$HB_mail = gpc('m');
}
$bdd->connexion();
$bdd->escape($HB_pseudo);
$bdd->escape($HB_mail);
@ -49,7 +60,7 @@ if (isset($_POST['HB_pseudo']) && isset($_POST['HB_mail']) && isset($_POST['HB_c
if ($user) {
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = '';
while(strlen($code) != 8) {
while(strlen($code) <= 8) {
$code .= $liste[rand(0,60)];
}
$passNOUV = mdp($HB_pseudo, $code, $user['mdp_var']);

View file

@ -1,7 +1,7 @@
<?php
if(!defined('INDEX')) { header('Location: ../'); exit; }
$page = 'rename';
$titre = $planete->nom_planete;
$titre = htmlentities($planete->nom_planete);
if (isset($_POST['planete'])) {
$nouvNom = trim(str_replace('&nbsp;', ' ', $_POST['planete']));

View file

@ -6,17 +6,12 @@ $titre = 'Détails utilisateur';
$u = floor(gpc('i'));
$bdd->connexion();
$detailsUser = $bdd->query("SELECT * FROM $table_user WHERE id = $u;");
$bdd->escape($u);
$detailsUser = $bdd->unique_query("SELECT * FROM $table_user WHERE id = $u;");
$bdd->deconnexion();
var_dump($detailsUser);
if (!empty($detailsUser)) {
$amis = explode(';', $detailsUser['amis']);
if (in_array($id_user, $amis)) $template->assign('amis', true);
$template->assign('userD', $detailsUser);
if (!empty($detailsUser['id_alliance'])) {
$bdd->connexion();
$template->assign('alliance', $bdd->unique_query("SELECT * FROM $table_alliances WHERE id = ".$detailsUser['id_alliance'].";"));
$bdd->deconnexion();
}
}
else erreur('Joueur introuvable !');
?>

View file

@ -16,9 +16,10 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Moins bien connus que les Elites, les Brutes combattent en groupes et sont physiquement plus forts que leurs cong&eacute;n&egrave;res. Les Brutes d&eacute;montrent les mêmes aptitudes au combat que les Elites et leur nombre s\'est consid&eacute;rablement accru depuis le d&eacute;but du conflit. Ils portent une arme balistique explosive &agrave; laquelle est fix&eacute;e une baïonnette.');
$casernea = array('grunt(s)','jackal(s)','drone(s)','&eacute;lite(s)','sniper(s)','hunter(s)','m&eacute;decin(s)','ing&eacute;nieur(s)','brute(s)');
$casernei = array('grunt1.jpg','jackal.jpg','94990342wb4.jpg','98004530fx3.jpg','88091275ja8.jpg','hunter1.jpg','81770345oo4.jpg','88218731ts1.jpg','72188202fg9.jpg');
$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info');
$batimeni = array('batimentcovieux4.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg');
//$batimend = array('purificateur_m','purificateur_c','ionisateur','centrale_s','centrale_fusion','oeil','recherches','chantier_terrestre','???','caserne','silo','centre_info','habitation','arcologie','commercial','loisir','administration');
$batimeni = array('batimentcovieux4.jpg','cristaloo3.png','powersupplycoviejq1.jpg','solaire.jpg','sanstitrevi7.jpg','oeilduprophetewj6.jpg','covielabocn5.jpg','chantierterrestrehg1.jpg','sanstitretruecolor09zn6.jpg','caserncov0ry.jpg','stockagebasement1cs10bl.jpg','ordianteur_hologramme.jpg', '!!', '!!', '!!', '!!', '!!');
$batiment = array('Purificateur de m&eacute;tal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des proph&egrave;tes','Centre de recherches','Chantier terrestre','Chantier spatial','Caserne','Entrep&ocirc;t','Centrale informatique');
//$batiment = array('Purificateur de m&eacute;tal','Purificateur de cristal','Ionisateur','Centrale solaire','Centrale de fusion','Oeil des proph&egrave;tes','Centre de recherches','Chantier terrestre','Chantier spatial','Caserne','Entrep&ocirc;t','Centrale informatique', 'Module r&eacute;sidentiel', 'M&eacute;gastructure', 'March&eacute;', 'Sanctuaire', 'Chambre du Conseil');
$batimede = array( 'Le purificateur de m&eacute;tal vous fournit les mati&egrave;res premi&egrave;res pour la construction de vos infrastructures et de vos unit&eacute;s. Plus vous d&eacute;velopperez vos purificateurs, plus ils produiront de ressources. Les purificateurs les plus d&eacute;velopp&eacute;s ont aussi besoin de plus d\'&eacute;nergie.',
'Le purificateur de cristal vous fournit les ressources pour vos installations &eacute;lectroniques et pour les alliages. Le purificateur de cristal consomme deux fois plus d\'&eacute;nergie que celui de m&eacute;tal. Tous les vaisseaux et b&acirc;timents ont besoin de cristal pour leur bouclier ou encore leurs composants &eacute;lectroniques. La production augmente avec le d&eacute;veloppement de l\'usine.',
'L\'ionisateur utilise des ions n&eacute;gatifs et positifs d\'hydrog&egrave;ne pour cr&eacute;er une source conventionnelle de courant stable, servant &agrave; alimenter les b&acirc;timents covenants qui n&eacute;cessitent une arriv&eacute;e massive de cette "ressource" pour actionner les divers &eacute;l&eacute;ments mat&eacute;riels des contr&ocirc;les. La centrale de fusion &agrave; besoin de beaucoup d\'ions pour fonctionner.',
@ -30,12 +31,17 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Ce b&acirc;timent permet la cr&eacute;ation de toutes vos unit&eacute;s spatiales ou volantes. La force des covenants a souvent &eacute;t&eacute; due &agrave; ses grandes avanc&eacute;es technologiques en mati&egrave;re d\'a&eacute;ronautique. Un grand chantier spatial permet de cr&eacute;er des unit&eacute;s de plus en plus fortes et de surcroît de les cr&eacute;er de plus en plus rapidement.',
'Le Temple de la Guerre vous permet de cr&eacute;er l\'&eacute;lite des forces d\'infanterie. Des soldats y sont fanatis&eacute;s puis entraîn&eacute;s au maniement des armes et &agrave; la strat&eacute;gie militaire. Plus vous d&eacute;veloppez le temple, plus la vitesse de production sera rapide.',
'Les ressources qui ne sont pas encore trait&eacute;es sont mises en stock dans ces entrep&ocirc;ts g&eacute;ants. Un entrep&ocirc;t plus grand permet le stockage d\'une plus grande quantit&eacute; de ressources. Lorsque l\'entrep&ocirc;t est plein, l\'extraction est stopp&eacute;e. Il est grandement conseill&eacute; de d&eacute;velopper ce genre d\'infrastructure.',
'La centrale informatique est le coeur de votre plan&egrave;te, le cerveau de votre territoire, analysant chaque particule d&eacute;tect&eacute;e avec grand soin. Plus votre centrale est am&eacute;lior&eacute;e, plus rapidement et ais&eacute;ment les donn&eacute;es seront trait&eacute;es.');
'La centrale informatique est le coeur de votre plan&egrave;te, le cerveau de votre territoire, analysant chaque particule d&eacute;tect&eacute;e avec grand soin. Plus votre centrale est am&eacute;lior&eacute;e, plus rapidement et ais&eacute;ment les donn&eacute;es seront trait&eacute;es.',
'~#DESCRIPTION MANQUANTE#~ Module résidentiel',
'~#DESCRIPTION MANQUANTE#~ Mégastructure',
'~#DESCRIPTION MANQUANTE#~ Marché',
'~#DESCRIPTION MANQUANTE#~ Sanctuaire',
'~#DESCRIPTION MANQUANTE#~ Chambre du Conseil');
$technolo = array(
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique niveau 1', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
array('Maîtrise énergie niveau 1', 'Maîtrise énergie niveau 2', 'Maîtrise énergie niveau 3', 'Réacteur à combustion niveau 1', 'Réacteur à combustion niveau 2', 'Réacteur à combustion niveau 3', 'Réacteur à fusion niveau 1', 'Réacteur à fusion niveau 2', 'Réacteur à fusion niveau 3', 'Réacteur à fusion type II niveau 1', 'Réacteur à fusion type II niveau 2', 'Réacteur à fusion type II niveau 3', 'Informatique niveau 1', 'Informatique niveau 2', 'Informatique niveau 3', 'IA niveau 1', 'IA niveau 2', 'IA niveau 3', 'Télécommunications niveau 1', 'Télécommunications niveau 2', 'Télécommunications niveau 3', 'Polymères radars niveau 1', 'Polymères radars niveau 2', 'Polymères radars niveau 3', 'Espionnage niveau 1', 'Espionnage niveau 2', 'Espionnage niveau 3', 'Contre-espionnage niveau 1', 'Contre-espionnage niveau 2', 'Contre-espionnage niveau 3'),
array('Constructions planétaires niveau 1', 'Constructions planétaires niveau 2', 'Constructions planétaires niveau 3', 'Construction optimisée', 'Ingénierie orbitale', 'Aménagement territorial niveau 1', 'Aménagement territorial niveau 2', 'Aménagement territorial niveau 3'),
array('Immigration coloniale niveau 1', 'Sciences politiques niveau 1', 'Immigration coloniale niveau 2', 'Urbanisme niveau 1', 'Immigration coloniale niveau 3', 'Urbanisme niveau 2', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Urbanisme niveau 3', 'Sciences politiques niveau 2', 'Stratégie militaire niveau 1', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
array('Immigration coloniale niveau 1', 'Immigration coloniale niveau 2', 'Immigration coloniale niveau 3', 'Urbanisme niveau 1', 'Urbanisme niveau 2', 'Urbanisme niveau 3', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Sciences politiques niveau 1', 'Sciences politiques niveau 2', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 1', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
array('Projectile Haut Densité niveau 1', 'Projectile Haut Densité niveau 2', 'Projectile Haut Densité niveau 3', 'Assistance de visée niveau 1', 'Assistance de visée niveau 2', 'Assistance de visée niveau 3', 'Guidage laser niveau 1', 'Guidage laser niveau 2', 'Guidage laser niveau 3', 'Condensateurs rapides niveau 1', 'Condensateurs rapides niveau 2', 'Condensateurs rapides niveau 3', 'Balistique avancée niveau 1', 'Balistique avancée niveau 2', 'Balistique avancée niveau 3', 'Accélération magnétique niveau 1', 'Accélération magnétique niveau 2', 'Accélération magnétique niveau 3'),
array('Robotique niveau 1', 'Robotique niveau 2', 'Robotique niveau 3', 'Ingénierie atomique niveau 1', 'Ingénierie atomique niveau 2', 'Ingénierie atomique niveau 3', 'Nano-régénération niveau ', 'Nano-régénération niveau 2', 'Nano-régénération niveau 3', 'Squelette renforcé niveau 1', 'Squelette renforcé niveau 2', 'Squelette renforcé niveau 3', 'Armatures enrichies niveau 1', 'Armatures enrichies niveau 2', 'Armatures enrichies niveau 3', 'Composés avancés niveau 1', 'Composés avancés niveau 2', 'Composés avancés niveau 3', 'Alliage niveau 1', 'Alliage niveau 2', 'Alliage niveau 3', 'Alliage avancé niveau 1', 'Alliage avancé niveau 2', 'Alliage avancé niveau 3', 'Armure moléculaire niveau 1', 'Armure moléculaire niveau 2', 'Armure moléculaire niveau 3'),
@ -165,8 +171,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'~#DESCRIPTION MANQUANTE#~ Drone',
'~#DESCRIPTION MANQUANTE#~ Station de defense');
}
//else {
elseif ($race == 'humain') {
elseif ($race == 'humain' || $race == "none") {
$ressourc = array('M&eacute;tal','Cristal','Hydrog&egrave;ne','&Eacute;nergie','Cr&eacute;dits');
$casernen = array('Marine','Fusiller','Grenadier','T.C.A.O.','Sniper','Spartan','M&eacute;decin','Ing&eacute;nieur','Soldat exo squelette');
$casernde = array( 'Les marines constituent l\'infanterie de base de vos forces militaires. De faible puissance et de r&eacute;sistance plut&ocirc;t m&eacute;diocre, ils rivalisent avec les unit&eacute;s covenants standard. Ils sont &eacute;quip&eacute;s d\'une armure de kevlar renforc&eacute;e et d\'un SMG.',
@ -180,6 +185,7 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Les soldats exo squelettiques poss&egrave;dent des armures de combat tr&egrave;s r&eacute;sistantes et d\'une puissance &eacute;norme mais contre balanc&eacute;e par une faible autonomie d\'&eacute;nergie, une mobilit&eacute; faible et d\'une discr&eacute;tion auditive aussi silencieuse qu\'un char d\'assaut dans un champs de mines lotus.');
$casernea = array('marine(s)','fusiller(s)','grenadier(s)','T.C.A.O.','sniper(s)','spartan(s)','m&eacute;decin(s)','ing&eacute;nieur(s)','soldat(s) exo squelette');
$casernei = array('marines.jpg','marinehf0.jpg','grenadier.jpg','TCAO2.jpg','sniper.jpg','spartan.jpg','medecin.jpg','ingenieurs.jpg','exosquelettehbpb2.jpg');
//$batiment = array('Usine de m&eacute;tallurgie','Usine de cristal','Synchronisateur d\'hydrog&egrave;ne','Centrale solaire','Centrale &eacute;nerg&eacute;tique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique', 'Module résidentiel', 'Arcologie', 'Centre commercial', 'Centre de loisirs', 'Centre administratif');
$batiment = array('Usine de m&eacute;tallurgie','Usine de cristal','Synchronisateur d\'hydrog&egrave;ne','Centrale solaire','Centrale &eacute;nerg&eacute;tique','Base radar','Centre de recherches','Chantier terrestre','Chantier spatial','Ecole militaire','Silo de stockage','Centrale informatique');
$batimede = array( 'Cette usine traite tous les m&eacute;taux recueillis afin de produire du titanium-A ou diff&eacute;rents types d\'alliages de qualit&eacute; pour vos diff&eacute;rentes constructions plan&eacute;taires ou spatiales. Chaque niveau augmente la production de m&eacute;tal.',
'L\'usine de cristal filtre les d&eacute;chets r&eacute;colt&eacute;s avec les cristaux. Une fois s&eacute;par&eacute;s du reste ils sont class&eacute;s par qualit&eacute; par une quantit&eacute; d\'appareils de haute technologie. Plus les cristaux sont purs plus ceux-ci peuvent être transform&eacute;s en unit&eacute;s de stockage de donn&eacute;es ou en conducteurs &eacute;nerg&eacute;tiques de haute qualit&eacute;. Plus ce b&acirc;timent sera d&eacute;velopp&eacute;, plus vous pourrez traiter de cristaux rapidement.',
@ -192,14 +198,19 @@ if (!isset($auth_level)) @$auth_level = $sess->values['auth_level'];
'Le chantier spatial permet de construire v&ocirc;tre flotte de vaisseaux spatiaux. G&eacute;n&eacute;ralement &agrave; la limite de l\'atmosph&egrave;re d\'une plan&egrave;te il ne peut cependant se d&eacute;placer et doit imp&eacute;rativement rester en orbite. Le chantier spatial, bien que ressemblant &agrave; une station spatial, ne peut être d&eacute;truit gr&acirc;ce &agrave; sa position qui lui conf&egrave;re un camouflage total.',
'L\'acad&eacute;mie militaire forme les meilleurs officiers et sous-officiers de la galaxie. Ces hommes exp&eacute;riment&eacute;s vous aideront &agrave; choisir de meilleures strat&eacute;gies d&eacute;fensives ou offensives ou encore même &eacute;conomiques face aux diff&eacute;rentes situations qui vous seront impos&eacute;es. Plus vous augmenterez le niveau de cette structure plus vos officiers seront rapides et efficaces dans leurs t&acirc;ches.',
'Comme toutes choses, vos ressources ont besoin d\'espace pour être stock&eacute;es ; c\'est pourquoi ces &eacute;normes silos vous seront d\'une aide pr&eacute;cieuse afin d\'y renfermer une grande quantit&eacute; de mati&egrave;res premi&egrave;res pour toutes vos productions. Plus le niveau du silo est haut, plus il pourra contenir de ressources suppl&eacute;mentaires.',
'La centrale informatique est le coeur de votre plan&egrave;te, le cerveau de votre territoire, analysant chaque particule d&eacute;tect&eacute;e avec grand soin. Plus votre centrale est am&eacute;lior&eacute;e, plus rapidement et ais&eacute;ment les donn&eacute;es seront trait&eacute;es.');
$batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info');
$batimeni = array('mine_m.jpg','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg');
'La centrale informatique est le coeur de votre plan&egrave;te, le cerveau de votre territoire, analysant chaque particule d&eacute;tect&eacute;e avec grand soin. Plus votre centrale est am&eacute;lior&eacute;e, plus rapidement et ais&eacute;ment les donn&eacute;es seront trait&eacute;es.',
'~#DESCRIPTION MANQUANTE#~ Module résidentiel',
'~#DESCRIPTION MANQUANTE#~ Arcologie',
'~#DESCRIPTION MANQUANTE#~ Centre commercial',
'~#DESCRIPTION MANQUANTE#~ Centre de loisirs',
'~#DESCRIPTION MANQUANTE#~ Centre administratif');
//$batimend = array('mine_m','mine_c','!!','centrale_s','centrale_f','radar','recherches','chantier_terrestre','???','ecole_militaire','silo','centre_info','habitation','arcologie','commercial','loisir','administration');
$batimeni = array('mine_m.jpg','mine_c.png','synchroniseur.jpg','centrale solaire.jpg','centrale electrique.jpg','baseradardl3.jpg','recherches.jpg','chantierterrestrecopybj8.jpg','chantier spatial.jpg','ecole militaire.jpg','stockage.jpg','search0yp.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg', '../humain_na.jpg');
$technolo = array(
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique niveau 1', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
array('Forage niveau 1', 'Forage niveau 2', 'Forage niveau 3', 'Commerce galactique', 'Rendement métal niveau 1', 'Rendement métal niveau 2', 'Rendement métal niveau 3', 'Rendement cristal niveau 1', 'Rendement cristal niveau 2', 'Rendement cristal niveau 3', 'Rendement hydrogène niveau 1', 'Rendement hydrogène niveau 2', 'Rendement hydrogène niveau 3', 'Théorie du Marché niveau 1', 'Théorie du Marché niveau 2', 'Théorie du Marché niveau 3', 'Fonderies avancées niveau 1', 'Fonderies avancées niveau 2', 'Fonderies avancées niveau 3'),
array('Maîtrise énergie niveau 1', 'Maîtrise énergie niveau 2', 'Maîtrise énergie niveau 3', 'Réacteur à combustion niveau 1', 'Réacteur à combustion niveau 2', 'Réacteur à combustion niveau 3', 'Réacteur à fusion niveau 1', 'Réacteur à fusion niveau 2', 'Réacteur à fusion niveau 3', 'Réacteur à fusion type II niveau 1', 'Réacteur à fusion type II niveau 2', 'Réacteur à fusion type II niveau 3', 'Informatique niveau 1', 'Informatique niveau 2', 'Informatique niveau 3', 'IA niveau 1', 'IA niveau 2', 'IA niveau 3', 'Télécommunications niveau 1', 'Télécommunications niveau 2', 'Télécommunications niveau 3', 'Polymères radars niveau 1', 'Polymères radars niveau 2', 'Polymères radars niveau 3', 'Espionnage niveau 1', 'Espionnage niveau 2', 'Espionnage niveau 3', 'Contre-espionnage niveau 1', 'Contre-espionnage niveau 2', 'Contre-espionnage niveau 3'),
array('Constructions planétaires niveau 1', 'Constructions planétaires niveau 2', 'Constructions planétaires niveau 3', 'Construction optimisée', 'Ingénierie orbitale', 'Aménagement territorial niveau 1', 'Aménagement territorial niveau 2', 'Aménagement territorial niveau 3'),
array('Immigration coloniale niveau 1', 'Sciences politiques niveau 1', 'Immigration coloniale niveau 2', 'Urbanisme niveau 1', 'Immigration coloniale niveau 3', 'Urbanisme niveau 2', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Urbanisme niveau 3', 'Sciences politiques niveau 2', 'Stratégie militaire niveau 1', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
array('Immigration coloniale niveau 1', 'Immigration coloniale niveau 2', 'Immigration coloniale niveau 3', 'Urbanisme niveau 1', 'Urbanisme niveau 2', 'Urbanisme niveau 3', 'Grandes surfaces', 'Centre de loisirs', 'Arcologie', 'Sciences politiques niveau 1', 'Sciences politiques niveau 2', 'Sciences politiques niveau 3', 'Stratégie militaire niveau 1', 'Stratégie militaire niveau 2', 'Stratégie militaire niveau 3'),
array('Projectile Haut Densité niveau 1', 'Projectile Haut Densité niveau 2', 'Projectile Haut Densité niveau 3', 'Assistance de visée niveau 1', 'Assistance de visée niveau 2', 'Assistance de visée niveau 3', 'Guidage laser niveau 1', 'Guidage laser niveau 2', 'Guidage laser niveau 3', 'Condensateurs rapides niveau 1', 'Condensateurs rapides niveau 2', 'Condensateurs rapides niveau 3', 'Balistique avancée niveau 1', 'Balistique avancée niveau 2', 'Balistique avancée niveau 3', 'Accélération magnétique niveau 1', 'Accélération magnétique niveau 2', 'Accélération magnétique niveau 3'),
array('Robotique niveau 1', 'Robotique niveau 2', 'Robotique niveau 3', 'Ingénierie atomique niveau 1', 'Ingénierie atomique niveau 2', 'Ingénierie atomique niveau 3', 'Nano-régénération niveau ', 'Nano-régénération niveau 2', 'Nano-régénération niveau 3', 'Squelette renforcé niveau 1', 'Squelette renforcé niveau 2', 'Squelette renforcé niveau 3', 'Armatures enrichies niveau 1', 'Armatures enrichies niveau 2', 'Armatures enrichies niveau 3', 'Composés avancés niveau 1', 'Composés avancés niveau 2', 'Composés avancés niveau 3', 'Alliage niveau 1', 'Alliage niveau 2', 'Alliage niveau 3', 'Alliage avancé niveau 1', 'Alliage avancé niveau 2', 'Alliage avancé niveau 3', 'Armure moléculaire niveau 1', 'Armure moléculaire niveau 2', 'Armure moléculaire niveau 3'),

View file

@ -1,6 +1,7 @@
<?php //vars.php : contient toutes les valeurs pour construire chaque batiments, unités ou technologies
if (!isset($technolo)) {
if (empty($race)) $race = $sess->values['race'];
if (empty($race) && empty($sess->values['race'])) $race = "none";
elseif (empty($race)) $race = $sess->values['race'];
include(_FCORE."../game/noms.php");
}
$nanite = 0;
@ -122,7 +123,7 @@ array(
),
0
);
$batimentVAR = array('mine_m','mine_c','mine_h','centrale_s','centrale_f','radar','labo','chantier_terrestre','chantier_spatial','caserne','silo','centre_info');
$batimentVAR = array('mine_m','mine_c','mine_h','centrale_s','centrale_f','radar','labo','chantier_terrestre','chantier_spatial','caserne','silo','centre_info');//,'habitation','arcologie','commercial','loisir','administration');
$batimentCALC = array(
array(
'$a = ceil(pow(1.5,$n)*68);',
@ -195,7 +196,12 @@ $batimentCALC = array(
'$b = ceil(pow(1.7,$planete->batiments[11])*420);',
'$c = ceil(pow(1.7,$planete->batiments[11])*100);',
'$sec = ceil((pow(1.9,$planete->batiments[11])*800)/((0.0025*$planete->casernes[7])+1));'
)
),
array(),
array(),
array(),
array(),
array()
);
$batimentTECH = array(
0,
@ -208,16 +214,27 @@ $batimentTECH = array(
0,
0,
array(
array($technolo[2][3], 'techno_inge', 8589934592)
array($technolo[2][3], 'techno_inge2', 9)
),
array(
array($technolo[2][4], 'techno_inge', 17179869184)
array($technolo[2][4], 'techno_inge2', 17)
),
0,
0,
array(
array($technolo[1][12], 'techno_inge', 4096)
)
),
0,
array(
array($technolo[3][8], 'techno_poli', 256)
),
array(
array($technolo[3][6], 'techno_poli', 64)
),
array(
array($technolo[3][7], 'techno_poli', 128)
),
0
);
$technoloVAR = array('informatique','detection','armement','blindage','energie_t','reacteur','reacteur_f','reacteur_ff','medecine','tactique','spartan','prodfile');
@ -753,147 +770,147 @@ $technologiesCALC = array(
array(
array(1, 0, 1000, 54000),
array(2, 1, 2000, 90000),
array(4, 2, 4000, 126000),
array(4, 3, 4000, 126000),
array(8, 1, 4000, 126000),
array(16, 1, 2000, 72000),
array(32, 16, 4000, 108000),
array(64, 32, 8000, 144000),
array(32, 17, 4000, 108000),
array(64, 49, 8000, 144000),
array(128, 1, 2000, 72000),
array(256, 128, 4000, 108000),
array(512, 256, 8000, 144000),
array(256, 129, 4000, 108000),
array(512, 385, 8000, 144000),
array(1024, 1, 2000, 72000),
array(2048, 1024, 4000, 108000),
array(4096, 2048, 8000, 144000),
array(8192, 8, 3000, 126000),
array(16384, 8192, 6000, 162000),
array(32768, 16384, 12000, 198000),
array(65536, 1168, 3000, 126000),
array(131072, 65536, 6000, 162000),
array(262144, 131072, 12000, 198000)
array(2048, 1025, 4000, 108000),
array(4096, 3073, 8000, 144000),
array(8192, 9, 3000, 126000),
array(16384, 8201, 6000, 162000),
array(32768, 24585, 12000, 198000),
array(65536, 1169, 3000, 126000),
array(131072, 66705, 6000, 162000),
array(262144, 197777, 12000, 198000)
),
//Ingénieurie
array(
array(1, 0, 1000, 54000),
array(2, 1, 2000, 90000),
array(4, 2, 4000, 126000),
array(4, 3, 4000, 126000),
array(8, 1, 2000, 90000),
array(16, 8, 4000, 126000),
array(32, 16, 8000, 162000),
array(64, 8, 3000, 126000),
array(128, 64, 6000, 162000),
array(256, 128, 12000, 198000),
array(512, 64, 4000, 162000),
array(1024, 512, 8000, 198000),
array(2048, 1024, 16000, 234000),
array(16, 9, 4000, 126000),
array(32, 25, 8000, 162000),
array(64, 9, 3000, 126000),
array(128, 73, 6000, 162000),
array(256, 201, 12000, 198000),
array(512, 73, 4000, 162000),
array(1024, 585, 8000, 198000),
array(2048, 1609, 16000, 234000),
array(4096, 0, 1000, 54000),
array(8192, 4096, 2000, 90000),
array(16384, 8192, 4000, 126000),
array(16384, 12288, 4000, 126000),
array(32768, 4096, 2000, 54000),
array(65536, 32768, 4000, 90000),
array(131072, 65536, 8000, 126000),
array(262144, 8192, 2000, 72000),
array(524288, 262144, 4000, 108000),
array(1048576, 524288, 8000, 144000),
array(2097152, 262144, 2000, 54000),
array(4194304, 2097152, 4000, 90000),
array(8388608, 4194304, 8000, 126000),
array(16777216, 16384, 2000, 54000),
array(33554432, 16777216, 4000, 90000),
array(67108864, 33554432, 8000, 126000),
array(134217728, 16384, 3000, 90000),
array(268435456, 134217728, 6000, 126000),
array(536870912, 268435456, 12000, 162000)
array(65536, 36864, 4000, 90000),
array(131072, 102400, 8000, 126000),
array(262144, 12288, 2000, 72000),
array(524288, 274432, 4000, 108000),
array(1048576, 798720, 8000, 144000),
array(2097152, 274432, 2000, 54000),
array(4194304, 2371584, 4000, 90000),
array(8388608, 6565888, 8000, 126000),
array(16777216, 28672, 2000, 54000),
array(33554432, 16805888, 4000, 90000),
array(67108864, 50360320, 8000, 126000),
array(134217728, 28672, 3000, 90000),
array(268435456, 134246400, 6000, 126000),
array(536870912, 402681856, 12000, 162000)
),
//Ingénieurie 2
array(
array(1, 0, 1000, 36000),
array(2, 1, 2000, 72000),
array(4, 2, 4000, 108000),
array(4, 3, 4000, 108000),
array(8, 1, 4000, 126000),
array(16, 1, 4000, 126000),
array(32, 24, 4000, 126000),
array(64, 32, 8000, 162000),
array(128, 64, 16000, 198000)
array(32, 25, 4000, 126000),
array(64, 57, 8000, 162000),
array(128, 121, 16000, 198000)
),
//Politique
array(
array(1, 0, 1000, 36000),
array(512, 0, 1000, 90000),
array(2, 1, 2000, 72000),
array(4, 3, 4000, 108000),
array(8, 1, 2000, 72000),
array(4, 2, 4000, 108000),
array(16, 8, 4000, 108000),
array(64, 8, 4000, 126000),
array(16, 9, 4000, 108000),
array(32, 25, 8000, 144000),
array(64, 9, 4000, 126000),
array(128, 8, 6000, 162000),
array(256, 8, 6000, 162000),
array(32, 16, 8000, 144000),
array(256, 9, 6000, 162000),
array(512, 0, 1000, 90000),
array(1024, 512, 2000, 90000),
array(2048, 1536, 4000, 90000),
array(4096, 512, 2000, 72000),
array(2048, 1024, 4000, 90000),
array(8192, 4096, 4000, 108000),
array(16384, 8192, 8000, 144000)
array(8192, 4608, 4000, 108000),
array(16384, 12800, 8000, 144000)
),
//Armement
array(
array(1, 0, 1000, 36000),
array(2, 1, 2000, 72000),
array(4, 2, 4000, 108000),
array(4, 3, 4000, 108000),
array(8, 1, 1000, 54000),
array(16, 8, 2000, 90000),
array(32, 16, 4000, 126000),
array(64, 8, 2000, 72000),
array(128, 64, 4000, 108000),
array(256, 128, 8000, 144000),
array(512, 64, 2000, 90000),
array(1024, 512, 4000, 126000),
array(2048, 1024, 8000, 162000),
array(16, 9, 2000, 90000),
array(32, 25, 4000, 126000),
array(64, 9, 2000, 72000),
array(128, 73, 4000, 108000),
array(256, 201, 8000, 144000),
array(512, 73, 2000, 90000),
array(1024, 585, 4000, 126000),
array(2048, 1609, 8000, 162000),
array(4096, 1, 3000, 108000),
array(8192, 4096, 6000, 144000),
array(16384, 8192, 12000, 180000),
array(32768, 4096, 3000, 126000),
array(65536, 32768, 6000, 162000),
array(131072, 65536, 12000, 198000)
array(8192, 4097, 6000, 144000),
array(16384, 12289, 12000, 180000),
array(32768, 4097, 3000, 126000),
array(65536, 36865, 6000, 162000),
array(131072, 102401, 12000, 198000)
),
//Défense
array(
array(1, 0, 1000, 36000),
array(2, 1, 2000, 72000),
array(4, 2, 4000, 108000),
array(4, 3, 4000, 108000),
array(8, 1, 2000, 72000),
array(16, 8, 4000, 108000),
array(32, 16, 8000, 144000),
array(64, 8, 3000, 108000),
array(128, 64, 6000, 144000),
array(256, 128, 12000, 180000),
array(16, 9, 4000, 108000),
array(32, 25, 8000, 144000),
array(64, 9, 3000, 108000),
array(128, 73, 6000, 144000),
array(256, 201, 12000, 180000),
array(512, 0, 1000, 36000),
array(1024, 512, 2000, 72000),
array(2048, 1024, 4000, 108000),
array(2048, 1536, 4000, 108000),
array(4096, 512, 2000, 72000),
array(8192, 4096, 4000, 108000),
array(16384, 8192, 8000, 144000),
array(32768, 4096, 3000, 108000),
array(65536, 32768, 6000, 144000),
array(131072, 65536, 12000, 180000),
array(8192, 4608, 4000, 108000),
array(16384, 12800, 8000, 144000),
array(32768, 4608, 3000, 108000),
array(65536, 37376, 6000, 144000),
array(131072, 102912, 12000, 180000),
array(262144, 512, 1000, 54000),
array(524288, 262144, 2000, 90000),
array(1048576, 524288, 4000, 126000),
array(2097152, 262144, 2000, 90000),
array(4194304, 2097152, 4000, 126000),
array(8388608, 4194304, 8000, 162000),
array(16777216, 2097152, 3000, 126000),
array(33554432, 16777216, 6000, 162000),
array(67108864, 33554432, 12000, 198000),
array(524288, 262656, 2000, 90000),
array(1048576, 786944, 4000, 126000),
array(2097152, 262656, 2000, 90000),
array(4194304, 2359808, 4000, 126000),
array(8388608, 6554112, 8000, 162000),
array(16777216, 2359808, 3000, 126000),
array(33554432, 19137024, 6000, 162000),
array(67108864, 52691456, 12000, 198000)
),
//Défense 2
array(
array(1, 0, 2000, 72000),
array(2, 1, 4000, 144000),
array(4, 2, 6000, 216000),
array(4, 3, 6000, 216000),
array(8, 0, 2000, 72000),
array(16, 8, 4000, 144000),
array(32, 16, 6000, 216000),
array(64, 18, 8000, 288000)
array(32, 24, 6000, 216000),
array(64, 27, 8000, 288000)
),
//Projets expérimentaux
array(
@ -917,22 +934,22 @@ $technologiesCALC = array(
array(
array(1, 0, 4000, 54000),
array(2, 1, 6000, 72000),
array(4, 2, 8000, 90000),
array(8, 4, 10000, 108000),
array(16, 8, 12000, 126000),
array(32, 16, 14000, 144000),
array(64, 32, 16000, 162000),
array(128, 64, 18000, 180000),
array(256, 128, 20000, 198000),
array(512, 256, 22000, 216000),
array(1024, 512, 24000, 234000),
array(2048, 1024, 26000, 252000),
array(4096, 2048, 28000, 270000),
array(8192, 4096, 30000, 288000),
array(16384, 8192, 32000, 306000),
array(32768, 16384, 34000, 324000),
array(65536, 32768, 36000, 342000),
array(131072, 65536, 38000, 360000)
array(4, 3, 8000, 90000),
array(8, 7, 10000, 108000),
array(16, 15, 12000, 126000),
array(32, 31, 14000, 144000),
array(64, 63, 16000, 162000),
array(128, 127, 18000, 180000),
array(256, 255, 20000, 198000),
array(512, 511, 22000, 216000),
array(1024, 1023, 24000, 234000),
array(2048, 2047, 26000, 252000),
array(4096, 4095, 28000, 270000),
array(8192, 8191, 30000, 288000),
array(16384, 16383, 32000, 306000),
array(32768, 32767, 34000, 324000),
array(65536, 65535, 36000, 342000),
array(131072, 131071, 38000, 360000)
)
);
?>