mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-12 03:31:07 +01:00
rework adversary templates, add setting dialog to adversary and fix erratas
This commit is contained in:
parent
19cc10a3c9
commit
31b2423da4
32 changed files with 1765 additions and 210 deletions
57
lang/en.json
57
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": {
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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;
|
||||
118
module/applications/sheets/applications/adversary-settings.mjs
Normal file
118
module/applications/sheets/applications/adversary-settings.mjs
Normal file
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
@ -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'
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -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({
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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';
|
||||
|
|
|
|||
196
styles/less/actors/adversary/header.less
Normal file
196
styles/less/actors/adversary/header.less
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
28
styles/less/actors/adversary/sheet.less
Normal file
28
styles/less/actors/adversary/sheet.less
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
349
styles/less/actors/adversary/sidebar.less
Normal file
349
styles/less/actors/adversary/sidebar.less
Normal file
|
|
@ -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%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -24,9 +24,5 @@
|
|||
grid-row: 2;
|
||||
grid-column: 2;
|
||||
}
|
||||
|
||||
.old-sheet {
|
||||
width: 500px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@
|
|||
|
||||
.portrait {
|
||||
position: relative;
|
||||
height: 235px;
|
||||
width: 275px;
|
||||
border-bottom: 1px solid light-dark(@dark-blue, @golden);
|
||||
cursor: pointer;
|
||||
|
||||
|
|
|
|||
18
styles/less/applications/adversary/sheet.less
Normal file
18
styles/less/applications/adversary/sheet.less
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
20
styles/less/applications/header.less
Normal file
20
styles/less/applications/header.less
Normal file
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
45
styles/less/global/dialog.less
Normal file
45
styles/less/global/dialog.less
Normal file
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
8
templates/sheets/actors/adversary/effects.hbs
Normal file
8
templates/sheets/actors/adversary/effects.hbs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<section
|
||||
class='tab {{tabs.effects.cssClass}} {{tabs.effects.id}}'
|
||||
data-tab='{{tabs.effects.id}}'
|
||||
data-group='{{tabs.effects.group}}'
|
||||
>
|
||||
{{> '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'}}
|
||||
</section>
|
||||
7
templates/sheets/actors/adversary/features.hbs
Normal file
7
templates/sheets/actors/adversary/features.hbs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<section
|
||||
class='tab {{tabs.features.cssClass}} {{tabs.features.id}}'
|
||||
data-tab='{{tabs.features.id}}'
|
||||
data-group='{{tabs.features.group}}'
|
||||
>
|
||||
<h2>features</h2>
|
||||
</section>
|
||||
|
|
@ -1,9 +1,33 @@
|
|||
<header class='item-card-header'>
|
||||
<img class='profile' src='{{source.img}}' data-action='editImage' data-edit='img' />
|
||||
<div class='item-info'>
|
||||
<h1 class='item-name'><input type='text' name='name' value='{{source.name}}' /></h1>
|
||||
<div class='item-description'>
|
||||
<h3>{{localize 'TYPES.Actor.adversary'}}</h3>
|
||||
<header class='adversary-header-sheet'>
|
||||
<line-div></line-div>
|
||||
<div class="name-row">
|
||||
<h1 class='actor-name'>
|
||||
<input type='text' name='name' value='{{source.name}}' placeholder='Actor Name'
|
||||
/>
|
||||
</h1>
|
||||
</div>
|
||||
<div class="tags">
|
||||
<div class="tag">
|
||||
{{localize (concat 'DAGGERHEART.Tiers.' source.system.tier)}}
|
||||
</div>
|
||||
<div class="tag">
|
||||
{{localize (concat 'DAGGERHEART.Adversary.Type.' source.system.type '.label')}}
|
||||
</div>
|
||||
</div>
|
||||
<line-div></line-div>
|
||||
<div class="adversary-info">
|
||||
<div class="description">
|
||||
<i>{{source.system.description}}</i>
|
||||
</div>
|
||||
<div class="motives-and-tatics">
|
||||
<b>{{localize 'DAGGERHEART.Sheets.Adversary.FIELDS.motivesAndTactics.label'}}: </b>{{{source.system.motivesAndTactics}}}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="adversary-navigation">
|
||||
{{> 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs'}}
|
||||
<button data-action="openSettings">
|
||||
<i class="fa-solid fa-wrench"></i>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
|
@ -4,33 +4,26 @@
|
|||
data-group='{{tabs.main.group}}'
|
||||
>
|
||||
<div class="adversary-container">
|
||||
<button data-action="reactionRoll">Reaction Test</button>
|
||||
<fieldset class="two-columns even">
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.General"}}</legend>
|
||||
|
||||
{{formGroup systemFields.tier value=source.system.tier localize=true}}
|
||||
{{formGroup systemFields.type value=source.system.type localize=true}}
|
||||
|
||||
<div class="full-width">{{formGroup systemFields.difficulty value=source.system.difficulty}}</div>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.DamageThresholds"}}</legend>
|
||||
|
||||
{{formGroup systemFields.damageThresholds.fields.major value=source.system.damageThresholds.major}}
|
||||
{{formGroup systemFields.damageThresholds.fields.severe value=source.system.damageThresholds.severe}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.HitPoints"}}</legend>
|
||||
|
||||
<!--
|
||||
{{formGroup systemFields.resources.fields.hitPoints.fields.value value=source.system.resources.hitPoints.value}}
|
||||
{{formGroup systemFields.resources.fields.hitPoints.fields.max value=source.system.resources.hitPoints.max}}
|
||||
-->
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.Stress"}}</legend>
|
||||
|
||||
<!--
|
||||
{{formGroup systemFields.resources.fields.stress.fields.value value=source.system.resources.stress.value}}
|
||||
{{formGroup systemFields.resources.fields.stress.fields.max value=source.system.resources.stress.max}}
|
||||
-->
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
|
|
@ -46,35 +39,5 @@
|
|||
{{/each}}
|
||||
</fieldset>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="two-columns even">
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.Attack"}}</legend>
|
||||
<button data-action="attackConfigure">Configure</button>
|
||||
<button data-action="attackRoll">Attack</button>
|
||||
<fieldset class="action-category" style="grid-column: 1 / -1;">
|
||||
<legend class="action-category-label" data-action="toggleSection" data-section="range">
|
||||
<div>Name</div>
|
||||
</legend>
|
||||
<div class="action-category-data open">
|
||||
{{formGroup systemFields.attack.fields.name value=source.system.attack.name name="system.attack.name"}}
|
||||
{{formGroup systemFields.attack.fields.img value=source.img label="Icon" name="system.attack.img"}}
|
||||
</div>
|
||||
</fieldset>
|
||||
<div>
|
||||
<fieldset class="action-category">
|
||||
<legend class="action-category-label" data-action="toggleSection" data-section="range">
|
||||
<div>Bonus to Hit</div>
|
||||
</legend>
|
||||
<div class="action-category-data open">
|
||||
{{formField systemFields.attack.fields.roll.fields.bonus value=source.system.attack.roll.bonus name="system.attack.roll.bonus"}}
|
||||
</div>
|
||||
</fieldset>
|
||||
{{> 'systems/daggerheart/templates/views/actionTypes/range-target.hbs' fields=(object range=systemFields.attack.fields.range target=systemFields.attack.fields.target.fields) source=(object target=source.system.attack.target range=source.system.attack.range) path="system.attack."}}
|
||||
</div>
|
||||
{{> 'systems/daggerheart/templates/views/actionTypes/damage.hbs' fields=systemFields.attack.fields.damage.fields.parts.element.fields source=source.system.attack.damage path="system.attack."}}
|
||||
<div style="grid-column: 1 / -1;">
|
||||
{{> 'systems/daggerheart/templates/views/actionTypes/effect.hbs' fields=systemFields.attack.fields.effects.element.fields source=source.system.attack.effects}}
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
10
templates/sheets/actors/adversary/notes.hbs
Normal file
10
templates/sheets/actors/adversary/notes.hbs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<section
|
||||
class='tab {{tabs.notes.cssClass}} {{tabs.notes.id}}'
|
||||
data-tab='{{tabs.notes.id}}'
|
||||
data-group='{{tabs.notes.group}}'
|
||||
>
|
||||
<fieldset>
|
||||
<legend>{{tabs.notes.label}}</legend>
|
||||
{{formInput systemFields.notes value=document.system.notes enriched=source.document.notes localize=true toggled=true}}
|
||||
</fieldset>
|
||||
</section>
|
||||
111
templates/sheets/actors/adversary/sidebar.hbs
Normal file
111
templates/sheets/actors/adversary/sidebar.hbs
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
<aside class="adversary-sidebar-sheet">
|
||||
<div class="portrait {{#if (gte source.system.resources.hitPoints.value source.system.resources.hitPoints.maxTotal)}}death-roll{{/if}}">
|
||||
<img src="{{source.img}}" alt="{{source.name}}" data-action='editImage' data-edit="img">
|
||||
<a class="death-roll-btn" data-tooltip="{{localize "DAGGERHEART.Sheets.PC.Health.DeathMoveTooltip"}}" data-action="makeDeathMove"><i class="fas fa-skull death-save" ></i></a>
|
||||
</div>
|
||||
|
||||
<div class="info-section">
|
||||
<div class="resources-section">
|
||||
<div class="status-bar">
|
||||
<div class='status-value'>
|
||||
<p><input class="bar-input" name="system.resources.hitPoints.value" value="{{source.system.resources.hitPoints.value}}" type="number"></p>
|
||||
<p>/</p>
|
||||
<p class="bar-label">{{source.system.resources.hitPoints.max}}</p>
|
||||
</div>
|
||||
<progress
|
||||
class='progress-bar'
|
||||
value='{{source.system.resources.hitPoints.value}}'
|
||||
max='{{source.system.resources.hitPoints.max}}'
|
||||
></progress>
|
||||
<div class="status-label">
|
||||
<h4>HP</h4>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="status-bar">
|
||||
<div class='status-value'>
|
||||
<p><input class="bar-input" name="system.resources.stress.value" value="{{source.system.resources.stress.value}}" type="number"></p>
|
||||
<p>/</p>
|
||||
<p class="bar-label">{{source.system.resources.stress.max}}</p>
|
||||
</div>
|
||||
<progress
|
||||
class='progress-bar stress-color'
|
||||
value='{{source.system.resources.stress.value}}'
|
||||
max='{{source.system.resources.stress.max}}'
|
||||
></progress>
|
||||
<div class="status-label">
|
||||
<h4>Stress</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="status-section">
|
||||
<div class="threshold-section">
|
||||
<h4 class="threshold-label">{{localize "DAGGERHEART.Sheets.PC.Health.Minor"}}</h4>
|
||||
<h4 class="threshold-value">{{document.system.damageThresholds.major}}</h4>
|
||||
<h4 class="threshold-label">{{localize "DAGGERHEART.Sheets.PC.Health.Major"}}</h4>
|
||||
<h4 class="threshold-value">{{document.system.damageThresholds.severe}}</h4>
|
||||
<h4 class="threshold-label">{{localize "DAGGERHEART.Sheets.PC.Health.Severe"}}</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="status-section">
|
||||
<div class="status-number">
|
||||
<div class='status-value armor-slots'>
|
||||
{{#if source.system.difficulty}}
|
||||
<p>{{source.system.difficulty}}</p>
|
||||
{{else}}
|
||||
<p>-</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="status-label">
|
||||
<h4>Difficulty</h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="status-number">
|
||||
<div class='status-value armor-slots'>
|
||||
{{#if source.system.attack.target.amount}}
|
||||
<p>{{source.system.attack.target.amount}}</p>
|
||||
{{else}}
|
||||
<p>-</p>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="status-label">
|
||||
<h4>Attack</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="attack-section">
|
||||
<div class="title">
|
||||
<side-line-div class="invert"></side-line-div>
|
||||
<h3>Attack</h3>
|
||||
<side-line-div></side-line-div>
|
||||
</div>
|
||||
<ul class="items-sidebar-list">
|
||||
{{> 'systems/daggerheart/templates/sheets/global/partials/inventory-item.hbs' item=source.system.attack type=source.system.attack.type isSidebar=true}}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="experience-section">
|
||||
<div class="title">
|
||||
<side-line-div class="invert"></side-line-div>
|
||||
<h3>Experience</h3>
|
||||
<side-line-div></side-line-div>
|
||||
</div>
|
||||
<div class="experience-list">
|
||||
{{#each source.system.experiences as |experience id|}}
|
||||
<div class="experience-row">
|
||||
<div class="experience-value">
|
||||
+{{experience.total}}
|
||||
</div>
|
||||
<input name="{{concat "system.experiences." id ".description"}}" data-experience={{id}} value="{{experience.description}}" type="text" />
|
||||
<div class="controls">
|
||||
<a data-action="toChat" data-type="experience" data-uuid="{{id}}"><i class="fa-regular fa-message"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
<line-div></line-div>
|
||||
<div class="reaction-section">
|
||||
<button data-action="reactionRoll">Reaction Test</button>
|
||||
</div>
|
||||
</aside>
|
||||
|
|
@ -18,7 +18,7 @@
|
|||
max='{{document.system.resources.hitPoints.maxTotal}}'
|
||||
></progress>
|
||||
<div class="status-label">
|
||||
<h4>Health</h4>
|
||||
<h4>HP</h4>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
24
templates/sheets/applications/adversary-settings/attack.hbs
Normal file
24
templates/sheets/applications/adversary-settings/attack.hbs
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<section
|
||||
class='tab {{tabs.attack.cssClass}} {{tabs.attack.id}}'
|
||||
data-tab='{{tabs.attack.id}}'
|
||||
data-group='{{tabs.attack.group}}'
|
||||
>
|
||||
<fieldset class="one-column">
|
||||
<legend>{{localize 'DAGGERHEART.General.basics'}}</legend>
|
||||
{{formGroup systemFields.attack.fields.img value=document.img label="Image Path" name="system.attack.img"}}
|
||||
{{formGroup systemFields.attack.fields.name value=document.system.attack.name label="Attack Name" name="system.attack.name"}}
|
||||
</fieldset>
|
||||
<fieldset class="flex">
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.Attack"}}</legend>
|
||||
{{formField systemFields.attack.fields.roll.fields.bonus value=document.system.attack.roll.bonus label="Attack Bonus" name="system.attack.roll.bonus"}}
|
||||
{{formField systemFields.attack.fields.range value=document.system.attack.range label="Range" name=(concat path "range") localize=true}}
|
||||
{{#if systemFields.attack.fields.target.fields}}
|
||||
{{#if (and document.system.target.type (not (eq document.system.target.type 'self')))}}
|
||||
{{ formField systemFields.attack.fields.target.fields.amount value=document.system.target.amount label="Amount" name=(concat path "target.amount") }}
|
||||
{{/if}}
|
||||
{{ formField systemFields.attack.fields.target.fields.type value=document.system.target.type label="Target" name=(concat path "target.type") localize=true }}
|
||||
{{/if}}
|
||||
</fieldset>
|
||||
{{> 'systems/daggerheart/templates/views/actionTypes/damage.hbs' fields=systemFields.attack.fields.damage.fields.parts.element.fields source=source.system.attack.damage path="system.attack."}}
|
||||
{{> 'systems/daggerheart/templates/views/actionTypes/effect.hbs' fields=systemFields.attack.fields.effects.element.fields source=source.system.attack.effects}}
|
||||
</section>
|
||||
38
templates/sheets/applications/adversary-settings/details.hbs
Normal file
38
templates/sheets/applications/adversary-settings/details.hbs
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<section
|
||||
class='tab {{tabs.details.cssClass}} {{tabs.details.id}}'
|
||||
data-tab='{{tabs.details.id}}'
|
||||
data-group='{{tabs.details.group}}'
|
||||
>
|
||||
<fieldset class="one-column">
|
||||
<legend>{{localize 'DAGGERHEART.General.basics'}}</legend>
|
||||
<div class="nest-inputs">
|
||||
{{formGroup systemFields.tier value=document.system.tier localize=true}}
|
||||
{{formGroup systemFields.type value=document.system.type localize=true}}
|
||||
{{#if (eq document.system.type 'horde')}}
|
||||
{{formGroup systemFields.hordeHp value=document.system.hordeHp label=(localize "DAGGERHEART.Sheets.Adversary.horderHp")}}
|
||||
{{/if}}
|
||||
{{formGroup systemFields.difficulty value=document.system.difficulty localize=true}}
|
||||
</div>
|
||||
{{formField systemFields.description value=document.system.description label=(localize "DAGGERHEART.Sheets.Adversary.FIELDS.description.label")}}
|
||||
{{formField systemFields.motivesAndTactics value=document.system.motivesAndTactics label=(localize "DAGGERHEART.Sheets.Adversary.FIELDS.motivesAndTactics.label")}}
|
||||
</fieldset>
|
||||
|
||||
<div class="fieldsets-section">
|
||||
<fieldset class="flex">
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.HitPoints"}}</legend>
|
||||
{{formGroup systemFields.resources.fields.hitPoints.fields.value value=document.system.resources.hitPoints.value}}
|
||||
{{formGroup systemFields.resources.fields.hitPoints.fields.max value=document.system.resources.hitPoints.max}}
|
||||
</fieldset>
|
||||
<fieldset class="flex">
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.Stress"}}</legend>
|
||||
{{formGroup systemFields.resources.fields.stress.fields.value value=document.system.resources.stress.value}}
|
||||
{{formGroup systemFields.resources.fields.stress.fields.max value=document.system.resources.stress.max}}
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<fieldset class="flex">
|
||||
<legend>{{localize "DAGGERHEART.Sheets.Adversary.DamageThresholds"}}</legend>
|
||||
{{formGroup systemFields.damageThresholds.fields.major value=document.system.damageThresholds.major}}
|
||||
{{formGroup systemFields.damageThresholds.fields.severe value=document.system.damageThresholds.severe}}
|
||||
</fieldset>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
<section
|
||||
class='tab {{tabs.experiences.cssClass}} {{tabs.experiences.id}}'
|
||||
data-tab='{{tabs.experiences.id}}'
|
||||
data-group='{{tabs.experiences.group}}'
|
||||
>
|
||||
<button>
|
||||
New Experience
|
||||
</button>
|
||||
{{#each document.system.experiences as |experience id|}}
|
||||
<div class="experience-row">
|
||||
<div class="experience-value">
|
||||
+{{experience.total}}
|
||||
</div>
|
||||
<input name="{{concat "system.experiences." id ".name"}}" data-experience={{id}} value="{{experience.name}}" type="text" />
|
||||
</div>
|
||||
{{/each}}
|
||||
</section>
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
<section
|
||||
class='tab {{tabs.features.cssClass}} {{tabs.features.id}}'
|
||||
data-tab='{{tabs.features.id}}'
|
||||
data-group='{{tabs.features.group}}'
|
||||
>
|
||||
<h2>Features</h2>
|
||||
</section>
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
<header class="dialog-header">
|
||||
<h1>{{document.name}}</h1>
|
||||
</header>
|
||||
Loading…
Add table
Add a link
Reference in a new issue