frankmorgner / foe-battle-simulator

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

Range and movement costs #4

Closed Gindi4711 closed 3 years ago

Gindi4711 commented 3 years ago

Range and movement costs depend on the era of the newest unit on either side. If at least one unit is in ProgressiveEra on newer the higher values are used.

Bronze - Industrial: Range costs are 1 Movement costs are 2 for plains. Other terrain will have higher costs

ProgressiveEra or newer: Range costs are 1.5 (values are rounded after dividing by 1.5) Movement costs are 3 for plains. Other terrain will have higher costs (+50% more than in Bronze-Industrial) Flying units always have movement costs of 3 (same as plains)

frankmorgner commented 3 years ago

I didn't know about the range cost... can this be verified or do you have a source?

Regarding moving const, fight() has a static parameter moving_cost, wich is at 3, by default (planes PE onwards). Since I don't currently have a two dimensional field with terrains, I think that's good enough... (see also README.md)

frankmorgner commented 3 years ago

I just confirmed in-game that range is not affected by the map scaling.

Gindi4711 commented 3 years ago

For range the values of the units are divided by 1.5 when the battle starts.

Example: Nailstorm has range of 16 as shown in the units menu In battle it has range of 11 as shown in the tooltip

For movement the tooltip shows the same values but all terrain costs are multiplied by 1.5

This is important when determining if a flying unit can hit on turn 1 or not. For example Energy Cannon has enough speed + range to hit enemy units in turn 1 so if you are in the 2 hit per kill range those will kill 4 of the enemy 8 units before those can attack. In combination with keen eye and AO this is often 5-6 units so first wave is without much losses.

Fast units of SAAB do not have enough range so they cant hit in turn 1 which makes them a lot less effective and will get hit by Nailstorms first.

frankmorgner commented 3 years ago

I see now, thanks for pointing this out