With the 1.3 code freeze you probably won't appreciate me suggesting a code change for Hero Dice, but here goes anyway


The Problem:
The existing hero dice chat macros work very well counting the stun and body. They only problem comes with half dice. When you roll a half die in the Hero System you roll a D6 and calculate the Stun and Body as below:
Code: Select all
Roll Stn Bdy
1 - 1 - 0
2 - 1 - 0
3 - 2 - 0
4 - 2 - 1
5 - 3 - 1
6 - 3 - 1
Unfortunately this requires extra macro code and it all suddenly becomes very messy

Proposed Solution:
My suggestion is to modify the dicelib to accept dice numbers with decimal places. Then, if the decimal is a suitable value, add a half die to the result. In the Hero System only half dice are valid (ignoring special/killing dice and their pesky +1), no other fraction is allowed. The number of dice rolled is based on STR/5. STR 5 gets you 1d6, STR 8 1 & 1/2. I thought it would be sensible to allow any range of decimal to be entered. That would allow macros to be created as follows:
[h: input("STR")]
[r:dice=STR/5]
Strength=[r:STR] Dice=[r:dice+"d6h"] Stun=[r:eval(dice+"d6h")] Body=[r:eval(dice+"d6b")]
Proposed Changes to Dicelib:
- Add a new regular expression to ExpressionParser to accept examples such as "[4.5d6h] [4.5d6b]" and pass three parameters to HeroRoll, times, size, and the decimal. In this example 4, 6 & 5
- Modify HeroRoll to have a minimum of 2 parameters and a max of 3
- Modify HeroRoll to roll a half dice if the decimal component is a half or more.
- Modify HeroRoll to include the decimal component in the matching logic for stun and body rolls
Its a simple change and I have the code, not sure if I should attach it here or not?
cheers!