Skip to content

Dicelette/core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@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

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 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

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

About

Core function for roll and template

Resources

License

Stars

Watchers

Forks

Packages

No packages published