Affiche les techno dans l'arbre des technos (la disruption) #6

Merged
nemunaire merged 12 commits from show_tech_description into master 2020-11-22 17:01:17 +00:00
7 changed files with 1038 additions and 387 deletions

View file

@ -984,6 +984,10 @@ class dTechnologies implements Donnees
return array( 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) 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: default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR); trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR);
} }
@ -1016,6 +1020,9 @@ class dTechnologies implements Donnees
case 7: 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); $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; 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: default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR); trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR);
} }
@ -1043,31 +1050,567 @@ class dTechnologies implements Donnees
{ {
switch ($object[0]) { switch ($object[0]) {
case 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); $tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 0, 0)
),
array(
array("technologies", 0, 1)
),
array(
array("technologies", 0, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 0, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 0, 4)
),
array(
array("technologies", 0, 5)
),
array(
array("technologies", 0, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 0, 7)
),
array(
array("technologies", 0, 8)
),
array(
array("technologies", 0, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 0, 10)
),
array(
array("technologies", 0, 11)
),
array(
array("technologies", 0, 3),
array('batiments', 6, 5)
),
array(
array("technologies", 0, 13)
),
array(
array("technologies", 0, 14)
),
array(
array("technologies", 0, 4),
array("technologies", 0, 7),
array("technologies", 0, 10),
array('batiments', 6, 10)
),
array(
array("technologies", 0, 16)
),
array(
array("technologies", 0, 17)
)
);
break; break;
case 1: 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); $tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 1, 0)
),
array(
array("technologies", 1, 1)
),
array(
array("technologies", 1, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 1, 3)
),
array(
array("technologies", 1, 4)
),
array(
array("technologies", 1, 3),
array('batiments', 6, 5)
),
array(
array("technologies", 1, 6)
),
array(
array("technologies", 1, 7)
),
array(
array("technologies", 1, 6),
array('batiments', 6, 10)
),
array(
array("technologies", 1, 9)
),
array(
array("technologies", 1, 10)
),
array(
array('batiments', 6, 1)
),
array(
array("technologies", 1, 12)
),
array(
array("technologies", 1, 13)
),
array(
array("technologies", 1, 12),
array('batiments', 6, 2)
),
array(
array("technologies", 1, 15)
),
array(
array("technologies", 1, 16)
),
array(
array("technologies", 1, 12),
array('batiments', 6, 5)
),
array(
array("technologies", 1, 18)
),
array(
array("technologies", 1, 19)
),
array(
array("technologies", 1, 18),
array('batiments', 6, 5)
),
array(
array("technologies", 1, 21)
),
array(
array("technologies", 1, 22)
),
array(
array("technologies", 1, 12),
array('batiments', 6, 2)
),
array(
array("technologies", 1, 24)
),
array(
array("technologies", 1, 25)
),
array(
array("technologies", 1, 12),
array('batiments', 6, 2)
),
array(
array("technologies", 1, 27)
),
array(
array("technologies", 1, 28)
)
);
break; break;
case 2: case 2:
$tableau = array( 0 => 1, 1 => 2, 2 => 3, 3 => 0, 4 => 0, 5 => 1, 6 => 2, 7 => 3); $tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 2, 0)
),
array(
array("technologies", 2, 1)
),
array(
array("technologies", 2, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 2, 0),
array('batiments', 6, 2)
),
array(
array('batiments', 6, 20)
),
array(
array("technologies", 2,5)
),
array(
array("technologies", 2, 6)
)
);
break; break;
case 3: 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); $tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 3, 0)
),
array(
array("technologies", 3, 1)
),
array(
array("technologies", 3, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 3, 3)
),
array(
array("technologies", 3, 4)
),
array(
array("technologies", 3, 3),
array('batiments', 6, 5)
),
array(
array("technologies", 3, 3),
array('batiments', 6, 5)
),
array(
array("technologies", 3, 3),
array('batiments', 6, 5)
),
array(
array('batiments', 6, 1)
),
array(
array("technologies", 3, 9)
),
array(
array("technologies", 3, 10)
),
array(
array('batiments', 6, 1)
),
array(
array("technologies", 3, 12)
),
array(
array("technologies", 3, 13)
)
);
break; break;
case 4: 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); $tableau = array(
array(
array('batiments', 6, 2)
),
array(
array("technologies", 4, 0)
),
array(
array("technologies", 4, 1)
),
array(
array('batiments', 6, 2)
),
array(
array("technologies", 4, 3)
),
array(
array("technologies", 4, 4)
),
array(
array("technologies", 4, 3),
array('batiments', 6, 5)
),
array(
array("technologies", 4, 6)
),
array(
array("technologies", 4, 7)
),
array(
array("technologies", 4, 6),
array('batiments', 6, 10)
),
array(
array("technologies", 4, 9)
),
array(
array("technologies", 4, 10)
),
array(
array("technologies", 4, 0),
array('batiments', 6, 5)
),
array(
array("technologies", 4, 12)
),
array(
array("technologies", 4, 13)
),
array(
array("technologies", 4, 12),
array('batiments', 6, 10)
),
array(
array("technologies", 4, 15)
),
array(
array("technologies", 4, 16)
),
);
break; break;
case 5: 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); $tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 5, 0)
),
array(
array("technologies", 5, 1)
),
array(
array("technologies", 5, 0),
array('batiments', 6, 5)
),
array(
array("technologies", 5, 3)
),
array(
array("technologies", 5, 4)
),
array(
array("technologies", 5, 3),
array('batiments', 6, 10)
),
array(
array("technologies", 5, 6)
),
array(
array("technologies", 5, 7)
),
array(
array('batiments', 6, 1)
),
array(
array("technologies", 5, 9)
),
array(
array("technologies", 5, 10)
),
array(
array("technologies", 5, 9),
array('batiments', 6, 5)
),
array(
array("technologies", 5, 12)
),
array(
array("technologies", 5, 13)
),
array(
array("technologies", 5, 12),
array('batiments', 6, 10)
),
array(
array("technologies", 5, 15)
),
array(
array("technologies", 5, 16)
),
array(
array('batiments', 6, 1)
),
array(
array("technologies", 5, 18)
),
array(
array("technologies", 5, 19)
),
array(
array("technologies", 5, 18),
array('batiments', 6, 5)
),
array(
array("technologies", 5, 21)
),
array(
array("technologies", 5, 22)
),
array(
array("technologies", 5, 21),
array('batiments', 6, 10)
),
array(
array("technologies", 5, 24)
),
array(
array("technologies", 5, 25)
),
);
break; break;
case 6: case 6:
$tableau = array( 0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0); $tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 6, 0),
array('batiments', 6, 5)
),
array(
array("technologies", 6, 1),
array('batiments', 6, 10)
),
array(
array('batiments', 6, 1)
),
array(
array("technologies", 6, 3),
array('batiments', 6, 5)
),
array(
array("technologies", 6, 4),
array('batiments', 6, 10)
),
array(
array("technologies", 6, 2),
array("technologies", 6, 5),
array('batiments', 6, 20)
)
);
break; break;
case 7: 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); $tableau = array(
array(
array('batiments', 6, 1)
),
array(
array("technologies", 7, 0),
array('batiments', 6, 2)
),
array(
array("technologies", 7, 1),
array('batiments', 6, 3)
),
array(
array("technologies", 7, 2),
array('batiments', 6, 5)
),
array(
array("technologies", 7, 1),
array('batiments', 6, 3)
),
array(
array("technologies", 7, 3),
array('batiments', 6, 8)
),
array(
array("technologies", 7, 5),
array('batiments', 6, 10)
),
array(
array("technologies", 7, 6),
array('batiments', 6, 15)
),
array(
array("technologies", 7, 7),
array('batiments', 6, 20)
),
array(
array("technologies", 7, 8),
array('batiments', 6, 30)
),
array(
array("technologies", 7, 5),
array('batiments', 6, 10)
),
array(
array("technologies", 7, 5),
array('batiments', 6, 10)
),
array(
array('batiments', 6, 5)
),
array(
array("technologies", 7, 12)
),
array(
array("technologies", 7, 13)
),
);
break;
case 8:
$tableau = array(
array(
array("technologies", 1, 2),
array('batiments', 6, 2)
),
array(
array("technologies", 8, 1)
),
array(
array("technologies", 8, 2)
),
array(
array("technologies", 8, 3)
),
array(
array("technologies", 8, 4)
),
array(
array("technologies", 8, 5)
),
array(
array("technologies", 8, 6)
),
array(
array("technologies", 8, 7)
),
array(
array("technologies", 8, 8)
),
array(
array("technologies", 8, 9)
),
array(
array("technologies", 8, 10)
),
array(
array("technologies", 8, 11)
),
array(
array("technologies", 8, 12)
),
array(
array("technologies", 8, 13)
),
array(
array("technologies", 8, 14)
),
array(
array("technologies", 8, 15)
),
array(
array("technologies", 8, 16)
),
array(
array("technologies", 8, 17)
),
array(
array("technologies", 8, 18)
),
);
break; break;
default: default:
trigger_error("Branche ".$branche." introuvable dans les données", E_USER_ERROR); trigger_error("Branche ".$object[0]." introuvable dans les données", E_USER_ERROR);
} }
if ($print) { if ($print) {
@ -1077,6 +1620,42 @@ class dTechnologies implements Donnees
} }
} }
public static function niveau_du_joueur($branche, $id, surface $planete)
{
$niveau = 0;
// Si jamais cette techno a été recherchée au niveau 2 ou 3, aditionne les niveaux des trois technos
if (($niv = self::niveau($branche, $id)) > 0 && (self::idToBit($id) & $planete->technologies[$branche])) {
if ((self::idToBit($id+1) & $planete->technologies[$branche])) {
$niveau += $niv;
}
$niveau += $niv;
}
if (self::idToBit($id) & $planete->technologies[$branche]) {
// Gère les technos qui n'ont qu'un seul niveau
$ret = self::niveau($branche, $id);
if ($ret == 0) {
$niv = 1;
} else {
$niv = $ret;
}
$niveau += $niv;
}
return $niveau;
}
public static function niveau_max($branche, $id, surface $planete, $LANG)
{
$niveau_max = 1;
if (isset($LANG[$planete->race]["technologies"]["noms_sing"][$branche][$id+1]) && $LANG[$planete->race]["technologies"]["noms_sing"][$branche][$id] == $LANG[$planete->race]["technologies"]["noms_sing"][$branche][$id+1]) {
if (isset($LANG[$planete->race]["technologies"]["noms_sing"][$branche][$id+2]) && $LANG[$planete->race]["technologies"]["noms_sing"][$branche][$id+1] == $LANG[$planete->race]["technologies"]["noms_sing"][$branche][$id+2]) {
$niveau_max = 3;
} else {
$niveau_max = 2;
}
}
return $niveau_max;
}
/* Fonction qui transpforme l'id d'une technologie en son équivalent en bit dans la liste */ /* Fonction qui transpforme l'id d'une technologie en son équivalent en bit dans la liste */
public static function idToBit($id) public static function idToBit($id)

View file

@ -43,19 +43,40 @@ if (SURFACE == "asteroide") {
$template->assign('batiments', $TEMP_liste); $template->assign('batiments', $TEMP_liste);
} }
/*
$TEMP_technologies = array(); function traiterBrancheTechnologie($TEMP_liste, $branche, $i)
$nb = count($technolo); {
for ($id=0 ; $id<$nb ; $id++) { global $LANG, $planete;
if (!empty($technolo[$id])) $TEMP_technologies[] = array(
foreach ($i as $key => $id) {
if (is_array($id)) {
$TEMP_liste = traiterBrancheTechnologie($TEMP_liste, $branche, $id);
} else {
$niveau = dTechnologies::niveau_du_joueur($branche, $id, $planete);
$niveau_max = dTechnologies::niveau_max($branche, $id, $planete, $LANG);
$object = array($branche, $id);
$TEMP_liste[$branche][$id] = array(
'id' => $id, 'id' => $id,
'nom' => $technolo[$id], 'branche' => $branche,
'niveau' => $planete->technologies[$id], 'niveau' => $niveau,
'etat' => readDeblok($technoloTECH[$id], $planete) 'niveau_max' => $niveau_max,
'etat' => dTechnologies::needed($object, $planete, true)
); );
} }
$template->assign('technologies',$TEMP_technologies); }
*/ return $TEMP_liste;
}
$TEMP_liste = array();
$branche = 0;
while ($branche < 9) {
$TEMP_liste[$branche] = array();
$TEMP_liste = traiterBrancheTechnologie($TEMP_liste, $branche, dTechnologies::type($branche, $planete->race));
$branche++;
}
$template->assign('technologies', $TEMP_liste);
$TEMP_liste = array(); $TEMP_liste = array();
foreach ($planete->casernes as $id => $unite) { foreach ($planete->casernes as $id => $unite) {
if (!empty($LANG[$race]["caserne"]["noms_sing"][$id])) { if (!empty($LANG[$race]["caserne"]["noms_sing"][$id])) {

View file

@ -79,9 +79,22 @@ if (isset($_GET['t']) && is_numeric($_GET['t']) && !empty($LANG[$race]["technolo
$template->assign('branche', $b); $template->assign('branche', $b);
$template->assign('id', $t); $template->assign('id', $t);
$template->assign('ressourcesNext', array(Donnee::creditsTechnologie($b, $t, $planete), Donnee::tempsTechnologie($b, $t, $planete))); // calcul du niveau de la techno pour le joueur
$niveau = dTechnologies::niveau_du_joueur($b, $t, $planete);
$niveau_max = dTechnologies::niveau_max($b, $t, $planete, $LANG);
$template->assign('etat', Donnee::print_neededTechnologie($b, $t, $planete, $race)); // On n'affiche plus que les infos du niveau qu'on as actuellement
if ($niveau != 0) {
$t += ($niveau - 1);
}
$object = array();
$object[0] = $b;
$object[1] = $t;
$template->assign('ressourcesNext', array(dTechnologies::credits($b, $t, $planete), dTechnologies::temps($b, $t, $planete)));
$template->assign('niveau', $niveau);
$template->assign('niveau_max', $niveau_max);
$template->assign('etat', dTechnologies::needed($object, $planete, $race));
} elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["batiments"]["noms_sing"][$_GET['b']])) { } elseif (isset($_GET['b']) && is_numeric($_GET['b']) && !empty($LANG[$race]["batiments"]["noms_sing"][$_GET['b']])) {
$template->assign('type', 'batiments'); $template->assign('type', 'batiments');
$t = intval(gpc('b')); $t = intval(gpc('b'));

View file

@ -133,6 +133,17 @@
</var> </var>
</var> </var>
<var name="technologies"> <var name="technologies">
<var name="branches">
<var name="0">Industrie</var>
<var name="1">Ingénierie</var>
<var name="2">Ingénierie</var>
<var name="3">Politique</var>
<var name="4">Armement</var>
<var name="5">Défense</var>
<var name="6">Défense</var>
<var name="7">Projets expérimentaux</var>
<var name="8">Expansion</var>
</var>
<var name="noms_sing"> <var name="noms_sing">
<var name="0"> <var name="0">
<var name="0">Forage</var> <var name="0">Forage</var>
@ -312,30 +323,30 @@
</var> </var>
<var name="descriptions"> <var name="descriptions">
<var name="0"> <var name="0">
<var name="0">~#DESCRIPTION MANQUANTE#~ Forage niveau 1</var> <var name="0">Grâce au forage, vos usines pourront produire des ressources de manière beaucoup plus rapide, et beaucoup plus efficace. Chaque niveau développé augmente de 5 % le nombre de toutes lesressources produites (maximum de trois niveaux).</var>
<var name="1">~#DESCRIPTION MANQUANTE#~ Forage niveau 2</var> <var name="1">Grâce au forage, vos usines pourront produire des ressources de manière beaucoup plus rapide, et beaucoup plus efficace. Chaque niveau développé augmente de 5 % le nombre de toutes lesressources produites (maximum de trois niveaux).</var>
<var name="2">~#DESCRIPTION MANQUANTE#~ Forage niveau 3</var> <var name="2">Grâce au forage, vos usines pourront produire des ressources de manière beaucoup plus rapide, et beaucoup plus efficace. Chaque niveau développé augmente de 5 % le nombre de toutes lesressources produites (maximum de trois niveaux).</var>
<var name="3">~#DESCRIPTION MANQUANTE#~ Commerce galactique</var> <var name="3">Le commerce galactique est un composant primordial de votre empire ; sans échanges entre colonies, votre peuple ne disposera jamais d'assez de ressources pour s'assurer un développement stable et prospère. Cette technologie vous permet de débloquer les vaisseaux de transport et vouspermettra d'envoyer des ressources ailleurs (maximum d'un niveau).</var>
<var name="4">~#DESCRIPTION MANQUANTE#~ Rendement métal niveau 1</var> <var name="4">Comptant parmi les plus vieilles techniques du monde, la métallurgie n'en demeure pas en reste aujourd'hui. De nouveaux procédés ont permis un traitement et un enrichissement plus conséquent des différents minéraux extraits du sol. Chaque niveau développé augmente la production de métalde 5 % (maximum de trois niveaux)</var>
<var name="5">~#DESCRIPTION MANQUANTE#~ Rendement métal niveau 2</var> <var name="5">Comptant parmi les plus vieilles techniques du monde, la métallurgie n'en demeure pas en reste aujourd'hui. De nouveaux procédés ont permis un traitement et un enrichissement plus conséquent des différents minéraux extraits du sol. Chaque niveau développé augmente la production de métalde 5 % (maximum de trois niveaux)</var>
<var name="6">~#DESCRIPTION MANQUANTE#~ Rendement métal niveau 3</var> <var name="6">Comptant parmi les plus vieilles techniques du monde, la métallurgie n'en demeure pas en reste aujourd'hui. De nouveaux procédés ont permis un traitement et un enrichissement plus conséquent des différents minéraux extraits du sol. Chaque niveau développé augmente la production de métalde 5 % (maximum de trois niveaux)</var>
<var name="7">~#DESCRIPTION MANQUANTE#~ Rendement cristal niveau 1</var> <var name="7">Pour soutenir l'effort de guerre, il est primordial de trouver de nouvelles méthodes de production pour un apport en vivres, matériel et armement de plus en plus important. Chaque niveau développé augmente la production de cristal de 5 % (maximum de trois niveaux)</var>
<var name="8">~#DESCRIPTION MANQUANTE#~ Rendement cristal niveau 2</var> <var name="8">Pour soutenir l'effort de guerre, il est primordial de trouver de nouvelles méthodes de production pour un apport en vivres, matériel et armement de plus en plus important. Chaque niveau développé augmente la production de cristal de 5 % (maximum de trois niveaux)</var>
<var name="9">~#DESCRIPTION MANQUANTE#~ Rendement cristal niveau 3</var> <var name="9">Pour soutenir l'effort de guerre, il est primordial de trouver de nouvelles méthodes de production pour un apport en vivres, matériel et armement de plus en plus important. Chaque niveau développé augmente la production de cristal de 5 % (maximum de trois niveaux)</var>