v10 migration, ongoing WIP

This commit is contained in:
2022-05-01 23:37:52 +02:00
parent d83fd27193
commit 4538439c02
24 changed files with 129 additions and 128 deletions

View File

@ -1345,7 +1345,6 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async computeMalusArmure() {
let arm = this.filterItemsData(it => it.type == 'armure' && it.system.equipe)
console.log(">>>>>>>>>ARM", arm)
const newMalusArmure = this.filterItemsData(it => it.type == 'armure' && it.system.equipe)
.map(it => it.system.malus ?? 0)
.reduce(Misc.sum(), 0)
@ -2592,19 +2591,19 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async rollTache(id) {
const tacheData = Misc.data(this.getTache(id));
const compData = Misc.data(this.getCompetence(tacheData.data.competence));
compData.data.defaut_carac = tacheData.data.carac; // Patch !
const tacheData = this.getTache(id)
const compData = this.getCompetence(tacheData.system.competence)
compData.system.defaut_carac = tacheData.system.carac // Patch !
let rollData = {
competence: compData,
tache: tacheData,
diffLibre: tacheData.data.difficulte,
diffLibre: tacheData.system.difficulte,
diffConditions: 0,
use: { libre: false, conditions: true },
carac: {}
};
rollData.carac[tacheData.data.carac] = duplicate(this.system.carac[tacheData.data.carac]); // Single carac
rollData.carac[tacheData.system.carac] = duplicate(this.system.carac[tacheData.system.carac]); // Single carac
console.log("rollTache !!!", rollData);
@ -2617,29 +2616,29 @@ export class RdDActor extends Actor {
{ action: r => this._tacheResult(r) }
]
});
dialog.render(true);
dialog.render(true)
}
/* -------------------------------------------- */
async _tacheResult(rollData) {
// Mise à jour de la tache
rollData.appliquerFatigue = ReglesOptionelles.isUsing("appliquer-fatigue");
rollData.tache = duplicate(rollData.tache);
rollData.tache.data.points_de_tache_courant += rollData.rolled.ptTache;
rollData.appliquerFatigue = ReglesOptionelles.isUsing("appliquer-fatigue")
rollData.tache = duplicate(rollData.tache)
rollData.tache.system.points_de_tache_courant += rollData.rolled.ptTache
if (rollData.rolled.isETotal) {
rollData.tache.data.difficulte--;
rollData.tache.system.difficulte--
}
if (rollData.rolled.isSuccess) {
rollData.tache.data.nb_jet_succes++;
rollData.tache.system.nb_jet_succes++
} else {
rollData.tache.data.nb_jet_echec++;
rollData.tache.system.nb_jet_echec++
}
rollData.tache.data.tentatives = rollData.tache.data.nb_jet_succes + rollData.tache.data.nb_jet_echec;
rollData.tache.system.tentatives = rollData.tache.system.nb_jet_succes + rollData.tache.system.nb_jet_echec
this.updateEmbeddedDocuments('Item', [rollData.tache]);
this.santeIncDec("fatigue", rollData.tache.data.fatigue);
this.updateEmbeddedDocuments('Item', [rollData.tache])
this.santeIncDec("fatigue", rollData.tache.system.fatigue)
await RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-tache.html');
await RdDResolutionTable.displayRollData(rollData, this, 'chat-resultat-tache.html')
}
/* -------------------------------------------- */
@ -2648,14 +2647,14 @@ export class RdDActor extends Actor {
{
oeuvre: oeuvre,
art: oeuvre.type,
competence: duplicate(Misc.data(this.getCompetence(artData.compName ?? oeuvre.data.competence ?? artData.art))),
diffLibre: - (oeuvre.data.niveau ?? 0),
competence: duplicate( this.getCompetence(artData.compName ?? oeuvre.system.competence ?? artData.art)),
diffLibre: - (oeuvre.system.niveau ?? 0),
diffConditions: 0,
use: { libre: false, conditions: true },
selectedCarac: duplicate(this.system.carac[selected])
},
{ overwrite: false });
artData.competence.data.defaut_carac = selected;
artData.competence.system.defaut_carac = selected
if (!artData.forceCarac) {
artData.forceCarac = {};
artData.forceCarac[selected] = duplicate(this.system.carac[selected]);
@ -2682,8 +2681,8 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async _resultArt(artData) {
const baseQualite = (artData.rolled.isSuccess ? artData.oeuvre.data.niveau : artData.competence.data.niveau);
artData.qualiteFinale = Math.min(baseQualite, artData.oeuvre.data.niveau) + artData.rolled.ptQualite;
const baseQualite = (artData.rolled.isSuccess ? artData.oeuvre.system.niveau : artData.competence.system.niveau);
artData.qualiteFinale = Math.min(baseQualite, artData.oeuvre.system.niveau) + artData.rolled.ptQualite;
await RdDResolutionTable.displayRollData(artData, this.name, `chat-resultat-${artData.art}.html`);
}
@ -2699,10 +2698,10 @@ export class RdDActor extends Actor {
async rollDanse(id) {
const artData = { art: 'danse', verbe: 'Danser', forceCarac: {} };
const oeuvre = duplicate(this.getItemOfType(id, artData.art));
if (oeuvre.data.agilite) {
if (oeuvre.system.agilite) {
artData.forceCarac['agilite'] = duplicate(this.system.carac.agilite);
}
if (oeuvre.data.apparence) {
if (oeuvre.system.apparence) {
artData.forceCarac['apparence'] = duplicate(this.system.carac.apparence);
}
const selectedCarac = this._getCaracDanse(oeuvre);
@ -2711,9 +2710,9 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
_getCaracDanse(oeuvre) {
if (oeuvre.data.agilite) { return "agilite"; }
else if (oeuvre.data.apparence) { return "apparence"; }
const compData = Misc.data(this.getCompetence(oeuvre.data.competence));
if (oeuvre.system.agilite) { return "agilite"; }
else if (oeuvre.system.apparence) { return "apparence"; }
const compData = Misc.data(this.getCompetence(oeuvre.system.competence));
return compData.data.defaut_carac;
}
@ -2738,17 +2737,17 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
async _resultRecetteCuisine(artData) {
const baseQualite = (artData.rolled.isSuccess ? artData.oeuvre.data.niveau : artData.competence.data.niveau);
const sust = artData.oeuvre.data.sust * artData.proportions;
artData.qualiteFinale = Math.min(baseQualite, artData.oeuvre.data.niveau) + artData.rolled.ptQualite;
artData.exotismeFinal = Math.min(Math.min(artData.qualiteFinale, artData.oeuvre.data.exotisme ?? 0), 0);
const baseQualite = (artData.rolled.isSuccess ? artData.oeuvre.system.niveau : artData.competence.system.niveau);
const sust = artData.oeuvre.system.sust * artData.proportions;
artData.qualiteFinale = Math.min(baseQualite, artData.oeuvre.system.niveau) + artData.rolled.ptQualite;
artData.exotismeFinal = Math.min(Math.min(artData.qualiteFinale, artData.oeuvre.system.exotisme ?? 0), 0);
console.log("OEUVRE", artData.art, artData)
const platCuisine = {
name: artData.oeuvre.name,
type: 'nourritureboisson',
img: 'systems/foundryvtt-reve-de-dragon/icons/objets/provision_cuite.webp',
data: {
"description": artData.oeuvre.data.description,
"description": artData.oeuvre.system.description,
"sust": Math.min(sust, 1),
"qualite": artData.qualiteFinale,
"exotisme": artData.exotismeFinal,
@ -2759,7 +2758,7 @@ export class RdDActor extends Actor {
};
if (artData.ajouterEquipement) {
await this.createEmbeddedDocuments('Item', [platCuisine]);
ui.notifications.info(`${platCuisine.data.quantite} rations de ${platCuisine.name} ont été ajoutés à votre équipement`);
ui.notifications.info(`${platCuisine.system.quantite} rations de ${platCuisine.name} ont été ajoutés à votre équipement`);
}
artData.platCuisine = platCuisine;
await RdDResolutionTable.displayRollData(artData, this.name, `chat-resultat-${artData.art}.html`);
@ -2769,7 +2768,7 @@ export class RdDActor extends Actor {
async rollJeu(id) {
const oeuvre = Misc.data(this.getJeu(id));
const listCarac = oeuvre.data.caraccomp.toLowerCase().split(/[.,:\/-]/).map(it => it.trim());
const listCarac = oeuvre.system.caraccomp.toLowerCase().split(/[.,:\/-]/).map(it => it.trim());
const carac = listCarac.length > 0 ? listCarac[0] : 'chance'
const artData = {
art: 'jeu', verbe: 'Jeu',
@ -2778,22 +2777,22 @@ export class RdDActor extends Actor {
forceCarac: {}
};
listCarac.forEach(c => artData.forceCarac[c] = this.system.carac[c]);
artData.competence.data.niveauReel = artData.competence.data.niveau;
artData.competence.data.niveau = Math.max(artData.competence.data.niveau, oeuvre.data.base);
artData.competence.system.niveauReel = artData.competence.system.niveau;
artData.competence.system.niveau = Math.max(artData.competence.system.niveau, oeuvre.system.base);
await this._rollArt(artData, carac, oeuvre);
}
async rollOeuvre(id) {
const artData = { art: 'oeuvre', verbe: 'Interpréter' };
const oeuvre = duplicate(this.getItemOfType(id, artData.art));
await this._rollArt(artData, oeuvre.data.default_carac, oeuvre);
await this._rollArt(artData, oeuvre.system.default_carac, oeuvre);
}
/* -------------------------------------------- */
async rollMeditation(id) {
const meditation = duplicate(Misc.data(this.getMeditation(id)));
const competence = duplicate(Misc.data(this.getCompetence(meditation.data.competence)));
competence.data.defaut_carac = "intellect"; // Meditation = toujours avec intellect
const competence = duplicate(Misc.data(this.getCompetence(meditation.system.competence)));
competence.system.defaut_carac = "intellect"; // Meditation = toujours avec intellect
let meditationData = {
competence: competence,
meditation: meditation,
@ -2841,7 +2840,7 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
_getSignesDraconiques(coord) {
const type = TMRUtility.getTMRType(coord);
return this.listItemsData("signedraconique").filter(it => it.data.typesTMR.includes(type));
return this.listItemsData("signedraconique").filter(it => it.system.typesTMR.includes(type));
}
/* -------------------------------------------- */
@ -3188,7 +3187,6 @@ export class RdDActor extends Actor {
/* -------------------------------------------- */
rollArme(arme) {
let itemData = arme.system && arme.system || arme.data
console.log("ARME", arme, itemData)
let competence = this.getCompetence( itemData.competence )
if (arme || (competence.type == 'competencecreature' && competence.system.iscombat)) {
if (competence.system.ispossession) {

View File

@ -10,7 +10,7 @@ export class DialogCreateSigneDraconique extends Dialog {
const signe = await RdDItemSigneDraconique.randomSigneDraconique({ephemere: true});
let dialogData = {
signe: signe,
tmrs: TMRUtility.listSelectedTMR(signe.data.typesTMR ?? []),
tmrs: TMRUtility.listSelectedTMR(signe.system.typesTMR ?? []),
actors: game.actors.filter(actor => actor.isHautRevant()).map(actor => {
let actorData = duplicate(Misc.data(actor));
actorData.selected = actor.hasPlayerOwner;
@ -51,26 +51,26 @@ export class DialogCreateSigneDraconique extends Dialog {
whisper: ChatUtility.getWhisperRecipientsAndGMs(Misc.data(actor).name),
content: await renderTemplate("systems/foundryvtt-reve-de-dragon/templates/chat-signe-draconique-actor.html", {
signe: signe,
alias: Misc.data(actor).name
alias: actor.name
})
});
}
validerSigne() {
this.dialogData.signe.name = $("[name='signe.name']").val();
this.dialogData.signe.data.valeur.norm = $("[name='signe.data.valeur.norm']").val();
this.dialogData.signe.data.valeur.sign = $("[name='signe.data.valeur.sign']").val();
this.dialogData.signe.data.valeur.part = $("[name='signe.data.valeur.part']").val();
this.dialogData.signe.data.difficulte = $("[name='signe.data.difficulte']").val();
this.dialogData.signe.data.ephemere = $("[name='signe.data.ephemere']").prop("checked");
this.dialogData.signe.data.duree = $("[name='signe.data.duree']").val();
this.dialogData.signe.data.typesTMR = $(".select-tmr").val();
this.dialogData.signe.system.valeur.norm = $("[name='signe.data.valeur.norm']").val();
this.dialogData.signe.system.valeur.sign = $("[name='signe.data.valeur.sign']").val();
this.dialogData.signe.system.valeur.part = $("[name='signe.data.valeur.part']").val();
this.dialogData.signe.system.difficulte = $("[name='signe.data.difficulte']").val();
this.dialogData.signe.system.ephemere = $("[name='signe.data.ephemere']").prop("checked");
this.dialogData.signe.system.duree = $("[name='signe.data.duree']").val();
this.dialogData.signe.system.typesTMR = $(".select-tmr").val();
}
/* -------------------------------------------- */
activateListeners(html) {
super.activateListeners(html);
this.setEphemere(this.dialogData.signe.data.ephemere);
this.setEphemere(this.dialogData.signe.system.ephemere);
html.find(".signe-aleatoire").click(event => this.setSigneAleatoire());
html.find("[name='signe.data.ephemere']").change((event) => this.setEphemere(event.currentTarget.checked));
html.find(".select-actor").change((event) => this.onSelectActor(event));
@ -81,14 +81,14 @@ export class DialogCreateSigneDraconique extends Dialog {
const newSigne = await RdDItemSigneDraconique.randomSigneDraconique({ephemere: true});
$("[name='signe.name']").val(newSigne.name);
$("[name='signe.data.valeur.norm']").val(newSigne.data.valeur.norm);
$("[name='signe.data.valeur.sign']").val(newSigne.data.valeur.sign);
$("[name='signe.data.valeur.part']").val(newSigne.data.valeur.part);
$("[name='signe.data.difficulte']").val(newSigne.data.difficulte);
$("[name='signe.data.duree']").val(newSigne.data.duree);
$("[name='signe.data.ephemere']").prop("checked", newSigne.data.ephemere);
$(".select-tmr").val(newSigne.data.typesTMR);
this.setEphemere(newSigne.data.ephemere);
$("[name='signe.data.valeur.norm']").val(newSigne.system.valeur.norm);
$("[name='signe.data.valeur.sign']").val(newSigne.system.valeur.sign);
$("[name='signe.data.valeur.part']").val(newSigne.system.valeur.part);
$("[name='signe.data.difficulte']").val(newSigne.system.difficulte);
$("[name='signe.data.duree']").val(newSigne.system.duree);
$("[name='signe.data.ephemere']").prop("checked", newSigne.system.ephemere);
$(".select-tmr").val(newSigne.system.typesTMR);
this.setEphemere(newSigne.system.ephemere);
}
async setEphemere(ephemere) {
@ -111,8 +111,8 @@ export class DialogCreateSigneDraconique extends Dialog {
onValeurXpSort(event) {
const codeReussite = event.currentTarget.attributes['data-typereussite']?.value ?? 0;
const xp = Number(event.currentTarget.value);
const oldValeur = this.dialogData.signe.data.valeur;
this.dialogData.signe.data.valeur = RdDItemSigneDraconique.calculValeursXpSort(codeReussite, xp, oldValeur);
const oldValeur = this.dialogData.signe.system.valeur;
this.dialogData.signe.system.valeur = RdDItemSigneDraconique.calculValeursXpSort(codeReussite, xp, oldValeur);
}
}

View File

@ -40,18 +40,21 @@ export class RdDSigneDraconiqueItemSheet extends ItemSheet {
/* -------------------------------------------- */
async getData() {
const formData = duplicate(Misc.data(this.object));
mergeObject(formData, {
title: formData.name,
let formData = {
name: this.object.name,
img: this.object.img,
title: this.object.name,
isGM: game.user.isGM,
owner: this.document.isOwner,
data: this.object.system,
isOwned: this.actor ? true : false,
actorId: this.actor?.id,
editable: this.isEditable,
cssClass: this.isEditable ? "editable" : "locked",
});
formData.tmrs = TMRUtility.listSelectedTMR(formData.data.typesTMR ?? []);
return formData;
}
formData.tmrs = TMRUtility.listSelectedTMR(this.object.system.typesTMR ?? [])
console.log("SIG", formData)
return formData
}
/* -------------------------------------------- */
@ -72,17 +75,17 @@ export class RdDSigneDraconiqueItemSheet extends ItemSheet {
}
async onSelectTmr(event) {
event.preventDefault();
const selectedTMR = $(".select-tmr").val();
this.object.update({ 'data.typesTMR': selectedTMR });
event.preventDefault()
const selectedTMR = $(".select-tmr").val()
this.object.update({ 'data.typesTMR': selectedTMR })
}
async onValeurXpSort(event) {
const codeReussite = event.currentTarget.attributes['data-typereussite']?.value ?? 0;
const xp = Number(event.currentTarget.value);
const oldValeur = Misc.templateData(this.object).valeur;
const oldValeur = this.object.system.valeur
const newValeur = RdDItemSigneDraconique.calculValeursXpSort(codeReussite, xp, oldValeur);
await this.object.update({ 'data.valeur': newValeur });
await this.object.update({ 'data.valeur': newValeur })
}
/* -------------------------------------------- */

View File

@ -246,7 +246,7 @@ export class RdDItem extends Item {
/* -------------------------------------------- */
getProprietes() {
return this[`_${Misc.data(this).type}ChatData`]();
return this[`_${this.type}ChatData`]();
}
/* -------------------------------------------- */