Sync
This commit is contained in:
@ -4,7 +4,7 @@ import { PegasusActorCreate } from "./pegasus-create-char.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const __level2Dice = [ "d0", "d4", "d6", "d8", "d10", "d12" ];
|
||||
const __level2DiceValue = [ 0, 4, 6, 8, 10, 12 ];
|
||||
const __name2DiceValue = { "d0": 0, "d4": 4, "d6": 6, "d8": 8, "d10" : 10, "d12": 12 }
|
||||
|
||||
/* -------------------------------------------- */
|
||||
export class PegasusUtility {
|
||||
@ -49,6 +49,7 @@ export class PegasusUtility {
|
||||
static buildDiceLists() {
|
||||
let maxLevel = game.settings.get("fvtt-pegasus-rpg", "dice-max-level");
|
||||
let diceList = [ "0" ];
|
||||
let diceValues = [0];
|
||||
let diceFoundryList = [ "d0" ];
|
||||
let diceLevel = 1;
|
||||
let concat = "";
|
||||
@ -182,12 +183,11 @@ export class PegasusUtility {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
static getDiceValue( level = 0) {
|
||||
let locLevel = level
|
||||
let diceString = this.diceList[level]
|
||||
let diceTab = diceString.split(" ")
|
||||
let diceValue = 0
|
||||
while (locLevel > 0) {
|
||||
let idx = locLevel % __level2Dice.length
|
||||
diceValue += __level2DiceValue[idx]
|
||||
locLevel -= idx
|
||||
for (let dice of diceTab) {
|
||||
diceValue += __name2DiceValue[dice]
|
||||
}
|
||||
return diceValue
|
||||
}
|
||||
@ -358,11 +358,17 @@ export class PegasusUtility {
|
||||
/* -------------------------------------------- */
|
||||
static async rollPegasus( rollData ) {
|
||||
|
||||
let actor = game.actors.get(rollData.actorId);
|
||||
|
||||
let dicePool = [ {name:"stat", level: 0, statmod: 0}, {name: "spec", level: 0}, {name:"bonus", level: 0}, {name:"hindrance", level: 0}, {name:"other", level:0} ];
|
||||
if (rollData.stat) {
|
||||
dicePool[0].level += Number(rollData.stat.value);
|
||||
dicePool[0].statmod = Number(rollData.stat.mod);
|
||||
}
|
||||
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);
|
||||
}
|
||||
if (rollData.spec) {
|
||||
dicePool[1].level += Number(rollData.spec.data.level);
|
||||
}
|
||||
@ -395,9 +401,14 @@ export class PegasusUtility {
|
||||
// Final score and keep data
|
||||
rollData.finalScore = myRoll.total + dicePool[0].statmod;
|
||||
console.log("ROLLLL!!!!", rollData);
|
||||
|
||||
let actor = game.actors.get(rollData.actorId);
|
||||
|
||||
|
||||
if (rollData.damages) {
|
||||
let dmgFormula = this.getFoundryDiceFromLevel( rollData.damages.value )
|
||||
let dmgRoll = new Roll(dmgFormula).roll( { async: false} );
|
||||
await this.showDiceSoNice(dmgRoll, game.settings.get("core", "rollMode") );
|
||||
rollData.dmgResult = dmgRoll.total;
|
||||
}
|
||||
|
||||
this.createChatWithRollMode( rollData.alias, {
|
||||
content: await renderTemplate(`systems/fvtt-pegasus-rpg/templates/chat-generic-result.html`, rollData)
|
||||
});
|
||||
|
Reference in New Issue
Block a user