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, Planete $planete) { if (!is_array($tableau)) return true; else { foreach ($tableau as $need) { switch($need[0]) { case 'batiments': if ($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, Planete $planete, $race) { global $LANG; 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 .= ''.ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' niveau '.$need[2].' (batiment)
'; else $return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' niveau '.$need[2].' (batiment)
'; break; case 'technologies': if (((int)$planete->technologies[$need[1]]& $need[3]) != $need[3]) $return .= ''.$LANG[$race]["technologies"]["noms_sing"][$need[1]][$need[2]].' (technologie)
'; else $return .= $LANG[$race]["technologies"]["noms_sing"][$need[1]][$need[2]].' (technologie)
'; break; case 'casernes': if ($planete->casernes[$need[1]] < $need[2]) $return .= ''.$need[2].' '.$LANG[$race]["caserne"]["noms_pluriel"][$need[1]].' (unité de la caserne)
'; else $return .= $need[2].' '.$LANG[$race]["caserne"]["noms_pluriel"][$need[1]].' (unité de la caserne)
'; break; case 'terrestres': if ($planete->terrestres[$need[1]] < $need[2]) $return .= ''.$need[2].' '.$LANG[$race]["terrestre"]["noms_pluriel"][$need[1]].' (unité du chantier terrestre)
'; else $return .= $need[2].' '.$LANG[$race]["terrestre"]["noms_pluriel"][$need[1]].' (unité du chantier terrestre)
'; break; case 'vaisseaux': if ($planete->vaisseaux[$need[1]] < $need[2]) $return .= ''.$need[2].' '.$LANG[$race]["vaisseaux"]["noms_pluriel"][$need[1]].' (unité du chantier spatial)
'; else $return .= $need[2].' '.$LANG[$race]["vaisseaux"]["noms_pluriel"][$need[1]].' (unité du chantier spatial)
'; break; } } return $return; } } static function metalBatiments($batiment, $niveau, Planete $planete) { switch($batiment) { 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; 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 ".$batiment." introuvable dans les données", E_USER_ERROR); } //On tient compte des bonus //Bonus technologique pour les mines if ($batiment <= 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; } static function cristalBatiments($batiment, $niveau, Planete $planete) { switch($batiment) { 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; 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 ".$batiment." introuvable dans les données", E_USER_ERROR); } //On tient compte des bonus //Bonus technologique pour les mines if ($batiment <= 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; } static function hydrogeneBatiments($batiment, $niveau, Planete $planete) { switch($batiment) { 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; 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 ".$batiment." introuvable dans les données", E_USER_ERROR); } //On tient compte des bonus //Bonus technologique pour les mines if ($batiment <= 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; } static function tempsBatiments($batiment, $niveau, Planete $planete) { switch($batiment) { 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 ".$batiment." introuvable dans les données", E_USER_ERROR); } //On applique le bonus de temps des ingénieurs et des centrales informatiques if ($batiment == 11 && $planete->casernes[7]) $sec /= 0.0025 * $planete->casernes[7]; elseif ($planete->casernes[7]) $sec /= pow(1.23, $planete->batiments[11]) + 0.0025 * $planete->casernes[7]; //Accélération du temps de construction $sec /= VITESSE; return $sec; } static function neededBatiments($batiment, Planete $planete) { global $neededBatiments; return Donnee::neededCheck($neededBatiments[$batiment], $planete); } static function print_neededBatiments($batiment, Planete $planete, $race) { global $neededBatiments; return Donnee::print_neededCheck($neededBatiments[$batiment], $planete, $race); } static function donneeTechnologie($branche, $idTechnologie, $retour, Planete $planete) { //TODO : Faire un switch pour ne renvoyer le tableau que de la branche plutôt que ce tableau avec l'intégralité des branches. $technologies_donnees = array( //Industrie array( array(1, 0, 1000, 54000), array(2, 1, 2000, 90000), array(4, 3, 4000, 126000), array(8, 1, 4000, 126000), array(16, 1, 2000, 72000), array(32, 17, 4000, 108000), array(64, 49, 8000, 144000), array(128, 1, 2000, 72000), array(256, 129, 4000, 108000), array(512, 385, 8000, 144000), array(1024, 1, 2000, 72000), 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, 3, 4000, 126000), array(8, 1, 2000, 90000), 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, 12288, 4000, 126000), array(32768, 4096, 2000, 54000), 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, 3, 4000, 108000), array(8, 1, 4000, 126000), array(16, 1, 4000, 126000), array(32, 25, 4000, 126000), array(64, 57, 8000, 162000), array(128, 121, 16000, 198000) ), //Politique array( array(1, 0, 1000, 36000), array(2, 1, 2000, 72000), array(4, 3, 4000, 108000), array(8, 1, 2000, 72000), array(16, 9, 4000, 108000), array(32, 25, 8000, 144000), array(64, 9, 4000, 126000), array(128, 8, 6000, 162000), 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(8192, 4608, 4000, 108000), array(16384, 12800, 8000, 144000) ), //Armement array( array(1, 0, 1000, 36000), array(2, 1, 2000, 72000), array(4, 3, 4000, 108000), array(8, 1, 1000, 54000), 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, 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, 3, 4000, 108000), array(8, 1, 2000, 72000), 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, 1536, 4000, 108000), array(4096, 512, 2000, 72000), 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, 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, 3, 6000, 216000), array(8, 0, 2000, 72000), array(16, 8, 4000, 144000), array(32, 24, 6000, 216000), array(64, 27, 8000, 288000) ), //Projets expérimentaux array( array(1, 0, 2000, 36000), array(2, 1, 4000, 72000), array(4, 2, 4000, 108000), array(8, 4, 6000, 144000), array(16, 8, 6000, 144000), array(32, 8, 8000, 180000), array(64, 32, 10000, 216000), array(128, 64, 10000, 234000), array(256, 128, 12000, 288000), array(512, 256, 14000, 324000), array(1024, 64, 14000, 342000), array(2048, 256, 16000, 360000), array(4096, 576, 18000, 396000), array(8192, 4096, 20000, 432000), array(16384, 8192, 22000, 504000) ), //Technologie expansion array( array(1, 0, 4000, 54000), array(2, 1, 6000, 72000), 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) ) ); if ($retour == "metal") return 0; elseif ($retour == "cristal") return 0; elseif ($retour == "hydrogene") return 0; elseif ($retour == "credits") return $technologies_donnees[$branche][$idTechnologie][2]; elseif ($retour == "temps") return $technologies_donnees[$branche][$idTechnologie][3]/VITESSE; elseif ($retour == "needed") return $technologies_donnees[$branche][$idTechnologie][1]; elseif ($retour == "id") return $technologies_donnees[$branche][$idTechnologie][0]; elseif ($retour == "array") return array(0, 0, 0, $technologies_donnees[$branche][$idTechnologie][2], $technologies_donnees[$branche][$idTechnologie][3]/VITESSE); } static function metalTechnologie($branche, $idTechnologie, Planete $planete) { return Donnee::donneeTechnologie($branche, $idTechnologie, "metal", $planete); } static function cristalTechnologie($branche, $idTechnologie, Planete $planete) { return Donnee::donneeTechnologie($branche, $idTechnologie, "cristal", $planete); } static function hydrogeneTechnologie($branche, $idTechnologie, Planete $planete) { return Donnee::donneeTechnologie($branche, $idTechnologie, "hydrogene", $planete); } static function creditsTechnologie($branche, $idTechnologie, Planete $planete) { return Donnee::donneeTechnologie($branche, $idTechnologie, "credits", $planete); } static function tempsTechnologie($branche, $idTechnologie, Planete $planete) { return Donnee::donneeTechnologie($branche, $idTechnologie, "temps", $planete); } static function idTechnologie($branche, $idTechnologie, Planete $planete) { return Donnee::donneeTechnologie($branche, $idTechnologie, "id", $planete); } static function neededTechnologie($branche, $idTechnologie, Planete $planete) { $neededTechnologies = Donnee::donneeTechnologie($branche, $idTechnologie, "needed", $planete); if (empty($neededTechnologies)) return true; if (is_array($neededTechnologies)) { //TODO prévoir le besoin de plus d'une technologie pour la validation, dans une autre branche, batiment (?) ... die('TODO '.__LINE__.' in '.__FILE__); } else { if (((int)$planete->technologies[$branche]& $neededTechnologies) == $neededTechnologies) return true; else return false; } } static function metalCaserne($unite, Planete $planete, $nombre = 1) { switch($unite) { 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é ".$unite." 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; } static function cristalCaserne($unite, Planete $planete, $nombre = 1) { switch($unite) { 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é ".$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; } static function hydrogeneCaserne($unite, Planete $planete, $nombre = 1) { switch($unite) { 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é ".$unite." 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; } static function tempsCaserne($unite, Planete $planete, $nombre = 1) { switch($unite) { 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é ".$unite." 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; } static function neededCaserne($unite, Planete $planete) { global $neededCaserne; return Donnee::neededCheck($neededCaserne[$unite], $planete); } static function print_neededCaserne($unite, Planete $planete, $race) { global $neededCaserne; return Donnee::print_neededCheck($neededCaserne[$unite], $planete, $race); } static function metalTerrestre($unite, Planete $planete, $nombre = 1) { switch($unite) { case 0: $metal = 500; break; case 1: $metal = 680; break; case 2: $metal = 1000; break; case 3: $metal = 1400; break; case 4: $metal = 400; break; case 5: $metal = 480; break; case 6: $metal = 600; break; case 7: $metal = 1000; break; case 8: $metal = 430; break; case 9: $metal = 1250; break; case 10: $metal = 2500; break; case 11: $metal = 6000; break; case 12: $metal = 15000; break; case 13: $metal = 15000; break; case 14: $metal = 15000; break; case 15: $metal = 15000; 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) $metal *= 0.9; return $metal * $nombre; } static function cristalTerrestre($unite, Planete $planete, $nombre = 1) { switch($unite) { 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; } static function hydrogeneTerrestre($unite, Planete $planete, $nombre = 1) { switch($unite) { 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é ".$unite." 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; } static function tempsTerrestre($unite, Planete $planete, $nombre = 1) { switch($unite) { 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é ".$unite." 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; } static function typeTerrestre($unite) { switch($unite) { 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é ".$unite." introuvable dans les données", E_USER_ERROR); } } static function neededTerrestre($unite, Planete $planete) { global $neededTerrestre; return Donnee::neededCheck($neededTerrestre[$unite], $planete); } static function print_neededTerrestre($unite, Planete $planete, $race) { global $neededTerrestre; return Donnee::print_neededCheck($neededTerrestre[$unite], $planete, $race); } static function metalVaisseaux($vaisseau, Planete $planete, $nombre = 1) { switch($vaisseau) { 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 ".$vaisseau." 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; } static function cristalVaisseaux($vaisseau, Planete $planete, $nombre = 1) { switch($vaisseau) { 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 ".$vaisseau." 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; } static function hydrogeneVaisseaux($vaisseau, Planete $planete, $nombre = 1) { switch($vaisseau) { 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 ".$vaisseau." 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; } static function tempsVaisseaux($vaisseau, Planete $planete, $nombre = 1) { switch($vaisseau) { 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 ".$unite." 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[8] - $moins))) * $nombre; } static function neededVaisseaux($vaisseau, Planete $planete) { global $neededVaisseaux; return Donnee::neededCheck($neededVaisseaux[$vaisseau], $planete); } static function print_neededVaisseaux($vaisseau, Planete $planete, $race) { global $neededVaisseaux; return Donnee::print_neededCheck($neededVaisseaux[$vaisseau], $planete, $race); } } ?>