이 주사위 롤러는 주사위 굴림의 구성 요소 부분을 포함하는 객체를 반환하는 문자열 파서입니다. 전체 Roll20 Dice 사양을 지원합니다. 주사위 굴리기 형식의 표현을 생성하기 위해 pegjs 문법을 사용합니다. 그런 다음 이를 간단한 숫자 값으로 변환하거나 전체 롤 세부 정보를 표시하는 데 사용되는 복잡한 개체로 변환할 수 있습니다.
이것은 Ben Morton의 dice_roller 프로젝트의 포크입니다. 몇 가지 버그가 있어서 프로젝트에 필요한 수정 사항과 기능을 다시 게시하고 있습니다.
다음을 사용하여 라이브러리를 설치하십시오.
npm install dice-roller-parser
설치가 완료되면 브라우저에서 라이브러리를 로드하기만 하면 됩니다.
< script src =" node_modules/dice-roller-parser/dist/index.js " > </ script >
또는 노드에서:
import { DiceRoller } from "dice-roller-parser" ;
그런 다음 DiceRoller
클래스의 새 인스턴스를 만들고 이를 사용하여 주사위 굴리기를 수행합니다.
const diceRoller = new DiceRoller ( ) ;
// Returns the total rolled value
const roll = diceRoller . rollValue ( "2d20kh1" ) ;
console . log ( roll ) ;
// Returns an object representing the dice roll, use to display the component parts of the roll
const rollObject = diceRoller . roll ( "2d20kh1" ) ;
console . log ( rollObject . value ) ;
이 라이브러리는 DiceRoller
및 DiscordRollRenderer
라는 두 가지 클래스를 노출합니다.
DiceRoller
DiceRoller
클래스는 주사위 문자열의 구문 분석과 결과에 따른 굴림 수행을 관리합니다.
// Creates a new instance of the DiceRoller class
const roller = new DiceRoller ( ) ;
기본 생성자는 Math.random
사용하고 주사위당 최대 1000개의 롤 수를 적용합니다. 이는 다음 생성자 오버로드를 사용하여 지정할 수 있습니다.
DiceRoller(GeneratorFunction)
주사위 롤러의 난수 생성기로 사용할 함수를 지정할 수 있습니다. 이 함수는 () => number
유형이어야 하며 0과 1 사이의 숫자를 반환해야 합니다. 기본적으로 내장 Math.random
메서드를 사용합니다.
// Default constructor using Math.random
const roller = new DiceRoller ( ) ;
// Uses a custom random generator that always returns 0.5
const roller = new DiceRoller ( ( ) => 0.5 ) ;
이는 randFunction
속성을 사용하여 읽거나 수정할 수 있습니다.
roller . randFunction = ( ) => 0.5 ;
DiceRoller(GeneratorFunction, MaxRollsPerDie)
매우 많은 수의 주사위 굴림을 분석하려는 시도를 방지하기 위해 주사위의 최대 굴림 수를 지정할 수 있습니다. 기본값은 1000으로 설정되어 있습니다.
// Uses the default constructor with a limit of 100 rolls per die
const roller = new DiceRoller ( null , 100 ) ;
// Uses a custom random generator that always returns 0.5, and a limit of 10 rolls per die
const roller = new DiceRoller ( ( ) => 0.5 , 10 ) ;
이는 maxRollCount
속성을 사용하여 읽거나 수정할 수 있습니다.
roller . maxRollCount = 75 ;
DiceRoller
클래스가 생성되면 주사위 굴리기를 수행하는 세 가지 옵션이 있습니다.
rollValue
메소드는 주사위 문자열 입력을 가져와 구문 분석하고 롤을 수행하고 계산된 숫자 값 결과를 반환합니다.
// Rolls 2 d20 dice and keeps the value of the highest
const roll = roller . rollValue ( "2d20kh1" ) ;
// Prints out the numeric value result
console . log ( roll ) ;
roll
메소드는 주사위 문자열 입력을 받아 구문 분석하고 굴림을 수행한 다음 굴림을 나타내는 객체를 반환합니다. 롤 개체를 사용하면 단순히 최종 값을 출력하는 대신 자신만의 롤 표시 기능을 구축할 수 있습니다.
// Rolls 2 d20 dice and keeps the value of the highest
const roll = roller . roll ( "2d20kh1" ) ;
// Print out the full roll breakdown
printDiceRoll ( roll ) ;
// Prints out the numeric value result
console . log ( `Final roll value: ${ roll . Value } ` ) ;
반환된 개체에 대한 자세한 내용은 아래 출력 유형 섹션의 롤 결과 출력을 참조하세요.
parse
메소드는 주사위 문자열 입력을 가져와 구문 분석하고 구문 분석된 입력의 표현을 반환합니다. 이는 주사위 굴림을 수행하거나 원래 입력을 재구성하는 데 사용될 수 있습니다. rollParsed
메서드는 이 구문 분석된 결과를 입력으로 사용하여 롤을 수행하고 roll
메서드와 동일한 출력을 반환합니다.
// Rolls 2 d20 dice and keeps the value of the highest
const parsedInput = roller . parse ( "2d20kh1" ) ;
// Print out a re-constructed input string
printParsedInput ( parsedInput ) ;
// Run the roller on the parsed object
const roll = roller . rollParsed ( parsedInput ) ;
// Print out the full roll breakdown
printDiceRoll ( roll ) ;
// Print out the numeric value result
console . log ( `Final roll value: ${ roll . Value } ` ) ;
반환된 개체에 대한 자세한 내용은 아래 출력 유형 섹션의 구문 분석된 롤 출력을 참조하세요.
DiscordRollRenderer
DiscordRollRenderer
클래스는 RollBase
개체로 표시되는 롤링 입력을 가져와 Discord와 호환되는 마크다운 형식의 문자열로 렌더링하는 예제 렌더러 클래스입니다.
// Creates a new instance of the DiceRoller class
const renderer = new DiscordRollRenderer ( ) ;
DiscordRollRenderer
단일 매개 변수를 사용하여 단일 render
메서드, 렌더링할 RollBase
개체를 노출하고 렌더링된 문자열을 반환합니다.
// Rolls 2 d20 dice and keeps the value of the highest
const roll = roller . rollValue ( "2d20kh1" ) ;
// Get the formatted string
const render = renderer . render ( roll ) ;
console . log ( render ) ;
이 라이브러리를 개발하려면 저장소를 복제하고 설치를 실행하세요.
npm install
그런 다음 빌드를 수행합니다.
npm run build
이는 다음 네 가지 작업을 수행합니다.
# Clean any existing builds
npm run clean
# Build the dice grammer
npx pegjs src/diceroll.pegjs
# Run tslint against the project
tslint -c tslint.json --project tsconfig.json
# Then run webpack to build and package everything up nicely
webpack
테스트 스위트를 실행하려면 다음을 사용하십시오.
npm run test
그게 전부입니다!
다음 객체 유형은 DiceRoller
클래스의 출력이며 TypeScript 사용자를 위한 인터페이스로 사용할 수 있습니다.
주사위 결과가 반환하는 객체는 다음과 같은 유형으로 구성됩니다.
RollBase
유형 속성을 기반으로 확장된 모든 주사위 굴림의 기본 클래스입니다.
재산 | 유형 | 설명 |
---|---|---|
성공 | boolean | 목표 번호 굴림에 대한 굴림이 성공했습니까? 예: 3d6 > 3 |
유형 | RollType | 이 개체가 나타내는 롤 유형입니다. |
유효한 | boolean | 롤이 여전히 유효하며 계산에 포함됩니까? |
값 | number | 이 롤의 롤 또는 계산된 값입니다. |
상표 | string | 이 롤의 표시 라벨입니다. 이 속성은 선택 사항입니다. |
주문하다 | number | 그룹 내에서 주사위 굴림의 순서를 유지하는 데 사용되는 속성입니다. |
RollType
유효한 롤 유형의 열거형입니다. 가능한 값은 다음과 같습니다.
"number"
"diceexpressionroll"
"expressionroll"
"mathfunction"
"grouproll"
"fate"
"die"
"roll"
"fateroll"
GroupedRoll
주사위 그룹을 위해 확장된 중간 인터페이스입니다. 이 인터페이스는 RollBase
확장합니다.
재산 | 유형 | 설명 |
---|---|---|
주사위 | Array< RollBase > | 롤은 이 그룹의 일부로 포함됩니다. |
DiceExpressionRoll
주사위 표현을 표현한 것입니다. 이 인터페이스는 GroupedRoll
확장합니다.
예
2d20 + 6d6
재산 | 유형 | 설명 |
---|---|---|
유형 | "diceexpressionroll" | 이 개체가 나타내는 롤 유형입니다. |
작전 | Array< DiceGroupMathOperation > | 롤에 대해 수행할 작업입니다. |
ExpressionRoll
수학적 표현의 표현입니다. 이 인터페이스는 GroupedRoll
확장합니다.
예
20 * 17
재산 | 유형 | 설명 |
---|---|---|
유형 | "expressionroll" | 이 개체가 나타내는 롤 유형입니다. |
작전 | Array< MathOperation > | 롤에 대해 수행할 작업입니다. |
MathFunctionRoll
수학 함수의 표현입니다. 이 인터페이스는 RollBase
확장합니다.
예
floor(20 / 17)
재산 | 유형 | 설명 |
---|---|---|
유형 | "expressionfunc" | 이 개체가 나타내는 롤 유형입니다. |
작전 | MathFunction | 롤에 대해 수행할 작업입니다. |
특급 | RollBase | 함수가 적용되는 표현식입니다. |
GroupRoll
롤 그룹의 표현
예
{4d6,3d6}. 이 인터페이스는
GroupedRoll
확장합니다.
재산 | 유형 | 설명 |
---|---|---|
유형 | "grouproll" | 이 개체가 나타내는 롤 유형입니다. |
DiceRollResult
주사위 그룹의 굴린 결과입니다. 이 인터페이스는 RollBase
확장합니다.
예
6d20
재산 | 유형 | 설명 |
---|---|---|
주사위 | RollBase | 이 결과가 나타내는 주사위입니다. |
유형 | "die" | 이 개체가 나타내는 롤 유형입니다. |
롤 | DieRollBase [] | 주사위의 각 롤. |
세다 | RollBase | 주사위의 굴림 수입니다. |
일치 | boolean | 경기결과인지. |
DieRollBase
개별 다이 롤을 위해 확장된 중간 인터페이스입니다(아래 참조). 이 인터페이스는 RollBase
확장합니다.
재산 | 유형 | 설명 |
---|---|---|
연타 | number | 주사위를 굴린 결과입니다. |
일치 | boolean | 이 굴림이 일치하는지 여부입니다. |
DieRoll
일반 주사위의 굴림. 이 인터페이스는 DieRollBase
확장합니다.
예
d20
재산 | 유형 | 설명 |
---|---|---|
주사위 | number | 굴릴 주사위 번호입니다. |
유형 | "roll" | 이 개체가 나타내는 롤 유형입니다. |
비판적인 | CriticalType | 이 역할이 중요한 성공 또는 실패인지 여부(렌더링의 경우) |
FateDieRoll
운명의 굴림은 죽습니다. 이 인터페이스는 DieRollBase
확장합니다.
예
dF
재산 | 유형 | 설명 |
---|---|---|
유형 | "fateroll" | 이 개체가 나타내는 롤 유형입니다. |
다음 인터페이스는 구문 분석된 입력 문자열의 재표시로 라이브러리에 의해 노출됩니다. parse
메소드의 응답은 RootType
객체이며 이를 확장하는 인터페이스 중 하나일 수 있습니다.
ParsedObjectType
유효한 롤 유형의 열거형입니다. 가능한 값은 다음과 같습니다.
"number"
"inline"
"success"
"failure"
"crit"
"critfail"
"match"
"keep"
"drop"
"group"
"diceExpression"
"sort"
"explode"
"compound"
"penetrate"
"reroll"
"rerollOnce"
"target"
"die"
"fate"
"expression"
"math"
"mathfunction"
ParsedType
이는 모든 구문 분석된 유형의 기본 인터페이스입니다.
재산 | 유형 | 설명 |
---|---|---|
유형 | string | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
RootType
이는 루트 유형이 될 수 있는 구문 분석된 유형의 하위 집합에 대한 기본 인터페이스입니다. 이 객체는 ParsedType
인터페이스를 확장합니다.
재산 | 유형 | 설명 |
---|---|---|
상표? | string | 이 롤에 첨부된 텍스트 라벨입니다. 이 속성은 선택 사항입니다. |
뿌리 | boolean | 이것이 구문 분석 트리의 루트인지 여부를 나타내는 부울 플래그입니다. |
NumberType
이 객체는 입력의 단일 숫자를 나타냅니다. 이 객체는 RootType
인터페이스를 확장합니다.
재산 | 유형 | 설명 |
---|---|---|
유형 | "number" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
값 | number | 숫자의 값입니다. |
InlineExpression
이 객체는 문자열 내에서 이중 대괄호로 묶인 인라인 주사위 표현식을 나타냅니다. 이 객체는 RootType
인터페이스를 확장합니다.
예
I want to roll [[2d20]] dice
재산 | 유형 | 설명 |
---|---|---|
유형 | "inline" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
특급 | Expression | 인라인 문자열로 구문 분석된 표현식입니다. |
AnyRoll
유효한 롤을 나타내는 결합 유형입니다. 이는 다음 유형의 조합입니다.
GroupedRoll
FullRoll
NumberType
ModGroupedRoll
이 개체는 선택적 수정자가 있는 그룹화된 롤을 나타냅니다. 이 객체는 RootType
인터페이스를 확장합니다.
예
{4d6+3d8}kh1
재산 | 유형 | 설명 |
---|---|---|
모드 | Array< KeepDropModType , SuccessFailureModType > | 그룹화된 롤에 적용할 수정자입니다. |
SuccessFailureCritModType
성공 테스트 수정자를 나타내는 개체입니다. 이 객체는 ParsedType
인터페이스를 확장합니다. "success"
또는 "failure"
수정자는 결과를 목표를 충족하는 굴림 수를 반환하는 성공 유형 결과로 변환합니다. "crit"
또는 "critfail"
수정자는 판정이 중대한 성공 또는 중대한 실패로 표시되어야 하는지 여부를 테스트합니다.
예
성공:
3d6>3
실패:3d6f<3
재산 | 유형 | 설명 |
---|---|---|
유형 | "success", "failure", "crit", "critfail" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
모드 | CompareOperation | 조건에 사용할 검사 유형입니다. |
특급 | RollExpression | 성공 조건을 나타내는 표현식입니다. |
SuccessFailureModType
SuccessFailureCritModType
과 동일하지만 "성공" 및 "실패" 수정자만 지원합니다. 이 개체는 SuccessFailureCritModType
인터페이스를 확장합니다.
예
성공:
3d6>3
실패:3d6f<3
재산 | 유형 | 설명 |
---|---|---|
유형 | "success", "failure" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
모드 | CompareOperation | 조건에 사용할 검사 유형입니다. |
특급 | RollExpression | 성공 조건을 나타내는 표현식입니다. |
MatchModType
Roll20에서 주사위 출력 표시를 수정하는 데 사용되는 일치 유형 수정자를 나타내는 개체입니다. 이 객체는 ParsedType
인터페이스를 확장합니다.
예
2d6m
mt
확장과 함께 사용하면 찾은 일치 항목 수를 반환합니다.
예
20d6mt
필요한 일치 항목 수를 늘리거나 일치 항목에 제약 조건을 추가하는 추가 인수를 지정할 수 있습니다.
예
20d6mt3 counts matches of 3 items
예
20d6m>3 Only counts matches where the rolled value is > 3
재산 | 유형 | 설명 |
---|---|---|
유형 | "match" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
분 | NumberType | 수락할 최소 일치 항목 수입니다. 이 속성의 기본값은 NumberType 으로 2입니다. |
세다 | boolean | 일치 항목을 계산할지 여부입니다. |
모드? | CompareOperation | 지정된 경우 일치 조건에 사용할 검사 유형입니다. 이 필드는 선택 사항입니다. |
특급? | RollExpression | 지정된 경우 일치 조건을 나타내는 표현식입니다. 이 필드는 선택 사항입니다. |
KeepDropModType
유지 또는 삭제 수정자를 나타내는 개체로, 유지하거나 삭제할 주사위 굴림 수(최고 또는 최저 굴림)를 지정합니다. 이 객체는 ParsedType
인터페이스를 확장합니다.
예
유지:
2d20kh1
드롭:2d20dl1
재산 | 유형 | 설명 |
---|---|---|
유형 | "keep", "drop" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
최고 수준 | HighLowType | 최고 또는 최저 롤을 유지/삭제할지 여부입니다. |
특급 | RollExpression | 유지/삭제할 굴림 수를 나타내는 표현식입니다. 이 속성의 기본값은 NumberType 으로 1입니다. 예: 2d6 |
GroupedRoll
이 개체는 선택적 수정자와 결합된 롤 그룹을 나타냅니다. 이 객체는 ModGroupedRoll
인터페이스를 확장합니다.
예
{2d6,3d6}
재산 | 유형 | 설명 |
---|---|---|
유형 | "group" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
롤 | Array< RollExpression > | 이 그룹에 포함된 롤 그룹입니다. |
RollExpressionType
복잡한 롤과 그룹을 포함하는 롤 표현을 나타내는 개체로 추가 작업만 허용합니다. 이 객체는 RootType
인터페이스를 확장합니다.
예
{2d6,3d6}kh1 + {3d6 + 2d6}kh2
재산 | 유형 | 설명 |
---|---|---|
머리 | RollOrExpression | 초기 롤 또는 롤 표현식의 표현식입니다. |
유형 | "diceExpression" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
작전 | Array< MathType < RollOrExpression , DiceGroupMathOperation >> | 초기 굴림 또는 표현식에 적용할 작업입니다. |
RollExpression
복잡한 롤 표현식, 롤 또는 수학 표현식의 도우미 유형 조합입니다. 다음 유형을 나타냅니다.
RollExpressionType
RollOrExpression
RollOrExpression
롤 또는 수학 표현식의 도우미 유형 조합입니다. 다음 유형을 나타냅니다.
FullRoll
Expression
FullRoll
주사위 굴림 및 모든 수정자를 포함하는 굴림을 나타내는 개체입니다. 이 객체는 DiceRoll
인터페이스를 확장합니다.
예
2d6kh1
재산 | 유형 | 설명 |
---|---|---|
개조? | Array< ReRollMod , KeepDropModType > | 롤에 연결된 수정자입니다. 이 속성은 선택 사항입니다. |
목표? | Array< SuccessFailureCritModType > | 롤의 성공 또는 실패 대상입니다. 이 속성은 선택 사항입니다. |
성냥? | MatchModTyp | 롤에 대한 모든 일치 수정자입니다. 이 속성은 선택 사항입니다. |
종류? | SortRollType | 롤에 적용할 정렬 작업입니다. 이 속성은 선택 사항입니다. |
SortRollType
롤에 적용할 정렬 작업입니다. 이 객체는 ParsedType
인터페이스를 확장합니다.
예
10d6sa
재산 | 유형 | 설명 |
---|---|---|
유형 | "sort" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
오름차순 | boolean | 오름차순으로 정렬할지, 내림차순으로 정렬할지 여부입니다. |
ReRollMod
롤에 적용할 재롤 작업을 나타내는 개체입니다. 다음 유형 중 하나일 수 있습니다.
"explode"
: 목표를 충족하는 주사위를 다시 굴리고, 새 굴림이 일치하면 계속합니다."compound"
: 목표를 충족하는 주사위를 다시 굴리고, 새 굴림이 일치하면 계속해서 결과를 단일 굴림에 추가합니다."penetrate"
: 목표를 충족하는 주사위를 다시 굴려서 새 값에서 1을 빼고, 새 굴림이 일치하면 계속합니다."reroll"
: 목표를 충족하는 한 주사위를 다시 굴리고 최종 굴림은 유지합니다."rerollOnce"
: 목표를 충족하면 주사위를 한 번 다시 굴리고 새 굴림을 유지합니다.예
2d6!
재산 | 유형 | 설명 |
---|---|---|
유형 | "explode", "compound", "penetrate", "reroll", "rerollOnce" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
목표 | TargetMod | 롤 값을 비교할 대상 수정자입니다. |
TargetMod
굴림에 적용할 대상 수정자를 나타내는 개체입니다. 이 객체는 ParsedType
인터페이스를 확장합니다.
재산 | 유형 | 설명 |
---|---|---|
유형 | "target" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
모드 | CompareOperation | 조건에 사용할 검사 유형입니다. |
값 | RollExpr | 대상 조건 값을 나타내는 표현식입니다. |
DiceRoll
주사위 굴림의 표현입니다. 이 객체는 RootType
인터페이스를 확장합니다.
예
2d6
재산 | 유형 | 설명 |
---|---|---|
주사위 | RollExpr , FateExpr | 굴릴 주사위 값은 운명 주사위, 숫자 또는 복잡한 굴림 표현식일 수 있습니다. |
세다 | RollExpr | 이 주사위를 굴리는 데 걸리는 시간입니다. |
유형 | "die" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
FateExpr
운명 주사위 굴림을 표현한 것입니다. 이 객체는 ParsedType
인터페이스를 확장합니다.
예
2dF
재산 | 유형 | 설명 |
---|---|---|
유형 | "fate" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
RollExpr
표현식이 아닌 숫자나 값의 도우미 유형 조합입니다. 다음 유형을 나타냅니다.
MathExpression
NumberType
Expression
표현식 유형의 도우미 유형 조합입니다. 다음 유형을 나타냅니다.
InlineExpression
MathExpression
MathExpression
두 개 이상의 주사위 굴림 사이의 수학 유형 표현입니다. 이 객체는 RootType
인터페이스를 확장합니다.
예
2d6 + 3d6 * 4d6
재산 | 유형 | 설명 |
---|---|---|
머리 | AnyRoll | 작업을 수행할 초기 롤입니다. |
유형 | "expression" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
작전 | Array< MathType < AnyRoll >> | 초기 롤에 적용할 작업입니다. |
MathType
적용할 롤 수학 연산과 이를 적용할 값을 나타내는 개체입니다. 이 객체는 ParsedType
인터페이스를 확장합니다. 이 객체의 인터페이스는 작업에 사용되는 두 번째 값의 유형을 지정하는 템플릿 유형 TailType
사용합니다. 사용할 수 있는 작업 유형을 지정하는 두 번째 템플릿 유형 OpValues
있습니다. 기본값은 Array<
MathOperation
>`입니다.
예
+ 3d6 (as part of 2d6 + 3d6)
재산 | 유형 | 설명 |
---|---|---|
유형 | "math" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
작전 | OpValues | 수행할 수학 연산입니다. |
꼬리 | TailType | 작업에 사용할 두 번째 값입니다. |
MathFunctionExpression
적용할 수학 함수와 이를 적용할 표현식을 나타내는 개체입니다. 이 객체는 RootType
인터페이스를 확장합니다.
예
floor(3d6 / 2d4)
재산 | 유형 | 설명 |
---|---|---|
유형 | "mathfunction" | 이 객체가 나타내는 구문 분석된 항목의 유형입니다. |
작전 | MathFunction | 적용할 기능입니다. |
특급 | AnyRoll | 함수를 적용할 표현식입니다. |
다음은 위의 인터페이스에서 사용되는 지원 유형입니다.
DiceGroupMathOperation
주사위 그룹에 대한 수학 연산의 유효한 연산을 나타내는 도우미 유형입니다.
"+" | "-"
MathOperation
수학 연산에 대한 유효한 연산을 나타내는 도우미 유형입니다.
"+" | "-" | "*" | "/" | "%" | "**"
MathFunction
수학 연산에 대한 유효한 연산을 나타내는 도우미 유형입니다.
"floor" | "ceil" | "round" | "abs"
CriticalType
판정을 중대한 성공 또는 실패로 표시할 때 사용되는 도우미 유형입니다.
"success" | "failure" | null
CompareOperation
비교 지점에 사용 가능한 작업에 대한 도우미 유형입니다.
">" | "<" | "="
HighLowType
유지하거나 삭제할 롤을 결정하는 데 사용되는 도우미 유형입니다.
"h" | "l" | null