| Alors, il existe une solution un peu crado à base d'ennemi invisible.
En gros, l'idée c'est d'avoir toujours un ennemi supplémentaire au groupe ( donc ça limite à 7 ennemis réels au lieu de 8 ), qui meure et ressuscite selon les actions.
Cet ennemi aurait toute ses stats aux maximums / minimums, et pas de sprite.
Au tour 0, on tue l'ennemi, comme ça, peut importe qui commence, il ne pourra pas être sélectionné.
Ensuite au tour 1x + 1 ( donc tout les tours après le premier tour ), on ressuscite l'ennemi.
Comme cette condition se fait entre le choix de l'action, et le début de sa réalisation, l'ennemi ne devrait pas pouvoir être sélectionner, mais à la fin de l'action il sera encore en vie.
Ensuite, on rajoute une page avec comme condition "Enemy[X]'s HP [0-100]". J'ai jamais vraiment compris, mais cette action ne se situe pas au même moment que la condition précédente, je suppose qu'elle se fait à chaque fois qu'un personnage "peut" subir des dégâts, et pas à des moments fixes.
Ou dedans tu fais ta condition "tous le monde est mort" et tes actions dans se cas, puis dans tout les cas, tu tue l'ennemi X.
( X étant l'ennemi supplémentaire )
En gros ça donnerait un truc comme le second groupe de cette démo :
https://www.mediafire.com/file/a50q81t1lt7rzxp/BattleHUD.zip/file
( Fais pas trop gaffe au reste, j'avais commencer à check pour faire une interface custom en combat en évents, avec une version modifié du RPG_RT.exe )
( Evidemment, tout le POC part du principe que tu veux checks que à la mort des ennemis, mais je suppose qu'en faisant un truc un peu similaire pour les héros devrait marcher )
Les gros problèmes :
Déjà, tu retires un ennemi max.
Ensuite, sur les attaques multi cibles, t'as des chances que ça réagissent de manière pas top :
- Déjà, t'aura le popup des dégâts. Si tu te demerde bien, en jouant sur la position et la taille du sprite invisible, tu doit pouvoir faire en sorte que le pop up soit en dehors de l'écran, et donc invisible.
- Ensuite, si par malheur tu tues l'ennemi X pendant une attaque, ben la seconde partie des events ne se jouera jamais puisque tout le monde sera mort au "mauvais" moment.
En jouant sur les %age de la stats de morts, le cas d'une attaque d'auto mort peut être facilement éviter, mais pour les dégâts, si tes héros ont trop de stats pour pouvoir one shot l'ennemi, ça va poser problème. Sans trop faire les calculs, si tu mets toute les stats de l'ennemi X aux max ( sauf l'agi ), ça devrait passer ( 999 * 4 - 999 * 2 = 999 * 2 ~= 2000, donc si l'ennemi à le max HP, je pense que ça devrait aller. Au pire, il suffit de full heal l'ennemi au lieu de lui retirer son status )
Une autre solution pour que ça soit compatible avec EasyRPG, ben ça serait simplement d'utiliser une version custom de EasyRPG.
Comme c'est un logiciel OpenSource, tout le monde peut faire ses propres modifications, et s'en servir.
Pas mal de personnes ont bossées sur de nouvelles fonctionnalités, que tu pourra retrouver ici :
https://github.com/EasyRPG-NewFeatures/Player/branches/all
De plus, c'est du C++, et jouer un évènement à un moment donné en combat n'est rien de très compliqué.
Le gros problème de faire ça, c'est évidemment que tu dois toi même faire le code ( ou espérer que quelqu'un l'ai déjà fait / demander à quelqu'un ), puis recompiler toute les versions du player que tu auras besoin ( Web, Windows, Linux, ... ), ce qui peut être très chiant à faire.
A savoir aussi que plusieurs personnes ( dont moi ), ont travaillé sur l'implémentation partielle du patch Maniacs sur sa partie combat, qui donne accès a beaucoup plus de possibilités ( dont une gestion beaucoup plus poussées des combats, comme des évènements // en combats, l'appel d'évènement à des moments précis du combat comme le pop-up des dégâts, ou juste après le choix d'une action ), mais comme pour la version customisé, rien de tout ça n'est implanté officiellement dans EasyRPG, et il est possible que ça ne le soit jamais.
A savoir aussi que EasyRPG intègre déjà une partie du patch Maniacs, notamment tout ce qui touche à la commande ShowStringPictures et StringVar qui permet d'afficher du texte avec le moteur du jeu, en tant que Picture, et d'avoir des variables qui contiennent du texte, et de lire / écrire un fichier texte ( extrêmement utile pour lire la BD de RM une fois extraite au format .txt )
Ce qui est plus que très pratique pour faire des CMS / CBS.
|