C'est plutot au code de cimenter la logique des prérequis.
Comme je le proposais, ta table de prérequis contient un id pour le bâtiment à construire, un id de type de prérequis et un id d'objet correspondant.
si ton id de type de prérequis est 3, tu sais que c'est un autre bâtiment, tu vas donc dynamiqement créer ta requête pour qu'elle vérifie que le joueur a possède déjà ce bâtiment.
si c'est 12, ça veut dire que cela requiert un objet, pouf tu check l'inventaire
5, c'est avoir terminé telle quête,
6, c'est avoir telle quête en cours
Pas de faille là dedans, et les tables sont comme on veut, c'est le code qui maintient la logique. tant mieux, c'est son taf.
Ensuite effectivement on peut peut-être créer une grosse requête pour faire ça en un seul coup. Mais vouloir optimiser sur la performance sur une requête qui ne va pas être lancée souvent, est-ce que ça vaut le coup de la rendre difficile à modifier à ce point ?
Bon, je parle, je parle, et je me rends compte que ma méthode ne gère pas non plus les OU logiques.
ceci dit on peut rajouter un champ pour un groupe logique et un pour un sous groupe (le groupe logique 1 vaudrait prérequis obligatoire, et le autres nombres on répète le même schema un niveau en dessous: il faut valider tous les prérequis ayant le même nombre en sous-groupe pour valider le groupe)
ah je kiffe ma race il faut que je note tout ça. n'hésites pas à me dire si c'est complètement débile pasque sinon je vais partir là dessus.
(bon je reste sur mes requêtes dynamiques, comme je te l'ai dit la performance ce n'est pas grave je mets ça a jour chez le joueur toutes les 5 minutes et à chaque validation/construction/...)
Comme je le proposais, ta table de prérequis contient un id pour le bâtiment à construire, un id de type de prérequis et un id d'objet correspondant.
si ton id de type de prérequis est 3, tu sais que c'est un autre bâtiment, tu vas donc dynamiqement créer ta requête pour qu'elle vérifie que le joueur a possède déjà ce bâtiment.
si c'est 12, ça veut dire que cela requiert un objet, pouf tu check l'inventaire
5, c'est avoir terminé telle quête,
6, c'est avoir telle quête en cours
Pas de faille là dedans, et les tables sont comme on veut, c'est le code qui maintient la logique. tant mieux, c'est son taf.
Ensuite effectivement on peut peut-être créer une grosse requête pour faire ça en un seul coup. Mais vouloir optimiser sur la performance sur une requête qui ne va pas être lancée souvent, est-ce que ça vaut le coup de la rendre difficile à modifier à ce point ?
Bon, je parle, je parle, et je me rends compte que ma méthode ne gère pas non plus les OU logiques.
ceci dit on peut rajouter un champ pour un groupe logique et un pour un sous groupe (le groupe logique 1 vaudrait prérequis obligatoire, et le autres nombres on répète le même schema un niveau en dessous: il faut valider tous les prérequis ayant le même nombre en sous-groupe pour valider le groupe)
ah je kiffe ma race il faut que je note tout ça. n'hésites pas à me dire si c'est complètement débile pasque sinon je vais partir là dessus.
(bon je reste sur mes requêtes dynamiques, comme je te l'ai dit la performance ce n'est pas grave je mets ça a jour chez le joueur toutes les 5 minutes et à chaque validation/construction/...)