Generic roll and update items
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
import { PegasusActorCreate } from "./pegasus-create-char.js";
|
||||
import { PegasusUtility } from "./pegasus-utility.js";
|
||||
import { PegasusRollDialog } from "./pegasus-roll-dialog.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class PegasusCommands {
|
||||
@@ -10,6 +11,7 @@ export class PegasusCommands {
|
||||
if (!game.system.pegasus.commands) {
|
||||
const pegasusCommands = new PegasusCommands();
|
||||
pegasusCommands.registerCommand({ path: ["/char"], func: (content, msg, params) => pegasusCommands.createChar(msg), descr: "Create a new character" });
|
||||
pegasusCommands.registerCommand({ path: ["/pool"], func: (content, msg, params) => pegasusCommands.poolRoll(msg), descr: "Generic Roll Window" });
|
||||
game.system.pegasus.commands = pegasusCommands;
|
||||
}
|
||||
}
|
||||
@@ -102,7 +104,26 @@ export class PegasusCommands {
|
||||
static _chatAnswer(msg, content) {
|
||||
msg.whisper = [game.user.id];
|
||||
msg.content = content;
|
||||
ChatMessage.create(msg);
|
||||
ChatMessage.create(msg);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async poolRoll( msg) {
|
||||
let rollData = {
|
||||
rollId:randomID(16),
|
||||
alias: "Generic Roll",
|
||||
rollMode: game.settings.get("core", "rollMode"),
|
||||
optionsDiceList: PegasusUtility.getOptionsDiceList(),
|
||||
statDicesLevel: 0,
|
||||
specDicesLevel: 0,
|
||||
bonusDicesLevel: 0,
|
||||
hindranceDicesLevel: 0,
|
||||
otherDicesLevel: 0,
|
||||
}
|
||||
rollData.mode = "generic"
|
||||
rollData.title = `Generic Pool Roll`;
|
||||
let rollDialog = await PegasusRollDialog.create( this, rollData);
|
||||
rollDialog.render( true );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,7 +7,10 @@ export class PegasusRollDialog extends Dialog {
|
||||
|
||||
let html
|
||||
let options = { classes: ["WotGdialog"], width: 420, height: 320, 'z-index': 99999 };
|
||||
if ( rollData.mode == "stat" || rollData.mode == "MR") {
|
||||
if ( rollData.mode == "generic" ) {
|
||||
html = await renderTemplate('systems/fvtt-pegasus-rpg/templates/roll-dialog-generic.html', rollData);
|
||||
options.height = 320;
|
||||
} else if ( rollData.mode == "stat" || rollData.mode == "MR") {
|
||||
html = await renderTemplate('systems/fvtt-pegasus-rpg/templates/roll-dialog-stat.html', rollData);
|
||||
options.height = 320;
|
||||
} else if (rollData.mode == "spec") {
|
||||
@@ -65,6 +68,12 @@ export class PegasusRollDialog extends Dialog {
|
||||
html.find('#specList').change((event) => {
|
||||
this.rollData.selectedSpec = event.currentTarget.value;
|
||||
});
|
||||
html.find('#statDicesLevel').change((event) => {
|
||||
this.rollData.statDicesLevel = Number(event.currentTarget.value);
|
||||
});
|
||||
html.find('#specDicesLevel').change((event) => {
|
||||
this.rollData.specDicesLevel = Number(event.currentTarget.value);
|
||||
});
|
||||
html.find('#bonusDicesLevel').change((event) => {
|
||||
this.rollData.bonusDicesLevel = Number(event.currentTarget.value);
|
||||
});
|
||||
|
||||
@@ -374,6 +374,9 @@ export class PegasusUtility {
|
||||
dicePool[0].level += Number(rollData.stat.value);
|
||||
dicePool[0].statmod = Number(rollData.stat.mod);
|
||||
}
|
||||
if ( rollData.statDicesLevel) {
|
||||
dicePool[0].level = rollData.statDicesLevel;
|
||||
}
|
||||
if (rollData.selectedSpec && rollData.selectedSpec != "0") {
|
||||
rollData.spec = rollData.specList.find( item => item._id == rollData.selectedSpec);
|
||||
rollData.spec.data.dice = PegasusUtility.getDiceFromLevel(rollData.spec.data.level);
|
||||
@@ -381,6 +384,9 @@ export class PegasusUtility {
|
||||
if (rollData.spec) {
|
||||
dicePool[1].level += Number(rollData.spec.data.level);
|
||||
}
|
||||
if ( rollData.specDicesLevel) {
|
||||
dicePool[0].level = rollData.specDicesLevel;
|
||||
}
|
||||
if (rollData.bonusDicesLevel) {
|
||||
dicePool[2].level += Number(rollData.bonusDicesLevel);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user