70 lines
1.5 KiB
TypeScript
70 lines
1.5 KiB
TypeScript
export const GroupOptions = Object.freeze({
|
|
Drop: 'd',
|
|
DropLow: 'dl',
|
|
DropHigh: 'dh',
|
|
Keep: 'k',
|
|
KeepLow: 'kl',
|
|
KeepHigh: 'kh',
|
|
SuccessLt: '<',
|
|
SuccessGtr: '>',
|
|
SuccessEqu: '=',
|
|
Fail: 'f',
|
|
FailLt: 'f<',
|
|
FailGtr: 'f>',
|
|
FailEqu: 'f=',
|
|
});
|
|
|
|
export const DiceOptions = Object.freeze({
|
|
...GroupOptions,
|
|
Reroll: 'r',
|
|
RerollLt: 'r<',
|
|
RerollGtr: 'r>',
|
|
RerollEqu: 'r=',
|
|
RerollOnce: 'ro',
|
|
RerollOnceLt: 'ro<',
|
|
RerollOnceGtr: 'ro>',
|
|
RerollOnceEqu: 'ro=',
|
|
CritSuccess: 'cs',
|
|
CritSuccessLt: 'cs<',
|
|
CritSuccessGtr: 'cs>',
|
|
CritSuccessEqu: 'cs=',
|
|
CritFail: 'cf',
|
|
CritFailLt: 'cf<',
|
|
CritFailGtr: 'cf>',
|
|
CritFailEqu: 'cf=',
|
|
Exploding: '!',
|
|
ExplodingLt: '!<',
|
|
ExplodingGtr: '!>',
|
|
ExplodingEqu: '!=',
|
|
ExplodeOnce: '!o',
|
|
ExplodeOnceLt: '!o<',
|
|
ExplodeOnceGtr: '!o>',
|
|
ExplodeOnceEqu: '!o=',
|
|
PenetratingExplosion: '!p',
|
|
PenetratingExplosionLt: '!p<',
|
|
PenetratingExplosionGtr: '!p>',
|
|
PenetratingExplosionEqu: '!p=',
|
|
CompoundingExplosion: '!!',
|
|
CompoundingExplosionLt: '!!<',
|
|
CompoundingExplosionGtr: '!!>',
|
|
CompoundingExplosionEqu: '!!=',
|
|
Matching: 'm',
|
|
MatchingTotal: 'mt',
|
|
Sort: 's',
|
|
SortAsc: 'sa',
|
|
SortDesc: 'sd',
|
|
});
|
|
|
|
// Should be ordered such that 'mt' will be encountered before 'm'
|
|
export const NumberlessDiceOptions = [
|
|
DiceOptions.SortDesc,
|
|
DiceOptions.SortAsc,
|
|
DiceOptions.Sort,
|
|
DiceOptions.MatchingTotal,
|
|
DiceOptions.Matching,
|
|
DiceOptions.CompoundingExplosion,
|
|
DiceOptions.PenetratingExplosion,
|
|
DiceOptions.ExplodeOnce,
|
|
DiceOptions.Exploding,
|
|
];
|