What I propose is a system similar to the Total War games that uses a "dice roll" and a complex formula for each unit attack. First, I will give an example of the types of stats a unit will have. These stats are much different than the current system and function differently, but once you start to understand how it works they will seem very straight forward and intuitive.
ATTACK
- Attack.Skill -- Dictated by Unit Type and Level (Basic, Advanced, Elite).
- Attack.Melee -- This generally comes from Weapon-type.
- Attack.Melee.Charge -- This generally comes from Weapon-Type and Unit-Type.
- Attack.Missile -- This only comes with ranged weapons.
- Attack.Bonus -- This is an additive bonus to Attack.Melee(.Charge) and Attack.Missile stats against the Unit Types listed.
Now, the actual attack of a unit is a combination of the above.
- Melee Attack = Attack.Skill+Attack.Melee
- Melee Attack vs. bonused unit = Attack.Skill+Attack.Melee+Attack.Bonus
- Missile Attack = Attack.Skill+Attack.Missile
- Missile Attack vs. bonused unit = Attack.Skill+Attack.Missile+Attack.Bonus
- Charge Attack = Attack.Skill+Attack.Melee.Charge
- Charge Attack vs. bonused unit = Attack.Skill+Attack.Melee.Charge+Attack.Bonus
DEFENSE
- Life Points -- This is generally a low number, like 1. Most units only get 1 LP, while Super Units may get 2 or 3. Heroes get 5.
- Defense.Skill -- Dictated by Unit Type and Level (Basic, Advanced, Elite).
- Defense.Armor -- Denotes body armor and helmets.
- Defense.Shield -- Denotes size and type of shield device.
Now, these Defense values are weighted differently during an attack calculation, based upon different circumstances.
Melee attack from the front
- Defense.Skill -- 100% (The unit receives 100% of the value)
- Defense.Armor -- 100%
- Defense.Shield -- 100%
Melee attack from the flanks
- Defense.Skill -- 50%
- Defense.Armor -- 100%
- Defense.Shield -- 50%
Melee attack from the rear
- Defense.Skill -- 0%
- Defense.Armor -- 100%
- Defense.Shield -- 0%
Missile attack from the front
- Defense.Skill -- 0%
- Defense.Armor -- 100%
- Defense.Shield -- 100%
Missile attack from the left flank
- Defense.Skill -- 0%
- Defense.Armor -- 100%
- Defense.Shield -- 75%
Missile attack from the right flank
- Defense.Skill -- 0%
- Defense.Armor -- 100%
- Defense.Shield -- 25%
Missile attack from the rear
- Defense.Skill -- 0%
- Defense.Armor -- 100%
- Defense.Shield -- 0%
All that pretty much makes sense, right?
CALCULATION
Now, here comes the complex part: The actual combat formula. Unfortunately, I'm not very good at complex math, so bear with me. What happens is that when two units are attacking each other we add a "dice roll" or number randomization for each strike. Dividing the attack and defense values (the attack of the striking unit and the defense of the defending unit), plus using a function that modulates the number to keep it between the highest and lowest possible dice rolls, gives us a threshold over which this dice roll must come out to in order register a "hit" and take away the enemy unit's Life Point. A defending unit with higher defense values will be less likely to die from a strike and an attacking unit has a higher chance of taking a way the enemy's Life Point if they have higher attack values. I'm not a very good mathematician, so we'd need someone to come up with a good formula for this mysterious "function" that always keeps the defense and attack quotient between the highest and lowest possible dice rolls (let's say between 1 and 10 or 1 and 100).
Anyway, so you can see how we can add randomization to the combat, but with Life Points we can keep valuable units from succumbing to just one random hit. With most standard units (Citizen-Soldiers) they will have 1 Life Point, so they will be more subject to the whims of fate. With Super Units and Heroes we add additional Life Points so that a Hit hurts them, but they have a little more staying power.














