@dicelette/core
v1.4.3
Published
Core library for the Dicelette Discord bot
Downloads
86
Maintainers
Readme
@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
- name:
Interface (index.d.ts)
Compare
- sign:
"<"
|">"
|">="
|"<="
|"="
|"!="
|"=="
- value:
number
Critical
Optional
failure:number
Optional
success:number
Modifier
- sign: Sign
- value:
number
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 charactersOptional
critical:Critical
How the success/echec will be doneOptional
damage:{ [name: string]: string }
Special dice for damageOptional
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
| Name | Type | Description |
| :------ | :------ | :------ |
| value
| string
| {string} |
| template
| StatisticalTemplate
| {StatisticalTemplate} |
diceTypeRandomParse(dice
, template
): string
| Name | Type | Description |
| :------ | :------ | :------ |
| dice
| string
| {string} |
| template
| StatisticalTemplate
| {StatisticalTemplate} |
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
| Name | Type |
| :------ | :------ |
| template
| StatisticalTemplate
|
testDamageRoll(template
): void
Test each damage roll from the template.damage
| Name | Type |
| :------ | :------ |
| template
| StatisticalTemplate
|
verifyTemplateValue(template
): StatisticalTemplate
Parse the provided JSON and verify each field to check if everything could work when rolling
| Name | Type |
| :------ | :------ |
| template
| any
|