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 .= ''.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]]& $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 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 !");
}
}
}
?>