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
}
public 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]]& dTechnologies::idToBit($need[2])) == 0) {
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;
}
}
public 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 .= ''.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 'batiments_max':
if ($planete->batiments[$need[1]] > $need[2]) {
$return .= ''.ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' < niveau '.($need[2]+1).' (batiment)
';
} else {
$return .= ucfirst($LANG[$race]["batiments"]["noms_sing"][$need[1]]).' < niveau '.($need[2]+1).' (batiment)
';
}
break;
case 'technologies':
if (((int)$planete->technologies[$need[1]]& dTechnologies::idToBit($need[2])) == 0) {
$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;
}
}
public 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";
}
}
public static function capaciteVilles(surface $planete)
{
return $planete->cases * pow($planete->batiments[17], -3) + 10;
}
public 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 !");
}
}
}