Merge branch 'fix-divers' into 'v1.3'
Fix divers See merge request LeRatierBretonnien/foundryvtt-reve-de-dragon!143
This commit is contained in:
commit
4bc47f0c5e
@ -790,12 +790,12 @@ export class RdDActor extends Actor {
|
|||||||
let conteneur = this.items.find(conteneur => conteneurId == conteneur._id); // recup conteneur
|
let conteneur = this.items.find(conteneur => conteneurId == conteneur._id); // recup conteneur
|
||||||
//console.log("Conteneur trouvé : ", conteneur);
|
//console.log("Conteneur trouvé : ", conteneur);
|
||||||
if (conteneur && conteneur.type == "conteneur") {
|
if (conteneur && conteneur.type == "conteneur") {
|
||||||
let currentEnc = this.getRecursiveEnc( conteneur ) - Number(conteneur.data.data.encombrement);
|
// Calculer le total actuel des contenus
|
||||||
//let currentEnc = this.getRecursiveEnc( conteneur ); // Calculer le total actuel des contenus
|
let encContenu = this.getRecursiveEnc( conteneur ) - Number(conteneur.data.data.encombrement);
|
||||||
let nouvelObjet = this.items.find(objet => (itemId == objet._id)); // On chope l'objet
|
let nouvelObjet = this.items.find(objet => (itemId == objet._id)); // On chope l'objet
|
||||||
let newEnc = (nouvelObjet) ? this.getRecursiveEnc( nouvelObjet ) : 0; // Calculer le total actuel du nouvel objet
|
let newEnc = (nouvelObjet) ? this.getRecursiveEnc( nouvelObjet ) : 0; // Calculer le total actuel du nouvel objet
|
||||||
//console.log( currentEnc, newEnc, conteneur.data.data.capacite, conteneur.name);
|
//console.log( currentEnc, newEnc, conteneur.data.data.capacite, conteneur.name);
|
||||||
if (nouvelObjet && ( (currentEnc + newEnc) > Number(conteneur.data.data.capacite)) ) {
|
if (nouvelObjet && ( (encContenu + newEnc) > Number(conteneur.data.data.capacite)) ) {
|
||||||
ui.notifications.warn("Capacité d'encombrement insuffisante dans le conteneur !");
|
ui.notifications.warn("Capacité d'encombrement insuffisante dans le conteneur !");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -74,13 +74,12 @@ export class RdDBonus {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
static _dmgArme(rollData) {
|
static _dmgArme(rollData) {
|
||||||
let dmg1 = 0;
|
|
||||||
if ( rollData.arme) {
|
if ( rollData.arme) {
|
||||||
let dmgBase = rollData.arme.data.dommagesReels ?? Number(rollData.arme.data.dommages ?? 0);
|
let dmgBase = rollData.arme.data.dommagesReels ?? Number(rollData.arme.data.dommages ?? 0);
|
||||||
dmg1 = dmgBase + (rollData.arme.data.magique) ? rollData.arme.data.ecaille_efficacite : 0;
|
//Le bonus dégats magiques ne peut pas faire dépasser le bonus de l'arme (cf p.278)
|
||||||
if (dmg1 > (dmgBase*2) ) dmg1 = dmgBase*2; // Le bonus déats magiques ne peut pas faire dépasser 2x le bonus de l'arme (cf p.278)
|
return dmgBase + Math.min(dmgBase, rollData.arme.data.magique ? rollData.arme.data.ecaille_efficacite : 0);
|
||||||
}
|
}
|
||||||
return dmg1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
@ -117,45 +117,33 @@ export class RdDCalendrier extends Application {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCurrentNombreAstral() {
|
getCurrentNombreAstral() {
|
||||||
let index = this.getCurrentDayIndex();
|
let indexDate = this.getCurrentDayIndex();
|
||||||
return this.getNombreAstral(index);
|
return this.getNombreAstral(indexDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getNombreAstral( index ) {
|
getNombreAstral( indexDate ) {
|
||||||
const liste = this.listeNombreAstral || this._loadListNombreAstral();
|
const liste = this.listeNombreAstral ?? this._loadListNombreAstral();
|
||||||
let astralData = liste.find( (nombreAstral, i) => nombreAstral.index == index );
|
let astralData = liste.find( (nombreAstral, i) => nombreAstral.index == indexDate );
|
||||||
if ( astralData == undefined ) {
|
if (! astralData?.nombreAstral ) {
|
||||||
this.rebuildListeNombreAstral();
|
this.rebuildListeNombreAstral();
|
||||||
astralData = liste.find( (nombreAstral, i) => nombreAstral.index == index );
|
astralData = liste.find( (nombreAstral, i) => nombreAstral.index == indexDate );
|
||||||
}
|
}
|
||||||
return astralData.nombreAstral || "N/A";
|
return astralData?.nombreAstral ?? "N/A";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
rebuildListeNombreAstral() {
|
rebuildListeNombreAstral() {
|
||||||
// Auto-create if needed
|
|
||||||
if ( this.listeNombreAstral == undefined)
|
|
||||||
this.listeNombreAstral = [];
|
|
||||||
|
|
||||||
// Nettoyage des nombres astraux anciens
|
|
||||||
let jourCourant = this.getCurrentDayIndex();
|
let jourCourant = this.getCurrentDayIndex();
|
||||||
let jourFin = jourCourant + 12;
|
let jourFin = jourCourant + 12;
|
||||||
let newList = this.listeNombreAstral.filter( (nombreAstral, i) => nombreAstral && nombreAstral.index >= jourCourant && nombreAstral.index < jourFin);
|
let newList = [0,1,2,3,4,5,6,7,8,9,10,11].map( i => this.ajouterNombreAstral(jourCourant + i));
|
||||||
//console.log("LSTES", this.listeNombreAstral, newList );
|
if (this.listeNombreAstral) {
|
||||||
|
for (const na of this.listeNombreAstral) {
|
||||||
let lastDay = jourCourant;
|
if (na && na.index >= jourCourant && na.index < jourFin) {
|
||||||
for (let i=0; i < MAX_NOMBRE_ASTRAL; i++) {
|
newList[na.index - jourCourant] = na;
|
||||||
let nombreAstral = newList[i];
|
}
|
||||||
if ( nombreAstral ) {
|
|
||||||
lastDay = nombreAstral.index + 1;
|
|
||||||
} else {
|
|
||||||
newList.push( this.ajouterNombreAstral( lastDay) );
|
|
||||||
lastDay += 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.listeNombreAstral = newList;
|
|
||||||
|
|
||||||
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral );
|
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ export class RdDRollTables {
|
|||||||
const index = await pack.getIndex();
|
const index = await pack.getIndex();
|
||||||
const entry = index.find(e => e.name === tableName);
|
const entry = index.find(e => e.name === tableName);
|
||||||
const table = await pack.getEntity(entry._id);
|
const table = await pack.getEntity(entry._id);
|
||||||
const draw = await table.draw({ displayChat: toChat });
|
const draw = await table.draw({ displayChat: toChat, rollMode: "gmroll"});
|
||||||
console.log("RdDRollTables", tableName, toChat, ":", draw);
|
console.log("RdDRollTables", tableName, toChat, ":", draw);
|
||||||
return draw;
|
return draw;
|
||||||
}
|
}
|
||||||
|
@ -227,9 +227,10 @@ const typeRencontres = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
rdd: {
|
rdd: {
|
||||||
msgSucces: (data) => TMRRencontres.onSuccessReveDeDragon(data),
|
msgSucces: (data) => `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. Vous le maîtrisez et récupérez ses rêves. Vous gagnez ses ${data.rencontre.force} points de rêve`,
|
||||||
msgEchec: (data) => TMRRencontres.onEchecReveDeDragon(data),
|
msgEchec: (data) => `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. La rencontre tourne au cauchemar, dans la lutte épique, vous subissez ${data.rolled.isETotal ? 'deux queues' : 'une queue'} de dragon!`,
|
||||||
postEchec: (tmrDialog, data) => tmrDialog.close(),
|
postSucces: (tmrDialog, data) => TMRRencontres.onPostSuccessReveDeDragon(tmrDialog, data),
|
||||||
|
postEchec: (tmrDialog, data) => TMRRencontres.onPostSuccessReveDeDragon(tmrDialog, data),
|
||||||
poesieSucces: {
|
poesieSucces: {
|
||||||
reference: "Rêve de Dragon, Denis Gerfaud",
|
reference: "Rêve de Dragon, Denis Gerfaud",
|
||||||
extrait: `Le monde est Rêve de Dragons, mais nous ne savons
|
extrait: `Le monde est Rêve de Dragons, mais nous ne savons
|
||||||
@ -469,19 +470,16 @@ export class TMRRencontres {
|
|||||||
await tmrDialog.forceDemiRevePosition(coord)
|
await tmrDialog.forceDemiRevePosition(coord)
|
||||||
}
|
}
|
||||||
|
|
||||||
static async onSuccessReveDeDragon(data) {
|
static async onPostSuccessReveDeDragon(tmrDialog, data) {
|
||||||
await data.actor.appliquerReveDeDragon(data.rolled, data.rencontre.force);
|
await data.actor.appliquerReveDeDragon(data.rolled, data.rencontre.force);
|
||||||
if (data.rolled.isPart) {
|
if (data.rolled.isPart) {
|
||||||
await data.actor.appliquerExperience(data.rolled, 'reve', data.competence);
|
await data.actor.appliquerExperience(data.rolled, 'reve', data.competence);
|
||||||
}
|
}
|
||||||
return `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. Vous le maîtrisez et récupérez ses rêves. Vous gagnez ses ${data.rencontre.force} points de rêve, votre nouveau total est de " + tmrDialog.actor.data.data.reve.reve.value `;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static async onEchecReveDeDragon(data) {
|
static async onPostEchecReveDeDragon(tmrDialog, data) {
|
||||||
await data.actor.appliquerReveDeDragon(data.rolled, data.rencontre.force);
|
await data.actor.appliquerReveDeDragon(data.rolled, data.rencontre.force);
|
||||||
const queues = data.rolled.isETotal ? 'deux queues' : 'une queue';
|
tmrDialog.close();
|
||||||
return `A tout seigneur, tout honneur, vous faites face à un ${data.rencontre.name}. La rencontre tourne au cauchemar, dans la lutte épique, vous subissez ${queues} de dragon!`;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user