diff --git a/lang/en.json b/lang/en.json
index dae24038..47111ca4 100755
--- a/lang/en.json
+++ b/lang/en.json
@@ -222,7 +222,14 @@
"Major": "Major",
"Minor": "Minor",
"None": "None"
- }
+ },
+ "tabs": {
+ "details": "Details",
+ "attack": "Attack",
+ "experiences": "Experiences",
+ "features": "Features"
+ },
+ "basics": "Basics"
},
"ActionType": {
"Passive": "Passive",
@@ -311,45 +318,45 @@
},
"Adversary": {
"Type": {
- "Bruiser": {
+ "bruiser": {
"label": "Bruiser",
- "Description": "Tough adversaries with powerful attacks."
+ "description": "Tough adversaries with powerful attacks."
},
- "Horde": {
+ "horde": {
"label": "Horde",
- "Description": "A Horde represents a number of foes working in a group."
+ "description": "A Horde represents a number of foes working in a group."
},
- "Leader": {
+ "leader": {
"label": "Leader",
- "Description": "Adversaries that command and summon other adversaries."
+ "description": "Adversaries that command and summon other adversaries."
},
- "Minion": {
+ "minion": {
"label": "Minion",
- "Description": "Basic enemies that are easily dispatched but dangerous in numbers."
+ "description": "Basic enemies that are easily dispatched but dangerous in numbers."
},
- "Ranged": {
+ "ranged": {
"label": "Ranged",
- "Description": "Adversaries that attack from a distance."
+ "description": "Adversaries that attack from a distance."
},
- "Skulk": {
+ "skulk": {
"label": "Skulk",
- "Description": "Adversaries that maneuver and exploit opportunities to ambush their opponents."
+ "description": "Adversaries that maneuver and exploit opportunities to ambush their opponents."
},
- "Social": {
+ "social": {
"label": "Social",
- "Description": "Adversaries that are primarily interpersonal threats or challenges."
+ "description": "Adversaries that are primarily interpersonal threats or challenges."
},
- "Solo": {
+ "solo": {
"label": "Solo",
- "Description": "Designed to present a challenge to a whole party."
+ "description": "Designed to present a challenge to a whole party."
},
- "Standard": {
+ "standard": {
"label": "Standard",
- "Description": "Rank and File adversaries."
+ "description": "Rank and File adversaries."
},
- "Support": {
+ "support": {
"label": "Support",
- "Description": "Enemies that enhance their allies and/or disrupt their opponents."
+ "description": "Enemies that enhance their allies and/or disrupt their opponents."
}
},
"Trait": {
@@ -1284,14 +1291,18 @@
},
"Tabs": {
"Main": "Data",
- "Information": "Information"
+ "Information": "Information",
+ "features": "Features",
+ "notes": "Notes",
+ "effects": "Effects"
},
"General": "General",
"DamageThresholds": "Damage Thresholds",
"HitPoints": "Hit Points",
"Stress": "Stress",
"Experiences": "Experiences",
- "Attack": "Attack"
+ "Attack": "Attack",
+ "horderHp": "Horde/HP"
},
"Environment": {
"FIELDS": {
diff --git a/module/applications/_module.mjs b/module/applications/_module.mjs
index c9f5ddc6..c3a92776 100644
--- a/module/applications/_module.mjs
+++ b/module/applications/_module.mjs
@@ -1,5 +1,5 @@
-export { default as DhCharacterSheet } from './sheets/character.mjs';
-export { default as DhpAdversarySheet } from './sheets/adversary.mjs';
+export { default as DhCharacterSheet } from './sheets/actors/character.mjs';
+export { default as DhpAdversarySheet } from './sheets/actors/adversary.mjs';
export { default as DhpClassSheet } from './sheets/items/class.mjs';
export { default as DhpSubclass } from './sheets/items/subclass.mjs';
export { default as DhpFeatureSheet } from './sheets/items/feature.mjs';
diff --git a/module/applications/sheets/adversary.mjs b/module/applications/sheets/actors/adversary.mjs
similarity index 73%
rename from module/applications/sheets/adversary.mjs
rename to module/applications/sheets/actors/adversary.mjs
index 26791298..67bf6bf6 100644
--- a/module/applications/sheets/adversary.mjs
+++ b/module/applications/sheets/actors/adversary.mjs
@@ -1,12 +1,13 @@
-import DHActionConfig from '../config/Action.mjs';
-import DaggerheartSheet from './daggerheart-sheet.mjs';
+import DHActionConfig from '../../config/Action.mjs';
+import DaggerheartSheet from '../daggerheart-sheet.mjs';
+import DHAdversarySettings from '../applications/adversary-settings.mjs';
const { ActorSheetV2 } = foundry.applications.sheets;
export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
static DEFAULT_OPTIONS = {
tag: 'form',
classes: ['daggerheart', 'sheet', 'actor', 'dh-style', 'adversary'],
- position: { width: 450, height: 1000 },
+ position: { width: 660, height: 766 },
actions: {
reactionRoll: this.reactionRoll,
attackRoll: this.attackRoll,
@@ -14,7 +15,8 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
addExperience: this.addExperience,
removeExperience: this.removeExperience,
toggleHP: this.toggleHP,
- toggleStress: this.toggleStress
+ toggleStress: this.toggleStress,
+ openSettings: this.openSettings
},
form: {
handler: this.updateForm,
@@ -24,28 +26,36 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
};
static PARTS = {
+ sidebar: { template: 'systems/daggerheart/templates/sheets/actors/adversary/sidebar.hbs' },
header: { template: 'systems/daggerheart/templates/sheets/actors/adversary/header.hbs' },
- tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' },
- main: { template: 'systems/daggerheart/templates/sheets/actors/adversary/main.hbs' },
- information: { template: 'systems/daggerheart/templates/sheets/actors/adversary/information.hbs' }
+ features: { template: 'systems/daggerheart/templates/sheets/actors/adversary/features.hbs' },
+ effects: { template: 'systems/daggerheart/templates/sheets/actors/adversary/effects.hbs' }
};
static TABS = {
- main: {
- active: true,
- cssClass: '',
- group: 'primary',
- id: 'main',
- icon: null,
- label: 'DAGGERHEART.Sheets.Adversary.Tabs.Main'
- },
- information: {
+ features: {
active: false,
cssClass: '',
group: 'primary',
- id: 'information',
+ id: 'features',
icon: null,
- label: 'DAGGERHEART.Sheets.Adversary.Tabs.Information'
+ label: 'DAGGERHEART.Sheets.Adversary.Tabs.features'
+ },
+ notes: {
+ active: false,
+ cssClass: '',
+ group: 'primary',
+ id: 'notes',
+ icon: null,
+ label: 'DAGGERHEART.Sheets.Adversary.Tabs.notes'
+ },
+ effects: {
+ active: false,
+ cssClass: '',
+ group: 'primary',
+ id: 'effects',
+ icon: null,
+ label: 'DAGGERHEART.Sheets.Adversary.Tabs.effects'
}
};
@@ -56,7 +66,6 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
context.systemFields.attack.fields = this.document.system.attack.schema.fields;
context.getEffectDetails = this.getEffectDetails.bind(this);
context.isNPC = true;
- console.log(context)
return context;
}
@@ -86,6 +95,10 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) {
return {};
}
+ static async openSettings() {
+ await new DHAdversarySettings(this.document).render(true);
+ }
+
static async attackRoll(event) {
this.actor.system.attack.use(event);
}
diff --git a/module/applications/sheets/character.mjs b/module/applications/sheets/actors/character.mjs
similarity index 98%
rename from module/applications/sheets/character.mjs
rename to module/applications/sheets/actors/character.mjs
index ad294aff..a5e3564b 100644
--- a/module/applications/sheets/character.mjs
+++ b/module/applications/sheets/actors/character.mjs
@@ -1,11 +1,11 @@
-import { capitalize } from '../../helpers/utils.mjs';
-import DhpDeathMove from '../deathMove.mjs';
-import DhpDowntime from '../downtime.mjs';
-import AncestrySelectionDialog from '../ancestrySelectionDialog.mjs';
-import DaggerheartSheet from './daggerheart-sheet.mjs';
-import { abilities } from '../../config/actorConfig.mjs';
-import DhlevelUp from '../levelup.mjs';
-import DhCharacterCreation from '../characterCreation.mjs';
+import { capitalize } from '../../../helpers/utils.mjs';
+import DhpDeathMove from '../../deathMove.mjs';
+import DhpDowntime from '../../downtime.mjs';
+import AncestrySelectionDialog from '../../ancestrySelectionDialog.mjs';
+import DaggerheartSheet from '../daggerheart-sheet.mjs';
+import { abilities } from '../../../config/actorConfig.mjs';
+import DhlevelUp from '../../levelup.mjs';
+import DhCharacterCreation from '../../characterCreation.mjs';
const { ActorSheetV2 } = foundry.applications.sheets;
const { TextEditor } = foundry.applications.ux;
diff --git a/module/applications/sheets/applications/adversary-settings.mjs b/module/applications/sheets/applications/adversary-settings.mjs
new file mode 100644
index 00000000..d1fcf931
--- /dev/null
+++ b/module/applications/sheets/applications/adversary-settings.mjs
@@ -0,0 +1,118 @@
+import DHActionConfig from '../../config/Action.mjs';
+import DaggerheartSheet from '../daggerheart-sheet.mjs';
+
+const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api;
+
+export default class DHAdversarySettings extends HandlebarsApplicationMixin(ApplicationV2) {
+ constructor(actor) {
+ super({});
+
+ this.actor = actor;
+ }
+
+ get title() {
+ return `${game.i18n.localize('DAGGERHEART.Sheets.TABS.settings')}`;
+ }
+
+ static DEFAULT_OPTIONS = {
+ tag: 'form',
+ id: 'daggerheart-action',
+ classes: ['daggerheart', 'dh-style', 'dialog', 'adversary-settings'],
+ window: {
+ icon: 'fa-solid fa-wrench',
+ resizable: false
+ },
+ position: { width: 455, height: 'auto' },
+ actions: {},
+ form: {
+ handler: this.updateForm,
+ submitOnChange: true,
+ closeOnSubmit: false
+ }
+ };
+
+ static PARTS = {
+ header: {
+ id: 'header',
+ template: 'systems/daggerheart/templates/sheets/applications/adversary-settings/header.hbs'
+ },
+ tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' },
+ details: {
+ id: 'details',
+ template: 'systems/daggerheart/templates/sheets/applications/adversary-settings/details.hbs'
+ },
+ attack: {
+ id: 'attack',
+ template: 'systems/daggerheart/templates/sheets/applications/adversary-settings/attack.hbs'
+ },
+ experiences: {
+ id: 'experiences',
+ template: 'systems/daggerheart/templates/sheets/applications/adversary-settings/experiences.hbs'
+ },
+ features: {
+ id: 'features',
+ template: 'systems/daggerheart/templates/sheets/applications/adversary-settings/features.hbs'
+ }
+ };
+
+ static TABS = {
+ details: {
+ active: true,
+ cssClass: '',
+ group: 'primary',
+ id: 'details',
+ icon: null,
+ label: 'DAGGERHEART.General.tabs.details'
+ },
+ attack: {
+ active: false,
+ cssClass: '',
+ group: 'primary',
+ id: 'attack',
+ icon: null,
+ label: 'DAGGERHEART.General.tabs.attack'
+ },
+ experiences: {
+ active: false,
+ cssClass: '',
+ group: 'primary',
+ id: 'experiences',
+ icon: null,
+ label: 'DAGGERHEART.General.tabs.experiences'
+ },
+ features: {
+ active: false,
+ cssClass: '',
+ group: 'primary',
+ id: 'features',
+ icon: null,
+ label: 'DAGGERHEART.General.tabs.features'
+ }
+ };
+
+ async _prepareContext(_options) {
+ const context = await super._prepareContext(_options);
+ context.document = this.actor;
+ context.tabs = this._getTabs(this.constructor.TABS);
+ context.systemFields = this.actor.system.schema.fields;
+ context.systemFields.attack.fields = this.actor.system.attack.schema.fields;
+ // context.getEffectDetails = this.getEffectDetails.bind(this);
+ // context.isNPC = true;
+ // console.log(context);
+ return context;
+ }
+
+ _getTabs(tabs) {
+ for (const v of Object.values(tabs)) {
+ v.active = this.tabGroups[v.group] ? this.tabGroups[v.group] === v.id : v.active;
+ v.cssClass = v.active ? 'active' : '';
+ }
+
+ return tabs;
+ }
+
+ static async updateForm(event, _, formData) {
+ await this.actor.update(formData.object);
+ this.render();
+ }
+}
diff --git a/module/config/actorConfig.mjs b/module/config/actorConfig.mjs
index 6af480d7..b3ebf9dc 100644
--- a/module/config/actorConfig.mjs
+++ b/module/config/actorConfig.mjs
@@ -83,53 +83,53 @@ export const featureProperties = {
export const adversaryTypes = {
bruiser: {
id: 'bruiser',
- label: 'DAGGERHEART.Adversary.Type.Bruiser.label',
- description: 'DAGGERHEART.Adversary.Bruiser.Description'
+ label: 'DAGGERHEART.Adversary.Type.bruiser.label',
+ description: 'DAGGERHEART.Adversary.bruiser.description'
},
horde: {
id: 'horde',
- label: 'DAGGERHEART.Adversary.Type.Horde.label',
- description: 'DAGGERHEART.Adversary.Horde.Description'
+ label: 'DAGGERHEART.Adversary.Type.horde.label',
+ description: 'DAGGERHEART.Adversary.horde.description'
},
leader: {
id: 'leader',
- label: 'DAGGERHEART.Adversary.Type.Leader.label',
- description: 'DAGGERHEART.Adversary.Leader.Description'
+ label: 'DAGGERHEART.Adversary.Type.leader.label',
+ description: 'DAGGERHEART.Adversary.leader.description'
},
minion: {
id: 'minion',
- label: 'DAGGERHEART.Adversary.Type.Minion.label',
- description: 'DAGGERHEART.Adversary.Minion.Description'
+ label: 'DAGGERHEART.Adversary.Type.minion.label',
+ description: 'DAGGERHEART.Adversary.minion.description'
},
ranged: {
id: 'ranged',
- label: 'DAGGERHEART.Adversary.Type.Ranged.label',
- description: 'DAGGERHEART.Adversary.Ranged.Description'
+ label: 'DAGGERHEART.Adversary.Type.ranged.label',
+ description: 'DAGGERHEART.Adversary.ranged.description'
},
skulk: {
id: 'skulk',
- label: 'DAGGERHEART.Adversary.Type.Skulk.label',
- description: 'DAGGERHEART.Adversary.Skulk.Description'
+ label: 'DAGGERHEART.Adversary.Type.skulk.label',
+ description: 'DAGGERHEART.Adversary.skulk.description'
},
social: {
id: 'social',
- label: 'DAGGERHEART.Adversary.Type.Social.label',
- description: 'DAGGERHEART.Adversary.Social.Description'
+ label: 'DAGGERHEART.Adversary.Type.social.label',
+ description: 'DAGGERHEART.Adversary.social.description'
},
solo: {
id: 'solo',
- label: 'DAGGERHEART.Adversary.Type.Solo.label',
- description: 'DAGGERHEART.Adversary.Solo.Description'
+ label: 'DAGGERHEART.Adversary.Type.solo.label',
+ description: 'DAGGERHEART.Adversary.solo.description'
},
standard: {
id: 'standard',
- label: 'DAGGERHEART.Adversary.Type.Standard.label',
- description: 'DAGGERHEART.Adversary.Standard.Description'
+ label: 'DAGGERHEART.Adversary.Type.standard.label',
+ description: 'DAGGERHEART.Adversary.standard.description'
},
support: {
id: 'support',
- label: 'DAGGERHEART.Adversary.Type.Support.label',
- description: 'DAGGERHEART.Adversary.Support.Description'
+ label: 'DAGGERHEART.Adversary.Type.support.label',
+ description: 'DAGGERHEART.Adversary.support.description'
}
};
diff --git a/module/data/actor/adversary.mjs b/module/data/actor/adversary.mjs
index b1ed29ec..a651d1ec 100644
--- a/module/data/actor/adversary.mjs
+++ b/module/data/actor/adversary.mjs
@@ -30,8 +30,11 @@ export default class DhpAdversary extends BaseDataActor {
choices: SYSTEM.ACTOR.adversaryTypes,
initial: SYSTEM.ACTOR.adversaryTypes.standard.id
}),
- motivesAndTactics: new fields.HTMLField(),
+ description: new fields.StringField(),
+ motivesAndTactics: new fields.StringField(),
+ notes: new fields.HtmlField(),
difficulty: new fields.NumberField({ required: true, initial: 1, integer: true }),
+ hordeHp: new fields.NumberField({ required: true, initial: 1, integer: true }),
damageThresholds: new fields.SchemaField({
major: new fields.NumberField({ required: true, initial: 0, integer: true }),
severe: new fields.NumberField({ required: true, initial: 0, integer: true })
@@ -66,7 +69,7 @@ export default class DhpAdversary extends BaseDataActor {
experiences: new fields.TypedObjectField(
new fields.SchemaField({
name: new fields.StringField(),
- value: new fields.NumberField({ required: true, integer: true, initial: 1 })
+ modifier: new fields.NumberField({ required: true, integer: true, initial: 1 })
})
),
bonuses: new fields.SchemaField({
diff --git a/styles/daggerheart.css b/styles/daggerheart.css
index d620cb5b..4ffb62ba 100755
--- a/styles/daggerheart.css
+++ b/styles/daggerheart.css
@@ -3783,8 +3783,6 @@ div.daggerheart.views.multiclass {
}
.application.sheet.daggerheart.actor.dh-style.character .character-sidebar-sheet .portrait {
position: relative;
- height: 235px;
- width: 275px;
border-bottom: 1px solid light-dark(#18162e, #f3c267);
cursor: pointer;
}
@@ -4053,9 +4051,6 @@ div.daggerheart.views.multiclass {
grid-row: 2;
grid-column: 2;
}
-.application.sheet.daggerheart.actor.dh-style.character .window-content .old-sheet {
- width: 500px;
-}
.application.sheet.daggerheart.actor.dh-style.character .tab.inventory .search-section {
display: flex;
gap: 10px;
@@ -4211,6 +4206,509 @@ div.daggerheart.views.multiclass {
scrollbar-width: thin;
scrollbar-color: light-dark(#18162e, #f3c267) transparent;
}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet {
+ padding: 0 15px;
+ padding-top: 36px;
+ width: 100%;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row {
+ display: flex;
+ gap: 5px;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0;
+ padding-top: 5px;
+ padding-bottom: 8px;
+ flex: 1;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row input[type='text'] {
+ font-size: 32px;
+ height: 42px;
+ text-align: start;
+ border: 1px solid transparent;
+ outline: 2px solid transparent;
+ transition: all 0.3s ease;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row input[type='text']:hover {
+ outline: 2px solid light-dark(#222, #f3c267);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row .level-div {
+ white-space: nowrap;
+ display: flex;
+ justify-content: end;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row .level-div .label {
+ display: flex;
+ align-items: center;
+ gap: 4px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row .level-div input {
+ width: 40px;
+ padding: 0;
+ text-align: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row .level-div .level-button {
+ color: light-dark(#222, #efe6d8);
+ font-size: 18px;
+ line-height: 1;
+ min-height: unset;
+ height: min-content;
+ padding: 4px;
+ font-family: 'Cinzel', serif;
+ margin: 0;
+ font-weight: normal;
+ border-color: light-dark(#18162e, #f3c267);
+ background-color: light-dark(transparent, #0e0d15);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .name-row .level-div .level-button:hover {
+ background-image: none;
+ background-color: var(--color-warm-2);
+ filter: drop-shadow(0 0 3px lightgray);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .tags {
+ display: flex;
+ gap: 10px;
+ padding-bottom: 16px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .tags .tag {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ padding: 3px 5px;
+ font-size: 12px;
+ font: 'Montserrat', sans-serif;
+ background: light-dark(#22222215, #efe6d815);
+ border: 1px solid light-dark(#222, #efe6d8);
+ border-radius: 3px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .tags .label {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ font-size: 12px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .adversary-info {
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ padding: 16px 0;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .adversary-info .description,
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .adversary-info .motives-and-tatics {
+ font-family: 'Montserrat', sans-serif;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .adversary-navigation {
+ display: flex;
+ gap: 8px;
+ align-items: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-details {
+ display: flex;
+ justify-content: space-between;
+ padding: 5px 0;
+ margin-bottom: 10px;
+ font-size: 12px;
+ color: light-dark(#18162e, #f3c267);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-details span {
+ padding: 3px;
+ border-radius: 3px;
+ transition: all 0.3s ease;
+ cursor: pointer;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-details span:hover {
+ background: light-dark(#18162e40, #f3c26740);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-details span.dot {
+ background: transparent;
+ cursor: default;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-row {
+ display: flex;
+ gap: 20px;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0;
+ margin-bottom: 15px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-traits {
+ display: flex;
+ justify-content: space-between;
+ padding: 0;
+ margin-bottom: 15px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-traits .trait {
+ height: 60px;
+ width: 60px;
+ background: url(../assets/svg/trait-shield.svg) no-repeat;
+ cursor: pointer;
+}
+.theme-light .application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-traits .trait {
+ background: url('../assets/svg/trait-shield-light.svg') no-repeat;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-traits .trait .trait-name {
+ display: flex;
+ padding-top: 5px;
+ color: light-dark(#18162e, #f3c267);
+ font-size: 14px;
+ font-weight: 600;
+ align-items: center;
+ justify-content: center;
+ gap: 3px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-traits .trait .trait-name i {
+ line-height: 17px;
+ font-size: 10px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-header-sheet .character-traits .trait .trait-value {
+ font-family: 'Montserrat', sans-serif;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 20px;
+ text-align: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .window-content {
+ display: grid;
+ grid-template-columns: 275px 1fr;
+ grid-template-rows: 283px 1fr;
+ gap: 15px 0;
+ height: 100%;
+ width: 100%;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .window-content .adversary-sidebar-sheet {
+ grid-row: 1 / span 2;
+ grid-column: 1;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .window-content .adversary-header-sheet {
+ grid-row: 1;
+ grid-column: 2;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .window-content .tab {
+ grid-row: 2;
+ grid-column: 2;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet {
+ width: 275px;
+ min-width: 275px;
+ border-right: 1px solid light-dark(#18162e, #f3c267);
+ background-image: url('../assets/parchments/dh-parchment-dark.png');
+}
+.theme-light .application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet {
+ background: transparent;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .portrait {
+ position: relative;
+ border-bottom: 1px solid light-dark(#18162e, #f3c267);
+ cursor: pointer;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .portrait img {
+ height: 235px;
+ width: 275px;
+ object-fit: cover;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .portrait .death-roll-btn {
+ display: none;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .portrait.death-roll {
+ filter: grayscale(1);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .portrait.death-roll .death-roll-btn {
+ display: flex;
+ position: absolute;
+ top: 30%;
+ right: 30%;
+ font-size: 6rem;
+ color: #efe6d8;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .portrait.death-roll .death-roll-btn:hover {
+ text-shadow: 0 0 8px #efe6d8;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .threshold-section {
+ position: relative;
+ display: flex;
+ gap: 10px;
+ background-color: light-dark(transparent, #18162e);
+ color: light-dark(#18162e, #f3c267);
+ padding: 5px 10px;
+ border: 1px solid light-dark(#18162e, #f3c267);
+ border-radius: 6px;
+ align-items: center;
+ width: fit-content;
+ height: 30px;
+ margin-top: 16px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .threshold-section h4 {
+ font-size: 14px;
+ font-weight: bold;
+ text-transform: uppercase;
+ color: light-dark(#18162e, #f3c267);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .threshold-section h4.threshold-value {
+ color: light-dark(#222, #efe6d8);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .threshold-section .threshold-legend {
+ position: absolute;
+ bottom: -21px;
+ color: light-dark(#f3c267, #18162e);
+ background-color: light-dark(#18162e, #f3c267);
+ padding: 3px;
+ justify-self: anchor-center;
+ border-radius: 0 0 3px 3px;
+ text-transform: capitalize;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .threshold-section .hope-value {
+ display: flex;
+ cursor: pointer;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ top: -20px;
+ gap: 16px;
+ margin-bottom: -10px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section {
+ display: flex;
+ justify-content: space-evenly;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar {
+ position: relative;
+ width: 100px;
+ height: 40px;
+ justify-items: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-label {
+ position: relative;
+ top: 40px;
+ height: 22px;
+ width: 79px;
+ clip-path: path('M0 0H79L74 16.5L39 22L4 16.5L0 0Z');
+ background: light-dark(#18162e, #f3c267);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-label h4 {
+ font-weight: bold;
+ text-align: center;
+ line-height: 18px;
+ color: light-dark(#efe6d8, #18162e);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-value {
+ position: absolute;
+ display: flex;
+ padding: 0 6px;
+ font-size: 1.5rem;
+ align-items: center;
+ width: 100px;
+ height: 40px;
+ justify-content: center;
+ text-align: center;
+ z-index: 2;
+ color: #efe6d8;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-value input[type='number'] {
+ background: transparent;
+ font-size: 1.5rem;
+ width: 40px;
+ height: 30px;
+ text-align: center;
+ border: none;
+ outline: 2px solid transparent;
+ color: #efe6d8;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-value input[type='number'].bar-input {
+ padding: 0;
+ color: #efe6d8;
+ backdrop-filter: none;
+ background: transparent;
+ transition: all 0.3s ease;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-value input[type='number'].bar-input:hover,
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-value input[type='number'].bar-input:focus {
+ background: rgba(24, 22, 46, 0.33);
+ backdrop-filter: blur(9.5px);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .status-value .bar-label {
+ width: 40px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar {
+ position: absolute;
+ appearance: none;
+ width: 100px;
+ height: 40px;
+ border: 1px solid light-dark(#18162e, #f3c267);
+ border-radius: 6px;
+ z-index: 1;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar::-webkit-progress-bar {
+ border: none;
+ background: #18162e;
+ border-radius: 6px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar::-webkit-progress-value {
+ background: linear-gradient(15deg, #46140a 0%, #be0000 42%, #fcb045 100%);
+ border-radius: 6px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar.stress-color::-webkit-progress-value {
+ background: linear-gradient(15deg, #823b01 0%, #fc8e45 65%, #be0000 100%);
+ border-radius: 6px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar::-moz-progress-value,
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar::-moz-progress-bar {
+ border-radius: 6px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar::-moz-progress-bar {
+ background: linear-gradient(15deg, #46140a 0%, #be0000 42%, #fcb045 100%);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .resources-section .status-bar .progress-bar.stress-color::-moz-progress-bar {
+ background: linear-gradient(15deg, #823b01 0%, #fc8e45 65%, #be0000 100%);
+ border-radius: 6px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .status-section {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+ justify-content: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .status-section .status-number {
+ justify-items: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .status-section .status-number .status-value {
+ position: relative;
+ display: flex;
+ width: 50px;
+ height: 30px;
+ border: 1px solid light-dark(#18162e, #f3c267);
+ border-bottom: none;
+ border-radius: 6px 6px 0 0;
+ padding: 0 6px;
+ font-size: 1.2rem;
+ align-items: center;
+ justify-content: center;
+ background: light-dark(transparent, #18162e);
+ z-index: 2;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .status-section .status-number .status-value.armor-slots {
+ width: 80px;
+ height: 30px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .status-section .status-number .status-label {
+ padding: 2px 10px;
+ width: 100%;
+ border-radius: 3px;
+ background: light-dark(#18162e, #f3c267);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .info-section .status-section .status-number .status-label h4 {
+ font-weight: bold;
+ text-align: center;
+ line-height: 18px;
+ font-size: 12px;
+ color: light-dark(#efe6d8, #18162e);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .items-sidebar-list {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .items-sidebar-list .inventory-item {
+ padding: 0 10px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .attack-section .title {
+ display: flex;
+ gap: 15px;
+ align-items: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .attack-section .title h3 {
+ font-size: 20px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .attack-section .items-list {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ align-items: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .title {
+ display: flex;
+ gap: 15px;
+ align-items: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .title h3 {
+ font-size: 20px;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .experience-list {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+ width: 100%;
+ margin-top: 10px;
+ align-items: center;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .experience-list .experience-row {
+ display: flex;
+ gap: 5px;
+ width: 250px;
+ align-items: center;
+ justify-content: space-between;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .experience-list .experience-row input[type='text'] {
+ height: 32px;
+ width: 180px;
+ border: 1px solid transparent;
+ outline: 2px solid transparent;
+ font-size: 14px;
+ font-family: 'Montserrat', sans-serif;
+ transition: all 0.3s ease;
+ color: light-dark(#222, #efe6d8);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .experience-list .experience-row input[type='text']:hover {
+ outline: 2px solid light-dark(#222, #efe6d8);
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .experience-list .experience-value {
+ height: 25px;
+ width: 35px;
+ font-size: 14px;
+ font-family: 'Montserrat', sans-serif;
+ color: light-dark(#222, #efe6d8);
+ align-content: center;
+ text-align: center;
+ background: url(../assets/svg/experience-shield.svg) no-repeat;
+}
+.theme-light .application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .experience-section .experience-list .experience-value {
+ background: url('../assets/svg/experience-shield-light.svg') no-repeat;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .reaction-section {
+ display: flex;
+ padding: 0 10px;
+ margin-top: 20px;
+ width: 100%;
+}
+.application.sheet.daggerheart.actor.dh-style.adversary .adversary-sidebar-sheet .reaction-section button {
+ width: 100%;
+}
+.application.daggerheart.dh-style.dialog .window-content .dialog-header {
+ width: 100%;
+ padding-bottom: 16px;
+}
+.application.daggerheart.dh-style.dialog .window-content .dialog-header h1 {
+ font-family: 'Cinzel', serif;
+ font-style: normal;
+ font-weight: 700;
+ font-size: 24px;
+ margin: 0;
+ text-align: center;
+ color: light-dark(#18162e, #f3c267);
+}
+.application.daggerheart.dh-style.dialog .tab.details.active,
+.application.daggerheart.dh-style.dialog .tab.attack.active {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+}
+.application.daggerheart.dh-style.dialog .tab .fieldsets-section {
+ display: flex;
+ gap: 16px;
+}
.application.sheet.daggerheart.actor.dh-style.adversary .window-content {
overflow: auto;
}
@@ -4446,11 +4944,43 @@ div.daggerheart.views.multiclass {
padding: 0 15px;
overflow-y: hidden;
}
-.application.sheet.dh-style {
+.theme-light .application.dialog.dh-style {
+ background-image: url('../assets/parchments/dh-parchment-light.png');
+ background-repeat: no-repeat;
+ background-position: center;
+}
+.theme-dark .application.dialog.dh-style {
+ background-image: url('../assets/parchments/dh-parchment-dark.png');
+ background-repeat: no-repeat;
+ background-position: center;
+}
+.application.dialog.dh-style {
+ border: none;
+}
+.application.dialog.dh-style .window-header {
+ background: transparent;
+ border-bottom: none;
+ color: light-dark(#18162e, #efe6d8);
+}
+.application.dialog.dh-style .window-header h1 {
+ color: light-dark(#18162e, #efe6d8);
+ font-family: 'Montserrat', sans-serif;
+}
+.application.dialog.dh-style .window-header button {
+ color: light-dark(#18162e, #efe6d8);
+ background: light-dark(transparent, #0e0d15);
+ border: 1px solid light-dark(#18162e, transparent);
+ padding: 0;
+}
+.application.dialog.dh-style .window-header button:hover {
+ border: 1px solid light-dark(#18162e, #f3c267);
+ color: light-dark(#18162e, #f3c267);
+}
+.application.dh-style {
border: 1px solid light-dark(#18162e, #f3c267);
}
-.application.sheet.dh-style input[type='text'],
-.application.sheet.dh-style input[type='number'] {
+.application.dh-style input[type='text'],
+.application.dh-style input[type='number'] {
background: light-dark(transparent, transparent);
border-radius: 6px;
box-shadow: 0 4px 30px rgba(0, 0, 0, 0.05);
@@ -4460,170 +4990,175 @@ div.daggerheart.views.multiclass {
color: light-dark(#18162e, #f3c267);
border: 1px solid light-dark(#222, #efe6d8);
}
-.application.sheet.dh-style input[type='text']:hover[type='text'],
-.application.sheet.dh-style input[type='number']:hover[type='text'],
-.application.sheet.dh-style input[type='text']:hover[type='number'],
-.application.sheet.dh-style input[type='number']:hover[type='number'],
-.application.sheet.dh-style input[type='text']:focus[type='text'],
-.application.sheet.dh-style input[type='number']:focus[type='text'],
-.application.sheet.dh-style input[type='text']:focus[type='number'],
-.application.sheet.dh-style input[type='number']:focus[type='number'] {
+.application.dh-style input[type='text']:hover[type='text'],
+.application.dh-style input[type='number']:hover[type='text'],
+.application.dh-style input[type='text']:hover[type='number'],
+.application.dh-style input[type='number']:hover[type='number'],
+.application.dh-style input[type='text']:focus[type='text'],
+.application.dh-style input[type='number']:focus[type='text'],
+.application.dh-style input[type='text']:focus[type='number'],
+.application.dh-style input[type='number']:focus[type='number'] {
background: light-dark(rgba(0, 0, 0, 0.05), rgba(24, 22, 46, 0.33));
box-shadow: none;
outline: 2px solid light-dark(#222, #efe6d8);
}
-.application.sheet.dh-style input[type='checkbox']:checked::after {
+.application.dh-style input[type='checkbox']:checked::after {
color: light-dark(#222, #f3c267);
}
-.application.sheet.dh-style input[type='checkbox']:checked::before {
+.application.dh-style input[type='checkbox']:checked::before {
color: light-dark(transparent, #18162e);
}
-.application.sheet.dh-style input[type='checkbox']::before {
+.application.dh-style input[type='checkbox']::before {
color: light-dark(#222, #efe6d8);
}
-.application.sheet.dh-style button {
+.application.dh-style button {
background: light-dark(transparent, #f3c267);
border: 1px solid light-dark(#18162e, #18162e);
color: light-dark(#18162e, #18162e);
outline: none;
box-shadow: none;
}
-.application.sheet.dh-style button:hover {
+.application.dh-style button:hover {
background: light-dark(rgba(0, 0, 0, 0.3), #18162e);
color: light-dark(#18162e, #f3c267);
}
-.application.sheet.dh-style button.glow {
+.application.dh-style button.glow {
animation: glow 0.75s infinite alternate;
}
-.application.sheet.dh-style select {
+.application.dh-style select {
background: light-dark(transparent, transparent);
color: light-dark(#222, #efe6d8);
font-family: 'Montserrat', sans-serif;
outline: 2px solid transparent;
border: 1px solid light-dark(#222, #efe6d8);
}
-.application.sheet.dh-style select:focus,
-.application.sheet.dh-style select:hover {
+.application.dh-style select:focus,
+.application.dh-style select:hover {
outline: 2px solid light-dark(#222, #efe6d8);
box-shadow: none;
}
-.application.sheet.dh-style select option {
+.application.dh-style select option {
color: #efe6d8;
background-color: #18162e;
border-radius: 6px;
}
-.application.sheet.dh-style p {
+.application.dh-style p {
margin: 0;
}
-.application.sheet.dh-style ul {
+.application.dh-style ul {
margin: 0;
padding: 0;
list-style: none;
}
-.application.sheet.dh-style li {
+.application.dh-style li {
margin: 0;
}
-.application.sheet.dh-style a:hover,
-.application.sheet.dh-style a.active {
+.application.dh-style a:hover,
+.application.dh-style a.active {
+ font-weight: bold;
text-shadow: 0 0 8px light-dark(#18162e, #f3c267);
}
-.application.sheet.dh-style fieldset {
+.application.dh-style fieldset {
align-items: center;
margin-top: 5px;
border-radius: 6px;
border-color: light-dark(#18162e, #f3c267);
}
-.application.sheet.dh-style fieldset.glassy {
+.application.dh-style fieldset.glassy {
background-color: light-dark(#18162e10, #f3c26710);
border-color: transparent;
}
-.application.sheet.dh-style fieldset.glassy legend {
+.application.dh-style fieldset.glassy legend {
padding: 2px 12px;
border-radius: 3px;
background-color: light-dark(#18162e, #f3c267);
color: light-dark(#efe6d8, #18162e);
}
-.application.sheet.dh-style fieldset.flex {
+.application.dh-style fieldset.flex {
display: flex;
gap: 20px;
}
-.application.sheet.dh-style fieldset.one-column {
+.application.dh-style fieldset.one-column {
display: flex;
flex-direction: column;
align-items: start;
gap: 10px;
min-height: 64px;
}
-.application.sheet.dh-style fieldset.two-columns {
+.application.dh-style fieldset.two-columns {
display: grid;
grid-template-columns: 1fr 2fr;
gap: 10px;
}
-.application.sheet.dh-style fieldset.two-columns.even {
+.application.dh-style fieldset.two-columns.even {
grid-template-columns: 1fr 1fr;
}
-.application.sheet.dh-style fieldset.two-columns .full-width {
+.application.dh-style fieldset.two-columns .full-width {
grid-column: span 2;
}
-.application.sheet.dh-style fieldset legend {
+.application.dh-style fieldset legend {
font-family: 'Montserrat', sans-serif;
font-weight: bold;
color: light-dark(#18162e, #f3c267);
}
-.application.sheet.dh-style fieldset input[type='text'],
-.application.sheet.dh-style fieldset input[type='number'] {
+.application.dh-style fieldset input[type='text'],
+.application.dh-style fieldset input[type='number'] {
color: light-dark(#222, #efe6d8);
font-family: 'Montserrat', sans-serif;
transition: all 0.3s ease;
outline: 2px solid transparent;
}
-.application.sheet.dh-style fieldset input[type='text']:focus,
-.application.sheet.dh-style fieldset input[type='number']:focus,
-.application.sheet.dh-style fieldset input[type='text']:hover,
-.application.sheet.dh-style fieldset input[type='number']:hover {
+.application.dh-style fieldset input[type='text']:focus,
+.application.dh-style fieldset input[type='number']:focus,
+.application.dh-style fieldset input[type='text']:hover,
+.application.dh-style fieldset input[type='number']:hover {
outline: 2px solid light-dark(#222, #efe6d8);
}
-.application.sheet.dh-style fieldset .nest-inputs {
+.application.dh-style fieldset .nest-inputs {
display: flex;
align-items: center;
+ width: 100%;
gap: 5px;
}
-.application.sheet.dh-style fieldset .form-group label {
+.application.dh-style fieldset .form-group {
+ width: 100%;
+}
+.application.dh-style fieldset .form-group label {
font-family: 'Montserrat', sans-serif;
font-weight: bold;
font-size: smaller;
}
-.application.sheet.dh-style .two-columns {
+.application.dh-style .two-columns {
display: grid;
grid-template-columns: 1fr 2fr;
gap: 10px;
}
-.application.sheet.dh-style .two-columns.even {
+.application.dh-style .two-columns.even {
grid-template-columns: 1fr 1fr;
}
-.application.sheet.dh-style line-div {
+.application.dh-style line-div {
display: block;
height: 1px;
width: 100%;
border-bottom: 1px solid light-dark(#18162e, #f3c267);
mask-image: linear-gradient(270deg, transparent 0%, black 50%, transparent 100%);
}
-.application.sheet.dh-style side-line-div {
+.application.dh-style side-line-div {
display: block;
height: 1px;
width: 100%;
border-bottom: 1px solid light-dark(#18162e, #f3c267);
mask-image: linear-gradient(270deg, transparent 0%, black 100%);
}
-.application.sheet.dh-style side-line-div.invert {
+.application.dh-style side-line-div.invert {
mask-image: linear-gradient(270deg, black 0%, transparent 100%);
}
-.application.sheet.dh-style .item-description {
+.application.dh-style .item-description {
opacity: 1;
transform: translateY(0);
transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
-.application.sheet.dh-style .item-description.invisible {
+.application.dh-style .item-description.invisible {
height: 0;
opacity: 0;
overflow: hidden;
@@ -4809,14 +5344,15 @@ div.daggerheart.views.multiclass {
position: relative;
right: 2px;
}
-.sheet.daggerheart.dh-style .tab-navigation {
+.daggerheart.dh-style .tab-navigation {
margin: 5px 0;
height: 40px;
+ width: 100%;
}
-.sheet.daggerheart.dh-style .tab-navigation .feature-tab {
+.daggerheart.dh-style .tab-navigation .feature-tab {
border: none;
}
-.sheet.daggerheart.dh-style .tab-navigation .feature-tab a {
+.daggerheart.dh-style .tab-navigation .feature-tab a {
color: light-dark(#18162e, #f3c267);
font-family: 'Montserrat', sans-serif;
}
@@ -5066,13 +5602,13 @@ div.daggerheart.views.multiclass {
.sheet.daggerheart.dh-style.item .tab.features .feature-list .feature-item .feature-line .controls a {
text-shadow: none;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item {
+.application.sheet.daggerheart.actor.dh-style .inventory-item {
display: grid;
grid-template-columns: 40px 1fr 60px;
gap: 10px;
width: 100%;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-img {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-img {
height: 40px;
width: 40px;
border-radius: 3px;
@@ -5080,20 +5616,20 @@ div.daggerheart.views.multiclass {
cursor: pointer;
object-fit: cover;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label {
font-family: 'Montserrat', sans-serif;
align-self: center;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label .item-name {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label .item-name {
font-size: 14px;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label .item-tags,
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label .item-labels {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label .item-tags,
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label .item-labels {
display: flex;
gap: 10px;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label .item-tags .tag,
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label .item-labels .tag {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label .item-tags .tag,
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label .item-labels .tag {
display: flex;
flex-direction: row;
justify-content: center;
@@ -5104,27 +5640,27 @@ div.daggerheart.views.multiclass {
border: 1px solid light-dark(#222, #efe6d8);
border-radius: 3px;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label .item-tags .label,
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .item-label .item-labels .label {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label .item-tags .label,
+.application.sheet.daggerheart.actor.dh-style .inventory-item .item-label .item-labels .label {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
font-size: 12px;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .controls {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .controls {
display: flex;
align-items: center;
justify-content: end;
gap: 8px;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .controls a {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .controls a {
text-align: center;
}
-.application.sheet.daggerheart.actor.dh-style.character .inventory-item .controls a.unequipped {
+.application.sheet.daggerheart.actor.dh-style .inventory-item .controls a.unequipped {
opacity: 0.4;
}
-.application.sheet.daggerheart.actor.dh-style.character .card-item {
+.application.sheet.daggerheart.actor.dh-style .card-item {
position: relative;
height: 120px;
width: 100px;
@@ -5132,21 +5668,21 @@ div.daggerheart.views.multiclass {
border-radius: 6px;
cursor: pointer;
}
-.application.sheet.daggerheart.actor.dh-style.character .card-item:hover .card-label {
+.application.sheet.daggerheart.actor.dh-style .card-item:hover .card-label {
padding-top: 15px;
}
-.application.sheet.daggerheart.actor.dh-style.character .card-item:hover .card-label .controls {
+.application.sheet.daggerheart.actor.dh-style .card-item:hover .card-label .controls {
opacity: 1;
visibility: visible;
transition: all 0.3s ease;
max-height: 16px;
}
-.application.sheet.daggerheart.actor.dh-style.character .card-item .card-img {
+.application.sheet.daggerheart.actor.dh-style .card-item .card-img {
height: 100%;
width: 100%;
object-fit: cover;
}
-.application.sheet.daggerheart.actor.dh-style.character .card-item .card-label {
+.application.sheet.daggerheart.actor.dh-style .card-item .card-label {
display: flex;
flex-direction: column;
height: fit-content;
@@ -5160,7 +5696,7 @@ div.daggerheart.views.multiclass {
bottom: 0;
mask-image: linear-gradient(180deg, transparent 0%, black 20%);
}
-.application.sheet.daggerheart.actor.dh-style.character .card-item .card-label .card-name {
+.application.sheet.daggerheart.actor.dh-style .card-item .card-label .card-name {
font-family: 'Montserrat', sans-serif;
font-style: normal;
font-weight: 400;
@@ -5168,7 +5704,7 @@ div.daggerheart.views.multiclass {
line-height: 15px;
color: #efe6d8;
}
-.application.sheet.daggerheart.actor.dh-style.character .card-item .card-label .controls {
+.application.sheet.daggerheart.actor.dh-style .card-item .card-label .controls {
display: flex;
gap: 15px;
align-items: center;
diff --git a/styles/daggerheart.less b/styles/daggerheart.less
index 4a4cf3d2..57b8c969 100755
--- a/styles/daggerheart.less
+++ b/styles/daggerheart.less
@@ -25,6 +25,13 @@
@import './less/actors/character/biography.less';
@import './less/actors/character/features.less';
+@import './less/actors/adversary/header.less';
+@import './less/actors/adversary/sheet.less';
+@import './less/actors/adversary/sidebar.less';
+
+@import './less/applications/header.less';
+@import './less/applications/adversary/sheet.less';
+
@import './less/actors/adversary.less';
@import './less/actors/environment.less';
@@ -36,6 +43,7 @@
@import './less/utils/fonts.less';
@import './less/global/sheet.less';
+@import './less/global/dialog.less';
@import './less/global/elements.less';
@import './less/global/tab-navigation.less';
@import './less/global/tab-form-footer.less';
diff --git a/styles/less/actors/adversary/header.less b/styles/less/actors/adversary/header.less
new file mode 100644
index 00000000..0cc1c4c5
--- /dev/null
+++ b/styles/less/actors/adversary/header.less
@@ -0,0 +1,196 @@
+@import '../../utils/colors.less';
+@import '../../utils/fonts.less';
+
+.application.sheet.daggerheart.actor.dh-style.adversary {
+ .adversary-header-sheet {
+ padding: 0 15px;
+ padding-top: 36px;
+ width: 100%;
+
+ .name-row {
+ display: flex;
+ gap: 5px;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0;
+ padding-top: 5px;
+ padding-bottom: 8px;
+ flex: 1;
+
+ input[type='text'] {
+ font-size: 32px;
+ height: 42px;
+ text-align: start;
+ border: 1px solid transparent;
+ outline: 2px solid transparent;
+ transition: all 0.3s ease;
+
+ &:hover {
+ outline: 2px solid light-dark(@dark, @golden);
+ }
+ }
+
+ .level-div {
+ white-space: nowrap;
+ display: flex;
+ justify-content: end;
+
+ .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: 18px;
+ 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);
+ }
+ }
+ }
+ }
+
+ .tags {
+ display: flex;
+ gap: 10px;
+ padding-bottom: 16px;
+
+ .tag {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ padding: 3px 5px;
+ font-size: 12px;
+ font: @font-body;
+
+ background: light-dark(@dark-15, @beige-15);
+ border: 1px solid light-dark(@dark, @beige);
+ border-radius: 3px;
+ }
+
+ .label {
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ font-size: 12px;
+ }
+ }
+
+ .adversary-info {
+ display: flex;
+ flex-direction: column;
+ gap: 12px;
+ padding: 16px 0;
+
+ .description,
+ .motives-and-tatics {
+ font-family: @font-body;
+ }
+ }
+
+ .adversary-navigation {
+ display: flex;
+ gap: 8px;
+ align-items: center;
+ }
+
+ .character-details {
+ display: flex;
+ justify-content: space-between;
+ padding: 5px 0;
+ margin-bottom: 10px;
+ font-size: 12px;
+ color: light-dark(@dark-blue, @golden);
+
+ 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;
+ gap: 20px;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0;
+ margin-bottom: 15px;
+ }
+
+ .character-traits {
+ display: flex;
+ justify-content: space-between;
+ padding: 0;
+ margin-bottom: 15px;
+
+ .trait {
+ height: 60px;
+ width: 60px;
+ background: url(../assets/svg/trait-shield.svg) no-repeat;
+
+ cursor: pointer;
+
+ .theme-light & {
+ background: url('../assets/svg/trait-shield-light.svg') no-repeat;
+ }
+
+ .trait-name {
+ display: flex;
+ align-items: center;
+ padding-top: 5px;
+ color: light-dark(@dark-blue, @golden);
+ font-size: 14px;
+ font-weight: 600;
+ align-items: center;
+ justify-content: center;
+ gap: 3px;
+
+ i {
+ line-height: 17px;
+ font-size: 10px;
+ }
+ }
+
+ .trait-value {
+ font-family: @font-body;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 20px;
+ text-align: center;
+ }
+ }
+ }
+ }
+}
diff --git a/styles/less/actors/adversary/sheet.less b/styles/less/actors/adversary/sheet.less
new file mode 100644
index 00000000..87bb9652
--- /dev/null
+++ b/styles/less/actors/adversary/sheet.less
@@ -0,0 +1,28 @@
+@import '../../utils/colors.less';
+@import '../../utils/fonts.less';
+
+.application.sheet.daggerheart.actor.dh-style.adversary {
+ .window-content {
+ display: grid;
+ grid-template-columns: 275px 1fr;
+ grid-template-rows: 283px 1fr;
+ gap: 15px 0;
+ height: 100%;
+ width: 100%;
+
+ .adversary-sidebar-sheet {
+ grid-row: 1 / span 2;
+ grid-column: 1;
+ }
+
+ .adversary-header-sheet {
+ grid-row: 1;
+ grid-column: 2;
+ }
+
+ .tab {
+ grid-row: 2;
+ grid-column: 2;
+ }
+ }
+}
diff --git a/styles/less/actors/adversary/sidebar.less b/styles/less/actors/adversary/sidebar.less
new file mode 100644
index 00000000..f3f1d6b1
--- /dev/null
+++ b/styles/less/actors/adversary/sidebar.less
@@ -0,0 +1,349 @@
+@import '../../utils/colors.less';
+@import '../../utils/fonts.less';
+
+.application.sheet.daggerheart.actor.dh-style.adversary {
+ .adversary-sidebar-sheet {
+ width: 275px;
+ min-width: 275px;
+ border-right: 1px solid light-dark(@dark-blue, @golden);
+ background-image: url('../assets/parchments/dh-parchment-dark.png');
+
+ .theme-light & {
+ background: transparent;
+ }
+
+ .portrait {
+ position: relative;
+ border-bottom: 1px solid light-dark(@dark-blue, @golden);
+ cursor: pointer;
+
+ img {
+ height: 235px;
+ width: 275px;
+ object-fit: cover;
+ }
+
+ .death-roll-btn {
+ display: none;
+ }
+
+ &.death-roll {
+ filter: grayscale(1);
+
+ .death-roll-btn {
+ display: flex;
+ position: absolute;
+ top: 30%;
+ right: 30%;
+ font-size: 6rem;
+ color: @beige;
+
+ &:hover {
+ text-shadow: 0 0 8px @beige;
+ }
+ }
+ }
+ }
+
+ .threshold-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;
+ margin-top: 16px;
+
+ h4 {
+ font-size: 14px;
+ font-weight: bold;
+ text-transform: uppercase;
+ color: light-dark(@dark-blue, @golden);
+
+ &.threshold-value {
+ color: light-dark(@dark, @beige);
+ }
+ }
+
+ .threshold-legend {
+ position: absolute;
+ bottom: -21px;
+ color: light-dark(@golden, @dark-blue);
+ background-color: light-dark(@dark-blue, @golden);
+ padding: 3px;
+ justify-self: anchor-center;
+ border-radius: 0 0 3px 3px;
+ text-transform: capitalize;
+ }
+
+ .hope-value {
+ display: flex;
+ cursor: pointer;
+ }
+ }
+
+ .info-section {
+ position: relative;
+ display: flex;
+ flex-direction: column;
+ top: -20px;
+ gap: 16px;
+ margin-bottom: -10px;
+
+ .resources-section {
+ display: flex;
+ justify-content: space-evenly;
+
+ .status-bar {
+ position: relative;
+ width: 100px;
+ height: 40px;
+ justify-items: center;
+
+ .status-label {
+ position: relative;
+ top: 40px;
+ height: 22px;
+ width: 79px;
+ clip-path: path('M0 0H79L74 16.5L39 22L4 16.5L0 0Z');
+ background: light-dark(@dark-blue, @golden);
+
+ h4 {
+ font-weight: bold;
+ text-align: center;
+ line-height: 18px;
+ color: light-dark(@beige, @dark-blue);
+ }
+ }
+ .status-value {
+ position: absolute;
+ display: flex;
+ padding: 0 6px;
+ font-size: 1.5rem;
+ align-items: center;
+ width: 100px;
+ height: 40px;
+ justify-content: center;
+ text-align: center;
+ z-index: 2;
+ color: @beige;
+
+ input[type='number'] {
+ background: transparent;
+ font-size: 1.5rem;
+ width: 40px;
+ height: 30px;
+ text-align: center;
+ border: none;
+ outline: 2px solid transparent;
+ color: @beige;
+
+ &.bar-input {
+ padding: 0;
+ color: @beige;
+ backdrop-filter: none;
+ background: transparent;
+ transition: all 0.3s ease;
+
+ &:hover,
+ &:focus {
+ background: @semi-transparent-dark-blue;
+ backdrop-filter: blur(9.5px);
+ }
+ }
+ }
+
+ .bar-label {
+ width: 40px;
+ }
+ }
+ .progress-bar {
+ position: absolute;
+ appearance: none;
+ width: 100px;
+ height: 40px;
+ border: 1px solid light-dark(@dark-blue, @golden);
+ border-radius: 6px;
+ z-index: 1;
+
+ &::-webkit-progress-bar {
+ border: none;
+ background: @dark-blue;
+ border-radius: 6px;
+ }
+ &::-webkit-progress-value {
+ background: @gradient-hp;
+ border-radius: 6px;
+ }
+ &.stress-color::-webkit-progress-value {
+ background: @gradient-stress;
+ border-radius: 6px;
+ }
+ &::-moz-progress-value,
+ &::-moz-progress-bar {
+ border-radius: 6px;
+ }
+
+ &::-moz-progress-bar {
+ background: @gradient-hp;
+ }
+ &.stress-color::-moz-progress-bar {
+ background: @gradient-stress;
+ border-radius: 6px;
+ }
+ }
+ }
+ }
+
+ .status-section {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 10px;
+ justify-content: center;
+
+ .status-number {
+ justify-items: center;
+
+ .status-value {
+ position: relative;
+ display: flex;
+ width: 50px;
+ height: 30px;
+ border: 1px solid light-dark(@dark-blue, @golden);
+ border-bottom: none;
+ border-radius: 6px 6px 0 0;
+ padding: 0 6px;
+ font-size: 1.2rem;
+ align-items: center;
+ justify-content: center;
+ background: light-dark(transparent, @dark-blue);
+ z-index: 2;
+
+ &.armor-slots {
+ width: 80px;
+ height: 30px;
+ }
+ }
+
+ .status-label {
+ padding: 2px 10px;
+ width: 100%;
+ border-radius: 3px;
+ background: light-dark(@dark-blue, @golden);
+
+ h4 {
+ font-weight: bold;
+ text-align: center;
+ line-height: 18px;
+ font-size: 12px;
+ color: light-dark(@beige, @dark-blue);
+ }
+ }
+ }
+ }
+ }
+
+ .items-sidebar-list {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+
+ .inventory-item {
+ padding: 0 10px;
+ }
+ }
+
+ .attack-section {
+ .title {
+ display: flex;
+ gap: 15px;
+ align-items: center;
+
+ h3 {
+ font-size: 20px;
+ }
+ }
+ .items-list {
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ align-items: center;
+ }
+ }
+
+ .experience-section {
+ .title {
+ display: flex;
+ gap: 15px;
+ align-items: center;
+
+ h3 {
+ font-size: 20px;
+ }
+ }
+
+ .experience-list {
+ display: flex;
+ flex-direction: column;
+ gap: 5px;
+ width: 100%;
+ margin-top: 10px;
+ align-items: center;
+
+ .experience-row {
+ display: flex;
+ gap: 5px;
+ width: 250px;
+ align-items: center;
+ justify-content: space-between;
+
+ input[type='text'] {
+ height: 32px;
+ width: 180px;
+ border: 1px solid transparent;
+ outline: 2px solid transparent;
+ font-size: 14px;
+ font-family: @font-body;
+ transition: all 0.3s ease;
+ color: light-dark(@dark, @beige);
+
+ &:hover {
+ outline: 2px solid light-dark(@dark, @beige);
+ }
+ }
+ }
+
+ .experience-value {
+ height: 25px;
+ width: 35px;
+ font-size: 14px;
+ font-family: @font-body;
+ color: light-dark(@dark, @beige);
+ align-content: center;
+ text-align: center;
+ background: url(../assets/svg/experience-shield.svg) no-repeat;
+
+ .theme-light & {
+ background: url('../assets/svg/experience-shield-light.svg') no-repeat;
+ }
+ }
+ }
+ }
+
+ .reaction-section {
+ display: flex;
+ padding: 0 10px;
+ margin-top: 20px;
+ width: 100%;
+
+ button {
+ width: 100%;
+ }
+ }
+ }
+}
diff --git a/styles/less/actors/character/sheet.less b/styles/less/actors/character/sheet.less
index 6ca1ca4f..0959d146 100644
--- a/styles/less/actors/character/sheet.less
+++ b/styles/less/actors/character/sheet.less
@@ -24,9 +24,5 @@
grid-row: 2;
grid-column: 2;
}
-
- .old-sheet {
- width: 500px;
- }
}
}
diff --git a/styles/less/actors/character/sidebar.less b/styles/less/actors/character/sidebar.less
index bde3996c..fb237746 100644
--- a/styles/less/actors/character/sidebar.less
+++ b/styles/less/actors/character/sidebar.less
@@ -14,8 +14,6 @@
.portrait {
position: relative;
- height: 235px;
- width: 275px;
border-bottom: 1px solid light-dark(@dark-blue, @golden);
cursor: pointer;
diff --git a/styles/less/applications/adversary/sheet.less b/styles/less/applications/adversary/sheet.less
new file mode 100644
index 00000000..5fd80b60
--- /dev/null
+++ b/styles/less/applications/adversary/sheet.less
@@ -0,0 +1,18 @@
+@import '../../utils/colors.less';
+@import '../../utils/fonts.less';
+
+.application.daggerheart.dh-style.dialog {
+ .tab {
+ &.details.active,
+ &.attack.active {
+ display: flex;
+ flex-direction: column;
+ gap: 16px;
+ }
+
+ .fieldsets-section {
+ display: flex;
+ gap: 16px;
+ }
+ }
+}
diff --git a/styles/less/applications/header.less b/styles/less/applications/header.less
new file mode 100644
index 00000000..209037ef
--- /dev/null
+++ b/styles/less/applications/header.less
@@ -0,0 +1,20 @@
+@import '../utils/colors.less';
+@import '../utils/fonts.less';
+
+.application.daggerheart.dh-style.dialog {
+ .window-content {
+ .dialog-header {
+ width: 100%;
+ padding-bottom: 16px;
+ h1 {
+ font-family: @font-subtitle;
+ font-style: normal;
+ font-weight: 700;
+ font-size: 24px;
+ margin: 0;
+ text-align: center;
+ color: light-dark(@dark-blue, @golden);
+ }
+ }
+ }
+}
diff --git a/styles/less/global/dialog.less b/styles/less/global/dialog.less
new file mode 100644
index 00000000..5db641b2
--- /dev/null
+++ b/styles/less/global/dialog.less
@@ -0,0 +1,45 @@
+@import '../utils/colors.less';
+@import '../utils/fonts.less';
+
+.theme-light {
+ .application.dialog.dh-style {
+ background-image: url('../assets/parchments/dh-parchment-light.png');
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+}
+
+.theme-dark {
+ .application.dialog.dh-style {
+ background-image: url('../assets/parchments/dh-parchment-dark.png');
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+}
+
+.application.dialog.dh-style {
+ border: none;
+
+ .window-header {
+ background: transparent;
+ border-bottom: none;
+ color: light-dark(@dark-blue, @beige);
+
+ h1 {
+ color: light-dark(@dark-blue, @beige);
+ font-family: @font-body;
+ }
+
+ button {
+ color: light-dark(@dark-blue, @beige);
+ background: light-dark(transparent, @deep-black);
+ border: 1px solid light-dark(@dark-blue, transparent);
+ padding: 0;
+
+ &:hover {
+ border: 1px solid light-dark(@dark-blue, @golden);
+ color: light-dark(@dark-blue, @golden);
+ }
+ }
+ }
+}
diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less
index c4745a16..101ccadf 100755
--- a/styles/less/global/elements.less
+++ b/styles/less/global/elements.less
@@ -1,7 +1,7 @@
@import '../utils/colors.less';
@import '../utils/fonts.less';
-.application.sheet.dh-style {
+.application.dh-style {
border: 1px solid light-dark(@dark-blue, @golden);
input[type='text'],
@@ -90,6 +90,7 @@
a:hover,
a.active {
+ font-weight: bold;
text-shadow: 0 0 8px light-dark(@dark-blue, @golden);
}
@@ -160,10 +161,12 @@
.nest-inputs {
display: flex;
align-items: center;
+ width: 100%;
gap: 5px;
}
.form-group {
+ width: 100%;
label {
font-family: @font-body;
font-weight: bold;
diff --git a/styles/less/global/inventory-item.less b/styles/less/global/inventory-item.less
index a14bd83e..d5b854b7 100644
--- a/styles/less/global/inventory-item.less
+++ b/styles/less/global/inventory-item.less
@@ -1,7 +1,7 @@
@import '../utils/colors.less';
@import '../utils/fonts.less';
-.application.sheet.daggerheart.actor.dh-style.character {
+.application.sheet.daggerheart.actor.dh-style {
.inventory-item {
display: grid;
grid-template-columns: 40px 1fr 60px;
diff --git a/styles/less/global/tab-navigation.less b/styles/less/global/tab-navigation.less
index a13c7ea2..2880711d 100755
--- a/styles/less/global/tab-navigation.less
+++ b/styles/less/global/tab-navigation.less
@@ -1,10 +1,11 @@
@import '../utils/colors.less';
@import '../utils/fonts.less';
-.sheet.daggerheart.dh-style {
+.daggerheart.dh-style {
.tab-navigation {
margin: 5px 0;
height: 40px;
+ width: 100%;
.feature-tab {
border: none;
diff --git a/templates/sheets/actors/adversary/effects.hbs b/templates/sheets/actors/adversary/effects.hbs
new file mode 100644
index 00000000..9046fff8
--- /dev/null
+++ b/templates/sheets/actors/adversary/effects.hbs
@@ -0,0 +1,8 @@
+
+ {{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'DAGGERHEART.Sheets.Global.activeEffects') type='effect'}}
+ {{> 'systems/daggerheart/templates/sheets/global/partials/inventory-fieldset-items.hbs' title=(localize 'DAGGERHEART.Sheets.Global.inativeEffects') type='effect'}}
+
\ No newline at end of file
diff --git a/templates/sheets/actors/adversary/features.hbs b/templates/sheets/actors/adversary/features.hbs
new file mode 100644
index 00000000..a89c0625
--- /dev/null
+++ b/templates/sheets/actors/adversary/features.hbs
@@ -0,0 +1,7 @@
+
\ No newline at end of file
diff --git a/templates/sheets/actors/adversary/header.hbs b/templates/sheets/actors/adversary/header.hbs
index e3914c32..e4fcd40e 100644
--- a/templates/sheets/actors/adversary/header.hbs
+++ b/templates/sheets/actors/adversary/header.hbs
@@ -1,9 +1,33 @@
-