@Core
The core module for Dicelette, contains :
- The dice function (that parse the string into a Dice Parser and send the result in a good message) ;
- The verification of the template
The two are used in the bot and documentation.
Type alias
- Sign:
"+" | "-" | "*" | "/" | "%" | "^" | "**";
- Statistic :
{ [name: string]: { combinaison?: string; max?: number; min?: number; } }
:
- name:
string
: The name of the statistic - combinaison:
string
: A combinaison between multiple/other statistic, formula... (ex: constitution+2
). Can't coexist with min & max. - max:
number
: The maximum value of the statistic - min:
number
: The minimum value of the statistic
Compare
- sign:
"<"
| ">"
| ">="
| "<="
| "="
| "!="
| "=="
- value:
number
Critical
Optional
failure: number
Optional
success: number
Modifier
Resultat
Optional
comment: string
Optional
compare: Compare
- dice:
string
Optional
modifier: Modifier
- result:
string
Statistical Template
Example
diceType: "1d20+{{$}}>=20"
The dice throw will be 1d20 + statistique that must be less than 20
diceType: "1d20<=$"
The dice throw will be 1d20 that must be less than the statistic
Properties
-
Optional
charName: boolean
Allow to force the user to choose a name for them characters
-
Optional
critical: Critical
How the success/echec will be done
-
Optional
damage: { [name: string]: string }
Special dice for damage
-
Optional
diceType: string
A die type in the notation supported by the bot. See documentation for syntaxe.
-
Optional
statistics: Statistic
-
Optional
total: number
A total can be set, it allows to calculate the total value of a future register member
If the sum of the value > total, the bot will send a message to the user to inform him that the total is exceeded and an error will be thrown
Note: Statistic that have a formula will be ignored from the total
Modules
Dice
Variables
const
COMMENT_REGEX: RegExp
Functions
calculator(sign
, value
, total
): number
Evaluate a formula and replace "^" by "**" if any
Name | Type |
---|
sign | Sign |
value | number |
total | number |
roll(dice
): Resultat
| undefined
Parse the string provided and turn it as a readable dice for dice parser
Name | Type | Description |
---|
dice | string | {string} |
Utils
cleanedDice(dice
): string
Replace the ++ +- -- by their proper value:
Name | Type | Description |
---|
dice | string | {string} |
escapeRegex(string
): string
Escape regex string
Name | Type | Description |
---|
string | string | {string} |
generateStatsDice(originalDice
, stats?
): string
Replace the stat name by their value using stat and after evaluate any formula using replaceFormulaInDice
Name | Type | Description |
---|
originalDice | string | {dice} |
stats? | Object | {[name: string]: number} |
replaceFormulaInDice(dice
, stats
): string
Replace the {{}} in the dice string and evaluate the interior if any
Name | Type | Description |
---|
dice | string | {string} |
Verify Template
diceRandomParse(value
, template
): string
Generate a random dice and remove the formula (+ evaluate it)
Used for diceDamage only
diceTypeRandomParse(dice
, template
): string
evalCombinaison(combinaison
, stats
): Object
Random the combinaison and evaluate it to check if everything is valid
Name | Type | Description |
---|
combinaison | Object | {[name: string]: string} |
stats | Object | {[name: string]: string|number} |
evalOneCombinaison(combinaison
, stats
): any
Evaluate one selected combinaison
Name | Type | Description |
---|
combinaison | string | {string} |
stats | Object | {[name: string]: string|number} |
evalStatsDice(testDice
, stats?
): string
Verify if the provided dice work with random value
Name | Type | Description |
---|
testDice | string | {string} |
stats? | Object | {[name: string]: number} |
generateRandomStat(total?
, max?
, min?
): number
Name | Type | Default value |
---|
total | undefined | number | 100 |
max? | number | undefined |
min? | number | undefined |
testCombinaison(template
): void
Test all combinaison with generated random value
testDamageRoll(template
): void
Test each damage roll from the template.damage
Parse the provided JSON and verify each field to check if everything could work when rolling