game/onyx2/include/Class/class.donnee.php
Nigel dd61d3b66b
All checks were successful
continuous-integration/drone/push Build is passing
Ajout d'une étape de linting dans DroneCi (#3)
Corrige un doublons laissé par le rebase semi-manuel

Ajout d'une étape de linting dans DroneCi

Fix linting

Co-authored-by: Nigel Sheldon <nigelsheldon@live.fr>
Reviewed-on: https://gitea.nemunai.re/halo-battle/game/pulls/3
2020-11-21 18:54:32 +00:00

271 lines
11 KiB
PHP

<?php
/***************************************************************************
* class.var.php
* ---------------
* begin : Jeudi 29 janvier 2009
* update : Vendredi 27 février 2009
* email : nemunaire@gmail.com
*
*
***************************************************************************/
class Donnee
{
public 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);
}
}
public static function metalTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "metal", $planete);
}
public static function cristalTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "cristal", $planete);
}
public static function hydrogeneTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "hydrogene", $planete);
}
public static function creditsTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "credits", $planete);
}
public static function tempsTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "temps", $planete);
}
public static function idTechnologie($branche, $idTechnologie, Planete $planete)
{
return Donnee::donneeTechnologie($branche, $idTechnologie, "id", $planete);
}
public 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;
}
}
}
}