#52 Gestion astrologie
This commit is contained in:
parent
aa97f16f3a
commit
b8f01d8da4
@ -55,26 +55,12 @@ export class RdDCalendrier extends Application {
|
|||||||
if ( game.user.isGM) {
|
if ( game.user.isGM) {
|
||||||
this.listeNombreAstral = duplicate(game.settings.get("foundryvtt-reve-de-dragon", "liste-nombre-astral"));
|
this.listeNombreAstral = duplicate(game.settings.get("foundryvtt-reve-de-dragon", "liste-nombre-astral"));
|
||||||
if ( this.listeNombreAstral == undefined ) {
|
if ( this.listeNombreAstral == undefined ) {
|
||||||
let start = this.getCurrentDayIndex();
|
this.rebuildListeNombreAstral();
|
||||||
let dayList = {}
|
|
||||||
for(let index=start; index<=start+MAX_NOMBRE_ASTRAL; index++) { // Construction des nombres astraux pour les prochains jours
|
|
||||||
dayList[index] = this.ajouterNombreAstral();
|
|
||||||
}
|
|
||||||
this.listeNombreAstral = dayList;
|
|
||||||
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(this.calendrier, this.calendrierPos);
|
console.log(this.calendrier, this.calendrierPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
|
||||||
ajouterNombreAstral(index) {
|
|
||||||
return {
|
|
||||||
nombreAstral: new Roll("1d12").roll().total,
|
|
||||||
valeursFausses: [],
|
|
||||||
index: index
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
getCurrentDayIndex( ) {
|
getCurrentDayIndex( ) {
|
||||||
@ -90,6 +76,38 @@ export class RdDCalendrier extends Application {
|
|||||||
return options;
|
return options;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
ajouterNombreAstral(index) {
|
||||||
|
return {
|
||||||
|
nombreAstral: new Roll("1d12").roll().total,
|
||||||
|
valeursFausses: [],
|
||||||
|
index: index
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
rebuildListeNombreAstral() {
|
||||||
|
// Auto-create if needed
|
||||||
|
if ( this.listeNombreAstral == undefined)
|
||||||
|
this.listeNombreAstral = {};
|
||||||
|
|
||||||
|
// Nettoyage des nombres astraux anciens
|
||||||
|
let jourCourant = this.getCurrentDayIndex();
|
||||||
|
let keys = Object.keys(this.listeNombreAstral);
|
||||||
|
for ( let jourIndex of keys) {
|
||||||
|
if ( Number(jourIndex) < jourCourant) {
|
||||||
|
this.listeNombreAstral[jourIndex] = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// A partir du jour courant, génération des nombres avec gestion des trous potentiels
|
||||||
|
for (let jourIndex = jourCourant; jourIndex<jourCourant+MAX_NOMBRE_ASTRAL; jourIndex++) {
|
||||||
|
if ( this.listeNombreAstral[jourIndex] == undefined) {
|
||||||
|
this.listeNombreAstral[jourIndex] = this.ajouterNombreAstral(jourIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
game.settings.set("foundryvtt-reve-de-dragon", "liste-nombre-astral", this.listeNombreAstral );
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
incrementTime(heure, minute = 0) {
|
incrementTime(heure, minute = 0) {
|
||||||
this.calendrier.minutesRelative += minute;
|
this.calendrier.minutesRelative += minute;
|
||||||
@ -104,16 +122,7 @@ export class RdDCalendrier extends Application {
|
|||||||
}
|
}
|
||||||
if ( this.calendrier.heureRdD > 11 ) {
|
if ( this.calendrier.heureRdD > 11 ) {
|
||||||
this.calendrier.heureRdD -= 11;
|
this.calendrier.heureRdD -= 11;
|
||||||
this.calendrier.jour += 1;
|
this.incrementerJour();
|
||||||
}
|
|
||||||
if ( this.calendrier.jour > RDD_JOUR_PAR_MOIS) {
|
|
||||||
this.calendrier.jour -= this.calendrier.jour;
|
|
||||||
if ( this.calendrier.jour <= 0)
|
|
||||||
this.calendrier.jour = 1;
|
|
||||||
this.calendrier.moisRdD += 1;
|
|
||||||
// Ajouter un nouveau nombre astral
|
|
||||||
let index = this.getCurrentDayIndex();
|
|
||||||
this.listeNombreAstral[index] = this.ajouterNombreAstral();
|
|
||||||
}
|
}
|
||||||
game.settings.set("foundryvtt-reve-de-dragon", "calendrier", duplicate(this.calendrier) );
|
game.settings.set("foundryvtt-reve-de-dragon", "calendrier", duplicate(this.calendrier) );
|
||||||
// Notification aux joueurs
|
// Notification aux joueurs
|
||||||
@ -123,6 +132,19 @@ export class RdDCalendrier extends Application {
|
|||||||
} );
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
incrementerJour( ) {
|
||||||
|
this.calendrier.jour += 1;
|
||||||
|
if ( this.calendrier.jour > RDD_JOUR_PAR_MOIS) {
|
||||||
|
this.calendrier.jour -= RDD_JOUR_PAR_MOIS;
|
||||||
|
if ( this.calendrier.jour <= 0)
|
||||||
|
this.calendrier.jour = 1;
|
||||||
|
this.calendrier.moisRdD += 1;
|
||||||
|
// Reconstruire les nombres astraux
|
||||||
|
this.rebuildListeNombreAstral();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
syncPlayerTime( calendrier ) {
|
syncPlayerTime( calendrier ) {
|
||||||
this.calendrier = duplicate(calendrier); // Local copy update
|
this.calendrier = duplicate(calendrier); // Local copy update
|
||||||
@ -132,7 +154,7 @@ export class RdDCalendrier extends Application {
|
|||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
positionnerHeure( indexHeure ) {
|
positionnerHeure( indexHeure ) {
|
||||||
if ( indexHeure <= this.calendrier.heureRdD )
|
if ( indexHeure <= this.calendrier.heureRdD )
|
||||||
this.calendrier.jour +=1;
|
this.incrementerJour();
|
||||||
this.calendrier.heureRdD = indexHeure;
|
this.calendrier.heureRdD = indexHeure;
|
||||||
this.calendrier.minutesRelative = 0;
|
this.calendrier.minutesRelative = 0;
|
||||||
this.calendrier.heuresRelative = 0;
|
this.calendrier.heuresRelative = 0;
|
||||||
@ -206,9 +228,10 @@ export class RdDCalendrier extends Application {
|
|||||||
this.calendrier.jour = Number(calendrierData.jourMois);
|
this.calendrier.jour = Number(calendrierData.jourMois);
|
||||||
this.calendrier.moisRdD = heuresList.findIndex(mois => mois === calendrierData.moisKey);
|
this.calendrier.moisRdD = heuresList.findIndex(mois => mois === calendrierData.moisKey);
|
||||||
this.calendrier.heureRdD = heuresList.findIndex(heure => heure === calendrierData.heureKey);; // Index dans heuresList
|
this.calendrier.heureRdD = heuresList.findIndex(heure => heure === calendrierData.heureKey);; // Index dans heuresList
|
||||||
|
|
||||||
game.settings.set("foundryvtt-reve-de-dragon", "calendrier", duplicate(this.calendrier) );
|
game.settings.set("foundryvtt-reve-de-dragon", "calendrier", duplicate(this.calendrier) );
|
||||||
|
|
||||||
|
this.rebuildListeNombreAstral();
|
||||||
|
|
||||||
this.updateDisplay();
|
this.updateDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user