Version 1.14a

This commit is contained in:
nemunaire 2020-11-15 16:12:32 +01:00
commit dc48225dc9
1094 changed files with 189052 additions and 13889 deletions

View file

@ -0,0 +1,210 @@
<?php
require_once("Class/Donnees/interface.php");
class dAlliancesBatiments implements Donnees
{
public static function metal($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$metal = ceil(pow(1.5, $niveau)*68);
break;
case 1:
$metal = ceil(pow(1.6, $niveau)*53);
break;
case 2:
$metal = ceil(pow(1.5, $niveau)*242);
break;
case 3:
$metal = ceil(pow(1.5, $niveau)*92);
break;
case 4:
$metal = ceil(pow(1.73, $niveau)*800);
break;
case 5:
$metal = ceil(pow(2, $niveau)*750);
break;
default:
trigger_error("Batiment d'alliance ".$id." introuvable dans les données", E_USER_ERROR);
}
return $metal;
}
public static function cristal($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$cristal = ceil(pow(1.5, $niveau)*17);
break;
case 1:
$cristal = ceil(pow(1.6, $niveau)*27);
break;
case 2:
$cristal = ceil(pow(1.5, $niveau)*72);
break;
case 3:
$cristal = ceil(pow(1.5, $niveau)*37);
break;
case 4:
$cristal = ceil(pow(1.73, $niveau)*420);
break;
case 5:
$cristal = ceil(pow(2, $niveau)*500);
break;
default:
trigger_error("Batiment d'alliance ".$id." introuvable dans les données", E_USER_ERROR);
}
return $cristal;
}
public static function hydrogene($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$hydrogene = 0;
break;
case 1:
$hydrogene = 0;
break;
case 2:
$hydrogene = 0;
break;
case 3:
$hydrogene = 0;
break;
case 4:
$hydrogene = ceil(pow(1.68, $niveau)*285);
break;
case 5:
$hydrogene = 0;
break;
default:
trigger_error("Batiment d'alliance ".$id." introuvable dans les données", E_USER_ERROR);
}
return $hydrogene;
}
public static function credits($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$credits = ceil(pow(1.68, $niveau)*25);
break;
case 1:
$credits = ceil(pow(1.68, $niveau)*85);
break;
case 2:
$credits = ceil(pow(1.68, $niveau)*185);
break;
case 3:
$credits = ceil(pow(1.68, $niveau)*285);
break;
case 4:
$credits = ceil(pow(1.68, $niveau)*385);
break;
case 5:
$credits = ceil(pow(1.68, $niveau)*485);
break;
default:
trigger_error("Batiment d'alliance ".$id." introuvable dans les données", E_USER_ERROR);
}
return $credits;
}
public static function temps($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$sec = pow(1.5, $niveau)*6;
break;
case 1:
$sec = pow(1.55, $niveau)*6;
break;
case 2:
$sec = pow(1.624, $niveau)*6;
break;
case 3:
$sec = pow(1.597, $niveau)*6;
break;
case 4:
$sec = pow(1.7, $niveau)*6;
break;
case 5:
$sec = ceil(pow(2, $niveau)*720);
break;
default:
trigger_error("Batiment d'alliance ".$id." introuvable dans les données", E_USER_ERROR);
}
//Accélération du temps de construction
$sec /= VITESSE;
return $sec;
}
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
case 0:
//return "batimentcovieux4.jpg";
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
case 0:
//return "batimentcovieux4.jpg";
break;
}
return Donnees::image_humain_default;
}
else
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
public static function needed($id, surface $planete, $print = false)
{
$neededAlliancesBatiments =
array(
0,
array(
array('batiments', 0, 1)
),
array(
array('batiments', 0, 3)
),
array(
array('batiments', 0, 5)
),
array(
array('batiments', 0, 4)
),
array(
array('batiments', 0, 2)
)
);
if ($print)
return dDonnees::print_neededCheck($neededAlliancesBatiments[$id], $planete);
else
return dDonnees::neededCheck($neededAlliancesBatiments[$id], $planete);
}
}
?>

View file

@ -0,0 +1,517 @@
<?php
require_once("Class/Donnees/interface.php");
class dBatiments implements Donnees
{
public static function metal($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$metal = ceil(pow(1.5, $niveau)*68);
break;
case 1:
$metal = ceil(pow(1.6, $niveau)*53);
break;
case 2:
$metal = ceil(pow(1.5, $niveau)*242);
break;
case 3:
$metal = ceil(pow(1.5, $niveau)*92);
break;
case 4:
//$metal = ceil(pow(1.73, $niveau)*800);
$metal = ceil(pow(3, $niveau)*5000);
break;
case 5:
$metal = ceil(pow(2, $niveau)*750);
break;
case 6:
$metal = ceil(pow(2, $niveau)*200);
break;
case 7:
$metal = ceil(pow(2, $niveau)*520);
break;
case 8:
$metal = ceil(pow(2, $niveau)*600);
break;
case 9:
$metal = ceil(pow(2, $niveau)*200);
break;
case 10:
$metal = ceil(pow(2, $niveau)*400);
break;
case 11:
$metal = ceil(pow(1.7, $niveau)*600);
break;
case 12:
$metal = ceil(pow($niveau, 2.075)*1000+1500);
break;
case 13:
$metal = ceil(pow($niveau,2.8)*1000+299000);
break;
case 14:
$metal = ceil(pow($niveau, 2)*1200+140000);
break;
case 15:
$metal = ceil(pow($niveau, 2)*1000+80000);
break;
case 16:
$metal = ceil(pow($niveau, 2)*850+60000);
break;
case 17:
$metal = ceil(pow($niveau, 2.5)*500 -300);
break;
default:
trigger_error("Batiment ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
//Bonus technologique pour les mines
if ($id <= 3)
{
if ($planete->technologies[0] &262144)
{
$metal *= 0.85;
}
elseif ($planete->technologies[0] &131072)
{
$metal *= 0.9;
}
elseif ($planete->technologies[0] &65536)
{
$metal *= 0.95;
}
}
return $metal;
}
public static function cristal($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$cristal = ceil(pow(1.5, $niveau)*17);
break;
case 1:
$cristal = ceil(pow(1.6, $niveau)*27);
break;
case 2:
$cristal = ceil(pow(1.5, $niveau)*72);
break;
case 3:
$cristal = ceil(pow(1.5, $niveau)*37);
break;
case 4:
//$cristal = ceil(pow(1.73, $niveau)*420);
$cristal = ceil(pow(3, $niveau)*3000);
break;
case 5:
$cristal = ceil(pow(2, $niveau)*500);
break;
case 6:
$cristal = ceil(pow(2, $niveau)*150);
break;
case 7:
$cristal = ceil(pow(2, $niveau)*380);
break;
case 8:
$cristal = ceil(pow(2, $niveau)*450);
break;
case 9:
$cristal = ceil(pow(2, $niveau)*100);
break;
case 10:
$cristal = ceil(pow(2, $niveau)*260);
break;
case 11:
$cristal = ceil(pow(1.7, $niveau)*420);
break;
case 12:
$cristal = ceil(pow($niveau, 1.8)*1000+1000);
break;
case 13:
$cristal = ceil(pow($niveau,2.5)*1000+149000);
break;
case 14:
$cristal = ceil(pow($niveau, 2)*900+99000);
break;
case 15:
$cristal = ceil(pow($niveau, 2)*750+65000);
break;
case 16:
$cristal = ceil(pow($niveau, 2)*650+50000);
break;
case 17:
$cristal = ceil(pow($niveau, 2.4)*400-250);
break;
default:
trigger_error("Batiment ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
//Bonus technologique pour les mines
if ($id <= 3)
{
if ($planete->technologies[0] &262144)
{
$cristal *= 0.85;
}
elseif ($planete->technologies[0] &131072)
{
$cristal *= 0.9;
}
elseif ($planete->technologies[0] &65536)
{
$cristal *= 0.95;
}
}
return $cristal;
}
public static function hydrogene($id, $niveau, surface $planete)
{
switch($id)
{
case 0:
$hydrogene = 0;
break;
case 1:
$hydrogene = 0;
break;
case 2:
$hydrogene = 0;
break;
case 3:
$hydrogene = 0;
break;
case 4:
//$hydrogene = ceil(pow(1.68, $niveau)*285);
$hydrogene = 0;
break;
case 5:
$hydrogene = 0;
break;
case 6:
$hydrogene = 0;
break;
case 7:
$hydrogene = 0;
break;
case 8:
$hydrogene = 0;
break;
case 9:
$hydrogene = 0;
break;
case 10:
$hydrogene = 0;
break;
case 11:
$hydrogene = ceil(pow(1.7, $niveau)*100);
break;
case 12:
$hydrogene = 0;
break;
case 13:
$hydrogene = 0;
break;
case 14:
$hydrogene = ceil(pow($niveau, 2)*500+30000);
break;
case 15:
$hydrogene = 0;
break;
case 16:
$hydrogene = 0;
break;
case 17:
$hydrogene = 0;
break;
default:
trigger_error("Batiment ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
//Bonus technologique pour les mines
if ($id <= 3)
{
if ($planete->technologies[0] &262144)
{
$hydrogene *= 0.85;
}
elseif ($planete->technologies[0] &131072)
{
$hydrogene *= 0.9;
}
elseif ($planete->technologies[0] &65536)
{
$hydrogene *= 0.95;
}
}
return $hydrogene;
}
public static function credits($id, $niveau, surface $planete)
{
return 0;
}
public static function temps($id, $niveau, surface $planete, $demolition = false)
{
switch($id)
{
case 0:
$sec = pow(1.5, $niveau)*6;
break;
case 1:
$sec = pow(1.55, $niveau)*6;
break;
case 2:
$sec = pow(1.624, $niveau)*6;
break;
case 3:
$sec = pow(1.597, $niveau)*6;
break;
case 4:
$sec = pow(1.7, $niveau)*6;
break;
case 5:
$sec = ceil(pow(2, $niveau)*720);
break;
case 6:
$sec = ceil(pow(2, $niveau)*720);
break;
case 7:
$sec = ceil(pow(2, $niveau)*420);
break;
case 8:
$sec = ceil(pow(2, $niveau)*600);
break;
case 9:
$sec = ceil(pow(2, $niveau)*300);
break;
case 10:
$sec = ceil(pow(2, $niveau)*1200);
break;
case 11:
$sec = ceil((pow(1.9, $niveau)*800));
break;
case 12:
$sec = ceil(pow($niveau, 2.5)*60+4)*60;
break;
case 13:
$sec = ceil(pow($niveau, 1.6)*60+60)*60;
break;
case 14:
$sec = ceil(pow($niveau, 2)*5+3)*60;
break;
case 15:
$sec = pow($niveau, 2)*240;
break;
case 16:
$sec = pow($niveau, 2)*180;
break;
case 17:
$sec = pow($niveau, 1.65)*3600;
break;
default:
trigger_error("Batiment ".$id." introuvable dans les données", E_USER_ERROR);
}
//On applique le bonus de temps des ingénieurs et des centrales informatiques
if ($id == 11 && $planete->casernes[7])
$sec /= (1.0025 * $planete->casernes[7]);
elseif ($id != 11 && ($planete->casernes[7] || $planete->batiments[11]))
$sec /= (pow(1.23, $planete->batiments[11]) + 1.0025 * $planete->casernes[7]);
//Accélération du temps de construction
$sec /= VITESSE;
if ($demolition)
return $sec * Donnees::coeff_demolition;
else
return $sec;
}
public static function type($id)
{
switch($id)
{
case 0:
case 1:
case 2:
case 3:
case 4:
return 1;
case 6:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 16:
case 17:
case 18:
return 2;
case 5:
case 7:
case 8:
case 9:
return 4;
return 6;
default:
trigger_error("Bâtiment ".$id." introuvable dans les données", E_USER_ERROR);
}
}
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
case 0:
return "batimentcovieux4.jpg";
break;
case 1:
return "cristaloo3.png";
break;
case 2:
return "powersupplycoviejq1.jpg";
break;
case 3:
return "solaire.jpg";
break;
case 4:
return "sanstitrevi7.jpg";
break;
case 5:
return "oeilduprophetewj6.jpg";
break;
case 6:
return "covielabocn5.jpg";
break;
case 7:
return "chantierterrestrehg1.jpg";
break;
case 8:
return "sanstitretruecolor09zn6.jpg";
break;
case 9:
return "caserncov0ry.jpg";
break;
case 10:
return "stockagebasement1cs10bl.jpg";
break;
case 11:
return "ordianteur_hologramme.jpg";
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
case 0:
return "mine_m.jpg";
break;
case 1:
return "mine_c.png";
break;
case 2:
return "synchroniseur.jpg";
break;
case 3:
return "centrale solaire.jpg";
break;
case 4:
return "centrale electrique.jpg";
break;
case 5:
return "baseradardl3.jpg";
break;
case 6:
return "recherches.jpg";
break;
case 7:
return "chantierterrestrecopybj8.jpg";
break;
case 8:
return "chantier spatial.jpg";
break;
case 9:
return "ecole militaire.jpg";
break;
case 10:
return "stockage.jpg";
break;
case 11:
return "search0yp.jpg";
break;
}
return Donnees::image_humain_default;
}
else
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
public static function needed($id, surface $planete, $print = false)
{
$neededBatiments =
array (
0,
0,
0,
0,
array(
array("batiments", 3, 12),
array("batiments_max", 4, 4)
),
0,
0,
array(
array("technologies", 2,3, 9)
),
array(
array("technologies", 2,4, 17)
),
0,
0,
array(
array("technologies", 1,12, 4096)
),
0,
array(
array("technologies", 3,8, 256)
),
array(
array("technologies", 7,12, 4096)
),
array(
array("technologies", 3,6, 64)
),
array(
array("technologies", 3,7, 128)
),
0
);
if ($print)
return dDonnees::print_neededCheck($neededBatiments[$id], $planete);
else
return dDonnees::neededCheck($neededBatiments[$id], $planete);
}
}
?>

View file

@ -0,0 +1,301 @@
<?php
require_once("Class/Donnees/interface.php");
class dCaserne implements Donnees
{
public static function metal($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$metal = 80;
break;
case 1:
$metal = 110;
break;
case 2:
$metal = 150;
break;
case 3:
$metal = 220;
break;
case 4:
$metal = 180;
break;
case 5:
$metal = 25000;
break;
case 6:
$metal = 100;
break;
case 7:
$metal = 90;
break;
case 8:
$metal = 300;
break;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$metal *= 0.9;
return $metal * $nombre;
}
public static function cristal($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$cristal = 45;
break;
case 1:
$cristal = 90;
break;
case 2:
$cristal = 105;
break;
case 3:
$cristal = 150;
break;
case 4:
$cristal = 100;
break;
case 5:
$cristal = 10000;
break;
case 6:
$cristal = 100;
break;
case 7:
$cristal = 105;
break;
case 8:
$cristal = 250;
break;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$cristal *= 0.9;
return $cristal * $nombre;
}
public static function hydrogene($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$hydrogene = 0;
break;
case 1:
$hydrogene = 0;
break;
case 2:
$hydrogene = 20;
break;
case 3:
$hydrogene = 0;
break;
case 4:
$hydrogene = 0;
break;
case 5:
$hydrogene = 0;
break;
case 6:
$hydrogene = 0;
break;
case 7:
$hydrogene = 0;
break;
case 8:
$hydrogene = 0;
break;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$hydrogene *= 0.9;
return $hydrogene * $nombre;
}
public static function credits($id, $nombre, surface $planete)
{
return 0;
}
public static function temps($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$temps = 60;
$moins = 1;
break;
case 1:
$temps = 240;
$moins = 2;
break;
case 2:
$temps = 240;
$moins = 3;
break;
case 3:
$temps = 720;
$moins = 5;
break;
case 4:
$temps = 300;
$moins = 3;
break;
case 5:
$temps = 29700;
$moins = 10;
break;
case 6:
$temps = 90;
$moins = 2;
break;
case 7:
$temps = 90;
$moins = 2;
break;
case 8:
$temps = 900;
$moins = 5;
break;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte de la vitesse
$temps /= VITESSE;
//On tient compte des bonus
return ceil($temps/pow(1.25, ($planete->batiments[9] - $moins))) * $nombre;
}
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
array('','','','','','','','','');
switch($id)
{
case 0:
return "grunt1.jpg";
break;
case 1:
return "jackal.jpg";
break;
case 2:
return "94990342wb4.jpg";
break;
case 3:
return "98004530fx3.jpg";
break;
case 4:
return "88091275ja8.jpg";
break;
case 5:
return "hunter1.jpg";
break;
case 6:
return "81770345oo4.jpg";
break;
case 7:
return "88218731ts1.jpg";
break;
case 8:
return "72188202fg9.jpg";
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
case 0:
return "marines.jpg";
break;
case 1:
return "marinehf0.jpg";
break;
case 2:
return "grenadier.jpg";
break;
case 3:
return "TCAO2.jpg";
break;
case 4:
return "sniper.jpg";
break;
case 5:
return "spartan.jpg";
break;
case 6:
return "ingenieurs.jpg";
break;
case 7:
return "exosquelettehbpb2.jpg";
break;
}
return Donnees::image_humain_default;
}
else
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
public static function needed($id, surface $planete, $print = false)
{
$neededCaserne =
array(
array(
array('batiments', 9, 1)
),
array(
array('batiments', 9, 2)
),
array(
array('batiments', 9, 3)
),
array(
array('batiments', 9, 5)
),
array(
array('batiments', 9, 3)
),
array(
array('batiments', 9, 10)
),
array(
array('batiments', 9, 2)
),
array(
array('batiments', 9, 2)
),
array(
array('batiments', 9, 5)
)
);
if ($print)
return dDonnees::print_neededCheck($neededCaserne[$id], $planete);
else
return dDonnees::neededCheck($neededCaserne[$id], $planete);
}
}
?>

View file

@ -0,0 +1,202 @@
<?php
if(!defined('ONYX')) exit;
interface Donnees
{
const image_covenant_default = "../covenant_na.jpg";
const image_humain_default = "../humain_na.jpg";
const coeff_demolition = 0.6;
public static function metal($id, $niveau, surface $planete);
public static function cristal($id, $niveau, surface $planete);
public static function hydrogene($id, $niveau, surface $planete);
public static function credits($id, $niveau, surface $planete);
public static function temps($id, $niveau, surface $planete);
public static function image($id, surface $planete);
public static function needed($id, surface $planete, $print = false);
}
class dDonnees{
static function tailleFile(surface $planete)
{
//On calcul la taille maximale de la file d'attente
if (!empty($planete->technologies[1]))
{
if (($planete->technologies[1] &131072) == 131072) return 5;
elseif (($planete->technologies[1] &65536) == 65536) return 4;
elseif (($planete->technologies[1] &32768) == 32768) return 3;
else return 2;
}
else return 3; //Au cas où il n'y ait pas de technologie sur le lieu, on fixe la taille de la file d'attente
}
static function neededCheck($tableau, surface $planete)
{
if (!is_array($tableau)) return true;
else
{
foreach ($tableau as $need)
{
switch($need[0])
{
case 'batiments':
if (get_class($planete) == "Planete" && $planete->batiments[$need[1]] < $need[2])
return false;
break;
case 'batiments_max':
if (get_class($planete) == "Planete" && $planete->batiments[$need[1]] > $need[2])
return false;
break;
case 'technologies':
if (((int)$planete->technologies[$need[1]]& $need[3]) != $need[3])
return false;
break;
case 'casernes':
if ($planete->casernes[$need[1]] < $need[2])
return false;
break;
case 'terrestres':
if ($planete->terrestres[$need[1]] < $need[2])
return false;
break;
case 'vaisseaux':
if ($planete->vaisseaux[$need[1]] < $need[2])
return false;
break;
default:
return false;
}
}
return true;
}
}
static function print_neededCheck($tableau, surface $planete)
{
global $LANG;
$race = $planete->race;
if (!is_array($tableau)) return 'Débloqué';
else
{
$return = '';
foreach ($tableau as $need)
{
switch($need[0])
{
case 'batiments':
if ($planete->batiments[$need[1]] < $need[2])
$return .= '<span class="lack">'.ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' niveau '.$need[2].' (batiment)</span><br />';
else
$return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' niveau '.$need[2].' (batiment)<br />';
break;
case 'batiments_max':
if ($planete->batiments[$need[1]] > $need[2])
$return .= '<span class="lack">'.ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' < niveau '.($need[2]+1).' (batiment)</span><br />';
else
$return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' < niveau '.($need[2]+1).' (batiment)<br />';
break;
case 'technologies':
if (((int)$planete->technologies[$need[1]]& $need[3]) != $need[3])
$return .= '<span class="lack">'.$LANG[$race]["technologies"]["noms_sing"][$need[1]][$need[2]].' (technologie)</span><br />';
else
$return .= $LANG[$race]["technologies"]["noms_sing"][$need[1]][$need[2]].' (technologie)<br />';
break;
case 'casernes':
if ($planete->casernes[$need[1]] < $need[2])
$return .= '<span class="lack">'.$need[2].' '.$LANG[$race]["caserne"]["noms_pluriel"][$need[1]].' (unité de la caserne)</span><br />';
else
$return .= $need[2].' '.$LANG[$race]["caserne"]["noms_pluriel"][$need[1]].' (unité de la caserne)<br />';
break;
case 'terrestres':
if ($planete->terrestres[$need[1]] < $need[2])
$return .= '<span class="lack">'.$need[2].' '.$LANG[$race]["terrestre"]["noms_pluriel"][$need[1]].' (unité du chantier terrestre)</span><br />';
else
$return .= $need[2].' '.$LANG[$race]["terrestre"]["noms_pluriel"][$need[1]].' (unité du chantier terrestre)<br />';
break;
case 'vaisseaux':
if ($planete->vaisseaux[$need[1]] < $need[2])
$return .= '<span class="lack">'.$need[2].' '.$LANG[$race]["vaisseaux"]["noms_pluriel"][$need[1]].' (unité du chantier spatial)</span><br />';
else
$return .= $need[2].' '.$LANG[$race]["vaisseaux"]["noms_pluriel"][$need[1]].' (unité du chantier spatial)<br />';
break;
}
}
return $return;
}
}
static function nameVAR($name)
{
if ($name == "alli_batiments")
return "alli_batiments";
elseif ($name == "batiments")
return "batiments";
elseif ($name == "technologies")
return "technologies";
elseif ($name == "casernes")
return "caserne";
elseif ($name == "terrestres")
return "terrestre";
elseif ($name == "vaisseaux")
return "spatial";
elseif ($name == "coeff_bat")
return "coeff";
}
static function capaciteVilles(surface $planete)
{
return $planete->cases * pow($planete->batiments[17], -3) + 10;
}
static function nameVilles($level)
{
switch ($level)
{
case 0:
case 1:
case 2:
return "Poste d'observation taille ".($level+1);
break;
case 3:
case 4:
case 5:
return "Poste avancé taille ".($level-2);
break;
case 6:
case 7:
case 8:
return "Colonie taille ".($level-5);
break;
case 9:
case 10:
case 11:
case 12:
return "Ville taille ".($level-8);
break;
case 13:
case 14:
case 15:
return "Cité taille ".($level-12);
break;
case 16:
case 17:
case 18:
return "Grande cité taille ".($level-15);
break;
case 19:
return "Mégapole";
break;
case 20:
return "Mégalopole";
break;
default:
trigger_error("Taille de ville incorrect !");
}
}
}
?>

View file

@ -0,0 +1,631 @@
<?php
require_once("Class/Donnees/interface.php");
class dSpatial implements Donnees
{
public static function metal($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$metal = 1000;
break;
case 1:
$metal = 4000;
break;
case 2:
$metal = 4000;
break;
case 3:
$metal = 9000;
break;
case 4:
$metal = 9000;
break;
case 5:
$metal = 1000;
break;
case 6:
$metal = 15000;
break;
case 7:
$metal = 1800;
break;
case 8:
$metal = 2550;
break;
case 9:
$metal = 12950;
break;
case 10:
$metal = 26000;
break;
case 11:
$metal = 60000;
break;
case 12:
$metal = 500000;
break;
case 13:
$metal = 500000;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$metal *= 0.9;
return $metal * $nombre;
}
public static function cristal($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$cristal = 800;
break;
case 1:
$cristal = 3000;
break;
case 2:
$cristal = 3000;
break;
case 3:
$cristal = 9000;
break;
case 4:
$cristal = 9000;
break;
case 5:
$cristal = 1200;
break;
case 6:
$cristal = 9000;
break;
case 7:
$cristal = 1000;
break;
case 8:
$cristal = 1350;
break;
case 9:
$cristal = 16400;
break;
case 10:
$cristal = 6900;
break;
case 11:
$cristal = 40000;
break;
case 12:
$cristal = 400000;
break;
case 13:
$cristal = 400000;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$cristal *= 0.9;
return $cristal * $nombre;
}
public static function hydrogene($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$hydrogene = 0;
break;
case 1:
$hydrogene = 0;
break;
case 2:
$hydrogene = 0;
break;
case 3:
$hydrogene = 1000;
break;
case 4:
$hydrogene = 1000;
break;
case 5:
$hydrogene = 100;
break;
case 6:
$hydrogene = 1000;
break;
case 7:
$hydrogene = 0;
break;
case 8:
$hydrogene = 65;
break;
case 9:
$hydrogene = 100;
break;
case 10:
$hydrogene = 1600;
break;
case 11:
$hydrogene = 3000;
break;
case 12:
$hydrogene = 250000;
break;
case 13:
$hydrogene = 250000;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$hydrogene *= 0.9;
return $hydrogene * $nombre;
}
public static function credits($id, $nombre, surface $planete)
{
return 0;
}
public static function temps($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$temps = 1080;
$moins = 1;
break;
case 1:
$temps = 6300;
$moins = 5;
break;
case 2:
$temps = 6300;
$moins = 5;
break;
case 3:
$temps = 8280;
$moins = 5;
break;
case 4:
$temps = 8280;
$moins = 5;
break;
case 5:
$temps = 1440;
$moins = 3;
break;
case 6:
$temps = 7380;
$moins = 5;
break;
case 7:
$temps = 1200;
$moins = 1;
break;
case 8:
$temps = 4680;
$moins = 3;
break;
case 9:
$temps = 16800;
$moins = 6;
break;
case 10:
$temps = 16800;
$moins = 6;
break;
case 11:
$temps = 32400;
$moins = 8;
break;
case 12:
$temps = 117000;
$moins = 12;
break;
case 13:
$temps = 117000;
$moins = 12;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte de la vitesse
$temps /= VITESSE;
//On tient compte des bonus
if (SURFACE == "planete")
return ceil($temps/pow(1.25, ($planete->batiments[8] - $moins))) * $nombre;
else
return ($temps * $nombre);
}
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
case 0:
return "cargo2pb6.jpg";
break;
case 1:
return "sanstitre2copiegw9.jpg";
break;
case 2:
return "colocopiers4.jpg";
break;
case 3:
return "sonde_despionnage1.jpg";
break;
case 4:
return "chasseurlourd7id.jpg";
break;
case 5:
return "contactharvestbynameleszk3.jpg";
break;
case 6:
return "vaisseauuu0.jpg";
break;
case 7:
return "vaisseaudebataille9na.jpg";
break;
case 8:
return "pv.jpg";
break;
case 9:
return "stationorbitalezt7.jpg";
break;
case 10:
return "citecovenant.jpg";
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
case 0:
return "csnucargoparabola2mc9.jpg";
break;
case 1:
return "csnucargoladen2al8.jpg";
break;
case 2:
return "colonisation.jpg";
break;
case 3:
//return "";
break;
case 4:
return "longsworduf9.jpg";
break;
case 5:
//return "";
break;
case 6:
//return "";
break;
case 7:
return "frgatecopiegw1.jpg";
break;
case 8:
//return "";
break;
case 9:
return "halcyo15.jpg";
break;
case 10:
return "qsu169.jpg";
break;
}
return Donnees::image_humain_default;
}
else
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
public static function needed($id, surface $planete, $print = false)
{
$neededSpatial =
array(
array(
array('batiments', 8, 1),
array('technologies', 0,3, 8)
),
array(
array('batiments', 8, 5),
array('technologies', 0,3, 8),
array('technologies', 1,6, 64)
),
array(
array('batiments', 8, 5),
array('technologies', 8,0, 1)
),
array(
array('batiments', 8, 5),
array('technologies', 7,4, 16)
),
array(
array('batiments', 8, 5),
array('technologies', 7,0, 1)
),
array(
array('batiments', 8, 3),
array('technologies', 7,1, 2)
),
array(
array('batiments', 8, 5),
array('technologies', 7,2, 4)
),
array(
array('batiments', 8, 1),
array('technologies', 7,3, 8)
),
array(
array('batiments', 8, 3),
array('technologies', 7,5, 32)
),
array(
array('batiments', 8, 6),
array('technologies', 7,6, 64)
),
array(
array('batiments', 8, 6),
array('technologies', 7,1, 128)
),
array(
array('batiments', 8, 8),
array('technologies', 7,8, 256)
),
array(
array('batiments', 8, 10),
array('technologies', 7,9, 512)
),
array(
array('batiments', 8, 10),
array('technologies', 7,10, 1024)
)
);
if ($print)
return dDonnees::print_neededCheck($neededSpatial[$id], $planete);
else
return dDonnees::neededCheck($neededSpatial[$id], $planete);
}
public static function tailleCales($id)
{
switch($id)
{
case 0:
$vitesse = 10000;
break;
case 1:
$vitesse = 50000;
break;
case 2:
$vitesse = 25000;
break;
case 3:
$vitesse = 25000;
break;
case 4:
$vitesse = 100;
break;
case 5:
$vitesse = 50;
break;
case 6:
$vitesse = 200;
break;
case 7:
$vitesse = 400;
break;
case 8:
$vitesse = 800;
break;
case 9:
$vitesse = 1000;
break;
case 10:
$vitesse = 1500;
break;
case 11:
$vitesse = 50000;
break;
case 12:
$vitesse = 100000;
break;
case 13:
$vitesse = 500;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
return $vitesse;
}
public static function vitesseP($id)
{
switch($id)
{
case 0:
$vitesse = 1080;
break;
case 1:
$vitesse = 6300;
break;
case 2:
$vitesse = 6300;
break;
case 3:
$vitesse = 8280;
break;
case 4:
$vitesse = 8280;
break;
case 5:
$vitesse = 1440;
break;
case 6:
$vitesse = 7380;
break;
case 7:
$vitesse = 1200;
break;
case 8:
$vitesse = 4680;
break;
case 9:
$vitesse = 16800;
break;
case 10:
$vitesse = 16800;
break;
case 11:
$vitesse = 32400;
break;
case 12:
$vitesse = 117000;
break;
case 13:
$vitesse = 117000;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
return $vitesse;
}
public static function vitesseS($id)
{
switch($id)
{
case 0:
$vitesse = 1080;
break;
case 1:
$vitesse = 6300;
break;
case 2:
$vitesse = 6300;
break;
case 3:
$vitesse = 8280;
break;
case 4:
$vitesse = 8280;
break;
case 5:
$vitesse = 1440;
break;
case 6:
$vitesse = 7380;
break;
case 7:
$vitesse = 1200;
break;
case 8:
$vitesse = 4680;
break;
case 9:
$vitesse = 16800;
break;
case 10:
$vitesse = 16800;
break;
case 11:
$vitesse = 32400;
break;
case 12:
$vitesse = 117000;
break;
case 13:
$vitesse = 117000;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
return $vitesse;
}
public static function vitesseG($id)
{
switch($id)
{
case 0:
$vitesse = 1080;
break;
case 1:
$vitesse = 6300;
break;
case 2:
$vitesse = 6300;
break;
case 3:
$vitesse = 8280;
break;
case 4:
$vitesse = 8280;
break;
case 5:
$vitesse = 1440;
break;
case 6:
$vitesse = 7380;
break;
case 7:
$vitesse = 1200;
break;
case 8:
$vitesse = 4680;
break;
case 9:
$vitesse = 16800;
break;
case 10:
$vitesse = 16800;
break;
case 11:
$vitesse = 32400;
break;
case 12:
$vitesse = 117000;
break;
case 13:
$vitesse = 117000;
break;
default:
trigger_error("Vaisseau ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
return $vitesse;
}
}
?>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,477 @@
<?php
require_once("Class/Donnees/interface.php");
class dTerrestre implements Donnees
{
public static function metal($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$cristal = 300;
break;
case 1:
$cristal = 420;
break;
case 2:
$cristal = 600;
break;
case 3:
$cristal = 950;
break;
case 4:
$cristal = 240;
break;
case 5:
$cristal = 260;
break;
case 6:
$cristal = 420;
break;
case 7:
$cristal = 500;
break;
case 8:
$cristal = 230;
break;
case 9:
$cristal = 650;
break;
case 10:
$cristal = 1750;
break;
case 11:
$cristal = 3750;
break;
case 12:
$cristal = 9500;
break;
case 13:
$cristal = 9500;
break;
case 14:
$cristal = 9500;
break;
case 15:
$cristal = 9500;
break;
default:
trigger_error("Unité ".$unite." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$cristal *= 0.9;
return $cristal * $nombre;
}
public static function cristal($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$cristal = 300;
break;
case 1:
$cristal = 420;
break;
case 2:
$cristal = 600;
break;
case 3:
$cristal = 950;
break;
case 4:
$cristal = 240;
break;
case 5:
$cristal = 260;
break;
case 6:
$cristal = 420;
break;
case 7:
$cristal = 500;
break;
case 8:
$cristal = 230;
break;
case 9:
$cristal = 650;
break;
case 10:
$cristal = 1750;
break;
case 11:
$cristal = 3750;
break;
case 12:
$cristal = 9500;
break;
case 13:
$cristal = 9500;
break;
case 14:
$cristal = 9500;
break;
case 15:
$cristal = 9500;
break;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$cristal *= 0.9;
return $cristal * $nombre;
}
public static function hydrogene($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$hydrogene = 0;
break;
case 1:
$hydrogene = 0;
break;
case 2:
$hydrogene = 0;
break;
case 3:
$hydrogene = 0;
break;
case 4:
$hydrogene = 0;
break;
case 5:
$hydrogene = 0;
break;
case 6:
$hydrogene = 0;
break;
case 7:
$hydrogene = 0;
break;
case 8:
$hydrogene = 0;
break;
case 9:
$hydrogene = 80;
break;
case 10:
$hydrogene = 100;
break;
case 11:
$hydrogene = 120;
break;
case 12:
$hydrogene = 1500;
break;
case 13:
$hydrogene = 1500;
break;
case 14:
$hydrogene = 1500;
break;
case 15:
$hydrogene = 1500;
break;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte des bonus
if (isset($planete->politique) && $planete->politique == 1)
$hydrogene *= 0.9;
return $hydrogene * $nombre;
}
public static function credits($id, $nombre, surface $planete)
{
return 0;
}
public static function temps($id, $nombre, surface $planete)
{
switch($id)
{
case 0:
$temps = 720;
$moins = 1;
break;
case 1:
$temps = 2040;
$moins = 3;
break;
case 2:
$temps = 7200;
$moins = 4;
break;
case 3:
$temps = 3960;
$moins = 6;
break;
case 4:
$temps = 600;
$moins = 1;
break;
case 5:
$temps = 1080;
$moins = 2;
break;
case 6:
$temps = 2160;
$moins = 3;
break;
case 7:
$temps = 4680;
$moins = 5;
break;
case 8:
$temps = 1080;
$moins = 1;
break;
case 9:
$temps = 2040;
$moins = 3;
break;
case 10:
$temps = 7200;
$moins = 4;
break;
case 11:
$temps = 3960;
$moins = 7;
break;
case 12:
$temps = 3960;
$moins = 9;
break;
case 13:
$temps = 3960;
$moins = 9;
break;
case 14:
$temps = 3960;
$moins = 9;
break;
case 15:
$temps = 3960;
$moins = 9;
break;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
//On tient compte de la vitesse
$temps /= VITESSE;
//On tient compte des bonus
return ceil($temps/pow(1.25, ($planete->batiments[7] - $moins))) * $nombre;
}
public static function type($id)
{
switch($id)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
return true;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
return false;
default:
trigger_error("Unité ".$id." introuvable dans les données", E_USER_ERROR);
}
}
public static function image($id, surface $planete)
{
if ($planete->race == "covenant")
{
switch($id)
{
//Unités terrestres
case 0:
return "bansheeqp0.jpg";
break;
case 1:
return "spirit1.jpg";
break;
case 2:
return "phantomfu2.jpg";
break;
case 3:
return "boardingcraft.jpg";
break;
case 4:
return "ghostic1.jpg";
break;
case 5:
return "shadow.jpg";
break;
case 6:
return "spectre.jpg";
break;
case 7:
return "wraith.jpg";
break;
//Défenses
case 8:
return "shade.jpg";
break;
case 9:
return "defcovie.jpg";
break;
case 10:
return "tourellebarreau.jpg";
break;
case 11:
return "tourelle.jpg";
break;
case 12:
return "lanceur_torpilles.jpg";
break;
}
return Donnees::image_covenant_default;
}
elseif ($planete->race == "humain")
{
switch($id)
{
//Unités terrestres
case 0:
return "csnusparrowhawkkp4.jpg";
break;
case 1:
return "pelican.jpg";
break;
case 2:
return "csnushortswordad3.jpg";
break;
case 3:
return "albatross.jpg";
break;
case 4:
return "warthog-vrl.jpg";
break;
case 5:
return "M12G1_LAAV_Warthog.jpg";
break;
case 6:
return "M12A1_LAAV_Warthog.jpg";
break;
case 7:
return "scorpionN.jpg";
break;
//Défenses
case 8:
//return "";
break;
case 9:
//return "";
break;
case 10:
//return "";
break;
case 11:
//return "";
break;
}
return Donnees::image_humain_default;
}
else
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
public static function needed($id, surface $planete, $print = false)
{
$neededTerrestre = array(
array(
array('batiments', 7, 1)
),
array(
array('batiments', 7, 3)
),
array(
array('batiments', 7, 4)
),
array(
array('batiments', 7, 6)
),
array(
array('batiments', 7, 1)
),
array(
array('batiments', 7, 2)
),
array(
array('batiments', 7, 3)
),
array(
array('batiments', 7, 5)
),
//Défenses
array(
array('batiments', 7, 1),
array('technologies', 6, 0, 1)
),
array(
array('batiments', 7, 3),
array('technologies', 6, 3, 8)
),
array(
array('batiments', 7, 4),
array('technologies', 6, 1, 2)
),
array(
array('batiments', 7, 4),
array('technologies', 6, 4, 16)
),
array(
array('batiments', 7, 8),
array('technologies', 6, 2, 4)
),
array(
array('batiments', 7, 8),
array('technologies', 6, 5, 32)
),
array(
array('batiments', 7, 8),
array('technologies', 6, 6, 64)
),
array(
array('batiments', 7, 10),
array('technologies', 7, 11, 2048)
)
);
if ($print)
return dDonnees::print_neededCheck($neededTerrestre[$id], $planete);
else
return dDonnees::neededCheck($neededTerrestre[$id], $planete);
}
}
?>