forked from public/foundryvtt-reve-de-dragon
v10 migration, ongoing WIP
This commit is contained in:
@ -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) {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
@ -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 })
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
@ -246,7 +246,7 @@ export class RdDItem extends Item {
|
||||
|
||||
/* -------------------------------------------- */
|
||||
getProprietes() {
|
||||
return this[`_${Misc.data(this).type}ChatData`]();
|
||||
return this[`_${this.type}ChatData`]();
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
|
Reference in New Issue
Block a user