game/onyx2/include/Class/Donnees/technologies.php

1098 lines
35 KiB
PHP

<?php
require_once("Class/Donnees/interface.php");
class dTechnologies implements Donnees
{
public static function metal($branche, $idTechnologie, surface $planete)
{
return 0;
}
public static function cristal($branche, $idTechnologie, surface $planete)
{
return 0;
}
public static function hydrogene($branche, $idTechnologie, surface $planete)
{
return 0;
}
public static function credits($branche, $idTechnologie, surface $planete)
{
if ($branche == 0) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
case 1:
return 2000;
break;
case 2:
return 4000;
break;
case 3:
return 4000;
break;
case 4:
return 2000;
break;
case 5:
return 4000;
break;
case 6:
return 8000;
break;
case 7:
return 2000;
break;
case 8:
return 4000;
break;
case 9:
return 8000;
break;
case 10:
return 2000;
break;
case 11:
return 4000;
break;
case 12:
return 8000;
break;
case 13:
return 3000;
break;
case 14:
return 6000;
break;
case 15:
return 12000;
break;
case 16:
return 3000;
break;
case 17:
return 6000;
break;
case 18:
return 12000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 1) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
case 1:
return 2000;
break;
case 2:
return 4000;
break;
case 3:
return 2000;
break;
case 4:
return 4000;
break;
case 5:
return 8000;
break;
case 6:
return 3000;
break;
case 7:
return 6000;
break;
case 8:
return 12000;
break;
case 9:
return 4000;
break;
case 10:
return 8000;
break;
case 11:
return 16000;
break;
case 12:
return 1000;
break;
case 13:
return 2000;
break;
case 14:
return 4000;
break;
case 15:
return 2000;
break;
case 16:
return 4000;
break;
case 17:
return 8000;
break;
case 18:
return 2000;
break;
case 19:
return 4000;
break;
case 20:
return 8000;
break;
case 21:
return 2000;
break;
case 22:
return 4000;
break;
case 23:
return 8000;
break;
case 24:
return 2000;
break;
case 25:
return 4000;
break;
case 26:
return 8000;
break;
case 27:
return 3000;
break;
case 28:
return 6000;
break;
case 29:
return 12000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 2) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
case 1:
return 2000;
break;
case 2:
return 4000;
break;
case 3:
return 4000;
break;
case 4:
return 4000;
break;
case 5:
return 4000;
break;
case 6:
return 8000;
break;
case 7:
return 16000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 3) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
case 1:
return 2000;
break;
case 2:
return 4000;
break;
case 3:
return 2000;
break;
case 4:
return 4000;
break;
case 5:
return 8000;
break;
case 6:
return 4000;
break;
case 7:
return 6000;
break;
case 8:
return 6000;
break;
case 9:
return 1000;
break;
case 10:
return 2000;
break;
case 11:
return 4000;
break;
case 12:
return 2000;
break;
case 13:
return 4000;
break;
case 14:
return 8000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 4) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
case 1:
return 2000;
break;
case 2:
return 4000;
break;
case 3:
return 1000;
break;
case 4:
return 2000;
break;
case 5:
return 4000;
break;
case 6:
return 2000;
break;
case 7:
return 4000;
break;
case 8:
return 8000;
break;
case 9:
return 2000;
break;
case 10:
return 4000;
break;
case 11:
return 8000;
break;
case 12:
return 3000;
break;
case 13:
return 6000;
break;
case 14:
return 12000;
break;
case 15:
return 3000;
break;
case 16:
return 6000;
break;
case 17:
return 12000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 5) {
switch ($idTechnologie) {
case 0:
return 1000;
break;
case 1:
return 2000;
break;
case 2:
return 4000;
break;
case 3:
return 2000;
break;
case 4:
return 4000;
break;
case 5:
return 8000;
break;
case 6:
return 3000;
break;
case 7:
return 6000;
break;
case 8:
return 12000;
break;
case 9:
return 1000;
break;
case 10:
return 2000;
break;
case 11:
return 4000;
break;
case 12:
return 2000;
break;
case 13:
return 4000;
break;
case 14:
return 8000;
break;
case 15:
return 3000;
break;
case 16:
return 6000;
break;
case 17:
return 12000;
break;
case 18:
return 1000;
break;
case 19:
return 2000;
break;
case 20:
return 4000;
break;
case 21:
return 2000;
break;
case 22:
return 4000;
break;
case 23:
return 8000;
break;
case 24:
return 3000;
break;
case 25:
return 6000;
break;
case 26:
return 12000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 6) {
switch ($idTechnologie) {
case 0:
return 2000;
break;
case 1:
return 4000;
break;
case 2:
return 6000;
break;
case 3:
return 2000;
break;
case 4:
return 4000;
break;
case 5:
return 6000;
break;
case 6:
return 8000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 7) {
switch ($idTechnologie) {
case 0:
return 2000;
break;
case 1:
return 4000;
break;
case 2:
return 4000;
break;
case 3:
return 6000;
break;
case 4:
return 6000;
break;
case 5:
return 8000;
break;
case 6:
return 10000;
break;
case 7:
return 10000;
break;
case 8:
return 12000;
break;
case 9:
return 14000;
break;
case 10:
return 14000;
break;
case 11:
return 16000;
break;
case 12:
return 18000;
break;
case 13:
return 20000;
break;
case 14:
return 22000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 8) {
return (4 + 2 * $idTechnologie) * 1000;
}
return 0;
}
public static function temps($branche, $idTechnologie, surface $planete, $demolition = false)
{
if ($branche == 0) {
switch ($idTechnologie) {
case 0:
$temps = 54000;
break;
case 1:
$temps = 90000;
break;
case 2:
$temps = 126000;
break;
case 3:
$temps = 126000;
break;
case 4:
$temps = 72000;
break;
case 5:
$temps = 108000;
break;
case 6:
$temps = 144000;
break;
case 7:
$temps = 72000;
break;
case 8:
$temps = 108000;
break;
case 9:
$temps = 144000;
break;
case 10:
$temps = 72000;
break;
case 11:
$temps = 108000;
break;
case 12:
$temps = 144000;
break;
case 13:
$temps = 126000;
break;
case 14:
$temps = 162000;
break;
case 15:
$temps = 198000;
break;
case 16:
$temps = 126000;
break;
case 17:
$temps = 162000;
break;
case 18:
$temps = 198000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 1) {
switch ($idTechnologie) {
case 0:
$temps = 54000;
break;
case 1:
$temps = 90000;
break;
case 2:
$temps = 126000;
break;
case 3:
$temps = 90000;
break;
case 4:
$temps = 126000;
break;
case 5:
$temps = 162000;
break;
case 6:
$temps = 126000;
break;
case 7:
$temps = 162000;
break;
case 8:
$temps = 198000;
break;
case 9:
$temps = 162000;
break;
case 10:
$temps = 198000;
break;
case 11:
$temps = 234000;
break;
case 12:
$temps = 54000;
break;
case 13:
$temps = 90000;
break;
case 14:
$temps = 126000;
break;
case 15:
$temps = 54000;
break;
case 16:
$temps = 90000;
break;
case 17:
$temps = 126000;
break;
case 18:
$temps = 72000;
break;
case 19:
$temps = 108000;
break;
case 20:
$temps = 144000;
break;
case 21:
$temps = 54000;
break;
case 22:
$temps = 90000;
break;
case 23:
$temps = 126000;
break;
case 24:
$temps = 54000;
break;
case 25:
$temps = 90000;
break;
case 26:
$temps = 126000;
break;
case 27:
$temps = 90000;
break;
case 28:
$temps = 126000;
break;
case 29:
$temps = 162000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 2) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
case 1:
$temps = 72000;
break;
case 2:
$temps = 108000;
break;
case 3:
$temps = 126000;
break;
case 4:
$temps = 126000;
break;
case 5:
$temps = 126000;
break;
case 6:
$temps = 162000;
break;
case 7:
$temps = 198000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 3) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
case 1:
$temps = 72000;
break;
case 2:
$temps = 108000;
break;
case 3:
$temps = 72000;
break;
case 4:
$temps = 108000;
break;
case 5:
$temps = 144000;
break;
case 6:
$temps = 126000;
break;
case 7:
$temps = 162000;
break;
case 8:
$temps = 162000;
break;
case 9:
$temps = 90000;
break;
case 10:
$temps = 90000;
break;
case 11:
$temps = 90000;
break;
case 12:
$temps = 72000;
break;
case 13:
$temps = 108000;
break;
case 14:
$temps = 144000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 4) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
case 1:
$temps = 72000;
break;
case 2:
$temps = 108000;
break;
case 3:
$temps = 54000;
break;
case 4:
$temps = 90000;
break;
case 5:
$temps = 126000;
break;
case 6:
$temps = 72000;
break;
case 7:
$temps = 108000;
break;
case 8:
$temps = 144000;
break;
case 9:
$temps = 90000;
break;
case 10:
$temps = 126000;
break;
case 11:
$temps = 162000;
break;
case 12:
$temps = 108000;
break;
case 13:
$temps = 144000;
break;
case 14:
$temps = 180000;
break;
case 15:
$temps = 126000;
break;
case 16:
$temps = 162000;
break;
case 17:
$temps = 198000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 5) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
case 1:
$temps = 72000;
break;
case 2:
$temps = 108000;
break;
case 3:
$temps = 72000;
break;
case 4:
$temps = 108000;
break;
case 5:
$temps = 144000;
break;
case 6:
$temps = 108000;
break;
case 7:
$temps = 144000;
break;
case 8:
$temps = 180000;
break;
case 9:
$temps = 36000;
break;
case 10:
$temps = 72000;
break;
case 11:
$temps = 108000;
break;
case 12:
$temps = 72000;
break;
case 13:
$temps = 108000;
break;
case 14:
$temps = 144000;
break;
case 15:
$temps = 108000;
break;
case 16:
$temps = 144000;
break;
case 17:
$temps = 180000;
break;
case 18:
$temps = 54000;
break;
case 19:
$temps = 90000;
break;
case 20:
$temps = 126000;
break;
case 21:
$temps = 90000;
break;
case 22:
$temps = 126000;
break;
case 23:
$temps = 162000;
break;
case 24:
$temps = 126000;
break;
case 25:
$temps = 162000;
break;
case 26:
$temps = 198000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 6) {
switch ($idTechnologie) {
case 0:
$temps = 72000;
break;
case 1:
$temps = 144000;
break;
case 2:
$temps = 216000;
break;
case 3:
$temps = 72000;
break;
case 4:
$temps = 144000;
break;
case 5:
$temps = 216000;
break;
case 6:
$temps = 288000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 7) {
switch ($idTechnologie) {
case 0:
$temps = 36000;
break;
case 1:
$temps = 72000;
break;
case 2:
$temps = 108000;
break;
case 3:
$temps = 144000;
break;
case 4:
$temps = 144000;
break;
case 5:
$temps = 180000;
break;
case 6:
$temps = 216000;
break;
case 7:
$temps = 234000;
break;
case 8:
$temps = 288000;
break;
case 9:
$temps = 324000;
break;
case 10:
$temps = 342000;
break;
case 11:
$temps = 360000;
break;
case 12:
$temps = 396000;
break;
case 13:
$temps = 432000;
break;
case 14:
$temps = 504000;
break;
default:
trigger_error("Technologie (".$branche.";".$idTechnologie.") introuvable dans les données", E_USER_ERROR);
}
} elseif ($branche == 8) {
$temps = (54 + 18 * $idTechnologie) * 1000;
}
return $temps/VITESSE;
}
public static function type($branche, $race)
{
switch ($branche) {
case 0:
return array(
0, array(3, array(13), 4, 7, array(16), 10)
);
case 1:
return array(
array(0, array(3, array(6, array(9))), 12, array(15, 18, array(21), 24, 27))
);
case 2:
return array(
array(0, array(3, 4), 5)
);
case 3:
return array(
array(0, array(3, array(6, 7, 8)), 9, array(12))
);
case 4:
return array(
array(0, array(3, array(6, array(9)), 12, array(15)))
);
case 5:
return array(
array(0, array(3, array(6)), 9, array(12, array(15), 18, array(21, array(24))))
);
case 6:
return array(
array(0, array(1, array(2)), 3, array(4, array(5, array(6))))
);
case 7:
return array(
array(0, array(1, array(2, array(3, array(4, array(5, array(6, array(7, array(8, array(9), 11)), 10)))))), 12)
);
case 8:
return array(
array(0)
);
default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR);
}
}
public static function niveau($branche, $id)
{
switch ($branche) {
case 0:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 1, 5 => 2, 6 => 3, 7 => 1, 8 => 2, 9 => 3, 10 => 1, 11 => 2, 12 => 3, 13 => 1, 14 => 2, 15 => 3, 16 => 1, 17 => 2, 18 => 3);
break;
case 1:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3, 27 => 1, 28 => 2, 29 => 3);
break;
case 2:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 0, 5 => 1, 6 => 2, 7 => 3);
break;
case 3:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3);
break;
case 4:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3);
break;
case 5:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3);
break;
case 6:
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0);
break;
case 7:
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 1, 13 => 2, 14 => 3);
break;
case 8:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6, 6 => 7, 7 => 8, 8 => 9, 9 => 10, 10 => 11, 11 => 12, 12 => 13, 13 => 14, 14 => 15, 15 => 16, 16 => 17, 17 => 18);
break;
default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR);
}
return $tableau[$id];
}
public static function image($object, surface $planete)
{
$branche = $object[0];
$idTechnologie = $object[1];
if ($planete->race == "covenant") {
return Donnees::image_covenant_default;
} elseif ($planete->race == "humain") {
return Donnees::image_humain_default;
} else {
trigger_error("Impossible de trouver la race pour ".$planete->race, E_USER_ERROR);
}
}
public static function needed($object, surface $planete, $print = false)
{
switch ($object[0]) {
case 0:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 1, 5 => 2, 6 => 3, 7 => 1, 8 => 2, 9 => 3, 10 => 1, 11 => 2, 12 => 3, 13 => 1, 14 => 2, 15 => 3, 16 => 1, 17 => 2, 18 => 3);
break;
case 1:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3, 27 => 1, 28 => 2, 29 => 3);
break;
case 2:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 0, 5 => 1, 6 => 2, 7 => 3);
break;
case 3:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 0, 7 => 0, 8 => 0, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3);
break;
case 4:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3);
break;
case 5:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 1, 4 => 2, 5 => 3, 6 => 1, 7 => 2, 8 => 3, 9 => 1, 10 => 2, 11 => 3, 12 => 1, 13 => 2, 14 => 3, 15 => 1, 16 => 2, 17 => 3, 18 => 1, 19 => 2, 20 => 3, 21 => 1, 22 => 2, 23 => 3, 24 => 1, 25 => 2, 26 => 3);
break;
case 6:
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0);
break;
case 7:
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0, 7 => 0, 8 => 0, 9 => 0, 10 => 0, 11 => 0, 12 => 1, 13 => 2, 14 => 3);
break;
default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR);
}
if ($print) {
return dDonnees::print_neededCheck($tableau[$object[1]], $planete);
} else {
return dDonnees::neededCheck($tableau[$object[1]], $planete);
}
}
/* Fonction qui transpforme l'id d'une technologie en son équivalent en bit dans la liste */
public static function idToBit($id)
{
return pow(2, $id);
}
public static function bitToId($bit)
{
return log($bit, 2);
}
}