diff --git a/assets/icons/misc-icons/armor-resist.svg b/assets/icons/misc-icons/armor-resist.svg new file mode 100644 index 00000000..75a52339 --- /dev/null +++ b/assets/icons/misc-icons/armor-resist.svg @@ -0,0 +1,118 @@ + + + diff --git a/assets/icons/misc-icons/special-resist.svg b/assets/icons/misc-icons/special-resist.svg new file mode 100644 index 00000000..cde7629d --- /dev/null +++ b/assets/icons/misc-icons/special-resist.svg @@ -0,0 +1,133 @@ + + + diff --git a/css/style.min.css b/css/style.min.css index 2d6fbba9..2cd249a5 100644 --- a/css/style.min.css +++ b/css/style.min.css @@ -1991,6 +1991,61 @@ template { :root * .comp.consequence-display-container.consequence-accepted * .consequence-icon-container { top: -3px !important; } +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted { + min-height: 60px; +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted { + position: absolute; + width: 100%; + top: 11px; + left: 20px; + outline: 1px solid magenta !important; + z-index: 3; +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro { + display: none; +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container { + display: none; +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container { + position: absolute; + top: 0px; + left: 0px; + width: 100%; +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img { + position: absolute; + left: 0; + top: 0; + height: 100%; +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container { + transform: translate(-20px, 0px); +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container { + transform: translate(-20px, 0px); +} +:root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root * .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container { + opacity: 0; +} :root .comp.consequence-display-container .base-consequence, :root * .comp.consequence-display-container .base-consequence { --csq-icon-dark: var(--blades-black); @@ -3785,6 +3840,51 @@ template { :root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted .consequence-icon-container, :root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted * .consequence-icon-container { top: -3px !important; } +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted { + min-height: 60px; +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted { + position: absolute; + width: 100%; + top: 11px; + left: 20px; + outline: 1px solid magenta !important; + z-index: 3; +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro { + display: none; +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container { + display: none; +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container { + position: absolute; + top: 0px; + left: 0px; + width: 100%; +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img { + position: absolute; + left: 0; + top: 0; + height: 100%; +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container { + opacity: 0; +} :root body.vtt.game.system-eunos-blades #clocks-overlay .comp.consequence-display-container .base-consequence { --csq-icon-dark: var(--blades-black); --csq-icon-med: var(--blades-grey); @@ -7090,6 +7190,91 @@ template { :root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted * .consequence-icon-container { top: -3px !important; } +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted { + min-height: 60px; +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted { + position: absolute; + width: 100%; + top: 11px; + left: 20px; + outline: 1px solid magenta !important; + z-index: 3; +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro { + display: none; +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container { + display: none; +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container { + position: absolute; + top: 0px; + left: 0px; + width: 100%; +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img { + position: absolute; + left: 0; + top: 0; + height: 100%; +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #hotbar .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #players .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container { + opacity: 0; +} :root body.vtt.game.system-eunos-blades #interface .comp.consequence-display-container .base-consequence, :root body.vtt.game.system-eunos-blades #controls .comp.consequence-display-container .base-consequence, :root body.vtt.game.system-eunos-blades #navigation .comp.consequence-display-container .base-consequence, @@ -10160,6 +10345,91 @@ template { :root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted * .consequence-icon-container { top: -3px !important; } +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted { + min-height: 60px; +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted { + position: absolute; + width: 100%; + top: 11px; + left: 20px; + outline: 1px solid magenta !important; + z-index: 3; +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro { + display: none; +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container { + display: none; +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container { + position: absolute; + top: 0px; + left: 0px; + width: 100%; +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img { + position: absolute; + left: 0; + top: 0; + height: 100%; +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, +:root body.vtt.game.system-eunos-blades #players #chat .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container { + opacity: 0; +} :root body.vtt.game.system-eunos-blades #interface #chat .comp.consequence-display-container .base-consequence, :root body.vtt.game.system-eunos-blades #controls #chat .comp.consequence-display-container .base-consequence, :root body.vtt.game.system-eunos-blades #navigation #chat .comp.consequence-display-container .base-consequence, @@ -12828,6 +13098,17 @@ template { :root body.vtt.game.system-eunos-blades #players #chat #chat-log::-webkit-scrollbar { display: none; } +:root body.vtt.game.system-eunos-blades #interface #chat #chat-log, :root body.vtt.game.system-eunos-blades #interface #chat #chat-log *, +:root body.vtt.game.system-eunos-blades #controls #chat #chat-log, +:root body.vtt.game.system-eunos-blades #controls #chat #chat-log *, +:root body.vtt.game.system-eunos-blades #navigation #chat #chat-log, +:root body.vtt.game.system-eunos-blades #navigation #chat #chat-log *, +:root body.vtt.game.system-eunos-blades #hotbar #chat #chat-log, +:root body.vtt.game.system-eunos-blades #hotbar #chat #chat-log *, +:root body.vtt.game.system-eunos-blades #players #chat #chat-log, +:root body.vtt.game.system-eunos-blades #players #chat #chat-log * { + --font-primary: "Beaufort", ; +} :root body.vtt.game.system-eunos-blades #interface #chat .flexrow.jump-to-bottom, :root body.vtt.game.system-eunos-blades #controls #chat .flexrow.jump-to-bottom, :root body.vtt.game.system-eunos-blades #navigation #chat .flexrow.jump-to-bottom, @@ -12863,6 +13144,23 @@ template { :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll], :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll], :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] { + background: var(--blades-black-dark); + background: transparent; + border: 2px ouset var(--blades-white); + overflow: visible; + padding: 0; + margin: var(--chat-vertical-gap) 0px; + position: relative; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll], :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] *, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll], +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] *, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll], +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] *, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll], +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] *, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll], +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] * { --chat-header-height: 15px; --chat-vertical-gap: 15px; --resistance-right-shift: 60px; @@ -12876,15 +13174,8 @@ template { --bg-fail: transparent; --dice-strip-bg: var(--blades-black-dark); --top-die-animation: none; - --ghost-die-animation: none; - --ghost-die-filter: blur(1px) sepia(1) saturate(2) hue-rotate(319deg) brightness(0.35); - background: var(--blades-black-dark); - background: transparent; - border: 2px ouset var(--blades-white); - overflow: visible; - padding: 0; - margin: var(--chat-vertical-gap) 0px; - position: relative; + --ghost-die-animation: die-ghost 2s ease infinite; + --ghost-die-filter: none; } :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-header, :root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-header, @@ -13183,6 +13474,7 @@ template { transform-origin: 50% 50%; overflow: hidden; border-radius: calc(0.2 * var(--die-size)); + scale: 1.25; } :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die img, :root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die img, @@ -13198,7 +13490,6 @@ template { :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-critical, :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-critical, :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-critical { - box-shadow: 0px 0px 5px 3px var(--blades-gold-bright); animation: var(--top-die-animation); z-index: 1; } @@ -13208,7 +13499,6 @@ template { :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-critical:first-child + .blades-die-critical, :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-critical:first-child + .blades-die-critical { margin-left: 3px; - box-shadow: 0px 0px 5px 3px var(--blades-gold-bright); animation: var(--top-die-animation); animation-delay: 0.15s; } @@ -13217,7 +13507,6 @@ template { :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-success:first-child, :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-success:first-child, :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-success:first-child { - filter: drop-shadow(0px 0px calc(var(--die-size) * 0.1) var(--blades-white-bright)); animation: var(--top-die-animation); } :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-partial:first-child, @@ -13225,7 +13514,6 @@ template { :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-partial:first-child, :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-partial:first-child, :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-partial:first-child { - box-shadow: 0px 0px 5px var(--blades-white); animation: var(--top-die-animation); } :root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-ghost, @@ -13233,9 +13521,8 @@ template { :root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-ghost, :root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-ghost, :root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll .dice-roll-strip .blades-die.blades-die-ghost { - box-shadow: 0px 0px 5px 1px var(--blades-red); - scale: 0.8; - opacity: 0.8; + scale: 1; + opacity: 1; rotate: 10deg; animation: var(--ghost-die-animation); } @@ -13604,122 +13891,20 @@ template { z-index: -3; position: relative; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content ~ *, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content ~ *, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content ~ *, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content ~ *, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content ~ * { - z-index: 3; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .trait-label.trait-verb, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .trait-label.trait-verb, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .trait-label.trait-verb, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .trait-label.trait-verb, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .trait-label.trait-verb { - display: none; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence { - animation: none !important; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img { - animation: none !important; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper) { - filter: sepia(1) grayscale(0.5) brightness(0.6); -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper { - --border-gradient: linear-gradient(-72deg, - #565656, - #9b9b9b 16%, - #565656 21%, - #9b9b9b 24%, - #383838 27%, - #565656 36%, - #9b9b9b 45%, - #9b9b9b 60%, - #565656 72%, - #9b9b9b 80%, - #565656 84%, - #232323); - transform-origin: 50% 0%; - scale: 0.6 0.75; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .chat-header, -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .consequence-container, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .chat-header, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .consequence-container, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .chat-header, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .consequence-container, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .chat-header, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .consequence-container, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .chat-header, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-position-risky .msg-content .blades-roll .consequence-container { - background: var(--bg-risky); - background-size: cover; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll { - --bg-controlled: url("../assets/animations/chat/roll-position-controlled.webp"); - --bg-risky: url("../assets/animations/chat/roll-position-risky.webp"); - --bg-desperate: url("../assets/animations/chat/roll-position-desperate.webp"); - --bg-fail: url("../assets/animations/chat/fail-bg.webp"); - --dice-strip-bg: url("../assets/animations/chat/lightning-ray.webp") no-repeat center / 100% auto; - --top-die-animation: die-pulse 5s ease infinite; - --ghost-die-animation: die-ghost 4s ease infinite; - --ghost-die-filter: sepia(1) saturate(2) hue-rotate(319deg); - margin-bottom: 0px; - opacity: 1; - filter: drop-shadow(5px 5px 5px black); - background: transparent; - outline: none; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .trait-label.trait-past-verb, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .trait-label.trait-past-verb { - display: none; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .msg-content .blades-roll .dice-roll-strip { - margin-top: 5px; -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance { width: calc(100% - var(--resistance-right-shift)); left: var(--resistance-right-shift); top: 0; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-message-bg, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-message-bg, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-message-bg, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-message-bg, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-message-bg { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-message-bg, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-message-bg, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-message-bg, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-message-bg, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-message-bg { display: block; background: var(--blades-grey); top: 0; @@ -13729,19 +13914,19 @@ template { border-bottom-left-radius: 16px; width: calc(100% + var(--resistance-right-shift)); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line { position: relative; justify-content: stretch; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-intro, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-intro, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-intro, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-intro, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-intro { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-intro, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-intro { color: var(--blades-gold-bright); z-index: 3; position: absolute; @@ -13755,39 +13940,39 @@ template { text-shadow: var(--text-shadow-dark-strong); top: 7px; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .consequence-icon-img, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .consequence-icon-img, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .consequence-icon-img, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .consequence-icon-img, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .consequence-icon-img { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .consequence-icon-img, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .consequence-icon-img, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .consequence-icon-img, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .consequence-icon-img, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .consequence-icon-img { height: 32px; border-radius: 16px; background: var(--blades-black); position: absolute; left: -10px; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right { align-items: space-evenly; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice { height: 24px; justify-content: flex-start; align-items: center; padding: 0 10px 0 30px; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-intro { display: none; color: var(--blades-black); margin-right: 5px; @@ -13797,21 +13982,21 @@ template { margin-top: 3px; text-transform: uppercase; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .trait-label { font-family: var(--font-emphasis); color: var(--blades-gold-bright); line-height: 24px; text-shadow: var(--text-shadow-emboss); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip { height: 24px; width: fit-content; padding: 4px 0px; @@ -13820,116 +14005,207 @@ template { background: transparent; box-shadow: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die { height: 16px; border-radius: 3px; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die img { height: 16px; width: 16px; filter: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance) { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance), +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die:not(.blades-die-resistance) { opacity: 0.5; filter: blur(1px); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-roll-attr-dice .dice-roll-strip .blades-die + .blades-die + .blades-die + .blades-die + .blades-die ~ .blades-die:last-child { margin-right: -50px; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3 { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row h3 { font-size: 12px; text-shadow: var(--text-shadow-dark-strong); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3 { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-bonus h3 { color: var(--blades-gold-bright); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3 { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .resistance-roll-one-line .resistance-roll-vertical-right .resistance-cost-row.cost-stress h3 { color: var(--blades-red-bright); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-header.roll-trait, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-header.roll-trait, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-header.roll-trait, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-header.roll-trait, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .chat-header.roll-trait { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-header.roll-trait, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-header.roll-trait, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-header.roll-trait, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-header.roll-trait, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .chat-header.roll-trait { font-size: 14px; color: var(--blades-black); } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-type-container { display: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-original .comp.consequence-display-container .consequence-name-container { display: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-resisted, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-resisted, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-resisted, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-resisted, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].roll-type-resistance .msg-content .blades-roll .consequence-container.consequence-resisted { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-resisted, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-resisted, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-resisted, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-resisted, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content .blades-roll.roll-type-resistance .consequence-container.consequence-resisted { display: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].resistance-roll, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].resistance-roll, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].resistance-roll, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].resistance-roll, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].resistance-roll { - margin: 0; +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .message-content ~ *, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .message-content ~ *, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .message-content ~ *, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .message-content ~ *, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .message-content ~ * { + z-index: 3; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].resistance-roll .message-header, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].resistance-roll .message-header, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].resistance-roll .message-header, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].resistance-roll .message-header, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].resistance-roll .message-header { +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence { + animation: none !important; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll) .message-content .blades-roll .consequence-icon-container .consequence-icon-circle.base-consequence img { + animation: none !important; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].active-chat-roll .message-content .blades-roll .trait-label.trait-past-verb { + display: none !important; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .trait-label.trait-verb, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .trait-label.trait-verb { display: none; } -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].action-roll + .chat-message.resistance-roll { - margin-top: calc(-1 * var(--chat-vertical-gap)); -} -:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll, -:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].action-roll.unresolved-action-roll + .chat-message.resistance-roll { - margin-top: 0; +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper), +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .blades-roll > *:not(.chat-message-speaker-portrait-wrapper) { + filter: sepia(1) grayscale(0.5) brightness(0.6); +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll]:not(.unresolved-action-roll):not(.active-chat-roll) .message-content .blades-roll .chat-message-speaker-portrait-wrapper { + --border-gradient: linear-gradient(-72deg, + #565656, + #9b9b9b 16%, + #565656 21%, + #9b9b9b 24%, + #383838 27%, + #565656 36%, + #9b9b9b 45%, + #9b9b9b 60%, + #565656 72%, + #9b9b9b 80%, + #565656 84%, + #232323); + transform-origin: 50% 0%; + scale: 0.6 0.75; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .roll-position-risky .chat-header, +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll] .roll-position-risky .consequence-container, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .roll-position-risky .chat-header, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll] .roll-position-risky .consequence-container, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .roll-position-risky .chat-header, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll] .roll-position-risky .consequence-container, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .roll-position-risky .chat-header, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll] .roll-position-risky .consequence-container, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .roll-position-risky .chat-header, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll] .roll-position-risky .consequence-container { + background: var(--bg-risky); + background-size: cover; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll { + margin-bottom: 0px; + opacity: 1; + filter: drop-shadow(5px 5px 5px black); + background: transparent; + outline: none; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .trait-label.trait-past-verb, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .trait-label.trait-past-verb { + display: none !important; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message[class*=-roll].unresolved-action-roll .message-content .blades-roll .dice-roll-strip { + margin-top: 5px; +} +:root body.vtt.game.system-eunos-blades #interface #chat .chat-message.unresolved-action-roll, :root body.vtt.game.system-eunos-blades #interface #chat .chat-message.unresolved-action-roll *, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message.unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #controls #chat .chat-message.unresolved-action-roll *, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message.unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #navigation #chat .chat-message.unresolved-action-roll *, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message.unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #hotbar #chat .chat-message.unresolved-action-roll *, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message.unresolved-action-roll, +:root body.vtt.game.system-eunos-blades #players #chat .chat-message.unresolved-action-roll * { + --bg-controlled: url("../assets/animations/chat/roll-position-controlled.webp"); + --bg-risky: url("../assets/animations/chat/roll-position-risky.webp"); + --bg-desperate: url("../assets/animations/chat/roll-position-desperate.webp"); + --bg-fail: url("../assets/animations/chat/fail-bg.webp"); + --dice-strip-bg: url("../assets/animations/chat/lightning-ray.webp") no-repeat center / 100% auto; + --top-die-animation: die-pulse 5s ease infinite; + --ghost-die-animation: die-ghost 4s ease infinite; + --ghost-die-filter: sepia(1) saturate(2) hue-rotate(319deg); } :root body.vtt.game.system-eunos-blades #interface .lightning-border-container { position: absolute; @@ -14970,6 +15246,51 @@ template { :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted .consequence-icon-container, :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted * .consequence-icon-container { top: -3px !important; } +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted { + min-height: 60px; +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted { + position: absolute; + width: 100%; + top: 11px; + left: 20px; + outline: 1px solid magenta !important; + z-index: 3; +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro { + display: none; +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container { + display: none; +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container { + position: absolute; + top: 0px; + left: 0px; + width: 100%; +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img { + position: absolute; + left: 0; + top: 0; + height: 100%; +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container { + transform: translate(-20px, 0px); +} +:root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container { + opacity: 0; +} :root body.vtt.game.system-eunos-blades .app.window-app .comp.consequence-display-container .base-consequence { --csq-icon-dark: var(--blades-black); --csq-icon-med: var(--blades-grey); diff --git a/css/tinymce/content.min.css b/css/tinymce/content.min.css index e713d957..766bfda3 100644 --- a/css/tinymce/content.min.css +++ b/css/tinymce/content.min.css @@ -1125,6 +1125,51 @@ html .comp.consequence-display-container.consequence-accepted, html .comp.conseq html .comp.consequence-display-container.consequence-accepted .consequence-icon-container, html .comp.consequence-display-container.consequence-accepted * .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted * .consequence-icon-container { top: -3px !important; } +html .comp.consequence-display-container.consequence-accepted.consequence-resisted, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted { + min-height: 60px; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted { + position: absolute; + width: 100%; + top: 11px; + left: 20px; + outline: 1px solid magenta !important; + z-index: 3; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro { + display: none; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container { + display: none; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container { + position: absolute; + top: 0px; + left: 0px; + width: 100%; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img { + position: absolute; + left: 0; + top: 0; + height: 100%; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container { + transform: translate(-20px, 0px); +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container { + transform: translate(-20px, 0px); +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container { + opacity: 0; +} html .comp.consequence-display-container .base-consequence, :root .comp.consequence-display-container .base-consequence { --csq-icon-dark: var(--blades-black); --csq-icon-med: var(--blades-grey); @@ -2800,6 +2845,51 @@ html .comp.consequence-display-container.consequence-accepted, html .comp.conseq html .comp.consequence-display-container.consequence-accepted .consequence-icon-container, html .comp.consequence-display-container.consequence-accepted * .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted * .consequence-icon-container { top: -3px !important; } +html .comp.consequence-display-container.consequence-accepted.consequence-resisted, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted { + min-height: 60px; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted { + position: absolute; + width: 100%; + top: 11px; + left: 20px; + outline: 1px solid magenta !important; + z-index: 3; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .sub-consequence-resisted-roll-result .resistance-roll-intro { + display: none; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-icon-container { + display: none; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .consequence-type-container { + position: absolute; + top: 0px; + left: 0px; + width: 100%; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 100%; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted .special-resist-overlay .special-resist-overlay-img { + position: absolute; + left: 0; + top: 0; + height: 100%; +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-icon-container { + transform: translate(-20px, 0px); +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-type-container { + transform: translate(-20px, 0px); +} +html .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container, :root .comp.consequence-display-container.consequence-accepted.consequence-resisted .sub-consequence-resisted ~ .consequence-name-container { + opacity: 0; +} html .comp.consequence-display-container .base-consequence, :root .comp.consequence-display-container .base-consequence { --csq-icon-dark: var(--blades-black); --csq-icon-med: var(--blades-grey); diff --git a/module/BladesChat.js b/module/BladesChat.js index 56c4dc90..cb5aaac0 100644 --- a/module/BladesChat.js +++ b/module/BladesChat.js @@ -4,11 +4,19 @@ import BladesConsequence from "./sheets/roll/BladesConsequence.js"; // #endregion class BladesChat extends ChatMessage { static Initialize() { + // let lastMessageID: string|false = Array.from(game.messages).pop()?.id ?? ""; Hooks.on("renderChatMessage", (_msg, html) => { ApplyTooltipAnimations(html); ApplyConsequenceAnimations(html); BladesConsequence.ApplyChatListeners(html); - setTimeout(() => { html.addClass("display-ok"); }, 2000); + html.addClass("display-ok"); + // if (lastMessageID && _msg.id === lastMessageID) { + // setTimeout(() => { + // $(document).find("#chat .chat-message:not([class*='-roll'])") + // .remove(); + // }, 500); + // lastMessageID = false; + // } }); return loadTemplates([ "systems/eunos-blades/templates/chat/roll-result-action-roll.hbs", diff --git a/module/BladesRoll.js b/module/BladesRoll.js index b76dd9b2..575571c2 100644 --- a/module/BladesRoll.js +++ b/module/BladesRoll.js @@ -1,6 +1,6 @@ // #region IMPORTS ~ import U from "./core/utilities.js"; -import C, { BladesActorType, BladesItemType, BladesPhase, RollPermissions, RollType, RollSubType, RollModStatus, RollModSection, ActionTrait, DowntimeAction, AttributeTrait, Position, Effect, Factor, RollResult, RollPhase, ConsequenceType, Tag } from "./core/constants.js"; +import C, { BladesActorType, BladesItemType, BladesPhase, RollPermissions, RollType, RollSubType, RollModType, RollModStatus, RollModSection, ActionTrait, DowntimeAction, AttributeTrait, Position, Effect, Factor, RollResult, RollPhase, ConsequenceType, Tag } from "./core/constants.js"; import { BladesActor, BladesPC, BladesCrew } from "./documents/BladesActorProxy.js"; import { BladesItem, BladesGMTracker } from "./documents/BladesItemProxy.js"; import { ApplyTooltipAnimations, ApplyConsequenceAnimations } from "./core/gsap.js"; @@ -182,7 +182,7 @@ class BladesRollMod { name: nameVal, section: catVal, base_status: RollModStatus.ToggledOff, - modType: "general", + modType: RollModType.general, value: 1, posNeg: posNegVal, tooltip: "" @@ -314,10 +314,10 @@ class BladesRollMod { get isInInactiveBlock() { if (game.user.isGM) { return [RollModStatus.Hidden, RollModStatus.ForcedOff, RollModStatus.ToggledOff].includes(this.status) - && (this.isConditional || [BladesItemType.ability].includes(this.modType)); + && (this.isConditional || this.modType === RollModType.ability); } return [RollModStatus.ForcedOff, RollModStatus.ToggledOff].includes(this.status) - && (this.isConditional || [BladesItemType.ability].includes(this.modType)); + && (this.isConditional || this.modType === RollModType.ability); } get isPush() { return Boolean(U.lCase(this.name) === "push" @@ -355,16 +355,18 @@ class BladesRollMod { } } /** - * Sets the conditional status of the roll instance. + * Sets the conditional status of the roll mod instance. * @returns {boolean} - Returns false if the status is ForcedOn or ToggledOff, true if the status is Hidden. */ setConditionalStatus() { - // If the roll instance is not conditional, return false + // If the roll mod instance is not conditional, return false if (!this.isConditional) { return false; } // If any auto-Traits/Types apply, set status to ForcedOn and return false const autoTypesOrTraitsApply = this.autoRollTypes.includes(this.rollInstance.rollType) + || (this.rollInstance.rollSubType && this.autoRollTypes.includes(this.rollInstance.rollSubType)) + || (this.rollInstance.rollDowntimeAction && this.autoRollTypes.includes(this.rollInstance.rollDowntimeAction)) || (!this.rollInstance.rollTrait || this.autoRollTraits.includes(this.rollInstance.rollTrait)); if (autoTypesOrTraitsApply) { this.heldStatus = RollModStatus.ForcedOn; @@ -397,8 +399,13 @@ class BladesRollMod { * @returns {boolean} - Returns true if any types or traits apply, false otherwise. */ checkTypesOrTraits(types, traits) { + if ([...types, ...traits].length === 0) { + return false; + } const typesApply = Boolean((!this.rollInstance.isParticipantRoll && types.length === 0) - || types.includes(this.rollInstance.rollType)); + || types.includes(this.rollInstance.rollType) + || (this.rollInstance.rollSubType && types.includes(this.rollInstance.rollSubType)) + || (this.rollInstance.rollDowntimeAction && types.includes(this.rollInstance.rollDowntimeAction))); const traitsApply = Boolean((!this.rollInstance.isParticipantRoll && traits.length === 0) || (this.rollInstance.rollTrait && traits.includes(this.rollInstance.rollTrait))); return typesApply && traitsApply; @@ -611,7 +618,7 @@ class BladesRollMod { }); } get selectOptions() { - if (this.modType !== "teamwork") { + if (this.modType !== RollModType.teamwork) { return null; } if (this.name === "Assist" || this.name === "Setup") { @@ -623,7 +630,7 @@ class BladesRollMod { return null; } get selectedParticipant() { - if (this.modType !== "teamwork") { + if (this.modType !== RollModType.teamwork) { return null; } return this.rollInstance.getRollParticipant(this.section, this.name); @@ -735,9 +742,12 @@ class BladesRollMod { this.conditionalRollTypes = modData.conditionalRollTypes ?? []; this.autoRollTypes = modData.autoRollTypes ?? []; this.participantRollTypes = modData.participantRollTypes ?? []; - this.conditionalRollTraits = modData.conditionalRollTraits ?? []; - this.autoRollTraits = modData.autoRollTraits ?? []; - this.participantRollTraits = modData.participantRollTraits ?? []; + this.conditionalRollTraits = (modData.conditionalRollTraits ?? []) + .map((trait) => U.lCase(trait)); + this.autoRollTraits = (modData.autoRollTraits ?? []) + .map((trait) => U.lCase(trait)); + this.participantRollTraits = (modData.participantRollTraits ?? []) + .map((trait) => U.lCase(trait)); this.section = modData.section; } } @@ -1189,6 +1199,19 @@ class BladesRollParticipant { } } class BladesRoll extends DocumentSheet { + static _Debug = { + modWatch: false + }; + static Debug = { + watchRollMod(name) { + if (typeof name === "string") { + BladesRoll._Debug.modWatch = new RegExp(name, "g"); + } + else { + BladesRoll._Debug.modWatch = false; + } + } + }; // #region STATIC METHODS: INITIALIZATION & DEFAULTS ~ static get defaultOptions() { return foundry.utils.mergeObject(super.defaultOptions, { @@ -1234,7 +1257,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.ToggledOff, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: ["ForceOff-Bargain", "Cost-Stress2"], tooltip: "
For 2 Stress, add 1 die to your pool.
(You cannot also accept a Devil's Bargain to increase your dice pool: It's one or the other.)
" @@ -1245,7 +1268,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.Hidden, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "The GM has offered you a Devil's Bargain.
Accept the terms to add 1 die to your pool.
(You cannot also Push for +1d to increase your dice pool: It's one or the other.)
" @@ -1256,7 +1279,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.Hidden, posNeg: "positive", - modType: "teamwork", + modType: RollModType.teamwork, value: 1, tooltip: "%DOC_NAME% is Assisting your efforts, adding 1 die to your pool.
" }, @@ -1266,7 +1289,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.position, base_status: RollModStatus.Hidden, posNeg: "positive", - modType: "teamwork", + modType: RollModType.teamwork, value: 1, tooltip: "%DOC_NAME% has set you up for success with a preceding Setup action, increasing your Position by one level.
" }, @@ -1276,7 +1299,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.effect, base_status: RollModStatus.ToggledOff, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: ["Cost-Stress2"], tooltip: "For 2 Stress, increase your Effect by one level.
" @@ -1287,7 +1310,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.effect, base_status: RollModStatus.Hidden, posNeg: "positive", - modType: "teamwork", + modType: RollModType.teamwork, value: 1, tooltip: "%DOC_NAME% has set you up for success with a preceding Setup action, increasing your Effect by one level.
" }, @@ -1297,7 +1320,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.effect, base_status: RollModStatus.Hidden, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, tooltip: "By circumstance or advantage, you have Potency in this action, increasing your Effect by one level.
" }, @@ -1307,7 +1330,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.effect, base_status: RollModStatus.Hidden, posNeg: "negative", - modType: "general", + modType: RollModType.general, value: 1, tooltip: "By circumstance or advantage, @OPPOSITION_NAME@ has Potency against you, reducing your Effect by one level." } @@ -2189,17 +2212,58 @@ class BladesRoll extends DocumentSheet { this.rollFactorPenaltiesNegated = {}; this.tempGMBoosts = {}; this.rollMods = modsData.map((modData) => new BladesRollMod(modData, this)); + // ESLINT DISABLE: Dev Code. + // eslint-disable-next-line @typescript-eslint/no-explicit-any const initReport = {}; + let initReportCount = 0; + const watchMod = (label) => { + if (BladesRoll._Debug.modWatch === false) { + return; + } + const reportLabel = `(${initReportCount}) == ${label}`; + const rollMod = this.rollMods + .find((mod) => BladesRoll._Debug.modWatch && BladesRoll._Debug.modWatch.exec(mod.name)); + if (rollMod) { + initReport[`${reportLabel} : ${rollMod.status}`] = { + inst: rollMod, + data: { ...rollMod.data }, + sourceName: rollMod.sourceName, + status: { + ALL: rollMod.status, + base: rollMod.baseStatus, + held: rollMod.heldStatus, + user: rollMod.userStatus + }, + is: { + active: rollMod.isActive, + visible: rollMod.isVisible, + conditional: rollMod.isConditional, + inInactiveBlock: rollMod.isInInactiveBlock, + isPush: rollMod.isPush, + isBasicPush: rollMod.isBasicPush + }, + flags: { ...rollMod.flagParams } + }; + } + else { + initReport[reportLabel] = "MOD NOT FOUND"; + } + initReportCount++; + }; + watchMod("INITIAL"); /* *** PASS ZERO: ROLLTYPE VALIDATION PASS *** */ this.rollMods = this.rollMods.filter((rollMod) => rollMod.isValidForRollType()); + watchMod("ROLLTYPE VALIDATION"); /* *** PASS ONE: DISABLE PASS *** */ - this.rollMods - // ... Conditional Status Pass - .filter((rollMod) => !rollMod.setConditionalStatus()) - // ... AutoReveal/AutoEnable Pass - .filter((rollMod) => !rollMod.setAutoStatus()) - // ... Payable Pass - .forEach((rollMod) => { rollMod.setPayableStatus(); }); + // ... Conditional Status Pass + const conditionalDisablePass = this.rollMods.filter((rollMod) => !rollMod.setConditionalStatus()); + watchMod("DISABLE - CONDITIONAL"); + // ... AutoReveal/AutoEnable Pass + const autoRevealDisablePass = conditionalDisablePass.filter((rollMod) => !rollMod.setAutoStatus()); + watchMod("DISABLE - AUTO-REVEAL/ENABLE"); + // ... Payable Pass + autoRevealDisablePass.forEach((rollMod) => { rollMod.setPayableStatus(); }); + watchMod("DISABLE - PAYABLE"); /* *** PASS TWO: FORCE-ON PASS *** */ const parseForceOnKeys = (mod) => { const holdKeys = mod.effectKeys.filter((key) => key.startsWith("ForceOn")); @@ -2242,6 +2306,7 @@ class BladesRoll extends DocumentSheet { } }; this.getActiveRollMods().forEach((rollMod) => parseForceOnKeys(rollMod)); + watchMod("FORCE-ON PASS"); /* *** PASS THREE: PUSH-CHECK PASS *** */ // IF ROLL FORCED ... if (this.isForcePushed()) { @@ -2249,6 +2314,7 @@ class BladesRoll extends DocumentSheet { this.getInactivePushMods() .filter((mod) => !mod.isBasicPush) .forEach((mod) => { mod.heldStatus = RollModStatus.ForcedOff; }); + watchMod("PUSH-CHECK: FORCE-OFF IS-PUSH"); } // ... BY CATEGORY ... [RollModSection.roll, RollModSection.effect].forEach((cat) => { @@ -2260,17 +2326,20 @@ class BladesRoll extends DocumentSheet { bargainMod.heldStatus = RollModStatus.ForcedOff; } } + watchMod("PUSH-CHECK: FORCE OFF BARGAIN"); } else { // Otherwise, hide all Is-Push mods this.getInactivePushMods(cat) .filter((mod) => !mod.isBasicPush) .forEach((mod) => { mod.heldStatus = RollModStatus.Hidden; }); + watchMod("PUSH-CHECK: HIDE IS-PUSH"); } }); /* *** PASS FOUR: Relevancy Pass *** */ this.getVisibleRollMods() .forEach((mod) => { mod.setRelevancyStatus(); }); + watchMod("RELEVANCY PASS"); /* *** PASS FIVE: Overpayment Pass *** */ // ... If 'Cost-SpecialArmor' active, ForceOff other visible Cost-SpecialArmor mods const activeArmorCostMod = this.getActiveRollMods().find((mod) => mod.effectKeys.includes("Cost-SpecialArmor")); @@ -2278,6 +2347,7 @@ class BladesRoll extends DocumentSheet { this.getVisibleRollMods() .filter((mod) => !mod.isActive && mod.effectKeys.includes("Cost-SpecialArmor")) .forEach((mod) => { mod.heldStatus = RollModStatus.ForcedOff; }); + watchMod("OVERPAYMENT PASS"); } eLog.checkLog2("rollMods", "*** initRollMods() PASS ***", initReport); } @@ -2493,7 +2563,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.ToggledOff, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "
" @@ -2504,7 +2574,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.ToggledOff, posNeg: "negative", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "" @@ -2515,7 +2585,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.ToggledOff, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "" @@ -2526,7 +2596,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.ToggledOff, posNeg: "negative", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "" @@ -2537,7 +2607,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.position, base_status: RollModStatus.ToggledOff, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "Add +1d if you enlist the help of a friend or contact.
" @@ -2548,7 +2618,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.ToggledOff, posNeg: "negative", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "" @@ -2564,7 +2634,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.position, base_status: RollModStatus.ToggledOff, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "Add +1d if you enlist the help of a friend or contact.
" @@ -2576,7 +2646,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.after, base_status: RollModStatus.ForcedOn, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 0, effectKeys: [], tooltip: "After your roll, you can increase the result level by one for each Coin you spend.
" @@ -2590,7 +2660,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.roll, base_status: RollModStatus.ToggledOff, posNeg: "positive", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "Add +1d if you have previously acquired this asset or service with a Acquire Asset Downtime activity.
" @@ -2601,7 +2671,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.after, base_status: RollModStatus.Hidden, posNeg: "negative", - modType: "general", + modType: RollModType.general, value: 0, effectKeys: ["Cost-Heat2"], tooltip: "Whether contraband goods or dangerous materials, this Acquire Asset Downtime activity will add +2 Heat to your crew.
" @@ -2617,7 +2687,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection, base_status: RollModStatus, posNeg: "", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "" @@ -2645,7 +2715,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.position, base_status: RollModStatus.ForcedOn, posNeg: "negative", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "A Consequence on a previous roll has worsened your Position.
" @@ -2667,7 +2737,7 @@ class BladesRoll extends DocumentSheet { section: RollModSection.effect, base_status: RollModStatus.ForcedOn, posNeg: "negative", - modType: "general", + modType: RollModType.general, value: 1, effectKeys: [], tooltip: "A Consequence has worsened your Effect.
" @@ -3199,14 +3269,14 @@ class BladesRoll extends DocumentSheet { const { chatID } = this.rollConsequence?.resistTo ?? {}; if (csqID && chatID) { const resistedCsq = await BladesConsequence.GetFromID(chatID, csqID); - if (resistedCsq) { - await resistedCsq.applyResistedConsequence("resist"); + if (resistedCsq && this.rollConsequence?.resistTo) { + await resistedCsq.applyResistedConsequence("resist", await this.getResultHTML(chatID, { icon: this.rollConsequence.resistTo.icon ?? "" })); } } if (BladesPC.IsType(this.rollPrimaryDoc)) { this.rollPrimaryDoc.adjustStress(this.resistanceStressCost); } - await this.outputRollToChat(); + // await this.outputRollToChat(); break; } } @@ -3237,11 +3307,9 @@ class BladesRoll extends DocumentSheet { // chatSpeaker.alias = `${chatSpeaker.alias} Rolls ...`; return chatSpeaker; } - async getResultHTML(chatMsgID) { - // eslint-disable-next-line @typescript-eslint/no-this-alias - const templateData = this; - templateData.chatMsgID = chatMsgID; - return await renderTemplate(`systems/eunos-blades/templates/chat/roll-result-${U.lCase(this.rollType)}-roll.hbs`, templateData); + async getResultHTML(chatMsgID, context = {}) { + context = Object.assign(this, context, { chatMsgID }); + return await renderTemplate(`systems/eunos-blades/templates/chat/roll-result-${U.lCase(this.rollType)}-roll.hbs`, context); } _chatMessageID; _chatMessageTemp; diff --git a/module/core/constants.js b/module/core/constants.js index c76cad70..7a90dacf 100644 --- a/module/core/constants.js +++ b/module/core/constants.js @@ -176,6 +176,16 @@ export var RollSubType; RollSubType["GroupLead"] = "GroupLead"; RollSubType["GroupParticipant"] = "GroupParticipant"; })(RollSubType || (RollSubType = {})); +export var RollModType; +(function (RollModType) { + RollModType["general"] = "general"; + RollModType["harm"] = "harm"; + RollModType["teamwork"] = "teamwork"; + RollModType["ability"] = "ability"; + RollModType["gear"] = "gear"; + RollModType["advantage"] = "advantage"; + RollModType["disadvantage"] = "disadvantage"; +})(RollModType || (RollModType = {})); export var ConsequenceType; (function (ConsequenceType) { ConsequenceType["ReducedEffect"] = "ReducedEffect"; diff --git a/module/documents/actors/BladesPC.js b/module/documents/actors/BladesPC.js index 2248d9bf..76a6b9c0 100644 --- a/module/documents/actors/BladesPC.js +++ b/module/documents/actors/BladesPC.js @@ -1,4 +1,4 @@ -import C, { AttributeTrait, Harm, BladesActorType, BladesItemType, Tag, RollModSection, RollModStatus } from "../../core/constants.js"; +import C, { AttributeTrait, Harm, BladesActorType, BladesItemType, Tag, RollModType, RollModSection, RollModStatus } from "../../core/constants.js"; import U from "../../core/utilities.js"; import { BladesActor } from "../BladesActorProxy.js"; import { BladesItem } from "../BladesItemProxy.js"; @@ -352,7 +352,7 @@ class BladesPC extends BladesActor { section: effectCat, posNeg: "negative", base_status: RollModStatus.ToggledOn, - modType: "harm", + modType: RollModType.harm, value: 1, tooltip: [ `