From 7f7148e6585e77fbdd93b584c8168228d474aab4 Mon Sep 17 00:00:00 2001 From: LeRatierBretonnien Date: Thu, 2 May 2024 14:08:02 +0200 Subject: [PATCH] Preparation du passage en v12 --- module/actor-sheet.js | 6 +-- module/actor.js | 54 +++++++++++------------ module/actor/base-actor-reve.js | 4 +- module/actor/base-actor-sang.js | 4 +- module/actor/base-actor-sheet.js | 2 +- module/actor/base-actor.js | 4 +- module/actor/creature.js | 2 +- module/actor/entite.js | 2 +- module/chat-utility.js | 2 +- module/coeur/rdd-coeur.js | 2 +- module/dialog-fabriquer-potion.js | 2 +- module/dialog-item-consommer.js | 2 +- module/item-arme.js | 2 +- module/item-competence.js | 2 +- module/item-monnaie.js | 2 +- module/item-sheet.js | 6 +-- module/item.js | 4 +- module/item/blessure.js | 2 +- module/item/maladie.js | 2 +- module/rdd-combat.js | 4 +- module/rdd-empoignade.js | 6 +-- module/rdd-possession.js | 6 +-- module/rdd-resolution-table.js | 2 +- module/rdd-sheet-utility.js | 2 +- module/rdd-tmr-dialog.js | 8 ++-- module/rdd-utility.js | 8 ++-- module/settings/regles-optionnelles.js | 2 +- module/settings/status-effects.js | 4 +- module/sommeil/app-astrologie.js | 2 +- module/time/rdd-calendrier-editor.js | 2 +- module/time/rdd-timestamp.js | 2 +- module/tirage/fenetre-recherche-tirage.js | 2 +- 32 files changed, 78 insertions(+), 78 deletions(-) diff --git a/module/actor-sheet.js b/module/actor-sheet.js index 909e4a4a..d69bdadc 100644 --- a/module/actor-sheet.js +++ b/module/actor-sheet.js @@ -80,7 +80,7 @@ export class RdDActorSheet extends RdDBaseActorSangSheet { // toujours avoir une liste d'armes (pour mettre esquive et corps à corps) const actor = this.actor; - formData.combat = duplicate(formData.armes); + formData.combat = foundry.utils.duplicate(formData.armes); RdDItemArme.computeNiveauArmes(formData.combat, formData.competences); formData.combat.push(RdDItemArme.mainsNues(actor)); formData.combat.push(RdDItemArme.empoignade(actor)); @@ -221,7 +221,7 @@ export class RdDActorSheet extends RdDBaseActorSangSheet { // Points de reve actuel this.html.find('.ptreve-actuel a').click(async event => this.actor.rollCarac('reve-actuel', true)) this.html.find('.empoignade-label a').click(async event => RdDEmpoignade.onAttaqueEmpoignadeFromItem(RdDSheetUtility.getItem(event, this.actor))) - this.html.find('.arme-label a').click(async event => this.actor.rollArme(duplicate(this._getEventArmeCombat(event)))) + this.html.find('.arme-label a').click(async event => this.actor.rollArme(foundry.utils.duplicate(this._getEventArmeCombat(event)))) // Initiative pour l'arme this.html.find('.arme-initiative a').click(async event => { @@ -388,7 +388,7 @@ export class RdDActorSheet extends RdDBaseActorSangSheet { async _onSplitItem(item, split) { if (split >= 1 && split < item.system.quantite) { await item.diminuerQuantite(split); - const splitItem = duplicate(item); + const splitItem = foundry.utils.duplicate(item); splitItem.system.quantite = split; await this.actor.createEmbeddedDocuments('Item', [splitItem]) } diff --git a/module/actor.js b/module/actor.js index 7885bc8d..f3d2e33d 100644 --- a/module/actor.js +++ b/module/actor.js @@ -120,7 +120,7 @@ export class RdDActor extends RdDBaseActorSang { /* -------------------------------------------- */ getActivePoisons() { - return duplicate(this.items.filter(item => item.type == 'poison' && item.system.active)) + return foundry.utils.duplicate(this.items.filter(item => item.type == 'poison' && item.system.active)) } /* -------------------------------------------- */ @@ -143,7 +143,7 @@ export class RdDActor extends RdDBaseActorSang { /* -------------------------------------------- */ getDemiReve() { return this.system.reve.tmrpos.coord } getDraconicList() { return this.itemTypes[TYPES.competence].filter(it => it.system.categorie == 'draconic') } - getBestDraconic() { return duplicate(this.getDraconicList().sort(Misc.descending(it => it.system.niveau)).find(it => true)) } + getBestDraconic() { return foundry.utils.duplicate(this.getDraconicList().sort(Misc.descending(it => it.system.niveau)).find(it => true)) } getDraconicOuPossession() { return [...this.getDraconicList().filter(it => it.system.niveau >= 0), super.getDraconicOuPossession()] @@ -691,7 +691,7 @@ export class RdDActor extends RdDBaseActorSang { } let carac = this.findCaracByName(caracName); if (carac) { - carac = duplicate(carac); + carac = foundry.utils.duplicate(carac); const fromXp = Number(carac.xp); const fromValue = Number(carac.value); let toXp = fromXp; @@ -827,7 +827,7 @@ export class RdDActor extends RdDBaseActorSang { async deleteExperienceLog(from, count) { if (from >= 0 && count > 0) { - let expLog = duplicate(this.system.experiencelog); + let expLog = foundry.utils.duplicate(this.system.experiencelog); expLog.splice(from, count); await this.update({ [`system.experiencelog`]: expLog }); } @@ -1312,7 +1312,7 @@ export class RdDActor extends RdDBaseActorSang { /* -------------------------------------------- */ async saouler(forceAlcool, alcool = undefined) { - let ethylisme = duplicate(this.system.compteurs.ethylisme); + let ethylisme = foundry.utils.duplicate(this.system.compteurs.ethylisme); const etat = this.getEtatGeneral({ ethylisme: true }); const nbDoses = Number(this.system.compteurs.ethylisme.nb_doses || 0); @@ -1489,7 +1489,7 @@ export class RdDActor extends RdDBaseActorSang { const niveauSuivant = Number(carac.value) + 1; let xpNeeded = RdDCarac.getCaracNextXp(niveauSuivant); if (carac.xp >= xpNeeded) { - carac = duplicate(carac); + carac = foundry.utils.duplicate(carac); carac.value = niveauSuivant; let checkXp = { @@ -1519,7 +1519,7 @@ export class RdDActor extends RdDBaseActorSang { if (compData && newXP > 0) { let xpNeeded = RdDItemCompetence.getCompetenceNextXp(compData.system.niveau + 1); if (newXP >= xpNeeded) { - let newCompData = duplicate(compData); + let newCompData = foundry.utils.duplicate(compData); newCompData.system.niveau += 1; newCompData.system.xp = newXP; let checkXp = { @@ -1625,14 +1625,14 @@ export class RdDActor extends RdDBaseActorSang { return; } // Duplication car les pts de reve sont modifiés dans le sort - let sorts = duplicate(this.$filterSortList(this.itemTypes['sort'], coord)); + let sorts = foundry.utils.duplicate(this.$filterSortList(this.itemTypes['sort'], coord)); if (sorts.length == 0) { ui.notifications.info(`Aucun sort disponible en ${TMRUtility.getTMR(coord).label} !`); return; } const draconicList = this.computeDraconicAndSortIndex(sorts); - const reve = duplicate(this.system.carac.reve); + const reve = foundry.utils.duplicate(this.system.carac.reve); const dialog = await this.openRollDialog({ name: 'lancer-un-sort', @@ -1873,7 +1873,7 @@ export class RdDActor extends RdDBaseActorSang { diffConditions: 0, use: { libre: false, conditions: true }, carac: { - [tacheData.system.carac]: duplicate(this.system.carac[tacheData.system.carac]) + [tacheData.system.carac]: foundry.utils.duplicate(this.system.carac[tacheData.system.carac]) } }, callbackAction: r => this._tacheResult(r, options) @@ -1884,7 +1884,7 @@ export class RdDActor extends RdDBaseActorSang { async _tacheResult(rollData, options) { // Mise à jour de la tache rollData.appliquerFatigue = ReglesOptionnelles.isUsing("appliquer-fatigue"); - rollData.tache = duplicate(rollData.tache); + rollData.tache = foundry.utils.duplicate(rollData.tache); rollData.tache.system.points_de_tache_courant += rollData.rolled.ptTache; if (rollData.rolled.isETotal) { rollData.tache.system.difficulte--; @@ -1912,17 +1912,17 @@ export class RdDActor extends RdDBaseActorSang { { oeuvre: oeuvre, art: oeuvre.type, - competence: duplicate(this.getCompetence(artData.compName ?? oeuvre.system.competence ?? artData.art)), + competence: foundry.utils.duplicate(this.getCompetence(artData.compName ?? oeuvre.system.competence ?? artData.art)), diffLibre: - oeuvre.system.niveau, diffConditions: 0, use: { libre: false, conditions: true, surenc: false }, - selectedCarac: duplicate(this.system.carac[selected]) + selectedCarac: foundry.utils.duplicate(this.system.carac[selected]) }, { overwrite: false }); artData.competence.system.defaut_carac = selected; if (!artData.forceCarac) { artData.forceCarac = {}; - artData.forceCarac[selected] = duplicate(this.system.carac[selected]); + artData.forceCarac[selected] = foundry.utils.duplicate(this.system.carac[selected]); } await this.openRollDialog({ @@ -1946,19 +1946,19 @@ export class RdDActor extends RdDBaseActorSang { /* -------------------------------------------- */ async rollChant(id) { const artData = { art: 'chant', verbe: 'Chanter' }; - const oeuvre = duplicate(this.getChant(id)); + const oeuvre = foundry.utils.duplicate(this.getChant(id)); await this._rollArt(artData, "ouie", oeuvre); } /* -------------------------------------------- */ async rollDanse(id) { const artData = { art: 'danse', verbe: 'Danser', forceCarac: {} }; - const oeuvre = duplicate(this.findItemLike(id, artData.art)); + const oeuvre = foundry.utils.duplicate(this.findItemLike(id, artData.art)); if (oeuvre.system.agilite) { - artData.forceCarac['agilite'] = duplicate(this.system.carac.agilite); + artData.forceCarac['agilite'] = foundry.utils.duplicate(this.system.carac.agilite); } if (oeuvre.system.apparence) { - artData.forceCarac['apparence'] = duplicate(this.system.carac.apparence); + artData.forceCarac['apparence'] = foundry.utils.duplicate(this.system.carac.apparence); } const selectedCarac = this._getCaracDanse(oeuvre); await this._rollArt(artData, selectedCarac, oeuvre); @@ -2061,7 +2061,7 @@ export class RdDActor extends RdDBaseActorSang { const artData = { art: 'jeu', verbe: 'Jeu', use: { libre: true, conditions: true, }, - competence: duplicate(this.getCompetence('jeu')), + competence: foundry.utils.duplicate(this.getCompetence('jeu')), forceCarac: {} }; listCarac.forEach(c => artData.forceCarac[c] = this.system.carac[c]); @@ -2072,14 +2072,14 @@ export class RdDActor extends RdDBaseActorSang { async rollOeuvre(id) { const artData = { art: 'oeuvre', verbe: 'Interpréter' } - const oeuvre = duplicate(this.findItemLike(id, artData.art)) + const oeuvre = foundry.utils.duplicate(this.findItemLike(id, artData.art)) await this._rollArt(artData, oeuvre.system.default_carac, oeuvre) } /* -------------------------------------------- */ async rollMeditation(id) { - const meditation = duplicate(this.getMeditation(id)); - const competence = duplicate(this.getCompetence(meditation.system.competence)); + const meditation = foundry.utils.duplicate(this.getMeditation(id)); + const competence = foundry.utils.duplicate(this.getCompetence(meditation.system.competence)); competence.system.defaut_carac = "intellect"; // Meditation = toujours avec intellect let meditationData = { competence: competence, @@ -2145,7 +2145,7 @@ export class RdDActor extends RdDBaseActorSang { } let draconicList = this.getDraconicList() .map(draconic => { - let draconicLecture = duplicate(draconic); + let draconicLecture = foundry.utils.duplicate(draconic); draconicLecture.system.defaut_carac = "intellect"; return draconicLecture; }); @@ -2314,7 +2314,7 @@ export class RdDActor extends RdDBaseActorSang { /* -------------------------------------------- */ async _xpCarac(xpData) { if (xpData.xpCarac > 0) { - const carac = duplicate(this.system.carac) + const carac = foundry.utils.duplicate(this.system.carac) const code = RdDBaseActor._findCaracNode(carac, xpData.caracName) const selectedCarac = carac[code] if (this.isCaracMax(code)) { @@ -2618,7 +2618,7 @@ export class RdDActor extends RdDBaseActorSang { /* -------------------------------------------- */ async incDecItemUse(itemId, inc = 1) { - let itemUse = duplicate(this.getFlag(SYSTEM_RDD, 'itemUse') ?? {}); + let itemUse = foundry.utils.duplicate(this.getFlag(SYSTEM_RDD, 'itemUse') ?? {}); itemUse[itemId] = (itemUse[itemId] ?? 0) + inc; await this.setFlag(SYSTEM_RDD, 'itemUse', itemUse); console.log("ITEM USE INC", inc, itemUse); @@ -2712,7 +2712,7 @@ export class RdDActor extends RdDBaseActorSang { } async setPointsCoeur(subActorId, coeurs, options = { immediat: false }) { - const newSuivants = duplicate(this.system.subacteurs.suivants) + const newSuivants = foundry.utils.duplicate(this.system.subacteurs.suivants) const amoureux = newSuivants.find(it => it.id == subActorId); if (amoureux) { amoureux[options.immediat ? 'coeur' : 'prochainCoeur'] = coeurs @@ -3066,7 +3066,7 @@ export class RdDActor extends RdDBaseActorSang { incarnation.name = 'Réincarnation de ' + incarnation.name incarnation.system = { - carac: duplicate(this.system.carac), + carac: foundry.utils.duplicate(this.system.carac), heure: RdDTimestamp.defHeure(await RdDDice.rollTotal("1dh", { rollMode: "selfroll", showDice: SHOW_DICE })).key, age: 18, biographie: '', diff --git a/module/actor/base-actor-reve.js b/module/actor/base-actor-reve.js index 07bbb312..ad26f6bf 100644 --- a/module/actor/base-actor-reve.js +++ b/module/actor/base-actor-reve.js @@ -286,7 +286,7 @@ export class RdDBaseActorReve extends RdDBaseActor { getCarac() { // TODO: le niveau d'une entité de cauchemar devrait être exclu... - const carac = foundry.utils.mergeObject(duplicate(this.system.carac), + const carac = foundry.utils.mergeObject(foundry.utils.duplicate(this.system.carac), { 'reve-actuel': this.getCaracReveActuel(), 'chance-actuelle': this.getCaracChanceActuelle() @@ -471,7 +471,7 @@ export class RdDBaseActorReve extends RdDBaseActor { }); if (!encaissement.hasPlayerOwner && encaissement.endurance != 0) { - encaissement = duplicate(encaissement); + encaissement = foundry.utils.duplicate(encaissement); encaissement.isGM = true; ChatMessage.create({ whisper: ChatMessage.getWhisperRecipients("GM"), diff --git a/module/actor/base-actor-sang.js b/module/actor/base-actor-sang.js index eb81efa5..693a57f2 100644 --- a/module/actor/base-actor-sang.js +++ b/module/actor/base-actor-sang.js @@ -89,7 +89,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve { /* -------------------------------------------- */ async onAppliquerJetEncaissement(encaissement, attacker) { - const santeOrig = duplicate(this.system.sante); + const santeOrig = foundry.utils.duplicate(this.system.sante); const blessure = await this.ajouterBlessure(encaissement, attacker); // Will update the result table const perteVie = await this.santeIncDec("vie", -encaissement.vie); const perteEndurance = await this.santeIncDec("endurance", -encaissement.endurance, blessure?.isCritique()); @@ -108,7 +108,7 @@ export class RdDBaseActorSang extends RdDBaseActorReve { if (name == 'fatigue' && !ReglesOptionnelles.isUsing("appliquer-fatigue")) { return; } - const sante = duplicate(this.system.sante) + const sante = foundry.utils.duplicate(this.system.sante) let compteur = sante[name]; if (!compteur) { return; diff --git a/module/actor/base-actor-sheet.js b/module/actor/base-actor-sheet.js index 5a0fb95f..c8085789 100644 --- a/module/actor/base-actor-sheet.js +++ b/module/actor/base-actor-sheet.js @@ -312,7 +312,7 @@ export class RdDBaseActorSheet extends ActorSheet { async _onSplitItem(item, split) { if (split >= 1 && split < item.system.quantite) { await item.diminuerQuantite(split); - const splitItem = duplicate(item); + const splitItem = foundry.utils.duplicate(item); splitItem.system.quantite = split; await this.actor.createEmbeddedDocuments('Item', [splitItem]) } diff --git a/module/actor/base-actor.js b/module/actor/base-actor.js index 2e8cd3bb..3a148f18 100644 --- a/module/actor/base-actor.js +++ b/module/actor/base-actor.js @@ -377,7 +377,7 @@ export class RdDBaseActor extends Actor { if (cout > 0) { RdDAudio.PlayContextAudio("argent"); } - const chatAchatItem = duplicate(achat.vente); + const chatAchatItem = foundry.utils.duplicate(achat.vente); chatAchatItem.quantiteTotal = quantite; ChatMessage.create({ user: achat.userId, @@ -649,7 +649,7 @@ export class RdDBaseActor extends Actor { sourceActor.buildSubConteneurObjetList(itemId, itemsList); // Get itemId list const itemsDataToCreate = itemsList.map(it => sourceActor.getItem(it.id)) - .map(it => duplicate(it)) + .map(it => foundry.utils.duplicate(it)) .map(it => { it.system.contenu = []; return it; }); let newItems = await this.createEmbeddedDocuments('Item', itemsDataToCreate); diff --git a/module/actor/creature.js b/module/actor/creature.js index b6656b43..e60be24b 100644 --- a/module/actor/creature.js +++ b/module/actor/creature.js @@ -48,7 +48,7 @@ export class RdDCreature extends RdDBaseActorSang { /* -------------------------------------------- */ async setEntiteReveAccordee(attacker) { if (this.isEntite([ENTITE_INCARNE])) { - let resonnance = duplicate(this.system.sante.resonnance); + let resonnance = foundry.utils.duplicate(this.system.sante.resonnance); if (resonnance.actors.find(it => it == attacker.id)) { // déjà accordé return; diff --git a/module/actor/entite.js b/module/actor/entite.js index bb0e997e..d8052088 100644 --- a/module/actor/entite.js +++ b/module/actor/entite.js @@ -93,7 +93,7 @@ export class RdDEntite extends RdDBaseActorReve { /* -------------------------------------------- */ async setEntiteReveAccordee(attacker) { if (this.isEntite([ENTITE_INCARNE])) { - let resonnance = duplicate(this.system.sante.resonnance); + let resonnance = foundry.utils.duplicate(this.system.sante.resonnance); if (resonnance.actors.find(it => it == attacker.id)) { // déjà accordé return; diff --git a/module/chat-utility.js b/module/chat-utility.js index 81c033da..24ff43da 100644 --- a/module/chat-utility.js +++ b/module/chat-utility.js @@ -131,7 +131,7 @@ export class ChatUtility { /* -------------------------------------------- */ static blindMessageToGM(chatOptions) { - let chatGM = duplicate(chatOptions); + let chatGM = foundry.utils.duplicate(chatOptions); chatGM.whisper = ChatUtility.getUsers(user => user.isGM); chatGM.content = "Message aveugle de " + game.user.name + "
" + chatOptions.content; console.log("blindMessageToGM", chatGM); diff --git a/module/coeur/rdd-coeur.js b/module/coeur/rdd-coeur.js index e7940c91..38b24863 100644 --- a/module/coeur/rdd-coeur.js +++ b/module/coeur/rdd-coeur.js @@ -69,7 +69,7 @@ export class RdDCoeur { } static async applyCoeurChateauDormant(actor, message) { - const newSuivants = duplicate(actor.system.subacteurs.suivants) + const newSuivants = foundry.utils.duplicate(actor.system.subacteurs.suivants) let count = 0 newSuivants.forEach(async link => { const suivant = game.actors.get(link.id) diff --git a/module/dialog-fabriquer-potion.js b/module/dialog-fabriquer-potion.js index f5d4f823..a3e2b5d7 100644 --- a/module/dialog-fabriquer-potion.js +++ b/module/dialog-fabriquer-potion.js @@ -21,7 +21,7 @@ export class DialogFabriquerPotion extends Dialog { /* -------------------------------------------- */ static prepareData(actor, item) { - let potionData = duplicate(item) + let potionData = foundry.utils.duplicate(item) potionData.nbBrinsSelect = RdDUtility.buildListOptions( DialogFabriquerPotion.nombreBrinsMinimum(item), DialogFabriquerPotion.nombreBrinsOptimal(item)); diff --git a/module/dialog-item-consommer.js b/module/dialog-item-consommer.js index d669b5e9..f8ee974e 100644 --- a/module/dialog-item-consommer.js +++ b/module/dialog-item-consommer.js @@ -47,7 +47,7 @@ export class DialogConsommer extends Dialog { /* -------------------------------------------- */ static prepareData(actor, item) { let consommerData = { - item: duplicate(item), + item: foundry.utils.duplicate(item), cuisine: actor.getCompetence('cuisine'), choix: { doses: 1, diff --git a/module/item-arme.js b/module/item-arme.js index 67fb3dd1..695a2bde 100644 --- a/module/item-arme.js +++ b/module/item-arme.js @@ -139,7 +139,7 @@ export class RdDItemArme extends Item { const uneOuDeuxMains = armeData.system.unemain && armeData.system.deuxmains; const containsSlash = !Number.isInteger(armeData.system.dommages) && armeData.system.dommages.includes("/"); if (containsSlash) { // Sanity check - armeData = duplicate(armeData); + armeData = foundry.utils.duplicate(armeData); const tableauDegats = armeData.system.dommages.split("/"); if (aUneMain) diff --git a/module/item-competence.js b/module/item-competence.js index fa5facf3..dce1f30c 100644 --- a/module/item-competence.js +++ b/module/item-competence.js @@ -257,7 +257,7 @@ export class RdDItemCompetence extends Item { /* -------------------------------------------- */ static computeResumeArchetype(competences) { - const computed = duplicate(limitesArchetypes); + const computed = foundry.utils.duplicate(limitesArchetypes); computed.forEach(it => { it.nombre = 0; it.reste = it.nombreMax; }); competences.map(it => Math.max(0, it.system.niveau_archetype)) diff --git a/module/item-monnaie.js b/module/item-monnaie.js index 610ee2d9..366983ca 100644 --- a/module/item-monnaie.js +++ b/module/item-monnaie.js @@ -57,7 +57,7 @@ export class Monnaie { } static creerDeniers(fortune) { - const deniers = duplicate(MONNAIE_ETAIN); + const deniers = foundry.utils.duplicate(MONNAIE_ETAIN); deniers.system.quantite = fortune; return deniers; } diff --git a/module/item-sheet.js b/module/item-sheet.js index 12b22edb..48bf5fa6 100644 --- a/module/item-sheet.js +++ b/module/item-sheet.js @@ -108,8 +108,8 @@ export class RdDItemSheet extends ItemSheet { const competences = await SystemCompendiums.getCompetences('personnage'); formData.categories = this.item.getCategories() if (this.item.type == 'tache' || this.item.type == 'livre' || this.item.type == 'meditation' || this.item.type == 'oeuvre') { - formData.caracList = duplicate(game.system.model.Actor.personnage.carac) - formData.caracList["reve-actuel"] = duplicate(game.system.model.Actor.personnage.reve.reve) + formData.caracList = foundry.utils.duplicate(game.system.model.Actor.personnage.carac) + formData.caracList["reve-actuel"] = foundry.utils.duplicate(game.system.model.Actor.personnage.reve.reve) formData.competences = competences; } if (this.item.type == 'arme') { @@ -228,7 +228,7 @@ export class RdDItemSheet extends ItemSheet { }); } - const updateItemTimestamp = (path, timestamp) => this.item.update({ [path]: duplicate(timestamp) }) + const updateItemTimestamp = (path, timestamp) => this.item.update({ [path]: foundry.utils.duplicate(timestamp) }) RdDTimestamp.handleTimestampEditor(this.html, 'system.temporel.debut', updateItemTimestamp); RdDTimestamp.handleTimestampEditor(this.html, 'system.temporel.fin', updateItemTimestamp); diff --git a/module/item.js b/module/item.js index d0fd9654..62b019d9 100644 --- a/module/item.js +++ b/module/item.js @@ -317,8 +317,8 @@ export class RdDItem extends Item { const timestampFin = await this.calculerFinPeriodeTemporel(timestampDebut); await actor.updateEmbeddedDocuments('Item', [{ _id: this.id, - 'system.temporel.debut': duplicate(timestampDebut), - 'system.temporel.fin': duplicate(timestampFin), + 'system.temporel.debut': foundry.utils.duplicate(timestampDebut), + 'system.temporel.fin': foundry.utils.duplicate(timestampFin), }]) } } diff --git a/module/item/blessure.js b/module/item/blessure.js index c1b4a046..142d40c5 100644 --- a/module/item/blessure.js +++ b/module/item/blessure.js @@ -39,7 +39,7 @@ export class RdDItemBlessure extends RdDItem { ui.notifications.warn(`Pas de tâche de soins pour une blessure ${gravite}`) return undefined; } - return foundry.utils.mergeObject(duplicate(BASE_TACHE_SOIN_BLESSURE), tache) + return foundry.utils.mergeObject(foundry.utils.duplicate(BASE_TACHE_SOIN_BLESSURE), tache) } static async applyFullBlessure(actor, gravite) { diff --git a/module/item/maladie.js b/module/item/maladie.js index 46d14395..c6cef1cf 100644 --- a/module/item/maladie.js +++ b/module/item/maladie.js @@ -38,7 +38,7 @@ export class RdDItemMaladie extends RdDItem { await mal.actor.updateEmbeddedDocuments('Item', [{ _id: mal.id, - 'system.temporel.fin': duplicate(timestampFin), + 'system.temporel.fin': foundry.utils.duplicate(timestampFin), }]) } } diff --git a/module/rdd-combat.js b/module/rdd-combat.js index bed131c7..771a9f76 100644 --- a/module/rdd-combat.js +++ b/module/rdd-combat.js @@ -218,7 +218,7 @@ export class RdDCombatManager extends Combat { static $prepareAttaqueArme(infoAttaque) { const comp = infoAttaque.competences.find(c => c.name == infoAttaque.competence); - const attaque = duplicate(infoAttaque.arme); + const attaque = foundry.utils.duplicate(infoAttaque.arme); attaque.action = 'attaque'; attaque.system.competence = infoAttaque.competence; attaque.system.dommagesReels = infoAttaque.dommagesReel; @@ -890,7 +890,7 @@ export class RdDCombat { // # utilisation esquive const corpsACorps = this.defender.getCompetenceCorpsACorps({ onMessage: it => console.info(it, this.defender) }); - const esquives = duplicate(this.defender.getCompetencesEsquive()) + const esquives = foundry.utils.duplicate(this.defender.getCompetencesEsquive()) esquives.forEach(e => e.system.nbUsage = e?._id ? this.defender.getItemUse(e._id) : 0); const paramChatDefense = { diff --git a/module/rdd-empoignade.js b/module/rdd-empoignade.js index 3991dd0c..38328b86 100644 --- a/module/rdd-empoignade.js +++ b/module/rdd-empoignade.js @@ -98,7 +98,7 @@ export class RdDEmpoignade { /* -------------------------------------------- */ static getEmpoignadeById(actor, id) { let emp = actor.itemTypes[TYPES.empoignade].find(it => it.system.empoignadeid == id) - return emp && duplicate(emp) || undefined; + return emp && foundry.utils.duplicate(emp) || undefined; } /* -------------------------------------------- */ @@ -108,7 +108,7 @@ export class RdDEmpoignade { (it.system.empoigneurid == defender.id && it.system.empoigneid == attacker.id) ) if (emp) { - return duplicate(emp); + return foundry.utils.duplicate(emp); } return undefined; } @@ -267,7 +267,7 @@ export class RdDEmpoignade { return } - empoignade = duplicate(empoignade) + empoignade = foundry.utils.duplicate(empoignade) let defenderRoll = { mode, attacker, defender, empoignade, attackerRoll, diffLibre: attackerRoll.diffLibre, diff --git a/module/rdd-possession.js b/module/rdd-possession.js index c0278522..01421ff4 100644 --- a/module/rdd-possession.js +++ b/module/rdd-possession.js @@ -24,7 +24,7 @@ export class RdDPossession { if (!poss) { poss = defender.items.find(poss => poss.type == TYPES.possession && poss.system.victime.actorid == defender.id); } - return poss && duplicate(poss) || undefined; + return poss && foundry.utils.duplicate(poss) || undefined; } /* -------------------------------------------- */ @@ -52,7 +52,7 @@ export class RdDPossession { /* -------------------------------------------- */ static async onConjurerPossession(attacker, possession) { - possession = duplicate(possession); + possession = foundry.utils.duplicate(possession); RdDPossession.$updateEtatPossession(possession) const defender = game.actors.get(possession.system.entite.actorid); @@ -80,7 +80,7 @@ export class RdDPossession { ui.notifications.warn("Une erreur s'est produite : Aucune possession trouvée !!") return } - possession = duplicate(possession) + possession = foundry.utils.duplicate(possession) // Update for draconic roll let rollData = { mode: "defense", diff --git a/module/rdd-resolution-table.js b/module/rdd-resolution-table.js index 6c928646..e2d78331 100644 --- a/module/rdd-resolution-table.js +++ b/module/rdd-resolution-table.js @@ -114,7 +114,7 @@ export class RdDResolutionTable { /* -------------------------------------------- */ static async roll(caracValue, finalLevel, rollData = {}) { - let chances = duplicate(this.computeChances(caracValue, finalLevel)); + let chances = foundry.utils.duplicate(this.computeChances(caracValue, finalLevel)); this._updateChancesWithBonus(chances, rollData.bonus, finalLevel); this._updateChancesFactor(chances, rollData.diviseurSignificative); chances.showDice = rollData.showDice; diff --git a/module/rdd-sheet-utility.js b/module/rdd-sheet-utility.js index 83419fd9..ee8a21da 100644 --- a/module/rdd-sheet-utility.js +++ b/module/rdd-sheet-utility.js @@ -76,7 +76,7 @@ export class RdDSheetUtility { static async _onSplitItem(item, split, actor) { if (split >= 1 && split < item.system.quantite) { await item.diminuerQuantite(split); - const splitItem = duplicate(item); + const splitItem = foundry.utils.duplicate(item); // todo: ajouter dans le même conteneur? splitItem.system.quantite = split; await actor.createEmbeddedDocuments('Item', [splitItem]) diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index d73fc646..f49be4fb 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -70,7 +70,7 @@ export class RdDTMRDialog extends Dialog { 'z-index': 40 } super(dialogConf, dialogOptions); - this.tmrdata = duplicate(tmrData); + this.tmrdata = foundry.utils.duplicate(tmrData); this.actor = actor; this.actor.tmrApp = this; // reference this app in the actor structure this.viewOnly = tmrData.mode == "visu" @@ -407,7 +407,7 @@ export class RdDTMRDialog extends Dialog { /* -------------------------------------------- */ $marquerCasesTMR(listCoordTMR) { - this.currentRencontre.locList = duplicate(listCoordTMR); // And track of allowed location + this.currentRencontre.locList = foundry.utils.duplicate(listCoordTMR); // And track of allowed location this.currentRencontre.graphics = listCoordTMR.map(coordTMR => this.pixiTMR.addMarkTMR(coordTMR)) } @@ -679,7 +679,7 @@ export class RdDTMRDialog extends Dialog { if (this.isCaseHumide(tmr)) { let rollData = { actor: this.actor, - competence: duplicate(this.actor.getBestDraconic()), + competence: foundry.utils.duplicate(this.actor.getBestDraconic()), tmr: tmr, canClose: false, diffLibre: -7, @@ -804,7 +804,7 @@ export class RdDTMRDialog extends Dialog { async _conquerir(tmr, options) { let rollData = { actor: this.actor, - competence: duplicate(this.actor.getBestDraconic()), + competence: foundry.utils.duplicate(this.actor.getBestDraconic()), tmr: tmr, canClose: options.canClose ?? false, diffLibre: options.difficulte ?? -7, diff --git a/module/rdd-utility.js b/module/rdd-utility.js index 44068635..81bee8bd 100644 --- a/module/rdd-utility.js +++ b/module/rdd-utility.js @@ -31,7 +31,7 @@ function _buildAllSegmentsFatigue(max) { const cycle = [5, 2, 4, 1, 3, 0]; const fatigue = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]; for (let i = 0; i <= max; i++) { - const ligneFatigue = duplicate(fatigue[i]); + const ligneFatigue = foundry.utils.duplicate(fatigue[i]); const caseIncrementee = cycle[i % 6]; ligneFatigue[caseIncrementee]++; ligneFatigue[caseIncrementee + 6]++; @@ -45,7 +45,7 @@ function _buildAllSegmentsFatigue(max) { function _cumulSegmentsFatigue(matrix) { let cumulMatrix = []; for (let line of matrix) { - let cumul = duplicate(line); + let cumul = foundry.utils.duplicate(line); for (let i = 1; i < 12; i++) { cumul[i] += cumul[i - 1]; @@ -607,10 +607,10 @@ export class RdDUtility { for (let encaissement of table) { if ((encaissement.minimum === undefined || encaissement.minimum <= degats) && (encaissement.maximum === undefined || degats <= encaissement.maximum)) { - return duplicate(encaissement); + return foundry.utils.duplicate(encaissement); } } - return duplicate(table[0]); + return foundry.utils.duplicate(table[0]); } /* -------------------------------------------- */ diff --git a/module/settings/regles-optionnelles.js b/module/settings/regles-optionnelles.js index 32f9d36c..bf40c95c 100644 --- a/module/settings/regles-optionnelles.js +++ b/module/settings/regles-optionnelles.js @@ -86,7 +86,7 @@ export class ReglesOptionnelles extends FormApplication { getData() { let formData = super.getData(); const regles = listeReglesOptionnelles.filter(it => game.user.isGM || it.scope == "client").map(it => { - it = duplicate(it); + it = foundry.utils.duplicate(it); it.id = ReglesOptionnelles._getIdRegle(it.name); it.active = ReglesOptionnelles.isSet(it.name); return it; diff --git a/module/settings/status-effects.js b/module/settings/status-effects.js index ebf323e2..9a51b70f 100644 --- a/module/settings/status-effects.js +++ b/module/settings/status-effects.js @@ -94,7 +94,7 @@ export class StatusEffects extends FormApplication { static prepareActiveEffect(effectId) { let status = rddStatusEffects.find(it => it.id == effectId) if (status) { - status = duplicate(status) + status = foundry.utils.duplicate(status) status.statuses = [effectId] } return status; @@ -125,7 +125,7 @@ export class StatusEffects extends FormApplication { getData() { const used = StatusEffects._getUseStatusEffects(); let formData = super.getData(); - formData.effects = duplicate(CONFIG.RDD.allEffects); + formData.effects = foundry.utils.duplicate(CONFIG.RDD.allEffects); formData.effects.forEach(it => it.active = used.includes(it.id)) return formData; } diff --git a/module/sommeil/app-astrologie.js b/module/sommeil/app-astrologie.js index 553d3834..b407dad3 100644 --- a/module/sommeil/app-astrologie.js +++ b/module/sommeil/app-astrologie.js @@ -104,7 +104,7 @@ export class AppAstrologie extends Application { } getDetailNombreAstral(nombreAstral) { - const detail = duplicate(nombreAstral); + const detail = foundry.utils.duplicate(nombreAstral); const timestamp = new RdDTimestamp({ indexDate: nombreAstral.index }); detail.date = { mois: timestamp.mois, jour: timestamp.jour + 1 }; detail.valeursFausses.forEach(fausse => fausse.actorName = game.actors.get(fausse.actorId).name ?? "Inconnu"); diff --git a/module/time/rdd-calendrier-editor.js b/module/time/rdd-calendrier-editor.js index 3ec10947..d3484876 100644 --- a/module/time/rdd-calendrier-editor.js +++ b/module/time/rdd-calendrier-editor.js @@ -61,7 +61,7 @@ export class RdDCalendrierEditor extends Dialog { /* -------------------------------------------- */ updateData(calendrierData) { - this.calendrierData = duplicate(calendrierData); + this.calendrierData = foundry.utils.duplicate(calendrierData); } } diff --git a/module/time/rdd-timestamp.js b/module/time/rdd-timestamp.js index eb8ea8e5..c7a9b602 100644 --- a/module/time/rdd-timestamp.js +++ b/module/time/rdd-timestamp.js @@ -202,7 +202,7 @@ export class RdDTimestamp { } static setWorldTime(timestamp) { - game.settings.set(SYSTEM_RDD, WORLD_TIMESTAMP_SETTING, duplicate(timestamp)); + game.settings.set(SYSTEM_RDD, WORLD_TIMESTAMP_SETTING, foundry.utils.duplicate(timestamp)); } /** construit un RdDTimestamp à partir de l'année/mois/jour/heure?/minute? */ diff --git a/module/tirage/fenetre-recherche-tirage.js b/module/tirage/fenetre-recherche-tirage.js index 91ff082b..be6a5293 100644 --- a/module/tirage/fenetre-recherche-tirage.js +++ b/module/tirage/fenetre-recherche-tirage.js @@ -133,7 +133,7 @@ export class FenetreRechercheTirage extends Application { const parameters = { milieux: milieux, filterMilieux: $filterMilieux(milieux), - filterGroups: duplicate(FILTER_GROUPS).filter(it => it.group), + filterGroups: foundry.utils.duplicate(FILTER_GROUPS).filter(it => it.group), } const options = {} $loadFilters(parameters);