16-02-2008, 11:27 PM
(Modification du message : 08-09-2008, 06:27 PM par Sephi-Chan.)
Bonsoir,
Pour la V1.03 de mon jeu (Sujet sur JeuPHP), je comptes refaire le système de combats, enfin, tout du moins le déroulement en lui même, afin de rendre la défense plus interessante, et la chose plus réaliste et complexe. Jusqu'alors mes combats se résumaient en :
Un tas de paramètres + un nombre de troupes + des variables aléatoires + une formule... Ensuite on compare le résultat pour l'attaque et la défense et celui qui a la plus grosse (:wowowow gagne le combat empoche la thune et on calcule les pertes... Quelquechose de plutot simpliste quoi (enfin pas tellement vu le nombre de paramètres pris en compte, mais d'un point de vue défensif, a par faire de la défense, aucun interet, et l'attaque, à part faire l'attaque, aucun interet..
Pour comprendre ce que je vais tenter d'expliquer par la suite, il faut savoir qu'il y a 5 unités sur mon jeu (enfin y'en a une sixième, le cheval de troie, mais elle est spéciale, elle permet juste de sauter l'enceinte de l'adversaire lors d'un combat, c'est facile à mettre en place) : l'hoplite, le frondeurs, l'archer, la catapulte, et la trirème. Les trirèmes ne peuvent être achetées que par les villes portuaires et fluviales, et donc ne sont pas prises en compte quand l'attaquant ne possède pas une ville fluviale ou portuaire. Chaque joueur n'a qu'une seule ville.
Mon nouveau système se veut inspiré de la réalité... Cela donc un peu selon le type de ville.
Mais tout d'abord je vais parler des options que le joueur peut choisir avant le combat, et donc expliquer comment se déroule le combat
Options d'attaquant :
Les hoplites peuvent attaquer prioritairement (avant la pénétration dans la ville) les hoplites ou les frondeurs adverses, puis, quand ils ont pénétrer dans l'enceinte adversaire, ils peuvent soit choisir de piller un maximum la ville, soit de massacrer l'armée adverse (plus de gains, ou plus de morts.
Les frondeurs peuvent attaquer prioritairement (avant la pénétration dans la ville) les hoplites, les archers ou les frondeurs adverses, puis, quand ils ont pénétrer dans l'enceinte adversaire, ils peuvent soit choisir de piller un maximum la ville, soit de massacrer l'armée adverse (plus de gains, ou plus de morts.
Les archers se comportent comme les frondeurs, mais sont plus puissants, et possèdent une attaque corps à corps.
Les catapultes détruisent l'enceinte adverse en priorité (dans le futur, elles détruiront peut être des bâtiments une fois l'enceinte détruite, mais c'est pas d'actualité)
Les trirèmes, attaquent prioritairement les trirèmes adverses, si il n'y a pas de troupes maritimes adverses, elles aident à la destruction de l'enceinte. On peut choisir de laisser les archers ou les frondeurs à bord des trirèmes pour aider au combat naval... On considère que lorsqu'une ville fluviale ou portuaire attaque une autre ville fluviale ou portuaire, elle passe obligatoirement par une voie fluviale ou maritime pour attaquer.
Options de défenseur :
Les hoplites sortent de l'enceinte au début du combat. On peut choisir d'attaquer prioritairement les archers, catapultes, frondeurs ou hoplites adverses... Si les archers et/ou les frondeurs ne sont pas disponibles, les hoplites se retournent par défaut contre les catapultes ou les hoplites (par défaut)
Les frondeurs peuvent soit se positionner sur l'enceinte, soit descendre dans la pleine. SI ils sont sur les enceintes ils ne peuvent qu'attaquer les hoplites, si ils descendent sur le champ de bataille il y a le choix entre archers, hoplites, frondeurs ou catapultes adverses.
Les archers se comportent comme les frondeurs, mais peuvent aussi attaquer les frondeurs/archers adverses si ils sont positionnés sur l'enceinte.
Les catapultes peuvent être sorties mais elles perdent énormément en puissance et n'ont qu'un impact limité sur le combat.
Les bateaux se comportent comme lors d'une attaque.
A savoir que pour l'instant au moins, on ne pourra pas choisir de mettre 10000 hoplites la et 2000 hoplites la bas.
Le combat devrait se dérouler de la manière suivante : par exemple j'ai choisis que les frondeurs visent les archers adverses en attaquant. Si ils sont plus forts les frondeurs passent à autre chose, sinon ils s'arretent la (mais ne meurent pas tous, trop cruel pour les joueurs sinon).
J'aimerais donc savoir comment coder ce systeme de choix et de priorité de façon optimisée et efficace. Parce que j'aimerais autant éviter de taper 500 lignes de if else. Si vous avez des idées pour en faire sortir des fonctions je prends, j'en ai deja quelques une pour les pertes notamment dans ma classe. J'ai donc des notions de POO même si j'ai pas la 'mentalité objet', comme disent les puristes.
Vous pouvez aussi donner votre avis ou des idées pour faire mieux, c'est toujours bon à prendre.
Merci de votre aide.
Pour la V1.03 de mon jeu (Sujet sur JeuPHP), je comptes refaire le système de combats, enfin, tout du moins le déroulement en lui même, afin de rendre la défense plus interessante, et la chose plus réaliste et complexe. Jusqu'alors mes combats se résumaient en :
Un tas de paramètres + un nombre de troupes + des variables aléatoires + une formule... Ensuite on compare le résultat pour l'attaque et la défense et celui qui a la plus grosse (:wowowow gagne le combat empoche la thune et on calcule les pertes... Quelquechose de plutot simpliste quoi (enfin pas tellement vu le nombre de paramètres pris en compte, mais d'un point de vue défensif, a par faire de la défense, aucun interet, et l'attaque, à part faire l'attaque, aucun interet..
Pour comprendre ce que je vais tenter d'expliquer par la suite, il faut savoir qu'il y a 5 unités sur mon jeu (enfin y'en a une sixième, le cheval de troie, mais elle est spéciale, elle permet juste de sauter l'enceinte de l'adversaire lors d'un combat, c'est facile à mettre en place) : l'hoplite, le frondeurs, l'archer, la catapulte, et la trirème. Les trirèmes ne peuvent être achetées que par les villes portuaires et fluviales, et donc ne sont pas prises en compte quand l'attaquant ne possède pas une ville fluviale ou portuaire. Chaque joueur n'a qu'une seule ville.
Mon nouveau système se veut inspiré de la réalité... Cela donc un peu selon le type de ville.
Mais tout d'abord je vais parler des options que le joueur peut choisir avant le combat, et donc expliquer comment se déroule le combat
Options d'attaquant :
Les hoplites peuvent attaquer prioritairement (avant la pénétration dans la ville) les hoplites ou les frondeurs adverses, puis, quand ils ont pénétrer dans l'enceinte adversaire, ils peuvent soit choisir de piller un maximum la ville, soit de massacrer l'armée adverse (plus de gains, ou plus de morts.
Les frondeurs peuvent attaquer prioritairement (avant la pénétration dans la ville) les hoplites, les archers ou les frondeurs adverses, puis, quand ils ont pénétrer dans l'enceinte adversaire, ils peuvent soit choisir de piller un maximum la ville, soit de massacrer l'armée adverse (plus de gains, ou plus de morts.
Les archers se comportent comme les frondeurs, mais sont plus puissants, et possèdent une attaque corps à corps.
Les catapultes détruisent l'enceinte adverse en priorité (dans le futur, elles détruiront peut être des bâtiments une fois l'enceinte détruite, mais c'est pas d'actualité)
Les trirèmes, attaquent prioritairement les trirèmes adverses, si il n'y a pas de troupes maritimes adverses, elles aident à la destruction de l'enceinte. On peut choisir de laisser les archers ou les frondeurs à bord des trirèmes pour aider au combat naval... On considère que lorsqu'une ville fluviale ou portuaire attaque une autre ville fluviale ou portuaire, elle passe obligatoirement par une voie fluviale ou maritime pour attaquer.
Options de défenseur :
Les hoplites sortent de l'enceinte au début du combat. On peut choisir d'attaquer prioritairement les archers, catapultes, frondeurs ou hoplites adverses... Si les archers et/ou les frondeurs ne sont pas disponibles, les hoplites se retournent par défaut contre les catapultes ou les hoplites (par défaut)
Les frondeurs peuvent soit se positionner sur l'enceinte, soit descendre dans la pleine. SI ils sont sur les enceintes ils ne peuvent qu'attaquer les hoplites, si ils descendent sur le champ de bataille il y a le choix entre archers, hoplites, frondeurs ou catapultes adverses.
Les archers se comportent comme les frondeurs, mais peuvent aussi attaquer les frondeurs/archers adverses si ils sont positionnés sur l'enceinte.
Les catapultes peuvent être sorties mais elles perdent énormément en puissance et n'ont qu'un impact limité sur le combat.
Les bateaux se comportent comme lors d'une attaque.
A savoir que pour l'instant au moins, on ne pourra pas choisir de mettre 10000 hoplites la et 2000 hoplites la bas.
Le combat devrait se dérouler de la manière suivante : par exemple j'ai choisis que les frondeurs visent les archers adverses en attaquant. Si ils sont plus forts les frondeurs passent à autre chose, sinon ils s'arretent la (mais ne meurent pas tous, trop cruel pour les joueurs sinon).
J'aimerais donc savoir comment coder ce systeme de choix et de priorité de façon optimisée et efficace. Parce que j'aimerais autant éviter de taper 500 lignes de if else. Si vous avez des idées pour en faire sortir des fonctions je prends, j'en ai deja quelques une pour les pertes notamment dans ma classe. J'ai donc des notions de POO même si j'ai pas la 'mentalité objet', comme disent les puristes.
Vous pouvez aussi donner votre avis ou des idées pour faire mieux, c'est toujours bon à prendre.
Merci de votre aide.