diff --git a/assets/adventures/false-alarm/token-entity.png b/assets/adventures/false-alarm/token-entity.png new file mode 100644 index 0000000..0c2e443 Binary files /dev/null and b/assets/adventures/false-alarm/token-entity.png differ diff --git a/assets/adventures/false-alarm/token-rostova.png b/assets/adventures/false-alarm/token-rostova.png new file mode 100644 index 0000000..77b7e25 Binary files /dev/null and b/assets/adventures/false-alarm/token-rostova.png differ diff --git a/assets/adventures/false-alarm/token-vance.png b/assets/adventures/false-alarm/token-vance.png new file mode 100644 index 0000000..ce425cb Binary files /dev/null and b/assets/adventures/false-alarm/token-vance.png differ diff --git a/build/gen-false-alarm.mjs b/build/gen-false-alarm.mjs index 18b6081..f53b1e1 100644 --- a/build/gen-false-alarm.mjs +++ b/build/gen-false-alarm.mjs @@ -95,7 +95,7 @@ function npcActor({ key, name, type, img, token, stats, health, skills, notes, s const aRostova = npcActor({ key: "rostova", name: "Dr. Elena Rostova", type: "npc", - img: `${A}/token-rostova.svg`, token: `${A}/token-rostova.svg`, + img: `${A}/token-rostova.png`, token: `${A}/token-rostova.png`, stats: { str: 10, con: 10, dex: 11, int: 15, pow: 12, cha: 11 }, health: 10, san: 0, skills: { computer_science: 70, science: 0, sigint: 40, first_aid: 30, alertness: 40 }, shortDescription: "FAA facility technician — deceased, flash-frozen.", @@ -104,7 +104,7 @@ const aRostova = npcActor({ const aVance = npcActor({ key: "vance", name: "Deputy Marcus Vance (Changed)", type: "unnatural", - img: `${A}/token-vance.svg`, token: `${A}/token-vance.svg`, + img: `${A}/token-vance.png`, token: `${A}/token-vance.png`, stats: { str: 17, con: 16, dex: 16, int: 6, pow: 15, cha: 3 }, health: 16, san: { failed: "1D6", success: "1" }, skills: { alertness: 60, athletics: 70, dodge: 50, melee_weapons: 65, unarmed_combat: 55 }, @@ -115,7 +115,7 @@ const aVance = npcActor({ const aTear = npcActor({ key: "tear", name: "The Tear (Static Between Stations)", type: "unnatural", - img: `${A}/token-entity.svg`, token: `${A}/token-entity.svg`, + img: `${A}/token-entity.png`, token: `${A}/token-entity.png`, stats: { str: 20, con: 30, dex: 20, int: 20, pow: 25, cha: 1 }, health: 30, san: { failed: "1D20", success: "1D6" }, skills: { alertness: 90, dodge: 80 }, diff --git a/module/deltagreen.js b/module/deltagreen.js index 7bd2cdd..b19f2a4 100644 --- a/module/deltagreen.js +++ b/module/deltagreen.js @@ -221,16 +221,25 @@ Hooks.once("diceSoNiceReady", (dice3d) => { } }); -Hooks.on("renderGamePause", function (_, html, options) { - if (options.cssClass !== "paused") return; - +/** + * Replace the stock pause spinner with the DG2 radar-scope animation. + * Idempotent: safe to call on every render/toggle; skips if already applied. + * Wired to BOTH renderGamePause and pauseGame so the scope appears no matter + * which path Foundry takes when the pause state changes. + */ +function applyDG2PauseOverlay(element) { try { - const caption = game.i18n.translations.DG?.MissionPaused ?? "Mission Paused"; - const sub = game.i18n.translations.DG2?.PausedSub ?? "ALL STATIONS HOLD // AWAITING HANDLER"; + const el = element ?? document.getElementById("pause"); + if (!el || !game.paused) return; + if (el.querySelector(".dg2-pause-scope")) return; // already applied - // Replace the default spinner with a DG2 radar-scope pause animation. - html.classList.add("dg2-pause"); - html.innerHTML = ` + const caption = game.i18n.translations.DG?.MissionPaused ?? "Mission Paused"; + const sub = + game.i18n.translations.DG2?.PausedSub ?? + "All stations hold // awaiting Handler"; + + el.classList.add("dg2-pause"); + el.innerHTML = `