daggerheart/styles/less/sheets/actors/character/header.less
Chris Ryan 9d75157e17
[Feature] Death moves and Fate rolls (#1463)
* Update the death move descriptions

* Renamed to DhDeathMove

* Partial Fate Roll creation and Fate Roll Enricher (/fr)

* Hide stuff not required for fate roll

* Hide formula display; code removal; start to add Fear die as a choice for Fate roll

* Fix chat message display; start moving towards supporting Hope and Fear for Fate roll

* /fr now supports type=X, where X is Hope or Fear, if not supplied, defaults to Hope

* Fixed DSN rolling; removed console messages; chat message clean up

* Add localisation entry

* Trying to sort out the button for the fate roll

* Style the fate message based on Hope/Fear colors.

* Partial improvement on the fate template buttons - chat display is correct, but the roll dialog is wrong

* Fixed enricher button; localization fixes; debug cleanup

* Error checking for the fate type parsing in all potential problem locations

* Added localization for the fate type parsing error

* Start on Avoid Death death move

* debug stuff

* More death moves setup/testing

* Avoid fate scars update in place, with scars migrating to an integer value.

* Remove some debug code; add Blaze Of Glory shell

* Start on Guaranteed Critical for Blaze of Glory

* Partial implementation of Blaze of Glory

* Dice/critical checks/tests

* Moved detection of guaranteed critical to before the roll dialog is created, so it can be skipped; removed debug code

* Remove debug

* Update Blaze of Glory effect description

* Risk It All - critical roll - clear all stress and HP

* Auto remove all marked stress and HP for Risk It All, if Hope value rolled covers it.

* Display the Death Move description in chat expanded if the appropriate config setting is on

* Made the Blaze of Glory ActiveEffect image use configured version

* Update the current Hope value if the scar value change affects it

* Scars management in the Character details editor

* Separate less file for the Death Moves instead of reusing Downtime

* Added result messages to the Death Move chat output and removed debug statements

* Some localization, style and smaller changes

* Fixed RiskItAll resource handling method

* Risk It All success chat message start

* [Add] Hope/Scar Interplay (#1531)

* Migrated character.maxHope to homebrew settings

* Added a visual for scars

* .

* .

* Pass the hope value in the button data; skeleton risk it all dialog to fill out.

* Start on risk it dialog

* More dialog stuff

* Remove non-existent field

* Dialog templating and logic

* .

* Ensure effect is Applied to Actor (#1547)

Co-authored-by: Chris Ryan <chrisr@blackhole>

* [Fix] 1548 - Standalone Item Add Actions (#1549)

* Fixed so that items not on an actor don't error out on creating actions

* Fixed deletion of items error

* Raised version

* Fix the sliders to do the correct maximums

* Pass the actor id through the button; fix /dr and /fr flavor text

* Remove debug message

---------

Co-authored-by: Chris Ryan <chrisr@blackhole>
Co-authored-by: WBHarry <williambjrklund@gmail.com>
Co-authored-by: WBHarry <89362246+WBHarry@users.noreply.github.com>
2026-01-17 15:11:50 +01:00

244 lines
6.8 KiB
Text

@import '../../../utils/colors.less';
@import '../../../utils/fonts.less';
@import '../../../utils/mixin.less';
// Theme header backgrounds
.appTheme({
.character-header-sheet {
.trait {
background: url(../assets/svg/trait-shield.svg) no-repeat;
}
.character-row .domains-section img {
filter: @golden-filter;
}
}
}, {
.character-header-sheet {
.trait {
background: url('../assets/svg/trait-shield-light.svg') no-repeat;
}
.character-row .domains-section img {
filter: brightness(0) saturate(100%);
}
}
});
.application.sheet.daggerheart.actor.dh-style.character {
.character-header-sheet {
padding: 0 15px;
padding-top: var(--header-height);
width: 100%;
.name-row {
display: flex;
gap: 5px;
align-items: start;
justify-content: space-between;
padding: 0;
padding-top: 5px;
flex: 1;
h1 {
display: flex;
flex: 1;
padding: 6px 0 0 0;
font-size: var(--font-size-32);
text-align: start;
border: 1px solid transparent;
outline: 2px solid transparent;
transition: all 0.3s ease;
word-break: break-word;
&:hover {
outline: 2px solid light-dark(@dark, @golden);
}
}
.level-div {
white-space: nowrap;
display: flex;
justify-content: end;
height: var(--font-size-32);
margin-top: 6px;
.label {
display: flex;
align-items: center;
gap: 4px;
}
input {
width: 40px;
padding: 0;
text-align: center;
}
.level-button {
color: light-dark(@dark, @beige);
font-size: var(--font-size-18);
line-height: 1;
min-height: unset;
height: min-content;
padding: 4px;
font-family: 'Cinzel', serif;
margin: 0;
font-weight: normal;
border-color: light-dark(@dark-blue, @golden);
background-color: light-dark(transparent, @deep-black);
&:hover {
background-image: none;
background-color: var(--color-warm-2);
filter: drop-shadow(0 0 3px lightgray);
}
}
}
}
.character-details {
display: flex;
justify-content: space-between;
padding: 5px 0;
margin-bottom: 10px;
font-size: var(--font-size-12);
color: light-dark(@dark-blue, @golden);
.missing-header-feature {
opacity: 0.5;
text-decoration: line-through;
}
span {
padding: 3px;
border-radius: 3px;
transition: all 0.3s ease;
cursor: pointer;
&:hover {
background: light-dark(@dark-blue-40, @golden-40);
}
&.dot {
background: transparent;
cursor: default;
}
}
}
.character-row {
display: flex;
align-items: center;
padding: 0;
margin-bottom: 15px;
.hope-section {
margin-right: 20px;
}
.downtime-section {
display: flex;
align-items: center;
gap: 2px;
margin-left: auto;
button {
flex: 1;
padding: 0 0.375rem;
}
button[data-action='viewParty'] {
margin-right: 6px;
}
}
.hope-section,
.domains-section {
position: relative;
display: flex;
gap: 10px;
background-color: light-dark(transparent, @dark-blue);
color: light-dark(@dark-blue, @golden);
padding: 5px 10px;
border: 1px solid light-dark(@dark-blue, @golden);
border-radius: 6px;
align-items: center;
width: fit-content;
height: 30px;
h4 {
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
}
.domain {
display: flex;
align-items: center;
gap: 5px;
.label {
font-size: var(--font-size-14);
font-weight: bold;
text-transform: uppercase;
color: light-dark(@dark-blue, @golden);
}
img {
height: 20px;
width: 20px;
}
}
.hope-value {
display: flex;
cursor: pointer;
&.scar {
cursor: initial;
opacity: 0.6;
}
}
}
}
.character-traits {
display: flex;
justify-content: space-between;
padding: 0;
margin-bottom: 15px;
.trait {
height: 60px;
width: 60px;
cursor: pointer;
.trait-name {
display: flex;
align-items: center;
padding-top: 5px;
color: light-dark(@dark-blue, @golden);
font-size: var(--font-size-14);
font-weight: 600;
align-items: center;
justify-content: center;
gap: 3px;
i {
line-height: 17px;
font-size: var(--font-size-10);
}
}
.trait-value {
font-style: normal;
font-weight: 400;
font-size: var(--font-size-20);
text-align: center;
}
}
}
}
}