diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 4ffcc64d..553a1a17 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -37,7 +37,6 @@ jobs:
url: https://github.com/${{github.repository}}
manifest: https://raw.githubusercontent.com/${{github.repository}}/v14/system.json
download: https://github.com/${{github.repository}}/releases/download/${{github.event.release.tag_name}}/system.zip
- flags.hotReload: false
# Create a zip file with all files required by the module to add to the release
- run: zip -r ./system.zip system.json README.md LICENSE build/daggerheart.js build/tagify.css styles/daggerheart.css assets/ templates/ packs/ lang/
diff --git a/lang/en.json b/lang/en.json
index 0a9448c4..20c66a32 100755
--- a/lang/en.json
+++ b/lang/en.json
@@ -406,11 +406,7 @@
"giveSpotlight": "Give The Spotlight",
"requestingSpotlight": "Requesting The Spotlight",
"requestSpotlight": "Request The Spotlight",
- "openCountdowns": "Countdowns",
- "adversaryCategories": {
- "friendly": "Friendly",
- "adversaries": "Adversaries"
- }
+ "openCountdowns": "Countdowns"
},
"CompendiumBrowserSettings": {
"title": "Enable Compendiums",
diff --git a/module/applications/dialogs/tagTeamDialog.mjs b/module/applications/dialogs/tagTeamDialog.mjs
index ba76831f..e06cbe48 100644
--- a/module/applications/dialogs/tagTeamDialog.mjs
+++ b/module/applications/dialogs/tagTeamDialog.mjs
@@ -38,9 +38,6 @@ export default class TagTeamDialog extends HandlebarsApplicationMixin(Applicatio
tag: 'form',
classes: ['daggerheart', 'views', 'dh-style', 'dialog', 'tag-team-dialog'],
position: { width: 550, height: 'auto' },
- window: {
- icon: 'fa-solid fa-user-group'
- },
actions: {
toggleSelectMember: TagTeamDialog.#toggleSelectMember,
startTagTeamRoll: TagTeamDialog.#startTagTeamRoll,
diff --git a/module/applications/levelup/characterLevelup.mjs b/module/applications/levelup/characterLevelup.mjs
index e8d6cf1c..f7ef2ffa 100644
--- a/module/applications/levelup/characterLevelup.mjs
+++ b/module/applications/levelup/characterLevelup.mjs
@@ -156,7 +156,6 @@ export default class DhCharacterLevelUp extends LevelUpBase {
if (multiclasses?.[0]) {
const data = multiclasses[0];
const multiclass = data.data.length > 0 ? await foundry.utils.fromUuid(data.data[0]) : {};
- const subclasses = (await multiclass?.system?.fetchSubclasses()) ?? [];
context.multiclass = {
...data,
@@ -176,12 +175,13 @@ export default class DhCharacterLevelUp extends LevelUpBase {
alreadySelected
};
}) ?? [],
- subclasses: subclasses.map(subclass => ({
- ...subclass,
- uuid: subclass.uuid,
- selected: data.secondaryData.subclass === subclass.uuid,
- disabled: data.secondaryData.subclass && data.secondaryData.subclass !== subclass.uuid
- })),
+ subclasses:
+ multiclass?.system?.subclasses.map(subclass => ({
+ ...subclass,
+ uuid: subclass.uuid,
+ selected: data.secondaryData.subclass === subclass.uuid,
+ disabled: data.secondaryData.subclass && data.secondaryData.subclass !== subclass.uuid
+ })) ?? [],
compendium: 'classes',
limit: 1
};
diff --git a/module/applications/sheets/actors/party.mjs b/module/applications/sheets/actors/party.mjs
index c703ad85..403960c0 100644
--- a/module/applications/sheets/actors/party.mjs
+++ b/module/applications/sheets/actors/party.mjs
@@ -44,10 +44,7 @@ export default class Party extends DHBaseActorSheet {
static PARTS = {
header: { template: 'systems/daggerheart/templates/sheets/actors/party/header.hbs' },
tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' },
- partyMembers: {
- template: 'systems/daggerheart/templates/sheets/actors/party/party-members.hbs',
- scrollable: ['']
- },
+ partyMembers: { template: 'systems/daggerheart/templates/sheets/actors/party/party-members.hbs' },
/* NOT YET IMPLEMENTED */
// projects: {
// template: 'systems/daggerheart/templates/sheets/actors/party/projects.hbs',
diff --git a/module/applications/ui/combatTracker.mjs b/module/applications/ui/combatTracker.mjs
index 0989bcb8..fb19a17e 100644
--- a/module/applications/ui/combatTracker.mjs
+++ b/module/applications/ui/combatTracker.mjs
@@ -56,9 +56,7 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C
async _prepareTrackerContext(context, options) {
await super._prepareTrackerContext(context, options);
- const npcs = context.turns?.filter(x => x.isNPC) ?? [];
- const adversaries = npcs.filter(x => x.disposition !== CONST.TOKEN_DISPOSITIONS.FRIENDLY);
- const friendlies = npcs.filter(x => x.disposition === CONST.TOKEN_DISPOSITIONS.FRIENDLY);
+ const adversaries = context.turns?.filter(x => x.isNPC) ?? [];
const characters = context.turns?.filter(x => !x.isNPC) ?? [];
const spotlightQueueEnabled = game.settings.get(
CONFIG.DH.id,
@@ -77,7 +75,6 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C
Object.assign(context, {
actionTokens: game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules).actionTokens,
adversaries,
- friendlies,
allCharacters: characters,
characters: characters.filter(x => !spotlightQueueEnabled || x.system.spotlight.requestOrderIndex == 0),
spotlightRequests
@@ -132,8 +129,7 @@ export default class DhCombatTracker extends foundry.applications.sidebar.tabs.C
active: index === combat.turn,
canPing: combatant.sceneId === canvas.scene?.id && game.user.hasPermission('PING_CANVAS'),
type: combatant.actor?.system?.type,
- img: await this._getCombatantThumbnail(combatant),
- disposition: combatant.token.disposition
+ img: await this._getCombatantThumbnail(combatant)
};
turn.css = [turn.active ? 'active' : null, hidden ? 'hide' : null, isDefeated ? 'defeated' : null].filterJoin(
diff --git a/module/applications/ui/countdowns.mjs b/module/applications/ui/countdowns.mjs
index 76e2b399..052564cc 100644
--- a/module/applications/ui/countdowns.mjs
+++ b/module/applications/ui/countdowns.mjs
@@ -21,10 +21,10 @@ export default class DhCountdowns extends HandlebarsApplicationMixin(Application
static DEFAULT_OPTIONS = {
id: 'countdowns',
tag: 'div',
- classes: ['daggerheart', 'dh-style', 'countdowns'],
+ classes: ['daggerheart', 'dh-style', 'countdowns', 'faded-ui'],
window: {
icon: 'fa-solid fa-clock-rotate-left',
- frame: false,
+ frame: true,
title: 'DAGGERHEART.UI.Countdowns.title',
positioned: false,
resizable: false,
@@ -62,6 +62,20 @@ export default class DhCountdowns extends HandlebarsApplicationMixin(Application
if (iconOnly) frame.classList.add('icon-only');
else frame.classList.remove('icon-only');
+ const header = frame.querySelector('.window-header');
+ header.querySelector('button[data-action="close"]').remove();
+ header.querySelector('button[data-action="toggleControls"]').remove();
+
+ if (game.user.isGM) {
+ const editTooltip = game.i18n.localize('DAGGERHEART.APPLICATIONS.CountdownEdit.editTitle');
+ const editButton = ``;
+ header.insertAdjacentHTML('beforeEnd', editButton);
+ }
+
+ const minimizeTooltip = game.i18n.localize('DAGGERHEART.UI.Countdowns.toggleIconMode');
+ const minimizeButton = ``;
+ header.insertAdjacentHTML('beforeEnd', minimizeButton);
+
return frame;
}
diff --git a/module/applications/ui/itemBrowser.mjs b/module/applications/ui/itemBrowser.mjs
index d98cf2da..99b9a23d 100644
--- a/module/applications/ui/itemBrowser.mjs
+++ b/module/applications/ui/itemBrowser.mjs
@@ -109,8 +109,8 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) {
CONFIG.DH.id,
CONFIG.DH.FLAGS[`${this.compendiumBrowserTypeKey}`].position
);
+
options.position = userPresetPosition ?? ItemBrowser.DEFAULT_OPTIONS.position;
- delete options.position.zIndex;
if (!userPresetPosition) {
const width = noFolder === true || lite === true ? 600 : 850;
diff --git a/module/canvas/placeables/token.mjs b/module/canvas/placeables/token.mjs
index 68e325c2..77c178d6 100644
--- a/module/canvas/placeables/token.mjs
+++ b/module/canvas/placeables/token.mjs
@@ -249,6 +249,9 @@ export default class DhTokenPlaceable extends foundry.canvas.placeables.Token {
/** @inheritDoc */
_drawBar(number, bar, data) {
+ const val = Number(data.value);
+ const pct = Math.clamp(val, 0, data.max) / data.max;
+
// Determine sizing
const { width, height } = this.document.getSize();
const s = canvas.dimensions.uiScale;
@@ -256,19 +259,17 @@ export default class DhTokenPlaceable extends foundry.canvas.placeables.Token {
const bh = 8 * (this.document.height >= 2 ? 1.5 : 1) * s;
// Determine the color to use
- const Color = foundry.utils.Color;
- const fillColor = number === 0 ? Color.fromRGB([1, 0, 0]) : Color.fromString('#0032b1');
- const emptyColor = Color.fromRGB([0, 0, 0]);
+ const fillColor =
+ number === 0 ? foundry.utils.Color.fromRGB([1, 0, 0]) : foundry.utils.Color.fromString('#0032b1');
- // Draw the bar (accounting floating point numbers from bar animations)
- const widthUnit = bw / Math.ceil(data.max);
+ // Draw the bar
+ const widthUnit = bw / data.max;
bar.clear().lineStyle(s, 0x000000, 1.0);
- const sections = [...Array(Math.ceil(data.max)).keys()];
- for (const mark of sections) {
+ const sections = [...Array(data.max).keys()];
+ for (let mark of sections) {
const x = mark * widthUnit;
- const marked = mark < Math.ceil(data.value);
- const remainder = mark === Math.ceil(data.value) - 1 ? data.value % 1 : 0;
- const color = !marked ? emptyColor : remainder ? emptyColor.mix(fillColor, remainder) : fillColor;
+ const marked = mark + 1 <= data.value;
+ const color = marked ? fillColor : foundry.utils.Color.fromRGB([0, 0, 0]);
if (mark === 0 || mark === sections.length - 1) {
bar.beginFill(color, marked ? 1.0 : 0.5).drawRect(x, 0, widthUnit, bh, 2 * s); // Would like drawRoundedRect, but it's very troublsome with the corners. Leaving for now.
} else {
diff --git a/module/documents/tooltipManager.mjs b/module/documents/tooltipManager.mjs
index 18c03169..e10dc5fa 100644
--- a/module/documents/tooltipManager.mjs
+++ b/module/documents/tooltipManager.mjs
@@ -350,9 +350,7 @@ export default class DhTooltipManager extends foundry.helpers.interaction.Toolti
async getBattlepointHTML(combatId) {
const combat = game.combats.get(combatId);
const adversaries =
- combat.turns
- ?.filter(x => x.actor?.isNPC && x.token.disposition === CONST.TOKEN_DISPOSITIONS.HOSTILE)
- ?.map(x => ({ ...x.actor, type: x.actor.system.type })) ?? [];
+ combat.turns?.filter(x => x.actor?.isNPC)?.map(x => ({ ...x.actor, type: x.actor.system.type })) ?? [];
const characters = combat.turns?.filter(x => !x.isNPC && x.actor) ?? [];
const nrCharacters = characters.length;
diff --git a/styles/less/dialog/character-creation/selections-container.less b/styles/less/dialog/character-creation/selections-container.less
index 24217dbf..2bbac484 100644
--- a/styles/less/dialog/character-creation/selections-container.less
+++ b/styles/less/dialog/character-creation/selections-container.less
@@ -114,6 +114,9 @@
.card-preview-container {
flex: 1;
+ }
+
+ .card-preview-container {
border-color: light-dark(@dark-blue, @golden);
}
diff --git a/styles/less/dialog/group-roll-dialog/_common.less b/styles/less/dialog/group-roll-dialog/_common.less
index b04f6893..41573718 100644
--- a/styles/less/dialog/group-roll-dialog/_common.less
+++ b/styles/less/dialog/group-roll-dialog/_common.less
@@ -1,7 +1,9 @@
h1 {
color: light-dark(@dark-blue, @golden);
- font: 700 var(--font-size-24) var(--dh-font-subtitle);
+ font-family: var(--dh-font-subtitle);
+ font-size: var(--font-size-24);
text-align: center;
+ font-weight: 700;
}
header {
diff --git a/styles/less/dialog/index.less b/styles/less/dialog/index.less
index 11d9635e..eb882eeb 100644
--- a/styles/less/dialog/index.less
+++ b/styles/less/dialog/index.less
@@ -1,5 +1,10 @@
@import './attribution/sheet.less';
-@import './level-up/index.less';
+@import './level-up/navigation-container.less';
+@import './level-up/selections-container.less';
+@import './level-up/sheet.less';
+@import './level-up/summary-container.less';
+@import './level-up/tiers-container.less';
+@import './level-up/footer.less';
@import './resource-dice/sheet.less';
diff --git a/styles/less/dialog/level-up/index.less b/styles/less/dialog/level-up/index.less
deleted file mode 100644
index 849a4d36..00000000
--- a/styles/less/dialog/level-up/index.less
+++ /dev/null
@@ -1,6 +0,0 @@
-@import './navigation-container.less';
-@import './selections-container.less';
-@import './summary-container.less';
-@import './tiers-container.less';
-@import './footer.less';
-@import './sheet.less';
diff --git a/styles/less/dialog/level-up/selections-container.less b/styles/less/dialog/level-up/selections-container.less
index 8c0dbaec..6a551865 100644
--- a/styles/less/dialog/level-up/selections-container.less
+++ b/styles/less/dialog/level-up/selections-container.less
@@ -3,7 +3,12 @@
.daggerheart.levelup {
.levelup-selections-container {
+ overflow: auto;
padding: 10px 0;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
+ max-height: 500px;
+ mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
.achievement-experience-cards {
display: flex;
@@ -40,22 +45,20 @@
.levelup-card-selection {
display: flex;
+ flex-wrap: wrap;
justify-content: center;
gap: 40px;
height: 190px;
- align-items: stretch;
.card-preview-container {
- height: 190px;
+ height: 100%;
max-width: 200px;
}
.levelup-domains-selection-container {
- display: grid;
- grid-auto-flow: column;
- grid-template-rows: repeat(2, minmax(0, 1fr));
- height: 100%;
- gap: 4px;
+ display: flex;
+ flex-direction: column;
+ gap: 8px;
.levelup-domain-selection-container {
display: flex;
@@ -63,8 +66,6 @@
align-items: center;
position: relative;
cursor: pointer;
- overflow: hidden;
- width: 93px;
&.disabled {
pointer-events: none;
@@ -73,20 +74,16 @@
.levelup-domain-label {
position: absolute;
- left: 0;
- right: 0;
- bottom: 0;
text-align: center;
+ top: 4px;
background: grey;
- padding: 2px 12px;
+ padding: 0 12px;
+ border-radius: 6px;
z-index: 2;
- line-height: 1;
}
img {
- object-fit: cover;
- width: auto;
- height: auto;
+ height: 124px;
&.svg {
filter: @beige-filter;
@@ -95,18 +92,17 @@
.levelup-domain-selected {
position: absolute;
- height: 40px;
- width: 40px;
+ height: 54px;
+ width: 54px;
border-radius: 50%;
- border: 2px solid @golden;
- font-size: var(--font-size-24);
+ border: 2px solid;
+ font-size: var(--font-size-48);
display: flex;
align-items: center;
justify-content: center;
- background: @dark-golden;
- color: @golden;
- top: 10px;
- z-index: 2;
+ background-image: url(../assets/parchments/dh-parchment-light.png);
+ color: var(--color-dark-5);
+ top: calc(50% - 29px);
i {
position: relative;
diff --git a/styles/less/dialog/level-up/sheet.less b/styles/less/dialog/level-up/sheet.less
index c663f304..ade7c8a9 100644
--- a/styles/less/dialog/level-up/sheet.less
+++ b/styles/less/dialog/level-up/sheet.less
@@ -11,11 +11,9 @@
});
.daggerheart.levelup {
- .tab.active {
- flex: 1;
+ .window-content {
+ max-height: 960px;
overflow: auto;
- scrollbar-width: thin;
- scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
div[data-application-part='form'] {
@@ -24,13 +22,15 @@
gap: 8px;
}
- .section-container {
- display: flex;
- flex-direction: row;
- justify-content: center;
- gap: 20px 8px;
- margin-top: 8px;
- flex-wrap: wrap;
+ section {
+ .section-container {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ gap: 20px 8px;
+ margin-top: 8px;
+ flex-wrap: wrap;
+ }
}
.levelup-footer {
diff --git a/styles/less/dialog/level-up/summary-container.less b/styles/less/dialog/level-up/summary-container.less
index 97353ba7..d67abff6 100644
--- a/styles/less/dialog/level-up/summary-container.less
+++ b/styles/less/dialog/level-up/summary-container.less
@@ -17,6 +17,8 @@
.levelup-summary-container {
overflow: auto;
padding: 10px 0;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
max-height: 700px;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
diff --git a/styles/less/dialog/tag-team-dialog/initialization.less b/styles/less/dialog/tag-team-dialog/initialization.less
index 2d015141..8557d231 100644
--- a/styles/less/dialog/tag-team-dialog/initialization.less
+++ b/styles/less/dialog/tag-team-dialog/initialization.less
@@ -7,85 +7,39 @@
}
.daggerheart.dialog.dh-style.views.tag-team-dialog {
- .initialization-container.active {
- display: flex;
- flex-direction: column;
- gap: var(--spacer-4);
-
+ .initialization-container {
h2 {
text-align: center;
}
.members-container {
- display: flex;
- flex-wrap: wrap;
- justify-content: center;
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr 1fr;
gap: 8px;
- // Force 3 columns for 5 -> 6 players
- &:has(> :nth-child(5)):not(:has(> :nth-child(7))) {
- padding-left: 10%;
- padding-right: 10%;
- }
-
.member-container {
position: relative;
display: flex;
- align-items: stretch;
justify-content: center;
- border-radius: 6px;
- border: 1px solid light-dark(@dark-blue, @golden);
- overflow: hidden;
- height: 11.5rem;
- width: 122px;
&.inactive {
- border-color: light-dark(@dark-blue-40, @golden-40);
- img {
- opacity: 0.4;
- }
+ opacity: 0.4;
}
.member-name {
- --shadow-color: light-dark(white, black);
position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
-
- display: flex;
- flex-direction: column;
- justify-content: flex-end;
- min-height: 4rem;
- padding: 5rem 4px var(--spacer-8) 4px;
+ padding: 0 2px;
+ border: 1px solid;
+ border-radius: 6px;
+ margin-top: 4px;
+ color: light-dark(@dark, @beige);
+ background-image: url('../assets/parchments/dh-parchment-dark.png');
text-align: center;
-
- color: var(--color-text-primary);
- text-shadow: 1px 1px 2px var(--shadow-color), 0 0 10px var(--shadow-color);
-
- // Basic "scrim" gradient
- background-image: linear-gradient(
- to top,
- var(--shadow-color),
- rgba(from var(--shadow-color) r g b / 0.834) 10.6%,
- rgba(from var(--shadow-color) r g b / 0.541) 34%,
- rgba(from var(--shadow-color) r g b / 0.382) 47%,
- rgba(from var(--shadow-color) r g b / 0.194) 65%,
- transparent 100%
- );
}
img {
- object-fit: cover;
- object-position: top center;
- flex: 1;
- }
-
- .leader-mark {
- position: absolute;
- top: 4px;
- right: 4px;
- text-shadow: var(--shadow-text-stroke), 0 0 20px black;
+ border-radius: 6px;
+ border: 1px solid light-dark(@dark-blue, @golden);
}
}
}
diff --git a/styles/less/dialog/tag-team-dialog/sheet.less b/styles/less/dialog/tag-team-dialog/sheet.less
index a8dffbd2..dc8f16dc 100644
--- a/styles/less/dialog/tag-team-dialog/sheet.less
+++ b/styles/less/dialog/tag-team-dialog/sheet.less
@@ -1,10 +1,4 @@
-.daggerheart.dialog.dh-style.views.tag-team-dialog .window-content {
- h1 {
- color: light-dark(@dark-blue, @golden);
- font: 700 var(--font-size-24) var(--dh-font-subtitle);
- text-align: center;
- }
-
+.daggerheart.dialog.dh-style.views.tag-team-dialog {
.team-container {
display: flex;
gap: 16px;
diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less
index 181bd0d3..ff668bfd 100755
--- a/styles/less/global/elements.less
+++ b/styles/less/global/elements.less
@@ -96,6 +96,8 @@
textarea {
color: light-dark(@dark, @beige);
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
button:where(:not(.plain)) {
@@ -267,7 +269,6 @@
border-radius: 3px;
background-color: light-dark(@dark-blue, @golden);
color: light-dark(@beige, @dark-blue);
- margin-bottom: var(--spacer-4);
}
}
@@ -802,7 +803,6 @@
.preview-image-container {
width: 100%;
- min-height: 0;
flex-grow: 1;
object-fit: cover;
border-radius: 4px 4px 0 0;
diff --git a/styles/less/global/feature-section.less b/styles/less/global/feature-section.less
index 2fd4e20f..7d5099e1 100644
--- a/styles/less/global/feature-section.less
+++ b/styles/less/global/feature-section.less
@@ -5,6 +5,8 @@
.tab.features {
padding: 0 10px;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
.feature-list {
display: flex;
flex-direction: column;
diff --git a/styles/less/global/global.less b/styles/less/global/global.less
index 644d03b8..b9af67c0 100644
--- a/styles/less/global/global.less
+++ b/styles/less/global/global.less
@@ -12,11 +12,6 @@
}
.daggerheart.dh-style {
- * {
- scrollbar-width: thin;
- scrollbar-color: light-dark(@dark-blue, @golden) transparent;
- }
-
.hint {
flex: 0 0 100%;
margin: 0;
diff --git a/styles/less/global/prose-mirror.less b/styles/less/global/prose-mirror.less
index 8412235d..8a663e28 100644
--- a/styles/less/global/prose-mirror.less
+++ b/styles/less/global/prose-mirror.less
@@ -10,6 +10,8 @@
background-color: transparent;
}
.editor-content {
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
h1 {
font-size: var(--font-size-32);
}
diff --git a/styles/less/sheets-settings/adversary-settings/features.less b/styles/less/sheets-settings/adversary-settings/features.less
index 15b1fa18..4e0f6a8f 100644
--- a/styles/less/sheets-settings/adversary-settings/features.less
+++ b/styles/less/sheets-settings/adversary-settings/features.less
@@ -5,6 +5,8 @@
.tab.features {
max-height: 450px;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
.add-feature-btn {
width: 100%;
diff --git a/styles/less/sheets-settings/environment-settings/adversaries.less b/styles/less/sheets-settings/environment-settings/adversaries.less
index 2ce4819a..1a27eaca 100644
--- a/styles/less/sheets-settings/environment-settings/adversaries.less
+++ b/styles/less/sheets-settings/environment-settings/adversaries.less
@@ -5,6 +5,8 @@
.tab.adversaries {
max-height: 450px;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
.add-action-btn {
width: 100%;
diff --git a/styles/less/sheets-settings/environment-settings/features.less b/styles/less/sheets-settings/environment-settings/features.less
index db6b544d..d907837a 100644
--- a/styles/less/sheets-settings/environment-settings/features.less
+++ b/styles/less/sheets-settings/environment-settings/features.less
@@ -5,6 +5,8 @@
.tab.features {
max-height: 450px;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
.add-feature-btn {
width: 100%;
diff --git a/styles/less/sheets/actors/adversary/actions.less b/styles/less/sheets/actors/adversary/actions.less
index af870d9b..00395ebd 100644
--- a/styles/less/sheets/actors/adversary/actions.less
+++ b/styles/less/sheets/actors/adversary/actions.less
@@ -10,6 +10,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/adversary/effects.less b/styles/less/sheets/actors/adversary/effects.less
index fbf74249..4afe2454 100644
--- a/styles/less/sheets/actors/adversary/effects.less
+++ b/styles/less/sheets/actors/adversary/effects.less
@@ -9,6 +9,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/adversary/sidebar.less b/styles/less/sheets/actors/adversary/sidebar.less
index ef99bc09..4e7535c1 100644
--- a/styles/less/sheets/actors/adversary/sidebar.less
+++ b/styles/less/sheets/actors/adversary/sidebar.less
@@ -287,11 +287,12 @@
padding-top: 10px;
padding-bottom: 20px;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
-
+ scrollbar-width: thin;
scrollbar-gutter: stable;
&:hover {
overflow-y: auto;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
diff --git a/styles/less/sheets/actors/character/biography.less b/styles/less/sheets/actors/character/biography.less
index f8d56735..12a662ff 100644
--- a/styles/less/sheets/actors/character/biography.less
+++ b/styles/less/sheets/actors/character/biography.less
@@ -9,15 +9,12 @@
gap: 10px;
height: 100%;
overflow-y: auto;
- mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 98%, transparent 100%);
- padding-top: 8px;
- padding-bottom: 20px;
+ mask-image: linear-gradient(0deg, transparent 0%, black 10%, black 98%, transparent 100%);
+ padding-bottom: 10px;
height: 100%;
- }
- .characteristics-section {
- gap: 20px;
- padding: 0 10px;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
.biography-section {
diff --git a/styles/less/sheets/actors/character/effects.less b/styles/less/sheets/actors/character/effects.less
index ae49fa2d..ceadd05e 100644
--- a/styles/less/sheets/actors/character/effects.less
+++ b/styles/less/sheets/actors/character/effects.less
@@ -10,6 +10,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/character/features.less b/styles/less/sheets/actors/character/features.less
index 017254a3..6a6438ff 100644
--- a/styles/less/sheets/actors/character/features.less
+++ b/styles/less/sheets/actors/character/features.less
@@ -10,6 +10,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/character/inventory.less b/styles/less/sheets/actors/character/inventory.less
index c8d2b584..12f63753 100644
--- a/styles/less/sheets/actors/character/inventory.less
+++ b/styles/less/sheets/actors/character/inventory.less
@@ -10,6 +10,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
padding: 20px 0;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/character/loadout.less b/styles/less/sheets/actors/character/loadout.less
index 127d688a..eba55890 100644
--- a/styles/less/sheets/actors/character/loadout.less
+++ b/styles/less/sheets/actors/character/loadout.less
@@ -92,6 +92,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 10%, black 98%, transparent 100%);
padding: 20px 0;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/character/sidebar.less b/styles/less/sheets/actors/character/sidebar.less
index e450891b..0e6e3d97 100644
--- a/styles/less/sheets/actors/character/sidebar.less
+++ b/styles/less/sheets/actors/character/sidebar.less
@@ -551,9 +551,11 @@
padding-bottom: 20px;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
scrollbar-gutter: stable;
-
+ scrollbar-width: thin;
+
&:hover {
overflow-y: auto;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
diff --git a/styles/less/sheets/actors/companion/effects.less b/styles/less/sheets/actors/companion/effects.less
index 6d7fe061..12e1d847 100644
--- a/styles/less/sheets/actors/companion/effects.less
+++ b/styles/less/sheets/actors/companion/effects.less
@@ -9,6 +9,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/environment/actions.less b/styles/less/sheets/actors/environment/actions.less
index cc8a345a..51385322 100644
--- a/styles/less/sheets/actors/environment/actions.less
+++ b/styles/less/sheets/actors/environment/actions.less
@@ -10,6 +10,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/environment/potentialAdversaries.less b/styles/less/sheets/actors/environment/potentialAdversaries.less
index f3c5776a..274362a5 100644
--- a/styles/less/sheets/actors/environment/potentialAdversaries.less
+++ b/styles/less/sheets/actors/environment/potentialAdversaries.less
@@ -9,6 +9,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%);
padding-bottom: 20px;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/environment/sheet.less b/styles/less/sheets/actors/environment/sheet.less
index a7c9605b..3ea14bc7 100644
--- a/styles/less/sheets/actors/environment/sheet.less
+++ b/styles/less/sheets/actors/environment/sheet.less
@@ -20,6 +20,8 @@
.tab {
flex: 1;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
&.active {
overflow: hidden;
diff --git a/styles/less/sheets/actors/party/inventory.less b/styles/less/sheets/actors/party/inventory.less
index 8af37a79..ac59e1de 100644
--- a/styles/less/sheets/actors/party/inventory.less
+++ b/styles/less/sheets/actors/party/inventory.less
@@ -10,6 +10,9 @@
overflow-y: auto;
mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%);
padding: 20px 0;
+
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
}
diff --git a/styles/less/sheets/actors/party/sheet.less b/styles/less/sheets/actors/party/sheet.less
index 852b6cfc..6b51de53 100644
--- a/styles/less/sheets/actors/party/sheet.less
+++ b/styles/less/sheets/actors/party/sheet.less
@@ -20,6 +20,8 @@
.tab {
flex: 1;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
scrollbar-gutter: stable;
&.active {
diff --git a/styles/less/sheets/items/domain-card.less b/styles/less/sheets/items/domain-card.less
index 54378fd0..a784b3a2 100644
--- a/styles/less/sheets/items/domain-card.less
+++ b/styles/less/sheets/items/domain-card.less
@@ -5,5 +5,7 @@
section.tab {
height: 400px;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
diff --git a/styles/less/sheets/items/feature.less b/styles/less/sheets/items/feature.less
index f3c7cd49..b7493f15 100644
--- a/styles/less/sheets/items/feature.less
+++ b/styles/less/sheets/items/feature.less
@@ -14,5 +14,7 @@
section.tab {
height: 400px;
overflow-y: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
}
diff --git a/styles/less/ui/countdown/countdown-edit.less b/styles/less/ui/countdown/countdown-edit.less
index 78ad3a06..d6c4da93 100644
--- a/styles/less/ui/countdown/countdown-edit.less
+++ b/styles/less/ui/countdown/countdown-edit.less
@@ -60,6 +60,8 @@
overflow-y: auto;
overflow-x: hidden;
max-height: 500px;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
.countdown-edit-outer-container {
display: flex;
diff --git a/styles/less/ui/countdown/countdown.less b/styles/less/ui/countdown/countdown.less
index 380eb454..47f06eb7 100644
--- a/styles/less/ui/countdown/countdown.less
+++ b/styles/less/ui/countdown/countdown.less
@@ -1,47 +1,28 @@
@import '../../utils/colors.less';
@import '../../utils/fonts.less';
-#interface.theme-dark {
+.theme-dark {
.daggerheart.dh-style.countdowns {
- --background: url(../assets/parchments/dh-parchment-dark.png);
+ background-image: url(../assets/parchments/dh-parchment-dark.png);
+
+ .window-header {
+ background-image: url(../assets/parchments/dh-parchment-dark.png);
+ }
}
}
-#interface.theme-light {
- .daggerheart.dh-style.countdowns {
- --background: url('../assets/parchments/dh-parchment-light.png') no-repeat center;
- }
-}
-
-.daggerheart.dh-style.countdowns {
+.daggerheart.dh-style.countdowns {
position: relative;
border: 0;
+ border-radius: 4px;
box-shadow: none;
- color: var(--color-text-primary);
width: 300px;
pointer-events: all;
align-self: flex-end;
transition: 0.3s right ease-in-out;
- display: flex;
- flex-direction: column;
-
- &::before {
- content: ' ';
- position: absolute;
- inset: 0;
- background: var(--background);
- border-radius: 4px;
- opacity: var(--ui-fade-opacity);
- transition: opacity var(--ui-fade-duration);
- }
-
- :not(.performance-low, .noblur) {
- backdrop-filter: blur(5px);
- }
-
- &:hover::before {
- opacity: 1;
+ .window-title {
+ font-family: @font-body;
}
#ui-right:has(#effects-display .effect-container) & {
@@ -53,136 +34,123 @@
min-width: 180px;
}
- .countdowns-header,
- .countdowns-container {
- position: relative; // allow rendering over the background
+ .window-header {
+ cursor: default;
+ border-bottom: 0;
}
- .countdowns-header {
- display: flex;
- align-items: center;
- gap: 0.25rem;
- flex: 0 0 36px;
- padding: 0 0.5rem;
- overflow: hidden;
- font-size: var(--font-size-13);
- .window-title {
- font-family: @font-body;
- flex: 1;
- }
- .header-control + .header-control {
- margin-left: 8px;
- }
- }
-
- .countdowns-container {
- display: flex;
- flex-direction: column;
- gap: 8px;
- padding: 4px var(--spacer-16) var(--spacer-16) var(--spacer-16);
+ .window-content {
+ padding-top: 4px;
+ padding-bottom: 16px;
overflow: auto;
max-height: 312px;
- .countdown-container {
+ .countdowns-container {
display: flex;
- width: 100%;
+ flex-direction: column;
+ gap: 8px;
- &.icon-only {
- gap: 8px;
+ .countdown-container {
+ display: flex;
+ width: 100%;
- .countdown-main-container {
- .countdown-content {
- justify-content: center;
+ &.icon-only {
+ gap: 8px;
- .countdown-tools {
- gap: 8px;
+ .countdown-main-container {
+ .countdown-content {
+ justify-content: center;
+
+ .countdown-tools {
+ gap: 8px;
+ }
}
}
}
- }
- .countdown-main-container {
- width: 100%;
- display: flex;
- align-items: center;
- gap: 16px;
-
- img {
- width: 44px;
- height: 44px;
- border-radius: 6px;
- }
-
- .countdown-content {
- flex: 1;
+ .countdown-main-container {
+ width: 100%;
display: flex;
- flex-direction: column;
- justify-content: space-between;
+ align-items: center;
+ gap: 16px;
- .countdown-tools {
+ img {
+ width: 44px;
+ height: 44px;
+ border-radius: 6px;
+ }
+
+ .countdown-content {
+ flex: 1;
display: flex;
- align-items: center;
+ flex-direction: column;
justify-content: space-between;
- .countdown-tool-controls {
+ .countdown-tools {
display: flex;
align-items: center;
- gap: 16px;
- }
+ justify-content: space-between;
- .progress-tag {
- border: 1px solid;
- border-radius: 4px;
- padding: 2px 4px;
- background-color: light-dark(@beige, @dark-blue);
- }
+ .countdown-tool-controls {
+ display: flex;
+ align-items: center;
+ gap: 16px;
+ }
- .countdown-tool-icons {
- display: flex;
- align-items: center;
- gap: 8px;
-
- .looping-container {
- position: relative;
- border: 1px solid light-dark(@dark-blue, white);
- border-radius: 6px;
+ .progress-tag {
+ border: 1px solid;
+ border-radius: 4px;
padding: 2px 4px;
+ background-color: light-dark(@beige, @dark-blue);
+ }
- &.should-loop {
- background: light-dark(@golden, @golden);
+ .countdown-tool-icons {
+ display: flex;
+ align-items: center;
+ gap: 8px;
- .loop-marker {
- color: light-dark(@dark-blue, @dark-blue);
+ .looping-container {
+ position: relative;
+ border: 1px solid light-dark(@dark-blue, white);
+ border-radius: 6px;
+ padding: 2px 4px;
+
+ &.should-loop {
+ background: light-dark(@golden, @golden);
+
+ .loop-marker {
+ color: light-dark(@dark-blue, @dark-blue);
+ }
}
- }
- .direction-marker {
- position: absolute;
- font-size: 10px;
- filter: drop-shadow(0 0 3px black);
- top: -3px;
+ .direction-marker {
+ position: absolute;
+ font-size: 10px;
+ filter: drop-shadow(0 0 3px black);
+ top: -3px;
+ }
}
}
}
}
}
- }
- /* Keep incase we want to reintroduce the player pips */
- // .countdown-access-container {
- // display: grid;
- // grid-template-columns: 1fr 1fr 1fr;
- // grid-auto-rows: min-content;
- // width: 38px;
- // gap: 4px;
+ /* Keep incase we want to reintroduce the player pips */
+ // .countdown-access-container {
+ // display: grid;
+ // grid-template-columns: 1fr 1fr 1fr;
+ // grid-auto-rows: min-content;
+ // width: 38px;
+ // gap: 4px;
- // .countdown-access {
- // height: 10px;
- // width: 10px;
- // border-radius: 50%;
- // border: 1px solid light-dark(@dark-blue, @beige-80);
- // content: '';
- // }
- // }
+ // .countdown-access {
+ // height: 10px;
+ // width: 10px;
+ // border-radius: 50%;
+ // border: 1px solid light-dark(@dark-blue, @beige-80);
+ // content: '';
+ // }
+ // }
+ }
}
}
}
diff --git a/styles/less/ui/item-browser/item-browser.less b/styles/less/ui/item-browser/item-browser.less
index 1142b8fd..f558a0ba 100644
--- a/styles/less/ui/item-browser/item-browser.less
+++ b/styles/less/ui/item-browser/item-browser.less
@@ -237,6 +237,8 @@
.compendium-sidebar > .folder-list {
overflow-y: auto;
scrollbar-gutter: stable;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
}
.item-list-header,
diff --git a/styles/less/ui/settings/homebrew-settings/domains.less b/styles/less/ui/settings/homebrew-settings/domains.less
index 406294ac..da258fcd 100644
--- a/styles/less/ui/settings/homebrew-settings/domains.less
+++ b/styles/less/ui/settings/homebrew-settings/domains.less
@@ -55,6 +55,8 @@
gap: 8px;
max-height: 184px;
overflow: auto;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(#18162e, #f3c267) transparent;
.domain-container {
position: relative;
diff --git a/styles/less/ux/autocomplete/autocomplete.less b/styles/less/ux/autocomplete/autocomplete.less
index e778f0da..7f799449 100644
--- a/styles/less/ux/autocomplete/autocomplete.less
+++ b/styles/less/ux/autocomplete/autocomplete.less
@@ -21,6 +21,8 @@
flex-direction: column;
gap: 2px;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
+
.group {
font-weight: bold;
font-size: var(--font-size-14);
diff --git a/styles/less/ux/tooltip/sheet.less b/styles/less/ux/tooltip/sheet.less
index ad774fcd..59e4e638 100644
--- a/styles/less/ux/tooltip/sheet.less
+++ b/styles/less/ux/tooltip/sheet.less
@@ -48,6 +48,9 @@ aside[role='tooltip']:has(div.daggerheart.dh-style.tooltip),
overflow-y: auto;
position: relative;
+ scrollbar-width: thin;
+ scrollbar-color: light-dark(@dark-blue, @golden) transparent;
+
.tooltip-tag {
display: flex;
gap: 10px;
diff --git a/system.json b/system.json
index 7c1321fb..16a1f74b 100644
--- a/system.json
+++ b/system.json
@@ -2,7 +2,7 @@
"id": "daggerheart",
"title": "Daggerheart",
"description": "An unofficial implementation of the Daggerheart system",
- "version": "2.2.5",
+ "version": "2.2.4",
"compatibility": {
"minimum": "14.359",
"verified": "14.361",
@@ -10,16 +10,11 @@
},
"url": "https://github.com/Foundryborne/daggerheart",
"manifest": "https://raw.githubusercontent.com/Foundryborne/daggerheart/v14/system.json",
- "download": "https://github.com/Foundryborne/daggerheart/releases/download/2.2.5/system.zip",
+ "download": "https://github.com/Foundryborne/daggerheart/releases/download/2.2.4/system.zip",
"authors": [
{
"name": "WBHarry"
},
- {
- "name": "Supe",
- "url": "https://github.com/CarlosFdez",
- "discord": "supe"
- },
{
"name": "cptn-cosmo",
"url": "https://github.com/cptn-cosmo",
@@ -303,11 +298,5 @@
},
"background": "systems/daggerheart/assets/logos/FoundrybornBackgroundLogo.png",
"primaryTokenAttribute": "resources.hitPoints",
- "secondaryTokenAttribute": "resources.stress",
- "flags": {
- "hotReload": {
- "extensions": ["css", "hbs", "json"],
- "paths": ["styles/daggerheart.css", "templates", "lang"]
- }
- }
+ "secondaryTokenAttribute": "resources.stress"
}
diff --git a/templates/dialogs/tagTeamDialog/initialization.hbs b/templates/dialogs/tagTeamDialog/initialization.hbs
index 0b92e68e..7ccdf566 100644
--- a/templates/dialogs/tagTeamDialog/initialization.hbs
+++ b/templates/dialogs/tagTeamDialog/initialization.hbs
@@ -1,18 +1,13 @@
{{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.selectParticipants"}}
+ {{localize "DAGGERHEART.APPLICATIONS.TagTeamSelect.selectParticipants"}}
{{member.name}}
- {{#if (eq @root.initiator.memberId member.id)}}
-
{{/each}}