Compare commits

...

12 Commits

46 changed files with 260 additions and 135 deletions

View File

@ -9382,6 +9382,10 @@
}, },
"label": "Items (Livre de Base)", "label": "Items (Livre de Base)",
"mapping": { "mapping": {
"effects": {
"converter": "process_effects",
"path": "effects"
},
"careergroup": { "careergroup": {
"converter": "career_careergroup", "converter": "career_careergroup",
"path": "system.careergroup.value" "path": "system.careergroup.value"

View File

@ -4,7 +4,7 @@
"Career Tables": "Table des Carrières", "Career Tables": "Table des Carrières",
"Character Creation": "Création de Personnage", "Character Creation": "Création de Personnage",
"Core Rulebook": "Livre de Base", "Core Rulebook": "Livre de Base",
"Corruption & Mutation Tables": "ables de Corruption & Mutations", "Corruption & Mutation Tables": "Tables de Corruption & Mutations",
"Critical Hit Tables": "Tables de Critiques", "Critical Hit Tables": "Tables de Critiques",
"GM Booklet": "Livret du MJ", "GM Booklet": "Livret du MJ",
"Hit Location": "Table de Localisation", "Hit Location": "Table de Localisation",

89
fr.json
View File

@ -367,6 +367,8 @@
"ITEM.Ritual":"Rituel", "ITEM.Ritual":"Rituel",
"ITEM.Standard":"Standard", "ITEM.Standard":"Standard",
"ITEM.TestSkill":"Test de compétence", "ITEM.TestSkill":"Test de compétence",
"ITEM.Roles":"Roles",
"ITEM.VitalRoles":"Roles vitaux",
"BleedCrit":"L'hémorrage de <b>{name}</b> coagule un peu : 1 Hémorragie peut-être retirée.", "BleedCrit":"L'hémorrage de <b>{name}</b> coagule un peu : 1 Hémorragie peut-être retirée.",
"BleedFail":"<b>{name}</b> meur de sa perte de sang !", "BleedFail":"<b>{name}</b> meur de sa perte de sang !",
@ -601,6 +603,9 @@
"Law": "Loi", "Law": "Loi",
"SinReduced":"Péché réduit de 1", "SinReduced":"Péché réduit de 1",
"TargetingCancelled":"Ciblage échoué: Un Test opposé est déja en cours", "TargetingCancelled":"Ciblage échoué: Un Test opposé est déja en cours",
"Halved":"Divisé par 2",
"SkillsOr":"ou",
"TestPlaceholder":"e.g. Compétence d'arme, Projectiles (Poudre Noire), Résistance",
"Career Selector":"Selecteur de Carrière", "Career Selector":"Selecteur de Carrière",
"Completed":"Completé", "Completed":"Completé",
@ -844,6 +849,11 @@
"CHARGEN.Message.ReplacedTalent":"<p>Remplacement de <b>{talent}</b> par <b>{replacement}</b>!</p>", "CHARGEN.Message.ReplacedTalent":"<p>Remplacement de <b>{talent}</b> par <b>{replacement}</b>!</p>",
"CHARGEN.SkillsTalents.ReplaceTalentDialog.Content":"<p>Voulez vous remplacer {talent} avec {replacement}?</p>", "CHARGEN.SkillsTalents.ReplaceTalentDialog.Content":"<p>Voulez vous remplacer {talent} avec {replacement}?</p>",
"CHARGEN.SkillsTalents.ReplaceTalentDialog.Title":"Remplacer un Talent", "CHARGEN.SkillsTalents.ReplaceTalentDialog.Title":"Remplacer un Talent",
"CHARGEN.Message.Income":"<p><b>Revenu:</b> {quantity} {name}</p>",
"CHARGEN.SkillsTalents.Traits":"Traits",
"CHARGEN.Species.ExtraSpeciesOptions":"Options spéciales des espèces",
"CHARGEN.Species.RandomTalents":"{num} Talents aléatoires",
"CHARGEN.Trappings.RollIncome":"Lancer pour le Revenu",
"CAREER.DifferentClass": "Entrée dans une nouvelle Classe", "CAREER.DifferentClass": "Entrée dans une nouvelle Classe",
"CAREER.LeaveIncomplete": "Départ d'une carrière incomplète", "CAREER.LeaveIncomplete": "Départ d'une carrière incomplète",
@ -1089,6 +1099,7 @@
"CHAT.VehicleTBTooltipMultiply":"{number} × BE", "CHAT.VehicleTBTooltipMultiply":"{number} × BE",
"CHAT.VehicleTBTooltipSubtract":"BE - {number}", "CHAT.VehicleTBTooltipSubtract":"BE - {number}",
"CHAT.Vital":"Vital", "CHAT.Vital":"Vital",
"CHAT.DiseaseRollError":"Une erreur s'est produite lors du jet d'incubation ou de durée de la maladie.",
"Error.SpeciesSkills" : "Impossible d'ajouter des compétences pour les races", "Error.SpeciesSkills" : "Impossible d'ajouter des compétences pour les races",
"Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races", "Error.SpeciesTalents" : "Impossible d'ajouter des talents pour les races",
@ -1756,6 +1767,22 @@
"NAME.Arcane":"Arcane", "NAME.Arcane":"Arcane",
"NAME.Lingering":"Persistant", "NAME.Lingering":"Persistant",
"NAME.FearExtendedTest":"Test étendu de Peur", "NAME.FearExtendedTest":"Test étendu de Peur",
"NAME.ArcaneMagic":"Magie des Arcanes",
"NAME.ChaosMagic":"Magie du Chaos",
"NAME.Distract":"Distraire",
"NAME.Ethereal":"Ethéré",
"NAME.FastHands":"Mains agiles",
"NAME.Frenzy":"Frénésie",
"NAME.FuriousAssault":"Assaut féroce",
"NAME.MagicResistanceTalent":"Résistance à la Magie",
"NAME.MagicResistanceTrait":"Résistance à la Magie",
"NAME.MagicalSense":"Sens de la Magie",
"NAME.PettyMagic":"Magie Mineure",
"NAME.Schemer":"Intrigant",
"NAME.SeaLegsTalent":"Pied marin",
"NAME.SecondSight":"Seconde vue",
"NAME.WarWizard":"Mage de guerre",
"NAME.Witch":"Sorcier!",
"SPEC.Tiny" : "Minuscule", "SPEC.Tiny" : "Minuscule",
"SPEC.Little" : "Très petite", "SPEC.Little" : "Très petite",
@ -1765,6 +1792,19 @@
"SPEC.Enormous" : "Enorme", "SPEC.Enormous" : "Enorme",
"SPEC.Monstrous" : "Monstrueuse", "SPEC.Monstrous" : "Monstrueuse",
"SPEC.Vehicle": "Véhicule", "SPEC.Vehicle": "Véhicule",
"SPEC.Any":"Any",
"SPEC.Cathayan":"Cathayan",
"SPEC.Eltharin":"Elthárin",
"SPEC.Hearing":"Ouie",
"SPEC.Horse":"Cheval",
"SPEC.Lute":"Luth",
"SPEC.Rural":"Rural",
"SPEC.Sight":"Vue",
"SPEC.Sing":"Chant",
"SPEC.Singing":"Chanter",
"SPEC.Smell":"Odorat",
"SPEC.Underground":"Sous-terrain",
"SPEC.Urban":"Urbain",
"SPELL.Lore":"Domaine:", "SPELL.Lore":"Domaine:",
@ -2100,6 +2140,26 @@
"VEHICLE.Starting":"Démarre", "VEHICLE.Starting":"Démarre",
"VEHICLE.Type":"Type de véhicule", "VEHICLE.Type":"Type de véhicule",
"VEHICLE.WeekLabel":"Label de Semaine", "VEHICLE.WeekLabel":"Label de Semaine",
"VEHICLE.AssignedActors":"Acteur(s) assigné(s)",
"VEHICLE.Change":"Changer",
"VEHICLE.ChooseSkill":"Selectionnez la compétence à utiliser",
"VEHICLE.Delete":"Supprimer ?",
"VEHICLE.HandlingNoPenalty":"Encombrement en dessous du maximum : aucune pénalité.",
"VEHICLE.HandlingPenalty":"Les tests de Maneouvre on un malus de -{penalty} DR.",
"VEHICLE.LabelError":"Entrez un label pour le jet",
"VEHICLE.ManannsMoodRolls":"Jet d'Humeur de Manann",
"VEHICLE.MoraleRolls":"Jet de Moral",
"VEHICLE.Move":"Mouvement de Véhicule",
"VEHICLE.NewRole":"Nouveau role",
"VEHICLE.NoManannsMoodModifiers":"Aucun modificateur d'humeur",
"VEHICLE.NoMoraleModifiers":"Aucun modificateur de moral",
"VEHICLE.NoSkill":"Cet acteur n'a aucune compétence utilisable avec ce role",
"VEHICLE.O":"O",
"VEHICLE.Roles":"Roles ",
"VEHICLE.S":"S",
"VEHICLE.SellCargo":"Vendre la cargaison",
"VEHICLE.VehicleCrew":"Equipage du véhicule",
"VEHICLE.VehicleMorale":"Moral du véhicule",
"CONFIGURE.CalcTokenSize" : "Calculer automatiquement la taille des Tokens", "CONFIGURE.CalcTokenSize" : "Calculer automatiquement la taille des Tokens",
"CONFIGURE.CalcRun" : "Calculer automatiquement la vitesse de course", "CONFIGURE.CalcRun" : "Calculer automatiquement la vitesse de course",
@ -2172,7 +2232,8 @@
"EFFECT.AffectTheSourceOfFear":"Tests affectés par la source de la Peur", "EFFECT.AffectTheSourceOfFear":"Tests affectés par la source de la Peur",
"EFFECT.AffectTheSourceOfFearName":"Tests qui affectent {name}", "EFFECT.AffectTheSourceOfFearName":"Tests qui affectent {name}",
"EFFECT.DeletingEffectItems":"Suppression des items d'effets: {items}", "EFFECT.DeletingEffectItems":"Suppression des items d'effets: {items}",
"EFFECT.BlackpowderShock":"Contre-coup de Poudre Noire",
"GRIEVANCE.Warning1":"Attention", "GRIEVANCE.Warning1":"Attention",
"GRIEVANCE.Warning2":": Cette information est envoyé sur l'espace Github, qui est un espace publique, donc le Tag Discord est préférable. Sinon, contactez moi (MooMan) directement. Si vous avez l'impression que le bug concerne le module FR, contactez LeRatierBretonnier (Discord Foundry FR)", "GRIEVANCE.Warning2":": Cette information est envoyé sur l'espace Github, qui est un espace publique, donc le Tag Discord est préférable. Sinon, contactez moi (MooMan) directement. Si vous avez l'impression que le bug concerne le module FR, contactez LeRatierBretonnier (Discord Foundry FR)",
"GRIEVANCE.Warning3":"Avant de soumettre un rapport de bug", "GRIEVANCE.Warning3":"Avant de soumettre un rapport de bug",
@ -2493,6 +2554,30 @@
"BREAKDOWN.ShieldMoo":"Défense échouée - Ignore Shield AP ({ignored})", "BREAKDOWN.ShieldMoo":"Défense échouée - Ignore Shield AP ({ignored})",
"BREAKDOWN.Undamaging":"<strong>Inoffensive</strong>: {originalAP} AP * 2 = {modifiedAP}", "BREAKDOWN.Undamaging":"<strong>Inoffensive</strong>: {originalAP} AP * 2 = {modifiedAP}",
"BREAKDOWN.Weakpoints":"Points faibles - Ignore {ignored} ({item})", "BREAKDOWN.Weakpoints":"Points faibles - Ignore {ignored} ({item})",
"BREAKDOWN.Zzap":"Zzap! - Ignore {ignored}" "BREAKDOWN.Zzap":"Zzap! - Ignore {ignored}",
"Heal Wounds": "Soigner les blessures",
"Heal": "Soigner" ,
"Staunch": "Bander",
"Staunch Bleeding Conditions": "Soigner des Hémoragies",
"Acrobatie Equestre": "Acrobatie Equestre",
"No penalty to dodging on horseback": "Pas de pénalité pour esquiver à cheval",
"Suave": "Affable",
"Animal Affinity": "Affinité avec les animaux",
"Ambidextrous": "Ambidextre",
"Pure Soul": "Âme pure",
"Gunner": "Artilleur",
"Artistic": "Artiste",
"Furious Assault": "Assaut furieux",
"Magical Attacks" : "Attaques magiques",
"Daemonic Ward": "Barrière démoniaque",
"Relies on two hands": "Nécessite les deux mains",
"Useless": "Inutile",
"WH":{
"TransferType":{
"Crew":"Equipage"
}
}
} }

View File

@ -8,7 +8,7 @@
} }
], ],
"url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr", "url": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr",
"version": "7.2.2", "version": "8.0.3",
"esmodules": [ "esmodules": [
"modules/babele-register.js", "modules/babele-register.js",
"modules/addon-register.js", "modules/addon-register.js",
@ -117,10 +117,10 @@
} }
], ],
"manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json", "manifest": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/raw/v10/module.json",
"download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-7.2.2.zip", "download": "https://www.uberwald.me/gitea/public/foundryvtt-wh4-lang-fr-fr/archive/foundryvtt-wh4-lang-fr-8.0.3.zip",
"id": "wh4-fr-translation", "id": "wh4-fr-translation",
"compatibility": { "compatibility": {
"minimum": "11", "minimum": "12",
"verified": "12" "verified": "12"
}, },
"relationships": { "relationships": {
@ -139,4 +139,4 @@
} }
] ]
} }
} }

View File

@ -1,10 +1,11 @@
/************************************************************************************/ /************************************************************************************/
//import WFRP_Tables from "/systems/wfrp4e/modules/system/tables-wfrp4e.js"; //import WFRP_Tables from "/systems/wfrp4e/modules/system/tables-wfrp4e.js";
import { WH4FRPatchConfig } from "./config-patch.js"; import { WH4FRPatchConfig } from "./config-patch.js";
import {TranslatedCompendium} from "../../babele/script/translated-compendium.js";
/************************************************************************************/ /************************************************************************************/
const _patch_eis = () => { const _patch_eis = () => {
if (game.wfrp4e.config && game.wfrp4e.config.symptoms && game.wfrp4e.config.symptoms["delirium"] ) { if (game.wfrp4e?.config?.symptoms && game.wfrp4e.config.symptoms["delirium"] ) {
game.wfrp4e.config.symptoms["delirium"] = "Délire"; game.wfrp4e.config.symptoms["delirium"] = "Délire";
game.wfrp4e.config.symptomDescriptions["delirium"] = "Votre sensibilité va et vient, avec des moments de clarté remplaçés subitement Your sensibility comes and goes, with moments of clarity replaced suddenly par des accès de délire, des hallucinations et de la terreur. Faites un <b>Test de Force Mentale Intermédiaire (+0)</b> chaque heure, et consultez la table <b><a class='table-click' data-table='delirium'>Délires</a></b> table."; game.wfrp4e.config.symptomDescriptions["delirium"] = "Votre sensibilité va et vient, avec des moments de clarté remplaçés subitement Your sensibility comes and goes, with moments of clarity replaced suddenly par des accès de délire, des hallucinations et de la terreur. Faites un <b>Test de Force Mentale Intermédiaire (+0)</b> chaque heure, et consultez la table <b><a class='table-click' data-table='delirium'>Délires</a></b> table.";
@ -369,7 +370,7 @@ Hooks.on("chatMessage", (html, content, msg) => {
/************************************************************************************/ /************************************************************************************/
/* Additionnal hooks ready */ /* Additionnal hooks ready */
Hooks.once('ready', () => { Hooks.on('ready', () => {
if (game.user.isGM) { if (game.user.isGM) {
let chatData = { let chatData = {
@ -408,8 +409,7 @@ Hooks.once('ready', () => {
"doom": "Maudit (-40)" "doom": "Maudit (-40)"
} }
console.log("WFRP4E-TRANSLATION | Loading timeout");
//setTimeout( __check_fix_wrong_modules, 2000, true, false); //setTimeout( __check_fix_wrong_modules, 2000, true, false);
setTimeout(__check_fix_wrong_modules, 20000, true, true); setTimeout(__check_fix_wrong_modules, 20000, true, true);
setTimeout(__add_actors_translation, 21000, false, true); setTimeout(__add_actors_translation, 21000, false, true);

View File

@ -268,9 +268,32 @@ Hooks.once('init', () => {
} }
} }
} }
return skills_list; return skills_list
},
"process_effects": (effectsData, translations, data, tc, tc_translations) => {
//console.log("Effects :", effectsData, translations, data, tc, tc_translations)
for (let e of effectsData) {
let origName = e.name
e.name = tc_translations.name || game.i18n.localize(e.name)
if ( e.flags?.wfrp4e?.scriptData) {
for (let script of e.flags.wfrp4e.scriptData) {
if (script?.label) {
// Quand le label du script est strictement identique au nom de l'item concerné
if ( script.label.toLowerCase() == origName.toLowerCase() ) {
script.label = e.name
} else if (script.label.toLowerCase().includes("tests to affect")) {
script.label = script.label.replace("Tests to affect", "Tests relatifs à ")
} else if (script.label.toLowerCase().includes("using torn muscle")) {
script.label = script.label.replace("Using Torn Muscle", "Utilisation du muscle déchiré ")
} else {
script.label = game.i18n.localize(script.label)
}
}
}
}
}
return effectsData
}, },
"resultConverter": (results, translated) => { "resultConverter": (results, translated) => {
//console.log("STUF PARSING", results, translated) //console.log("STUF PARSING", results, translated)
if (translated) { if (translated) {

View File

@ -4,10 +4,7 @@ export class WH4FRPatchConfig {
/************************************************************************************/ /************************************************************************************/
static translateSkillList( skillList) { static translateSkillList( skillList) {
let compendiumName = 'wfrp4e-core.skills' // Per default let compendiumName = 'wfrp4e-core.items'
if (game.system.version.match("7.")) {
compendiumName = 'wfrp4e-core.items'
}
let newList = []; let newList = [];
for( let compName of skillList) { for( let compName of skillList) {
@ -32,10 +29,7 @@ export class WH4FRPatchConfig {
/************************************************************************************/ /************************************************************************************/
static translateTalentList( talentList) { static translateTalentList( talentList) {
let compendiumName = 'wfrp4e-core.talents' // Per default let compendiumName = 'wfrp4e-core.items'
if (game.system.version.match("7.")) {
compendiumName = 'wfrp4e-core.items'
}
let newList = []; let newList = [];
for( let talentLine of talentList) { for( let talentLine of talentList) {
@ -86,8 +80,10 @@ export class WH4FRPatchConfig {
/************************************************************************************/ /************************************************************************************/
static patch_species_skills( ) { static patch_species_skills( ) {
console.log("Patching species skills....");
for (let speciesName in game.wfrp4e.config.speciesSkills) { for (let speciesName in game.wfrp4e.config.speciesSkills) {
let speciesComp = game.wfrp4e.config.speciesSkills[speciesName]; let speciesComp = game.wfrp4e.config.speciesSkills[speciesName];
console.log("SpeciesName", speciesName, speciesComp);
game.wfrp4e.config.speciesSkills[speciesName] = this.translateSkillList( speciesComp ) game.wfrp4e.config.speciesSkills[speciesName] = this.translateSkillList( speciesComp )
} }
} }
@ -102,10 +98,7 @@ export class WH4FRPatchConfig {
/************************************************************************************/ /************************************************************************************/
static patch_career() { static patch_career() {
let compendiumName = 'wfrp4e-core.careers' // Per default let compendiumName = 'wfrp4e-core.items'
if (game.system.version.match("7.")) {
compendiumName = 'wfrp4e-core.items'
}
if ( game.wfrp4e.tables.career) { if ( game.wfrp4e.tables.career) {
for( let row of game.wfrp4e.tables.career.rows) { for( let row of game.wfrp4e.tables.career.rows) {
@ -128,7 +121,7 @@ export class WH4FRPatchConfig {
/************************************************************************************/ /************************************************************************************/
static perform_patch() { static perform_patch() {
if (game.user.isGM) { if (game.user.isGM) {
let coreC7 = game.modules.find(mod => mod.id == "wfrp4e-core") let coreC7 = game.modules.find(mod => mod.id == "wfrp4e-core")
if (!coreC7 || !coreC7.active) { if (!coreC7 || !coreC7.active) {
@ -138,8 +131,7 @@ export class WH4FRPatchConfig {
} }
// Detect and patch as necessary // Detect and patch as necessary
if (game.wfrp4e.config?.talentBonuses && game.wfrp4e.config.talentBonuses["vivacité"] == undefined) { if (game.wfrp4e.config?.talentBonuses ) {
console.log("Patching WFRP4E now ....");
game.wfrp4e.config.qualityDescriptions["distract"] = game.i18n.localize("WFRP4E.Properties.Distract"); // Patch missing quality game.wfrp4e.config.qualityDescriptions["distract"] = game.i18n.localize("WFRP4E.Properties.Distract"); // Patch missing quality
game.wfrp4e.config.talentBonuses = { game.wfrp4e.config.talentBonuses = {

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
MANIFEST-000760 MANIFEST-000776

View File

@ -1,7 +1,7 @@
2024/06/06-22:05:54.498036 7fcfb2a006c0 Recovering log #758 2024/09/07-17:35:53.339910 7f80f2a006c0 Recovering log #774
2024/06/06-22:05:54.508511 7fcfb2a006c0 Delete type=3 #756 2024/09/07-17:35:53.351094 7f80f2a006c0 Delete type=3 #772
2024/06/06-22:05:54.508571 7fcfb2a006c0 Delete type=0 #758 2024/09/07-17:35:53.351249 7f80f2a006c0 Delete type=0 #774
2024/06/06-22:06:40.979294 7fcfb16006c0 Level-0 table #763: started 2024/09/07-17:41:21.597568 7f80f10006c0 Level-0 table #779: started
2024/06/06-22:06:40.979314 7fcfb16006c0 Level-0 table #763: 0 bytes OK 2024/09/07-17:41:21.597606 7f80f10006c0 Level-0 table #779: 0 bytes OK
2024/06/06-22:06:40.986553 7fcfb16006c0 Delete type=0 #761 2024/09/07-17:41:21.603972 7f80f10006c0 Delete type=0 #777
2024/06/06-22:06:40.993209 7fcfb16006c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end) 2024/09/07-17:41:21.611875 7f80f10006c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/06/06-20:54:36.421316 7fcfb2a006c0 Recovering log #754 2024/07/13-10:41:36.913478 7fc8820006c0 Recovering log #770
2024/06/06-20:54:36.431498 7fcfb2a006c0 Delete type=3 #752 2024/07/13-10:41:36.924385 7fc8820006c0 Delete type=3 #768
2024/06/06-20:54:36.431579 7fcfb2a006c0 Delete type=0 #754 2024/07/13-10:41:36.924475 7fc8820006c0 Delete type=0 #770
2024/06/06-21:16:20.284455 7fcfb16006c0 Level-0 table #759: started 2024/07/13-10:42:24.874947 7fc87de006c0 Level-0 table #775: started
2024/06/06-21:16:20.284514 7fcfb16006c0 Level-0 table #759: 0 bytes OK 2024/07/13-10:42:24.874996 7fc87de006c0 Level-0 table #775: 0 bytes OK
2024/06/06-21:16:20.327048 7fcfb16006c0 Delete type=0 #757 2024/07/13-10:42:24.881904 7fc87de006c0 Delete type=0 #773
2024/06/06-21:16:20.401073 7fcfb16006c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end) 2024/07/13-10:42:24.882157 7fc87de006c0 Manual compaction at level-0 from '!journal!3IgmiprzLB6Lwenc' @ 72057594037927935 : 1 .. '!journal.pages!suuYN87Al1ZZWtQQ.jhgNnhWhrkOpKs1B' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000762 MANIFEST-000778

View File

@ -1,7 +1,7 @@
2024/06/06-22:05:54.510086 7fcfb3e006c0 Recovering log #760 2024/09/07-17:35:53.356731 7f80f20006c0 Recovering log #776
2024/06/06-22:05:54.520324 7fcfb3e006c0 Delete type=3 #758 2024/09/07-17:35:53.368124 7f80f20006c0 Delete type=3 #774
2024/06/06-22:05:54.520387 7fcfb3e006c0 Delete type=0 #760 2024/09/07-17:35:53.368326 7f80f20006c0 Delete type=0 #776
2024/06/06-22:06:40.964988 7fcfb16006c0 Level-0 table #765: started 2024/09/07-17:41:21.604148 7f80f10006c0 Level-0 table #781: started
2024/06/06-22:06:40.965009 7fcfb16006c0 Level-0 table #765: 0 bytes OK 2024/09/07-17:41:21.604186 7f80f10006c0 Level-0 table #781: 0 bytes OK
2024/06/06-22:06:40.972320 7fcfb16006c0 Delete type=0 #763 2024/09/07-17:41:21.611569 7f80f10006c0 Delete type=0 #779
2024/06/06-22:06:40.979118 7fcfb16006c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end) 2024/09/07-17:41:21.611892 7f80f10006c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/06/06-20:54:36.435801 7fcfb34006c0 Recovering log #756 2024/07/13-10:41:36.930430 7fc8816006c0 Recovering log #772
2024/06/06-20:54:36.446523 7fcfb34006c0 Delete type=3 #754 2024/07/13-10:41:36.940714 7fc8816006c0 Delete type=3 #770
2024/06/06-20:54:36.446619 7fcfb34006c0 Delete type=0 #756 2024/07/13-10:41:36.940805 7fc8816006c0 Delete type=0 #772
2024/06/06-21:16:20.247619 7fcfb16006c0 Level-0 table #761: started 2024/07/13-10:42:24.889098 7fc87de006c0 Level-0 table #777: started
2024/06/06-21:16:20.247668 7fcfb16006c0 Level-0 table #761: 0 bytes OK 2024/07/13-10:42:24.889141 7fc87de006c0 Level-0 table #777: 0 bytes OK
2024/06/06-21:16:20.284176 7fcfb16006c0 Delete type=0 #759 2024/07/13-10:42:24.897469 7fc87de006c0 Delete type=0 #775
2024/06/06-21:16:20.401044 7fcfb16006c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end) 2024/07/13-10:42:24.905414 7fc87de006c0 Manual compaction at level-0 from '!folders!3uquYH73ttCdoH0I' @ 72057594037927935 : 1 .. '!items!ylFhk7mGZOnAJTUT' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000760 MANIFEST-000776

View File

@ -1,7 +1,7 @@
2024/06/06-22:05:54.535617 7fcfb3e006c0 Recovering log #758 2024/09/07-17:35:53.389079 7f80f20006c0 Recovering log #774
2024/06/06-22:05:54.546232 7fcfb3e006c0 Delete type=3 #756 2024/09/07-17:35:53.400221 7f80f20006c0 Delete type=3 #772
2024/06/06-22:05:54.546283 7fcfb3e006c0 Delete type=0 #758 2024/09/07-17:35:53.400312 7f80f20006c0 Delete type=0 #774
2024/06/06-22:06:40.986761 7fcfb16006c0 Level-0 table #763: started 2024/09/07-17:41:21.612001 7f80f10006c0 Level-0 table #779: started
2024/06/06-22:06:40.986809 7fcfb16006c0 Level-0 table #763: 0 bytes OK 2024/09/07-17:41:21.612049 7f80f10006c0 Level-0 table #779: 0 bytes OK
2024/06/06-22:06:40.993088 7fcfb16006c0 Delete type=0 #761 2024/09/07-17:41:21.618574 7f80f10006c0 Delete type=0 #777
2024/06/06-22:06:40.993226 7fcfb16006c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end) 2024/09/07-17:41:21.639322 7f80f10006c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/06/06-20:54:36.466388 7fcfb34006c0 Recovering log #754 2024/07/13-10:41:36.961368 7fc8816006c0 Recovering log #770
2024/06/06-20:54:36.476745 7fcfb34006c0 Delete type=3 #752 2024/07/13-10:41:36.972209 7fc8816006c0 Delete type=3 #768
2024/06/06-20:54:36.476826 7fcfb34006c0 Delete type=0 #754 2024/07/13-10:41:36.972302 7fc8816006c0 Delete type=0 #770
2024/06/06-21:16:20.363505 7fcfb16006c0 Level-0 table #759: started 2024/07/13-10:42:24.897709 7fc87de006c0 Level-0 table #775: started
2024/06/06-21:16:20.363562 7fcfb16006c0 Level-0 table #759: 0 bytes OK 2024/07/13-10:42:24.897763 7fc87de006c0 Level-0 table #775: 0 bytes OK
2024/06/06-21:16:20.400707 7fcfb16006c0 Delete type=0 #757 2024/07/13-10:42:24.905156 7fc87de006c0 Delete type=0 #773
2024/06/06-21:16:20.401115 7fcfb16006c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end) 2024/07/13-10:42:24.905434 7fc87de006c0 Manual compaction at level-0 from '!journal!cZtNgayIw2QFhC9u' @ 72057594037927935 : 1 .. '!journal.pages!cZtNgayIw2QFhC9u.ts265H1XkisLgdow' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000760 MANIFEST-000776

View File

@ -1,7 +1,7 @@
2024/06/06-22:05:54.485070 7fcfb3e006c0 Recovering log #758 2024/09/07-17:35:53.322364 7f80f20006c0 Recovering log #774
2024/06/06-22:05:54.496169 7fcfb3e006c0 Delete type=3 #756 2024/09/07-17:35:53.332882 7f80f20006c0 Delete type=3 #772
2024/06/06-22:05:54.496286 7fcfb3e006c0 Delete type=0 #758 2024/09/07-17:35:53.333094 7f80f20006c0 Delete type=0 #774
2024/06/06-22:06:40.951380 7fcfb16006c0 Level-0 table #763: started 2024/09/07-17:41:21.584022 7f80f10006c0 Level-0 table #779: started
2024/06/06-22:06:40.951454 7fcfb16006c0 Level-0 table #763: 0 bytes OK 2024/09/07-17:41:21.584076 7f80f10006c0 Level-0 table #779: 0 bytes OK
2024/06/06-22:06:40.958729 7fcfb16006c0 Delete type=0 #761 2024/09/07-17:41:21.590929 7f80f10006c0 Delete type=0 #777
2024/06/06-22:06:40.979070 7fcfb16006c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end) 2024/09/07-17:41:21.611830 7f80f10006c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/06/06-20:54:36.406301 7fcfb34006c0 Recovering log #754 2024/07/13-10:41:36.897525 7fc8816006c0 Recovering log #770
2024/06/06-20:54:36.416875 7fcfb34006c0 Delete type=3 #752 2024/07/13-10:41:36.908614 7fc8816006c0 Delete type=3 #768
2024/06/06-20:54:36.416980 7fcfb34006c0 Delete type=0 #754 2024/07/13-10:41:36.908748 7fc8816006c0 Delete type=0 #770
2024/06/06-21:16:20.204896 7fcfb16006c0 Level-0 table #759: started 2024/07/13-10:42:24.867229 7fc87de006c0 Level-0 table #775: started
2024/06/06-21:16:20.204934 7fcfb16006c0 Level-0 table #759: 0 bytes OK 2024/07/13-10:42:24.867279 7fc87de006c0 Level-0 table #775: 0 bytes OK
2024/06/06-21:16:20.247088 7fcfb16006c0 Delete type=0 #757 2024/07/13-10:42:24.874776 7fc87de006c0 Delete type=0 #773
2024/06/06-21:16:20.247377 7fcfb16006c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end) 2024/07/13-10:42:24.882142 7fc87de006c0 Manual compaction at level-0 from '!journal!50u8VAjdmovyr0hx' @ 72057594037927935 : 1 .. '!journal.pages!yzw9I0r3hCK7PJnz.sPNCYj2nR3Cp3jHd' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000760 MANIFEST-000776

View File

@ -1,7 +1,7 @@
2024/06/06-22:05:54.472889 7fcfb2a006c0 Recovering log #758 2024/09/07-17:35:53.304376 7f80f2a006c0 Recovering log #774
2024/06/06-22:05:54.482510 7fcfb2a006c0 Delete type=3 #756 2024/09/07-17:35:53.314832 7f80f2a006c0 Delete type=3 #772
2024/06/06-22:05:54.482574 7fcfb2a006c0 Delete type=0 #758 2024/09/07-17:35:53.314961 7f80f2a006c0 Delete type=0 #774
2024/06/06-22:06:40.958847 7fcfb16006c0 Level-0 table #763: started 2024/09/07-17:41:21.591102 7f80f10006c0 Level-0 table #779: started
2024/06/06-22:06:40.958868 7fcfb16006c0 Level-0 table #763: 0 bytes OK 2024/09/07-17:41:21.591140 7f80f10006c0 Level-0 table #779: 0 bytes OK
2024/06/06-22:06:40.964877 7fcfb16006c0 Delete type=0 #761 2024/09/07-17:41:21.597409 7f80f10006c0 Delete type=0 #777
2024/06/06-22:06:40.979096 7fcfb16006c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end) 2024/09/07-17:41:21.611856 7f80f10006c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

View File

@ -1,7 +1,7 @@
2024/06/06-20:54:36.390344 7fcfb2a006c0 Recovering log #754 2024/07/13-10:41:36.878320 7fc8820006c0 Recovering log #770
2024/06/06-20:54:36.401236 7fcfb2a006c0 Delete type=3 #752 2024/07/13-10:41:36.889382 7fc8820006c0 Delete type=3 #768
2024/06/06-20:54:36.401373 7fcfb2a006c0 Delete type=0 #754 2024/07/13-10:41:36.889475 7fc8820006c0 Delete type=0 #770
2024/06/06-21:16:20.167277 7fcfb16006c0 Level-0 table #759: started 2024/07/13-10:42:24.860432 7fc87de006c0 Level-0 table #775: started
2024/06/06-21:16:20.167332 7fcfb16006c0 Level-0 table #759: 0 bytes OK 2024/07/13-10:42:24.860477 7fc87de006c0 Level-0 table #775: 0 bytes OK
2024/06/06-21:16:20.204704 7fcfb16006c0 Delete type=0 #757 2024/07/13-10:42:24.866988 7fc87de006c0 Delete type=0 #773
2024/06/06-21:16:20.247359 7fcfb16006c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end) 2024/07/13-10:42:24.882123 7fc87de006c0 Manual compaction at level-0 from '!tables!4l60Lxv8cpsyy2Cg' @ 72057594037927935 : 1 .. '!tables.results!tfaYKDZqu7kgZvRG.yvbwKursaixh2dby' @ 0 : 0; will stop at (end)

View File

@ -1 +1 @@
MANIFEST-000403 MANIFEST-000419

View File

@ -1,8 +1,8 @@
2024/06/06-22:05:54.522431 7fcfb2a006c0 Recovering log #401 2024/09/07-17:35:53.374420 7f80f2a006c0 Recovering log #417
2024/06/06-22:05:54.533382 7fcfb2a006c0 Delete type=3 #399 2024/09/07-17:35:53.384865 7f80f2a006c0 Delete type=3 #415
2024/06/06-22:05:54.533456 7fcfb2a006c0 Delete type=0 #401 2024/09/07-17:35:53.384993 7f80f2a006c0 Delete type=0 #417
2024/06/06-22:06:40.972432 7fcfb16006c0 Level-0 table #406: started 2024/09/07-17:41:21.618745 7f80f10006c0 Level-0 table #422: started
2024/06/06-22:06:40.972455 7fcfb16006c0 Level-0 table #406: 0 bytes OK 2024/09/07-17:41:21.618787 7f80f10006c0 Level-0 table #422: 0 bytes OK
2024/06/06-22:06:40.978838 7fcfb16006c0 Delete type=0 #404 2024/09/07-17:41:21.625664 7f80f10006c0 Delete type=0 #420
2024/06/06-22:06:40.979138 7fcfb16006c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2024/09/07-17:41:21.639346 7f80f10006c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
2024/06/06-22:06:40.979181 7fcfb16006c0 Manual compaction at level-1 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2024/09/07-17:41:21.639401 7f80f10006c0 Manual compaction at level-1 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,8 @@
2024/06/06-20:54:36.451532 7fcfb2a006c0 Recovering log #397 2024/07/13-10:41:36.946044 7fc8820006c0 Recovering log #413
2024/06/06-20:54:36.462207 7fcfb2a006c0 Delete type=3 #395 2024/07/13-10:41:36.956775 7fc8820006c0 Delete type=3 #411
2024/06/06-20:54:36.462346 7fcfb2a006c0 Delete type=0 #397 2024/07/13-10:41:36.956919 7fc8820006c0 Delete type=0 #413
2024/06/06-21:16:20.327305 7fcfb16006c0 Level-0 table #402: started 2024/07/13-10:42:24.882375 7fc87de006c0 Level-0 table #418: started
2024/06/06-21:16:20.327387 7fcfb16006c0 Level-0 table #402: 0 bytes OK 2024/07/13-10:42:24.882443 7fc87de006c0 Level-0 table #418: 0 bytes OK
2024/06/06-21:16:20.363229 7fcfb16006c0 Delete type=0 #400 2024/07/13-10:42:24.888900 7fc87de006c0 Delete type=0 #416
2024/06/06-21:16:20.401092 7fcfb16006c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2024/07/13-10:42:24.905386 7fc87de006c0 Manual compaction at level-0 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)
2024/06/06-21:16:20.401155 7fcfb16006c0 Manual compaction at level-1 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end) 2024/07/13-10:42:24.905451 7fc87de006c0 Manual compaction at level-1 from '!journal!056ILNNrLiPq3Gi3' @ 72057594037927935 : 1 .. '!journal.pages!yfZxl4I7XAuUF6r3.apXmOlZRmGT4GreB' @ 0 : 0; will stop at (end)

View File

@ -1,8 +1,9 @@
let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase(); let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase();
let spellLore = game.wfrp4e.config.magicLores[args.spell.system.lore.value].toLowerCase();
// If channelling corresponding lore // If channelling corresponding lore
if (args.type == "channelling" && args.spell.system.lore.value == lore) if (args.type == "channelling" && spellLore == lore)
args.prefillModifiers.slBonus += 2 args.prefillModifiers.slBonus += 2
// If channelling or casting different lore // If channelling or casting different lore
else if (args.spell.system.lore.value != lore && args.spell.system.lore.value != "petty") else if (spellLore != lore && args.spell.system.lore.value != "petty")
args.prefillModifiers.slBonus -= 1 args.prefillModifiers.slBonus -= 1

View File

@ -1,12 +1,12 @@
// This script needs to be separate because equipTransfer is off on the other effect, and thus won't execute when added to an actor // This script needs to be separate because equipTransfer is off on the other effect, and thus won't execute when added to an actor
let mainEffect = this.item.effects.contents[0]; let mainEffect = this.item.effects.contents[0];
if (mainEffect.name.includes("(Savoir)")) if (mainEffect.name.includes("(Lore)"))
{ {
let choice = await ItemDialog.create(ItemDialog.objectToArray(game.wfrp4e.config.magicLores, this.item.img), 1, "Choisissez le Savoir"); let choice = await ItemDialog.create(ItemDialog.objectToArray(game.wfrp4e.config.magicLores, this.item.img), 1, "Choisissez le Savoir");
if (choice.length) if (choice.length)
{ {
mainEffect.update({name : mainEffect.name.replace("Savoir", choice[0].name)}) mainEffect.update({name : mainEffect.name.replace("Lore", choice[0].name)})
this.item.update({name : this.item.name += ` (${choice[0].name})`}) this.item.update({name : this.item.name += ` (${choice[0].name})`})
} }
} }

View File

@ -1,8 +1,9 @@
let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase(); let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase();
let spellLore = game.wfrp4e.config.magicLores[args.spell.system.lore.value].toLowerCase();
// If channelling corresponding lore // If channelling corresponding lore
if (args.type == "channelling" && args.spell.system.lore.value == lore) if (args.type == "channelling" && spellLore == lore)
args.prefillModifiers.slBonus += 1 args.prefillModifiers.slBonus += 1
// If channelling or casting different lore // If channelling or casting different lore
else if (args.spell.system.lore.value != lore && args.spell.system.lore.value != "petty") else if (spellLore != lore && args.spell.system.lore.value != "petty")
args.prefillModifiers.slBonus -= 1 args.prefillModifiers.slBonus -= 1

View File

@ -1,2 +1,3 @@
let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase(); let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase();
return !args.spell || (args.type == "cast" && ["petty", lore].includes(args.spell.system.lore.value)); let spellLore = game.wfrp4e.config.magicLores[args.spell.system.lore.value].toLowerCase();
return !args.spell || (args.type == "cast" && [game.wfrp4e.config.magicLores["petty"].toLowerCase(), lore].includes(spellLore));

View File

@ -1,8 +1,9 @@
let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase(); let lore = this.effect.name.split("(")[1].split(")")[0].toLowerCase();
let spellLore = game.wfrp4e.config.magicLores[args.spell.system.lore.value].toLowerCase();
// If channelling corresponding lore // If channelling corresponding lore
if (args.type == "channelling" && args.spell.system.lore.value == lore) if (args.type == "channelling" && spellLore == lore)
args.prefillModifiers.slBonus += 3 args.prefillModifiers.slBonus += 3
// If channelling or casting different lore // If channelling or casting different lore
else if (args.spell.system.lore.value != lore && args.spell.system.lore.value != "petty") else if (spellLore != lore && args.spell.system.lore.value != "petty")
args.prefillModifiers.slBonus -= 1 args.prefillModifiers.slBonus -= 1

View File

@ -1,5 +1,5 @@
let lore = this.effect.name.split(" ")[2].toLowerCase(); let lore = this.effect.name.split(" ")[2].toLowerCase();
if (args.item.type == "spell" && args.item.system.lore.value == lore) if (args.item.type == "spell" && game.wfrp4e.config.magicLores[args.item.system.lore.value].toLowerCase() == lore)
{ {
args.item.system.cn.value -= 1 args.item.system.cn.value -= 1
} }

View File

@ -1,12 +1,12 @@
// This script needs to be separate because equipTransfer is off on the other effect, and thus won't execute when added to an actor // This script needs to be separate because equipTransfer is off on the other effect, and thus won't execute when added to an actor
let mainEffect = this.item.effects.contents[0]; let mainEffect = this.item.effects.contents[0];
if (mainEffect.name.includes("<Savoir>")) if (mainEffect.name.includes("<Lore>"))
{ {
let choice = await ItemDialog.create(ItemDialog.objectToArray(game.wfrp4e.config.magicLores, this.item.img), 1, "Choisissez le Savoir"); let choice = await ItemDialog.create(ItemDialog.objectToArray(game.wfrp4e.config.magicLores, this.item.img), 1, "Choisissez le Savoir");
if (choice.length) if (choice.length)
{ {
mainEffect.update({name : mainEffect.name.replace("<Savoir>", choice[0].name)}) mainEffect.update({name : mainEffect.name.replace("<Lore>", choice[0].name)})
this.item.update({name : this.item.name += ` (${choice[0].name})`}) this.item.update({name : this.item.name += ` (${choice[0].name})`})
} }
} }

View File

@ -29,8 +29,25 @@ table.sort(todisplay, function (a, b)
return a.tag < b.tag return a.tag < b.tag
end end
) )
for _, tagDef in pairs(todisplay) do for _, tagDef in pairs(todisplay) do
print('"'.. tagDef.tag ..'":"'.. tagDef.value..'",') if type(tagDef.value) == "table" then
print('"'.. tagDef.tag ..'":{')
for k, v in pairs(tagDef.value) do
if type(v) == "table" then
print('"'.. k ..'":{')
for kk, vv in pairs(v) do
print('"'.. kk ..'":"'.. vv..'",')
end
print('},')
else
print('"'.. k ..'":"'.. v..'",')
end
end
print('},')
else
print('"'.. tagDef.tag ..'":"'.. tagDef.value..'",')
end
end end