Try the Conscript Combat Simulator
I tried my best to reverse engineer Warsong's combat. Actually it's really simple, but also very exciting, like Warsong was.
When two units engage in combat, this is the order of sequence.
- Get the number of shots for each unit, based on HP and unit type.
- If both units are alive and at least one unit still has shots left, go into attack phase for each unit that has shots left.
- For each shot, there are 2 sub rounds:
- First round, see if defending unit evaded from terrain bonus. If evaded, then round is over.
- If terrain had no effect, continue to second round.
- Attacker tries to hit defender using this formula: 1% < (unit1.attack - unit2.defense) * 5% + 50% < 99%
- If miss, try again using restrike chance formula: Math.random() * 100 < unit1.level * RESTRIKE , where RESTRIKE is set at 5%
- Keep trying until the shot hits or restrike chance failed. Higher level units have more chances to get restrike chains.