diff --git a/daggerheart.mjs b/daggerheart.mjs index 9cb64e81..747fd490 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -14,6 +14,7 @@ import { getCommandTarget, rollCommandToJSON, setDiceSoNiceForDualityRoll } from import { abilities } from './module/config/actorConfig.mjs'; import Resources from './module/applications/resources.mjs'; import DHDualityRoll from './module/data/chat-message/dualityRoll.mjs'; +import { DualityRollColor } from './module/data/settings/Appearance.mjs'; globalThis.SYSTEM = SYSTEM; @@ -106,6 +107,7 @@ Hooks.once('init', () => { Hooks.on('ready', () => { ui.resources = new CONFIG.ui.resources(); if(game.settings.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.Resources.DisplayFear) !== 'hide') ui.resources.render({ force: true }); + document.body.classList.toggle('theme-colorful', game.settings.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.appearance).dualityColorScheme === DualityRollColor.colorful.value); }); Hooks.once('dicesoniceready', () => {}); diff --git a/module/applications/chatMessage.mjs b/module/applications/chatMessage.mjs index a7f61cd8..4850a0d2 100644 --- a/module/applications/chatMessage.mjs +++ b/module/applications/chatMessage.mjs @@ -11,9 +11,7 @@ export default class DhpChatMessage extends foundry.documents.ChatMessage { const html = await super.renderHTML(); if ( - this.type === 'dualityRoll' && - game.settings.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.appearance).dualityColorScheme === - DualityRollColor.colorful.value + this.type === 'dualityRoll' ) { html.classList.add('duality'); const dualityResult = this.system.dualityResult; diff --git a/module/applications/settings/appearanceSettings.mjs b/module/applications/settings/appearanceSettings.mjs index fb395d6e..5797836b 100644 --- a/module/applications/settings/appearanceSettings.mjs +++ b/module/applications/settings/appearanceSettings.mjs @@ -1,4 +1,4 @@ -import DhAppearance from '../../data/settings/Appearance.mjs'; +import DhAppearance, { DualityRollColor } from '../../data/settings/Appearance.mjs'; const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; @@ -54,7 +54,7 @@ export default class DHAppearanceSettings extends HandlebarsApplicationMixin(App static async save() { await game.settings.set(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.appearance, this.settings.toObject()); - const reload = await foundry.applications.api.DialogV2.confirm({ + /* const reload = await foundry.applications.api.DialogV2.confirm({ id: 'reload-world-confirm', modal: true, rejectClose: false, @@ -66,7 +66,8 @@ export default class DHAppearanceSettings extends HandlebarsApplicationMixin(App if (reload) { await game.socket.emit('reload'); foundry.utils.debouncedReload(); - } + } */ + document.body.classList.toggle('theme-colorful', game.settings.get(SYSTEM.id, SYSTEM.SETTINGS.gameSettings.appearance).dualityColorScheme === DualityRollColor.colorful.value); this.close(); } diff --git a/module/data/action/action.mjs b/module/data/action/action.mjs index 5de1e341..0462980f 100644 --- a/module/data/action/action.mjs +++ b/module/data/action/action.mjs @@ -105,7 +105,10 @@ export class DHBaseAction extends foundry.abstract.DataModel { } get chatTemplate() { - return 'systems/daggerheart/templates/chat/attack-roll.hbs'; + return 'systems/daggerheart/templates/chat/duality-roll.hbs'; + } + get chatTitle() { + return this.item.name; } static getRollType() { @@ -132,7 +135,7 @@ export class DHBaseAction extends foundry.abstract.DataModel { const modifierValue = this.actor.system.traits[this.roll.trait].value; const config = { event: event, - title: this.item.name, + title: this.chatTitle, roll: { modifier: modifierValue, label: game.i18n.localize(abilities[this.roll.trait].label), @@ -199,6 +202,12 @@ export class DHAttackAction extends DHBaseAction { static getRollType() { return 'weapon'; } + + get chatTitle() { + return game.i18n.format('DAGGERHEART.Chat.AttackRoll.Title', { + attack: this.item.name + }); + } prepareData() { super.prepareData(); diff --git a/styles/chat.less b/styles/chat.less index ea9c95ef..883af72b 100644 --- a/styles/chat.less +++ b/styles/chat.less @@ -1,59 +1,57 @@ .chat-message { - &.duality { - border-color: black; - padding: 8px 0 0 0; + .duality-modifiers, .duality-result, .dice-title { + display: none; + } +} - .message-header { - color: var(--color-light-3); - padding: 0 8px; - } +.daggerheart.chat { + &.downtime { + display: flex; + flex-direction: column; + align-items: center; - .duality-data { + .downtime-title-container { display: flex; flex-direction: column; + align-items: center; - .duality-title { - color: var(--color-light-1); - text-shadow: 0 0 1px black; - border-bottom: 1px solid; - margin-bottom: 2px; - display: flex; - align-items: end; - justify-content: space-between; - padding: 0 8px; + .downtime-subtitle { + font-size: 17px; } + } - .duality-modifiers { - display: flex; - gap: 2px; - margin-bottom: 4px; - padding: 0 8px; + .downtime-image { + width: 80px; + } - .duality-modifier { - padding: 2px; - border-radius: 6px; - border: 1px solid; - background: var(--color-dark-6); - font-size: 12px; - } + .downtime-refresh-container { + margin-top: @fullMargin; + width: 100%; + + .refresh-title { + font-weight: bold; } + } + } - .duality-line { - display: flex; - align-items: end; - justify-content: space-between; - padding: 0 8px; - - &.simple { - padding-right: 0; + &.roll { + .dice-flavor { + text-align: center; + font-weight: bold; + } + .dice-tooltip { + .dice-rolls { + &.duality { + display: flex; + gap: 0.25rem; } - - .dice-outer-container { + // margin: 0; + > .roll { display: flex; align-items: center; + justify-content: center; gap: 4px; margin-bottom: 4px; - .dice-container { display: flex; flex-direction: column; @@ -69,7 +67,22 @@ align-items: center; justify-content: center; position: relative; - + &.hope, &.fear { + .dice-wrapper { + clip-path: polygon( + 50% 0%, + 80% 10%, + 100% 35%, + 100% 70%, + 80% 90%, + 50% 100%, + 20% 90%, + 0% 70%, + 0% 35%, + 20% 10% + ); + } + } .dice-wrapper { height: 24px; width: 24px; @@ -77,18 +90,6 @@ display: flex; align-items: center; justify-content: center; - clip-path: polygon( - 50% 0%, - 80% 10%, - 100% 35%, - 100% 70%, - 80% 90%, - 50% 100%, - 20% 90%, - 0% 70%, - 0% 35%, - 20% 10% - ); .dice { height: 26px; @@ -135,271 +136,30 @@ text-shadow: 0 0 4px black; } } - } - } - .advantage-container { - padding-top: 21px; - - .dice-wrapper { - height: 24px; - width: 24px; - position: relative; - display: flex; - align-items: center; - justify-content: center; - - .dice { - height: 26px; - width: 26px; - max-width: unset; - position: absolute; - } - - .dice-value { - position: absolute; - font-weight: bold; - font-size: 16px; - } - } - - &.advantage { - .dice-wrapper { - .dice { - filter: brightness(0) saturate(100%) invert(18%) sepia(92%) saturate(4133%) - hue-rotate(96deg) brightness(104%) contrast(107%); + &.advantage { + .dice-wrapper { + .dice { + filter: brightness(0) saturate(100%) invert(18%) sepia(92%) saturate(4133%) + hue-rotate(96deg) brightness(104%) contrast(107%); + } } } - } - &.disadvantage { - .dice-wrapper { - .dice { - filter: brightness(0) saturate(100%) invert(9%) sepia(78%) saturate(6903%) - hue-rotate(11deg) brightness(93%) contrast(117%); + &.disadvantage { + .dice-wrapper { + .dice { + filter: brightness(0) saturate(100%) invert(9%) sepia(78%) saturate(6903%) + hue-rotate(11deg) brightness(93%) contrast(117%); + } } } } } - - .duality-modifier { - padding-top: 21px; - color: var(--color-light-1); - text-shadow: 0 0 1px black; - font-size: 16px; - } } } } - .duality-result { - display: flex; - flex-direction: column; - align-items: end; - justify-content: center; - gap: 2px; - color: var(--color-light-1); - text-shadow: 0 0 1px black; - font-weight: bold; - background: var(--color-dark-1); - padding: 4px 4px 0 4px; - border-radius: 6px 0 0 0; - } - - .duality-actions { - display: flex; - justify-content: space-between; - - .duality-action { - color: var(--color-light-1); - text-shadow: 0 0 1px black; - font-weight: bold; - background: var(--color-dark-1); - padding: 4px; - border-radius: 0 6px 0 0; - border-color: black; - min-height: unset; - height: 26px; - - &:hover { - background: var(--button-hover-background-color); - } - } - } - - .target-section { - margin: 4px 4px; - border: 2px solid; - - .target-container { - display: flex; - align-items: center; - transition: all 0.2s ease-in-out; - - &:hover { - filter: drop-shadow(0 0 3px @secondaryShadow); - border-color: gold; - } - - &.hit { - background: @hit; - } - - &.miss { - background: @miss; - } - - img { - flex: 0; - width: 22px; - height: 22px; - margin-left: 8px; - align-self: center; - border-color: transparent; - } - - .target-inner-container { - flex: 1; - display: flex; - justify-content: center; - margin-right: @hugeMargin; - font-weight: bold; - font-size: 17px; - } - } - } - - &.hope { - background: linear-gradient(0, @hopeBackgroundEnd 40px, @hopeBackgroundStart); - } - &.fear { - background: linear-gradient(0, @fearBackgroundEnd, @fearBackgroundStart); - } - &.critical { - background: linear-gradient(0, @criticalBackgroundEnd, @criticalBackgroundStart); - } - - .dice-roll { - color: var(--color-dark-1); - - .dice-flavor { - color: var(--color-light-1); - } - } - } -} - -.daggerheart.chat { - &.downtime { - display: flex; - flex-direction: column; - align-items: center; - - .downtime-title-container { - display: flex; - flex-direction: column; - align-items: center; - - .downtime-subtitle { - font-size: 17px; - } - } - - .downtime-image { - width: 80px; - } - - .downtime-refresh-container { - margin-top: @fullMargin; - width: 100%; - - .refresh-title { - font-weight: bold; - } - } - } - - &.roll { - .dice-flavor { - text-align: center; - font-weight: bold; - } - .dice-tooltip { - .dice-rolls.duality { - display: flex; - align-items: center; - - .dice-hope-container { - display: flex; - - .roll.die:not(:last-of-type) { - margin-right: @fullMargin; - } - } - - .modifiers-container { - display: flex; - - .modifier-value:not(:last-of-type) { - margin-right: @fullMargin; - } - } - - .roll.die { - &.hope { - color: white; - -webkit-text-stroke-color: @hope; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; - &:not(.discarded) { - filter: none; - } - } - &.fear { - color: white; - -webkit-text-stroke-color: @fear; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; - &:not(.discarded) { - filter: none; - } - } - &.disadvantage { - color: white; - -webkit-text-stroke-color: @disadvantage; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; - } - &.advantage { - color: white; - -webkit-text-stroke-color: @advantage; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; - } - //V1.3 - // &.advantage { - // filter: drop-shadow(0 -4px 4px gold); - // cursor: pointer; - // } - - &.unused { - opacity: 0.3; - } - } - - .modifier-value { - text-align: center; - font-weight: bold; - font-size: 16px; - } - } - - .attack-roll-advantage-container { - text-align: end; - font-weight: bold; - } - } - .dice-total { &.duality { &.hope { @@ -493,19 +253,11 @@ .dice-result { .roll-damage-button, - .damage-button { + .damage-button, + .duality-action { margin-top: 5px; } } - - .dice-actions { - margin-top: 5px; - display: flex; - - button { - flex: 1; - } - } } &.domain-card { @@ -559,3 +311,144 @@ } } } + +.theme-colorful { + .chat-message.duality { + border-color: black; + padding: 8px 0 0 0; + .message-header { + color: var(--color-light-3); + padding: 0 8px; + } + &.hope { + background: linear-gradient(0, rgba(165, 42, 42, 0.6) 40px, rgba(0, 0, 0, 0.6)); + } + &.fear { + background: linear-gradient(0, @fearBackgroundEnd, @fearBackgroundStart); + } + &.critical { + background: linear-gradient(0, @criticalBackgroundEnd, @criticalBackgroundStart); + } + .chat-message header { + color: var(--color-light-3); + } + > * { + padding: 0 8px; + } + .message-content { + .duality-modifiers, .duality-result, .dice-title { + display: flex; + } + .duality-modifiers { + display: flex; + gap: 2px; + margin-bottom: 4px; + .duality-modifier { + padding: 2px; + border-radius: 6px; + border: 1px solid; + background: var(--color-dark-6); + font-size: 12px; + } + } + .dice-flavor { + color: var(--color-light-1); + text-shadow: 0 0 1px black; + border-bottom: 1px solid; + display: flex; + align-items: end; + justify-content: space-between; + padding: 0 8px; + margin: 0 -8px 2px; + font-weight: unset; + } + .dice-result { + .duality-modifiers { + display: flex; // Default => display: none; + gap: 2px; + margin-bottom: 4px; + .duality-modifier { + padding: 2px; + border-radius: 6px; + border: 1px solid; + background: var(--color-dark-6); + font-size: 12px; + } + } + .dice-formula, > .dice-total, .part-header { + display: none; + } + .dice-tooltip { + grid-template-rows: 1fr; + .wrapper { + .tooltip-part { + display: flex; + align-items: end; + gap: .25rem; + .dice { + .dice-rolls { + margin-bottom: 0; + li { + display: flex; + align-items: center; + justify-content: center; + position: relative; + background: unset; + line-height: unset; + font-weight: unset; + } + } + } + .duality-modifier { + display: flex; + margin-bottom: 6px; + color: var(--color-light-1); + text-shadow: 0 0 1px black; + font-size: var(--font-size-16); + } + } + } + } + .target-section { + margin: 4px 0; + border: 2px solid; + margin-top: 5px; + .dice-total { + box-shadow: unset; + border: unset; + border-radius: unset; + font-size: var(--font-size-18); + } + } + .dice-actions { + justify-content: space-between; + &.duality-alone { + justify-content: end; + margin-top: -20px; + } + > * { + display: flex; + color: var(--color-light-1); + text-shadow: 0 0 1px black; + font-weight: bold; + background: var(--color-dark-1); + padding: 4px; + border-color: black; + min-height: unset; + height: 26px; + flex: unset; + margin: 0; + } + .duality-action { + border-radius: 0 6px 0 0; + margin-left: -8px; + } + .duality-result { + border-radius: 6px 0 0 0; + margin-right: -8px; + } + } + } + } + } +} diff --git a/styles/daggerheart.css b/styles/daggerheart.css index 975d7c25..abdd8ac0 100755 --- a/styles/daggerheart.css +++ b/styles/daggerheart.css @@ -1380,225 +1380,10 @@ margin: 0; text-align: center; } -.chat-message.duality { - border-color: black; - padding: 8px 0 0 0; -} -.chat-message.duality .message-header { - color: var(--color-light-3); - padding: 0 8px; -} -.chat-message.duality .duality-data { - display: flex; - flex-direction: column; -} -.chat-message.duality .duality-data .duality-title { - color: var(--color-light-1); - text-shadow: 0 0 1px black; - border-bottom: 1px solid; - margin-bottom: 2px; - display: flex; - align-items: end; - justify-content: space-between; - padding: 0 8px; -} -.chat-message.duality .duality-data .duality-modifiers { - display: flex; - gap: 2px; - margin-bottom: 4px; - padding: 0 8px; -} -.chat-message.duality .duality-data .duality-modifiers .duality-modifier { - padding: 2px; - border-radius: 6px; - border: 1px solid; - background: var(--color-dark-6); - font-size: 12px; -} -.chat-message.duality .duality-data .duality-line { - display: flex; - align-items: end; - justify-content: space-between; - padding: 0 8px; -} -.chat-message.duality .duality-data .duality-line.simple { - padding-right: 0; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container { - display: flex; - align-items: center; - gap: 4px; - margin-bottom: 4px; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container { - display: flex; - flex-direction: column; - gap: 2px; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-title { - color: var(--color-light-1); - text-shadow: 0 0 1px black; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container { - display: flex; - align-items: center; - justify-content: center; - position: relative; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container .dice-wrapper { - height: 24px; - width: 24px; - position: relative; - display: flex; - align-items: center; - justify-content: center; - clip-path: polygon(50% 0%, 80% 10%, 100% 35%, 100% 70%, 80% 90%, 50% 100%, 20% 90%, 0% 70%, 0% 35%, 20% 10%); -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container .dice-wrapper .dice { - height: 26px; - width: 26px; - max-width: unset; - position: absolute; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container .dice-value { - position: absolute; - font-weight: bold; - font-size: 16px; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container.hope .dice-wrapper { - background: black; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container.hope .dice-wrapper .dice { - filter: brightness(0) saturate(100%) invert(79%) sepia(79%) saturate(333%) hue-rotate(352deg) brightness(102%) contrast(103%); -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container.hope .dice-value { - color: var(--color-dark-1); - text-shadow: 0 0 4px white; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container.fear .dice-wrapper { - background: white; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container.fear .dice-wrapper .dice { - filter: brightness(0) saturate(100%) invert(12%) sepia(88%) saturate(4321%) hue-rotate(221deg) brightness(92%) contrast(110%); -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .dice-container .dice-inner-container.fear .dice-value { - color: var(--color-light-1); - text-shadow: 0 0 4px black; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .advantage-container { - padding-top: 21px; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .advantage-container .dice-wrapper { - height: 24px; - width: 24px; - position: relative; - display: flex; - align-items: center; - justify-content: center; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .advantage-container .dice-wrapper .dice { - height: 26px; - width: 26px; - max-width: unset; - position: absolute; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .advantage-container .dice-wrapper .dice-value { - position: absolute; - font-weight: bold; - font-size: 16px; -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .advantage-container.advantage .dice-wrapper .dice { - filter: brightness(0) saturate(100%) invert(18%) sepia(92%) saturate(4133%) hue-rotate(96deg) brightness(104%) contrast(107%); -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .advantage-container.disadvantage .dice-wrapper .dice { - filter: brightness(0) saturate(100%) invert(9%) sepia(78%) saturate(6903%) hue-rotate(11deg) brightness(93%) contrast(117%); -} -.chat-message.duality .duality-data .duality-line .dice-outer-container .duality-modifier { - padding-top: 21px; - color: var(--color-light-1); - text-shadow: 0 0 1px black; - font-size: 16px; -} -.chat-message.duality .duality-result { - display: flex; - flex-direction: column; - align-items: end; - justify-content: center; - gap: 2px; - color: var(--color-light-1); - text-shadow: 0 0 1px black; - font-weight: bold; - background: var(--color-dark-1); - padding: 4px 4px 0 4px; - border-radius: 6px 0 0 0; -} -.chat-message.duality .duality-actions { - display: flex; - justify-content: space-between; -} -.chat-message.duality .duality-actions .duality-action { - color: var(--color-light-1); - text-shadow: 0 0 1px black; - font-weight: bold; - background: var(--color-dark-1); - padding: 4px; - border-radius: 0 6px 0 0; - border-color: black; - min-height: unset; - height: 26px; -} -.chat-message.duality .duality-actions .duality-action:hover { - background: var(--button-hover-background-color); -} -.chat-message.duality .target-section { - margin: 4px 4px; - border: 2px solid; -} -.chat-message.duality .target-section .target-container { - display: flex; - align-items: center; - transition: all 0.2s ease-in-out; -} -.chat-message.duality .target-section .target-container:hover { - filter: drop-shadow(0 0 3px gold); - border-color: gold; -} -.chat-message.duality .target-section .target-container.hit { - background: #008000; -} -.chat-message.duality .target-section .target-container.miss { - background: #ff0000; -} -.chat-message.duality .target-section .target-container img { - flex: 0; - width: 22px; - height: 22px; - margin-left: 8px; - align-self: center; - border-color: transparent; -} -.chat-message.duality .target-section .target-container .target-inner-container { - flex: 1; - display: flex; - justify-content: center; - margin-right: 32px; - font-weight: bold; - font-size: 17px; -} -.chat-message.duality.hope { - background: linear-gradient(0, rgba(165, 42, 42, 0.6) 40px, rgba(0, 0, 0, 0.6)); -} -.chat-message.duality.fear { - background: linear-gradient(0, rgba(0, 0, 255, 0.6), rgba(15, 15, 97, 0.6)); -} -.chat-message.duality.critical { - background: linear-gradient(0, rgba(128, 0, 128, 0.6), rgba(37, 8, 37, 0.6)); -} -.chat-message.duality .dice-roll { - color: var(--color-dark-1); -} -.chat-message.duality .dice-roll .dice-flavor { - color: var(--color-light-1); +.chat-message .duality-modifiers, +.chat-message .duality-result, +.chat-message .dice-title { + display: none; } .daggerheart.chat.downtime { display: flex; @@ -1628,62 +1413,79 @@ font-weight: bold; } .daggerheart.chat.roll .dice-tooltip .dice-rolls.duality { + display: flex; + gap: 0.25rem; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll { display: flex; align-items: center; + justify-content: center; + gap: 4px; + margin-bottom: 4px; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .dice-hope-container { +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container { display: flex; + flex-direction: column; + gap: 2px; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .dice-hope-container .roll.die:not(:last-of-type) { - margin-right: 8px; +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-title { + color: var(--color-light-1); + text-shadow: 0 0 1px black; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .modifiers-container { +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container { display: flex; + align-items: center; + justify-content: center; + position: relative; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .modifiers-container .modifier-value:not(:last-of-type) { - margin-right: 8px; +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.hope .dice-wrapper, +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.fear .dice-wrapper { + clip-path: polygon(50% 0%, 80% 10%, 100% 35%, 100% 70%, 80% 90%, 50% 100%, 20% 90%, 0% 70%, 0% 35%, 20% 10%); } -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.hope { - color: white; - -webkit-text-stroke-color: #ffe760; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container .dice-wrapper { + height: 24px; + width: 24px; + position: relative; + display: flex; + align-items: center; + justify-content: center; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.hope:not(.discarded) { - filter: none; +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container .dice-wrapper .dice { + height: 26px; + width: 26px; + max-width: unset; + position: absolute; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.fear { - color: white; - -webkit-text-stroke-color: #0032b1; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; -} -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.fear:not(.discarded) { - filter: none; -} -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.disadvantage { - color: white; - -webkit-text-stroke-color: #b30000; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; -} -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.advantage { - color: white; - -webkit-text-stroke-color: #008000; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; -} -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.unused { - opacity: 0.3; -} -.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .modifier-value { - text-align: center; +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container .dice-value { + position: absolute; font-weight: bold; font-size: 16px; } -.daggerheart.chat.roll .dice-tooltip .attack-roll-advantage-container { - text-align: end; - font-weight: bold; +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.hope .dice-wrapper { + background: black; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.hope .dice-wrapper .dice { + filter: brightness(0) saturate(100%) invert(79%) sepia(79%) saturate(333%) hue-rotate(352deg) brightness(102%) contrast(103%); +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.hope .dice-value { + color: var(--color-dark-1); + text-shadow: 0 0 4px white; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.fear .dice-wrapper { + background: white; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.fear .dice-wrapper .dice { + filter: brightness(0) saturate(100%) invert(12%) sepia(88%) saturate(4321%) hue-rotate(221deg) brightness(92%) contrast(110%); +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.fear .dice-value { + color: var(--color-light-1); + text-shadow: 0 0 4px black; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.advantage .dice-wrapper .dice { + filter: brightness(0) saturate(100%) invert(18%) sepia(92%) saturate(4133%) hue-rotate(96deg) brightness(104%) contrast(107%); +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls > .roll .dice-container .dice-inner-container.disadvantage .dice-wrapper .dice { + filter: brightness(0) saturate(100%) invert(9%) sepia(78%) saturate(6903%) hue-rotate(11deg) brightness(93%) contrast(117%); } .daggerheart.chat.roll .dice-total.duality.hope { border-color: #ffe760; @@ -1758,16 +1560,10 @@ flex: 1; } .daggerheart.chat.roll .dice-result .roll-damage-button, -.daggerheart.chat.roll .dice-result .damage-button { +.daggerheart.chat.roll .dice-result .damage-button, +.daggerheart.chat.roll .dice-result .duality-action { margin-top: 5px; } -.daggerheart.chat.roll .dice-actions { - margin-top: 5px; - display: flex; -} -.daggerheart.chat.roll .dice-actions button { - flex: 1; -} .daggerheart.chat.domain-card { display: flex; flex-direction: column; @@ -1810,6 +1606,140 @@ .daggerheart.chat.domain-card img { width: 80px; } +.theme-colorful .chat-message.duality { + border-color: black; + padding: 8px 0 0 0; +} +.theme-colorful .chat-message.duality .message-header { + color: var(--color-light-3); + padding: 0 8px; +} +.theme-colorful .chat-message.duality.hope { + background: linear-gradient(0, rgba(165, 42, 42, 0.6) 40px, rgba(0, 0, 0, 0.6)); +} +.theme-colorful .chat-message.duality.fear { + background: linear-gradient(0, rgba(0, 0, 255, 0.6), rgba(15, 15, 97, 0.6)); +} +.theme-colorful .chat-message.duality.critical { + background: linear-gradient(0, rgba(128, 0, 128, 0.6), rgba(37, 8, 37, 0.6)); +} +.theme-colorful .chat-message.duality .chat-message header { + color: var(--color-light-3); +} +.theme-colorful .chat-message.duality > * { + padding: 0 8px; +} +.theme-colorful .chat-message.duality .message-content .duality-modifiers, +.theme-colorful .chat-message.duality .message-content .duality-result, +.theme-colorful .chat-message.duality .message-content .dice-title { + display: flex; +} +.theme-colorful .chat-message.duality .message-content .duality-modifiers { + display: flex; + gap: 2px; + margin-bottom: 4px; +} +.theme-colorful .chat-message.duality .message-content .duality-modifiers .duality-modifier { + padding: 2px; + border-radius: 6px; + border: 1px solid; + background: var(--color-dark-6); + font-size: 12px; +} +.theme-colorful .chat-message.duality .message-content .dice-flavor { + color: var(--color-light-1); + text-shadow: 0 0 1px black; + border-bottom: 1px solid; + display: flex; + align-items: end; + justify-content: space-between; + padding: 0 8px; + margin: 0 -8px 2px; + font-weight: unset; +} +.theme-colorful .chat-message.duality .message-content .dice-result .duality-modifiers { + display: flex; + gap: 2px; + margin-bottom: 4px; +} +.theme-colorful .chat-message.duality .message-content .dice-result .duality-modifiers .duality-modifier { + padding: 2px; + border-radius: 6px; + border: 1px solid; + background: var(--color-dark-6); + font-size: 12px; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-formula, +.theme-colorful .chat-message.duality .message-content .dice-result > .dice-total, +.theme-colorful .chat-message.duality .message-content .dice-result .part-header { + display: none; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-tooltip { + grid-template-rows: 1fr; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-tooltip .wrapper .tooltip-part { + display: flex; + align-items: end; + gap: 0.25rem; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-tooltip .wrapper .tooltip-part .dice .dice-rolls { + margin-bottom: 0; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-tooltip .wrapper .tooltip-part .dice .dice-rolls li { + display: flex; + align-items: center; + justify-content: center; + position: relative; + background: unset; + line-height: unset; + font-weight: unset; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-tooltip .wrapper .tooltip-part .duality-modifier { + display: flex; + margin-bottom: 6px; + color: var(--color-light-1); + text-shadow: 0 0 1px black; + font-size: var(--font-size-16); +} +.theme-colorful .chat-message.duality .message-content .dice-result .target-section { + margin: 4px 0; + border: 2px solid; + margin-top: 5px; +} +.theme-colorful .chat-message.duality .message-content .dice-result .target-section .dice-total { + box-shadow: unset; + border: unset; + border-radius: unset; + font-size: var(--font-size-18); +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-actions { + justify-content: space-between; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-actions.duality-alone { + justify-content: end; + margin-top: -20px; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-actions > * { + display: flex; + color: var(--color-light-1); + text-shadow: 0 0 1px black; + font-weight: bold; + background: var(--color-dark-1); + padding: 4px; + border-color: black; + min-height: unset; + height: 26px; + flex: unset; + margin: 0; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-actions .duality-action { + border-radius: 0 6px 0 0; + margin-left: -8px; +} +.theme-colorful .chat-message.duality .message-content .dice-result .dice-actions .duality-result { + border-radius: 6px 0 0 0; + margin-right: -8px; +} .daggerheart.sheet.feature .editable { display: flex; flex-direction: column; diff --git a/templates/chat/attack-roll.hbs b/templates/chat/attack-roll.hbs deleted file mode 100644 index 4fd1438f..00000000 --- a/templates/chat/attack-roll.hbs +++ /dev/null @@ -1,171 +0,0 @@ -{{#if colorful}} -
-
-
-
{{localize "DAGGERHEART.Chat.AttackRoll.Title" attack=title}}
-
-
- {{#each modifiers}} -
- {{label}} -
- {{/each}} - {{#if advantageState}} -
- {{localize "DAGGERHEART.General.Advantage.Full"}} -
- {{/if}} - {{#if (eq advantageState false)}} -
- {{localize "DAGGERHEART.General.Disadvantage.Full"}} -
- {{/if}} -
-
-
-
-
{{localize "DAGGERHEART.General.Hope"}}
-
-
- -
-
{{hope.value}}
-
-
-
-
{{localize "DAGGERHEART.General.Fear"}}
-
-
- -
-
{{fear.value}}
-
-
- {{#if advantageState}} -
-
- -
{{advantage.value}}
-
-
- {{/if}} - {{#if (eq advantageState false)}} -
-
- -
{{advantage.value}}
-
-
- {{/if}} - {{#if modifierTotal.value}}
{{modifierTotal.label}}
{{/if}} -
- {{#if (not damage.value)}} -
-
{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}
-
- {{/if}} -
-
- {{#if (gt targets.length 0)}} -
- {{#each targets as |target|}} -
- -
- {{#if target.hit}}{{localize "Hit"}}{{else}}{{#if (not ../total.alternate)}}{{localize "Miss"}}{{else}}?{{/if}}{{/if}} -
-
- {{/each}} -
- {{/if}} - {{#if damage.value}} -
- -
-
{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}
-
-
- {{/if}} -
-{{else}} -
-
{{localize "DAGGERHEART.Chat.AttackRoll.Title" attack=title}}
-
-
{{roll}}
- -
-
-
-
-
- - 1{{hope.dice}} - | - 1{{fear.dice}} - - {{diceTotal}} -
-
-
    -
  1. {{hope.value}}
  2. -
  3. {{fear.value}}
  4. -
-
-
- {{#if (eq advantageState 1)}} -
-
- - 1{{advantage.dice}} - - {{advantage.value}} -
-
-
    -
  1. {{advantage.value}}
  2. -
-
-
- {{/if}} - {{#if (eq advantageState 2)}} -
-
- - 1{{advantage.dice}} - - {{advantage.value}} -
-
-
    -
  1. {{advantage.value}}
  2. -
-
-
- {{/if}} -
-
-
-
-
{{totalLabel}}
-
- {{roll.total}} -
-
- {{#if (gt targets.length 0)}} -
- {{#each targets as |target|}} -
- -
- {{#if target.hit}}{{localize "Hit"}}{{else}}{{#if (not ../total.alternate)}}{{localize "Miss"}}{{else}}?{{/if}}{{/if}} -
-
- {{/each}} -
- {{/if}} -
- -
-
-
-{{/if}} \ No newline at end of file diff --git a/templates/chat/duality-roll.hbs b/templates/chat/duality-roll.hbs index 1ae5c720..b1d59835 100644 --- a/templates/chat/duality-roll.hbs +++ b/templates/chat/duality-roll.hbs @@ -1,143 +1,140 @@ -{{#if colorful}} -
-
-
-
{{title}}
+
+
{{title}}
+
+ {{#each modifiers}} +
+ {{label}}
-
- {{#each modifiers}} -
- {{label}} -
- {{/each}} - {{#if advantageState}} -
- {{localize "DAGGERHEART.General.Advantage.Full"}} -
- {{/if}} - {{#if (eq advantageState false)}} -
- {{localize "DAGGERHEART.General.Disadvantage.Full"}} -
- {{/if}} + {{/each}} + {{#if advantageState}} +
+ {{localize "DAGGERHEART.General.Advantage.Full"}}
-
-
-
-
{{localize "DAGGERHEART.General.Hope"}}
-
-
- -
-
{{hope.value}}
-
-
-
-
{{localize "DAGGERHEART.General.Fear"}}
-
-
- -
-
{{fear.value}}
-
-
- {{#if advantageState}} -
-
- -
{{advantage.value}}
-
-
- {{/if}} - {{#if (eq advantageState false)}} -
-
- -
{{advantage.value}}
-
-
- {{/if}} - {{#if modifierTotal.value}}
{{modifierTotal.label}}
{{/if}} -
- {{#if (not damage.value)}} -
-
{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}
-
- {{/if}} -
-
- {{#if damage.value}} -
-
-
-
{{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}
-
+ {{/if}} + {{#if (eq advantageState false)}} +
+ {{localize "DAGGERHEART.General.Disadvantage.Full"}}
{{/if}}
-{{else}} -
-
{{title}}
-
-
{{roll.formula}}
-
-
-
+
+
{{roll.formula}}
+
+
+
+
+
+ + 1{{hope.dice}} + | + 1{{fear.dice}} + + {{diceTotal}} +
+
+
    +
  1. +
    +
    {{localize "DAGGERHEART.General.Hope"}}
    +
    +
    + +
    +
    {{hope.value}}
    +
    +
    +
  2. +
  3. +
    +
    {{localize "DAGGERHEART.General.Fear"}}
    +
    +
    + +
    +
    {{fear.value}}
    +
    +
    +
  4. +
+
+
+ {{#if advantageState}}
- 1{{hope.dice}} - | - 1{{fear.dice}} + 1{{advantage.dice}} - {{diceTotal}} + {{advantage.value}}
-
    -
  1. {{hope.value}}
  2. -
  3. {{fear.value}}
  4. +
      +
    1. +
      +
      +
      + +
      +
      {{advantage.value}}
      +
      +
      +
- {{#if (eq advantageState 1)}} -
-
- - 1{{advantage.dice}} - - {{advantage.value}} -
-
-
    -
  1. {{advantage.value}}
  2. -
-
-
- {{/if}} - {{#if (eq advantageState 2)}} -
-
- - 1{{advantage.dice}} - - {{advantage.value}} -
-
-
    -
  1. {{advantage.value}}
  2. -
-
-
- {{/if}} -
-
+ {{/if}} + {{#if (eq advantageState false)}} +
+
+ + 1{{advantage.dice}} + + {{advantage.value}} +
+
+
    +
  1. +
    +
    +
    + +
    +
    {{advantage.value}}
    +
    +
    +
  2. +
+
+
+ {{/if}} + {{#if modifierTotal.value}}
{{modifierTotal.label}}
{{/if}} +
-
-
{{totalLabel}}
-
- {{roll.total}} -
+
+
+
{{totalLabel}}
+
+ {{roll.total}} +
+
+ {{#if (gt targets.length 0)}} +
+ {{#each targets as |target|}} +
+ +
+ {{#if target.hit}}{{localize "Hit"}}{{else}}{{#if (not ../total.alternate)}}{{localize "Miss"}}{{else}}?{{/if}}{{/if}} +
+
+ {{/each}} +
+ {{/if}} +
+ {{#if damage.value}} + + {{/if}} +
+
{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}
-{{/if}} +