Ajour lancer de sort

This commit is contained in:
2020-07-23 22:09:40 +02:00
parent 47b2a55bea
commit 2cb51e7999
10 changed files with 116 additions and 28 deletions

View File

@ -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

View File

@ -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;

View File

@ -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);
});
}
}

View File

@ -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);
}
/* -------------------------------------------- */

View File

@ -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'
];