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.category = "misc";
|
||||||
roll.helpText = "Roll a dice";
|
roll.helpText = "Roll a dice";
|
||||||
roll.usage = "<sides>";
|
roll.usage = "<sides>";
|
||||||
roll.callback = function (msg, line) {
|
roll.callback = function (msg, line, args, {advantage, disadvantage}) {
|
||||||
if (line == null || line == "") line = 6;
|
if (line == null || line == "") line = 6;
|
||||||
line = Number(line);
|
line = Number(line);
|
||||||
if (Number.isNaN(line)) line = 6;
|
if (Number.isNaN(line)) line = 6;
|
||||||
|
@ -21,7 +21,19 @@ roll.callback = function (msg, line) {
|
||||||
return `:coin:: ${res == 1 ? "Heads" : "Tails"}`;
|
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}`;
|
return `:game_die: (d${line}): ${1 + res}`;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
hf.registerCommand(roll);
|
hf.registerCommand(roll);
|
||||||
|
|
||||||
|
@ -34,9 +46,25 @@ rollInteraction.options.sides = {
|
||||||
required: false,
|
required: false,
|
||||||
default: 6,
|
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) {
|
rollInteraction.callback = async function (interaction) {
|
||||||
const sides = this.getOption(interaction, "sides");
|
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);
|
hf.registerCommand(rollInteraction);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue