284 - Armor/Weapon Feature Improvements (#292)

* Added parsing of effect values from Item data model. Almost finished with itemConfig.

* Added the last to itemConfig

* Fixed armor

* ContextMenu localization fixes

* Better tooltips for tagify

* Corrected resource logic
This commit is contained in:
WBHarry 2025-07-09 13:06:49 +02:00 committed by GitHub
parent eae4f12910
commit b3e7c6b9b2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
51 changed files with 3043 additions and 2310 deletions

View file

@ -1,33 +1,33 @@
.chat-message {
.duality-modifiers,
.duality-result,
.dice-title {
display: none;
}
}
fieldset.daggerheart.chat {
padding: 0;
border-left-width: 0;
border-right-width: 0;
border-bottom-width: 0;
legend {
display: flex;
align-items: center;
gap: 5px;
&:before,
&:after {
content: '\f0d8';
font-family: 'Font Awesome 6 Pro';
}
}
&.expanded {
legend:before,
legend:after {
content: '\f0d7';
}
}
.daggerheart.chat {
margin-top: 5px;
}
}
.chat-message {
.duality-modifiers,
.duality-result,
.dice-title {
display: none;
}
}
fieldset.daggerheart.chat {
padding: 0;
border-left-width: 0;
border-right-width: 0;
border-bottom-width: 0;
legend {
display: flex;
align-items: center;
gap: 5px;
&:before,
&:after {
content: '\f0d8';
font-family: 'Font Awesome 6 Pro';
}
}
&.expanded {
legend:before,
legend:after {
content: '\f0d7';
}
}
.daggerheart.chat {
margin-top: 5px;
}
}

View file

@ -1,193 +1,193 @@
@import '../../utils/colors.less';
@import '../../utils/spacing.less';
.theme-colorful {
.chat-message.duality {
border-color: black;
padding: 8px 0 0 0;
fieldset.daggerheart.chat {
border-top-width: 0;
display: contents;
legend {
&:before,
&:after {
display: none;
}
}
}
.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: 0.25rem;
.dice {
.dice-rolls {
margin-bottom: 0;
&.duality {
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-selection {
label {
color: var(--color-light-1);
}
}
.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-action-effect {
border-top-left-radius: 6px;
margin-left: initial;
}
}
.duality-result {
border-radius: 6px 0 0 0;
margin-right: -8px;
}
}
.duality-result {
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;
margin-left: auto;
align-self: center;
border-radius: 6px;
}
}
}
button {
&.inner-button {
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
border-color: black;
}
}
}
}
@import '../../utils/colors.less';
@import '../../utils/spacing.less';
.theme-colorful {
.chat-message.duality {
border-color: black;
padding: 8px 0 0 0;
fieldset.daggerheart.chat {
border-top-width: 0;
display: contents;
legend {
&:before,
&:after {
display: none;
}
}
}
.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: 0.25rem;
.dice {
.dice-rolls {
margin-bottom: 0;
&.duality {
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-selection {
label {
color: var(--color-light-1);
}
}
.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-action-effect {
border-top-left-radius: 6px;
margin-left: initial;
}
}
.duality-result {
border-radius: 6px 0 0 0;
margin-right: -8px;
}
}
.duality-result {
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;
margin-left: auto;
align-self: center;
border-radius: 6px;
}
}
}
button {
&.inner-button {
color: var(--color-light-1);
text-shadow: 0 0 1px black;
font-weight: bold;
background: var(--color-dark-1);
border-color: black;
}
}
}
}

View file

@ -1,6 +1,6 @@
.combat-sidebar {
h4 {
margin: 0;
text-align: center;
}
}
.combat-sidebar {
h4 {
margin: 0;
text-align: center;
}
}

View file

@ -1,5 +1,5 @@
.combat-sidebar {
.combatant-controls {
flex: 0;
}
}
.combat-sidebar {
.combatant-controls {
flex: 0;
}
}

View file

@ -1,48 +1,48 @@
.combat-sidebar {
.encounter-controls.combat {
justify-content: space-between;
.encounter-fear-controls {
display: flex;
align-items: center;
gap: 8px;
.encounter-fear-dice-container {
display: flex;
gap: 2px;
.encounter-control-fear-container {
display: flex;
position: relative;
align-items: center;
justify-content: center;
color: black;
.dice {
height: 22px;
width: 22px;
}
.encounter-control-fear {
position: absolute;
font-size: 16px;
}
.encounter-control-counter {
position: absolute;
right: -10px;
color: var(--color-text-secondary);
}
}
}
.encounter-countdowns {
color: var(--content-link-icon-color);
}
}
.control-buttons {
width: min-content;
}
}
}
.combat-sidebar {
.encounter-controls.combat {
justify-content: space-between;
.encounter-fear-controls {
display: flex;
align-items: center;
gap: 8px;
.encounter-fear-dice-container {
display: flex;
gap: 2px;
.encounter-control-fear-container {
display: flex;
position: relative;
align-items: center;
justify-content: center;
color: black;
.dice {
height: 22px;
width: 22px;
}
.encounter-control-fear {
position: absolute;
font-size: 16px;
}
.encounter-control-counter {
position: absolute;
right: -10px;
color: var(--color-text-secondary);
}
}
}
.encounter-countdowns {
color: var(--content-link-icon-color);
}
}
.control-buttons {
width: min-content;
}
}
}

View file

@ -1,19 +1,19 @@
.combat-sidebar {
.spotlight-control {
font-size: 26px;
&:focus {
outline: none;
box-shadow: none;
}
&.discrete:hover {
background: inherit;
}
&.requesting {
filter: drop-shadow(0 0 3px gold);
color: var(--button-hover-text-color);
}
}
}
.combat-sidebar {
.spotlight-control {
font-size: 26px;
&:focus {
outline: none;
box-shadow: none;
}
&.discrete:hover {
background: inherit;
}
&.requesting {
filter: drop-shadow(0 0 3px gold);
color: var(--button-hover-text-color);
}
}
}

View file

@ -1,48 +1,48 @@
.combat-sidebar {
.token-actions {
align-self: stretch;
display: flex;
align-items: top;
justify-content: center;
gap: 16px;
.action-tokens {
display: flex;
gap: 4px;
.action-token {
height: 22px;
width: 22px;
border: 1px solid;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
padding: 8px;
--button-size: 0;
&.used {
opacity: 0.5;
background: transparent;
}
}
}
button {
font-size: 22px;
height: 24px;
width: 24px;
&.main {
background: var(--button-hover-background-color);
color: var(--button-hover-text-color);
border-color: var(--button-hover-border-color);
&:hover {
filter: drop-shadow(0 0 3px var(--button-hover-text-color));
}
}
}
}
}
.combat-sidebar {
.token-actions {
align-self: stretch;
display: flex;
align-items: top;
justify-content: center;
gap: 16px;
.action-tokens {
display: flex;
gap: 4px;
.action-token {
height: 22px;
width: 22px;
border: 1px solid;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
padding: 8px;
--button-size: 0;
&.used {
opacity: 0.5;
background: transparent;
}
}
}
button {
font-size: 22px;
height: 24px;
width: 24px;
&.main {
background: var(--button-hover-background-color);
color: var(--button-hover-text-color);
border-color: var(--button-hover-border-color);
&:hover {
filter: drop-shadow(0 0 3px var(--button-hover-text-color));
}
}
}
}
}

View file

@ -1,88 +1,88 @@
@import '../../utils/colors.less';
@import '../../utils/fonts.less';
@import '../../utils/mixin.less';
.appTheme({}, {
&.countdown {
.minimized-view .mini-countdown-container {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
});
.daggerheart.dh-style.countdown {
overflow: hidden;
.window-content {
> div {
height: 100%;
.expanded-view {
height: 100%;
display: flex;
flex-direction: column;
.countdowns-menu {
display: flex;
gap: 8px;
.flex {
flex: 1;
}
}
.countdowns-container {
display: flex;
gap: 8px;
flex-wrap: wrap;
overflow: auto;
max-height: 100%;
.countdown-fieldset {
width: 340px;
height: min-content;
position: relative;
.ownership-button {
position: absolute;
top: 8px;
right: 8px;
font-size: 18px;
}
.countdown-container {
display: flex;
align-items: center;
gap: 16px;
img {
width: 150px;
height: 150px;
cursor: pointer;
&.disabled {
cursor: initial;
}
}
.countdown-inner-container {
display: flex;
flex-direction: column;
gap: 4px;
.countdown-value-container {
display: flex;
gap: 4px;
input {
max-width: 80px;
}
}
}
}
}
}
}
}
}
}
@import '../../utils/colors.less';
@import '../../utils/fonts.less';
@import '../../utils/mixin.less';
.appTheme({}, {
&.countdown {
.minimized-view .mini-countdown-container {
background-image: url('../assets/parchments/dh-parchment-dark.png');
}
}
});
.daggerheart.dh-style.countdown {
overflow: hidden;
.window-content {
> div {
height: 100%;
.expanded-view {
height: 100%;
display: flex;
flex-direction: column;
.countdowns-menu {
display: flex;
gap: 8px;
.flex {
flex: 1;
}
}
.countdowns-container {
display: flex;
gap: 8px;
flex-wrap: wrap;
overflow: auto;
max-height: 100%;
.countdown-fieldset {
width: 340px;
height: min-content;
position: relative;
.ownership-button {
position: absolute;
top: 8px;
right: 8px;
font-size: 18px;
}
.countdown-container {
display: flex;
align-items: center;
gap: 16px;
img {
width: 150px;
height: 150px;
cursor: pointer;
&.disabled {
cursor: initial;
}
}
.countdown-inner-container {
display: flex;
flex-direction: column;
gap: 4px;
.countdown-value-container {
display: flex;
gap: 4px;
input {
max-width: 80px;
}
}
}
}
}
}
}
}
}
}

View file

@ -1,18 +1,18 @@
@import './chat/chat.less';
@import './chat/sheet.less';
@import './chat/theme-colorful.less';
@import './combat-sidebar/combat-sidebar.less';
@import './combat-sidebar/combatant-controls.less';
@import './combat-sidebar/encounter-controls.less';
@import './combat-sidebar/spotlight-control.less';
@import './combat-sidebar/token-actions.less';
@import './countdown/countdown.less';
@import './countdown/sheet.less';
@import './ownership-selection/ownership-selection.less';
@import './resources/resources.less';
@import './settings/settings.less';
@import './chat/chat.less';
@import './chat/sheet.less';
@import './chat/theme-colorful.less';
@import './combat-sidebar/combat-sidebar.less';
@import './combat-sidebar/combatant-controls.less';
@import './combat-sidebar/encounter-controls.less';
@import './combat-sidebar/spotlight-control.less';
@import './combat-sidebar/token-actions.less';
@import './countdown/countdown.less';
@import './countdown/sheet.less';
@import './ownership-selection/ownership-selection.less';
@import './resources/resources.less';
@import './settings/settings.less';