frankmorgner / foe-battle-simulator

Battle Simulator for Forge of Empires
GNU General Public License v3.0
2 stars 1 forks source link

Unit drawing order #3

Open Gindi4711 opened 3 years ago

Gindi4711 commented 3 years ago

If I understand the code correctly drawing order for all units that do not have rapid deployment or rogues are are random.

In reality drawing order depends on unit type. I have not found the rules yet, but in most cases faster units are drawing first.

If there are armies of the same unit type both side are drawing in alternating order beginning with the attacker

Example 2 vs. 2 Nailstorms: PlayerNS, CompNS, PlayerNS, CompNS

If a player has more units of the same type those units will draw first.

Example 4 vs. 2 Nailstorms and 2 Rogues: PlayerNS, PlayerNS, PlayerNS, CompNS, PlayerNS, CompNS, CompRogue, CompRogue

When testing units of the same type the current implementation has more randomization than the actual game would have.

When using armies of mixed units it can have a huge impact for fast units that can hit on turn 1.

frankmorgner commented 3 years ago

Indeed, drawing order is crucial!

Intended order is: rapid_deployment draws first, rogues last, the rest in the middle. The middle is sorted by movement. The last part is stated in the wiki, too.

I double checked and realized that sort_for_drawing() uses health instead of movement. This was a copy/paste error...

frankmorgner commented 3 years ago

I'll try to check ingame whether the player with more units of the same type always draws first...

Gindi4711 commented 3 years ago

Good example of this would be the last guild expedition levels where you are facing 4 heavy units and 4 artillery. If you fight manually with 8 aritllery you win without taking any damage as long as you can 2 hit every enemy artillery.