forked from public/foundryvtt-reve-de-dragon
Ajour lancer de sort
This commit is contained in:
@ -159,7 +159,7 @@ export class RdDActorSheet extends ActorSheet {
|
||||
// Roll spell
|
||||
html.find('.sort-label a').click((event) => {
|
||||
let sortID = event.currentTarget.attributes['data-id'].value;
|
||||
this.actor.rollSort( sortID);
|
||||
this.actor.displayTMR( sortID);
|
||||
});
|
||||
|
||||
// On carac change
|
||||
|
@ -88,13 +88,11 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async performRoll( rollData ) {
|
||||
|
||||
let myroll = new Roll("d100");
|
||||
myroll.roll();
|
||||
let result = new Roll("d100").roll().total;
|
||||
let quality = "Echec";
|
||||
let xpmsg = "";
|
||||
let tache = 0;
|
||||
//console.log(">>> ROLL", rollData.selectedCarac.label, rollData.rollTarget.score, myroll.total );
|
||||
let result = myroll.total;
|
||||
if (result <= rollData.rollTarget.part) {
|
||||
quality = "Réussite Particulière!";
|
||||
if ( rollData.finalLevel < 0 ) {
|
||||
@ -195,9 +193,15 @@ export class RdDActor extends Actor {
|
||||
await this.setFlag( "foundryvtt-reve-de-dragon", "rollData", undefined );
|
||||
await this.setFlag( "foundryvtt-reve-de-dragon", "rollData", rollData );
|
||||
|
||||
let lvl = (rollData.competence) ? rollData.competence.name : rollData.bmValue;
|
||||
let lvl = ""
|
||||
if ( rollData.selectedSort) {
|
||||
lvl = rollData.selectedDraconic.name +"/"+ rollData.selectedSort.name;
|
||||
specialStr = "";
|
||||
} else {
|
||||
lvl = (rollData.competence) ? rollData.competence.name : rollData.bmValue;
|
||||
}
|
||||
let chatOptions = { content: "<strong>Test : " + rollData.selectedCarac.label + " / " + lvl + "</strong><br>Jet : " +
|
||||
rollData.selectedCarac.value + " / " + rollData.finalLevelStr + " -> " + rollData.rollTarget.score + "%<br><strong>Résutat : </strong>" + myroll.total + "<br>" +
|
||||
rollData.selectedCarac.value + " / " + rollData.finalLevelStr + " -> " + rollData.rollTarget.score + "%<br><strong>Résutat : </strong>" + result + "<br>" +
|
||||
"<strong>" + quality + "</strong>" + specialStr + xpmsg,
|
||||
user: game.user._id,
|
||||
title: "Résultat du test"
|
||||
@ -432,6 +436,27 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollUnSort( coord ) {
|
||||
console.log("Lancer de sort !!!!!");
|
||||
let draconicList = this.getDraconicList();
|
||||
let sortList = this.getSortList();
|
||||
|
||||
let rollData = {
|
||||
"selectedCarac": this.data.data.carac.reve,
|
||||
"etat": this.data.data.compteurs.etat.value,
|
||||
"draconicList": draconicList,
|
||||
"sortList": sortList,
|
||||
"selectedDraconic": draconicList[0],
|
||||
"selectedSort": sortList[0],
|
||||
"coord": coord,
|
||||
"finalLevel": 0,
|
||||
"bmValue": 0
|
||||
}
|
||||
let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-roll-sort.html', rollData);
|
||||
new RdDRollDialog("sort", html, rollData, this ).render(true);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollCarac( caracName )
|
||||
{
|
||||
@ -468,9 +493,9 @@ export class RdDActor extends Actor {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollSort( sortID )
|
||||
async displayTMR( sortID )
|
||||
{
|
||||
if (this.data.data.carac.reve.value <= 1 ) {
|
||||
if (this.data.data.reve.reve.value <= 1 ) {
|
||||
ChatMessage.create( { title: "Montée impossible !", content: "Vous n'avez plus assez de Points de Reve pour monter dans les Terres Médianes",
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name) } );
|
||||
return;
|
||||
|
@ -36,6 +36,10 @@ export class RdDRollDialog extends Dialog {
|
||||
dialogConf.title = "Test de caractéristique",
|
||||
dialogOptions.width = 600;
|
||||
dialogOptions.height = 320;
|
||||
} else if (mode == "sort") {
|
||||
dialogConf.title = "Lancer un sort",
|
||||
dialogOptions.width = 600;
|
||||
dialogOptions.height = 360;
|
||||
}
|
||||
super(dialogConf, dialogOptions);
|
||||
|
||||
@ -60,7 +64,9 @@ export class RdDRollDialog extends Dialog {
|
||||
function updateRollResult( rollData ) {
|
||||
if ( rollData.competence )
|
||||
rollData.finalLevel = parseInt(rollData.competence.data.niveau) + parseInt(rollData.bmValue) + parseInt(rollData.etat);
|
||||
else
|
||||
else if ( rollData.draconicList )
|
||||
rollData.finalLevel = parseInt(rollData.selectedDraconic.data.niveau) + parseInt(rollData.selectedSort.data.difficulte) + parseInt(rollData.etat);
|
||||
else
|
||||
rollData.finalLevel = parseInt(rollData.bmValue) + parseInt(rollData.etat);
|
||||
|
||||
rollData.finalLevelStr = (rollData.finalLevel >= 0 ) ? "+" + rollData.finalLevel : rollData.finalLevel;
|
||||
@ -72,6 +78,8 @@ export class RdDRollDialog extends Dialog {
|
||||
if ( rollData.competence ) {
|
||||
niveauStr = (rollData.competence.data.niveau >= 0) ? "+" + rollData.competence.data.niveau : rollData.competence.data.niveau;
|
||||
$("#compdialogTitle").text( rollData.selectedCarac.label + "/" + rollData.competence.name + armeTitle + " " + niveauStr );
|
||||
} else if ( rollData.draconicList) {
|
||||
$("#compdialogTitle").text( rollData.selectedDraconic.name + " - " + rollData.selectedSort.name );
|
||||
} else {
|
||||
$("#compdialogTitle").text( rollData.selectedCarac.label );
|
||||
}
|
||||
@ -104,6 +112,18 @@ export class RdDRollDialog extends Dialog {
|
||||
//console.log("CARAC CLICKED !!!", rollData.selectedCarac, rollData.competence.data.niveau, rollData.bmValue);
|
||||
updateRollResult(rollData);
|
||||
});
|
||||
html.find('#draconic').click((event) => {
|
||||
let draconicKey = event.currentTarget.value;
|
||||
rollData.selectedDraconic = rollData.draconicList[draconicKey]; // Update the selectedCarac
|
||||
//console.log("CARAC CLICKED !!!", rollData.selectedCarac, rollData.competence.data.niveau, rollData.bmValue);
|
||||
updateRollResult(rollData);
|
||||
});
|
||||
html.find('#sort').click((event) => {
|
||||
let sortKey = event.currentTarget.value;
|
||||
rollData.selectedSort = rollData.sortList[sortKey]; // Update the selectedCarac
|
||||
//console.log("CARAC CLICKED !!!", rollData.selectedCarac, rollData.competence.data.niveau, rollData.bmValue);
|
||||
updateRollResult(rollData);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -282,8 +282,8 @@ export class RdDTMRDialog extends Dialog {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
lancerSort () {
|
||||
console.log("Lancer de sort !!!!!");
|
||||
lancerSort() {
|
||||
this.actor.rollUnSort(this.actor.data.data.reve.tmrpos.coord);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -101,6 +101,7 @@ export class RdDUtility {
|
||||
// Dialogs
|
||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-competence.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-carac.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-sort.html',
|
||||
'systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.html'
|
||||
];
|
||||
|
||||
|
Reference in New Issue
Block a user