forked from public/foundryvtt-reve-de-dragon
Correction async pas utiles
This commit is contained in:
@ -122,7 +122,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async performRoll(rollData) {
|
||||
let rolled = await RdDResolutionTable.roll(rollData.carac, rollData.finalLevel, true);
|
||||
let rolled = RdDResolutionTable.roll(rollData.carac, rollData.finalLevel);
|
||||
//rolled.isPart = true; // Pour tester le particulières
|
||||
rollData.rolled = rolled; // garder le résultat
|
||||
console.log("performRoll", rollData, rolled)
|
||||
@ -363,24 +363,23 @@ export class RdDActor extends Actor {
|
||||
ChatMessage.create( message );
|
||||
}
|
||||
|
||||
async combattreReveDeDragon(force){
|
||||
combattreReveDeDragon(force){
|
||||
let draconic = this.getBestDraconic();
|
||||
let niveau = Math.max(0, draconic.data.niveau);
|
||||
let etat = this.data.data.compteurs.etat.value;
|
||||
let difficulte = niveau - etat - force;
|
||||
let reveActuel = this.getReveActuel();
|
||||
let roll = await RdDResolutionTable.roll(reveActuel, difficulte);
|
||||
let message = ""
|
||||
const resultatRdD = await this.appliquerReveDeDragon(roll, force);
|
||||
return resultatRdD;
|
||||
let rolled = RdDResolutionTable.roll(reveActuel, difficulte);
|
||||
consome.log("combattreReveDeDragon", rolled );
|
||||
return this.appliquerReveDeDragon(rolled, force);
|
||||
}
|
||||
|
||||
async appliquerReveDeDragon(roll, force) {
|
||||
appliquerReveDeDragon(roll, force) {
|
||||
let message = "";
|
||||
if (roll.isSuccess) {
|
||||
message += "<br>Vous gagnez " + force + " points de Rêve";
|
||||
this.updatePointDeSeuil();
|
||||
await this.updatePointsDeReve(force);
|
||||
this.updatePointsDeReve(force);
|
||||
}
|
||||
if (roll.isPart) {
|
||||
// TODO: Dialog pour choix entre HR opu général?
|
||||
@ -716,9 +715,9 @@ export class RdDActor extends Actor {
|
||||
if ( data.value < 0 ) data.value = 0;
|
||||
|
||||
if (name == "endurance" && this.data.type != 'entite' ) {
|
||||
if ( sante.fatigue && inc < 0 ) // Each endurance lost -> fatigue lost
|
||||
if ( sante.fatigue && inc < 0 ) { // Each endurance lost -> fatigue lost
|
||||
sante.fatigue.value = sante.fatigue.value - inc
|
||||
|
||||
}
|
||||
// If endurance is 0 -> -1 vie
|
||||
if ( data.value == 0 && sante.vie.value > 0) {
|
||||
sante.vie.value = sante.vie.value - 1;
|
||||
@ -829,9 +828,7 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async stressTest() {
|
||||
let target = RdDResolutionTable.computeChances(this.data.data.carac.reve.value, 0);
|
||||
let stressRoll = this._stressRoll(target);
|
||||
|
||||
let stressRoll = this._stressRoll();
|
||||
let compteurs = duplicate(this.data.data.compteurs);
|
||||
let convertion = Math.floor(compteurs.stress.value * stressRoll.factor);
|
||||
|
||||
@ -839,31 +836,36 @@ export class RdDActor extends Actor {
|
||||
compteurs.stress.value = Math.max(compteurs.stress.value - convertion - 1, 0);
|
||||
|
||||
ChatMessage.create({
|
||||
title: "Jet de Stress", content: "Vous avez transformé " + convertion + " points de Stress en Expérience avec une réussite " + stressRoll.comment,
|
||||
title: "Jet de Stress", content: "Vous avez transformé " + convertion + " points de Stress en Expérience" + stressRoll.comment,
|
||||
whisper: ChatMessage.getWhisperRecipients(game.user.name)
|
||||
});
|
||||
await this.update({ "data.compteurs": compteurs });
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async _stressRoll(target) {
|
||||
let result = await RdDResolutionTable.rollChances(target)
|
||||
switch (result.quality) {
|
||||
case "sign": return { factor: 0.75, comment: "Significative (75%) - " + result.roll }
|
||||
case "norm": return { factor: 0.5, comment: "Normale (50%) - " + result.roll }
|
||||
case "echec": return { factor: 0.2, comment: "Echec (20%) - " + result.roll }
|
||||
case "epart": return { factor: 0.1, comment: "Echec particulier(10%) - " + result.roll }
|
||||
case "etotal": return { factor: 0, comment: "Echec Total (0%) - " + result.roll }
|
||||
}
|
||||
let second = await RdDResolutionTable.rollChances(target)
|
||||
switch (second.quality) {
|
||||
case "part": case "sign":
|
||||
return { factor: 1.5, comment: "Double Particulière (150%) - " + result.roll + " puis " + second.roll }
|
||||
default:
|
||||
return { factor: 1, comment: "Particulière (100%) - " + result.roll + " puis " + second.roll }
|
||||
}
|
||||
_stressRoll() {
|
||||
let result = RdDResolutionTable.roll(this.data.data.carac.reve.value, 0);
|
||||
console.log("_stressRoll", result);
|
||||
switch (result.code) {
|
||||
case "sign": return { factor: 0.75, comment: " (75%): " + result.quality + " - " + result.roll + " sur " + result.score + "%" }
|
||||
case "norm": return { factor: 0.5, comment: " (50%): " + result.quality + " - " + result.roll + " sur " + result.score + "%" }
|
||||
case "echec": return { factor: 0.2, comment: " (20%): " + result.quality + " - " + result.roll + " sur " + result.score + "%" }
|
||||
case "epart": return { factor: 0.1, comment: " (10%): " + result.quality + " - " + result.roll + " sur " + result.score + "%" }
|
||||
case "etotal": return { factor: 0, comment: " (0%): " + result.quality + " - " + result.roll + " sur " + result.score + "%" }
|
||||
case "part":
|
||||
{
|
||||
let second = RdDResolutionTable.roll(this.data.data.carac.reve.value, 0);
|
||||
console.log("_stressRoll", second);
|
||||
switch (second.code) {
|
||||
case "part": case "sign":
|
||||
return { factor: 1.5, comment: " (150%): Double Particulière - " + result.roll + " puis " + second.roll + " sur " + result.score + "%" }
|
||||
default:
|
||||
return { factor: 1, comment: " (150%): " + result.quality + " - " + result.roll + " puis " + second.roll + " sur " + result.score + "%" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
async rollUnSort(coord) {
|
||||
let draconicList = this.getDraconicList();
|
||||
|
Reference in New Issue
Block a user