From 740c3d0efa953806a333dd03caae56629eeadfd1 Mon Sep 17 00:00:00 2001 From: Eunomiac Date: Thu, 28 Dec 2023 04:21:56 -0500 Subject: [PATCH] Hot damn it compiles! --- css/style.min.css | 462 ++++++++-------- module/BladesActor.js | 1 + module/BladesItem.js | 1 + module/blades.js | 3 +- module/classes/BladesClock.js | 352 ++++-------- module/classes/BladesDialog.js | 1 + module/classes/BladesDirector.js | 5 +- module/classes/BladesTargetLink.js | 189 +++++-- module/core/gsap.js | 39 +- module/core/settings.js | 8 + module/core/utilities.js | 2 +- module/data-import/data-import.js | 2 +- module/documents/items/BladesClockKeeper.js | 10 +- module/documents/items/BladesProject.js | 10 +- module/sheets/actor/BladesActorSheet.js | 4 +- scss/components/_clocks.scss | 38 +- ts/@types/blades-actor.d.ts | 6 +- ts/@types/blades-clock.d.ts | 98 ++-- ts/@types/blades-general-types.d.ts | 4 +- ts/@types/blades-item.d.ts | 4 +- ts/@types/blades-roll.d.ts | 11 +- ts/@types/blades-target-link.d.ts | 54 ++ ts/@types/index.d.ts | 5 +- ts/BladesActor.ts | 1 + ts/BladesItem.ts | 1 + ts/blades.ts | 6 +- ts/classes/BladesClock.ts | 576 ++++++-------------- ts/classes/BladesDialog.ts | 1 + ts/classes/BladesDirector.ts | 7 +- ts/classes/BladesTargetLink.ts | 231 +++++--- ts/core/gsap.ts | 55 +- ts/core/settings.ts | 8 + ts/core/utilities.ts | 2 +- ts/data-import/data-import.ts | 2 +- ts/documents/items/BladesClockKeeper.ts | 17 +- ts/documents/items/BladesProject.ts | 8 +- ts/sheets/actor/BladesActorSheet.ts | 4 +- 37 files changed, 1070 insertions(+), 1158 deletions(-) create mode 100644 ts/@types/blades-target-link.d.ts diff --git a/css/style.min.css b/css/style.min.css index 9cb7ff23..a4343ed0 100644 --- a/css/style.min.css +++ b/css/style.min.css @@ -9352,235 +9352,235 @@ template { background-image: url("../assets/animations/clock-flare-blue.webp"); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="2"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="2"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="2"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="2"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 34.5473879159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 79.392260867% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 86.3257107984% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 20.6152350667% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 13.6742892016% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 34.556199955%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 24.9986626725%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 25.0066869949%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 18.8244750681%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 10.1279545793%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 61.1234658088%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 61.4118255758%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 71.697764516% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 74.0779156508% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 28.3105833372% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 25.9220843492% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 61.132498784%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 61.4118255758%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 18.8317193997%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 10.1279545793%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 85.3545201001% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 0.0023162861% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 100% 85.3528821247%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 100% 0.0023162861%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 14.6487559266% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 99.9976837139% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 0 14.6503940538%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 0 99.9976837139%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 82.1385918468% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 91.9532272571% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 41.3155634357%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 41.1839163374%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 67.1048767036% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 68.1979287832% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 32.9038299185% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 31.8020712168% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 41.3246881159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 41.1839163374%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 17.8543109057% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 8.0467727429% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 79.3885130263% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 86.3257107984% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 34.5473879159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 65.4482061309%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 66.2454726367%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 79.392260867% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 86.3257107984% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 20.6152350667% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 13.6742892016% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 65.4570179048%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 66.2454726367%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 34.556199955%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 20.6039915445% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 13.6742892016% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="10"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="10"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 77.0313322766% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 82.1318586828% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 29.2277169859%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 27.1665285834%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 57.1132407089%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 57.1886997705%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 82.7404903353%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 93.3234032431%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 64.0906687225% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 64.6808671851% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 35.9182213463% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 35.3191328149% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 82.747492473%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 93.3234032431%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 57.1224117043%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 57.1886997705%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 29.2361452798%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 27.1665285834%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="10"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="10"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 22.9608735872% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 17.8681413172% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="11"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="11"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="1"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 74.9993313273% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 78.8664839843% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="2"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 24.9986626725%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="3"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="4"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="5"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 75.0033432739% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 78.8664839843% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="6"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="7"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 25.0046808339% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 21.1335160157% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="8"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="9"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="10"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="10"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 25.0066869949%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="11"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="11"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 24.9926449941% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 21.1335160157% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="12"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-container .clock[data-value="12"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades #clocks-overlay .clock-key[data-is-showing-controls=false] .clock-controls { display: none !important; @@ -23143,235 +23143,235 @@ template { background-image: url("../assets/animations/clock-flare-blue.webp"); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="2"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="2"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="2"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="2"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 34.5473879159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 79.392260867% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 86.3257107984% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 20.6152350667% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 13.6742892016% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 34.556199955%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 24.9986626725%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 25.0066869949%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 18.8244750681%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 10.1279545793%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 61.1234658088%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 61.4118255758%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 71.697764516% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 74.0779156508% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 28.3105833372% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 25.9220843492% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 61.132498784%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 61.4118255758%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 18.8317193997%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 10.1279545793%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 85.3545201001% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 0.0023162861% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 100% 85.3528821247%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 100% 0.0023162861%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 14.6487559266% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 99.9976837139% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 0 14.6503940538%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 0 99.9976837139%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 82.1385918468% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 91.9532272571% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 41.3155634357%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 41.1839163374%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 67.1048767036% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 68.1979287832% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 32.9038299185% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 31.8020712168% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 41.3246881159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 41.1839163374%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 17.8543109057% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 8.0467727429% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 79.3885130263% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 86.3257107984% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 34.5473879159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 65.4482061309%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 66.2454726367%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 79.392260867% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 86.3257107984% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 20.6152350667% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 13.6742892016% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 65.4570179048%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 66.2454726367%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 34.556199955%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 20.6039915445% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 13.6742892016% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="10"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="10"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 77.0313322766% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 82.1318586828% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 29.2277169859%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 27.1665285834%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 57.1132407089%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 57.1886997705%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 82.7404903353%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 93.3234032431%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 64.0906687225% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 64.6808671851% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 35.9182213463% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 35.3191328149% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 82.747492473%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 93.3234032431%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 57.1224117043%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 57.1886997705%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 29.2361452798%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 27.1665285834%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="10"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="10"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 22.9608735872% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 17.8681413172% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="11"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="11"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="1"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 74.9993313273% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 78.8664839843% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="2"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 24.9986626725%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="3"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="4"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="5"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 75.0033432739% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 78.8664839843% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="6"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="7"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 25.0046808339% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 21.1335160157% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="8"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="9"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="10"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="10"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 25.0066869949%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="11"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="11"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 24.9926449941% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 21.1335160157% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="12"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app .clock-container .clock[data-value="12"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app .clock-key[data-is-showing-controls=false] .clock-controls { display: none !important; @@ -25092,235 +25092,235 @@ template { background-image: url("../assets/animations/clock-flare-blue.webp"); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="2"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="2"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="2"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="2"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="3"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="3"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="4"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="4"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 34.5473879159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 79.392260867% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 86.3257107984% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 20.6152350667% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 13.6742892016% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 34.556199955%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="5"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="5"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 24.9986626725%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 25.0066869949%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="6"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="6"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 18.8244750681%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 10.1279545793%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 61.1234658088%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 61.4118255758%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 71.697764516% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 74.0779156508% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 28.3105833372% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 25.9220843492% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 61.132498784%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 61.4118255758%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 18.8317193997%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 10.1279545793%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="7"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="7"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 85.3545201001% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 0.0023162861% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 100% 85.3528821247%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 100% 0.0023162861%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 14.6487559266% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 99.9976837139% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 0 14.6503940538%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 0 99.9976837139%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="8"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="8"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 82.1385918468% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 91.9532272571% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 41.3155634357%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 41.1839163374%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 67.1048767036% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 68.1979287832% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 32.9038299185% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 31.8020712168% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 41.3246881159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 41.1839163374%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 17.8543109057% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 8.0467727429% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="9"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="9"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 79.3885130263% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 86.3257107984% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 34.5473879159%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 65.4482061309%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 66.2454726367%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 79.392260867% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 86.3257107984% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 20.6152350667% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 13.6742892016% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 65.4570179048%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 66.2454726367%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 34.556199955%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 33.7545273633%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 20.6039915445% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 13.6742892016% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="10"][data-max="10"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="10"][data-max="10"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 77.0313322766% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 82.1318586828% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 29.2277169859%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 27.1665285834%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 57.1132407089%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 57.1886997705%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 82.7404903353%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 93.3234032431%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 64.0906687225% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 64.6808671851% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 35.9182213463% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 35.3191328149% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 82.747492473%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 93.3234032431%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 57.1224117043%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 57.1886997705%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 29.2361452798%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 27.1665285834%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="10"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="10"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 22.9608735872% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 17.8681413172% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="11"][data-max="11"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="11"][data-max="11"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="1"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 74.9993313273% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 78.8664839843% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="2"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 24.9986626725%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="3"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 49.9976836603%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="4"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 74.9973252736%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="5"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 75.0033432739% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 78.8664839843% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="6"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50.0046326795% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 50% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="7"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 25.0046808339% 100%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 21.1335160157% 100%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="8"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 75.0053491667%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 78.8664839843%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="9"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50.0069490192%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 50%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="10"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="10"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 25.0066869949%, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 21.1335160157%, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="11"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="11"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 24.9926449941% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 21.1335160157% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="12"][data-max="12"] .clock-glow, :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-container .clock[data-value="12"][data-max="12"] .clock-fill { - clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 49.9907346411% 0, 50% 50%); + clip-path: polygon(50% 50%, 50% 0, 100% 0, 100% 100%, 0 100%, 0 0, 50% 0, 50% 50%); } :root body.vtt.game.system-eunos-blades .app.window-app.sheet .window-content .clock-key-container .clock-key[data-is-showing-controls=false] .clock-controls { display: none !important; diff --git a/module/BladesActor.js b/module/BladesActor.js index 432fb097..d07418ef 100644 --- a/module/BladesActor.js +++ b/module/BladesActor.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ // #region Imports ~ import U from "./core/utilities.js"; import C, { BladesActorType, Tag, Playbook, BladesItemType, ActionTrait, PrereqType, AdvancementPoint, Randomizers, Factor } from "./core/constants.js"; diff --git a/module/BladesItem.js b/module/BladesItem.js index 5561c9ad..7db66f7e 100644 --- a/module/BladesItem.js +++ b/module/BladesItem.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import C, { BladesItemType, Tag, Factor } from "./core/constants.js"; import U from "./core/utilities.js"; import { BladesCrew, BladesPC } from "./documents/BladesActorProxy.js"; diff --git a/module/blades.js b/module/blades.js index f2979391..96dc2e92 100644 --- a/module/blades.js +++ b/module/blades.js @@ -488,7 +488,7 @@ class GlobalGetter { const clocks = []; while (clockNames.length) { const name = clockNames.shift(); - const color = U.sample([ClockColor.white, ClockColor.red, ClockColor.yellow, ClockColor.cyan]); + const [color] = U.sample([ClockColor.white, ClockColor.red, ClockColor.yellow, ClockColor.cyan]); const [max] = U.sample([2, 3, 4, 5, 6, 8, 10, 12]); let value; if (curClock === name) { @@ -574,6 +574,7 @@ Hooks.once("init", async () => { }; // Register System Settings registerSettings(); + CONFIG.debug.hooks = U.getSetting("debugHooks"); eLog.display("Initializing Blades In the Dark System"); // Initialize Fonts & Gsap Animations GsapInitialize(); diff --git a/module/classes/BladesClock.js b/module/classes/BladesClock.js index 3098dba5..7c535e49 100644 --- a/module/classes/BladesClock.js +++ b/module/classes/BladesClock.js @@ -1,4 +1,5 @@ -import C, { BladesActorType, BladesItemType, ClockColor, ClockKeyDisplayMode, Factor } from "../core/constants.js"; +/* eslint-disable @typescript-eslint/no-unused-vars */ +import C, { BladesActorType, BladesItemType, ClockColor, ClockKeyDisplayMode } from "../core/constants.js"; import BladesTargetLink from "./BladesTargetLink.js"; import U from "../core/utilities.js"; import { BladesActor } from "../documents/BladesActorProxy.js"; @@ -23,104 +24,80 @@ class BladesClockKey extends BladesTargetLink { .forEach((clockData) => new BladesClock(clockData)); }); } - static get DefaultSchema() { + static ApplySchemaDefaults(schemaData) { + // Ensure all properties of Schema are provided return { name: "", - isVisible: true, + isVisible: false, isActive: false, isNameVisible: false, - isShowingControls: game.user.isGM, + isShowingControls: true, clocksData: {}, - oneKeyIndex: U.gsap.utils.random(1, 5, 1) + sceneID: false, + displayMode: ClockKeyDisplayMode.full, + oneKeyIndex: U.gsap.utils.random(1, 5, 1), + ...schemaData }; } - static applyConfigDefaults(clockKeyConfig) { - const keyData = { - ...this.DefaultSchema, - ...clockKeyConfig - }; - if (keyData.target instanceof Actor || keyData.target instanceof Item) { - keyData.target = keyData.target.id; - } - return keyData; - } - static async Create(clockKeyConfig, clockConfig = {}) { - if (!this.validateConfig(clockKeyConfig)) { - eLog.error("[BladesClockKey.Create()] Invalid Config", clockKeyConfig); - throw new Error("See log."); - } - eLog.checkLog3("[BladesClockKey.Create()] Config", clockKeyConfig); - // Create the clock key instance, supplying the config. - // BladesClockKey constructor will apply defaults for missing values. - const clockKey = new BladesClockKey(clockKeyConfig); - // Wait for clockKey data to be written to target - await clockKey.initialize(); - // If key created without clock data, initialize with a single clock - if (clockKey.size === 0) { - await clockKey.addClock(clockConfig); - } + static async Create(config, clockConfigs = []) { + // Create and initialize the target link + const clockKey = (await super.Create(config)); + // Confirm at least one, but no more than six, clockConfigs provided: + if (clockConfigs.length > 6) { + // If too many clock keys, alert user and discard excess. + eLog.error("BladesClockKey", "[BladesClockKey.Create] Too many clock configs! (Max 6.) Eliminating extras.", clockConfigs); + clockConfigs = clockConfigs.slice(0, 6); + } + else if (clockConfigs.length === 0) { + // If no clocks provided, add one default clock. + clockConfigs.push({}); + } + // Convert clock configs to full clock data objects. + const clocksData = Object.fromEntries(clockConfigs.map((clockConfig, i) => { + clockConfig.index = i; + const cData = clockKey.parseClockConfig(clockConfig); + return [cData.id, cData]; + })); + // Update the clock key with the new clock data + await clockKey.updateTarget("clocksData", clocksData); return clockKey; } // #endregion // #region GETTERS & SETTERS ~ - get clocksData() { return this.getSystemData().clocksData ?? {}; } + // #region -- Shortcut Schema Getters ~ + get data() { return this.linkData; } + get name() { return this.data.name; } + set name(val) { this.updateTarget("name", val); } + get isVisible() { return this.data.isVisible; } + set isVisible(val) { this.updateTarget("isVisible", U.pBool(val)); } + get isActive() { return this.data.isActive; } + set isActive(val) { this.updateTarget("isActive", U.pBool(val)); } + get isNameVisible() { return this.data.isNameVisible; } + set isNameVisible(val) { this.updateTarget("isNameVisible", U.pBool(val)); } + get isShowingControls() { return this.data.isShowingControls; } + set isShowingControls(val) { this.updateTarget("isShowingControls", U.pBool(val)); } + get clocksData() { return this.data.clocksData; } + get displayMode() { + if (game.user.isGM && this.isShowingControls) { + return ClockKeyDisplayMode.full; + } + return this.data.displayMode; + } + get oneKeyIndex() { return this.data.oneKeyIndex; } + get sceneID() { return this.data.sceneID; } + get overlayPosition() { + return undefined; + } + // #endregion get clocks() { - return new Collection(Object.entries(this.clocksData ?? {}) + return new Collection(Object.entries(this.clocksData) .sort((a, b) => a[1].index - b[1].index) .map(([id, data]) => [ id, game.eunoblades.Clocks.get(id) ?? new BladesClock(data) ])); } - get isGM() { return game.user.isGM; } - get isVisible() { return U.pBool(this.getSystemData().isVisible); } - get oneKeyIndex() { return U.pInt(this.getSystemData().oneKeyIndex); } - get displayMode() { - if (this.isGM && this.isShowingControls) { - return ClockKeyDisplayMode.full; - } - return this.getSystemData().displayMode ?? ClockKeyDisplayMode.full; - } - get setDisplayMode() { - return this.getSystemData().displayMode ?? ClockKeyDisplayMode.full; - } - get sceneID() { return this.getSystemData().sceneID; } - get isActive() { return U.pBool(this.getSystemData().isActive); } - get isNameVisible() { return U.pBool(this.getSystemData().isNameVisible); } get size() { return Object.keys(this.clocksData).length; } - get rollOppName() { return this.name; } - get rollOppType() { return "clock_key"; } - get rollFactors() { - const factorData = {}; - [ - Factor.tier, - Factor.quality - ].forEach((factor, i) => { - const factorTotal = this.getFactorTotal(factor); - factorData[factor] = { - name: factor, - value: factorTotal, - max: factorTotal, - baseVal: factorTotal, - display: factor === Factor.tier ? U.romanizeNum(factorTotal) : `${factorTotal}`, - isActive: i === 0, - isPrimary: i === 0, - isDominant: false, - highFavorsPC: true, - cssClasses: `factor-gold${i === 0 ? " factor-main" : ""}` - }; - }); - return factorData; - } - getFactorTotal(factor) { - switch (factor) { - case Factor.tier: return this.getSystemData().tier.value; - case Factor.quality: return this.getFactorTotal(Factor.tier); - // no default - } - return 0; - } - get rollOppImg() { return ""; } get isComplete() { return Array.from(this.clocks).every((clock) => clock.isComplete); } @@ -146,21 +123,30 @@ class BladesClockKey extends BladesTargetLink { return options; } // #endregion - // #region ~~~ CONSTRUCTOR & INITIALIZATION ~~~ - _initData; + // #region ~~~ CONSTRUCTOR & CLOCK CONFIG PARSER ~~~ constructor(data) { - if (!BladesClockKey.validateConfig(data)) { - eLog.error("[BladesClockKey Constructor] Invalid Config", data); - throw new Error("See log."); - } - eLog.checkLog3("[BladesClockKey Constructor] Valid Config", data); super(data); - data.id = this.id; - this._initData = BladesClockKey.applyConfigDefaults(data); game.eunoblades.ClockKeys.set(this.id, this); } - async initialize() { - await this.updateTargetData(this._initData); + parseClockConfig(config, indexOverride) { + // Remove target so it doesn't conflict with key's targetID + delete config.target; + // Derive clock's targetID and targetKey/targetFlagKey from key's values + config.targetID = this.targetID; + if (this.targetKey) { + config.targetKey = `${this.targetKey}.${this.id}.clocksData`; + delete config.targetFlagKey; + } + else if (this.targetFlagKey) { + config.targetFlagKey = `${this.targetFlagKey}.${this.id}.clocksData`; + delete config.targetKey; + } + // Assign 'parentKeyID' and 'index' + config.parentKeyID = this.id; + config.index = indexOverride ?? this.clocks.size; + // Parse config to full data object + const cData = BladesClock.ParseConfig(config); + return cData; } // #endregion // #region HTML INTERACTION ~ @@ -170,12 +156,6 @@ class BladesClockKey extends BladesTargetLink { get elem() { return $(`#${this.id}`)[0]; } - get isShowingControls() { - return U.pBool(this.getSystemData().isShowingControls); - } - set isShowingControls(val) { - this.updateTarget("isShowingControls", U.pBool(val)); - } async toggleActive() { return await this.updateTarget("isActive", !this.isActive); } @@ -353,31 +333,11 @@ class BladesClockKey extends BladesTargetLink { .map(([id, data], index) => [id, { ...data, index }]))); return this.clocks; } - async addClock(clockData = {}) { - await this.updateClockIndices(); - eLog.checkLog3("bladesClock", "[BladesClockKey.addClock]", { - passedData: clockData, - derivedData: { - target: this.target, - targetKey: this.targetKey ? `${this.targetKey}.${this.id}.clocksData` : undefined, - targetFlagKey: this._targetFlagKey ? `${this.targetFlagKey}.${this.id}.clocksData` : undefined, - index: this.clocks.size - }, - createData: { - target: this.target, - targetKey: this.targetKey ? `${this.targetKey}.${this.id}.clocksData` : undefined, - targetFlagKey: this._targetFlagKey ? `${this.targetFlagKey}.${this.id}.clocksData` : undefined, - index: this.clocks.size, - ...clockData - } - }); - return await BladesClock.Create({ - target: this.target, - targetKey: this.targetKey ? `${this.targetKey}.${this.id}.clocksData` : undefined, - targetFlagKey: this._targetFlagKey ? `${this.targetFlagKey}.${this.id}.clocksData` : undefined, - index: this.clocks.size, - ...clockData - }); + async addClock(clockConfig = {}) { + // Derive clock data from config + const clockData = this.parseClockConfig(clockConfig); + // Write to state + await this.updateTarget(`clocksData.${clockData.id}`, clockData); } async deleteClock(clockID) { if (this.size <= 1) { @@ -390,42 +350,24 @@ class BladesClockKey extends BladesTargetLink { } class BladesClock extends BladesTargetLink { // #region STATIC METHODS ~ - static get DefaultSchema() { + static ApplySchemaDefaults(schemaData) { + const namedValueMax = { + name: schemaData.name ?? "", + value: schemaData.value ?? 0, + max: schemaData.max ?? 8 + }; return { - name: "", index: 0, - value: 0, - max: 8, color: ClockColor.white, isVisible: true, isNameVisible: true, isHighlighted: false, isActive: true, - isShowingControls: game.user.isGM - }; - } - static applyConfigDefaults(clockConfig) { - if (clockConfig.target instanceof Actor || clockConfig.target instanceof Item) { - clockConfig.target = clockConfig.target.id; - } - const clockData = { - ...this.DefaultSchema, - ...clockConfig + isShowingControls: game.user.isGM, + sceneID: false, + ...schemaData, + ...namedValueMax }; - return clockData; - } - static async Create(clockConfig) { - if (!this.validateConfig(clockConfig)) { - eLog.error("[BladesClock.Create()] Invalid Config", clockConfig); - throw new Error("See log."); - } - eLog.checkLog3("[BladesClock.Create()] Config", clockConfig); - // Create the clock instance, supplying the config. - // BladesClock constructor will apply defaults for missing values. - const clock = new BladesClock(clockConfig); - // Wait for clock data to be written to target - await clock.initialize(); - return clock; } // #endregion // #region GETTERS & SETTERS ~ @@ -435,42 +377,36 @@ class BladesClock extends BladesTargetLink { console.log("NOTE: All Clocks currently Editable; see line 71 of BladesClock.ts"); return this.isVisible && this.isActive; } - get isGM() { return game.user.isGM; } - get value() { return U.pInt(this.getSystemData().value); } + get data() { return this.linkData; } + get name() { return this.data.name; } + set name(val) { this.updateTarget("name", val); } + get value() { return U.pInt(this.data.value); } set value(val) { this.updateTarget("value", U.pInt(val)); } - get max() { return U.pInt(this.getSystemData().max); } + get max() { return U.pInt(this.data.max); } set max(val) { this.updateTarget("max", U.pInt(val)); } - get color() { return this.getSystemData().color ?? ClockColor.white; } + get color() { return this.data.color ?? ClockColor.white; } set color(val) { this.updateTarget("color", val); } - get isActive() { return U.pBool(this.getSystemData().isActive); } + get isActive() { return U.pBool(this.data.isActive); } set isActive(val) { this.updateTarget("isActive", U.pBool(val)); } - get parentKey() { - const keyID = this.targetKey.match(/\.keys\.([^.]+)/)?.[1]; - if (!keyID) { - return undefined; - } - return game.eunoblades.ClockKeys.get(keyID); - } + get parentKey() { return game.eunoblades.ClockKeys.get(this.data.parentKeyID); } get isShowingControls() { if (this.parentKey && !this.parentKey.isShowingControls) { return false; } - return U.pBool(this.getSystemData().isShowingControls); + return U.pBool(this.data.isShowingControls); } set isShowingControls(val) { this.updateTarget("isShowingControls", U.pBool(val)); } - get isNameVisible() { return U.pBool(this.getSystemData().isNameVisible); } + get isNameVisible() { return U.pBool(this.data.isNameVisible); } set isNameVisible(val) { this.updateTarget("isNameVisible", U.pBool(val)); } - get isVisible() { return U.pBool(this.getSystemData().isVisible); } + get isVisible() { return U.pBool(this.data.isVisible); } set isVisible(val) { this.updateTarget("isVisible", U.pBool(val)); } - get isHighlighted() { return U.pBool(this.getSystemData().isHighlighted); } + get isHighlighted() { return U.pBool(this.data.isHighlighted); } set isHighlighted(val) { this.updateTarget("isHighlighted", U.pBool(val)); } - get index() { return U.pInt(this.getSystemData().index); } + get index() { return U.pInt(this.data.index); } set index(val) { this.updateTarget("index", U.pInt(val)); } - get display() { return this.getSystemData().display ?? {}; } - set display(val) { this.updateTarget("display", val); } - get tooltip() { return this.getSystemData().tooltip; } + get tooltip() { return this.data.tooltip; } set tooltip(val) { this.updateTarget("tooltip", val); } - get sceneID() { return this.getSystemData().sceneID; } + get sceneID() { return this.data.sceneID; } set sceneID(val) { this.updateTarget("sceneID", val); } get isEmpty() { return this.value === 0; } get isComplete() { return this.value >= this.max; } @@ -504,77 +440,11 @@ class BladesClock extends BladesTargetLink { } return returnVals; } - get rollFactors() { - const factorData = {}; - [ - Factor.tier, - Factor.quality - ].forEach((factor, i) => { - const factorTotal = this.getFactorTotal(factor); - factorData[factor] = { - name: factor, - value: factorTotal, - max: factorTotal, - baseVal: factorTotal, - display: factor === Factor.tier ? U.romanizeNum(factorTotal) : `${factorTotal}`, - isActive: i === 0, - isPrimary: i === 0, - isDominant: false, - highFavorsPC: true, - cssClasses: `factor-gold${i === 0 ? " factor-main" : ""}` - }; - }); - return factorData; - } - getFactorTotal(factor) { - switch (factor) { - case Factor.tier: return this.getSystemData().tier.value; - case Factor.quality: return this.getFactorTotal(Factor.tier); - // no default - } - return 0; - } - get rollOppImg() { return ""; } - // #endregion // #region ~~ CONSTRUCTOR ~~ - _initData; constructor(data) { - function isHTML(testData) { - return testData instanceof HTMLElement || testData instanceof jQuery; - } - let configData; - let targetLinkData; - if (isHTML(data)) { - data = $(data); - targetLinkData = { - id: data.data("id"), - target: data.data("targetId"), - targetFlagKey: data.data("targetFlagKey") || undefined, - targetKey: data.data("targetKey") - }; - configData = targetLinkData; - } - else { - const dataAsConfig = data; - targetLinkData = { - id: data.id, - target: typeof dataAsConfig.target === "string" ? dataAsConfig.target : dataAsConfig.target.id, - targetFlagKey: dataAsConfig.targetFlagKey || undefined, - targetKey: dataAsConfig.targetKey || undefined - }; - configData = { - ...data, - ...targetLinkData - }; - } - super(targetLinkData); - configData.id = this.id; - this._initData = BladesClock.applyConfigDefaults(configData); + super(data); game.eunoblades.Clocks.set(this.id, this); } - async initialize() { - return this.updateTargetData(this._initData); - } // #endregion // #region HTML INTERACTION ~ get elem() { @@ -621,7 +491,7 @@ class BladesClock extends BladesTargetLink { } async delete() { await super.delete(); - return this.parentKey?.updateClockIndices(); + this.parentKey?.updateClockIndices(); } } export const ApplyClockListeners = async (html, namespace) => { @@ -741,7 +611,7 @@ export const ApplyClockListeners = async (html, namespace) => { if (game.user.isGM) { if (clock.isShowingControls) { $(clockContainerElem).find("[data-action='clock-toggle']") - .each((_, el) => { $(el).data("hoverTimeline", U.gsap.effects.hoverButton(el)); }) + .each((__, el) => { $(el).data("hoverTimeline", U.gsap.effects.hoverButton(el)); }) .on({ [`click.${namespace}`]: (event) => { event.preventDefault(); @@ -765,7 +635,7 @@ export const ApplyClockListeners = async (html, namespace) => { } }); $(clockContainerElem).find("[data-action='delete-clock']") - .each((_, el) => { $(el).data("hoverTimeline", U.gsap.effects.hoverButton(el, { color: "#FF0000" })); }) + .each((__, el) => { $(el).data("hoverTimeline", U.gsap.effects.hoverButton(el, { color: "#FF0000" })); }) .on({ [`contextmenu.${namespace}`]: (event) => { event.preventDefault(); diff --git a/module/classes/BladesDialog.js b/module/classes/BladesDialog.js index 5a01afba..29c1b774 100644 --- a/module/classes/BladesDialog.js +++ b/module/classes/BladesDialog.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import { ApplyTooltipAnimations } from "../core/gsap.js"; import U from "../core/utilities.js"; import { BladesActor, BladesPC } from "../documents/BladesActorProxy.js"; diff --git a/module/classes/BladesDirector.js b/module/classes/BladesDirector.js index 66e357a1..0a785c1e 100644 --- a/module/classes/BladesDirector.js +++ b/module/classes/BladesDirector.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import U from "../core/utilities.js"; import { SVGDATA, BladesPhase } from "../core/constants.js"; import { BladesClockKey } from "./BladesClock.js"; @@ -130,7 +131,7 @@ class BladesDirector { if (!game.user.isGM) { return; } - socketlib.system.executeForEveryone("$addClockKey", key._initData); + socketlib.system.executeForEveryone("$addClockKey", key.data); } initScorePanelSockets() { // tbd... @@ -273,7 +274,7 @@ class BladesDirector { ease: "power1.inOut" }, onComplete: function () { - targets.forEach((target) => $(target).remove()); + targets.forEach((targ) => $(targ).remove()); } }); } diff --git a/module/classes/BladesTargetLink.js b/module/classes/BladesTargetLink.js index 164ee533..0420fc2d 100644 --- a/module/classes/BladesTargetLink.js +++ b/module/classes/BladesTargetLink.js @@ -1,96 +1,171 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import U from "../core/utilities.js"; +import C from "../core/constants.js"; class BladesTargetLink { - static validateConfig(ref) { - // Check if 'ref' is a simple object literal - if (!U.isSimpleObj(ref)) { - return false; - } - // Confirm a target key or flag key has been provided. - if (!U.isTargetKey(ref.targetKey) && !U.isTargetFlagKey(ref.targetFlagKey)) { - return false; - } - // Confirm a target has been provided, and that it can be resolved to a Document entity. - if (!ref.target) { - return false; - } - if (U.isDocUUID(ref.target)) { - ref.target = fromUuid(ref.target); + // #region STATIC METHODS ~ + /** + * This static method applies defaults to any values missing from the class' data Schema. + * 'Schema' is defined by subclasses to BladesTargetLink. + * Subclasses must override this method to apply their own defaults. + * + * @template Schema - The data schema required by the subclass. + * @param {Partial} schemaData - Schema data overriding the defaults. + * @returns {Schema} - The schema data with defaults applied. + * @throws {Error} - Throws an error if this method is not overridden in a subclass. + */ + static ApplySchemaDefaults(schemaData) { + throw new Error("[BladesTargetLink.ApplySchemaDefaults] Static Method ApplySchemaDefaults must be overridden in subclass"); + } + static ParseConfig(config) { + // === VALIDATE CONFIG === + // - Confirm 'config' is proper primitive type + if (!U.isSimpleObj(config)) { + throw new Error(`[BladesTargetLink.ResolveConfigToData()] Config is Not a Simple Object: '${JSON.stringify(config)}'`); + } + // - Isolate BladesTargetLink.Config entries from unknown PartialSchema entries + const { target, targetID, targetKey, targetFlagKey, ...schemaData } = config; + // - Attempt to determine targetUUID from target/targetID + const targetRef = target ?? targetID; + // - ... Confirm target exists + if (!targetRef) { + throw new Error(`[BladesTargetLink.ResolveConfigToData()] Data Lacks ANY 'target' / 'targetID': '${JSON.stringify(config)}'`); + } + // - ... Convert to UUID + let targetUUID; + if (U.isDocUUID(targetRef)) { + targetUUID = targetRef; + } + else if (U.isDocID(targetRef)) { + // If it's a an ID (not a UUID), attempt to get UUID synchronously by checking most common collections: + targetUUID = (game.actors.get(targetRef) ?? game.items.get(targetRef))?.uuid; } - if (U.isDocID(ref.target)) { - // Convert string id of target to target Document - ref.target = game.actors.get(ref.target) ?? game.items.get(ref.target); + else { + // If it's a Document, extract UUID directly. + targetUUID = targetRef.uuid; + } + // - ... Confirm targetUUID + if (!U.isDocUUID(targetUUID)) { + throw new Error(`[BladesTargetLink.ResolveConfigToData()] Unable to find target from '${targetRef}`); + } + // - Confirm 'targetKey' or 'targetFlagKey' exists + if (!(U.isTargetKey(targetKey) || U.isTargetFlagKey(targetFlagKey))) { + throw new Error(`[BladesTargetLink.ResolveConfigToData()] Data Lacks valid 'targetKey' or 'targetFlagKey': '${JSON.stringify(config)}'`); + } + // - Confirm only one of 'targetKey' or 'targetFlagKey' provided, not both + if (U.isTargetKey(targetKey) && U.isTargetFlagKey(targetFlagKey)) { + throw new Error(`[BladesTargetLink.ResolveConfigToData()] Data has BOTH 'targetKey' and 'targetFlagKey': '${JSON.stringify(config)}'`); + } + // === APPLY SCHEMA DEFAULTS === + const schema = this.ApplySchemaDefaults(schemaData); + // === RETURN CONSTRUCTED DATA OBJECT === + return { + ...schema, + id: randomID(), + targetID: targetUUID, + targetKey, + targetFlagKey + }; + } + static async InitTargetLink(data) { + // Validate target. + const target = await fromUuid(data.targetID); + if (!target) { + throw new Error(`[BladesTargetLink.InitTargetLink] No target found with UUID '${data.targetID}'`); } - if (!(ref.target instanceof Actor || ref.target instanceof Item)) { - return false; + // Initialize server-side data on target. + if (data.targetKey) { + await target.update({ [`${data.targetKey}.${data.id}`]: data }); } - // Create a random ID if one not provided. - if (!ref.id) { - ref.id = randomID(); + else if (data.targetFlagKey) { + await target.setFlag(C.SYSTEM_ID, `${data.targetFlagKey}.${data.id}`, data); } - return true; + return target; } + static async Create(config) { + const data = this.ParseConfig(config); + await this.InitTargetLink(data); + return new this(data); + } + // #endregion _id; _targetID; + _targetKey; + _targetFlagKey; + get id() { return this._id; } get targetID() { return this._targetID; } - _target; - get target() { return this._target; } - _targetKey = "system"; get targetKey() { return this._targetKey; } - _targetFlagKey; get targetFlagKey() { return this._targetFlagKey; } - constructor(config) { - if (!BladesTargetLink.validateConfig(config)) { - eLog.error("[new BladesTargetLink] Bad Config File.", config); - throw new Error("See log."); + _target; + get target() { + if (!this._target) { + throw new Error(`[BladesTargetLink.target] Attempt to retrieve target ${this.targetID} without intialization.`); } - const { id, target, targetKey, targetFlagKey } = config; - this._id = id; - this._target = target; - this._targetID = this.target.id; - if (U.isTargetKey(targetKey)) { - this._targetKey = targetKey; + return this._target; + } + constructor(data) { + this._id = data.id; + this._targetID = data.targetID; + if (U.isTargetKey(data.targetKey)) { + this._targetKey = data.targetKey; } - if (U.isTargetFlagKey(targetFlagKey)) { - this._targetFlagKey = targetFlagKey; + else if (U.isTargetFlagKey(data.targetFlagKey)) { + this._targetFlagKey = data.targetFlagKey; } } - getSystemData() { + get linkData() { + let linkData; if (this.targetFlagKey) { - return this.target.getFlag("eunos-blades", `${this.targetFlagKey}.${this._id}`); + linkData = this.target.getFlag("eunos-blades", `${this.targetFlagKey}.${this.id}`) ?? undefined; + } + else if (this.targetKey) { + linkData = getProperty(this.target, `${this.targetKey}.${this.id}`); } - return getProperty(this.target, `${this.targetKey}.${this._id}`) ?? {}; + if (!linkData) { + throw new Error("[BladesTargetLink.linkData] Error retrieving linkData."); + } + return linkData; } - get id() { return this._id; } - get name() { return this.getSystemData().name; } + get data() { return this.linkData; } getTargetProp(prop) { - return this.getSystemData()[prop]; + return this.linkData[prop]; } async updateTarget(prop, val) { if (this.targetFlagKey) { - this.target.setFlag("eunos-blades", `${this.targetFlagKey}.${this._id}.${prop}`, val); + this.target.setFlag("eunos-blades", `${this.targetFlagKey}.${this.id}.${prop}`, val); } else { - this.target.update({ [`${this.targetKey}.${this._id}.${prop}`]: val }); + this.target.update({ [`${this.targetKey}.${this.id}.${prop}`]: val }); } } async updateTargetData(val) { - if (this.targetFlagKey) { - if (val === null) { - return this.target.unsetFlag("eunos-blades", `${this.targetFlagKey}.${this._id}`); + if (val === null) { + if (this.targetFlagKey) { + await this.target.unsetFlag("eunos-blades", `${this.targetFlagKey}.${this.id}`); } else { - return this.target.setFlag("eunos-blades", `${this.targetFlagKey}.${this._id}`, val); + await this.target.update({ [`${this.targetKey}.-=${this.id}`]: null }); } } - else if (val === null) { - return this.target.update({ [`${this.targetKey}.-=${this._id}`]: null }); - } else { - return this.target.update({ [`${this.targetKey}.${this._id}`]: val }); + // Add BladesTargetLink.Data to provided schema + const linkData = { + ...val, + id: this.id, + targetID: this.targetID, + targetKey: this.targetKey, + targetFlagKey: this.targetFlagKey + }; + // Update target + if (this.targetFlagKey) { + await this.target.setFlag("eunos-blades", `${this.targetFlagKey}.${this.id}`, linkData); + } + else { + await this.target.update({ [`${this.targetKey}.${this.id}`]: linkData }); + } } } async delete() { - return this.updateTargetData(null); + await this.updateTargetData(null); } } export default BladesTargetLink; diff --git a/module/core/gsap.js b/module/core/gsap.js index deff025a..be9f8199 100644 --- a/module/core/gsap.js +++ b/module/core/gsap.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import U from "./utilities.js"; import C from "./constants.js"; // eslint-disable-next-line import/no-unresolved @@ -65,12 +66,40 @@ export const gsapEffects = { }, keyHang: { effect: (target, config) => { - return U.gsap.timeline({ paused: true }) - .fromTo(target, { rotateZ: -0.5, transformOrigin: "50% 0px" }, { rotateZ: 0.5, duration: 3, ease: "sine.inOut", repeat: -1, yoyo: true }, 0) - .fromTo(target, { y: -15 }, { y: 15, duration: 6, ease: "sine.inOut", repeat: -1, yoyo: true }, 0) - .fromTo(target, { scale: 0.9, filter: "blur(3px) brightness(0.8)" }, { scale: 1.1, filter: "blur(0px) brightness(1.2)", duration: 12, ease: "sine.inOut", repeat: -1, yoyo: true }, 0); + return U.gsap.timeline({ paused: true }).fromTo(target, { + rotateZ: -0.5 * config.swingAngle, + transformOrigin: "50% 0px" + }, { + id: "keyHang_swing", + rotateZ: 0.5 * config.swingAngle, + duration: 0.25 * config.duration, + ease: config.ease, + repeat: -1, + yoyo: true + }, 0).fromTo(target, { + y: -0.5 * config.yRange, + scale: 1 - (0.5 * config.scaleRange), + filter: `blur(${config.blur}px) brightness(${1 - (0.5 * config.brightnessRange)})` + }, { + id: "keyHang_idle", + y: 0.5 * config.yRange, + scale: 1 + (0.5 * config.scaleRange), + filter: `blur(0px) brightness(${1 + (0.5 * config.brightnessRange)})`, + duration: 0.5 * config.duration, + ease: config.ease, + repeat: -1, + yoyo: true + }, 0); }, - defaults: {} + defaults: { + swingAngle: 1, + ease: "sine.inOut", + yRange: 30, + scaleRange: 0.2, + blur: 3, + brightnessRange: 0.4, + duration: 12 + } }, keyUp: { effect: (target, config) => { diff --git a/module/core/settings.js b/module/core/settings.js index dc75510c..ff9b237a 100644 --- a/module/core/settings.js +++ b/module/core/settings.js @@ -14,6 +14,14 @@ const registerSettings = function () { }, default: 3 // The default value for the setting }); + game.settings.register("eunos-blades", "debugHooks", { + name: "Debug HOOKS", + hint: "Whether all Hooks are logged to the console.", + scope: "client", + config: true, + type: Boolean, + default: false + }); game.settings.register("eunos-blades", "openAPIModelLevel", { name: "AI Base Quality", hint: "Lower values are cheaper to run, at the cost of quality.", diff --git a/module/core/utilities.js b/module/core/utilities.js index 34fa2a74..f37a0ed7 100644 --- a/module/core/utilities.js +++ b/module/core/utilities.js @@ -1591,7 +1591,7 @@ const isDocUUID = (ref) => { if (!isDocID(docID)) { return false; } - return docName in game.collections; + return game.collections.has(docName); }; const isDotKey = (ref) => { return typeof ref === "string"; diff --git a/module/data-import/data-import.js b/module/data-import/data-import.js index c5ff02ec..81e72af4 100644 --- a/module/data-import/data-import.js +++ b/module/data-import/data-import.js @@ -16,7 +16,7 @@ // }; // type FactionData = Partial & { // name: string, -// clocksArray?: Array & {display: string, value: number, max: number}>, +// clocksArray?: Array & {display: string, value: number, max: number}>, // npcsData?: Array>, // turfStrings?: string[], // assetStrings?: string[], diff --git a/module/documents/items/BladesClockKeeper.js b/module/documents/items/BladesClockKeeper.js index ae87e1ae..c240cf6d 100644 --- a/module/documents/items/BladesClockKeeper.js +++ b/module/documents/items/BladesClockKeeper.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import U from "../../core/utilities.js"; import { SVGDATA, BladesItemType } from "../../core/constants.js"; import { BladesItem } from "../BladesItemProxy.js"; @@ -15,7 +16,7 @@ class BladesClockKeeper extends BladesItem { else { game.eunoblades.ClockKeeper = clockKeeper; } - game.eunoblades.ClockKeeper.renderOverlay(); + U.gsap.delayedCall(2, game.eunoblades.ClockKeeper.renderOverlay); } static InitSockets() { socketlib.system.register("renderOverlay", game.eunoblades.ClockKeeper.renderOverlay); @@ -114,10 +115,7 @@ class BladesClockKeeper extends BladesItem { .filter((clockKey) => clockKey.sceneID === sceneID) .map((clockKey) => [clockKey.id, clockKey])); } - async addClockKey(clockKeyConfig = {}, clocksData = {}) { - if (!(game.eunoblades.ClockKeeper instanceof BladesClockKeeper)) { - return undefined; - } + async addClockKey(clockKeyConfig = {}, clockData = {}) { if (!this.targetSceneID && !clockKeyConfig.sceneID) { return undefined; } @@ -126,7 +124,7 @@ class BladesClockKeeper extends BladesItem { target: this, targetKey: "system.clocksData.keys", ...clockKeyConfig - }, clocksData); + }, [clockData]); U.gsap.effects.keyDrop(key.elem); return key; } diff --git a/module/documents/items/BladesProject.js b/module/documents/items/BladesProject.js index 166d4f30..c59e30c1 100644 --- a/module/documents/items/BladesProject.js +++ b/module/documents/items/BladesProject.js @@ -19,10 +19,10 @@ class BladesProject extends BladesItem { const { keys } = this.system.clocksData ?? {}; if (keys) { const keyData = Object.values(keys)[0]; - this._clockKey = new BladesClockKey(...[{ - ...keyData, - target: this - }]); + this._clockKey = new BladesClockKey({ + ...keyData, + targetID: this.uuid + }); return this._clockKey; } return undefined; @@ -33,7 +33,7 @@ class BladesProject extends BladesItem { get isComplete() { return this.clockKey?.isComplete; } - get rollOppClock() { return this.currentClock; } + get rollOppClock() { return this.currentClock?.data; } async advanceClock(segments = 1) { if (!this.currentClock) { return undefined; diff --git a/module/sheets/actor/BladesActorSheet.js b/module/sheets/actor/BladesActorSheet.js index 0789830a..6067e408 100644 --- a/module/sheets/actor/BladesActorSheet.js +++ b/module/sheets/actor/BladesActorSheet.js @@ -483,8 +483,8 @@ class BladesActorSheet extends ActorSheet { } case DowntimeAction.Recover: { config.rollType = RollType.Action; - if (BladesPC.IsType(this.actor)) { - config.rollOppData = this.actor.healingClock; + if (BladesPC.IsType(this.actor) && this.actor.healingClock) { + config.rollOppClock = this.actor.healingClock.data; } // rollOpposition = user character's healing clock // rollPrimary = this.actor is NPC? diff --git a/scss/components/_clocks.scss b/scss/components/_clocks.scss index a78b00ea..120752d3 100644 --- a/scss/components/_clocks.scss +++ b/scss/components/_clocks.scss @@ -2,47 +2,47 @@ @function calculate-angle($val, $max) { // Calculate the angle-size of each segment - $segment-size: 360 / $max; + $segment-size: math.div(360, $max); // Calculate the total angle between the origin line pointing upwards, including $val segments $angle: $val * $segment-size; // @debug "caclulate-angle(#{$val}, #{$max}) = #{$angle}."; @return $angle; } + @function calculate-intersection($angle) { // Square properties $size: 100%; - $radius: 0.5 * $size; - // Convert angle to radians - $angle-rad: $angle * 3.1415 / 180; + // Calculate relative angle in terms of single side, 45deg - 135deg + $angle-rel: (($angle - 45) % 90) + 45; + + // Convert angle to radians and subtract from 90 degrees + $angle-rad: math.div((90 - $angle-rel) * 3.1415, 180); + + // Determine percentage along that side + $side-percent: 0.5 * (1 - math.tan($angle-rad)); // Initialize x and y $x: 0; $y: 0; - // Calculate intersection point - - @if $angle > 315 or $angle <= 45 { - // Top side - $x: $radius + $radius * math.sin($angle-rad); - $y: 0; - } @else if $angle > 45 and $angle <= 135 { - // Right side + // Depending on side of square, apply $side-percent to $x and $y coords. + @if $angle > 45 and $angle <= 135 { $x: $size; - $y: 100% - ($radius + $radius * math.cos($angle-rad)); + $y: $size * $side-percent; } @else if $angle > 135 and $angle <= 225 { - // Bottom side - $x: 100% - ($radius - $radius * math.sin($angle-rad)); - // $x: $radius - $radius * math.cos($angle-rad); + $x: $size * (1 - $side-percent); $y: $size; } @else if $angle > 225 and $angle <= 315 { - // Left side $x: 0; - $y: $radius - $radius * math.cos($angle-rad); + $y: $size * (1 - $side-percent); + } @else { + $x: $size * $side-percent; + $y: 0; } - // @debug "For a square of $size: #{$size}, the intersection of $angle:#{$angle} is {x:#{$x}, y:#{$y}}."; + // @debug "At #{math.round($angle)}deg: {x: #{math.round($x)}, y: #{math.round($y)}}."; // Return the intersection point @return ($x $y); diff --git a/ts/@types/blades-actor.d.ts b/ts/@types/blades-actor.d.ts index 5df17c38..8a7c74f0 100644 --- a/ts/@types/blades-actor.d.ts +++ b/ts/@types/blades-actor.d.ts @@ -62,8 +62,8 @@ declare global { export interface clocks { clocksData: { - keys?: Record, - clocks?: Record + keys?: Record, + clocks?: Record } } } @@ -131,7 +131,7 @@ declare global { // subactors: Record, // subtitle: string // concept: string, - // clocks: Record, + // clocks: Record, // district: District, // assets: string, // situation: string, diff --git a/ts/@types/blades-clock.d.ts b/ts/@types/blades-clock.d.ts index da8f19cf..a6cd9594 100644 --- a/ts/@types/blades-clock.d.ts +++ b/ts/@types/blades-clock.d.ts @@ -1,58 +1,66 @@ -/* - export interface Clock_Keeper { - scenes: Record>, - targetScene: string | null - } -*/ +import { ClockColor } from "../core/constants"; +import { BladesClockKey } from "../classes/BladesClockKey"; + +declare global { + + namespace BladesClockKey { -// import {ClockColor, ClockDisplayMode} from "../core/constants"; + export type Schema = { + name: string, -interface BladesClockKeyData { - id: IDString, - name: string, + isVisible: boolean, + isActive: boolean, + isNameVisible: boolean, + isShowingControls: boolean, - isVisible: boolean, - isActive: boolean, - isNameVisible: boolean, + clocksData: Record, - target: IDString|UUIDString|BladesDoc, - targetKey?: TargetKey, - targetFlagKey?: TargetFlagKey + displayMode: ClockKeyDisplayMode|number, + oneKeyIndex: 1|2|3|4|5 - clocksData: Record, + sceneID: IDString|false, // Regardless of where stored, will be displayed within a 1-key in the scene overlay + overlayPosition?: gsap.Point2D // Where in overlay key-container is positioned, if in overlay + tier?: ValueMax + } + + export type Config = BladesTargetLink.Config & Partial; - isShowingControls?: boolean, - displayMode?: ClockKeyDisplayMode|number, - sceneID?: IDString, - oneKeyIndex: 1|2|3|4|5, - overlayPosition?: number // Slot occupied by key when displayed in overlay -} + export type Data = BladesTargetLink.Data & Schema; -interface BladesClockData extends NamedValueMax { - id: IDString, - name: string, - index: number, // Starting from '0', the sequence order of this clock in, e.g., a project with multiple clocks - value: number, - max: number, - color: ClockColor, + export interface Subclass extends BladesTargetLink.Subclass { + clocks: Collection + } + } - isVisible: boolean, // whether clock is visible at all - isActive: boolean, // true: This is the clock targeted by any rolls. - // false: Clock is complete or waiting on a preceding clock to finish. - isNameVisible: boolean, // whether clock's name is displayed as a