Units are now in the game, and i implemented the basics of the IA and real time battle display.
When two ennemy “formations” meet on the same tile of the world map, it triggers an automatic real time battle. Anyone looking at this tile at this moment will be able to witness the battle in real time. The attacking army deploys on the border matching it’s provenance in the world map ( attacking from the North tile, South, East… ) , and the defending army deploys next to its campement on the tile. In cities, player would ideally be able to specify placement of each unit in case of an attack.
After this deployment, AI controlled troops move and fight each other. Psychological factors will make units flee or retreat : for now they just fight to the last pig standing. The 2 armies are then updated on the worldmap.
Les unités sont enfin dans le jeu, et les premières battailles ont eu lieu dans le monde d’Ymir.
Lorsque 2 joueurs sont en guerre, si 2 de leurs armées se retrouvent sur une meme case cela déclenche une bataille qui peut être visualisée en temps réel dans les regions. L’armée attaquante se déployant sur les cotés, et l’armée basée sur la case en son centre.
Pour le moment , ce ne sont que les bases qui sont mises en place : le déroulement des tours de l’IA, la compression et l’envoi des données aux clients, le déclenchement des batailles, l’affichage des troupes sur le terrain, et l’affichage des combats sur les clients en fonction des données reçues par le serveur.
Les citoyens décoratifs dans les rues des villes devraient également bientôt faire leur apparition, maintenant que le système des unités est dans le jeu.
Ya encore beaucoup de boulot pour avoir des batailles basiques fonctionnelles. Elles n’ont pour le moment pas de fin : les batailles ne sauvegardent pas leurs résultat sur les armées et n’ont pas d’effet. Je dois encore aussi gerer les cas des multiples armées ( pour le moment je ne gere que le 1vs 1 ).
Enfin l’IA se contente juste de charger instantanément l’ennemi sans rien faire d’autre. J’ai simplement mis en place la “pipeline” du déclenchement d’une bataille lorsque 2 unités ennemies se retrouvent sur une meme case jusqu’a son affichage dans les régions en temps réel sur les clients.