Sync
This commit is contained in:
@ -17,6 +17,7 @@ import { RdDRollTables } from "./rdd-rolltables.js";
|
||||
import { ChatUtility } from "./chat-utility.js";
|
||||
import { RdDItemSort } from "./item-sort.js";
|
||||
import { Grammar } from "./grammar.js";
|
||||
import { RdDCalendrier } from "./rdd-calendrier.js";
|
||||
|
||||
export class RdDActor extends Actor {
|
||||
|
||||
@ -1466,10 +1467,7 @@ export class RdDActor extends Actor {
|
||||
/* -------------------------------------------- */
|
||||
async rollAppelChance( )
|
||||
{
|
||||
let rollData = {
|
||||
selectedCarac: this.getCaracByName('chance-actuelle'),
|
||||
diffConditions: this.ajustementAstrologique()
|
||||
}
|
||||
let rollData = { selectedCarac: this.getCaracByName('chance-actuelle') };
|
||||
|
||||
const dialog = await RdDRoll.create(this, rollData,
|
||||
{ html: 'systems/foundryvtt-reve-de-dragon/templates/dialog-roll-carac.html'},
|
||||
@ -1478,15 +1476,14 @@ export class RdDActor extends Actor {
|
||||
label: 'Appel à la chance',
|
||||
callbacks: [
|
||||
this._createCallbackExperience(),
|
||||
{ action: this._appelChanceResult }
|
||||
{ action: r => this._appelChanceResult(r) }
|
||||
]
|
||||
}
|
||||
);
|
||||
dialog.render(true);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
_appelChanceResult(rollData) {
|
||||
async _appelChanceResult(rollData) {
|
||||
const message = {
|
||||
user: game.user._id,
|
||||
alias: this.name,
|
||||
@ -1494,7 +1491,7 @@ export class RdDActor extends Actor {
|
||||
};
|
||||
if (rollData.rolled.isSuccess) {
|
||||
message.content += "<br>Un point de chance est dépensée, l'action peut être retentée"
|
||||
this.chanceActuelleIncDec(-1)
|
||||
await this.chanceActuelleIncDec(-1)
|
||||
}
|
||||
ChatMessage.create(message);
|
||||
}
|
||||
@ -1508,8 +1505,8 @@ export class RdDActor extends Actor {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
ajustementAstrologique() {
|
||||
//TODO: selon heure et heure de naissance...
|
||||
return 0;
|
||||
// selon l'heure de naissance...
|
||||
return game.system.rdd.calendrier.getAjustementAstrologique(this.data.data.heure);
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -1,21 +1,23 @@
|
||||
/* -------------------------------------------- */
|
||||
import { RdDCalendrierEditeur } from "./rdd-calendrier-editeur.js";
|
||||
import { RdDAstrologieEditeur } from "./rdd-astrologie-editeur.js";
|
||||
import { HtmlUtility } from "./html-utility.js";
|
||||
|
||||
/* -------------------------------------------- */
|
||||
const dossierIconesHeures = 'systems/foundryvtt-reve-de-dragon/icons/heures/'
|
||||
const heuresList = [ "vaisseau", "sirene", "faucon", "couronne", "dragon", "epees", "lyre", "serpent", "poissonacrobate", "araignee", "roseau", "chateaudormant" ];
|
||||
const heuresDef = { "vaisseau": { label: "Vaisseau", lettreFont: 'v', saison: "printemps" },
|
||||
"sirene": { label: "Sirène", lettreFont: 'S', saison: "printemps"},
|
||||
"faucon": {label: "Faucon", lettreFont: 'f', saison: "printemps"},
|
||||
"couronne": {label: "Couronne", lettreFont: 'C', saison: "ete"},
|
||||
"dragon": {label: "Dragon", lettreFont: 'd', saison: "ete"},
|
||||
"epees": {label: "Epées", lettreFont: 'e', saison: "ete"},
|
||||
"lyre": {label: "Lyre", lettreFont: 'l', saison: "automne"},
|
||||
"serpent": {label: "Serpent", lettreFont: 's', saison: "automne"},
|
||||
"poissonacrobate": {label: "Poisson Acrobate", lettreFont: 'p', saison: "automne"},
|
||||
"araignee": {label: "Araignée", lettreFont: 'a', saison: "hiver"},
|
||||
"roseau": {label: "Roseau", lettreFont: 'r', saison: "hiver"},
|
||||
"chateaudormant": {label: "Château Dormant", lettreFont: 'c', saison: "hiver"}
|
||||
const heuresDef = { "vaisseau": { label: "Vaisseau", lettreFont: 'v', saison: "printemps", heure: 0, icon: 'hd01.svg' },
|
||||
"sirene": { label: "Sirène", lettreFont: 'S', saison: "printemps", heure: 1, icon: 'hd02.svg' },
|
||||
"faucon": { label: "Faucon", lettreFont: 'f', saison: "printemps", heure: 2, icon: 'hd03.svg' },
|
||||
"couronne": { label: "Couronne", lettreFont: 'C', saison: "ete", heure: 3, icon: 'hd04.svg' },
|
||||
"dragon": { label: "Dragon", lettreFont: 'd', saison: "ete", heure: 4, icon: 'hd05.svg' },
|
||||
"epees": { label: "Epées", lettreFont: 'e', saison: "ete", heure: 5, icon: 'hd06.svg' },
|
||||
"lyre": { label: "Lyre", lettreFont: 'l', saison: "automne", heure: 6, icon: 'hd07.svg' },
|
||||
"serpent": { label: "Serpent", lettreFont: 's', saison: "automne", heure: 7, icon: 'hd08.svg' },
|
||||
"poissonacrobate": { label: "Poisson Acrobate", lettreFont: 'p', saison: "automne", heure: 8, icon: 'hd09.svg' },
|
||||
"araignee": { label: "Araignée", lettreFont: 'a', saison: "hiver", heure: 9, icon: 'hd10.svg' },
|
||||
"roseau": { label: "Roseau", lettreFont: 'r', saison: "hiver", heure: 10, icon: 'hd11.svg' },
|
||||
"chateaudormant": { label: "Château Dormant", lettreFont: 'c', saison: "hiver", heure: 11, icon: 'hd12.svg' }
|
||||
};
|
||||
const saisonsDef = { "printemps": { label: "Printemps"},
|
||||
"ete": { label: "Eté"},
|
||||
@ -83,7 +85,7 @@ export class RdDCalendrier extends Application {
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
ajouterNombreAstral(index) {
|
||||
ajouterNombreAstral(index) {
|
||||
return {
|
||||
nombreAstral: new Roll("1d12").roll().total,
|
||||
valeursFausses: [],
|
||||
@ -182,20 +184,44 @@ export class RdDCalendrier extends Application {
|
||||
fillCalendrierData( data = {} ) {
|
||||
let moisKey = heuresList[this.calendrier.moisRdD];
|
||||
let heureKey = heuresList[this.calendrier.heureRdD];
|
||||
|
||||
const mois = heuresDef[moisKey];
|
||||
const heure = heuresDef[heureKey];
|
||||
|
||||
//console.log(moisKey, heureKey);
|
||||
data.heureKey = heureKey;
|
||||
data.moisKey = moisKey;
|
||||
data.nomMois = heuresDef[moisKey].label; // heures et mois nommés identiques
|
||||
data.jourMois = this.calendrier.jour + 1;
|
||||
data.nomHeure = heuresDef[heureKey].label;
|
||||
data.nomSaison = saisonsDef[heuresDef[moisKey].saison].label;
|
||||
data.nomMois = mois.label; // heures et mois nommés identiques
|
||||
data.iconMois = dossierIconesHeures + mois.icon;
|
||||
data.nomHeure = heure.label;
|
||||
data.iconHeure = dossierIconesHeures + heure.icon;
|
||||
data.nomSaison = saisonsDef[mois.saison].label;
|
||||
data.heuresRelative = this.calendrier.heuresRelative;
|
||||
data.minutesRelative = this.calendrier.minutesRelative;
|
||||
data.lettreFont = heuresDef[heureKey].lettreFont;
|
||||
data.lettreFont = heure.lettreFont;
|
||||
data.isGM = game.user.isGM;
|
||||
return data;
|
||||
}
|
||||
|
||||
getAjustementAstrologique(heureNaissance)
|
||||
{
|
||||
let hn = heuresDef[heureNaissance].heure;
|
||||
let chiffreAstral = this.getCurrentNombreAstral();
|
||||
let heureCourante = this.calendrier.heureRdD;
|
||||
let ecartChance = (hn + chiffreAstral - heureCourante)%12;
|
||||
console.log("ajustementAstrologique", heureNaissance, hn, chiffreAstral, heureCourante, ecartChance);
|
||||
switch (ecartChance)
|
||||
{
|
||||
case 0: return 4;
|
||||
case 4: case 8: return 2;
|
||||
case 6: return -4;
|
||||
case 3: case 9: return -2;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getData() {
|
||||
let data = super.getData();
|
||||
@ -233,10 +259,9 @@ export class RdDCalendrier extends Application {
|
||||
let data = this.fillCalendrierData( );
|
||||
// Rebuild data
|
||||
document.getElementById("calendar--move-handle").innerHTML = `Jour ${data.jourMois} de ${data.nomMois} (${data.nomSaison})` + " - NA: "+this.getCurrentNombreAstral();
|
||||
document.getElementById("calendar-heure-texte").innerHTML = ` - ${data.nomHeure}`;
|
||||
document.getElementById("calendar-heure-texte").innerHTML = `${data.nomHeure}`;
|
||||
document.getElementById("calendar-time").innerHTML = `${data.heuresRelative}:${data.minutesRelative}`;
|
||||
document.getElementById("calendar-icone-heure").innerHTML = data.lettreFont;
|
||||
|
||||
document.getElementById("calendar-heure-img").src = data.iconHeure;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@ -288,6 +313,8 @@ export class RdDCalendrier extends Application {
|
||||
activateListeners(html) {
|
||||
super.activateListeners(html);
|
||||
|
||||
HtmlUtility._showControlWhen(".gm-only", game.user.isGM);
|
||||
|
||||
this.updateDisplay();
|
||||
|
||||
html.find('#calendar-btn-1min').click(ev => {
|
||||
|
@ -42,7 +42,8 @@ export class RdDRoll extends Dialog {
|
||||
surencMalusApply: false,
|
||||
isNatation: rollData.competence ? rollData.competence.name.toLowerCase().includes("natation") : false,
|
||||
useEncForNatation: false,
|
||||
encValueForNatation: actor.encombrementTotal ? Math.floor(actor.encombrementTotal) : 0
|
||||
encValueForNatation: actor.encombrementTotal ? Math.floor(actor.encombrementTotal) : 0,
|
||||
ajustementAstrologique: actor.ajustementAstrologique()
|
||||
},
|
||||
{ overwrite: false });
|
||||
}
|
||||
@ -203,7 +204,7 @@ export class RdDRoll extends Dialog {
|
||||
let malusEnc = (rollData.surencMalusApply) ? rollData.surencMalusValue : 0;
|
||||
let diffLibre = Misc.toInt(rollData.diffLibre);
|
||||
let malusEncNatation = (rollData.useEncForNatation) ? -rollData.encValueForNatation : 0;
|
||||
|
||||
let ajustementChance = rollData.selectedCarac.label.toLowerCase().includes('chance') ? rollData.ajustementAstrologique : 0;
|
||||
// Gestion malus armure
|
||||
let malusArmureValue = 0;
|
||||
if (rollData.malusArmureValue != 0 && (rollData.selectedCarac.label == "Agilité" || rollData.selectedCarac.label == "Dérobée")) {
|
||||
@ -213,6 +214,7 @@ export class RdDRoll extends Dialog {
|
||||
$("#addon-message").text("");
|
||||
}
|
||||
|
||||
|
||||
let diffCompetence = 0;
|
||||
if (rollData.competence) {
|
||||
diffCompetence = Misc.toInt(rollData.competence.data.niveau);
|
||||
@ -222,7 +224,7 @@ export class RdDRoll extends Dialog {
|
||||
diffLibre = RdDItemSort.getDifficulte(rollData.selectedSort, diffLibre);
|
||||
}
|
||||
|
||||
return etat + diffCompetence + diffLibre + diffConditions + malusEnc + malusEncNatation + malusArmureValue;
|
||||
return etat + diffCompetence + diffLibre + diffConditions + malusEnc + malusEncNatation + malusArmureValue + ajustementChance;
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
Reference in New Issue
Block a user