/** * Override which attributes of an Actor should be kept from the exported adventure data rather than imported from * the source compendium. */ const ACTOR_IMPORT_OVERRIDES = { "oSQ3Q9tzTohksAtf": ["system"], // Crawling Hand (elite) "QnbMaJPU7jG4uhaC": ["system"], // Soul Feeder (elite) "GsrqCDf0Dc9PisEt": ["system"], // Violet Fungus (weak) "RFCxaIS4OkacCpxD": ["system"], // Bog-rotted Froghemoth (weak) "pFPLCspUfJ2FUMcj": ["system"], // Falxi Orshendiel "GoGNtiHuYycppLPk": ["system"], // Cynemi "u36SRb3lyB4beHCN": ["system"], // Lasda Venkervale "HBRz8BVLVN9u9Odp": ["items"] // Corpselight } // Abomination Vaults const ABOMINATION_VAULTS = { slug: "abomination-vaults", title: "Abomination Vaults", actorOverrides: ACTOR_IMPORT_OVERRIDES, importOptions: { enhancedMaps: { label: "Use Enhanced Maps", default: true, sceneIds: { original: ['MSHO9s465zhZIuH7', '2dHU2g8WUOc4NZlq', 'TE8aNKdE5NKGSgoV', 'l9piQKpfF80Tf4Ee', 'D3ZsHuxFbD9XJ8xm', 'C1FHtLrwQGvYvHEj', 'xlVpxXlwLDBkigNr', 'jZ6KNRkZJbhIFTUH', 'k9jeCoWPx2z9Q3WU', '6JuLFPWO21xzKgbc', 'RYdmLnFJOm9YjMjc', '5yFFxnSZdYE1NWYM', 'sY80sj7X5MD0mH2A'], enhanced: ['MSHO9s465zhZIuH7', 'lQkXSdxvO9CRxohD', '9hB3ZY7buScJPXEy', '3Nat4ImT49niZUdr', 'BDb75TAOyhTzNzte', 'N4Gsv8cBg1oK6EGS', 'Y4pI9rvbaVvmK2kn', 'B9O44gBwHIUTRasQ', '2bM6K9jKWHJoYURa', 'lKRTHUBDXYzwd80e', 'MrRFPOICNcpBbfca', 'Z5ExlCWEpqm0SMe1', 'kxMIly2TCSidrRf1', 'SkPDNmMoL4M4r1it', 'o3zbh5CXtTQiWKwZ', '3Z2uyLiembwA6fft', 'pRvx3DZRnH50eV6d'] }, handler (adventure, option, enabled) { const sceneIds = option.sceneIds; const original = new Set(sceneIds.original); const enhanced = new Set(sceneIds.enhanced); const updates = sceneIds.original.concat(sceneIds.enhanced).reduce((acc, id) => { if ( game.scenes.has(id) ) acc.push({ _id: id, navigation: (enabled && enhanced.has(id)) || (!enabled && original.has(id)) }); return acc; }, []); return Scene.implementation.updateDocuments(updates); } }, activateScene: { label: "Activate Initial Scene", default: true, handler: (adventure, option, enabled) => { if ( !enabled ) return; return game.scenes.get(option.sceneId)?.activate(); }, sceneId: "MSHO9s465zhZIuH7" }, displayJournal: { label: "Display Introduction Journal Entry", default: true, handler: (adventure, option, enabled) => { if ( !enabled ) return; return game.journal.get(option.entryId)?.sheet.render(true); }, entryId: "3iU3rV1nbiW2OYXM" }, customizeJoin: { label: "Customize World Details", default: false, background: "modules/pf2e-abomination-vaults/assets/journal-images/vignettes/av-cover.webp", handler: async (adventure, option, enabled) => { if ( !enabled ) return; const module = game.modules.get("pf2e-abomination-vaults"); const worldData = { action: "editWorld", id: game.world.id, description: module.description, background: option.background } await fetchJsonWithTimeout(foundry.utils.getRoute("setup"), { method: "POST", headers: {'Content-Type': 'application/json'}, body: JSON.stringify(worldData) }); game.world.data.update(worldData); } } }, // The ID of the 'Getting Started' journal to determine if the adventure has been imported before. gettingStartedId: "3iU3rV1nbiW2OYXM" }; export default { moduleId: "pf2e-abomination-vaults", packName: "av", journalFlag: "isAV", cssClass: "pf2e-av", adventure: ABOMINATION_VAULTS, languages: ["en"] }