Pour générer les modèles, je pars d'un tableau qui contient les règles.
J'ai transformé volontairement certains ID en chaine de caractère pour une meilleure lisibilité.
J'ai transformé volontairement certains ID en chaine de caractère pour une meilleure lisibilité.
Code PHP :
<?php
$aRules=Array(
'Astyrion'=>
Array('Faim'=>array(25=>1, 50=>2, 80=>3, 95=>4, 99=> 5, 100=>6),
'Higi'=>array(50=>1, 75=>2, 90=>3, 100=>4),
'Sant'=>array(25=>1, 50=>2, 75=>3, 90=>4, 100=>5),
'Repo'=>array(25=>1, 50=>2, 75=>3, 90=>4, 100=>5),
'Lois'=>array(25=>1, 80=>2, 100=>3),
'Zen'=>array(25=>1, 50=>2, 75=>3, 90=>4, 100=>5)),
'Bellist'=>
Array('Faim'=>array(25=>1, 50=>2, 75=>3, 90=>4, 100=>5),
'Higi'=>array(100=>0),
'Sant'=>array(95=>0, 100=>1),
'Repo'=>array(25=>1, 50=>2, 75=>3, 90=>4, 100=>5),
'Lois'=>array(25=>1, 50=>2, 75=>3, 90=>4, 100=>5),
'Zen'=>array(25=>1, 50=>2, 75=>3, 90=>4, 100=>5)),
//etc
J'utilise les clés des éléments de tableau pour encadrer les résultats des tirages aléatoires.
On peut d'ailleurs remarquer que les Bellist ignorent carrément la notion d'hygiène et que leur santé est plutôt solide.
Code PHP :
<?php
foreach($aRules[$race] as $kCar=>$aCar){
//$aCar va contenir les tableaux Faim, Higi, etc
// On tire une valeur aléatoire pour le besoin en cours
$setVal=mt_rand(1,100);
foreach($aCar as $kVal=>$Val){
//Je parcours le tableau associé au besoin
if($setVal<=$kVal){
// Le jet de dé est inférieur ou égal à la clef ($kVal) de la valeur
// Je construit ma requête en initialisant la valeur $Val pour le besoin $kCar
/*
Code de construction de requête
*/
break;
}
}
}
// Exécution de la requête