 # Resistance Roll Calculator

Apr 26th, 2018
15
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. \ https://pastebin.com/14fyEGYx \
2. \ Resistance Roll Calculator. Use with http://topps.diku.dk/torbenm/troll.msp \
3.
4. attackerSL:= 10
5. \ Put the attacker's effective SL here. Default is 10. \
6. ;
7. defenderSL:= 10
8. \ Put the defender's target number here. Default is 10. \
9. ;
10. usesRuleOfNumber:= 1
11. \ If it's a supernatural attack that uses the Rule of 16 (or some other number, entered below), then leave as 1 here (default). Otherwise, change to 0. \
12. ;
13. ruleOf:= 16
14. \ Enter 16 for Rule of 16, which is the default. Replace with the appropriate number if you're using a different Rule. \
15. ;
16. attackerCritWins:= 1
17. \ Leave as 1 if the attacker automatically wins the contest on a critical success. Change to 0 if this is not the case.
18. ;
19.
20. \---End of user input! The rest below is the code.---\
21.
22. skillX:= if {usesRuleOfNumber =/= 1} then attackerSL else
23. if {defenderSL > ruleOf} then attackerSL else min{ruleOf,attackerSL};
24. skillY:= defenderSL;
25. rollX:= sum{1d6+1d6+1d6};
26. rollY:= sum{1d6+1d6+1d6};
27. resultX:= sum{skillX-rollX};
28. resultY:= sum{skillY-rollY};
29.
30. critThresholdX:=
31. {
32. if {skillX >= 16}
33. then 6
34. else
35. if {skillX = 15}
36. then 5
37. else 4
38. };
39.
40. critYes:=
41. {
42. if rollX <= critThresholdX
43. then 1
44. else 0
45. };
46.
47.
48. \---End of setting variables. Below determines the output.---\
49.
50. if {attackerCritWins = 1} then
51. if {critYes = 1} then "WIN" else
52. if {resultX < 0} then "LOSE" else
53. if {resultX <= resultY} then "LOSE" else "WIN"
54. else
55. if {resultX < 0} then "LOSE" else
56. if {resultX <= resultY} then "LOSE" else "WIN"
57.
58. \ Last updated: 2018-04-27