mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
Enhancement/merge duality chat tpl (#134)
* h * j * Before PR * Remove discarded class from duality roll
This commit is contained in:
parent
b7ea925276
commit
6adbb4e49b
8 changed files with 548 additions and 889 deletions
|
|
@ -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', () => {});
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
525
styles/chat.less
525
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -1,171 +0,0 @@
|
|||
{{#if colorful}}
|
||||
<div class="daggerheart chat roll" data-action="expandRoll">
|
||||
<div class="duality-data">
|
||||
<div class="duality-title">
|
||||
<div>{{localize "DAGGERHEART.Chat.AttackRoll.Title" attack=title}}</div>
|
||||
</div>
|
||||
<div class="duality-modifiers">
|
||||
{{#each modifiers}}
|
||||
<div class="duality-modifier">
|
||||
{{label}}
|
||||
</div>
|
||||
{{/each}}
|
||||
{{#if advantageState}}
|
||||
<div class="duality-modifier">
|
||||
{{localize "DAGGERHEART.General.Advantage.Full"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState false)}}
|
||||
<div class="duality-modifier">
|
||||
{{localize "DAGGERHEART.General.Disadvantage.Full"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="duality-line {{#if (not damage.value)}}simple{{/if}}">
|
||||
<div class="dice-outer-container">
|
||||
<div class="dice-container">
|
||||
<div class="dice-title">{{localize "DAGGERHEART.General.Hope"}}</div>
|
||||
<div class="dice-inner-container hope" title="{{localize "DAGGERHEART.General.Hope"}}">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d12-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{hope.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dice-container">
|
||||
<div class="dice-title">{{localize "DAGGERHEART.General.Fear"}}</div>
|
||||
<div class="dice-inner-container fear" title="{{localize "DAGGERHEART.General.Fear"}}">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d12-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{fear.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{#if advantageState}}
|
||||
<div class="advantage-container advantage">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d6-grey.svg"/>
|
||||
<div class="dice-value">{{advantage.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState false)}}
|
||||
<div class="advantage-container disadvantage">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d6-grey.svg"/>
|
||||
<div class="dice-value">{{advantage.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if modifierTotal.value}}<div class="duality-modifier">{{modifierTotal.label}}</div>{{/if}}
|
||||
</div>
|
||||
{{#if (not damage.value)}}
|
||||
<div class="duality-result">
|
||||
<div>{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{#if (gt targets.length 0)}}
|
||||
<div class="target-section">
|
||||
{{#each targets as |target|}}
|
||||
<div class="target-container {{#if target.hit}}hit{{else}}{{#if (not ../total.alternate)}}miss{{/if}}{{/if}}" data-token="{{target.id}}">
|
||||
<img src="{{target.img}}" />
|
||||
<div class="target-inner-container">
|
||||
{{#if target.hit}}{{localize "Hit"}}{{else}}{{#if (not ../total.alternate)}}{{localize "Miss"}}{{else}}?{{/if}}{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if damage.value}}
|
||||
<div class="duality-actions">
|
||||
<button class="duality-action" data-value="{{roll.total}}" data-damage="{{damage.value}}" data-damage-type="{{damage.type}}" {{#if damage.disabled}}disabled{{/if}}><span>Roll Damage</span></button>
|
||||
<div class="duality-result">
|
||||
<div>{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="dice-roll daggerheart chat roll" data-action="expandRoll">
|
||||
<div class="dice-flavor">{{localize "DAGGERHEART.Chat.AttackRoll.Title" attack=title}}</div>
|
||||
<div class="dice-result">
|
||||
<div class="dice-formula">{{roll}}</div>
|
||||
|
||||
<div class="dice-tooltip">
|
||||
<div class="wrapper">
|
||||
<section class="tooltip-part">
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{hope.dice}}</span>
|
||||
|
|
||||
<span>1{{fear.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{diceTotal}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls duality">
|
||||
<li class="roll die {{hope.dice}} {{#if hope.discarded}}discarded{{/if}} hope min" title="{{localize "DAGGERHEART.General.Hope"}}">{{hope.value}}</li>
|
||||
<li class="roll die {{fear.dice}} {{#if fear.discarded}}discarded{{/if}} fear min" title="{{localize "DAGGERHEART.General.Fear"}}">{{fear.value}}</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{#if (eq advantageState 1)}}
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{advantage.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{advantage.value}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls">
|
||||
<li class="roll die {{advantage.dice}} hope min">{{advantage.value}}</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState 2)}}
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{advantage.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{advantage.value}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls">
|
||||
<li class="roll die {{advantage.dice}} hope min">{{advantage.value}}</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dice-total duality {{#if fear.discarded}}hope{{else}}{{#if hope.discarded}}fear{{else}}critical{{/if}}{{/if}}">
|
||||
<div class="dice-total-label">{{totalLabel}}</div>
|
||||
<div class="dice-total-value">
|
||||
{{roll.total}}
|
||||
</div>
|
||||
</div>
|
||||
{{#if (gt targets.length 0)}}
|
||||
<div class="target-section">
|
||||
{{#each targets as |target|}}
|
||||
<div class="dice-total target-container {{#if target.hit}}hit{{else}}{{#if (not ../total.alternate)}}miss{{/if}}{{/if}}" data-token="{{target.id}}">
|
||||
<img src="{{target.img}}" />
|
||||
<div class="target-inner-container">
|
||||
{{#if target.hit}}{{localize "Hit"}}{{else}}{{#if (not ../total.alternate)}}{{localize "Miss"}}{{else}}?{{/if}}{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="dice-actions">
|
||||
<button class="duality-action" data-value="{{roll.total}}" data-damage="{{damage.value}}" data-damage-type="{{damage.type}}" {{#if damage.disabled}}disabled{{/if}}><span>{{localize "DAGGERHEART.Chat.AttackRoll.RollDamage"}}</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
|
@ -1,143 +1,140 @@
|
|||
{{#if colorful}}
|
||||
<div class="daggerheart chat roll" data-action="expandRoll">
|
||||
<div class="duality-data">
|
||||
<div class="duality-title">
|
||||
<div>{{title}}</div>
|
||||
<div class="dice-roll daggerheart chat roll" data-action="expandRoll">
|
||||
<div class="dice-flavor">{{title}}</div>
|
||||
<div class="duality-modifiers">
|
||||
{{#each modifiers}}
|
||||
<div class="duality-modifier">
|
||||
{{label}}
|
||||
</div>
|
||||
<div class="duality-modifiers">
|
||||
{{#each modifiers}}
|
||||
<div class="duality-modifier">
|
||||
{{label}}
|
||||
</div>
|
||||
{{/each}}
|
||||
{{#if advantageState}}
|
||||
<div class="duality-modifier">
|
||||
{{localize "DAGGERHEART.General.Advantage.Full"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState false)}}
|
||||
<div class="duality-modifier">
|
||||
{{localize "DAGGERHEART.General.Disadvantage.Full"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
{{#if advantageState}}
|
||||
<div class="duality-modifier">
|
||||
{{localize "DAGGERHEART.General.Advantage.Full"}}
|
||||
</div>
|
||||
<div class="duality-line {{#if (not damage.value)}}simple{{/if}}">
|
||||
<div class="dice-outer-container">
|
||||
<div class="dice-container">
|
||||
<div class="dice-title">{{localize "DAGGERHEART.General.Hope"}}</div>
|
||||
<div class="dice-inner-container hope" title="{{localize "DAGGERHEART.General.Hope"}}">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d12-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{hope.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dice-container">
|
||||
<div class="dice-title">{{localize "DAGGERHEART.General.Fear"}}</div>
|
||||
<div class="dice-inner-container fear" title="{{localize "DAGGERHEART.General.Fear"}}">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d12-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{fear.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{#if advantageState}}
|
||||
<div class="advantage-container advantage">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d6-grey.svg"/>
|
||||
<div class="dice-value">{{advantage.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState false)}}
|
||||
<div class="advantage-container disadvantage">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d6-grey.svg"/>
|
||||
<div class="dice-value">{{advantage.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if modifierTotal.value}}<div class="duality-modifier">{{modifierTotal.label}}</div>{{/if}}
|
||||
</div>
|
||||
{{#if (not damage.value)}}
|
||||
<div class="duality-result">
|
||||
<div>{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{#if damage.value}}
|
||||
<div class="duality-actions">
|
||||
<div></div>
|
||||
<div class="duality-result">
|
||||
<div>{{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState false)}}
|
||||
<div class="duality-modifier">
|
||||
{{localize "DAGGERHEART.General.Disadvantage.Full"}}
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="dice-roll daggerheart chat roll" data-action="expandRoll">
|
||||
<div class="dice-flavor">{{title}}</div>
|
||||
<div class="dice-result">
|
||||
<div class="dice-formula">{{roll.formula}}</div>
|
||||
<div class="dice-tooltip">
|
||||
<div class="wrapper">
|
||||
<section class="tooltip-part">
|
||||
<div class="dice-result">
|
||||
<div class="dice-formula">{{roll.formula}}</div>
|
||||
<div class="dice-tooltip">
|
||||
<div class="wrapper">
|
||||
<section class="tooltip-part">
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{hope.dice}}</span>
|
||||
|
|
||||
<span>1{{fear.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{diceTotal}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls duality">
|
||||
<li class="roll die {{hope.dice}}" title="{{localize "DAGGERHEART.General.Hope"}}">
|
||||
<div class="dice-container">
|
||||
<div class="dice-title">{{localize "DAGGERHEART.General.Hope"}}</div>
|
||||
<div class="dice-inner-container hope" title="{{localize "DAGGERHEART.General.Hope"}}">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d12-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{hope.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="roll die {{fear.dice}}" title="{{localize "DAGGERHEART.General.Fear"}}">
|
||||
<div class="dice-container">
|
||||
<div class="dice-title">{{localize "DAGGERHEART.General.Fear"}}</div>
|
||||
<div class="dice-inner-container fear" title="{{localize "DAGGERHEART.General.Fear"}}">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d12-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{fear.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{#if advantageState}}
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{hope.dice}}</span>
|
||||
|
|
||||
<span>1{{fear.dice}}</span>
|
||||
<span>1{{advantage.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{diceTotal}}</span>
|
||||
<span class="part-total">{{advantage.value}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls duality">
|
||||
<li class="roll die {{hope.dice}} {{#if hope.discarded}}discarded{{/if}} hope min" title="{{localize "DAGGERHEART.General.Hope"}}">{{hope.value}}</li>
|
||||
<li class="roll die {{fear.dice}} {{#if fear.discarded}}discarded{{/if}} fear min" title="{{localize "DAGGERHEART.General.Fear"}}">{{fear.value}}</li>
|
||||
<ol class="dice-rolls">
|
||||
<li class="roll die {{advantage.dice}}">
|
||||
<div class="dice-container">
|
||||
<div class="dice-inner-container advantage">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d6-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{advantage.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{#if (eq advantageState 1)}}
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{advantage.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{advantage.value}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls">
|
||||
<li class="roll die {{advantage.dice}} hope min">{{advantage.value}}</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState 2)}}
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{advantage.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{advantage.value}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls">
|
||||
<li class="roll die {{advantage.dice}} hope min">{{advantage.value}}</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if (eq advantageState false)}}
|
||||
<div class="dice">
|
||||
<header class="part-header flexrow">
|
||||
<span class="part-formula">
|
||||
<span>1{{advantage.dice}}</span>
|
||||
</span>
|
||||
<span class="part-total">{{advantage.value}}</span>
|
||||
</header>
|
||||
<div class="flexrow">
|
||||
<ol class="dice-rolls">
|
||||
<li class="roll die {{advantage.dice}}">
|
||||
<div class="dice-container">
|
||||
<div class="dice-inner-container disadvantage">
|
||||
<div class="dice-wrapper">
|
||||
<img class="dice" src="../icons/svg/d6-grey.svg"/>
|
||||
</div>
|
||||
<div class="dice-value">{{advantage.value}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{#if modifierTotal.value}}<div class="duality-modifier">{{modifierTotal.label}}</div>{{/if}}
|
||||
</section>
|
||||
</div>
|
||||
<div class="dice-total duality {{#if fear.discarded}}hope{{else}}{{#if hope.discarded}}fear{{else}}critical{{/if}}{{/if}}">
|
||||
<div class="dice-total-label">{{totalLabel}}</div>
|
||||
<div class="dice-total-value">
|
||||
{{roll.total}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="dice-total duality {{#if fear.discarded}}hope{{else}}{{#if hope.discarded}}fear{{else}}critical{{/if}}{{/if}}">
|
||||
<div class="dice-total-label">{{totalLabel}}</div>
|
||||
<div class="dice-total-value">
|
||||
{{roll.total}}
|
||||
</div>
|
||||
</div>
|
||||
{{#if (gt targets.length 0)}}
|
||||
<div class="target-section">
|
||||
{{#each targets as |target|}}
|
||||
<div class="dice-total target-container {{#if target.hit}}hit{{else}}{{#if (not ../total.alternate)}}miss{{/if}}{{/if}}" data-token="{{target.id}}">
|
||||
<img src="{{target.img}}" />
|
||||
<div class="target-inner-container">
|
||||
{{#if target.hit}}{{localize "Hit"}}{{else}}{{#if (not ../total.alternate)}}{{localize "Miss"}}{{else}}?{{/if}}{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="dice-actions{{#unless damage.value}} duality-alone{{/unless}}">
|
||||
{{#if damage.value}}
|
||||
<button class="duality-action" data-value="{{roll.total}}" data-damage="{{damage.value}}" data-damage-type="{{damage.type}}" {{#if damage.disabled}}disabled{{/if}}><span>{{localize "DAGGERHEART.Chat.AttackRoll.RollDamage"}}</span></button>
|
||||
{{/if}}
|
||||
<div class="duality-result">
|
||||
<div>{{roll.total}} {{#if (eq dualityResult 1)}}With Hope{{else}}{{#if (eq dualityResult 2)}}With Fear{{else}}Critical Success{{/if}}{{/if}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue