Ryan's Rock Paper Scissors - Gurmal/ArenaMasters GitHub Wiki

The below was first proposed by Ryan on Slack.

Style 1 = Long Weapon
Style 2 = Weapon and Shield
Style 3 = Grappler
Style 4 = Great Weapon
Style 5 = Two Weapons
(You can add styles but you have to add 2 styles at a time for parity)
1 gets a bonus against 2 and 4
2 gets a bonus against 3 and 5
3 gets a bonus against 4 and 1
4 gets a bonus against 5 and 2
5 gets a bonus against 1 and 3
1 receives a penalty from 3 and 5
2 receives a penalty from 4 and 1
3 receives a penalty from 5 and 2
4 receives a penalty from 1 and 3
5 receives a penalty from 2 and 4
Function Modifier(x,y)[
REM x = Opponent 1 style
REM y = Opponent 2 style
REM mod = x modifier
if 1 > x > 5 or 1 > y > 5 then ERROR
if x == y then mod == 0 else
{if y + 3 > 5 then y = y - 5;
if x - y == 1 then mod == 1 else mod == -1}
Return mod
]
O1 = Opponent 1
O2 = Opponent 2
mod = mod * 20 (or whatever value you prefer)
Each difference in skill level provides a modifier to modifier but with diminishing returns
if 1 different modifier is 15
if 2 different modifier is 25
if 3 different modifier is 30 (assuming 4 levels, 0-3)
For each Attack of O1
(40% + mod of the time O1 hurts O2)
For each Attack of O2
(40% - mod of the time 01 is hurt by 02)