To demonstrate and test Hack100’s combat system, I wrote a simple script that runs through the combat sequence described in the previous blog for a fight between two characters. Within the script, the relevant Abilities of the two combatants can be defined. The script then loops through the combat sequence until the Health of one (or both) of them is reduced to zero. A given match-up can be repeated any number of times to build up a profile of wins, losses and average fight length.
In the example below, we have a fight between two identical characters. Both have values of 50 for Agility, Toughness, Willpower and Hand-to-Hand. This gives them a Health of 20. The net Damage Modifier is zero, which means that the relative effectiveness of their weapons and armour cancel each other out (I’ll talk more about Damage Modifiers in a future blog, but think of it as a fight between two characters that are both unarmed and unarmoured – a classic barroom brawl).
Only the first three rounds of the combat are shown below to illustrate how the process works (it’s not the most exciting of reading!). In this example, the fight eventually took 8 rounds to resolve, with B emerging victorious.
Overall, when this particular contest was repeated 100 times, Character A won 47 times and Character B won 52 times, with 1 fight drawn (i.e. both killed each other in a round with tied Initiative). The average fight length was 9 rounds – somewhat longer than the 5 rounds that was the stated target in an earlier blog, but remember that here both combatants were unarmed. Combats will become shorter as the effectiveness of the weapons increases in comparison to the armour worn.
One “quirk” of the combat system that becomes evident is that the most damage is done when the attacker misses with a high roll and the defender misses with a lower roll (or fumbles, e.g. B’s attack in Round 2). This can be thought of as a wild, lucky swing that somehow gets through an opponent’s defence.
A’s Agility = 50
A’s Toughness = 50
A’s Will Power = 50
A’s Hand-to-Hand = 50
—
B’s Agility = 50
B’s Toughness = 50
B’s Will Power = 50
B’s Hand-to-Hand = 50
~~~~~~~
A’s initiative roll: 12
B’s initiative roll: 13
B wins initiative
Attack roll: Tens = 1 , Units = 0 , d100 = 10
Ordinary attack success
Defence roll: Tens = 8 , Units = 8 , d100 = 88
Fumbled defence!!!
Attacker wins Opposed Task Roll
Defender takes 1 damage
A’s Health is now 19
Attack roll: Tens = 7 , Units = 0 , d100 = 70
Attack failure
Defence roll: Tens = 7 , Units = 6 , d100 = 76
Defence failure
Opposed Task Roll tied, but defender’s roll was higher
Defender takes no damage
B’s Health is now 20
~~~~~~~
A’s initiative roll: 11
B’s initiative roll: 10
A wins initiative
Attack roll: Tens = 3 , Units = 5 , d100 = 35
Ordinary attack success
Defence roll: Tens = 0 , Units = 6 , d100 = 6
Ordinary defence success
Opposed Task Roll tied, but attacker’s roll was higher
Defender takes 3 damage
B’s Health is now 17
Attack roll: Tens = 9 , Units = 1 , d100 = 91
Attack failure
Defence roll: Tens = 5 , Units = 5 , d100 = 55
Fumbled defence!!!
Attacker wins Opposed Task Roll
Defender takes 9 damage
A’s Health is now 10
~~~~~~~
A’s initiative roll: 10
B’s initiative roll: 13
B wins initiative
Attack roll: Tens = 4 , Units = 1 , d100 = 41
Ordinary attack success
Defence roll: Tens = 2 , Units = 2 , d100 = 22
*** Critical defence success ***
Defender wins Opposed Task Roll
Defender takes no damage
A’s Health is now 10
Attack roll: Tens = 8 , Units = 8 , d100 = 88
Fumbled attack!!!
Defence roll: Tens = 1 , Units = 1 , d100 = 11
*** Critical defence success ***
Defender wins Opposed Task Roll
Defender takes no damage
B’s Health is now 17