roll: add (dis)advantage
This commit is contained in:
parent
3694e84e21
commit
05e3ac30f1
1 changed files with 31 additions and 3 deletions
|
@ -6,7 +6,7 @@ const roll = new Command("roll");
|
|||
roll.category = "misc";
|
||||
roll.helpText = "Roll a dice";
|
||||
roll.usage = "<sides>";
|
||||
roll.callback = function (msg, line) {
|
||||
roll.callback = function (msg, line, args, {advantage, disadvantage}) {
|
||||
if (line == null || line == "") line = 6;
|
||||
line = Number(line);
|
||||
if (Number.isNaN(line)) line = 6;
|
||||
|
@ -21,7 +21,19 @@ roll.callback = function (msg, line) {
|
|||
return `:coin:: ${res == 1 ? "Heads" : "Tails"}`;
|
||||
}
|
||||
|
||||
if (advantage) {
|
||||
const res2 = Math.floor(Math.random() * line);
|
||||
const adv = Math.max(res + 1, res2 + 1);
|
||||
|
||||
return `:game_die: (d${line} with advantage): ${adv}`;
|
||||
} else if (disadvantage) {
|
||||
const res2 = Math.floor(Math.random() * line);
|
||||
const adv = Math.min(res + 1, res2 + 1);
|
||||
|
||||
return `:game_die: (d${line} with disadvantage): ${adv}`;
|
||||
} else {
|
||||
return `:game_die: (d${line}): ${1 + res}`;
|
||||
}
|
||||
};
|
||||
hf.registerCommand(roll);
|
||||
|
||||
|
@ -34,9 +46,25 @@ rollInteraction.options.sides = {
|
|||
required: false,
|
||||
default: 6,
|
||||
};
|
||||
rollInteraction.options.advantage = {
|
||||
name: "advantage",
|
||||
type: ApplicationCommandOptionTypes.BOOLEAN,
|
||||
description: "Roll with advantage",
|
||||
required: false,
|
||||
default: false,
|
||||
};
|
||||
rollInteraction.options.disadvantage = {
|
||||
name: "disadvantage",
|
||||
type: ApplicationCommandOptionTypes.BOOLEAN,
|
||||
description: "Roll with disadvantage",
|
||||
required: false,
|
||||
default: false,
|
||||
};
|
||||
rollInteraction.callback = async function (interaction) {
|
||||
const sides = this.getOption(interaction, "sides");
|
||||
const advantage = this.getOption(interaction, "advantage");
|
||||
const disadvantage = this.getOption(interaction, "disadvantage");
|
||||
|
||||
return roll.callback(interaction, sides);
|
||||
return roll.callback(interaction, sides, [sides], {advantage, disadvantage});
|
||||
};
|
||||
hf.registerCommand(rollInteraction);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue