diff --git a/.prettierignore b/.prettierignore index a71f9f91..e792a467 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,4 +3,5 @@ package-lock.json package.json .github *.hbs -styles/daggerheart.css \ No newline at end of file +styles/daggerheart.css +src/packs \ No newline at end of file diff --git a/daggerheart.mjs b/daggerheart.mjs index dfe8902b..9b537989 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -75,6 +75,7 @@ Hooks.once('init', () => { CONFIG.ChatMessage.dataModels = { dualityRoll: models.DhpDualityRoll, adversaryRoll: models.DhpAdversaryRoll, + damageRoll: models.DhpDamageRoll, abilityUse: models.DhpAbilityUse }; CONFIG.ChatMessage.documentClass = applications.DhpChatMessage; diff --git a/lang/en.json b/lang/en.json index b5c6dd91..a99266ed 100644 --- a/lang/en.json +++ b/lang/en.json @@ -86,7 +86,8 @@ "SecondaryEquipWhileTwohanded": "A secondary weapon can't be equipped together with a Two-Handed weapon.", "TwohandedEquipWhileSecondary": "Can't equip a Two-Handed weapon together with a secondary weapon.", "SelectClassBeforeSubclass": "Select a Class before selecting a Subclass.", - "SubclassNotOfClass": "This Subclass doesn't belong to your current Class." + "SubclassNotOfClass": "This Subclass doesn't belong to your current Class.", + "AttackTargetDoesNotExist": "The target token no longer exists" }, "Error": { "NoClassSelected": "Your character has no class selected!", @@ -101,8 +102,14 @@ "Hope": "Hope", "Fear": "Fear", "CriticalSuccess": "Critical Success", - "Advantage": "Advantage", - "Disadvantage": "Disadvantage", + "Advantage": { + "Full": "Advantage", + "Short": "Adv" + }, + "Disadvantage": { + "Full": "Disadvantage", + "Short": "Dis" + }, "OK": "OK", "Cancel": "Cancel", "Or": "Or", @@ -704,6 +711,9 @@ "Title": "{actor} - Death Move", "TakeMove": "Take Death Move" }, + "RollSelection": { + "Title": "Roll Options" + }, "Settings": { "Title": "Daggerheart Settings" }, @@ -725,9 +735,14 @@ }, "Chat": { "DualityRoll": { - "AdvantageChooseTitle": "Select Hope Dice" + "AbilityCheckTitle": "{ability} Check" + }, + "AttackRoll": { + "Title": "Attack - {attack}" }, "DamageRoll": { + "Title": "Damage - {damage}", + "DealDamageToTargets": "Damage Hit Targets", "DealDamage": "Deal Damage" }, "HealingRoll": { @@ -879,8 +894,8 @@ "Stress": "Stress", "Experience": "Experience", "Experiences": "Experiences", - "Moves": "Moves", - "NewMove": "New Move" + "Features": "Features", + "NewFeature": "New Feature" }, "Environment": { "ToneAndFeel": "Tone And feel", diff --git a/module/applications/chatMessage.mjs b/module/applications/chatMessage.mjs index e83e174f..004e7dd5 100644 --- a/module/applications/chatMessage.mjs +++ b/module/applications/chatMessage.mjs @@ -1,6 +1,11 @@ export default class DhpChatMesssage extends ChatMessage { async renderHTML() { - if (this.type === 'dualityRoll' || this.type === 'adversaryRoll' || this.type === 'abilityUse') { + if ( + this.type === 'dualityRoll' || + this.type === 'adversaryRoll' || + this.type === 'damageRoll' || + this.type === 'abilityUse' + ) { this.content = await foundry.applications.handlebars.renderTemplate(this.content, this.system); } diff --git a/module/applications/damageSelectionDialog.mjs b/module/applications/damageSelectionDialog.mjs index 4540ae6d..06d700f8 100644 --- a/module/applications/damageSelectionDialog.mjs +++ b/module/applications/damageSelectionDialog.mjs @@ -1,7 +1,7 @@ const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api; export default class DamageSelectionDialog extends HandlebarsApplicationMixin(ApplicationV2) { - constructor(rollString, bonusDamage, hope, resolve) { + constructor(rollString, bonusDamage, resolve, hope = 0) { super({}); this.data = { @@ -122,64 +122,3 @@ export default class DamageSelectionDialog extends HandlebarsApplicationMixin(Ap this.close(); } } - -// export default class DamageSelectionDialog extends FormApplication { -// constructor(rollString, bonusDamage, resolve){ -// super({}, {}); - -// this.data = { -// rollString, -// bonusDamage: bonusDamage.map(x => ({ -// ...x, -// hopeUses: 0 -// })), -// } -// this.resolve = resolve; -// } - -// get title (){ -// return 'Damage Options'; -// } - -// static get defaultOptions() { -// const defaults = super.defaultOptions; -// const overrides = { -// height: 'auto', -// width: 400, -// id: 'damage-selection', -// template: 'systems/daggerheart/templates/views/damageSelection.hbs', -// closeOnSubmit: false, -// classes: ["daggerheart", "views", "damage-selection"], -// }; - -// const mergedOptions = foundry.utils.mergeObject(defaults, overrides); - -// return mergedOptions; -// } - -// async getData(){ -// const context = super.getData(); -// context.rollString = this.data.rollString; -// context.bonusDamage = this.data.bonusDamage; - -// return context; -// } - -// activateListeners(html) { -// super.activateListeners(html); - -// html.find('.roll-button').click(this.finish.bind(this)); -// html.find('.').change(); -// } - -// // async _updateObject(_, formData) { -// // const data = foundry.utils.expandObject(formData); -// // this.data = foundry.utils.mergeObject(this.data, data); -// // this.render(true); -// // } - -// finish(){ -// this.resolve(this.data); -// this.close(); -// } -// } diff --git a/module/applications/npcRollSelectionDialog.mjs b/module/applications/npcRollSelectionDialog.mjs index bee3dd16..ad263fdf 100644 --- a/module/applications/npcRollSelectionDialog.mjs +++ b/module/applications/npcRollSelectionDialog.mjs @@ -1,81 +1,79 @@ -export default class NpcRollSelectionDialog extends FormApplication { - constructor(experiences, resolve, isNpc) { - super({}, {}); +const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; + +export default class NpcRollSelectionDialog extends HandlebarsApplicationMixin(ApplicationV2) { + constructor(experiences, resolve, reject) { + super({}); this.experiences = experiences; this.resolve = resolve; + this.reject = reject; this.selectedExperiences = []; this.data = { - nrDice: 1, advantage: null }; } get title() { - return 'Roll Options'; + return game.i18n.localize('DAGGERHEART.Application.Settings.Title'); } - static get defaultOptions() { - const defaults = super.defaultOptions; - const overrides = { - height: 'auto', - width: 400, - id: 'roll-selection', - template: 'systems/daggerheart/templates/views/npcRollSelection.hbs', - closeOnSubmit: false, - submitOnChange: true, - classes: ['daggerheart', 'views', 'npc-roll-selection'] - }; + static DEFAULT_OPTIONS = { + tag: 'form', + id: 'roll-selection', + classes: ['daggerheart', 'views', 'npc-roll-selection'], + position: { width: '500', height: 'auto' }, + actions: { + updateIsAdvantage: this.updateIsAdvantage, + selectExperience: this.selectExperience + }, + form: { handler: this.updateData, submitOnChange: false } + }; - const mergedOptions = foundry.utils.mergeObject(defaults, overrides); + static PARTS = { + main: { + id: 'main', + template: 'systems/daggerheart/templates/views/npcRollSelection.hbs' + } + }; - return mergedOptions; - } - - async getData() { - const context = super.getData(); - context.nrDice = this.data.nrDice; + async _prepareContext(_options) { + const context = await super._prepareContext(_options); context.advantage = this.data.advantage; - context.experiences = this.experiences.map(x => ({ + context.experiences = Object.values(this.experiences).map(x => ({ ...x, - selected: this.selectedExperiences.find(selected => selected.id === x.id) + selected: this.selectedExperiences.find(selected => selected.id === x.id), + value: `${x.value >= 0 ? '+' : '-'}${x.value}` })); return context; } - activateListeners(html) { - super.activateListeners(html); - - html.find('.increase').click(_ => this.updateNrDice(1)); - html.find('.decrease').click(_ => this.updateNrDice(-1)); - html.find('.advantage').click(_ => this.updateIsAdvantage(true)); - html.find('.disadvantage').click(_ => this.updateIsAdvantage(false)); - html.find('.roll-button').click(this.finish.bind(this)); - html.find('.roll-dialog-chip').click(this.selectExperience.bind(this)); - } - - updateNrDice(value) { - this.data.nrDice += value; - this.render(); - } - - updateIsAdvantage(advantage) { + static updateIsAdvantage(_, button) { + const advantage = Boolean(button.dataset.advantage); this.data.advantage = this.data.advantage === advantage ? null : advantage; this.render(); } - selectExperience(event) { - const experience = this.experiences[event.currentTarget.dataset.key]; - this.selectedExperiences = this.selectedExperiences.find(x => x.name === experience.name) - ? this.selectedExperiences.filter(x => x.name !== experience.name) + static selectExperience(_, button) { + const experience = Object.values(this.experiences).find(experience => experience.id === button.id); + this.selectedExperiences = this.selectedExperiences.find(x => x.id === experience.id) + ? this.selectedExperiences.filter(x => x.id !== experience.id) : [...this.selectedExperiences, experience]; this.render(); } - finish() { + static async updateData() { this.resolve({ ...this.data, experiences: this.selectedExperiences }); - this.close(); + this.close({ updateClose: true }); + } + + async close(options = {}) { + const { updateClose, ...baseOptions } = options; + if (!updateClose) { + this.reject(); + } + + await super.close(baseOptions); } } diff --git a/module/applications/rollSelectionDialog.mjs b/module/applications/rollSelectionDialog.mjs index f8e6f218..ed35d710 100644 --- a/module/applications/rollSelectionDialog.mjs +++ b/module/applications/rollSelectionDialog.mjs @@ -62,7 +62,7 @@ export default class RollSelectionDialog extends HandlebarsApplicationMixin(Appl }; get title() { - return `Roll Options`; + return game.i18n.localize('DAGGERHEART.Application.RollSelection.Title'); } async _prepareContext(_options) { @@ -157,134 +157,3 @@ export default class RollSelectionDialog extends HandlebarsApplicationMixin(Appl this.close(); } } - -// V1.3 -// const { ApplicationV2, HandlebarsApplicationMixin } = foundry.applications.api; - -// export default class RollSelectionDialog extends HandlebarsApplicationMixin(ApplicationV2) { -// constructor(experiences, bonusDamage, hopeResource, resolve, isNpc){ -// super({}, {}); - -// this.experiences = experiences; -// this.resolve = resolve; -// this.isNpc; -// this.selectedExperiences = []; -// this.data = { -// diceOptions: [{ name: 'd12', value: 'd12' }, { name: 'd20', value: 'd20' }], -// hope: ['d12'], -// fear: ['d12'], -// advantage: null, -// disadvantage: null, -// bonusDamage: bonusDamage.reduce((acc, x) => { -// if(x.appliesOn === SYSTEM.EFFECTS.applyLocations.attackRoll.id){ -// acc.push(({ -// ...x, -// hopeUses: 0 -// })); -// } - -// return acc; -// }, []), -// hopeResource: hopeResource, -// }; -// } - -// static DEFAULT_OPTIONS = { -// tag: 'form', -// classes: ["daggerheart", "views", "roll-selection"], -// position: { -// width: 400, -// height: "auto" -// }, -// actions: { -// selectExperience: this.selectExperience, -// decreaseHopeUse: this.decreaseHopeUse, -// increaseHopeUse: this.increaseHopeUse, -// finish: this.finish, -// }, -// form: { -// handler: this.updateSelection, -// submitOnChange: true, -// closeOnSubmit: false, -// } -// }; - -// /** @override */ -// static PARTS = { -// damageSelection: { -// id: "damageSelection", -// template: "systems/daggerheart/templates/views/rollSelection.hbs" -// } -// } - -// get title() { -// return `Roll Options`; -// } - -// async _prepareContext(_options) { -// const context = await super._prepareContext(_options); -// context.isNpc = this.isNpc; -// context.diceOptions = this.data.diceOptions; -// context.hope = this.data.hope; -// context.fear = this.data.fear; -// context.advantage = this.data.advantage; -// context.disadvantage = this.data.disadvantage; -// context.experiences = this.experiences.map(x => ({ ...x, selected: this.selectedExperiences.find(selected => selected.id === x.id) })); -// context.bonusDamage = this.data.bonusDamage; -// context.hopeResource = this.data.hopeResource+1; -// context.hopeUsed = this.getHopeUsed(); - -// return context; -// } - -// static updateSelection(event, _, formData){ -// const { bonusDamage, ...rest } = foundry.utils.expandObject(formData.object); - -// for(var index in bonusDamage){ -// this.data.bonusDamage[index].initiallySelected = bonusDamage[index].initiallySelected; -// if(bonusDamage[index].hopeUses){ -// const value = Number.parseInt(bonusDamage[index].hopeUses); -// if(!Number.isNaN(value)) this.data.bonusDamage[index].hopeUses = value; -// } -// } - -// this.data = foundry.utils.mergeObject(this.data, rest); -// this.render(true); -// } - -// static selectExperience(_, button){ -// if(this.selectedExperiences.find(x => x.id === button.dataset.key)){ -// this.selectedExperiences = this.selectedExperiences.filter(x => x.id !== button.dataset.key); -// } else { -// this.selectedExperiences = [...this.selectedExperiences, this.experiences.find(x => x.id === button.dataset.key)]; -// } - -// this.render(); -// } - -// getHopeUsed(){ -// return this.data.bonusDamage.reduce((acc, x) => acc+x.hopeUses, 0); -// } - -// static decreaseHopeUse(_, button){ -// const index = Number.parseInt(button.dataset.index); -// if(this.data.bonusDamage[index].hopeUses - 1 >= 0) { -// this.data.bonusDamage[index].hopeUses -= 1; -// this.render(true); -// } -// } - -// static increaseHopeUse(_, button){ -// const index = Number.parseInt(button.dataset.index); -// if(this.data.bonusDamage[index].hopeUses <= this.data.hopeResource+1) { -// this.data.bonusDamage[index].hopeUses += 1; -// this.render(true); -// } -// } - -// static finish(){ -// const { diceOptions, ...rest } = this.data; -// this.resolve({ ...rest, experiences: this.selectedExperiences, hopeUsed: this.getHopeUsed(), bonusDamage: this.data.bonusDamage.reduce((acc, x) => acc.concat(` + ${1+x.hopeUses}${x.value}`), "") }); -// this.close(); -// } -// } diff --git a/module/applications/sheets/adversary.mjs b/module/applications/sheets/adversary.mjs index 25afe393..9066e194 100644 --- a/module/applications/sheets/adversary.mjs +++ b/module/applications/sheets/adversary.mjs @@ -349,7 +349,7 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) { static async attackRoll(event, button) { const modifier = Number.parseInt(button.dataset.value); - const { roll, diceResults, modifiers } = await this.actor.diceRoll( + const { roll, dice, advantageState, modifiers } = await this.actor.diceRoll( { title: `${this.actor.name} - Attack Roll`, value: modifier }, event.shiftKey ); @@ -365,11 +365,15 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) { const cls = getDocumentClass('ChatMessage'); const msg = new cls({ type: 'adversaryRoll', + sound: CONFIG.sounds.dice, system: { + title: button.dataset.name, + origin: this.document.id, roll: roll._formula, + advantageState, total: roll._total, modifiers: modifiers, - diceResults: diceResults, + dice: dice, targets: targets, damage: { value: button.dataset.damage, type: button.dataset.damageType } }, @@ -381,16 +385,15 @@ export default class AdversarySheet extends DaggerheartSheet(ActorSheetV2) { } static async addExperience() { + const experienceId = foundry.utils.randomID(); await this.document.update({ - 'system.experiences': [...this.document.system.experiences, { name: 'Experience', value: 1 }] + [`system.experiences.${experienceId}`]: { id: experienceId, name: 'Experience', value: 1 } }); } static async removeExperience(_, button) { await this.document.update({ - 'system.experiences': this.document.system.experiences.filter( - (_, index) => index !== Number.parseInt(button.dataset.experience) - ) + [`system.experiences.-=${button.dataset.experience}`]: null }); } diff --git a/module/applications/sheets/pc.mjs b/module/applications/sheets/pc.mjs index febfdfa8..fe32752b 100644 --- a/module/applications/sheets/pc.mjs +++ b/module/applications/sheets/pc.mjs @@ -4,6 +4,7 @@ import DhpDowntime from '../downtime.mjs'; import DhpLevelup from '../levelup.mjs'; import AncestrySelectionDialog from '../ancestrySelectionDialog.mjs'; import DaggerheartSheet from './daggerheart-sheet.mjs'; +import { abilities } from '../../config/actorConfig.mjs'; const { ActorSheetV2 } = foundry.applications.sheets; const { TextEditor } = foundry.applications.ux; @@ -481,9 +482,9 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) { this.render(); } - static async rollAttribute(event, target) { + static async rollAttribute(event, button) { const { roll, hope, fear, advantage, disadvantage, modifiers } = await this.document.dualityRoll( - { title: 'Attribute Bonus', value: event.target.dataset.value }, + { title: 'Attribute Bonus', value: button.dataset.value }, event.shiftKey ); @@ -491,6 +492,10 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) { const msgData = { type: 'dualityRoll', system: { + title: game.i18n.format('DAGGERHEART.Chat.DualityRoll.AbilityCheckTitle', { + ability: game.i18n.localize(abilities[button.dataset.attribute].label) + }), + origin: this.document.id, roll: roll._formula, modifiers: modifiers, hope: hope, @@ -551,8 +556,8 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) { await this.document.update({ [update]: newValue }); } - static async attackRoll(_, event) { - const weapon = await fromUuid(event.currentTarget.dataset.weapon); + static async attackRoll(event, button) { + const weapon = await fromUuid(button.dataset.weapon); const damage = { value: `${this.document.system.proficiency.value}${weapon.system.damage.value}`, type: weapon.system.damage.type, @@ -580,7 +585,10 @@ export default class PCSheet extends DaggerheartSheet(ActorSheetV2) { const cls = getDocumentClass('ChatMessage'); const msg = new cls({ type: 'dualityRoll', + sound: CONFIG.sounds.dice, system: { + title: weapon.name, + origin: this.document.id, roll: roll._formula, modifiers: modifiers, hope: hope, diff --git a/module/data/_module.mjs b/module/data/_module.mjs index bc3839d7..4822229f 100644 --- a/module/data/_module.mjs +++ b/module/data/_module.mjs @@ -14,5 +14,6 @@ export { default as DhpWeapon } from './weapon.mjs'; export { default as DhpArmor } from './armor.mjs'; export { default as DhpDualityRoll } from './dualityRoll.mjs'; export { default as DhpAdversaryRoll } from './adversaryRoll.mjs'; +export { default as DhpDamageRoll } from './damageRoll.mjs'; export { default as DhpAbilityUse } from './abilityUse.mjs'; export { default as DhpEnvironment } from './environment.mjs'; diff --git a/module/data/adversary.mjs b/module/data/adversary.mjs index efbacd6a..3e8cdaf6 100644 --- a/module/data/adversary.mjs +++ b/module/data/adversary.mjs @@ -33,20 +33,20 @@ export default class DhpAdversary extends foundry.abstract.TypeDataModel { }), difficulty: new fields.NumberField({ initial: 1, integer: true }), damageThresholds: new fields.SchemaField({ - minor: new fields.NumberField({ initial: 0, integer: true }), major: new fields.NumberField({ initial: 0, integer: true }), severe: new fields.NumberField({ initial: 0, integer: true }) }), - experiences: new fields.ArrayField( + experiences: new fields.TypedObjectField( new fields.SchemaField({ - name: new fields.StringField({}), + id: new fields.StringField({ required: true }), + name: new fields.StringField(), value: new fields.NumberField({ integer: true, nullable: true, initial: null }) }) ) }; } - get moves() { + get features() { return this.parent.items.filter(x => x.type === 'feature'); } } diff --git a/module/data/adversaryRoll.mjs b/module/data/adversaryRoll.mjs index a218f65c..bdb09c68 100644 --- a/module/data/adversaryRoll.mjs +++ b/module/data/adversaryRoll.mjs @@ -3,6 +3,8 @@ export default class DhpAdversaryRoll extends foundry.abstract.TypeDataModel { const fields = foundry.data.fields; return { + title: new fields.StringField(), + origin: new fields.StringField({ required: true }), roll: new fields.StringField({}), total: new fields.NumberField({ integer: true }), modifiers: new fields.ArrayField( @@ -12,12 +14,8 @@ export default class DhpAdversaryRoll extends foundry.abstract.TypeDataModel { title: new fields.StringField({}) }) ), - diceResults: new fields.ArrayField( - new fields.SchemaField({ - value: new fields.NumberField({ integer: true }), - discarded: new fields.BooleanField({ initial: false }) - }) - ), + advantageState: new fields.NumberField({ required: true, choices: [0, 1, 2], initial: 0 }), + dice: new fields.EmbeddedDataField(DhpAdversaryRollDice), targets: new fields.ArrayField( new fields.SchemaField({ id: new fields.StringField({}), @@ -39,17 +37,18 @@ export default class DhpAdversaryRoll extends foundry.abstract.TypeDataModel { } prepareDerivedData() { - const diceKeys = Object.keys(this.diceResults); - const highestIndex = 0; - for (var index in diceKeys) { - const resultIndex = Number.parseInt(index); - if (highestIndex === resultIndex) continue; - - const current = this.diceResults[resultIndex]; - const highest = this.diceResults[highestIndex]; - - if (current.value > highest.value) this.diceResults[highestIndex].discarded = true; - else this.diceResults[resultIndex].discarded = true; + const diceKeys = Object.keys(this.dice.rolls); + const highestDiceIndex = + diceKeys.length < 2 + ? null + : this.dice.rolls[diceKeys[0]].value > this.dice.rolls[diceKeys[1]].value + ? 0 + : 1; + if (highestDiceIndex !== null) { + this.dice.rolls = this.dice.rolls.map((roll, index) => ({ + ...roll, + discarded: this.advantageState === 1 ? index !== highestDiceIndex : index === highestDiceIndex + })); } this.targets.forEach(target => { @@ -57,3 +56,23 @@ export default class DhpAdversaryRoll extends foundry.abstract.TypeDataModel { }); } } + +class DhpAdversaryRollDice extends foundry.abstract.DataModel { + static defineSchema() { + const fields = foundry.data.fields; + + return { + type: new fields.StringField({ required: true }), + rolls: new fields.ArrayField( + new fields.SchemaField({ + value: new fields.NumberField({ required: true, integer: true }), + discarded: new fields.BooleanField({ initial: false }) + }) + ) + }; + } + + get rollTotal() { + return this.rolls.reduce((acc, roll) => acc + (!roll.discarded ? roll.value : 0), 0); + } +} diff --git a/module/data/damageRoll.mjs b/module/data/damageRoll.mjs new file mode 100644 index 00000000..20392b35 --- /dev/null +++ b/module/data/damageRoll.mjs @@ -0,0 +1,43 @@ +export default class DhpDamageRoll extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + + return { + title: new fields.StringField(), + roll: new fields.StringField({ required: true }), + damage: new fields.SchemaField({ + total: new fields.NumberField({ required: true, integer: true }), + type: new fields.StringField({ choices: Object.keys(SYSTEM.GENERAL.damageTypes), integer: false }) + }), + dice: new fields.ArrayField(new fields.EmbeddedDataField(DhpDamageDice)), + modifiers: new fields.ArrayField( + new fields.SchemaField({ + value: new fields.NumberField({ required: true, integer: true }), + operator: new fields.StringField({ required: true, choices: ['+', '-', '*', '/'] }) + }) + ), + targets: new fields.ArrayField( + new fields.SchemaField({ + id: new fields.StringField({ required: true }), + name: new fields.StringField(), + img: new fields.StringField() + }) + ) + }; + } +} + +class DhpDamageDice extends foundry.abstract.DataModel { + static defineSchema() { + const fields = foundry.data.fields; + + return { + type: new fields.StringField({ required: true }), + rolls: new fields.ArrayField(new fields.NumberField({ required: true, integer: true })) + }; + } + + get rollTotal() { + return this.rolls.reduce((acc, roll) => acc + roll, 0); + } +} diff --git a/module/data/dualityRoll.mjs b/module/data/dualityRoll.mjs index d6c4471c..d071f84f 100644 --- a/module/data/dualityRoll.mjs +++ b/module/data/dualityRoll.mjs @@ -8,6 +8,8 @@ const diceField = () => export default class DhpDualityRoll extends foundry.abstract.TypeDataModel { static defineSchema() { return { + title: new fields.StringField(), + origin: new fields.StringField({ required: true }), roll: new fields.StringField({}), modifiers: new fields.ArrayField( new fields.SchemaField({ @@ -20,7 +22,6 @@ export default class DhpDualityRoll extends foundry.abstract.TypeDataModel { fear: diceField(), advantage: diceField(), disadvantage: diceField(), - advantageSelected: new fields.NumberField({ initial: 0 }), targets: new fields.ArrayField( new fields.SchemaField({ id: new fields.StringField({}), @@ -57,8 +58,16 @@ export default class DhpDualityRoll extends foundry.abstract.TypeDataModel { get total() { const modifiers = this.modifiers.reduce((acc, x) => acc + x.value, 0); - const advantage = (this.advantage.value ?? this.disadvantage.value) ? -this.disadvantage.value : 0; - return this.hope.value + this.fear.value + advantage + modifiers; + const advantage = this.advantage.value + ? this.advantage.value + : this.disadvantage.value + ? -this.disadvantage.value + : 0; + return this.highestRoll + advantage + modifiers; + } + + get highestRoll() { + return Math.max(this.hope.value, this.fear.value); } get totalLabel() { @@ -75,6 +84,9 @@ export default class DhpDualityRoll extends foundry.abstract.TypeDataModel { prepareDerivedData() { const total = this.total; + this.hope.discarded = this.hope.value < this.fear.value; + this.fear.discarded = this.fear.value < this.hope.value; + this.targets.forEach(target => { target.hit = target.difficulty ? total >= target.difficulty : total >= target.evasion; }); diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index cbcf0ed5..2da03417 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -68,7 +68,6 @@ export default class DhpActor extends Actor { } async npcRoll(modifier, shiftKey) { - let nrDice = 1; let advantage = null; const modifiers = [ @@ -84,7 +83,6 @@ export default class DhpActor extends Actor { }); const result = await dialogClosed; - nrDice = result.nrDice; advantage = result.advantage; result.experiences.forEach(x => modifiers.push({ @@ -95,13 +93,20 @@ export default class DhpActor extends Actor { ); } - const roll = new Roll( - `${nrDice}d20${advantage === true ? 'kh' : advantage === false ? 'kl' : ''} ${modifiers.map(x => `+ ${x.value}`).join(' ')}` + const roll = Roll.create( + `${advantage === true || advantage === false ? 2 : 1}d20${advantage === true ? 'kh' : advantage === false ? 'kl' : ''} ${modifiers.map(x => `+ ${x.value}`).join(' ')}` ); let rollResult = await roll.evaluate(); - const diceResults = rollResult.dice.flatMap(x => x.results.flatMap(result => ({ value: result.result }))); + const dice = []; + for (var i = 0; i < rollResult.terms.length; i++) { + const term = rollResult.terms[i]; + if (term.faces) { + dice.push({ type: `d${term.faces}`, rolls: term.results.map(x => ({ value: x.result })) }); + } + } - return { roll, diceResults: diceResults, modifiers: modifiers }; + // There is Only ever one dice term here + return { roll, dice: dice[0], modifiers, advantageState: advantage === true ? 1 : advantage === false ? 2 : 0 }; } async dualityRoll(modifier, shiftKey, bonusDamage = []) { @@ -202,10 +207,9 @@ export default class DhpActor extends Actor { } const hope = rollResult.dice[0].results[0].result; - const advantage = advantageDice ? rollResult.dice[1].results[0].result : null; - const disadvantage = disadvantageDice ? rollResult.dice[1].results[0].result : null; - const fear = - advantage || disadvantage ? rollResult.dice[2].results[0].result : rollResult.dice[1].results[0].result; + const fear = rollResult.dice[1].results[0].result; + const advantage = advantageDice ? rollResult.dice[2].results[0].result : null; + const disadvantage = disadvantageDice ? rollResult.dice[2].results[0].result : null; if (disadvantage) { rollResult = { ...rollResult, total: rollResult.total - Math.max(hope, disadvantage) }; @@ -245,14 +249,12 @@ export default class DhpActor extends Actor { }; } - async damageRoll(damage, shiftKey) { + async damageRoll(title, damage, targets, shiftKey) { let rollString = damage.value; let bonusDamage = damage.bonusDamage?.filter(x => x.initiallySelected) ?? []; if (!shiftKey) { const dialogClosed = new Promise((resolve, _) => { - new DamageSelectionDialog(rollString, bonusDamage, this.system.resources.hope.value, resolve).render( - true - ); + new DamageSelectionDialog(rollString, bonusDamage, resolve).render(true); }); const result = await dialogClosed; bonusDamage = result.bonusDamage; @@ -274,23 +276,31 @@ export default class DhpActor extends Actor { for (var i = 0; i < rollResult.terms.length; i++) { const term = rollResult.terms[i]; if (term.faces) { - dice.push({ type: `d${term.faces}`, value: term.total }); + dice.push({ type: `d${term.faces}`, rolls: term.results.map(x => x.result) }); } else if (term.operator) { } else if (term.number) { const operator = i === 0 ? '' : rollResult.terms[i - 1].operator; - modifiers.push(`${operator}${term.number}`); + modifiers.push({ value: term.number, operator: operator }); } } const cls = getDocumentClass('ChatMessage'); const msg = new cls({ + type: 'damageRoll', user: game.user.id, - content: await renderTemplate('systems/daggerheart/templates/chat/damage-roll.hbs', { + sound: CONFIG.sounds.dice, + system: { + title: game.i18n.format('DAGGERHEART.Chat.DamageRoll.Title', { damage: title }), roll: rollString, - total: rollResult.total, + damage: { + total: rollResult.total, + type: damage.type + }, dice: dice, - modifiers: modifiers - }), + modifiers: modifiers, + targets: targets + }, + content: 'systems/daggerheart/templates/chat/damage-roll.hbs', rolls: [roll] }); diff --git a/module/ui/chatLog.mjs b/module/ui/chatLog.mjs index 49972386..ec5e257f 100644 --- a/module/ui/chatLog.mjs +++ b/module/ui/chatLog.mjs @@ -17,16 +17,21 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo html.querySelectorAll('.roll-damage-button').forEach(element => element.addEventListener('click', event => this.onRollDamage(event, data.message)) ); - html.querySelectorAll('.target-container').forEach(element => - element.addEventListener('hover', hover(this.hoverTarget, this.unhoverTarget)) - ); // ???? - // html.find('.target-container').mouseout(this.unhoverTarget); - html.querySelectorAll('.damage-button').forEach(element => element.addEventListener('click', this.onDamage)); + html.querySelectorAll('.target-container').forEach(element => { + element.addEventListener('mouseenter', this.hoverTarget); + element.addEventListener('mouseleave', this.unhoverTarget); + element.addEventListener('click', this.clickTarget); + }); + html.querySelectorAll('.damage-button').forEach(element => + element.addEventListener('click', event => this.onDamage(event, data.message)) + ); html.querySelectorAll('.healing-button').forEach(element => element.addEventListener('click', this.onHealing)); html.querySelectorAll('.target-indicator').forEach(element => element.addEventListener('click', this.onToggleTargets) ); - html.querySelectorAll('.advantage').forEach(element => element.hover(this.hoverAdvantage)); // ?? + html.querySelectorAll('.advantage').forEach(element => + element.addEventListener('mouseenter', this.hoverAdvantage) + ); html.querySelectorAll('.advantage').forEach(element => element.addEventListener('click', event => this.selectAdvantage.bind(this)(event, data.message)) ); @@ -46,31 +51,50 @@ export default class DhpChatLog extends foundry.applications.sidebar.tabs.ChatLo onRollDamage = async (event, message) => { event.stopPropagation(); + const actor = game.actors.get(message.system.origin); + if (!actor || !game.user.isGM) return true; - await game.user.character.damageRoll(message.system.damage, event.shiftKey); + await actor.damageRoll( + message.system.title, + message.system.damage, + message.system.targets.filter(x => x.hit).map(x => ({ id: x.id, name: x.name, img: x.img })), + event.shiftKey + ); }; hoverTarget = event => { event.stopPropagation(); const token = canvas.tokens.get(event.currentTarget.dataset.token); - if (!token.controlled) token._onHoverIn(event, { hoverOutOthers: true }); + if (!token?.controlled) token._onHoverIn(event, { hoverOutOthers: true }); }; unhoverTarget = event => { const token = canvas.tokens.get(event.currentTarget.dataset.token); - if (!token.controlled) token._onHoverOut(event); + if (!token?.controlled) token._onHoverOut(event); }; - onDamage = async event => { + clickTarget = event => { event.stopPropagation(); - const damage = Number.parseInt(event.currentTarget.dataset.value); - const targets = Array.from(game.user.targets); + const token = canvas.tokens.get(event.currentTarget.dataset.token); + if (!token) { + ui.notifications.info(game.i18n.localize('DAGGERHEART.Notification.Info.AttackTargetDoesNotExist')); + return; + } + + game.canvas.pan(token); + }; + + onDamage = async (event, message) => { + event.stopPropagation(); + const targets = event.currentTarget.dataset.targetHit + ? message.system.targets.map(target => game.canvas.tokens.get(target.id)) + : Array.from(game.user.targets); if (targets.length === 0) ui.notifications.info(game.i18n.localize('DAGGERHEART.Notification.Info.NoTargetsSelected')); for (var target of targets) { - await target.actor.takeDamage(damage, event.currentTarget.dataset.type); + await target.actor.takeDamage(message.system.damage.total, message.system.damage.type); } }; diff --git a/src/packs/ancestries/ancestry_Clank_AzKMOIpXnCSLLDEB.json b/src/packs/ancestries/ancestry_Clank_AzKMOIpXnCSLLDEB.json index 0541310a..3234bc97 100644 --- a/src/packs/ancestries/ancestry_Clank_AzKMOIpXnCSLLDEB.json +++ b/src/packs/ancestries/ancestry_Clank_AzKMOIpXnCSLLDEB.json @@ -1,30 +1,30 @@ { - "name": "Clank", - "type": "ancestry", - "_id": "AzKMOIpXnCSLLDEB", - "img": "icons/svg/item-bag.svg", - "system": { - "description": "
Purposeful Design: Decide who made you and for what purpose. At character creation, choose one of your Experiences that best aligns with this purpose and gain a permanent +1 bonus to it.
Efficient: When you take a short rest, you can choose a long rest move instead of a short rest move.
", - "abilities": [] - }, - "effects": [], - "folder": null, - "sort": 100000, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747990113503, - "modifiedTime": 1747999445342, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!AzKMOIpXnCSLLDEB" + "name": "Clank", + "type": "ancestry", + "_id": "AzKMOIpXnCSLLDEB", + "img": "icons/svg/item-bag.svg", + "system": { + "description": "Purposeful Design: Decide who made you and for what purpose. At character creation, choose one of your Experiences that best aligns with this purpose and gain a permanent +1 bonus to it.
Efficient: When you take a short rest, you can choose a long rest move instead of a short rest move.
", + "abilities": [] + }, + "effects": [], + "folder": null, + "sort": 100000, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747990113503, + "modifiedTime": 1747999445342, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!AzKMOIpXnCSLLDEB" } diff --git a/src/packs/class-features/feature_Arcane_Sense_D5HUGwdizhBVZ0RW.json b/src/packs/class-features/feature_Arcane_Sense_D5HUGwdizhBVZ0RW.json index 84f958b0..a9baa2a8 100644 --- a/src/packs/class-features/feature_Arcane_Sense_D5HUGwdizhBVZ0RW.json +++ b/src/packs/class-features/feature_Arcane_Sense_D5HUGwdizhBVZ0RW.json @@ -1,44 +1,44 @@ { - "name": "Arcane Sense", - "type": "feature", - "_id": "D5HUGwdizhBVZ0RW", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Arcane Sense", + "type": "feature", + "_id": "D5HUGwdizhBVZ0RW", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You can sense the presence of magical people and objects within Close range.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You can sense the presence of magical people and objects within Close range.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748033779155, - "modifiedTime": 1748033799399, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!D5HUGwdizhBVZ0RW" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748033779155, + "modifiedTime": 1748033799399, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!D5HUGwdizhBVZ0RW" } diff --git a/src/packs/class-features/feature_Attack_of_Opportunity_VfUbJwGU4Cka0xLP.json b/src/packs/class-features/feature_Attack_of_Opportunity_VfUbJwGU4Cka0xLP.json index 6e700787..2f3c1402 100644 --- a/src/packs/class-features/feature_Attack_of_Opportunity_VfUbJwGU4Cka0xLP.json +++ b/src/packs/class-features/feature_Attack_of_Opportunity_VfUbJwGU4Cka0xLP.json @@ -1,44 +1,44 @@ { - "name": "Attack of Opportunity", - "type": "feature", - "_id": "VfUbJwGU4Cka0xLP", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Attack of Opportunity", + "type": "feature", + "_id": "VfUbJwGU4Cka0xLP", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "When an adversary within Melee range attempts to leave that range, make a reaction roll using a trait of your choice against their Difficulty. Choose one effect on a success, or two if you critically succeed:
• They can’t move from where they are.
• You deal damage to them equal to your primary weapon’s damage.
• You move with them.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "When an adversary within Melee range attempts to leave that range, make a reaction roll using a trait of your choice against their Difficulty. Choose one effect on a success, or two if you critically succeed:
• They can’t move from where they are.
• You deal damage to them equal to your primary weapon’s damage.
• You move with them.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748034185325, - "modifiedTime": 1748034212853, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!VfUbJwGU4Cka0xLP" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748034185325, + "modifiedTime": 1748034212853, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!VfUbJwGU4Cka0xLP" } diff --git a/src/packs/class-features/feature_Beastform_NkSKDXGNNiOUlFqm.json b/src/packs/class-features/feature_Beastform_NkSKDXGNNiOUlFqm.json index 7412a42a..634ad390 100644 --- a/src/packs/class-features/feature_Beastform_NkSKDXGNNiOUlFqm.json +++ b/src/packs/class-features/feature_Beastform_NkSKDXGNNiOUlFqm.json @@ -1,44 +1,44 @@ { - "name": "Beastform", - "type": "feature", - "_id": "NkSKDXGNNiOUlFqm", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Beastform", + "type": "feature", + "_id": "NkSKDXGNNiOUlFqm", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Mark a Stress to magically transform into a creature of your tier or lower from the Beastform list. You can drop out of this form at any time. While transformed, you can’t use weapons or cast spells from domain cards, but you can still use other features or abilities you have access to. Spells you cast before you transform stay active and last for their normal duration, and you can talk and communicate as normal. Additionally, you gain the Beastform’s features, add their Evasion bonus to your Evasion, and use the trait specified in their statistics for your attack. While you’re in a Beastform, your armor becomes part of your body and you mark Armor Slots as usual; when you drop out of a Beastform, those marked Armor Slots remain marked. If you mark your last Hit Point, you automatically drop out of this form.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Mark a Stress to magically transform into a creature of your tier or lower from the Beastform list. You can drop out of this form at any time. While transformed, you can’t use weapons or cast spells from domain cards, but you can still use other features or abilities you have access to. Spells you cast before you transform stay active and last for their normal duration, and you can talk and communicate as normal. Additionally, you gain the Beastform’s features, add their Evasion bonus to your Evasion, and use the trait specified in their statistics for your attack. While you’re in a Beastform, your armor becomes part of your body and you mark Armor Slots as usual; when you drop out of a Beastform, those marked Armor Slots remain marked. If you mark your last Hit Point, you automatically drop out of this form.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748028817729, - "modifiedTime": 1748028856597, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!NkSKDXGNNiOUlFqm" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748028817729, + "modifiedTime": 1748028856597, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!NkSKDXGNNiOUlFqm" } diff --git a/src/packs/class-features/feature_Channel_Raw_Power_ovxuqhl01XZSwx2n.json b/src/packs/class-features/feature_Channel_Raw_Power_ovxuqhl01XZSwx2n.json index 561ff17b..bfe3f5d0 100644 --- a/src/packs/class-features/feature_Channel_Raw_Power_ovxuqhl01XZSwx2n.json +++ b/src/packs/class-features/feature_Channel_Raw_Power_ovxuqhl01XZSwx2n.json @@ -1,46 +1,46 @@ { - "name": "Channel Raw Power", - "type": "feature", - "_id": "ovxuqhl01XZSwx2n", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Channel Raw Power", + "type": "feature", + "_id": "ovxuqhl01XZSwx2n", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": { + "type": "longRest" + }, + "multiclass": null, + "disabled": false, + "description": "Once per long rest, you can place a domain card from your loadout into your vault and choose to either:
• Gain Hope equal to the level of the card.
• Enhance a spell that deals damage, gaining a bonus to your damage roll equal to twice the level of the card.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": { - "type": "longRest" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 }, - "multiclass": null, - "disabled": false, - "description": "Once per long rest, you can place a domain card from your loadout into your vault and choose to either:
• Gain Hope equal to the level of the card.
• Enhance a spell that deals damage, gaining a bonus to your damage roll equal to twice the level of the card.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748033854379, - "modifiedTime": 1748033877334, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!ovxuqhl01XZSwx2n" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748033854379, + "modifiedTime": 1748033877334, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!ovxuqhl01XZSwx2n" } diff --git a/src/packs/class-features/feature_Cloaked_TpaoHSJ3npjWiBOf.json b/src/packs/class-features/feature_Cloaked_TpaoHSJ3npjWiBOf.json index 37af654f..75e0c5a8 100644 --- a/src/packs/class-features/feature_Cloaked_TpaoHSJ3npjWiBOf.json +++ b/src/packs/class-features/feature_Cloaked_TpaoHSJ3npjWiBOf.json @@ -1,44 +1,44 @@ { - "name": "Cloaked", - "type": "feature", - "_id": "TpaoHSJ3npjWiBOf", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Cloaked", + "type": "feature", + "_id": "TpaoHSJ3npjWiBOf", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Any time you would be Hidden, you are instead Cloaked. In addition to the benefits of the Hidden condition, while Cloaked you remain unseen if you are stationary when an adversary moves to where they would normally see you. After you make an attack or end a move within line of sight of an adversary, you are no longer Cloaked.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Any time you would be Hidden, you are instead Cloaked. In addition to the benefits of the Hidden condition, while Cloaked you remain unseen if you are stationary when an adversary moves to where they would normally see you. After you make an attack or end a move within line of sight of an adversary, you are no longer Cloaked.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748032226905, - "modifiedTime": 1748032258303, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!TpaoHSJ3npjWiBOf" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748032226905, + "modifiedTime": 1748032258303, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!TpaoHSJ3npjWiBOf" } diff --git a/src/packs/class-features/feature_Combat_Training_elb6ZVertgu6OdKA.json b/src/packs/class-features/feature_Combat_Training_elb6ZVertgu6OdKA.json index c8b39914..66fc06d9 100644 --- a/src/packs/class-features/feature_Combat_Training_elb6ZVertgu6OdKA.json +++ b/src/packs/class-features/feature_Combat_Training_elb6ZVertgu6OdKA.json @@ -1,44 +1,44 @@ { - "name": "Combat Training", - "type": "feature", - "_id": "elb6ZVertgu6OdKA", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Combat Training", + "type": "feature", + "_id": "elb6ZVertgu6OdKA", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You ignore burden when equipping weapons. When you deal physical damage, you gain a bonus to your damage roll equal to your level.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You ignore burden when equipping weapons. When you deal physical damage, you gain a bonus to your damage roll equal to your level.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748034225886, - "modifiedTime": 1748034251807, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!elb6ZVertgu6OdKA" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748034225886, + "modifiedTime": 1748034251807, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!elb6ZVertgu6OdKA" } diff --git a/src/packs/class-features/feature_Combo_Strikes_RNC8NT8F6x73gRZi.json b/src/packs/class-features/feature_Combo_Strikes_RNC8NT8F6x73gRZi.json index 312d847a..8b751094 100644 --- a/src/packs/class-features/feature_Combo_Strikes_RNC8NT8F6x73gRZi.json +++ b/src/packs/class-features/feature_Combo_Strikes_RNC8NT8F6x73gRZi.json @@ -1,44 +1,44 @@ { - "name": "Combo Strikes", - "type": "feature", - "_id": "RNC8NT8F6x73gRZi", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Combo Strikes", + "type": "feature", + "_id": "RNC8NT8F6x73gRZi", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "After making a damage roll with a Melee weapon but before dealing that damage to the target, mark a Stress to start a combo strike.
When you do, roll a Combo Die and note its value. Then, roll another Combo Die. If the value of the second die is equal to or greater than your first Combo Die, continue rolling additional dice until the latest Combo Die’s value is less than the roll that preceeded it. Total all rolled Combo Dice and add the value to your weapon’s damage.
Your Combo Die starts as a d4. When you level up, once per tier you may use one of your advancement options to increase your Combo Die instead.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "After making a damage roll with a Melee weapon but before dealing that damage to the target, mark a Stress to start a combo strike.
When you do, roll a Combo Die and note its value. Then, roll another Combo Die. If the value of the second die is equal to or greater than your first Combo Die, continue rolling additional dice until the latest Combo Die’s value is less than the roll that preceeded it. Total all rolled Combo Dice and add the value to your weapon’s damage.
Your Combo Die starts as a d4. When you level up, once per tier you may use one of your advancement options to increase your Combo Die instead.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748031102847, - "modifiedTime": 1748031132259, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!RNC8NT8F6x73gRZi" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748031102847, + "modifiedTime": 1748031132259, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!RNC8NT8F6x73gRZi" } diff --git a/src/packs/class-features/feature_Evolution_bZxfyPTZ6rsakyA2.json b/src/packs/class-features/feature_Evolution_bZxfyPTZ6rsakyA2.json index 780b028c..01b86c13 100644 --- a/src/packs/class-features/feature_Evolution_bZxfyPTZ6rsakyA2.json +++ b/src/packs/class-features/feature_Evolution_bZxfyPTZ6rsakyA2.json @@ -1,44 +1,44 @@ { - "name": "Evolution", - "type": "feature", - "_id": "bZxfyPTZ6rsakyA2", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Evolution", + "type": "feature", + "_id": "bZxfyPTZ6rsakyA2", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to transform into a Beastform without marking a Stress. When you do, choose one trait to raise by +1 until you drop out of that Beastform.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748028774087, - "modifiedTime": 1748028862047, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!bZxfyPTZ6rsakyA2" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748028774087, + "modifiedTime": 1748028862047, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!bZxfyPTZ6rsakyA2" } diff --git a/src/packs/class-features/feature_Frontline_Tank_ftUZznLFJ5xbcxcu.json b/src/packs/class-features/feature_Frontline_Tank_ftUZznLFJ5xbcxcu.json index 3e0f06e4..76949f1c 100644 --- a/src/packs/class-features/feature_Frontline_Tank_ftUZznLFJ5xbcxcu.json +++ b/src/packs/class-features/feature_Frontline_Tank_ftUZznLFJ5xbcxcu.json @@ -1,44 +1,44 @@ { - "name": "Frontline Tank", - "type": "feature", - "_id": "ftUZznLFJ5xbcxcu", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Frontline Tank", + "type": "feature", + "_id": "ftUZznLFJ5xbcxcu", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to clear 2 Armor Slots
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to clear 2 Armor Slots
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748030942761, - "modifiedTime": 1748030954992, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!ftUZznLFJ5xbcxcu" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748030942761, + "modifiedTime": 1748030954992, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!ftUZznLFJ5xbcxcu" } diff --git a/src/packs/class-features/feature_Hold_Them_Off_FSx2ojskU0pRE72g.json b/src/packs/class-features/feature_Hold_Them_Off_FSx2ojskU0pRE72g.json index a52aac6c..aa39521b 100644 --- a/src/packs/class-features/feature_Hold_Them_Off_FSx2ojskU0pRE72g.json +++ b/src/packs/class-features/feature_Hold_Them_Off_FSx2ojskU0pRE72g.json @@ -1,44 +1,44 @@ { - "name": "Hold Them Off", - "type": "feature", - "_id": "FSx2ojskU0pRE72g", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Hold Them Off", + "type": "feature", + "_id": "FSx2ojskU0pRE72g", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope when you succeed on an attack with a weapon to use that same roll against two additional adversaries within range of the attack
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope when you succeed on an attack with a weapon to use that same roll against two additional adversaries within range of the attack
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748030888304, - "modifiedTime": 1748030905059, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!FSx2ojskU0pRE72g" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748030888304, + "modifiedTime": 1748030905059, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!FSx2ojskU0pRE72g" } diff --git a/src/packs/class-features/feature_I_Am_The_Weapon_ihtvQaH18eG56RWY.json b/src/packs/class-features/feature_I_Am_The_Weapon_ihtvQaH18eG56RWY.json index 32da8c74..a241f7c9 100644 --- a/src/packs/class-features/feature_I_Am_The_Weapon_ihtvQaH18eG56RWY.json +++ b/src/packs/class-features/feature_I_Am_The_Weapon_ihtvQaH18eG56RWY.json @@ -1,44 +1,44 @@ { - "name": "I Am The Weapon", - "type": "feature", - "_id": "ihtvQaH18eG56RWY", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "I Am The Weapon", + "type": "feature", + "_id": "ihtvQaH18eG56RWY", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "While you don’t have any equipped weapons, your evasion has a +1 bonus. Your unarmed strikes are considered a Melee weapon, use the trait of your choice, and deal d10+your tier phy damage.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "While you don’t have any equipped weapons, your evasion has a +1 bonus. Your unarmed strikes are considered a Melee weapon, use the trait of your choice, and deal d10+your tier phy damage.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748031035883, - "modifiedTime": 1748031085182, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!ihtvQaH18eG56RWY" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748031035883, + "modifiedTime": 1748031085182, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!ihtvQaH18eG56RWY" } diff --git a/src/packs/class-features/feature_Life_Support_UZ9UjZArSJh6UHXG.json b/src/packs/class-features/feature_Life_Support_UZ9UjZArSJh6UHXG.json index 2a9c66ab..19e37e1e 100644 --- a/src/packs/class-features/feature_Life_Support_UZ9UjZArSJh6UHXG.json +++ b/src/packs/class-features/feature_Life_Support_UZ9UjZArSJh6UHXG.json @@ -1,44 +1,44 @@ { - "name": "Life Support", - "type": "feature", - "_id": "UZ9UjZArSJh6UHXG", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Life Support", + "type": "feature", + "_id": "UZ9UjZArSJh6UHXG", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to clear a Hit Point on an ally within Close range.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to clear a Hit Point on an ally within Close range.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748033044907, - "modifiedTime": 1748033065659, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!UZ9UjZArSJh6UHXG" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748033044907, + "modifiedTime": 1748033065659, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!UZ9UjZArSJh6UHXG" } diff --git a/src/packs/class-features/feature_Make_a_Scene_Ddk0PAgwM4VLRbyY.json b/src/packs/class-features/feature_Make_a_Scene_Ddk0PAgwM4VLRbyY.json index b878085e..3b060c22 100644 --- a/src/packs/class-features/feature_Make_a_Scene_Ddk0PAgwM4VLRbyY.json +++ b/src/packs/class-features/feature_Make_a_Scene_Ddk0PAgwM4VLRbyY.json @@ -1,44 +1,44 @@ { - "name": "Make a Scene", - "type": "feature", - "_id": "Ddk0PAgwM4VLRbyY", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Make a Scene", + "type": "feature", + "_id": "Ddk0PAgwM4VLRbyY", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to temporarily Distract a target within Close range, giving them a -2 penalty to their Difficulty.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to temporarily Distract a target within Close range, giving them a -2 penalty to their Difficulty.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747991384366, - "modifiedTime": 1747991421484, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!Ddk0PAgwM4VLRbyY" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747991384366, + "modifiedTime": 1747991421484, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!Ddk0PAgwM4VLRbyY" } diff --git a/src/packs/class-features/feature_Minor_Illusion_qFq7kynAZhbWTbT5.json b/src/packs/class-features/feature_Minor_Illusion_qFq7kynAZhbWTbT5.json index 49c46d46..4db92e8a 100644 --- a/src/packs/class-features/feature_Minor_Illusion_qFq7kynAZhbWTbT5.json +++ b/src/packs/class-features/feature_Minor_Illusion_qFq7kynAZhbWTbT5.json @@ -1,44 +1,44 @@ { - "name": "Minor Illusion", - "type": "feature", - "_id": "qFq7kynAZhbWTbT5", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Minor Illusion", + "type": "feature", + "_id": "qFq7kynAZhbWTbT5", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Make a Spellcast Roll (10). On a success, you create a minor visual illusion no larger than yourself within Close range. This illusion is convincing to anyone at Close range or farther.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Make a Spellcast Roll (10). On a success, you create a minor visual illusion no larger than yourself within Close range. This illusion is convincing to anyone at Close range or farther.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748033817443, - "modifiedTime": 1748033834348, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!qFq7kynAZhbWTbT5" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748033817443, + "modifiedTime": 1748033834348, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!qFq7kynAZhbWTbT5" } diff --git a/src/packs/class-features/feature_No_Mercy_t3tLoq4h9wgQD7E9.json b/src/packs/class-features/feature_No_Mercy_t3tLoq4h9wgQD7E9.json index 0e539323..acfe1f4f 100644 --- a/src/packs/class-features/feature_No_Mercy_t3tLoq4h9wgQD7E9.json +++ b/src/packs/class-features/feature_No_Mercy_t3tLoq4h9wgQD7E9.json @@ -1,44 +1,44 @@ { - "name": "No Mercy", - "type": "feature", - "_id": "t3tLoq4h9wgQD7E9", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "No Mercy", + "type": "feature", + "_id": "t3tLoq4h9wgQD7E9", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to gain a +1 bonus to your attack rolls until your next rest.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to gain a +1 bonus to your attack rolls until your next rest.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748034146678, - "modifiedTime": 1748034158455, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!t3tLoq4h9wgQD7E9" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748034146678, + "modifiedTime": 1748034158455, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!t3tLoq4h9wgQD7E9" } diff --git a/src/packs/class-features/feature_Not_This_Time_5msGbQyFwdwdFdYs.json b/src/packs/class-features/feature_Not_This_Time_5msGbQyFwdwdFdYs.json index a263d76d..ec9c44b6 100644 --- a/src/packs/class-features/feature_Not_This_Time_5msGbQyFwdwdFdYs.json +++ b/src/packs/class-features/feature_Not_This_Time_5msGbQyFwdwdFdYs.json @@ -1,44 +1,44 @@ { - "name": "Not This Time", - "type": "feature", - "_id": "5msGbQyFwdwdFdYs", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "reaction", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Not This Time", + "type": "feature", + "_id": "5msGbQyFwdwdFdYs", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "reaction", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to force an adversary within Far range to reroll an attack or damage roll
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to force an adversary within Far range to reroll an attack or damage roll
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748034883014, - "modifiedTime": 1748034907509, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!5msGbQyFwdwdFdYs" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748034883014, + "modifiedTime": 1748034907509, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!5msGbQyFwdwdFdYs" } diff --git a/src/packs/class-features/feature_Prayer_Dice_jXfGnLnU8PswJYJd.json b/src/packs/class-features/feature_Prayer_Dice_jXfGnLnU8PswJYJd.json index 6cf18da4..dee619ed 100644 --- a/src/packs/class-features/feature_Prayer_Dice_jXfGnLnU8PswJYJd.json +++ b/src/packs/class-features/feature_Prayer_Dice_jXfGnLnU8PswJYJd.json @@ -1,47 +1,47 @@ { - "name": "Prayer Dice", - "type": "feature", - "_id": "jXfGnLnU8PswJYJd", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 6, - "numbers": {}, - "value": "d4" - } + "name": "Prayer Dice", + "type": "feature", + "_id": "jXfGnLnU8PswJYJd", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 6, + "numbers": {}, + "value": "d4" + } + }, + "refreshData": { + "type": "session" + }, + "multiclass": null, + "disabled": false, + "description": "At the beginning of each session, roll a number of d4s equal to your subclass’s Spellcast trait and place them on this sheet in the space provided. These are your Prayer Dice. You can spend any number of Prayer Dice to aid yourself or an ally within Far range. You can use a spent die’s value to reduce incoming damage, add to a roll’s result after the roll is made, or gain Hope equal to the result. At the end of each session, clear all unspent Prayer Dice.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": { - "type": "session" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 }, - "multiclass": null, - "disabled": false, - "description": "At the beginning of each session, roll a number of d4s equal to your subclass’s Spellcast trait and place them on this sheet in the space provided. These are your Prayer Dice. You can spend any number of Prayer Dice to aid yourself or an ally within Far range. You can use a spent die’s value to reduce incoming damage, add to a roll’s result after the roll is made, or gain Hope equal to the result. At the end of each session, clear all unspent Prayer Dice.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748033372327, - "modifiedTime": 1748033499150, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!jXfGnLnU8PswJYJd" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748033372327, + "modifiedTime": 1748033499150, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!jXfGnLnU8PswJYJd" } diff --git a/src/packs/class-features/feature_Prestidigitation_ofBmJIn6NWxA0wPz.json b/src/packs/class-features/feature_Prestidigitation_ofBmJIn6NWxA0wPz.json index 716cd906..49779b7d 100644 --- a/src/packs/class-features/feature_Prestidigitation_ofBmJIn6NWxA0wPz.json +++ b/src/packs/class-features/feature_Prestidigitation_ofBmJIn6NWxA0wPz.json @@ -1,44 +1,44 @@ { - "name": "Prestidigitation", - "type": "feature", - "_id": "ofBmJIn6NWxA0wPz", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Prestidigitation", + "type": "feature", + "_id": "ofBmJIn6NWxA0wPz", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You can perform harmless, subtle magical effects at will. For example, you can change an object’s color, create a smell, light a candle, cause a tiny object to float, illuminate a room, or repair a small object.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You can perform harmless, subtle magical effects at will. For example, you can change an object’s color, create a smell, light a candle, cause a tiny object to float, illuminate a room, or repair a small object.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748034934147, - "modifiedTime": 1748034955883, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!ofBmJIn6NWxA0wPz" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748034934147, + "modifiedTime": 1748034955883, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!ofBmJIn6NWxA0wPz" } diff --git a/src/packs/class-features/feature_Rally_8uORDWrXtNFzA00U.json b/src/packs/class-features/feature_Rally_8uORDWrXtNFzA00U.json index d07fef13..177ee282 100644 --- a/src/packs/class-features/feature_Rally_8uORDWrXtNFzA00U.json +++ b/src/packs/class-features/feature_Rally_8uORDWrXtNFzA00U.json @@ -1,47 +1,47 @@ { - "name": "Rally", - "type": "feature", - "_id": "8uORDWrXtNFzA00U", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {}, - "value": "d6" - } + "name": "Rally", + "type": "feature", + "_id": "8uORDWrXtNFzA00U", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {}, + "value": "d6" + } + }, + "refreshData": { + "type": "session" + }, + "multiclass": null, + "disabled": false, + "description": "Once per session, describe how you rally the party and give yourself and each of your allies a Rally Die. At level 1, your Rally Die is a d6. A PC can spend their Rally Die to roll it, adding the result to their action roll, reaction roll, damage roll, or to clear a number of Stress equal to the result. At the end of each session, clear all unspent Rally Dice.
At level 5, your Rally Die increases to a d8.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": { - "type": "session" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "disabled": false, - "description": "Once per session, describe how you rally the party and give yourself and each of your allies a Rally Die. At level 1, your Rally Die is a d6. A PC can spend their Rally Die to roll it, adding the result to their action roll, reaction roll, damage roll, or to clear a number of Stress equal to the result. At the end of each session, clear all unspent Rally Dice.
At level 5, your Rally Die increases to a d8.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747991484460, - "modifiedTime": 1747991546148, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!8uORDWrXtNFzA00U" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747991484460, + "modifiedTime": 1747991546148, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!8uORDWrXtNFzA00U" } diff --git a/src/packs/class-features/feature_Ranger_s_Focus_b4O4r2HPbWU8s59q.json b/src/packs/class-features/feature_Ranger_s_Focus_b4O4r2HPbWU8s59q.json index 222d5b99..bcb14539 100644 --- a/src/packs/class-features/feature_Ranger_s_Focus_b4O4r2HPbWU8s59q.json +++ b/src/packs/class-features/feature_Ranger_s_Focus_b4O4r2HPbWU8s59q.json @@ -1,44 +1,44 @@ { - "name": "Ranger's Focus", - "type": "feature", - "_id": "b4O4r2HPbWU8s59q", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Ranger's Focus", + "type": "feature", + "_id": "b4O4r2HPbWU8s59q", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend a Hope and make an attack against a target. On a success, deal your attack’s normal damage and temporarily make the attack’s target your Focus. Until this feature ends or you make a different creature yourFocus, you gain the following benefits against your Focus:
• You know precisely what direction they are in.
• When you deal damage to them, they must mark a Stress.
• When you fail an attack against them, you can end your Ranger’s Focus feature to reroll your Duality Dice.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend a Hope and make an attack against a target. On a success, deal your attack’s normal damage and temporarily make the attack’s target your Focus. Until this feature ends or you make a different creature yourFocus, you gain the following benefits against your Focus:
• You know precisely what direction they are in.
• When you deal damage to them, they must mark a Stress.
• When you fail an attack against them, you can end your Ranger’s Focus feature to reroll your Duality Dice.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748030780267, - "modifiedTime": 1748030834985, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!b4O4r2HPbWU8s59q" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748030780267, + "modifiedTime": 1748030834985, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!b4O4r2HPbWU8s59q" } diff --git a/src/packs/class-features/feature_Rogue_s_Dodge_fPGn9JNV24nt1G9d.json b/src/packs/class-features/feature_Rogue_s_Dodge_fPGn9JNV24nt1G9d.json index 5c017fcf..3452d51e 100644 --- a/src/packs/class-features/feature_Rogue_s_Dodge_fPGn9JNV24nt1G9d.json +++ b/src/packs/class-features/feature_Rogue_s_Dodge_fPGn9JNV24nt1G9d.json @@ -1,44 +1,44 @@ { - "name": "Rogue’s Dodge", - "type": "feature", - "_id": "fPGn9JNV24nt1G9d", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Rogue’s Dodge", + "type": "feature", + "_id": "fPGn9JNV24nt1G9d", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to gain a +2 bonus to your Evasion until the next time an attack succeeds against you. Otherwise, this bonus lasts until your next rest.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to gain a +2 bonus to your Evasion until the next time an attack succeeds against you. Otherwise, this bonus lasts until your next rest.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748032185608, - "modifiedTime": 1748032213243, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!fPGn9JNV24nt1G9d" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748032185608, + "modifiedTime": 1748032213243, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!fPGn9JNV24nt1G9d" } diff --git a/src/packs/class-features/feature_Sneak_Attack_PhHOmsoYUDC42by6.json b/src/packs/class-features/feature_Sneak_Attack_PhHOmsoYUDC42by6.json index eb92680f..dd188cfd 100644 --- a/src/packs/class-features/feature_Sneak_Attack_PhHOmsoYUDC42by6.json +++ b/src/packs/class-features/feature_Sneak_Attack_PhHOmsoYUDC42by6.json @@ -1,44 +1,44 @@ { - "name": "Sneak Attack", - "type": "feature", - "_id": "PhHOmsoYUDC42by6", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Sneak Attack", + "type": "feature", + "_id": "PhHOmsoYUDC42by6", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "When you succeed on an attack while Cloaked or while an ally is within Melee range of your target, add a number of d6s equal to your tier to your damage roll.
Level 1 is Tier 1
Levels 2–4 are Tier 2
Levels 5–7 are Tier 3
Levels 8–10 are Tier 4
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "When you succeed on an attack while Cloaked or while an ally is within Melee range of your target, add a number of d6s equal to your tier to your damage roll.
Level 1 is Tier 1
Levels 2–4 are Tier 2
Levels 5–7 are Tier 3
Levels 8–10 are Tier 4
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748032274441, - "modifiedTime": 1748032300923, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!PhHOmsoYUDC42by6" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748032274441, + "modifiedTime": 1748032300923, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!PhHOmsoYUDC42by6" } diff --git a/src/packs/class-features/feature_Staggering_Strike_xC0ZG862KrjHGHlx.json b/src/packs/class-features/feature_Staggering_Strike_xC0ZG862KrjHGHlx.json index 9873a102..2b8f2c18 100644 --- a/src/packs/class-features/feature_Staggering_Strike_xC0ZG862KrjHGHlx.json +++ b/src/packs/class-features/feature_Staggering_Strike_xC0ZG862KrjHGHlx.json @@ -1,44 +1,44 @@ { - "name": "Staggering Strike", - "type": "feature", - "_id": "xC0ZG862KrjHGHlx", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Staggering Strike", + "type": "feature", + "_id": "xC0ZG862KrjHGHlx", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope when you hit an adversary to also deal them a Stress and make them temporarily Staggered.
While Staggered, all attack rolls they make are at disadvantage.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope when you hit an adversary to also deal them a Stress and make them temporarily Staggered.
While Staggered, all attack rolls they make are at disadvantage.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748030990710, - "modifiedTime": 1748031014128, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!xC0ZG862KrjHGHlx" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748030990710, + "modifiedTime": 1748031014128, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!xC0ZG862KrjHGHlx" } diff --git a/src/packs/class-features/feature_Strange_Patterns_ONtJ7r2g6tN5q6Ga.json b/src/packs/class-features/feature_Strange_Patterns_ONtJ7r2g6tN5q6Ga.json index b4c4fa28..48223e79 100644 --- a/src/packs/class-features/feature_Strange_Patterns_ONtJ7r2g6tN5q6Ga.json +++ b/src/packs/class-features/feature_Strange_Patterns_ONtJ7r2g6tN5q6Ga.json @@ -1,44 +1,44 @@ { - "name": "Strange Patterns", - "type": "feature", - "_id": "ONtJ7r2g6tN5q6Ga", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Strange Patterns", + "type": "feature", + "_id": "ONtJ7r2g6tN5q6Ga", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Choose a number between 1 and 12. When you roll that number on a Duality Die, gain a Hope or clear a Stress. You can change this number when you take a long rest.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Choose a number between 1 and 12. When you roll that number on a Duality Die, gain a Hope or clear a Stress. You can change this number when you take a long rest.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748034976746, - "modifiedTime": 1748034998077, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!ONtJ7r2g6tN5q6Ga" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748034976746, + "modifiedTime": 1748034998077, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!ONtJ7r2g6tN5q6Ga" } diff --git a/src/packs/class-features/feature_Unstoppable_rlpNYKW18FX4Hw7t.json b/src/packs/class-features/feature_Unstoppable_rlpNYKW18FX4Hw7t.json index db614e70..f7dc6088 100644 --- a/src/packs/class-features/feature_Unstoppable_rlpNYKW18FX4Hw7t.json +++ b/src/packs/class-features/feature_Unstoppable_rlpNYKW18FX4Hw7t.json @@ -1,46 +1,46 @@ { - "name": "Unstoppable", - "type": "feature", - "_id": "rlpNYKW18FX4Hw7t", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Unstoppable", + "type": "feature", + "_id": "rlpNYKW18FX4Hw7t", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": { + "type": "longRest" + }, + "multiclass": null, + "disabled": false, + "description": "Once per long rest, you can become Unstoppable.
You gain an Unstoppable Die. At level 1, your Unstoppable Die is a [[d4]]. Place it on this sheet in the space provided, starting with the 1 value facing up. After you make a damage roll that deals 1 or more Hit Points to a target, increase the Unstoppable Die value by one. When the die’s value would exceed its maximum value or when the scene ends, remove the die and drop out of Unstoppable. At level 5, your Unstoppable Die increases to a d6.
While Unstoppable, you gain the following benefits:
• You reduce the severity of physical damage by one threshold (Severe to Major, Major to Minor, Minor to None).
• You add the current value of the Unstoppable Die to your damage roll.
• You can’t be Restrained or Vulnerable.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": { - "type": "longRest" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 }, - "multiclass": null, - "disabled": false, - "description": "Once per long rest, you can become Unstoppable.
You gain an Unstoppable Die. At level 1, your Unstoppable Die is a [[d4]]. Place it on this sheet in the space provided, starting with the 1 value facing up. After you make a damage roll that deals 1 or more Hit Points to a target, increase the Unstoppable Die value by one. When the die’s value would exceed its maximum value or when the scene ends, remove the die and drop out of Unstoppable. At level 5, your Unstoppable Die increases to a d6.
While Unstoppable, you gain the following benefits:
• You reduce the severity of physical damage by one threshold (Severe to Major, Major to Minor, Minor to None).
• You add the current value of the Unstoppable Die to your damage roll.
• You can’t be Restrained or Vulnerable.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748030398960, - "modifiedTime": 1748030576414, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!rlpNYKW18FX4Hw7t" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748030398960, + "modifiedTime": 1748030576414, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!rlpNYKW18FX4Hw7t" } diff --git a/src/packs/class-features/feature_Volatile_Magic_J3TdB5ZsmyJ68rxZ.json b/src/packs/class-features/feature_Volatile_Magic_J3TdB5ZsmyJ68rxZ.json index 4812bccf..15c44506 100644 --- a/src/packs/class-features/feature_Volatile_Magic_J3TdB5ZsmyJ68rxZ.json +++ b/src/packs/class-features/feature_Volatile_Magic_J3TdB5ZsmyJ68rxZ.json @@ -1,44 +1,44 @@ { - "name": "Volatile Magic", - "type": "feature", - "_id": "J3TdB5ZsmyJ68rxZ", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Volatile Magic", + "type": "feature", + "_id": "J3TdB5ZsmyJ68rxZ", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Spend 3 Hope to reroll any number of your damage dice on an attack that deals magic damage.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Spend 3 Hope to reroll any number of your damage dice on an attack that deals magic damage.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748033750328, - "modifiedTime": 1748033766963, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!J3TdB5ZsmyJ68rxZ" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748033750328, + "modifiedTime": 1748033766963, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!J3TdB5ZsmyJ68rxZ" } diff --git a/src/packs/class-features/feature_Wildtouch_Dy0lco20C0Nk6yQo.json b/src/packs/class-features/feature_Wildtouch_Dy0lco20C0Nk6yQo.json index ce95b251..4cfdfefc 100644 --- a/src/packs/class-features/feature_Wildtouch_Dy0lco20C0Nk6yQo.json +++ b/src/packs/class-features/feature_Wildtouch_Dy0lco20C0Nk6yQo.json @@ -1,44 +1,44 @@ { - "name": "Wildtouch", - "type": "feature", - "_id": "Dy0lco20C0Nk6yQo", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Wildtouch", + "type": "feature", + "_id": "Dy0lco20C0Nk6yQo", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You can perform harmless, subtle effects that involve nature—such as causing a flower to rapidly grow, summoning a slight gust of wind, or starting a campfire—at will.
", + "effects": {}, + "actions": [], + "type": "class" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You can perform harmless, subtle effects that involve nature—such as causing a flower to rapidly grow, summoning a slight gust of wind, or starting a campfire—at will.
", - "effects": {}, - "actions": [], - "type": "class" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748028880107, - "modifiedTime": 1748028893170, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!Dy0lco20C0Nk6yQo" + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748028880107, + "modifiedTime": 1748028893170, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!Dy0lco20C0Nk6yQo" } diff --git a/src/packs/classes/class_Bard_yKicceU4LesCgKwF.json b/src/packs/classes/class_Bard_yKicceU4LesCgKwF.json index da5d8bfe..11c87e3d 100644 --- a/src/packs/classes/class_Bard_yKicceU4LesCgKwF.json +++ b/src/packs/classes/class_Bard_yKicceU4LesCgKwF.json @@ -1,104 +1,101 @@ { - "name": "Bard", - "type": "class", - "_id": "yKicceU4LesCgKwF", - "img": "systems/daggerheart/assets/icons/classes/bard.png", - "system": { - "domains": [ - "grace", - "codex" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 10, - "features": [ - { - "name": "Make a Scene", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.Ddk0PAgwM4VLRbyY" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Rally", - "uuid": "Compendium.daggerheart.class-features.Item.8uORDWrXtNFzA00U" - } - ], - "subclasses": [ - { - "name": "Troubadour", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.subclasses.Item.T1iBO8i0xRF5c8Q2" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Wordsmith", - "uuid": "Compendium.daggerheart.subclasses.Item.FXT65YDVWFy85EI0" - } - ], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Bard", + "type": "class", + "_id": "yKicceU4LesCgKwF", + "img": "systems/daggerheart/assets/icons/classes/bard.png", + "system": { + "domains": ["grace", "codex"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 10, + "features": [ + { + "name": "Make a Scene", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.Ddk0PAgwM4VLRbyY" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Rally", + "uuid": "Compendium.daggerheart.class-features.Item.8uORDWrXtNFzA00U" + } + ], + "subclasses": [ + { + "name": "Troubadour", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.subclasses.Item.T1iBO8i0xRF5c8Q2" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Wordsmith", + "uuid": "Compendium.daggerheart.subclasses.Item.FXT65YDVWFy85EI0" + } + ], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 0, + "strength": -1, + "finesse": 1, + "instinct": 0, + "presence": 2, + "knowledge": 1 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "Who from your community taught you to have such confidence in yourself?", + "You were in love once. Who did you adore, and how did they hurt you?", + "You’ve always looked up to another bard. Who are they, and why do you idolize them?" + ], + "connections": [ + "What made you realize we were going to be such good friends?", + "What do I do that annoys you?", + "Why do you grab my hand at night?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 0, - "strength": -1, - "finesse": 1, - "instinct": 0, - "presence": 2, - "knowledge": 1 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "Who from your community taught you to have such confidence in yourself?", - "You were in love once. Who did you adore, and how did they hurt you?", - "You’ve always looked up to another bard. Who are they, and why do you idolize them?" - ], - "connections": [ - "What made you realize we were going to be such good friends?", - "What do I do that annoys you?", - "Why do you grab my hand at night?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946810798, - "modifiedTime": 1748029620943, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!yKicceU4LesCgKwF" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946810798, + "modifiedTime": 1748029620943, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!yKicceU4LesCgKwF" } diff --git a/src/packs/classes/class_Druid_HEh27jDQCJmnPsXH.json b/src/packs/classes/class_Druid_HEh27jDQCJmnPsXH.json index 5470f091..039ee888 100644 --- a/src/packs/classes/class_Druid_HEh27jDQCJmnPsXH.json +++ b/src/packs/classes/class_Druid_HEh27jDQCJmnPsXH.json @@ -1,98 +1,95 @@ { - "name": "Druid", - "type": "class", - "_id": "HEh27jDQCJmnPsXH", - "img": "systems/daggerheart/assets/icons/classes/druid.png", - "system": { - "domains": [ - "sage", - "arcana" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 10, - "features": [ - { - "name": "Evolution", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.bZxfyPTZ6rsakyA2" - }, - { - "name": "Beastform", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.NkSKDXGNNiOUlFqm" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Wildtouch", - "uuid": "Compendium.daggerheart.class-features.Item.Dy0lco20C0Nk6yQo" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Druid", + "type": "class", + "_id": "HEh27jDQCJmnPsXH", + "img": "systems/daggerheart/assets/icons/classes/druid.png", + "system": { + "domains": ["sage", "arcana"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 10, + "features": [ + { + "name": "Evolution", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.bZxfyPTZ6rsakyA2" + }, + { + "name": "Beastform", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.NkSKDXGNNiOUlFqm" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Wildtouch", + "uuid": "Compendium.daggerheart.class-features.Item.Dy0lco20C0Nk6yQo" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 1, + "strength": 0, + "finesse": 1, + "instinct": 2, + "presence": -1, + "knowledge": 0 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "Why was the community you grew up in so reliant on nature and its creatures?", + "Who was the first wild animal you bonded with? Why did your bond end?", + "Who has been trying to hunt you down? What do they want from you?" + ], + "connections": [ + "What did you confide in me that makes me leap into danger for you every time?", + "What animal do I say you remind me of?", + "What affectionate nickname have you given me?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 1, - "strength": 0, - "finesse": 1, - "instinct": 2, - "presence": -1, - "knowledge": 0 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "Why was the community you grew up in so reliant on nature and its creatures?", - "Who was the first wild animal you bonded with? Why did your bond end?", - "Who has been trying to hunt you down? What do they want from you?" - ], - "connections": [ - "What did you confide in me that makes me leap into danger for you every time?", - "What animal do I say you remind me of?", - "What affectionate nickname have you given me?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946822837, - "modifiedTime": 1748029712119, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!HEh27jDQCJmnPsXH" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946822837, + "modifiedTime": 1748029712119, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!HEh27jDQCJmnPsXH" } diff --git a/src/packs/classes/class_Fighter_HPzaWaZBc6RvElKd.json b/src/packs/classes/class_Fighter_HPzaWaZBc6RvElKd.json index 2373bedd..e5e24c71 100644 --- a/src/packs/classes/class_Fighter_HPzaWaZBc6RvElKd.json +++ b/src/packs/classes/class_Fighter_HPzaWaZBc6RvElKd.json @@ -1,98 +1,95 @@ { - "name": "Fighter", - "type": "class", - "_id": "HPzaWaZBc6RvElKd", - "img": "systems/daggerheart/assets/icons/classes/fighter.png", - "system": { - "domains": [ - "bone", - "valor" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 11, - "features": [ - { - "name": "Staggering Strike", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.xC0ZG862KrjHGHlx" - }, - { - "name": "I Am The Weapon", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.ihtvQaH18eG56RWY" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Combo Strikes", - "uuid": "Compendium.daggerheart.class-features.Item.RNC8NT8F6x73gRZi" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Fighter", + "type": "class", + "_id": "HPzaWaZBc6RvElKd", + "img": "systems/daggerheart/assets/icons/classes/fighter.png", + "system": { + "domains": ["bone", "valor"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 11, + "features": [ + { + "name": "Staggering Strike", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.xC0ZG862KrjHGHlx" + }, + { + "name": "I Am The Weapon", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.ihtvQaH18eG56RWY" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Combo Strikes", + "uuid": "Compendium.daggerheart.class-features.Item.RNC8NT8F6x73gRZi" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 1, + "strength": 1, + "finesse": 0, + "instinct": 2, + "presence": 10, + "knowledge": -1 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "Where did you spend time during your formative years that taught you, directly or indirectly, how to fight in the style you use?", + "What group or organization that has always had your back, and how did you get in their good graces?", + "Who did you lose to long ago that you are desperate for a rematch against?" + ], + "connections": [ + "What is one thing we’re both afraid of?", + "I rely on your for something important during our travels together. What is it and how do you feel about it?", + "I still haven't forgiven you for something you said to me. What was it and why did you say it?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 1, - "strength": 1, - "finesse": 0, - "instinct": 2, - "presence": 10, - "knowledge": -1 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "Where did you spend time during your formative years that taught you, directly or indirectly, how to fight in the style you use?", - "What group or organization that has always had your back, and how did you get in their good graces?", - "Who did you lose to long ago that you are desperate for a rematch against?" - ], - "connections": [ - "What is one thing we’re both afraid of?", - "I rely on your for something important during our travels together. What is it and how do you feel about it?", - "I still haven't forgiven you for something you said to me. What was it and why did you say it?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946839346, - "modifiedTime": 1748031139229, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!HPzaWaZBc6RvElKd" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946839346, + "modifiedTime": 1748031139229, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!HPzaWaZBc6RvElKd" } diff --git a/src/packs/classes/class_Guardian_hyfigmrAoLxFPOW2.json b/src/packs/classes/class_Guardian_hyfigmrAoLxFPOW2.json index 6e1aacc6..8e3af4de 100644 --- a/src/packs/classes/class_Guardian_hyfigmrAoLxFPOW2.json +++ b/src/packs/classes/class_Guardian_hyfigmrAoLxFPOW2.json @@ -1,93 +1,90 @@ { - "name": "Guardian", - "type": "class", - "_id": "hyfigmrAoLxFPOW2", - "img": "systems/daggerheart/assets/icons/classes/guardian.png", - "system": { - "domains": [ - "valor", - "blade" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 9, - "features": [ - { - "name": "Frontline Tank", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.ftUZznLFJ5xbcxcu" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Unstoppable", - "uuid": "Compendium.daggerheart.class-features.Item.rlpNYKW18FX4Hw7t" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Guardian", + "type": "class", + "_id": "hyfigmrAoLxFPOW2", + "img": "systems/daggerheart/assets/icons/classes/guardian.png", + "system": { + "domains": ["valor", "blade"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 9, + "features": [ + { + "name": "Frontline Tank", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.ftUZznLFJ5xbcxcu" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Unstoppable", + "uuid": "Compendium.daggerheart.class-features.Item.rlpNYKW18FX4Hw7t" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 1, + "strength": 2, + "finesse": -1, + "instinct": 0, + "presence": 1, + "knowledge": 0 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "Who from your community did you fail to protect, and why do you still think of them?", + "You’ve been tasked with protecting something important and delivering it somewhere dangerous. What is it, and where does it need to go?", + "You consider an aspect of yourself to be a weakness. What is it, and how has it affected you?" + ], + "connections": [ + "How did I save your life the first time we met", + "What small gift did you give me that you notice I always carry with me?", + "What lie have you told me about yourself that I absolutely believe?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 1, - "strength": 2, - "finesse": -1, - "instinct": 0, - "presence": 1, - "knowledge": 0 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "Who from your community did you fail to protect, and why do you still think of them?", - "You’ve been tasked with protecting something important and delivering it somewhere dangerous. What is it, and where does it need to go?", - "You consider an aspect of yourself to be a weakness. What is it, and how has it affected you?" - ], - "connections": [ - "How did I save your life the first time we met", - "What small gift did you give me that you notice I always carry with me?", - "What lie have you told me about yourself that I absolutely believe?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946853583, - "modifiedTime": 1748030966166, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!hyfigmrAoLxFPOW2" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946853583, + "modifiedTime": 1748030966166, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!hyfigmrAoLxFPOW2" } diff --git a/src/packs/classes/class_Ranger_XoUsU9sCxEq8t3We.json b/src/packs/classes/class_Ranger_XoUsU9sCxEq8t3We.json index a620d4f8..6fd08970 100644 --- a/src/packs/classes/class_Ranger_XoUsU9sCxEq8t3We.json +++ b/src/packs/classes/class_Ranger_XoUsU9sCxEq8t3We.json @@ -1,93 +1,90 @@ { - "name": "Ranger", - "type": "class", - "_id": "XoUsU9sCxEq8t3We", - "img": "systems/daggerheart/assets/icons/classes/ranger.png", - "system": { - "domains": [ - "bone", - "sage" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 12, - "features": [ - { - "name": "Hold Them Off", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.FSx2ojskU0pRE72g" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Ranger's Focus", - "uuid": "Compendium.daggerheart.class-features.Item.b4O4r2HPbWU8s59q" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Ranger", + "type": "class", + "_id": "XoUsU9sCxEq8t3We", + "img": "systems/daggerheart/assets/icons/classes/ranger.png", + "system": { + "domains": ["bone", "sage"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 12, + "features": [ + { + "name": "Hold Them Off", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.FSx2ojskU0pRE72g" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Ranger's Focus", + "uuid": "Compendium.daggerheart.class-features.Item.b4O4r2HPbWU8s59q" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 2, + "strength": 0, + "finesse": 1, + "instinct": 1, + "presence": -1, + "knowledge": 0 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "A terrible creature hurt your community, and you’ve vowed to hunt them down. What are they, and what unique trail or sign do they leave behind?", + "Your first kill almost killed you, too. What was it, and what part of you was never the same after that event?", + "You’ve traveled many dangerous lands, but what is the one place you refuse to go?" + ], + "connections": [ + "What friendly competition do we have?", + "Why do you act differently when we’re alone than when others are around?", + "What threat have you asked me to watch for, and why are you worried about it?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 2, - "strength": 0, - "finesse": 1, - "instinct": 1, - "presence": -1, - "knowledge": 0 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "A terrible creature hurt your community, and you’ve vowed to hunt them down. What are they, and what unique trail or sign do they leave behind?", - "Your first kill almost killed you, too. What was it, and what part of you was never the same after that event?", - "You’ve traveled many dangerous lands, but what is the one place you refuse to go?" - ], - "connections": [ - "What friendly competition do we have?", - "Why do you act differently when we’re alone than when others are around?", - "What threat have you asked me to watch for, and why are you worried about it?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946878680, - "modifiedTime": 1748030921142, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!XoUsU9sCxEq8t3We" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946878680, + "modifiedTime": 1748030921142, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!XoUsU9sCxEq8t3We" } diff --git a/src/packs/classes/class_Rogue_V1a5AKCLe8qtoPlA.json b/src/packs/classes/class_Rogue_V1a5AKCLe8qtoPlA.json index 6a3021ca..4d043aac 100644 --- a/src/packs/classes/class_Rogue_V1a5AKCLe8qtoPlA.json +++ b/src/packs/classes/class_Rogue_V1a5AKCLe8qtoPlA.json @@ -1,98 +1,95 @@ { - "name": "Rogue", - "type": "class", - "_id": "V1a5AKCLe8qtoPlA", - "img": "systems/daggerheart/assets/icons/classes/rogue.png", - "system": { - "domains": [ - "midnight", - "grace" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 12, - "features": [ - { - "name": "Rogue’s Dodge", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.fPGn9JNV24nt1G9d" - }, - { - "name": "Cloaked", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.TpaoHSJ3npjWiBOf" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Sneak Attack", - "uuid": "Compendium.daggerheart.class-features.Item.PhHOmsoYUDC42by6" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Rogue", + "type": "class", + "_id": "V1a5AKCLe8qtoPlA", + "img": "systems/daggerheart/assets/icons/classes/rogue.png", + "system": { + "domains": ["midnight", "grace"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 12, + "features": [ + { + "name": "Rogue’s Dodge", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.fPGn9JNV24nt1G9d" + }, + { + "name": "Cloaked", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.TpaoHSJ3npjWiBOf" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Sneak Attack", + "uuid": "Compendium.daggerheart.class-features.Item.PhHOmsoYUDC42by6" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 1, + "strength": -1, + "finesse": 2, + "instinct": 0, + "presence": 1, + "knowledge": 0 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "What did you get caught doing that got you exiled from your home community?", + "You used to have a different life, but you’ve tried to leave it behind. Who from your past is still chasing you?", + "Who from your past were you most sad to say goodbye to?" + ], + "connections": [ + "What did I recently convince you to do that got us both in trouble?", + "What have I discovered about your past that I hold secret from the others?", + "Who do you know from my past, and how have they influenced your feelings about me?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 1, - "strength": -1, - "finesse": 2, - "instinct": 0, - "presence": 1, - "knowledge": 0 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "What did you get caught doing that got you exiled from your home community?", - "You used to have a different life, but you’ve tried to leave it behind. Who from your past is still chasing you?", - "Who from your past were you most sad to say goodbye to?" - ], - "connections": [ - "What did I recently convince you to do that got us both in trouble?", - "What have I discovered about your past that I hold secret from the others?", - "Who do you know from my past, and how have they influenced your feelings about me?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946902620, - "modifiedTime": 1748032307699, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!V1a5AKCLe8qtoPlA" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946902620, + "modifiedTime": 1748032307699, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!V1a5AKCLe8qtoPlA" } diff --git a/src/packs/classes/class_Seraph_qW7yLIe87vd5bbto.json b/src/packs/classes/class_Seraph_qW7yLIe87vd5bbto.json index c16b086c..33bb3198 100644 --- a/src/packs/classes/class_Seraph_qW7yLIe87vd5bbto.json +++ b/src/packs/classes/class_Seraph_qW7yLIe87vd5bbto.json @@ -1,93 +1,90 @@ { - "name": "Seraph", - "type": "class", - "_id": "qW7yLIe87vd5bbto", - "img": "systems/daggerheart/assets/icons/classes/seraph.png", - "system": { - "domains": [ - "splendor", - "valor" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 9, - "features": [ - { - "name": "Life Support", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.UZ9UjZArSJh6UHXG" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Prayer Dice", - "uuid": "Compendium.daggerheart.class-features.Item.jXfGnLnU8PswJYJd" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Seraph", + "type": "class", + "_id": "qW7yLIe87vd5bbto", + "img": "systems/daggerheart/assets/icons/classes/seraph.png", + "system": { + "domains": ["splendor", "valor"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 9, + "features": [ + { + "name": "Life Support", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.UZ9UjZArSJh6UHXG" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Prayer Dice", + "uuid": "Compendium.daggerheart.class-features.Item.jXfGnLnU8PswJYJd" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 0, + "strength": 2, + "finesse": 0, + "instinct": 1, + "presence": 1, + "knowledge": -1 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "Which god did you devote yourself to? What incredible feat did they perform for you in a moment of desperation?", + "How did your appearance change after taking your oath?", + "In what strange or unique way do you communicate with your god?" + ], + "connections": [ + "What promise did you make me agree to, should you die on the battlefield?", + "Why do you ask me so many questions about my god?", + "You’ve told me to protect one member of our party above all others, even yourself. Who are they and why?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 0, - "strength": 2, - "finesse": 0, - "instinct": 1, - "presence": 1, - "knowledge": -1 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "Which god did you devote yourself to? What incredible feat did they perform for you in a moment of desperation?", - "How did your appearance change after taking your oath?", - "In what strange or unique way do you communicate with your god?" - ], - "connections": [ - "What promise did you make me agree to, should you die on the battlefield?", - "Why do you ask me so many questions about my god?", - "You’ve told me to protect one member of our party above all others, even yourself. Who are they and why?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946916585, - "modifiedTime": 1748033639820, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!qW7yLIe87vd5bbto" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946916585, + "modifiedTime": 1748033639820, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!qW7yLIe87vd5bbto" } diff --git a/src/packs/classes/class_Sorcerer_aacMxI9mOTmLO4cj.json b/src/packs/classes/class_Sorcerer_aacMxI9mOTmLO4cj.json index 4ff8cc29..0e379afc 100644 --- a/src/packs/classes/class_Sorcerer_aacMxI9mOTmLO4cj.json +++ b/src/packs/classes/class_Sorcerer_aacMxI9mOTmLO4cj.json @@ -1,103 +1,100 @@ { - "name": "Sorcerer", - "type": "class", - "_id": "aacMxI9mOTmLO4cj", - "img": "systems/daggerheart/assets/icons/classes/sorcerer.png", - "system": { - "domains": [ - "arcana", - "midnight" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 10, - "features": [ - { - "name": "Volatile Magic", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.J3TdB5ZsmyJ68rxZ" - }, - { - "name": "Arcane Sense", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.D5HUGwdizhBVZ0RW" - }, - { - "name": "Minor Illusion", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.qFq7kynAZhbWTbT5" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Channel Raw Power", - "uuid": "Compendium.daggerheart.class-features.Item.ovxuqhl01XZSwx2n" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Sorcerer", + "type": "class", + "_id": "aacMxI9mOTmLO4cj", + "img": "systems/daggerheart/assets/icons/classes/sorcerer.png", + "system": { + "domains": ["arcana", "midnight"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 10, + "features": [ + { + "name": "Volatile Magic", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.J3TdB5ZsmyJ68rxZ" + }, + { + "name": "Arcane Sense", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.D5HUGwdizhBVZ0RW" + }, + { + "name": "Minor Illusion", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.qFq7kynAZhbWTbT5" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Channel Raw Power", + "uuid": "Compendium.daggerheart.class-features.Item.ovxuqhl01XZSwx2n" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 0, + "strength": -1, + "finesse": 1, + "instinct": 2, + "presence": 1, + "knowledge": 0 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "What did you do that made the people in your community wary of you?", + "What mentor taught you to control your untamed magic, and why are they no longer able to guide you?", + "You have a deep fear you hide from everyone. What is it, and why does it scare you?" + ], + "connections": [ + "Why do you trust me so deeply?", + "What did I do that makes you cautious around me?", + "Why do we keep our shared past a secret?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 0, - "strength": -1, - "finesse": 1, - "instinct": 2, - "presence": 1, - "knowledge": 0 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "What did you do that made the people in your community wary of you?", - "What mentor taught you to control your untamed magic, and why are they no longer able to guide you?", - "You have a deep fear you hide from everyone. What is it, and why does it scare you?" - ], - "connections": [ - "Why do you trust me so deeply?", - "What did I do that makes you cautious around me?", - "Why do we keep our shared past a secret?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946940010, - "modifiedTime": 1748033881134, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!aacMxI9mOTmLO4cj" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946940010, + "modifiedTime": 1748033881134, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!aacMxI9mOTmLO4cj" } diff --git a/src/packs/classes/class_Warlock_kSSIqmgxFTm1Xr9s.json b/src/packs/classes/class_Warlock_kSSIqmgxFTm1Xr9s.json index 0f4cd617..7efe26f8 100644 --- a/src/packs/classes/class_Warlock_kSSIqmgxFTm1Xr9s.json +++ b/src/packs/classes/class_Warlock_kSSIqmgxFTm1Xr9s.json @@ -1,70 +1,62 @@ { - "name": "Warlock", - "type": "class", - "_id": "kSSIqmgxFTm1Xr9s", - "img": "systems/daggerheart/assets/icons/classes/warlock.png", - "system": { - "domains": [], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 + "name": "Warlock", + "type": "class", + "_id": "kSSIqmgxFTm1Xr9s", + "img": "systems/daggerheart/assets/icons/classes/warlock.png", + "system": { + "domains": [], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 0, + "features": [], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": null + }, + "characterGuide": { + "suggestedTraits": { + "agility": 0, + "strength": 0, + "finesse": 0, + "instinct": 0, + "presence": 0, + "knowledge": 0 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": {}, + "backgroundQuestions": ["", "", ""], + "connections": ["", "", ""] + }, + "multiclass": null, + "description": "" }, - "evasion": 0, - "features": [], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": null + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "characterGuide": { - "suggestedTraits": { - "agility": 0, - "strength": 0, - "finesse": 0, - "instinct": 0, - "presence": 0, - "knowledge": 0 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": {}, - "backgroundQuestions": [ - "", - "", - "" - ], - "connections": [ - "", - "", - "" - ] + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946952119, + "modifiedTime": 1747946955843, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946952119, - "modifiedTime": 1747946955843, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!kSSIqmgxFTm1Xr9s" + "_key": "!items!kSSIqmgxFTm1Xr9s" } diff --git a/src/packs/classes/class_Warrior_ishqAXCT8xLgEbBp.json b/src/packs/classes/class_Warrior_ishqAXCT8xLgEbBp.json index ef801938..13dfd4c6 100644 --- a/src/packs/classes/class_Warrior_ishqAXCT8xLgEbBp.json +++ b/src/packs/classes/class_Warrior_ishqAXCT8xLgEbBp.json @@ -1,98 +1,95 @@ { - "name": "Warrior", - "type": "class", - "_id": "ishqAXCT8xLgEbBp", - "img": "systems/daggerheart/assets/icons/classes/warrior.png", - "system": { - "domains": [ - "blade", - "bone" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 11, - "features": [ - { - "name": "No Mercy", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.t3tLoq4h9wgQD7E9" - }, - { - "name": "Attack of Opportunity", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.VfUbJwGU4Cka0xLP" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Combat Training", - "uuid": "Compendium.daggerheart.class-features.Item.elb6ZVertgu6OdKA" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Warrior", + "type": "class", + "_id": "ishqAXCT8xLgEbBp", + "img": "systems/daggerheart/assets/icons/classes/warrior.png", + "system": { + "domains": ["blade", "bone"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 11, + "features": [ + { + "name": "No Mercy", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.t3tLoq4h9wgQD7E9" + }, + { + "name": "Attack of Opportunity", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.VfUbJwGU4Cka0xLP" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Combat Training", + "uuid": "Compendium.daggerheart.class-features.Item.elb6ZVertgu6OdKA" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": 2, + "strength": 1, + "finesse": 0, + "instinct": 1, + "presence": -1, + "knowledge": 0 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "Who taught you to fight, and why did they stay behind when you left home?", + "Somebody defeated you in battle years ago and left you to die. Who was it, and how did they betray you?", + "What legendary place have you always wanted to visit, and why is it so special?" + ], + "connections": [ + "We knew each other long before this party came together. How?", + "What mundane task do you usually help me with off the battlefield", + "What fear am I helping you overcome?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": 2, - "strength": 1, - "finesse": 0, - "instinct": 1, - "presence": -1, - "knowledge": 0 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "Who taught you to fight, and why did they stay behind when you left home?", - "Somebody defeated you in battle years ago and left you to die. Who was it, and how did they betray you?", - "What legendary place have you always wanted to visit, and why is it so special?" - ], - "connections": [ - "We knew each other long before this party came together. How?", - "What mundane task do you usually help me with off the battlefield", - "What fear am I helping you overcome?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946965065, - "modifiedTime": 1748034254542, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!ishqAXCT8xLgEbBp" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946965065, + "modifiedTime": 1748034254542, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!ishqAXCT8xLgEbBp" } diff --git a/src/packs/classes/class_Wizard_uhj2mZPOC8nbIMTy.json b/src/packs/classes/class_Wizard_uhj2mZPOC8nbIMTy.json index c784eaae..87e0f389 100644 --- a/src/packs/classes/class_Wizard_uhj2mZPOC8nbIMTy.json +++ b/src/packs/classes/class_Wizard_uhj2mZPOC8nbIMTy.json @@ -1,98 +1,95 @@ { - "name": "Wizard", - "type": "class", - "_id": "uhj2mZPOC8nbIMTy", - "img": "systems/daggerheart/assets/icons/classes/wizard.png", - "system": { - "domains": [ - "codex", - "splendor" - ], - "classItems": [], - "damageThresholds": { - "minor": 0, - "major": 0, - "severe": 0 - }, - "evasion": 11, - "features": [ - { - "name": "Not This Time", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.5msGbQyFwdwdFdYs" - }, - { - "name": "Prestidigitation", - "img": "icons/svg/item-bag.svg", - "uuid": "Compendium.daggerheart.class-features.Item.ofBmJIn6NWxA0wPz" - }, - { - "img": "icons/svg/item-bag.svg", - "name": "Strange Patterns", - "uuid": "Compendium.daggerheart.class-features.Item.ONtJ7r2g6tN5q6Ga" - } - ], - "subclasses": [], - "inventory": { - "take": [], - "choiceA": [], - "choiceB": [], - "extra": { - "title": "", + "name": "Wizard", + "type": "class", + "_id": "uhj2mZPOC8nbIMTy", + "img": "systems/daggerheart/assets/icons/classes/wizard.png", + "system": { + "domains": ["codex", "splendor"], + "classItems": [], + "damageThresholds": { + "minor": 0, + "major": 0, + "severe": 0 + }, + "evasion": 11, + "features": [ + { + "name": "Not This Time", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.5msGbQyFwdwdFdYs" + }, + { + "name": "Prestidigitation", + "img": "icons/svg/item-bag.svg", + "uuid": "Compendium.daggerheart.class-features.Item.ofBmJIn6NWxA0wPz" + }, + { + "img": "icons/svg/item-bag.svg", + "name": "Strange Patterns", + "uuid": "Compendium.daggerheart.class-features.Item.ONtJ7r2g6tN5q6Ga" + } + ], + "subclasses": [], + "inventory": { + "take": [], + "choiceA": [], + "choiceB": [], + "extra": { + "title": "", + "description": "" + } + }, + "characterGuide": { + "suggestedTraits": { + "agility": -1, + "strength": 0, + "finesse": 0, + "instinct": 1, + "presence": 1, + "knowledge": 2 + }, + "suggestedPrimaryWeapon": null, + "suggestedSecondaryWeapon": null, + "suggestedArmor": null, + "characterDescription": { + "clothes": "", + "eyes": "", + "body": "", + "color": "", + "attitude": "" + }, + "backgroundQuestions": [ + "What responsibilities did your community once count on you for? How did you let them down?", + "You’ve spent your life searching for a book or object of great significance. What is it, and why is it so important to you", + "You have a powerful rival. Who are they, and why are you so determined to defeat them?" + ], + "connections": [ + "What favor have I asked of you that you’re not sure you can fulfill?", + "What weird hobby or strange fascination do we both share?", + "What secret about yourself have you entrusted only to me?" + ] + }, + "multiclass": null, "description": "" - } }, - "characterGuide": { - "suggestedTraits": { - "agility": -1, - "strength": 0, - "finesse": 0, - "instinct": 1, - "presence": 1, - "knowledge": 2 - }, - "suggestedPrimaryWeapon": null, - "suggestedSecondaryWeapon": null, - "suggestedArmor": null, - "characterDescription": { - "clothes": "", - "eyes": "", - "body": "", - "color": "", - "attitude": "" - }, - "backgroundQuestions": [ - "What responsibilities did your community once count on you for? How did you let them down?", - "You’ve spent your life searching for a book or object of great significance. What is it, and why is it so important to you", - "You have a powerful rival. Who are they, and why are you so determined to defeat them?" - ], - "connections": [ - "What favor have I asked of you that you’re not sure you can fulfill?", - "What weird hobby or strange fascination do we both share?", - "What secret about yourself have you entrusted only to me?" - ] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "multiclass": null, - "description": "" - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747946791380, - "modifiedTime": 1748035008107, - "lastModifiedBy": "ei8OkswTzyDp4IGC" - }, - "_key": "!items!uhj2mZPOC8nbIMTy" + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747946791380, + "modifiedTime": 1748035008107, + "lastModifiedBy": "ei8OkswTzyDp4IGC" + }, + "_key": "!items!uhj2mZPOC8nbIMTy" } diff --git a/src/packs/communities/community_Highborne_8AcV556QwoIzkkea.json b/src/packs/communities/community_Highborne_8AcV556QwoIzkkea.json index f37d81f5..252ccdbf 100644 --- a/src/packs/communities/community_Highborne_8AcV556QwoIzkkea.json +++ b/src/packs/communities/community_Highborne_8AcV556QwoIzkkea.json @@ -1,36 +1,36 @@ { - "name": "Highborne", - "type": "community", - "_id": "8AcV556QwoIzkkea", - "img": "systems/daggerheart/assets/icons/communities/highborne.png", - "system": { - "description": "Being part of a highborne community means you're accustomed to life of elegance, opulence, and prestige within the upper echelons of society. Traditionally, members of a highborne community possess incredible material wealth. While this can take a variety of forms depending on the community—including gold and other minerals, land, or controlling the means of production—this status always comes with power and influence. Highborne place great value on titles and possessions, and there is little social mobility within their ranks. Members of a highborne community often control the political and economic status of the areas in which they live due to their ability to influence people and the economy with their substantial wealth. The health and safety of the less affluent people who live in these locations often hinges on the ability of this highborne ruling class to prioritize the well-being of their subjects over profit.
Highborne are often amiable, candid, conniving, enterprising, ostentatious, and unflappable.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Privilege", - "uuid": "Compendium.world.community-features.Item.WoMZCTnDcK8GPSh1" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940320728, - "modifiedTime": 1747990568291, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!8AcV556QwoIzkkea" + "name": "Highborne", + "type": "community", + "_id": "8AcV556QwoIzkkea", + "img": "systems/daggerheart/assets/icons/communities/highborne.png", + "system": { + "description": "Being part of a highborne community means you're accustomed to life of elegance, opulence, and prestige within the upper echelons of society. Traditionally, members of a highborne community possess incredible material wealth. While this can take a variety of forms depending on the community—including gold and other minerals, land, or controlling the means of production—this status always comes with power and influence. Highborne place great value on titles and possessions, and there is little social mobility within their ranks. Members of a highborne community often control the political and economic status of the areas in which they live due to their ability to influence people and the economy with their substantial wealth. The health and safety of the less affluent people who live in these locations often hinges on the ability of this highborne ruling class to prioritize the well-being of their subjects over profit.
Highborne are often amiable, candid, conniving, enterprising, ostentatious, and unflappable.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Privilege", + "uuid": "Compendium.world.community-features.Item.WoMZCTnDcK8GPSh1" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940320728, + "modifiedTime": 1747990568291, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!8AcV556QwoIzkkea" } diff --git a/src/packs/communities/community_Loreborne_fgJHuCdoyXX4Q84O.json b/src/packs/communities/community_Loreborne_fgJHuCdoyXX4Q84O.json index b6132b3f..eeceb3b3 100644 --- a/src/packs/communities/community_Loreborne_fgJHuCdoyXX4Q84O.json +++ b/src/packs/communities/community_Loreborne_fgJHuCdoyXX4Q84O.json @@ -1,36 +1,36 @@ { - "name": "Loreborne", - "type": "community", - "_id": "fgJHuCdoyXX4Q84O", - "img": "systems/daggerheart/assets/icons/communities/loreborne.png", - "system": { - "description": "Being part of a loreborne community means you’re from a society that favors strong academic or political prowess. Loreborne communities highly value knowledge, frequently in the form of historical preservation, political advancement, scientific study, skill development, or lore and mythology compilation. Most members of these communities research in institutions built in bastions of civilization, while some eclectic few thrive in gathering information from the natural world. Some may be isolationists, operating in smaller enclaves, schools, or guilds and following their own unique ethos. Others still wield their knowledge on a larger scale, making deft political maneuvers across governmental landscapes.
Loreborne are often direct, eloquent, inquisitive, patient,
rhapsodic, and witty.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Well-Read", - "uuid": "Compendium.world.community-features.Item.MUfVlf8hoJ3HZidv" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940300210, - "modifiedTime": 1747990671092, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!fgJHuCdoyXX4Q84O" + "name": "Loreborne", + "type": "community", + "_id": "fgJHuCdoyXX4Q84O", + "img": "systems/daggerheart/assets/icons/communities/loreborne.png", + "system": { + "description": "Being part of a loreborne community means you’re from a society that favors strong academic or political prowess. Loreborne communities highly value knowledge, frequently in the form of historical preservation, political advancement, scientific study, skill development, or lore and mythology compilation. Most members of these communities research in institutions built in bastions of civilization, while some eclectic few thrive in gathering information from the natural world. Some may be isolationists, operating in smaller enclaves, schools, or guilds and following their own unique ethos. Others still wield their knowledge on a larger scale, making deft political maneuvers across governmental landscapes.
Loreborne are often direct, eloquent, inquisitive, patient,
rhapsodic, and witty.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Well-Read", + "uuid": "Compendium.world.community-features.Item.MUfVlf8hoJ3HZidv" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940300210, + "modifiedTime": 1747990671092, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!fgJHuCdoyXX4Q84O" } diff --git a/src/packs/communities/community_Orderborne_Cg39GoSa6lxhXndW.json b/src/packs/communities/community_Orderborne_Cg39GoSa6lxhXndW.json index 01936248..5d0011d2 100644 --- a/src/packs/communities/community_Orderborne_Cg39GoSa6lxhXndW.json +++ b/src/packs/communities/community_Orderborne_Cg39GoSa6lxhXndW.json @@ -1,36 +1,36 @@ { - "name": "Orderborne", - "type": "community", - "_id": "Cg39GoSa6lxhXndW", - "img": "systems/daggerheart/assets/icons/communities/orderborne.png", - "system": { - "description": "Being part of an orderborne community means you’re from a collective that focuses on discipline or faith, and you uphold a set of principles that reflect your experience there. Orderborne are frequently some of the most powerful among the surrounding communities.
By aligning the members of their society around a common value or goal, such as a god, doctrine, ethos, or even a shared business or trade, the ruling bodies of these enclaves are able to mobilize larger populations with less effort.
While orderborne communities take a variety of forms—some even profoundly pacifistic—perhaps the most feared are those that structure themselves around military prowess. In such a case, it’s not uncommon for orderborne to provide soldiers for hire to other cities or countries.
Orderborne are often ambitious, benevolent, pensive, prudent, sardonic, and stoic.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Dedicated", - "uuid": "Compendium.world.community-features.Item.b7LmL7ti1gL5kfGq" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940332147, - "modifiedTime": 1747990820386, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!Cg39GoSa6lxhXndW" + "name": "Orderborne", + "type": "community", + "_id": "Cg39GoSa6lxhXndW", + "img": "systems/daggerheart/assets/icons/communities/orderborne.png", + "system": { + "description": "Being part of an orderborne community means you’re from a collective that focuses on discipline or faith, and you uphold a set of principles that reflect your experience there. Orderborne are frequently some of the most powerful among the surrounding communities.
By aligning the members of their society around a common value or goal, such as a god, doctrine, ethos, or even a shared business or trade, the ruling bodies of these enclaves are able to mobilize larger populations with less effort.
While orderborne communities take a variety of forms—some even profoundly pacifistic—perhaps the most feared are those that structure themselves around military prowess. In such a case, it’s not uncommon for orderborne to provide soldiers for hire to other cities or countries.
Orderborne are often ambitious, benevolent, pensive, prudent, sardonic, and stoic.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Dedicated", + "uuid": "Compendium.world.community-features.Item.b7LmL7ti1gL5kfGq" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940332147, + "modifiedTime": 1747990820386, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!Cg39GoSa6lxhXndW" } diff --git a/src/packs/communities/community_Ridgeborne_DAQoNvVlc9w7NmZd.json b/src/packs/communities/community_Ridgeborne_DAQoNvVlc9w7NmZd.json index 39ef2693..a3e5e769 100644 --- a/src/packs/communities/community_Ridgeborne_DAQoNvVlc9w7NmZd.json +++ b/src/packs/communities/community_Ridgeborne_DAQoNvVlc9w7NmZd.json @@ -1,36 +1,36 @@ { - "name": "Ridgeborne", - "type": "community", - "_id": "DAQoNvVlc9w7NmZd", - "img": "systems/daggerheart/assets/icons/communities/ridgeborne.png", - "system": { - "description": "Being part of a ridgeborne community means you’ve called the rocky peaks and sharp cliffs of the mountainside home. Those who’ve lived in the mountains often consider themselves hardier than most because they’ve thrived among the most dangerous terrain many continents have to offer. These groups are adept at adaptation, developing unique technologies and equipment to move both people and products across difficult terrain. As such, ridgeborne grow up scrambling and climbing, making them sturdy and strong-willed. Ridgeborne localities appear in a variety of forms—some cities carve out entire cliff faces, others construct castles of stone, and still more live in small homes on windblown peaks. Outside forces often struggle to attack ridgeborne groups, as the small militias and large military forces of the mountains are adept at utilizing their high-ground advantage.
Ridgeborne are often bold, hardy, indomitable, loyal, reserved, and stubborn.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Steady", - "uuid": "Compendium.world.community-features.Item.hKGv54dst9crq3Sw" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940346633, - "modifiedTime": 1747990891669, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!DAQoNvVlc9w7NmZd" + "name": "Ridgeborne", + "type": "community", + "_id": "DAQoNvVlc9w7NmZd", + "img": "systems/daggerheart/assets/icons/communities/ridgeborne.png", + "system": { + "description": "Being part of a ridgeborne community means you’ve called the rocky peaks and sharp cliffs of the mountainside home. Those who’ve lived in the mountains often consider themselves hardier than most because they’ve thrived among the most dangerous terrain many continents have to offer. These groups are adept at adaptation, developing unique technologies and equipment to move both people and products across difficult terrain. As such, ridgeborne grow up scrambling and climbing, making them sturdy and strong-willed. Ridgeborne localities appear in a variety of forms—some cities carve out entire cliff faces, others construct castles of stone, and still more live in small homes on windblown peaks. Outside forces often struggle to attack ridgeborne groups, as the small militias and large military forces of the mountains are adept at utilizing their high-ground advantage.
Ridgeborne are often bold, hardy, indomitable, loyal, reserved, and stubborn.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Steady", + "uuid": "Compendium.world.community-features.Item.hKGv54dst9crq3Sw" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940346633, + "modifiedTime": 1747990891669, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!DAQoNvVlc9w7NmZd" } diff --git a/src/packs/communities/community_Seaborne_ivrXToGxyuVdqZtG.json b/src/packs/communities/community_Seaborne_ivrXToGxyuVdqZtG.json index a2c10f39..ebebca78 100644 --- a/src/packs/communities/community_Seaborne_ivrXToGxyuVdqZtG.json +++ b/src/packs/communities/community_Seaborne_ivrXToGxyuVdqZtG.json @@ -1,36 +1,36 @@ { - "name": "Seaborne", - "type": "community", - "_id": "ivrXToGxyuVdqZtG", - "img": "systems/daggerheart/assets/icons/communities/seaborne.png", - "system": { - "description": "Being part of a seaborne community means you lived on or near a large body of water. Seaborne communities are built, both physically and culturally, around the specific waters they call home.
Some of these groups live along the shore, constructing ports for locals and travelers alike. These harbors function as centers of commerce, tourist attractions, or even just a safe place to lay down one’s head after weeks of travel. Other seaborne live on the water in small boats or large ships, with the idea of “home” comprising a ship and its crew, rather than any one landmass.
No matter their exact location, seaborne communities are closely tied to the ocean tides and the creatures who inhabit them. Seaborne learn to fish at a young age, and train from birth to hold their breath and swim in even the most tumultuous waters. Individuals from these groups are highly sought after for their sailing skills, and many become captains of vessels, whether within their own community, working for another, or even at the helm of a powerful naval operation.
Seaborne are often candid, cooperative, exuberant, fierce, resolute, and weathered.
Being part of a seaborne community means you lived on or near a large body of water. Seaborne communities are built, both physically and culturally, around the specific waters they call home.
Some of these groups live along the shore, constructing ports for locals and travelers alike. These harbors function as centers of commerce, tourist attractions, or even just a safe place to lay down one’s head after weeks of travel. Other seaborne live on the water in small boats or large ships, with the idea of “home” comprising a ship and its crew, rather than any one landmass.
No matter their exact location, seaborne communities are closely tied to the ocean tides and the creatures who inhabit them. Seaborne learn to fish at a young age, and train from birth to hold their breath and swim in even the most tumultuous waters. Individuals from these groups are highly sought after for their sailing skills, and many become captains of vessels, whether within their own community, working for another, or even at the helm of a powerful naval operation.
Seaborne are often candid, cooperative, exuberant, fierce, resolute, and weathered.
Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists. Members of slyborne communities are brought together by their disreputable goals and their clever means of achieving them. Many people in these communities have an array of unscrupulous skills: forging, thievery, smuggling, and violence. People of any social class can be slyborne, from those who have garnered vast wealth and influence to those without a coin to their name. To the outside eye, slyborne might appear to be ruffians with no loyalty, but these communities possess some of the strictest codes of honor which, when broken, can result in a terrifying end for the transgressor.
Slyborne are often calculating, clever, formidable, perceptive, shrewd, and tenacious.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Scoundrel", - "uuid": "Compendium.world.community-features.Item.p2PipVUiMt0Cy0ws" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940388725, - "modifiedTime": 1747991089836, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!rwsUCLenOkE9CS7v" + "name": "Slyborne", + "type": "community", + "_id": "rwsUCLenOkE9CS7v", + "img": "systems/daggerheart/assets/icons/communities/slyborne.png", + "system": { + "description": "Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists. Members of slyborne communities are brought together by their disreputable goals and their clever means of achieving them. Many people in these communities have an array of unscrupulous skills: forging, thievery, smuggling, and violence. People of any social class can be slyborne, from those who have garnered vast wealth and influence to those without a coin to their name. To the outside eye, slyborne might appear to be ruffians with no loyalty, but these communities possess some of the strictest codes of honor which, when broken, can result in a terrifying end for the transgressor.
Slyborne are often calculating, clever, formidable, perceptive, shrewd, and tenacious.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Scoundrel", + "uuid": "Compendium.world.community-features.Item.p2PipVUiMt0Cy0ws" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940388725, + "modifiedTime": 1747991089836, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!rwsUCLenOkE9CS7v" } diff --git a/src/packs/communities/community_Underborne_CXQN2zcQUIjUOx1i.json b/src/packs/communities/community_Underborne_CXQN2zcQUIjUOx1i.json index ab2f3b19..a0f99f40 100644 --- a/src/packs/communities/community_Underborne_CXQN2zcQUIjUOx1i.json +++ b/src/packs/communities/community_Underborne_CXQN2zcQUIjUOx1i.json @@ -1,36 +1,36 @@ { - "name": "Underborne", - "type": "community", - "_id": "CXQN2zcQUIjUOx1i", - "img": "systems/daggerheart/assets/icons/communities/underborne.png", - "system": { - "description": "Being part of an underborne community means you’re from a subterranean society. Many underborne live right beneath the cities and villages of other collectives, while some live much deeper. These communities range from small family groups in burrows to massive metropolises in caverns of stone. In many locales, underborne are recognized for their incredible boldness and skill that enable great feats of architecture and engineering. Underborne are regularly hired for their bravery, as even the least daring among them has likely encountered formidable belowground beasts, and learning to dispatch such creatures is common practice amongst these societies.
Because of the dangers of their environment, many underborne communities develop unique nonverbal languages that prove equally useful on the surface.
Underborne are often composed, elusive, indomitable, innovative, resourceful, and unpretentious.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Low-Light Living", - "uuid": "Compendium.world.community-features.Item.p12Le1M3DPWXa0vh" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940403160, - "modifiedTime": 1747991158174, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!CXQN2zcQUIjUOx1i" + "name": "Underborne", + "type": "community", + "_id": "CXQN2zcQUIjUOx1i", + "img": "systems/daggerheart/assets/icons/communities/underborne.png", + "system": { + "description": "Being part of an underborne community means you’re from a subterranean society. Many underborne live right beneath the cities and villages of other collectives, while some live much deeper. These communities range from small family groups in burrows to massive metropolises in caverns of stone. In many locales, underborne are recognized for their incredible boldness and skill that enable great feats of architecture and engineering. Underborne are regularly hired for their bravery, as even the least daring among them has likely encountered formidable belowground beasts, and learning to dispatch such creatures is common practice amongst these societies.
Because of the dangers of their environment, many underborne communities develop unique nonverbal languages that prove equally useful on the surface.
Underborne are often composed, elusive, indomitable, innovative, resourceful, and unpretentious.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Low-Light Living", + "uuid": "Compendium.world.community-features.Item.p12Le1M3DPWXa0vh" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940403160, + "modifiedTime": 1747991158174, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!CXQN2zcQUIjUOx1i" } diff --git a/src/packs/communities/community_Wanderborne_DHB5uSzbBeJCJuvC.json b/src/packs/communities/community_Wanderborne_DHB5uSzbBeJCJuvC.json index 0e73f066..b5407762 100644 --- a/src/packs/communities/community_Wanderborne_DHB5uSzbBeJCJuvC.json +++ b/src/packs/communities/community_Wanderborne_DHB5uSzbBeJCJuvC.json @@ -1,36 +1,36 @@ { - "name": "Wanderborne", - "type": "community", - "_id": "DHB5uSzbBeJCJuvC", - "img": "systems/daggerheart/assets/icons/communities/wanderborne.png", - "system": { - "description": "Being part of a wanderborne community means you’ve lived as a nomad, forgoing a permanent home and experiencing a wide variety of cultures. Unlike many communities that are defined by their locale, wanderborne are defined by their traveling lifestyle. Because of their frequent migration, wanderborne put less value on the accumulation of material possessions in favor of acquiring information, skills, and connections. While some wanderborne are allied by a common ethos, such as a religion or a set of political or economic values, others come together after shared tragedy, such as the loss of their home or land. No matter the reason, the dangers posed by life on the road and the choice to continue down that road together mean that wanderborne are known for their unwavering loyalty.
Wanderborne are often inscrutable, magnanimous, mirthful, reliable, savvy, and unorthodox.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Nomadic Pack", - "uuid": "Compendium.world.community-features.Item.NeuBdFDpV0HTzOIM" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940414913, - "modifiedTime": 1747991238462, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!DHB5uSzbBeJCJuvC" + "name": "Wanderborne", + "type": "community", + "_id": "DHB5uSzbBeJCJuvC", + "img": "systems/daggerheart/assets/icons/communities/wanderborne.png", + "system": { + "description": "Being part of a wanderborne community means you’ve lived as a nomad, forgoing a permanent home and experiencing a wide variety of cultures. Unlike many communities that are defined by their locale, wanderborne are defined by their traveling lifestyle. Because of their frequent migration, wanderborne put less value on the accumulation of material possessions in favor of acquiring information, skills, and connections. While some wanderborne are allied by a common ethos, such as a religion or a set of political or economic values, others come together after shared tragedy, such as the loss of their home or land. No matter the reason, the dangers posed by life on the road and the choice to continue down that road together mean that wanderborne are known for their unwavering loyalty.
Wanderborne are often inscrutable, magnanimous, mirthful, reliable, savvy, and unorthodox.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Nomadic Pack", + "uuid": "Compendium.world.community-features.Item.NeuBdFDpV0HTzOIM" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940414913, + "modifiedTime": 1747991238462, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!DHB5uSzbBeJCJuvC" } diff --git a/src/packs/communities/community_Wildborne_jUzXIVyBx0mlIFWa.json b/src/packs/communities/community_Wildborne_jUzXIVyBx0mlIFWa.json index a481b5a4..5ca65c1c 100644 --- a/src/packs/communities/community_Wildborne_jUzXIVyBx0mlIFWa.json +++ b/src/packs/communities/community_Wildborne_jUzXIVyBx0mlIFWa.json @@ -1,36 +1,36 @@ { - "name": "Wildborne", - "type": "community", - "_id": "jUzXIVyBx0mlIFWa", - "img": "systems/daggerheart/assets/icons/communities/wildborne.png", - "system": { - "description": "Being part of a wildborne community means you lived deep within the forest. Wildborne communities are defined by their dedication to the conservation of their homelands, and many have strong religious or cultural ties to the fauna they live among.
This results in unique architectural and technological advancements that favor sustainability over short-term, high-yield results.
It is a hallmark of wildborne societies to integrate their villages and cities with the natural environment and avoid disturbing the lives of the plants and animals. While some construct their lodgings high in the branches of trees, others establish their homes on the ground beneath the forest canopy. It’s not uncommon for wildborne to remain reclusive and hidden within their woodland homes.
Wildborne are often hardy, loyal, nurturing, reclusive, sagacious, and vibrant.
", - "abilities": [ - { - "img": "icons/svg/item-bag.svg", - "name": "Lightfoot", - "uuid": "Compendium.world.community-features.Item.4VaugxNAouI7SKKz" - } - ] - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747940432585, - "modifiedTime": 1747991300734, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!jUzXIVyBx0mlIFWa" + "name": "Wildborne", + "type": "community", + "_id": "jUzXIVyBx0mlIFWa", + "img": "systems/daggerheart/assets/icons/communities/wildborne.png", + "system": { + "description": "Being part of a wildborne community means you lived deep within the forest. Wildborne communities are defined by their dedication to the conservation of their homelands, and many have strong religious or cultural ties to the fauna they live among.
This results in unique architectural and technological advancements that favor sustainability over short-term, high-yield results.
It is a hallmark of wildborne societies to integrate their villages and cities with the natural environment and avoid disturbing the lives of the plants and animals. While some construct their lodgings high in the branches of trees, others establish their homes on the ground beneath the forest canopy. It’s not uncommon for wildborne to remain reclusive and hidden within their woodland homes.
Wildborne are often hardy, loyal, nurturing, reclusive, sagacious, and vibrant.
", + "abilities": [ + { + "img": "icons/svg/item-bag.svg", + "name": "Lightfoot", + "uuid": "Compendium.world.community-features.Item.4VaugxNAouI7SKKz" + } + ] + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747940432585, + "modifiedTime": 1747991300734, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" + }, + "_key": "!items!jUzXIVyBx0mlIFWa" } diff --git a/src/packs/community-features/feature_Dedicated_ZiBpJxtDSsh6wY3h.json b/src/packs/community-features/feature_Dedicated_ZiBpJxtDSsh6wY3h.json index 0655c73e..54c15b84 100644 --- a/src/packs/community-features/feature_Dedicated_ZiBpJxtDSsh6wY3h.json +++ b/src/packs/community-features/feature_Dedicated_ZiBpJxtDSsh6wY3h.json @@ -1,46 +1,46 @@ { - "name": "Dedicated", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "action", - "featureType": { - "type": "input", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {}, - "value": "d20" - } + "name": "Dedicated", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "action", + "featureType": { + "type": "input", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {}, + "value": "d20" + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Record three sayings or values your upbringing instilled in you. Once per rest, when you describe how you’re embodying one of these principles through your current action, you can roll a d20 as your Hope Die.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Record three sayings or values your upbringing instilled in you. Once per rest, when you describe how you’re embodying one of these principles through your current action, you can roll a d20 as your Hope Die.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008847578, - "modifiedTime": 1748008847578, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "ZiBpJxtDSsh6wY3h", - "sort": 0, - "_key": "!items!ZiBpJxtDSsh6wY3h" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008847578, + "modifiedTime": 1748008847578, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "ZiBpJxtDSsh6wY3h", + "sort": 0, + "_key": "!items!ZiBpJxtDSsh6wY3h" } diff --git a/src/packs/community-features/feature_Know_the_Tide_0mdoYz7uZNWCcK5Z.json b/src/packs/community-features/feature_Know_the_Tide_0mdoYz7uZNWCcK5Z.json index a23aaa00..846c955c 100644 --- a/src/packs/community-features/feature_Know_the_Tide_0mdoYz7uZNWCcK5Z.json +++ b/src/packs/community-features/feature_Know_the_Tide_0mdoYz7uZNWCcK5Z.json @@ -1,45 +1,45 @@ { - "name": "Know the Tide", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Know the Tide", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You can sense the ebb and flow of life. When you roll with Fear, place a token on your community card. You can hold a number of tokens equal to your level. Before you make an action roll, you can spend any number of these tokens to gain a +1 bonus to the roll for each token spent. At the end of each session, clear all unspent tokens.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You can sense the ebb and flow of life. When you roll with Fear, place a token on your community card. You can hold a number of tokens equal to your level. Before you make an action roll, you can spend any number of these tokens to gain a +1 bonus to the roll for each token spent. At the end of each session, clear all unspent tokens.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008848585, - "modifiedTime": 1748008848585, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "0mdoYz7uZNWCcK5Z", - "sort": 0, - "_key": "!items!0mdoYz7uZNWCcK5Z" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008848585, + "modifiedTime": 1748008848585, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "0mdoYz7uZNWCcK5Z", + "sort": 0, + "_key": "!items!0mdoYz7uZNWCcK5Z" } diff --git a/src/packs/community-features/feature_Lightfoot_LY9c4DCgMcB1uEiv.json b/src/packs/community-features/feature_Lightfoot_LY9c4DCgMcB1uEiv.json index faffa9fe..1b1d5684 100644 --- a/src/packs/community-features/feature_Lightfoot_LY9c4DCgMcB1uEiv.json +++ b/src/packs/community-features/feature_Lightfoot_LY9c4DCgMcB1uEiv.json @@ -1,45 +1,45 @@ { - "name": "Lightfoot", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Lightfoot", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Your movement is naturally silent. You have advantage on rolls to move without being heard.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Your movement is naturally silent. You have advantage on rolls to move without being heard.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008849798, - "modifiedTime": 1748008849798, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "LY9c4DCgMcB1uEiv", - "sort": 0, - "_key": "!items!LY9c4DCgMcB1uEiv" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008849798, + "modifiedTime": 1748008849798, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "LY9c4DCgMcB1uEiv", + "sort": 0, + "_key": "!items!LY9c4DCgMcB1uEiv" } diff --git a/src/packs/community-features/feature_Low_Light_Living_hX85YvTQcMzc25hW.json b/src/packs/community-features/feature_Low_Light_Living_hX85YvTQcMzc25hW.json index 6d5bb2d7..1dec67fc 100644 --- a/src/packs/community-features/feature_Low_Light_Living_hX85YvTQcMzc25hW.json +++ b/src/packs/community-features/feature_Low_Light_Living_hX85YvTQcMzc25hW.json @@ -1,45 +1,45 @@ { - "name": "Low-Light Living", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Low-Light Living", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "When you’re in an area with low light or heavy shadow, you have advantage on rolls to hide, investigate, or perceive details within that area.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "When you’re in an area with low light or heavy shadow, you have advantage on rolls to hide, investigate, or perceive details within that area.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008850934, - "modifiedTime": 1748008850934, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "hX85YvTQcMzc25hW", - "sort": 0, - "_key": "!items!hX85YvTQcMzc25hW" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008850934, + "modifiedTime": 1748008850934, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "hX85YvTQcMzc25hW", + "sort": 0, + "_key": "!items!hX85YvTQcMzc25hW" } diff --git a/src/packs/community-features/feature_Nomadic_Pack_o3Q88Rws9Eb5ae5D.json b/src/packs/community-features/feature_Nomadic_Pack_o3Q88Rws9Eb5ae5D.json index 2af9f177..bcf78f86 100644 --- a/src/packs/community-features/feature_Nomadic_Pack_o3Q88Rws9Eb5ae5D.json +++ b/src/packs/community-features/feature_Nomadic_Pack_o3Q88Rws9Eb5ae5D.json @@ -1,45 +1,45 @@ { - "name": "Nomadic Pack", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Nomadic Pack", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "Add a Nomadic Pack to your inventory. Once per session, you can spend a Hope to reach into this pack and pull out a mundane item that’s useful to your situation. Work with the GM to figure out what item you take out.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "Add a Nomadic Pack to your inventory. Once per session, you can spend a Hope to reach into this pack and pull out a mundane item that’s useful to your situation. Work with the GM to figure out what item you take out.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008852219, - "modifiedTime": 1748008852219, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "o3Q88Rws9Eb5ae5D", - "sort": 0, - "_key": "!items!o3Q88Rws9Eb5ae5D" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008852219, + "modifiedTime": 1748008852219, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "o3Q88Rws9Eb5ae5D", + "sort": 0, + "_key": "!items!o3Q88Rws9Eb5ae5D" } diff --git a/src/packs/community-features/feature_Privilege_AgJiUvad5tgeam57.json b/src/packs/community-features/feature_Privilege_AgJiUvad5tgeam57.json index 200ccb61..504dd1fb 100644 --- a/src/packs/community-features/feature_Privilege_AgJiUvad5tgeam57.json +++ b/src/packs/community-features/feature_Privilege_AgJiUvad5tgeam57.json @@ -1,45 +1,45 @@ { - "name": "Privilege", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Privilege", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You have advantage on rolls to consort with nobles, negotiate prices, or leverage your reputation to get what you want.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You have advantage on rolls to consort with nobles, negotiate prices, or leverage your reputation to get what you want.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008853598, - "modifiedTime": 1748008853598, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "_id": "AgJiUvad5tgeam57", - "sort": 0, - "_key": "!items!AgJiUvad5tgeam57" + "effects": [], + "folder": null, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008853598, + "modifiedTime": 1748008853598, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "_id": "AgJiUvad5tgeam57", + "sort": 0, + "_key": "!items!AgJiUvad5tgeam57" } diff --git a/src/packs/community-features/feature_Scoundrel_5BUCiSPswsiB0RDW.json b/src/packs/community-features/feature_Scoundrel_5BUCiSPswsiB0RDW.json index 13eb1e52..ee22fb4d 100644 --- a/src/packs/community-features/feature_Scoundrel_5BUCiSPswsiB0RDW.json +++ b/src/packs/community-features/feature_Scoundrel_5BUCiSPswsiB0RDW.json @@ -1,45 +1,45 @@ { - "name": "Scoundrel", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Scoundrel", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You have advantage on rolls to negotiate with criminals, detect lies, or find a safe place to hide.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You have advantage on rolls to negotiate with criminals, detect lies, or find a safe place to hide.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008855001, - "modifiedTime": 1748008855001, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "5BUCiSPswsiB0RDW", - "sort": 0, - "_key": "!items!5BUCiSPswsiB0RDW" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008855001, + "modifiedTime": 1748008855001, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "5BUCiSPswsiB0RDW", + "sort": 0, + "_key": "!items!5BUCiSPswsiB0RDW" } diff --git a/src/packs/community-features/feature_Steady_Oky51ziMZp6bbuUQ.json b/src/packs/community-features/feature_Steady_Oky51ziMZp6bbuUQ.json index 70f4c783..7074b134 100644 --- a/src/packs/community-features/feature_Steady_Oky51ziMZp6bbuUQ.json +++ b/src/packs/community-features/feature_Steady_Oky51ziMZp6bbuUQ.json @@ -1,45 +1,45 @@ { - "name": "Steady", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } + "name": "Steady", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You have advantage on rolls to traverse dangerous cliffs and ledges, navigate harsh environments, and use your survival knowledge.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You have advantage on rolls to traverse dangerous cliffs and ledges, navigate harsh environments, and use your survival knowledge.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008856287, - "modifiedTime": 1748008856287, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "Oky51ziMZp6bbuUQ", - "sort": 0, - "_key": "!items!Oky51ziMZp6bbuUQ" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008856287, + "modifiedTime": 1748008856287, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "Oky51ziMZp6bbuUQ", + "sort": 0, + "_key": "!items!Oky51ziMZp6bbuUQ" } diff --git a/src/packs/community-features/feature_Well_Read_n2RA9iZNiVbGlxco.json b/src/packs/community-features/feature_Well_Read_n2RA9iZNiVbGlxco.json index db3e79e8..bfa879b4 100644 --- a/src/packs/community-features/feature_Well_Read_n2RA9iZNiVbGlxco.json +++ b/src/packs/community-features/feature_Well_Read_n2RA9iZNiVbGlxco.json @@ -1,46 +1,46 @@ { - "name": "Well-Read", - "type": "feature", - "img": "icons/svg/item-bag.svg", - "system": { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {}, - "value": "d4" - } + "name": "Well-Read", + "type": "feature", + "img": "icons/svg/item-bag.svg", + "system": { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {}, + "value": "d4" + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You have advantage on rolls that involve the history, culture, or politics of a prominent person or place.
", + "effects": {}, + "actions": [], + "type": "community" }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You have advantage on rolls that involve the history, culture, or politics of a prominent person or place.
", - "effects": {}, - "actions": [], - "type": "community" - }, - "effects": [], - "folder": null, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3, - "JKaKJsbixtjbUa07": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1748008857389, - "modifiedTime": 1748008857389, - "lastModifiedBy": "JKaKJsbixtjbUa07" - }, - "_id": "n2RA9iZNiVbGlxco", - "sort": 0, - "_key": "!items!n2RA9iZNiVbGlxco" + "effects": [], + "folder": null, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3, + "JKaKJsbixtjbUa07": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1748008857389, + "modifiedTime": 1748008857389, + "lastModifiedBy": "JKaKJsbixtjbUa07" + }, + "_id": "n2RA9iZNiVbGlxco", + "sort": 0, + "_key": "!items!n2RA9iZNiVbGlxco" } diff --git a/src/packs/subclasses/subclass_Troubadour_T1iBO8i0xRF5c8Q2.json b/src/packs/subclasses/subclass_Troubadour_T1iBO8i0xRF5c8Q2.json index e32a615f..df5ba598 100644 --- a/src/packs/subclasses/subclass_Troubadour_T1iBO8i0xRF5c8Q2.json +++ b/src/packs/subclasses/subclass_Troubadour_T1iBO8i0xRF5c8Q2.json @@ -1,66 +1,66 @@ { - "name": "Troubadour", - "type": "subclass", - "_id": "T1iBO8i0xRF5c8Q2", - "img": "icons/svg/item-bag.svg", - "system": { - "description": "Play the Troubadour if you want to play music to bolster your allies.
", - "spellcastingTrait": "presence", - "foundationFeature": { - "description": "Gifted Performer: Describe how you perform for others. You can play each song once per long rest:
• Relaxing Song: You and all allies within Close range clear a Hit Point.
• Epic Song: Make a target within Close range temporarily Vulnerable.
• Heartbreaking Song: You and all allies within Close range gain a Hope.
", - "abilities": [ - { - "actionType": "passive", - "featureType": { - "type": "normal", - "data": { - "property": "spellcastingTrait", - "max": 1, - "numbers": {} - } - }, - "refreshData": null, - "multiclass": null, - "disabled": false, - "description": "You are among the greatest of your craft and your skill is boundless. You can perform each of your “Gifted Performer” feature’s songs twice instead of once per long rest.
", - "effects": {}, - "actions": [], - "type": "subclass" - } - ] + "name": "Troubadour", + "type": "subclass", + "_id": "T1iBO8i0xRF5c8Q2", + "img": "icons/svg/item-bag.svg", + "system": { + "description": "Play the Troubadour if you want to play music to bolster your allies.
", + "spellcastingTrait": "presence", + "foundationFeature": { + "description": "Gifted Performer: Describe how you perform for others. You can play each song once per long rest:
• Relaxing Song: You and all allies within Close range clear a Hit Point.
• Epic Song: Make a target within Close range temporarily Vulnerable.
• Heartbreaking Song: You and all allies within Close range gain a Hope.
", + "abilities": [ + { + "actionType": "passive", + "featureType": { + "type": "normal", + "data": { + "property": "spellcastingTrait", + "max": 1, + "numbers": {} + } + }, + "refreshData": null, + "multiclass": null, + "disabled": false, + "description": "You are among the greatest of your craft and your skill is boundless. You can perform each of your “Gifted Performer” feature’s songs twice instead of once per long rest.
", + "effects": {}, + "actions": [], + "type": "subclass" + } + ] + }, + "specializationFeature": { + "unlocked": false, + "tier": null, + "description": "", + "abilities": [] + }, + "masteryFeature": { + "unlocked": false, + "tier": null, + "description": "", + "abilities": [] + }, + "multiclass": null }, - "specializationFeature": { - "unlocked": false, - "tier": null, - "description": "", - "abilities": [] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "masteryFeature": { - "unlocked": false, - "tier": null, - "description": "", - "abilities": [] + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747991594334, + "modifiedTime": 1747991866434, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" }, - "multiclass": null - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747991594334, - "modifiedTime": 1747991866434, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!T1iBO8i0xRF5c8Q2" + "_key": "!items!T1iBO8i0xRF5c8Q2" } diff --git a/src/packs/subclasses/subclass_Wordsmith_FXT65YDVWFy85EI0.json b/src/packs/subclasses/subclass_Wordsmith_FXT65YDVWFy85EI0.json index e0b7f70b..e9317c05 100644 --- a/src/packs/subclasses/subclass_Wordsmith_FXT65YDVWFy85EI0.json +++ b/src/packs/subclasses/subclass_Wordsmith_FXT65YDVWFy85EI0.json @@ -1,47 +1,47 @@ { - "name": "Wordsmith", - "type": "subclass", - "_id": "FXT65YDVWFy85EI0", - "img": "icons/svg/item-bag.svg", - "system": { - "description": "Play the Wordsmith if you want to use clever wordplay and captivate crowds.
", - "spellcastingTrait": "presence", - "foundationFeature": { - "description": "", - "abilities": [] + "name": "Wordsmith", + "type": "subclass", + "_id": "FXT65YDVWFy85EI0", + "img": "icons/svg/item-bag.svg", + "system": { + "description": "Play the Wordsmith if you want to use clever wordplay and captivate crowds.
", + "spellcastingTrait": "presence", + "foundationFeature": { + "description": "", + "abilities": [] + }, + "specializationFeature": { + "unlocked": false, + "tier": null, + "description": "", + "abilities": [] + }, + "masteryFeature": { + "unlocked": false, + "tier": null, + "description": "", + "abilities": [] + }, + "multiclass": null }, - "specializationFeature": { - "unlocked": false, - "tier": null, - "description": "", - "abilities": [] + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "NqO2eQGMjrvUO6v9": 3 }, - "masteryFeature": { - "unlocked": false, - "tier": null, - "description": "", - "abilities": [] + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.344", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1747991988842, + "modifiedTime": 1747992014955, + "lastModifiedBy": "NqO2eQGMjrvUO6v9" }, - "multiclass": null - }, - "effects": [], - "folder": null, - "sort": 0, - "ownership": { - "default": 0, - "NqO2eQGMjrvUO6v9": 3 - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1747991988842, - "modifiedTime": 1747992014955, - "lastModifiedBy": "NqO2eQGMjrvUO6v9" - }, - "_key": "!items!FXT65YDVWFy85EI0" + "_key": "!items!FXT65YDVWFy85EI0" } diff --git a/styles/application.less b/styles/application.less index a0f61883..82da864b 100644 --- a/styles/application.less +++ b/styles/application.less @@ -296,6 +296,7 @@ div.daggerheart.views.multiclass { display: flex; align-items: center; margin-bottom: @fullMargin; + gap: 16px; .dice-container { display: flex; @@ -306,6 +307,7 @@ div.daggerheart.views.multiclass { position: relative; display: flex; align-items: center; + justify-content: center; i { font-size: 18px; @@ -319,12 +321,24 @@ div.daggerheart.views.multiclass { .dice-number { position: absolute; - top: calc(50% - 14px); - left: calc(50% - 7px); font-size: 24px; font-weight: bold; } } + + .advantage-container { + display: flex; + flex-direction: column; + gap: 2px; + flex: 1; + + .advantage-button { + &.active, + &:hover { + background: var(--button-hover-background-color); + } + } + } } } @@ -333,33 +347,19 @@ div.daggerheart.views.multiclass { align-items: flex-start; flex-wrap: wrap; gap: @halfMargin; - flex: 2; + flex: 1; height: 100%; - .roll-dialog-chip { - border: @thinBorder solid black; - border-radius: 6px; - flex-basis: calc(50% - 2px); - display: flex; - align-items: center; - justify-content: space-between; - cursor: pointer; - padding: @fullPadding; - background: grey; - overflow: hidden; + .experience-chip { + opacity: 0.6; + border-radius: 16px; + width: calc(50% - 4px); + white-space: nowrap; - &.hover { - filter: drop-shadow(0 0 3px @mainShadow); - } - - span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - } - - &.selected i { - color: green; + &.active, + &:hover { + opacity: 1; + background: var(--button-hover-background-color); } } } diff --git a/styles/chat.less b/styles/chat.less index fe1483e3..1494966c 100644 --- a/styles/chat.less +++ b/styles/chat.less @@ -29,11 +29,14 @@ } &.roll { + .dice-flavor { + text-align: center; + font-weight: bold; + } .dice-tooltip { - .dice-rolls { + .dice-rolls.duality { display: flex; align-items: center; - justify-content: space-around; .dice-hope-container { display: flex; @@ -57,12 +60,18 @@ -webkit-text-stroke-color: @hope; -webkit-text-stroke-width: 1.5px; font-weight: 400; + &:not(.discarded) { + filter: none; + } } &.fear { color: white; -webkit-text-stroke-color: @fear; -webkit-text-stroke-width: 1.5px; font-weight: 400; + &:not(.discarded) { + filter: none; + } } &.disadvantage { color: white; @@ -93,6 +102,11 @@ font-size: 16px; } } + + .attack-roll-advantage-container { + text-align: end; + font-weight: bold; + } } .dice-total { @@ -159,8 +173,20 @@ } } - .roll-damage-button { - margin-top: 5px; + .dice-actions { + display: flex; + gap: 4px; + + button { + flex: 1; + } + } + + .dice-result { + .roll-damage-button, + .damage-button { + margin-top: 5px; + } } } diff --git a/styles/daggerheart.css b/styles/daggerheart.css index 027e8acb..83bc6ee9 100644 --- a/styles/daggerheart.css +++ b/styles/daggerheart.css @@ -8,2606 +8,3149 @@ /* Inputs */ @import '../node_modules/@yaireo/tagify/dist/tagify.css'; .daggerheart.sheet.class .editor { - height: 500px; + height: 500px; } .daggerheart.sheet.pc { - width: 810px !important; + width: 810px !important; } .daggerheart.sheet.pc div[data-application-part] { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header { - display: flex; - gap: 4px; - height: 120px; - margin-bottom: 4px; + display: flex; + gap: 4px; + height: 120px; + margin-bottom: 4px; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .portrait { - border: 0; - border-right: 1px solid var(--color-underline-header); + border: 0; + border-right: 1px solid var(--color-underline-header); } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info { - flex: 1; - background: #778899; + flex: 1; + background: #778899; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .portrait { - max-width: 120px; + max-width: 120px; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .class-title { - text-align: center; - display: flex; - justify-content: space-between; + text-align: center; + display: flex; + justify-content: space-between; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .class-title span:hover { - filter: drop-shadow(0px 0px 3px red); - cursor: pointer; + filter: drop-shadow(0px 0px 3px red); + cursor: pointer; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .class-title .domain-container { - margin-left: 4px; + margin-left: 4px; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .class-add-container { - display: flex; - align-items: center; - justify-content: center; - width: 100%; - flex: 0; + display: flex; + align-items: center; + justify-content: center; + width: 100%; + flex: 0; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .class-add-container button { - height: 22px; - width: 22px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - margin-left: 4px; - background: #778899; + height: 22px; + width: 22px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + margin-left: 4px; + background: #778899; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .domain-title { - text-transform: uppercase; - display: flex; - flex-direction: column; - align-items: center; - line-height: 23px; - font-weight: bold; - font-style: italic; + text-transform: uppercase; + display: flex; + flex-direction: column; + align-items: center; + line-height: 23px; + font-weight: bold; + font-style: italic; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .class-info .domain-image { - height: 30px; - flex: 0; + height: 30px; + flex: 0; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info { - flex: 2; - display: flex; - flex-direction: column; - justify-content: space-between; + flex: 2; + display: flex; + flex-direction: column; + justify-content: space-between; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .general-input { - position: relative; + position: relative; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .general-input .general-title { - position: absolute; - left: 4px; - text-align: center; - font-weight: bold; - text-transform: uppercase; + position: absolute; + left: 4px; + text-align: center; + font-weight: bold; + text-transform: uppercase; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .pc-tabs { - flex: 1; - margin: 0; + flex: 1; + margin: 0; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .rest-container { - flex-wrap: nowrap; - display: flex; - height: var(--form-field-height); - flex: 0; + flex-wrap: nowrap; + display: flex; + height: var(--form-field-height); + flex: 0; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .rest-container button { - display: flex; - align-items: center; - justify-content: center; - border-radius: 50%; - width: var(--form-field-height); + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + width: var(--form-field-height); } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .rest-container button i { - font-size: 13px; + font-size: 13px; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container { - position: relative; - bottom: 4px; - flex: none; - width: 40px; - border: none; - outline: none; - margin-left: 8px; + position: relative; + bottom: 4px; + flex: none; + width: 40px; + border: none; + outline: none; + margin-left: 8px; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container.levelup { - filter: drop-shadow(0px 0px 3px gold); + filter: drop-shadow(0px 0px 3px gold); } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container img { - height: 40px; - width: 40px; - border: none; + height: 40px; + width: 40px; + border: none; } -.daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-value-container { - width: 48px; - position: absolute; - top: calc(50% - 17px); - left: calc(50% - 23px); +.daggerheart.sheet.pc + div[data-application-part] + .pc-sheet-header + .general-info + .level-container + .level-value-container { + width: 48px; + position: absolute; + top: calc(50% - 17px); + left: calc(50% - 23px); } -.daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-value-container .level-value { - font-weight: bold; - font-size: 20px; - text-align: center; +.daggerheart.sheet.pc + div[data-application-part] + .pc-sheet-header + .general-info + .level-container + .level-value-container + .level-value { + font-weight: bold; + font-size: 20px; + text-align: center; } -.daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-value-container .level-value:not(:hover), -.daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-value-container .level-value:not(:focus) { - border: none; +.daggerheart.sheet.pc + div[data-application-part] + .pc-sheet-header + .general-info + .level-container + .level-value-container + .level-value:not(:hover), +.daggerheart.sheet.pc + div[data-application-part] + .pc-sheet-header + .general-info + .level-container + .level-value-container + .level-value:not(:focus) { + border: none; } -.daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-value-container .levelup-marker { - position: absolute; - top: 0; - right: calc(50% - 12px); - color: gold; - filter: drop-shadow(0px 0px 3px black); +.daggerheart.sheet.pc + div[data-application-part] + .pc-sheet-header + .general-info + .level-container + .level-value-container + .levelup-marker { + position: absolute; + top: 0; + right: calc(50% - 12px); + color: gold; + filter: drop-shadow(0px 0px 3px black); } -.daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-value-container .levelup-marker.double-digit { - right: calc(50% - 20px); +.daggerheart.sheet.pc + div[data-application-part] + .pc-sheet-header + .general-info + .level-container + .level-value-container + .levelup-marker.double-digit { + right: calc(50% - 20px); } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-title { - position: absolute; - bottom: 2px; - width: 42px; - background-color: black; - color: white; - left: calc(50% - 21px); - text-align: center; - border-radius: 5px; - font-size: 12px; + position: absolute; + bottom: 2px; + width: 42px; + background-color: black; + color: white; + left: calc(50% - 21px); + text-align: center; + border-radius: 5px; + font-size: 12px; } .daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-title.levelup { - color: gold; - filter: drop-shadow(0px 0px 3px orange); - font-weight: bold; - cursor: pointer; + color: gold; + filter: drop-shadow(0px 0px 3px orange); + font-weight: bold; + cursor: pointer; } -.daggerheart.sheet.pc div[data-application-part] .pc-sheet-header .general-info .level-container .level-title.levelup:hover { - background-color: aliceblue; +.daggerheart.sheet.pc + div[data-application-part] + .pc-sheet-header + .general-info + .level-container + .level-title.levelup:hover { + background-color: aliceblue; } .daggerheart.sheet.pc div[data-application-part] .sheet-body { - display: flex; - flex-direction: column; - flex: 1; + display: flex; + flex-direction: column; + flex: 1; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .tab-container { - height: 100%; - display: flex; - flex-direction: column; + height: 100%; + display: flex; + flex-direction: column; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .tab-container .tab-inner-container { - flex: 1; + flex: 1; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .tab-container .tab-inner-container .body-section { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .tab-container .tab-inner-container .body-section fieldset { - flex: 0; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .tab-container + .tab-inner-container + .body-section + fieldset { + flex: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .system-info { - font-size: 12px; - font-style: italic; - font-weight: bold; - margin-top: -4px; - flex: 0; + font-size: 12px; + font-style: italic; + font-weight: bold; + margin-top: -4px; + flex: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .feature-sheet-body { - gap: 4px; + gap: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container { - position: relative; - display: flex; - flex-wrap: wrap; - border-radius: 6px; - padding-left: 0; + position: relative; + display: flex; + flex-wrap: wrap; + border-radius: 6px; + padding-left: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container legend { - margin-left: auto; - margin-right: auto; - font-weight: bold; - text-transform: uppercase; - padding: 0 8px; - position: relative; + margin-left: auto; + margin-right: auto; + font-weight: bold; + text-transform: uppercase; + padding: 0 8px; + position: relative; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attributes-menu { - position: absolute; - bottom: calc(50% - 12px); - font-size: 24px; - left: -8px; + position: absolute; + bottom: calc(50% - 12px); + font-size: 24px; + left: -8px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute { - position: relative; - padding: 0 0 4px; - display: flex; - flex-direction: column; - align-items: center; - flex-basis: 33.33%; + position: relative; + padding: 0 0 4px; + display: flex; + flex-direction: column; + align-items: center; + flex-basis: 33.33%; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-banner { - position: relative; - top: 8px; - z-index: 2; - background: black; - color: white; - text-transform: uppercase; - padding: 2px; - border-radius: 6px; - display: flex; - align-items: center; - overflow: hidden; - min-width: 96px; + position: relative; + top: 8px; + z-index: 2; + background: black; + color: white; + text-transform: uppercase; + padding: 2px; + border-radius: 6px; + display: flex; + align-items: center; + overflow: hidden; + min-width: 96px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-banner .attribute-roll { - position: absolute; - width: 16px; - transition: transform 0.2s; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-banner + .attribute-roll { + position: absolute; + width: 16px; + transition: transform 0.2s; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-banner .attribute-roll:hover { - transform: rotate(30deg); - filter: drop-shadow(0px 0px 3px red); - cursor: pointer; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-banner + .attribute-roll:hover { + transform: rotate(30deg); + filter: drop-shadow(0px 0px 3px red); + cursor: pointer; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-banner .attribute-text { - width: 100%; - margin-left: 16px; - font-size: 12px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-banner + .attribute-text { + width: 100%; + margin-left: 16px; + font-size: 12px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-mark { - height: 23px; - width: 23px; - position: absolute; - right: -5px; - top: 6px; - border: 2px solid black; - border-radius: 50%; - background: white; - z-index: 2; - display: flex; - align-items: center; - justify-content: center; + height: 23px; + width: 23px; + position: absolute; + right: -5px; + top: 6px; + border: 2px solid black; + border-radius: 50%; + background: white; + z-index: 2; + display: flex; + align-items: center; + justify-content: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-mark.selectable { - border-color: gold; - filter: drop-shadow(0 0 3px black); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-mark.selectable { + border-color: gold; + filter: drop-shadow(0 0 3px black); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-mark.selectable:hover i { - opacity: 0.3; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-mark.selectable:hover + i { + opacity: 0.3; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-mark i.selected, -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-mark:hover i.selected { - color: green; - opacity: 1; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-mark:hover + i.selected { + color: green; + opacity: 1; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-mark i { - color: black; - font-size: 17px; - opacity: 0; + color: black; + font-size: 17px; + opacity: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-image { - position: relative; - width: fit-content; - display: flex; + position: relative; + width: fit-content; + display: flex; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-image img { - height: 80px; - width: 80px; - border: none; + height: 80px; + width: 80px; + border: none; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-image .attribute-value { - width: 55px; - padding-right: 10px; - position: absolute; - top: calc(50% - 18px); - left: calc(50% - 24px); - font-weight: bold; - font-size: 30px; - line-height: 30px; - text-align: center; - border: none; - appearance: none; - -moz-appearance: none; - -webkit-appearance: none; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-image + .attribute-value { + width: 55px; + padding-right: 10px; + position: absolute; + top: calc(50% - 18px); + left: calc(50% - 24px); + font-weight: bold; + font-size: 30px; + line-height: 30px; + text-align: center; + border: none; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-image .attribute-value.negative { - left: calc(50% - 29px); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-image + .attribute-value.negative { + left: calc(50% - 29px); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-image .attribute-value.unselected { - filter: drop-shadow(0 0 3px gold); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-image + .attribute-value.unselected { + filter: drop-shadow(0 0 3px gold); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-image .attribute-text { - width: 47px; - position: absolute; - top: calc(50% - 22px); - left: calc(50% - 24px); - font-weight: bold; - font-size: 30px; - text-align: center; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-image + .attribute-text { + width: 47px; + position: absolute; + top: calc(50% - 22px); + left: calc(50% - 24px); + font-weight: bold; + font-size: 30px; + text-align: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-image .attribute-text.negative { - left: calc(50% - 29px); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-container + .attribute + .attribute-image + .attribute-text.negative { + left: calc(50% - 29px); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-container .attribute .attribute-verb { - font-variant: petite-caps; + font-variant: petite-caps; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row { - height: 100%; - width: 100%; - display: flex; - align-items: baseline; - justify-content: space-evenly; + height: 100%; + width: 100%; + display: flex; + align-items: baseline; + justify-content: space-evenly; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .defense-section { - display: flex; - align-items: center; - margin-right: 8px; + display: flex; + align-items: center; + margin-right: 8px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .defense-section .defense-container { - position: relative; - padding: 4px; - max-width: 100px; + position: relative; + padding: 4px; + max-width: 100px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .defense-section .defense-container img { - border: none; - max-width: 80px; + border: none; + max-width: 80px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .defense-section .defense-container .defense-value { - width: 47px; - position: absolute; - top: calc(50% - 22px); - left: calc(50% - 24px); - font-weight: bold; - font-size: 30px; - text-align: center; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .defense-row + .defense-section + .defense-container + .defense-value { + width: 47px; + position: absolute; + top: calc(50% - 22px); + left: calc(50% - 24px); + font-weight: bold; + font-size: 30px; + text-align: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .defense-section .defense-container .defense-value:not(:hover), -.daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .defense-section .defense-container .defense-value:not(:focus) { - border: none; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .defense-row + .defense-section + .defense-container + .defense-value:not(:hover), +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .defense-row + .defense-section + .defense-container + .defense-value:not(:focus) { + border: none; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .defense-section .defense-container .defense-banner { - position: absolute; - bottom: 20px; - left: calc(50% - 42px); - z-index: 2; - background-color: black; - color: white; - width: 84px; - text-align: center; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .defense-row + .defense-section + .defense-container + .defense-banner { + position: absolute; + bottom: 20px; + left: calc(50% - 42px); + z-index: 2; + background-color: black; + color: white; + width: 84px; + text-align: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .armor-marks { - max-width: 67px; - padding: 4px; - align-self: end; - margin-left: 4px; + max-width: 67px; + padding: 4px; + align-self: end; + margin-left: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .armor-marks .mark { - width: 16px; - height: 16px; - margin: 0px; + width: 16px; + height: 16px; + margin: 0px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .defense-row .armor-marks .disabled-mark { - opacity: 0.6; + opacity: 0.6; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .left-main-container { - position: relative; - display: flex; - flex-direction: column; - align-items: flex-start; - border-radius: 6px; + position: relative; + display: flex; + flex-direction: column; + align-items: flex-start; + border-radius: 6px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .left-main-container .legend { - margin-left: auto; - margin-right: auto; - font-weight: bold; - text-transform: uppercase; - padding: 0 4px; - position: relative; + margin-left: auto; + margin-right: auto; + font-weight: bold; + text-transform: uppercase; + padding: 0 4px; + position: relative; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapon-section { - padding-top: 8px; + padding-top: 8px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .threshold-container { - position: relative; - display: flex; - align-items: center; - align-self: center; + position: relative; + display: flex; + align-items: center; + align-self: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .threshold-container .threshold-box { - position: relative; - width: 30px; - height: 30px; - border: 2px solid black; - display: flex; - align-items: center; - justify-content: center; - font-size: 20px; - font-weight: bold; + position: relative; + width: 30px; + height: 30px; + border: 2px solid black; + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .threshold-container .threshold-spacer { - position: relative; - z-index: 2; - width: 70px; - height: 18px; - background-color: darkgray; - color: white; - display: flex; - justify-content: center; - align-items: center; + position: relative; + z-index: 2; + width: 70px; + height: 18px; + background-color: darkgray; + color: white; + display: flex; + justify-content: center; + align-items: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .resource-label { - text-transform: uppercase; - font-weight: bold; + text-transform: uppercase; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .death-save { - position: absolute; - right: -22px; + position: absolute; + right: -22px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .death-save:hover:not(.disabled) { - filter: drop-shadow(0 0 3px red); - cursor: pointer; + filter: drop-shadow(0 0 3px red); + cursor: pointer; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .death-save.disabled { - opacity: 0.4; + opacity: 0.4; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .resource-box { - width: 20px; - height: 12px; + width: 20px; + height: 12px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .resource-box.stress:nth-child(even) { - position: relative; - right: 1px; + position: relative; + right: 1px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .resource-box .disabled { - opacity: 0.6; + opacity: 0.6; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .hope-text { - font-size: 11.7px; - margin-right: 6px; + font-size: 11.7px; + margin-right: 6px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .hope-container { - background: darkgray; - border-radius: 6px; - display: flex; - padding: 2px 0px; + background: darkgray; + border-radius: 6px; + display: flex; + padding: 2px 0px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .hope-container .vertical-separator { - border-left: 2px solid white; - height: auto; - margin: 4px 0; - flex: 0; + border-left: 2px solid white; + height: auto; + margin: 4px 0; + flex: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .hope-container .hope-inner-container { - position: relative; + position: relative; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .hope-container .hope-inner-container .hope-value { - width: 16px; - height: 16px; + width: 16px; + height: 16px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .hope-container .hope-inner-container .hope-scar { - position: absolute; - top: calc(50% - 6px); - left: calc(50% - 7px); - opacity: 0.4; - font-size: 12px; - -webkit-transform: scaleX(-1); - transform: scaleX(-1); + position: absolute; + top: calc(50% - 6px); + left: calc(50% - 7px); + opacity: 0.4; + font-size: 12px; + -webkit-transform: scaleX(-1); + transform: scaleX(-1); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .experience-row { - width: 100%; - display: flex; - align-items: flex-end; + width: 100%; + display: flex; + align-items: flex-end; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .experience-row .experience-selector { - font-size: 18px; - cursor: pointer; - margin-right: 4px; - opacity: 0.5; + font-size: 18px; + cursor: pointer; + margin-right: 4px; + opacity: 0.5; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .experience-row .experience-selector:hover:not(.selected) { - filter: drop-shadow(0 0 3px gold); + filter: drop-shadow(0 0 3px gold); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .experience-row .experience-selector.selected { - filter: drop-shadow(0 0 3px gold); - opacity: 1; + filter: drop-shadow(0 0 3px gold); + opacity: 1; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .experience-row .experience-value { - margin-left: 8px; - width: 30px; - border-bottom: 2px solid black; - border-radius: 4px; - text-align: center; - font-weight: bold; + margin-left: 8px; + width: 30px; + border-bottom: 2px solid black; + border-radius: 4px; + text-align: center; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .experience-row .experience-value.empty { - border: 0; + border: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .experience-row .disabled-experience { - border: 1px solid #7a7971; - background: rgba(0, 0, 0, 0.2); + border: 1px solid #7a7971; + background: rgba(0, 0, 0, 0.2); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section { - width: calc(100% - 8px); - display: flex; - justify-content: space-between; + width: calc(100% - 8px); + display: flex; + justify-content: space-between; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset { - padding-right: 0; - padding-left: 0; - padding-bottom: 4px; + padding-right: 0; + padding-left: 0; + padding-bottom: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset legend { - margin-left: auto; - margin-right: auto; - font-size: 15px; - font-variant: all-petite-caps; - font-weight: bold; + margin-left: auto; + margin-right: auto; + font-size: 15px; + font-variant: all-petite-caps; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-column { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - height: 100%; - gap: 4px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 100%; + gap: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-row { - display: flex; - align-items: center; - justify-content: center; - padding: 0 4px; - gap: 2px; + display: flex; + align-items: center; + justify-content: center; + padding: 0 4px; + gap: 2px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-row img, .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-column img { - min-width: 14px; - min-height: 14px; - height: 14px; - border: 0; - filter: invert(0%) sepia(100%) saturate(0%) hue-rotate(21deg) brightness(17%) contrast(103%); + min-width: 14px; + min-height: 14px; + height: 14px; + border: 0; + filter: invert(0%) sepia(100%) saturate(0%) hue-rotate(21deg) brightness(17%) contrast(103%); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-row img:hover, -.daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-column img:hover { - cursor: pointer; - filter: invert(0%) sepia(100%) saturate(0%) hue-rotate(21deg) brightness(17%) contrast(103%) drop-shadow(0 0 3px red); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .gold-section + fieldset.gold-fieldset + .gold-column + img:hover { + cursor: pointer; + filter: invert(0%) sepia(100%) saturate(0%) hue-rotate(21deg) brightness(17%) contrast(103%) + drop-shadow(0 0 3px red); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-row i:hover, .daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-column i:hover { - cursor: pointer; - filter: drop-shadow(0 0 3px red); + cursor: pointer; + filter: drop-shadow(0 0 3px red); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-row img:not(.owned), -.daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-column img:not(.owned), -.daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-row i:not(.owned), -.daggerheart.sheet.pc div[data-application-part] .sheet-body .gold-section fieldset.gold-fieldset .gold-column i:not(.owned) { - opacity: 0.4; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .gold-section + fieldset.gold-fieldset + .gold-row + img:not(.owned), +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .gold-section + fieldset.gold-fieldset + .gold-column + img:not(.owned), +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .gold-section + fieldset.gold-fieldset + .gold-row + i:not(.owned), +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .gold-section + fieldset.gold-fieldset + .gold-column + i:not(.owned) { + opacity: 0.4; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .health-category { - text-transform: uppercase; + text-transform: uppercase; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .class-feature-selectable { - cursor: pointer; + cursor: pointer; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .class-feature-selectable:hover { - filter: drop-shadow(0 0 3px red); + filter: drop-shadow(0 0 3px red); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .class-feature-selectable.inactive { - opacity: 0.5; + opacity: 0.5; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container { - width: 100%; - min-height: 136px; + width: 100%; + min-height: 136px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-container { - display: flex; - align-items: center; - justify-content: space-between; - padding: 4px; - margin-bottom: 0; + display: flex; + align-items: center; + justify-content: space-between; + padding: 4px; + margin-bottom: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-container .feature-img { - max-width: 42px; + max-width: 42px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-container .feature-label { - font-weight: bold; - font-size: 30px; + font-weight: bold; + font-size: 30px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-container button { - flex: 0; + flex: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-tick-container { - flex: 0; - min-width: 56px; - display: flex; - flex-wrap: wrap; - gap: 8px; - margin: 0 24px; + flex: 0; + min-width: 56px; + display: flex; + flex-wrap: wrap; + gap: 8px; + margin: 0 24px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-tick-container .feature-tick { - position: relative; - border: 2px solid #7a7971; - height: 24px; - border-radius: 50%; - width: 24px; - background: rgba(0, 0, 0, 0.05); - display: flex; - justify-content: center; + position: relative; + border: 2px solid #7a7971; + height: 24px; + border-radius: 50%; + width: 24px; + background: rgba(0, 0, 0, 0.05); + display: flex; + justify-content: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-tick-container .feature-tick:hover:not(.disabled):not(.used) { - cursor: pointer; - filter: drop-shadow(0 0 3px red); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .features-container + .feature-tick-container + .feature-tick:hover:not(.disabled):not(.used) { + cursor: pointer; + filter: drop-shadow(0 0 3px red); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-tick-container .feature-tick.disabled { - opacity: 0.3; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .features-container + .feature-tick-container + .feature-tick.disabled { + opacity: 0.3; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-tick-container .feature-tick img { - border: 0; - width: 24px; - height: 24px; - filter: invert(17%) sepia(0%) saturate(0%) hue-rotate(19deg) brightness(102%) contrast(84%); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .features-container + .feature-tick-container + .feature-tick + img { + border: 0; + width: 24px; + height: 24px; + filter: invert(17%) sepia(0%) saturate(0%) hue-rotate(19deg) brightness(102%) contrast(84%); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-tick-container .feature-tick .feature-dice-value { - font-size: 18px; - align-self: center; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .features-container + .feature-tick-container + .feature-tick + .feature-dice-value { + font-size: 18px; + align-self: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .features-container .feature-tick-container .feature-tick.used::after { - position: absolute; - content: '/'; - color: #7a7971; - font-weight: 700; - font-size: 1.7em; - left: 4px; - top: -5px; - transform: rotate(25deg); - font-size: 24.5px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .features-container + .feature-tick-container + .feature-tick.used::after { + position: absolute; + content: '/'; + color: #7a7971; + font-weight: 700; + font-size: 1.7em; + left: 4px; + top: -5px; + transform: rotate(25deg); + font-size: 24.5px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .feature-input { - border: 0; - border-bottom: 1px solid #7a7971; - text-align: center; - height: min-content; - background: inherit; - font-size: 20px; - position: relative; - bottom: 3px; + border: 0; + border-bottom: 1px solid #7a7971; + text-align: center; + height: min-content; + background: inherit; + font-size: 20px; + position: relative; + bottom: 3px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .editor { - height: 400px; - width: 100%; + height: 400px; + width: 100%; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-title { - position: relative; - display: flex; - flex-direction: column; - align-items: center; + position: relative; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-title .proficiency-container { - width: 176px; - height: 20px; - position: absolute; - bottom: -15px; - left: calc(50% - 88px); - text-transform: uppercase; - display: flex; - align-items: center; - justify-content: center; - z-index: 1; - clip-path: polygon(11% 100%, 89% 100%, 100% 0%, 0% 0%); - font-size: 10px; + width: 176px; + height: 20px; + position: absolute; + bottom: -15px; + left: calc(50% - 88px); + text-transform: uppercase; + display: flex; + align-items: center; + justify-content: center; + z-index: 1; + clip-path: polygon(11% 100%, 89% 100%, 100% 0%, 0% 0%); + font-size: 10px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-title .proficiency-container span { - margin-right: 2px; + margin-right: 2px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-title .proficiency-container .proficiency-dot { - background: white; - color: white; - font-size: 10px; - padding: 1px; - border-radius: 50%; + background: white; + color: white; + font-size: 10px; + padding: 1px; + border-radius: 50%; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-title .proficiency-container .proficiency-dot.marked { - color: black; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .weapons-title + .proficiency-container + .proficiency-dot.marked { + color: black; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-title .proficiency-container .proficiency-dot:not(:last-of-type) { - margin-right: 2px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .weapons-title + .proficiency-container + .proficiency-dot:not(:last-of-type) { + margin-right: 2px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-burden { - position: absolute; - top: -4px; - right: -56px; - display: flex; - align-items: center; + position: absolute; + top: -4px; + right: -56px; + display: flex; + align-items: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-burden .weapons-burden-icon { - color: white; - font-size: 22px; - -webkit-text-stroke-width: 1px; - -webkit-text-stroke-color: black; + color: white; + font-size: 22px; + -webkit-text-stroke-width: 1px; + -webkit-text-stroke-color: black; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-burden .weapons-burden-icon.active { - -webkit-text-stroke-color: rgba(0, 0, 0, 0.05); - color: black; + -webkit-text-stroke-color: rgba(0, 0, 0, 0.05); + color: black; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-burden .weapons-burden-icon.left { - -webkit-transform: scaleX(-1) rotate(20deg); - transform: scaleX(-1) rotate(20deg); - margin-right: 4px; + -webkit-transform: scaleX(-1) rotate(20deg); + transform: scaleX(-1) rotate(20deg); + margin-right: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .weapons-burden .weapons-burden-icon.right { - transform: rotate(20deg); + transform: rotate(20deg); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .armor-container { - display: flex; - align-items: center; + display: flex; + align-items: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .armor-container .active-item-label-chip { - margin-left: 4px; + margin-left: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-container { - display: flex; - flex-direction: column; - width: 100%; - padding: 2px 0px; + display: flex; + flex-direction: column; + width: 100%; + padding: 2px 0px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-container .weapons-label-row { - display: flex; - align-items: center; + display: flex; + align-items: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-container .weapons-label-row .damage-roll { - width: 24px; - border: none; - margin-left: 4px; - transition: transform 0.2s; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .item-section + .active-item-container + .weapons-label-row + .damage-roll { + width: 24px; + border: none; + margin-left: 4px; + transition: transform 0.2s; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-container .weapons-label-row .damage-roll:hover { - transform: rotate(30deg); - filter: drop-shadow(0px 0px 3px red); - cursor: pointer; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .item-section + .active-item-container + .weapons-label-row + .damage-roll:hover { + transform: rotate(30deg); + filter: drop-shadow(0px 0px 3px red); + cursor: pointer; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-label-chip { - width: 62px; - border: 2px solid black; - border-radius: 6px; - background-color: #778899; - display: flex; - align-items: center; - justify-content: space-around; - margin-left: 4px; + width: 62px; + border: 2px solid black; + border-radius: 6px; + background-color: #778899; + display: flex; + align-items: center; + justify-content: space-around; + margin-left: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-label-chip img { - height: 20px; + height: 20px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-label-chip button { - height: 17px; - width: 17px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - background: #7a7971; - border-color: black; - margin: 0; + height: 17px; + width: 17px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + background: #7a7971; + border-color: black; + margin: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-label-chip button:hover { - background: red; + background: red; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .item-section .active-item-label-chip button i { - font-size: 10px; - color: black; + font-size: 10px; + color: black; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-armor-section, .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-weapon-section { - width: 100%; - margin-bottom: 8px; - text-transform: uppercase; + width: 100%; + margin-bottom: 8px; + text-transform: uppercase; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-armor-section h2, .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-weapon-section h2 { - width: 100%; - display: flex; - align-items: center; + width: 100%; + display: flex; + align-items: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-legend { - display: flex; - align-items: center; - margin-bottom: 4px; + display: flex; + align-items: center; + margin-bottom: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-legend .page-selector { - margin-left: 4px; - display: flex; - align-items: center; + margin-left: 4px; + display: flex; + align-items: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-legend .page-selector i:hover:not(.disabled) { - cursor: pointer; - filter: drop-shadow(0px 0px 3px red); + cursor: pointer; + filter: drop-shadow(0px 0px 3px red); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-legend .page-selector i.disabled { - opacity: 0.4; + opacity: 0.4; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-add-button { - position: absolute; - border-radius: 50%; - height: 15px; - width: 15px; - top: -20px; - background: grey; - border-color: black; - right: 6px; - display: flex; - font-size: 13px; - align-items: center; - justify-content: center; + position: absolute; + border-radius: 50%; + height: 15px; + width: 15px; + top: -20px; + background: grey; + border-color: black; + right: 6px; + display: flex; + font-size: 13px; + align-items: center; + justify-content: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory { - width: 100%; + width: 100%; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .inventory-row { - height: 26px; - border-bottom: 1px solid #7a7971; - display: flex; - margin-bottom: 8px; - border-radius: 8px; + height: 26px; + border-bottom: 1px solid #7a7971; + display: flex; + margin-bottom: 8px; + border-radius: 8px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .inventory-row .item-container { - flex-basis: 25%; - margin: 0 4px 8px; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; + flex-basis: 25%; + margin: 0 4px 8px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .inventory-row .item-container:hover { - filter: drop-shadow(0px 0px 3px red); + filter: drop-shadow(0px 0px 3px red); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .inventory-row .item-container .inventory-item { - background: #778899; - padding: 4px; - border: 1px solid black; - border-radius: 6px; - display: flex; - align-items: center; + background: #778899; + padding: 4px; + border: 1px solid black; + border-radius: 6px; + display: flex; + align-items: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .inventory-row .item-container .inventory-item .inventory-item-text { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - flex: 1; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory + .inventory-row + .item-container + .inventory-item + .inventory-item-text { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + flex: 1; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .inventory-row .item-container .inventory-item button { - height: 16px; - width: 16px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - flex: 0; - background: #7a7971; - border-color: black; - margin-left: 4px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory + .inventory-row + .item-container + .inventory-item + button { + height: 16px; + width: 16px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + flex: 0; + background: #7a7971; + border-color: black; + margin-left: 4px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .inventory-row .item-container .inventory-item button i { - font-size: 12px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory + .inventory-row + .item-container + .inventory-item + button + i { + font-size: 12px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory .editor { - height: 100px; + height: 100px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-items { - width: 100%; - flex: 1; - display: flex; - flex-direction: column; - justify-content: space-between; + width: 100%; + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab { - flex: 1; + flex: 1; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body { - height: 100%; - width: 100%; - padding: 8px; - display: flex; - flex-direction: column; + height: 100%; + width: 100%; + padding: 8px; + display: flex; + flex-direction: column; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .card-row { - flex: 1; - display: flex; + flex: 1; + display: flex; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .domain-card { - flex: 0; - flex-basis: 33.33%; - margin: 8px; + flex: 0; + flex-basis: 33.33%; + margin: 8px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .loadout-body { - flex: 1; + flex: 1; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .loadout-body .loadout-container { - height: 100%; - display: flex; - flex-direction: column; - gap: 8px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .domain-card-tab + .domain-card-body + .loadout-body + .loadout-container { + height: 100%; + display: flex; + flex-direction: column; + gap: 8px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .loadout-body .loadout-container .top-card-row { - flex: 1; - display: flex; - justify-content: space-around; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .domain-card-tab + .domain-card-body + .loadout-body + .loadout-container + .top-card-row { + flex: 1; + display: flex; + justify-content: space-around; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .loadout-body .loadout-container .domain-card.outlined { - border: 2px dotted black; - padding: 0; - margin: 8px; - height: calc(100% - 16px); - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-evenly; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .domain-card-tab + .domain-card-body + .loadout-body + .loadout-container + .domain-card.outlined { + border: 2px dotted black; + padding: 0; + margin: 8px; + height: calc(100% - 16px); + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-evenly; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .vault-container { - display: flex; - flex-wrap: wrap; - overflow-y: auto; - height: 100%; + display: flex; + flex-wrap: wrap; + overflow-y: auto; + height: 100%; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .vault-container .vault-card { - flex: 0; - flex-basis: calc(33.33% - 16px); - margin: 8px; - height: calc(50% - 16px); - min-height: calc(50% - 16px); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .domain-card-tab + .domain-card-body + .vault-container + .vault-card { + flex: 0; + flex-basis: calc(33.33% - 16px); + margin: 8px; + height: calc(50% - 16px); + min-height: calc(50% - 16px); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .domain-card-menu { - flex: 0; - width: 120px; - height: 100%; - border-width: 2px 0 2px 2px; - border-color: black; - border-style: solid; + flex: 0; + width: 120px; + height: 100%; + border-width: 2px 0 2px 2px; + border-color: black; + border-style: solid; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .domain-card-tab .domain-card-body .domain-card-menu button { - margin-bottom: 2px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .domain-card-tab + .domain-card-body + .domain-card-menu + button { + margin-bottom: 2px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .loadout-tabs { - border-top: 1px solid #b5b3a4; - border-bottom: 1px solid #b5b3a4; + border-top: 1px solid #b5b3a4; + border-bottom: 1px solid #b5b3a4; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card { - position: relative; - border: 4px solid #708090; - border-radius: 6px; - display: flex; - flex-direction: column; - height: 100%; - font-size: 14px; + position: relative; + border: 4px solid #708090; + border-radius: 6px; + display: flex; + flex-direction: column; + height: 100%; + font-size: 14px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-image-container { - position: relative; + position: relative; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-image { - width: 100%; - height: 100%; - aspect-ratio: 2; + width: 100%; + height: 100%; + aspect-ratio: 2; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-text-container { - flex: 1; - position: relative; - height: 50%; - display: flex; - flex-direction: column; - overflow-y: auto; - padding: 12px 4px 4px; + flex: 1; + position: relative; + height: 50%; + display: flex; + flex-direction: column; + overflow-y: auto; + padding: 12px 4px 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-level { - position: absolute; - top: 0; - left: 12px; - color: black; - height: 60px; - border: 2px solid orange; - border-top-width: 0; - width: 30px; - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-evenly; - background: grey; - font-size: 20px; - font-weight: bold; + position: absolute; + top: 0; + left: 12px; + color: black; + height: 60px; + border: 2px solid orange; + border-top-width: 0; + width: 30px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-evenly; + background: grey; + font-size: 20px; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-level img { - border: 0; - width: 20px; + border: 0; + width: 20px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-refresh-cost { - position: absolute; - top: 12px; - right: 12px; - color: white; - width: 30px; - height: 30px; - border: 2px solid orange; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - background: black; - font-size: 14px; + position: absolute; + top: 12px; + right: 12px; + color: white; + width: 30px; + height: 30px; + border: 2px solid orange; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + background: black; + font-size: 14px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-refresh-cost i { - font-size: 11px; + font-size: 11px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-type { - flex: 0; - display: flex; - justify-content: center; - align-items: center; - font-weight: bold; - position: absolute; - left: 0; - text-align: center; - width: 100%; - bottom: -9px; - z-index: 1; + flex: 0; + display: flex; + justify-content: center; + align-items: center; + font-weight: bold; + position: absolute; + left: 0; + text-align: center; + width: 100%; + bottom: -9px; + z-index: 1; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-type .abilities-card-type-text { - padding: 0px 4px; - border: 1px solid black; - border-radius: 6px; - background: gold; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-card + .abilities-card-type + .abilities-card-type-text { + padding: 0px 4px; + border: 1px solid black; + border-radius: 6px; + background: gold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-title { - flex: 0; - display: flex; - justify-content: center; - align-items: center; - font-weight: bold; - font-size: 18px; + flex: 0; + display: flex; + justify-content: center; + align-items: center; + font-weight: bold; + font-size: 18px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-sub-title { - flex: 0; - display: flex; - justify-content: center; - align-items: center; - font-style: italic; - font-size: 12px; + flex: 0; + display: flex; + justify-content: center; + align-items: center; + font-style: italic; + font-size: 12px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-spellcast { - flex: 0; - display: flex; - justify-content: center; - align-items: center; - text-transform: uppercase; - font-size: 12px; + flex: 0; + display: flex; + justify-content: center; + align-items: center; + text-transform: uppercase; + font-size: 12px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-spellcast .title { - font-weight: bold; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-description { - flex: 0; - font-size: 12px; - margin-bottom: 4px; + flex: 0; + font-size: 12px; + margin-bottom: 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-effect { - cursor: pointer; + cursor: pointer; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-effect:hover { - background: rgba(47, 79, 79, 0.25); + background: rgba(47, 79, 79, 0.25); } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-effect > * { - margin-top: 0; - margin-bottom: 0; + margin-top: 0; + margin-bottom: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-abilities { - flex: 1; - display: flex; - flex-direction: column; - gap: 4px; + flex: 1; + display: flex; + flex-direction: column; + gap: 4px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-abilities .abilities-card-ability { - font-size: 12px; - cursor: pointer; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-card + .abilities-card-abilities + .abilities-card-ability { + font-size: 12px; + cursor: pointer; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-abilities .abilities-card-ability:hover { - background: rgba(47, 79, 79, 0.25); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-card + .abilities-card-abilities + .abilities-card-ability:hover { + background: rgba(47, 79, 79, 0.25); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-abilities .abilities-card-ability > * { - margin: 0; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .abilities-card + .abilities-card-abilities + .abilities-card-ability + > * { + margin: 0; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card:hover .abilities-card-menu { - height: 40px; - left: 0px; + height: 40px; + left: 0px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-menu { - display: flex; - justify-content: center; - align-items: center; - height: 0; - transition: height 0.2s; - overflow: hidden; - position: absolute; - bottom: 0; - z-index: 2; - width: 100%; - background: grey; + display: flex; + justify-content: center; + align-items: center; + height: 0; + transition: height 0.2s; + overflow: hidden; + position: absolute; + bottom: 0; + z-index: 2; + width: 100%; + background: grey; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .abilities-card .abilities-card-menu button { - font-weight: bold; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .heritage-container { - height: 100%; - display: flex; - flex-direction: column; - gap: 8px; + height: 100%; + display: flex; + flex-direction: column; + gap: 8px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .heritage-container .card-row { - height: 50%; - display: flex; - justify-content: space-around; + height: 50%; + display: flex; + justify-content: space-around; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .heritage-container .heritage-card { - flex-basis: 33.33%; - margin: 8px; - display: flex; - align-items: center; - justify-content: center; + flex-basis: 33.33%; + margin: 8px; + display: flex; + align-items: center; + justify-content: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .heritage-container .heritage-card.outlined { - border: 2px dotted black; - font-size: 25px; + border: 2px dotted black; + font-size: 25px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .empty-ability-container { - height: 100%; - display: flex; - flex-direction: column; - align-items: center; - font-size: 25px; - opacity: 0.7; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + font-size: 25px; + opacity: 0.7; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .empty-ability-container .empty-ability-inner-container { - flex: 1; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .empty-ability-container .empty-ability-inner-container i { - font-size: 48px; + font-size: 48px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .story-container { - gap: 16px; + gap: 16px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .story-container .story-fieldset { - border-radius: 6px; + border-radius: 6px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .story-container .story-legend { - margin-left: auto; - margin-right: auto; - padding: 0 8px; - font-size: 30px; - font-weight: bold; + margin-left: auto; + margin-right: auto; + padding: 0 8px; + font-size: 30px; + font-weight: bold; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .story-container .scars-container .editor { - height: 240px; + height: 240px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container { - height: 100%; - overflow: auto; + height: 100%; + overflow: auto; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list { - list-style-type: none; - padding: 0 8px; - margin-top: 0; + list-style-type: none; + padding: 0 8px; + margin-top: 0; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list.inventory-item-header { - margin-bottom: 0; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list.inventory-item-header { + margin-bottom: 0; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-title-row-container { - display: flex; - align-items: center; - width: 100%; - border-bottom: 4px ridge slategrey; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-title-row-container { + display: flex; + align-items: center; + width: 100%; + border-bottom: 4px ridge slategrey; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-title-row-container .inventory-title-row { - justify-content: space-between; - flex: 1; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-title-row-container + .inventory-title-row { + justify-content: space-between; + flex: 1; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-title-row-container .inventory-item-title-container { - flex: 1; - display: flex; - align-items: center; - justify-content: flex-start; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-title-row-container + .inventory-item-title-container { + flex: 1; + display: flex; + align-items: center; + justify-content: flex-start; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-title-row-container .inventory-item-quantity { - width: 48px; - display: flex; - align-items: center; - margin-right: 96px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-title-row-container + .inventory-item-quantity { + width: 48px; + display: flex; + align-items: center; + margin-right: 96px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item { - background: crimson; + background: crimson; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item:not(:last-of-type) { - border-bottom: 2px ridge slategrey; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item:not(:last-of-type) { + border-bottom: 2px ridge slategrey; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item .inventory-item-title-container { - flex: 1; - display: flex; - align-items: center; - justify-content: flex-start; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item + .inventory-item-title-container { + flex: 1; + display: flex; + align-items: center; + justify-content: flex-start; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item .inventory-item-title-container .inventory-item-title { - display: flex; - align-items: center; - cursor: pointer; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item + .inventory-item-title-container + .inventory-item-title { + display: flex; + align-items: center; + cursor: pointer; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item .inventory-item-title-container .inventory-item-title:hover { - filter: drop-shadow(0 0 3px gold); +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item + .inventory-item-title-container + .inventory-item-title:hover { + filter: drop-shadow(0 0 3px gold); } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item .inventory-item-quantity { - width: 48px; - display: flex; - align-items: center; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item + .inventory-item-quantity { + width: 48px; + display: flex; + align-items: center; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item .inventory-item-quantity.spaced { - margin-right: 56px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item + .inventory-item-quantity.spaced { + margin-right: 56px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item .inventory-item-quantity input { - margin: 0 2px; - border: 0; - border-bottom: 2px solid black; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item + .inventory-item-quantity + input { + margin: 0 2px; + border: 0; + border-bottom: 2px solid black; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-item .inventory-item-quantity i { - font-size: 20px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-item + .inventory-item-quantity + i { + font-size: 20px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-title-row { - font-size: 20px; - font-weight: bold; - display: flex; - align-items: center; - padding: 0 4px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-title-row { + font-size: 20px; + font-weight: bold; + display: flex; + align-items: center; + padding: 0 4px; } .daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-row { - display: flex; - align-items: center; - padding: 4px; - font-size: 24px; + display: flex; + align-items: center; + padding: 4px; + font-size: 24px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-row .row-icon { - margin-left: 4px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-row + .row-icon { + margin-left: 4px; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-row .active-item { - position: absolute; - font-size: 16px; - left: calc(50% - 8px); - top: calc(50% - 8px); - margin-left: 2px; - color: crimson; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-row + .active-item { + position: absolute; + font-size: 16px; + left: calc(50% - 8px); + top: calc(50% - 8px); + margin-left: 2px; + color: crimson; } -.daggerheart.sheet.pc div[data-application-part] .sheet-body .inventory-container .inventory-item-list .inventory-row img { - width: 32px; +.daggerheart.sheet.pc + div[data-application-part] + .sheet-body + .inventory-container + .inventory-item-list + .inventory-row + img { + width: 32px; } .combat-sidebar .encounter-gm-resources { - flex: 0; - display: flex; - justify-content: center; - padding: 8px 0; + flex: 0; + display: flex; + justify-content: center; + padding: 8px 0; } .combat-sidebar .encounter-gm-resources .gm-resource-controls { - display: flex; - flex-direction: column; - align-items: center; - padding: 0 4px; - justify-content: center; + display: flex; + flex-direction: column; + align-items: center; + padding: 0 4px; + justify-content: center; } .combat-sidebar .encounter-gm-resources .gm-resource-tools { - display: flex; - flex-direction: column; - justify-content: center; - padding: 0 5px 0 4px; + display: flex; + flex-direction: column; + justify-content: center; + padding: 0 5px 0 4px; } .combat-sidebar .encounter-gm-resources .gm-resource-tools i { - margin: 0 2px; - font-size: 16px; + margin: 0 2px; + font-size: 16px; } .combat-sidebar .encounter-gm-resources .gm-resource-tools i.disabled { - opacity: 0.6; + opacity: 0.6; } .combat-sidebar .encounter-gm-resources .gm-resource-tools i:hover:not(.disabled) { - cursor: pointer; - filter: drop-shadow(0 0 3px red); + cursor: pointer; + filter: drop-shadow(0 0 3px red); } .combat-sidebar .encounter-gm-resources .gm-resource { - background: rgba(255, 255, 255, 0.1); - padding: 4px; - border-radius: 8px; - border: 2px solid black; - font-size: 20px; + background: rgba(255, 255, 255, 0.1); + padding: 4px; + border-radius: 8px; + border: 2px solid black; + font-size: 20px; } .combat-sidebar .token-action-tokens { - flex: 0 0 48px; - text-align: center; + flex: 0 0 48px; + text-align: center; } .combat-sidebar .token-action-tokens .use-action-token.disabled { - opacity: 0.6; + opacity: 0.6; } .combat-sidebar .icon-button.spaced { - margin-left: 4px; + margin-left: 4px; } .combat-sidebar .icon-button.disabled { - opacity: 0.6; + opacity: 0.6; } .combat-sidebar .icon-button:hover:not(.disabled) { - cursor: pointer; - filter: drop-shadow(0 0 3px red); + cursor: pointer; + filter: drop-shadow(0 0 3px red); } .daggerheart.chat.downtime { - display: flex; - flex-direction: column; - align-items: center; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart.chat.downtime .downtime-title-container { - display: flex; - flex-direction: column; - align-items: center; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart.chat.downtime .downtime-title-container .downtime-subtitle { - font-size: 17px; + font-size: 17px; } .daggerheart.chat.downtime .downtime-image { - width: 80px; + width: 80px; } .daggerheart.chat.downtime .downtime-refresh-container { - margin-top: 8px; - width: 100%; + margin-top: 8px; + width: 100%; } .daggerheart.chat.downtime .downtime-refresh-container .refresh-title { - font-weight: bold; + font-weight: bold; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls { - display: flex; - align-items: center; - justify-content: space-around; +.daggerheart.chat.roll .dice-flavor { + text-align: center; + font-weight: bold; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .dice-hope-container { - display: flex; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality { + display: flex; + align-items: center; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .dice-hope-container .roll.die:not(:last-of-type) { - margin-right: 8px; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .dice-hope-container { + display: flex; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .modifiers-container { - display: flex; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .dice-hope-container .roll.die:not(:last-of-type) { + margin-right: 8px; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .modifiers-container .modifier-value:not(:last-of-type) { - margin-right: 8px; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .modifiers-container { + display: flex; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .roll.die.hope { - color: white; - -webkit-text-stroke-color: #008080; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .modifiers-container .modifier-value:not(:last-of-type) { + margin-right: 8px; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .roll.die.fear { - color: white; - -webkit-text-stroke-color: #430070; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.hope { + color: white; + -webkit-text-stroke-color: #008080; + -webkit-text-stroke-width: 1.5px; + font-weight: 400; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .roll.die.disadvantage { - color: white; - -webkit-text-stroke-color: #b30000; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.hope:not(.discarded) { + filter: none; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .roll.die.advantage { - color: white; - -webkit-text-stroke-color: green; - -webkit-text-stroke-width: 1.5px; - font-weight: 400; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.fear { + color: white; + -webkit-text-stroke-color: #430070; + -webkit-text-stroke-width: 1.5px; + font-weight: 400; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .roll.die.unused { - opacity: 0.3; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.fear:not(.discarded) { + filter: none; } -.daggerheart.chat.roll .dice-tooltip .dice-rolls .modifier-value { - text-align: center; - font-weight: bold; - font-size: 16px; +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.disadvantage { + color: white; + -webkit-text-stroke-color: #b30000; + -webkit-text-stroke-width: 1.5px; + font-weight: 400; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.advantage { + color: white; + -webkit-text-stroke-color: green; + -webkit-text-stroke-width: 1.5px; + font-weight: 400; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .roll.die.unused { + opacity: 0.3; +} +.daggerheart.chat.roll .dice-tooltip .dice-rolls.duality .modifier-value { + text-align: center; + font-weight: bold; + font-size: 16px; +} +.daggerheart.chat.roll .dice-tooltip .attack-roll-advantage-container { + text-align: end; + font-weight: bold; } .daggerheart.chat.roll .dice-total .dice-total-value .hope { - color: #008080; + color: #008080; } .daggerheart.chat.roll .dice-total .dice-total-value .fear { - color: #430070; + color: #430070; } .daggerheart.chat.roll .dice-total .dice-total-value .critical { - color: #ffd700; + color: #ffd700; } .daggerheart.chat.roll .dice-total-label { - font-size: 12px; - font-weight: bold; - font-variant: all-small-caps; - margin: -8px 0; + font-size: 12px; + font-weight: bold; + font-variant: all-small-caps; + margin: -8px 0; } .daggerheart.chat.roll .target-section { - margin-top: 5px; + margin-top: 5px; } .daggerheart.chat.roll .target-section .target-container { - display: flex; - transition: all 0.2s ease-in-out; + display: flex; + transition: all 0.2s ease-in-out; } .daggerheart.chat.roll .target-section .target-container:hover { - filter: drop-shadow(0 0 3px gold); - border-color: gold; + filter: drop-shadow(0 0 3px gold); + border-color: gold; } .daggerheart.chat.roll .target-section .target-container.hidden { - display: none; - border: 0; + display: none; + border: 0; } .daggerheart.chat.roll .target-section .target-container.hit { - background: #008000; + background: #008000; } .daggerheart.chat.roll .target-section .target-container.miss { - background: #ff0000; + background: #ff0000; } .daggerheart.chat.roll .target-section .target-container img { - flex: 0; - width: 22px; - height: 22px; - margin-left: 8px; - align-self: center; - border-color: transparent; + flex: 0; + width: 22px; + height: 22px; + margin-left: 8px; + align-self: center; + border-color: transparent; } .daggerheart.chat.roll .target-section .target-container .target-inner-container { - flex: 1; - display: flex; - justify-content: center; - margin-right: 32px; + flex: 1; + display: flex; + justify-content: center; + margin-right: 32px; } -.daggerheart.chat.roll .roll-damage-button { - margin-top: 5px; +.daggerheart.chat.roll .dice-actions { + display: flex; + gap: 4px; +} +.daggerheart.chat.roll .dice-actions button { + flex: 1; +} +.daggerheart.chat.roll .dice-result .roll-damage-button, +.daggerheart.chat.roll .dice-result .damage-button { + margin-top: 5px; } .daggerheart.chat.domain-card { - display: flex; - flex-direction: column; - align-items: center; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart.chat.domain-card .domain-card-title { - width: 100%; - display: flex; - flex-direction: column; - align-items: center; + width: 100%; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart.chat.domain-card .domain-card-title div { - font-size: 20px; - font-variant: small-caps; - font-weight: bold; + font-size: 20px; + font-variant: small-caps; + font-weight: bold; } .daggerheart.chat.domain-card .domain-card-title h2 { - width: 100%; - text-align: center; + width: 100%; + text-align: center; } .daggerheart.chat.domain-card .ability-card-footer { - display: flex; - width: 100%; - margin-top: 8px; - flex-wrap: wrap; + display: flex; + width: 100%; + margin-top: 8px; + flex-wrap: wrap; } .daggerheart.chat.domain-card .ability-card-footer button { - border-radius: 6px; - background: #699969; - border-color: black; - flex-basis: calc(50% - 2px); + border-radius: 6px; + background: #699969; + border-color: black; + flex-basis: calc(50% - 2px); } .daggerheart.chat.domain-card .ability-card-footer button:nth-of-type(n + 3) { - margin-top: 2px; + margin-top: 2px; } .daggerheart.chat.domain-card img { - width: 80px; + width: 80px; } .daggerheart.sheet.feature { - background-color: red; + background-color: red; } .daggerheart.sheet.feature .editable { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } .daggerheart.sheet.feature .sheet-body { - flex: 1; - display: flex; - flex-direction: column; + flex: 1; + display: flex; + flex-direction: column; } .daggerheart.sheet.feature .feature-description { - flex: 1; - display: flex; - flex-direction: column; + flex: 1; + display: flex; + flex-direction: column; } .daggerheart.sheet.class .class-feature { - display: flex; + display: flex; } .daggerheart.sheet.class .class-feature img { - width: 40px; + width: 40px; } .daggerheart.sheet.class .class-feature button { - width: 40px; + width: 40px; } .daggerheart.sheet .domain-card-description .editor { - height: 300px; + height: 300px; } .daggerheart.sheet .item-container { - margin-top: 4px; - gap: 4px; - align-items: baseline; + margin-top: 4px; + gap: 4px; + align-items: baseline; } .daggerheart.sheet .item-sidebar { - border-right: 1px groove darkgray; - min-width: 160px; - flex: 0; - padding: 4px; + border-right: 1px groove darkgray; + min-width: 160px; + flex: 0; + padding: 4px; } .daggerheart.sheet .item-sidebar label { - margin-right: 8px; - font-weight: bold; + margin-right: 8px; + font-weight: bold; } .daggerheart.sheet .item-sidebar input[type='checkbox'] { - margin: 0; + margin: 0; } form.daggerheart.views.downtime { - height: auto !important; + height: auto !important; } div.daggerheart.views.death-move { - height: auto !important; + height: auto !important; } div.daggerheart.views.multiclass { - height: auto !important; + height: auto !important; } .daggerheart.views.levelup .levelup-title-container { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: 32px; - margin-bottom: 4px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: 32px; + margin-bottom: 4px; } .daggerheart.views.levelup .levelup-title-container .level-title { - text-decoration: underline; + text-decoration: underline; } .daggerheart.views.levelup .levelup-title-container .level-display { - display: flex; - align-items: center; + display: flex; + align-items: center; } .daggerheart.views.levelup .levelup-title-container .level-display i { - margin: 0 4px; + margin: 0 4px; } .daggerheart.views.levelup .levelup-section { - display: flex; - align-items: flex-start; - margin-bottom: 8px; - font-size: 11px; + display: flex; + align-items: flex-start; + margin-bottom: 8px; + font-size: 11px; } .daggerheart.views.levelup .levelup-section .levelup-container { - flex: 1; + flex: 1; } .daggerheart.views.levelup .levelup-section .levelup-container:nth-of-type(2) { - padding: 0 4px; + padding: 0 4px; } .daggerheart.views.levelup .levelup-section .levelup-container.disabled { - opacity: 0.2; + opacity: 0.2; } .daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container { - height: 700px; - padding: 24px 58px 0; - display: flex; - flex-direction: column; - align-items: center; - position: relative; + height: 700px; + padding: 24px 58px 0; + display: flex; + flex-direction: column; + align-items: center; + position: relative; } .daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-legend { - margin-left: auto; - margin-right: auto; - font-weight: bold; - z-index: 1; + margin-left: auto; + margin-right: auto; + font-weight: bold; + z-index: 1; } .daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-info { - background: #778899; - width: 100%; - text-align: center; - position: absolute; - top: -6px; - padding: 8px 0; + background: #778899; + width: 100%; + text-align: center; + position: absolute; + top: -6px; + padding: 8px 0; } .daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-pretext { - padding: 8px 0; + padding: 8px 0; } .daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-body { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } -.daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-body .levelup-choice-row { - display: flex; - align-items: center; - padding: 4px; +.daggerheart.views.levelup + .levelup-section + .levelup-container + .levelup-inner-container + .levelup-body + .levelup-choice-row { + display: flex; + align-items: center; + padding: 4px; } -.daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-body .levelup-choice-row .levelup-choice-row-inner { - display: flex; - align-items: center; +.daggerheart.views.levelup + .levelup-section + .levelup-container + .levelup-inner-container + .levelup-body + .levelup-choice-row + .levelup-choice-row-inner { + display: flex; + align-items: center; } -.daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-body .levelup-choice-row .levelup-choice-input-container { - position: relative; - display: flex; - align-items: center; +.daggerheart.views.levelup + .levelup-section + .levelup-container + .levelup-inner-container + .levelup-body + .levelup-choice-row + .levelup-choice-input-container { + position: relative; + display: flex; + align-items: center; } -.daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-body .levelup-choice-row .levelup-choice-input-container input:disabled:checked::before { - opacity: 0.4; - color: var(--color-warm-1); +.daggerheart.views.levelup + .levelup-section + .levelup-container + .levelup-inner-container + .levelup-body + .levelup-choice-row + .levelup-choice-input-container + input:disabled:checked::before { + opacity: 0.4; + color: var(--color-warm-1); } -.daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-body .levelup-choice-row .levelup-choice-input-container i.fa-link { - transform: rotate(45deg); - position: relative; - top: 2px; - margin: 0 -3px; +.daggerheart.views.levelup + .levelup-section + .levelup-container + .levelup-inner-container + .levelup-body + .levelup-choice-row + .levelup-choice-input-container + i.fa-link { + transform: rotate(45deg); + position: relative; + top: 2px; + margin: 0 -3px; } -.daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-body .levelup-choice-row .levelup-choice-input-container i.fa-lock { - position: absolute; - top: 0; - left: 0; - font-size: 8px; +.daggerheart.views.levelup + .levelup-section + .levelup-container + .levelup-inner-container + .levelup-body + .levelup-choice-row + .levelup-choice-input-container + i.fa-lock { + position: absolute; + top: 0; + left: 0; + font-size: 8px; } .daggerheart.views.levelup .levelup-section .levelup-container .levelup-inner-container .levelup-posttext { - padding: 8px 0; + padding: 8px 0; } .daggerheart.views .downtime-container .activity-container { - display: flex; - align-items: center; - padding: 8px; + display: flex; + align-items: center; + padding: 8px; } .daggerheart.views .downtime-container .activity-container .activity-title { - flex: 1; - display: flex; - align-items: center; + flex: 1; + display: flex; + align-items: center; } .daggerheart.views .downtime-container .activity-container .activity-title .activity-title-text { - font-size: 24px; - font-weight: bold; + font-size: 24px; + font-weight: bold; } .daggerheart.views .downtime-container .activity-container .activity-title .activity-image { - width: 120px; - border: 2px solid black; - border-radius: 50%; - margin-right: 8px; - cursor: pointer; + width: 120px; + border: 2px solid black; + border-radius: 50%; + margin-right: 8px; + cursor: pointer; } .daggerheart.views .downtime-container .activity-container .activity-title .activity-image:hover, .daggerheart.views .downtime-container .activity-container .activity-title .activity-image.selected { - filter: drop-shadow(0 0 6px gold); + filter: drop-shadow(0 0 6px gold); } .daggerheart.views .downtime-container .activity-container .activity-title .custom-name-input { - font-size: 24px; - font-weight: bold; - padding: 0; - background: transparent; - color: #efe6d8; + font-size: 24px; + font-weight: bold; + padding: 0; + background: transparent; + color: #efe6d8; } .daggerheart.views .downtime-container .activity-container .activity-body { - flex: 1; - font-style: italic; + flex: 1; + font-style: italic; } .daggerheart.views.downtime .activity-text-area { - resize: none; + resize: none; } .daggerheart.views .range-reset { - flex: 0; - width: 21px; - height: 21px; - margin: 3px 4px; - border: 1px solid black; - display: flex; - align-items: center; - justify-content: center; + flex: 0; + width: 21px; + height: 21px; + margin: 3px 4px; + border: 1px solid black; + display: flex; + align-items: center; + justify-content: center; } .daggerheart.views.roll-selection .roll-selection-container i { - filter: invert(0%) sepia(100%) saturate(0%) hue-rotate(21deg) brightness(17%) contrast(103%); + filter: invert(0%) sepia(100%) saturate(0%) hue-rotate(21deg) brightness(17%) contrast(103%); } .daggerheart.views.roll-selection .roll-dialog-container .disadvantage, .daggerheart.views.roll-selection .roll-dialog-container .advantage { - border: 2px solid #708090; - border-radius: 6px; - display: flex; - align-items: center; - padding: 4px; - margin-bottom: 6px; + border: 2px solid #708090; + border-radius: 6px; + display: flex; + align-items: center; + padding: 4px; + margin-bottom: 6px; } .daggerheart.views.roll-selection .roll-dialog-container .disadvantage.selected, .daggerheart.views.roll-selection .roll-dialog-container .advantage.selected { - filter: drop-shadow(0px 0px 3px red); + filter: drop-shadow(0px 0px 3px red); } .daggerheart.views.roll-selection .roll-dialog-container .disadvantage input, .daggerheart.views.roll-selection .roll-dialog-container .advantage input { - border: 0; + border: 0; } .daggerheart.views.roll-selection .roll-dialog-container .disadvantage button, .daggerheart.views.roll-selection .roll-dialog-container .advantage button { - flex: 0; - border-radius: 50%; - height: 20px; - width: 20px; - display: flex; - align-items: center; - justify-content: center; - margin: 2px 0 2px 4px; - padding: 12px; + flex: 0; + border-radius: 50%; + height: 20px; + width: 20px; + display: flex; + align-items: center; + justify-content: center; + margin: 2px 0 2px 4px; + padding: 12px; } .daggerheart.views.roll-selection .roll-dialog-container .disadvantage button i, .daggerheart.views.roll-selection .roll-dialog-container .advantage button i { - margin: 0; + margin: 0; } .daggerheart.views.roll-selection .roll-dialog-container .roll-dialog-experience-container { - display: flex; - align-items: center; - flex-wrap: wrap; - gap: 4px; + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 4px; } .daggerheart.views.roll-selection .roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip { - border: 1px solid black; - border-radius: 6px; - min-width: calc(33% - 2px); - flex: 1; - display: flex; - align-items: center; - justify-content: center; - gap: 4px; - cursor: pointer; - padding: 4px; - background: grey; - overflow: hidden; - font-weight: bold; + border: 1px solid black; + border-radius: 6px; + min-width: calc(33% - 2px); + flex: 1; + display: flex; + align-items: center; + justify-content: center; + gap: 4px; + cursor: pointer; + padding: 4px; + background: grey; + overflow: hidden; + font-weight: bold; } .daggerheart.views.roll-selection .roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip.hover { - filter: drop-shadow(0 0 3px red); + filter: drop-shadow(0 0 3px red); } .daggerheart.views.roll-selection .roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } .daggerheart.views.roll-selection .roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip.selected { - background: green; + background: green; } -.daggerheart.views.roll-selection .roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip.selected span { - filter: drop-shadow(0 0 3px gold); +.daggerheart.views.roll-selection + .roll-dialog-container + .roll-dialog-experience-container + .roll-dialog-chip.selected + span { + filter: drop-shadow(0 0 3px gold); } .daggerheart.views.roll-selection .roll-dialog-container .hope-container { - display: flex; - gap: 8px; - align-items: center; - font-size: 18px; + display: flex; + gap: 8px; + align-items: center; + font-size: 18px; } .daggerheart.views.npc-roll-selection .npc-roll-dialog-container { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } .daggerheart.views.npc-roll-selection .npc-roll-dialog-container .selection-container { - display: flex; - align-items: center; - margin-bottom: 8px; + display: flex; + align-items: center; + margin-bottom: 8px; + gap: 16px; } .daggerheart.views.npc-roll-selection .npc-roll-dialog-container .selection-container .dice-container { - display: flex; - align-items: center; - flex: 1; + display: flex; + align-items: center; + flex: 1; } -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .selection-container .dice-container .dice-inner-container { - position: relative; - display: flex; - align-items: center; +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .selection-container + .dice-container + .dice-inner-container { + position: relative; + display: flex; + align-items: center; + justify-content: center; } -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .selection-container .dice-container .dice-inner-container i { - font-size: 18px; +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .selection-container + .dice-container + .dice-inner-container + i { + font-size: 18px; } -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .selection-container .dice-container .dice-inner-container img { - border: 0; - position: relative; - left: 1px; +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .selection-container + .dice-container + .dice-inner-container + img { + border: 0; + position: relative; + left: 1px; } -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .selection-container .dice-container .dice-inner-container .dice-number { - position: absolute; - top: calc(50% - 14px); - left: calc(50% - 7px); - font-size: 24px; - font-weight: bold; +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .selection-container + .dice-container + .dice-inner-container + .dice-number { + position: absolute; + font-size: 24px; + font-weight: bold; +} +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .selection-container + .dice-container + .advantage-container { + display: flex; + flex-direction: column; + gap: 2px; + flex: 1; +} +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .selection-container + .dice-container + .advantage-container + .advantage-button.active, +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .selection-container + .dice-container + .advantage-container + .advantage-button:hover { + background: var(--button-hover-background-color); } .daggerheart.views.npc-roll-selection .npc-roll-dialog-container .roll-dialog-experience-container { - display: flex; - align-items: flex-start; - flex-wrap: wrap; - gap: 4px; - flex: 2; - height: 100%; + display: flex; + align-items: flex-start; + flex-wrap: wrap; + gap: 4px; + flex: 1; + height: 100%; } -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip { - border: 1px solid black; - border-radius: 6px; - flex-basis: calc(50% - 2px); - display: flex; - align-items: center; - justify-content: space-between; - cursor: pointer; - padding: 4px; - background: grey; - overflow: hidden; +.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .roll-dialog-experience-container .experience-chip { + opacity: 0.6; + border-radius: 16px; + width: calc(50% - 4px); + white-space: nowrap; } -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip.hover { - filter: drop-shadow(0 0 3px red); -} -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip span { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; -} -.daggerheart.views.npc-roll-selection .npc-roll-dialog-container .roll-dialog-experience-container .roll-dialog-chip.selected i { - color: green; +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .roll-dialog-experience-container + .experience-chip.active, +.daggerheart.views.npc-roll-selection + .npc-roll-dialog-container + .roll-dialog-experience-container + .experience-chip:hover { + opacity: 1; + background: var(--button-hover-background-color); } .daggerheart.views.multiclass .multiclass-container { - margin-bottom: 16px; + margin-bottom: 16px; } .daggerheart.views.multiclass .multiclass-container .multiclass-category-title { - margin-top: 16px; + margin-top: 16px; } .daggerheart.views.multiclass .multiclass-container .multiclass-class-choices { - display: flex; - width: 100%; - height: 100%; - flex-wrap: wrap; + display: flex; + width: 100%; + height: 100%; + flex-wrap: wrap; } .daggerheart.views.multiclass .multiclass-container .multiclass-spaced-choices { - display: flex; - justify-content: space-around; - width: 100%; - height: 100%; + display: flex; + justify-content: space-around; + width: 100%; + height: 100%; } .daggerheart.views.multiclass .multiclass-container .multiclass-class-choice { - display: flex; - align-items: center; - flex-basis: 33.33%; - font-weight: bold; - font-size: 24px; - cursor: pointer; + display: flex; + align-items: center; + flex-basis: 33.33%; + font-weight: bold; + font-size: 24px; + cursor: pointer; } .daggerheart.views.multiclass .multiclass-container .multiclass-class-choice.selected:not(.disabled), .daggerheart.views.multiclass .multiclass-container .multiclass-class-choice:hover:not(.disabled) { - filter: drop-shadow(0 0 3px gold); + filter: drop-shadow(0 0 3px gold); } .daggerheart.views.multiclass .multiclass-container .multiclass-class-choice.inactive, .daggerheart.views.multiclass .multiclass-container .multiclass-class-choice.disabled { - cursor: initial; - opacity: 0.4; + cursor: initial; + opacity: 0.4; } .daggerheart.views.multiclass .multiclass-container .multiclass-class-choice img { - width: 80px; - height: 80px; - margin-right: 16px; + width: 80px; + height: 80px; + margin-right: 16px; } .daggerheart.views.damage-selection .hope-container { - display: flex; - gap: 8px; - align-items: center; - font-size: 18px; + display: flex; + gap: 8px; + align-items: center; + font-size: 18px; } .daggerheart.views.action .action-category { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } .daggerheart.views.action .action-category .action-category-label { - display: flex; - align-items: center; - justify-content: space-between; - border-radius: 6px; - cursor: pointer; - padding: 0 4px; - margin: 0 auto 4px; + display: flex; + align-items: center; + justify-content: space-between; + border-radius: 6px; + cursor: pointer; + padding: 0 4px; + margin: 0 auto 4px; } .daggerheart.views.action .action-category .action-category-label:hover { - background-color: darkgray; + background-color: darkgray; } .daggerheart.views.action .action-category .action-category-data { - max-height: 0; - transition: max-height 0.2s ease-in-out; - overflow: hidden; + max-height: 0; + transition: max-height 0.2s ease-in-out; + overflow: hidden; } .daggerheart.views.action .action-category .action-category-data.open { - max-height: initial; + max-height: initial; } .daggerheart.views.ancestry-selection .ancestry-section { - display: flex; - flex-direction: column; - align-items: center; - margin-bottom: 8px; + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 8px; } .daggerheart.views.ancestry-selection .ancestry-section .ancestry-container { - width: 100%; - display: flex; - flex-wrap: wrap; + width: 100%; + display: flex; + flex-wrap: wrap; } .daggerheart.views.ancestry-selection .ancestry-section .ancestry-container .ancestry-inner-container { - flex-basis: 25%; - display: flex; - flex-direction: column; - align-items: center; + flex-basis: 25%; + display: flex; + flex-direction: column; + align-items: center; } -.daggerheart.views.ancestry-selection .ancestry-section .ancestry-container .ancestry-inner-container .image-container img { - width: 120px; - border: 4px solid black; - border-radius: 50%; +.daggerheart.views.ancestry-selection + .ancestry-section + .ancestry-container + .ancestry-inner-container + .image-container + img { + width: 120px; + border: 4px solid black; + border-radius: 50%; } -.daggerheart.views.ancestry-selection .ancestry-section .ancestry-container .ancestry-inner-container .image-container img.selected { - border-color: gold; +.daggerheart.views.ancestry-selection + .ancestry-section + .ancestry-container + .ancestry-inner-container + .image-container + img.selected { + border-color: gold; } -.daggerheart.views.ancestry-selection .ancestry-section .ancestry-container .ancestry-inner-container .image-container img:hover:not(.selected) { - filter: drop-shadow(0 0 3px gold); +.daggerheart.views.ancestry-selection + .ancestry-section + .ancestry-container + .ancestry-inner-container + .image-container + img:hover:not(.selected) { + filter: drop-shadow(0 0 3px gold); } -.daggerheart.views.ancestry-selection .ancestry-section .ancestry-container .ancestry-inner-container .image-container img.disabled { - opacity: 0.3; +.daggerheart.views.ancestry-selection + .ancestry-section + .ancestry-container + .ancestry-inner-container + .image-container + img.disabled { + opacity: 0.3; } -.daggerheart.views.ancestry-selection .ancestry-section .ancestry-container .ancestry-inner-container .name-container div { - font-size: 18px; - font-weight: bold; - cursor: help; +.daggerheart.views.ancestry-selection + .ancestry-section + .ancestry-container + .ancestry-inner-container + .name-container + div { + font-size: 18px; + font-weight: bold; + cursor: help; } .daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container { - width: 100%; - display: flex; - gap: 8px; + width: 100%; + display: flex; + gap: 8px; } .daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container > div { - flex: 1; + flex: 1; } .daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-name { - text-align: center; + text-align: center; } .daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-name div { - font-size: 24px; + font-size: 24px; } .daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images { - display: flex; - align-items: center; - gap: 4px; + display: flex; + align-items: center; + gap: 4px; } -.daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images .mixed-ancestry-image { - position: relative; - max-width: 33%; +.daggerheart.views.ancestry-selection + .ancestry-section + .mixed-ancestry-container + .mixed-ancestry-images + .mixed-ancestry-image { + position: relative; + max-width: 33%; } -.daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images .mixed-ancestry-image:hover i { - opacity: 1; +.daggerheart.views.ancestry-selection + .ancestry-section + .mixed-ancestry-container + .mixed-ancestry-images + .mixed-ancestry-image:hover + i { + opacity: 1; } -.daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images .mixed-ancestry-image i { - position: absolute; - font-size: 32px; - top: calc(50% - 20px); - left: calc(50% - 20px); - padding: 4px; - background-color: grey; - opacity: 0; - cursor: pointer; +.daggerheart.views.ancestry-selection + .ancestry-section + .mixed-ancestry-container + .mixed-ancestry-images + .mixed-ancestry-image + i { + position: absolute; + font-size: 32px; + top: calc(50% - 20px); + left: calc(50% - 20px); + padding: 4px; + background-color: grey; + opacity: 0; + cursor: pointer; } -.daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images .mixed-ancestry-image i:hover { - filter: drop-shadow(0 0 3px gold); +.daggerheart.views.ancestry-selection + .ancestry-section + .mixed-ancestry-container + .mixed-ancestry-images + .mixed-ancestry-image + i:hover { + filter: drop-shadow(0 0 3px gold); } -.daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images .mixed-ancestry-image img { - max-width: 100%; +.daggerheart.views.ancestry-selection + .ancestry-section + .mixed-ancestry-container + .mixed-ancestry-images + .mixed-ancestry-image + img { + max-width: 100%; } .daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images img { - max-width: 33%; - border: 4px solid black; - border-radius: 50%; + max-width: 33%; + border: 4px solid black; + border-radius: 50%; } .daggerheart.views.ancestry-selection .ancestry-section .mixed-ancestry-container .mixed-ancestry-images img.selected { - border-color: gold; + border-color: gold; } .daggerheart.sheet.heritage .editor { - height: 200px; + height: 200px; } .daggerheart.sheet.class .guide .guide-section { - gap: 8px; + gap: 8px; } .daggerheart.sheet.class .guide .drop-section { - width: 100%; + width: 100%; } .daggerheart.sheet.class .guide .drop-section legend { - margin-left: auto; - margin-right: auto; - font-size: 12px; + margin-left: auto; + margin-right: auto; + font-size: 12px; } .daggerheart.sheet.class .guide .drop-section .drop-section-body { - min-height: 40px; - display: flex; - flex-direction: column; - align-items: center; + min-height: 40px; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart.sheet.class .guide .trait-input { - text-align: center; - min-width: 24px; + text-align: center; + min-width: 24px; } .daggerheart.sheet.class .guide .suggested-item { - padding: 2px 4px; - border-radius: 6px; - border: 1px solid black; - background: #778899; - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; + padding: 2px 4px; + border-radius: 6px; + border: 1px solid black; + background: #778899; + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; } .daggerheart.sheet.class .guide .suggested-item:not(:last-child) { - margin: 4px; + margin: 4px; } .daggerheart.sheet.class .guide .suggested-item img { - width: 30px; + width: 30px; } .daggerheart.sheet.class .guide .suggested-item div { - text-align: center; + text-align: center; } .daggerheart.sheet.class .guide .suggested-item i { - border-radius: 50%; - margin-right: 4px; - font-size: 11px; + border-radius: 50%; + margin-right: 4px; + font-size: 11px; } .daggerheart.sheet.class .guide .extra-section { - display: flex; - flex-direction: column; - align-items: center; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart.sheet.class .guide .extra-section .extra-title { - font-size: 14px; - font-weight: bold; + font-size: 14px; + font-weight: bold; } .daggerheart.sheet.class .guide .extra-section .extra-input { - margin-bottom: 4px; + margin-bottom: 4px; } .daggerheart.sheet.class .guide-section-title-centered { - font-weight: bold; - font-size: 18px; + font-weight: bold; + font-size: 18px; } .daggerheart.sheet.class .inventory-section { - width: 100%; - border: 2px solid black; - border-style: dotted; - min-height: 80px; + width: 100%; + border: 2px solid black; + border-style: dotted; + min-height: 80px; } .daggerheart.sheet.class .inventory-section .inventory-title { - font-weight: bold; - font-size: 14px; - text-align: center; + font-weight: bold; + font-size: 14px; + text-align: center; } .daggerheart.sheet.class .tagify { - background: var(--color-light-1); - border: 1px solid var(--color-border); - height: 34px; - width: 100%; - border-radius: 3px; - margin-right: 1px; + background: var(--color-light-1); + border: 1px solid var(--color-border); + height: 34px; + width: 100%; + border-radius: 3px; + margin-right: 1px; } .daggerheart.sheet.class .tagify tag div { - display: flex; - justify-content: space-between; - align-items: center; - height: 22px; + display: flex; + justify-content: space-between; + align-items: center; + height: 22px; } .daggerheart.sheet.class .tagify tag div span { - font-weight: 400; + font-weight: 400; } .daggerheart.sheet.class .tagify tag div img { - margin-left: 8px; - height: 20px; - width: 20px; + margin-left: 8px; + height: 20px; + width: 20px; } .daggerheart.sheet.adversary .adversary-header-container { - position: relative; - background-color: grey; - display: flex; + position: relative; + background-color: grey; + display: flex; } .daggerheart.sheet.adversary .adversary-header-container .adversary-header { - flex: 1; + flex: 1; } .daggerheart.sheet.adversary .adversary-header-container .adversary-header img { - height: 60px; - width: 60px; + height: 60px; + width: 60px; } .daggerheart.sheet.adversary .adversary-header-container .adversary-header .adversary-title { - display: flex; - align-items: center; - text-align: center; - font-size: 28px; + display: flex; + align-items: center; + text-align: center; + font-size: 28px; } .daggerheart.sheet.adversary .adversary-header-container .adversary-header .adversary-title .title-text { - width: 100%; + width: 100%; } .daggerheart.sheet.adversary .adversary-header-container .adversary-header .adversary-title input { - font-size: 28px; - border: 0; - height: 100%; + font-size: 28px; + border: 0; + height: 100%; } .daggerheart.sheet.adversary .adversary-header-container .adversary-toggle { - position: absolute; - top: 0; - right: 0; - background-color: white; - color: black; - flex: 0; + position: absolute; + top: 0; + right: 0; + background-color: white; + color: black; + flex: 0; } .daggerheart.sheet.adversary .motive-container { - background: lightgrey; - margin-bottom: 8px; - padding-bottom: 4px; + background: lightgrey; + margin-bottom: 8px; + padding-bottom: 4px; } .daggerheart.sheet.adversary .motive-container .motive-title { - display: flex; - align-items: center; - justify-content: center; - flex-wrap: wrap; + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; } .daggerheart.sheet.adversary .motive-container .motive-title .motive-title-base { - font-size: 21px; + font-size: 21px; } .daggerheart.sheet.adversary .motive-container .motive-title .motive-title-value { - font-style: italic; - position: relative; - top: 2px; + font-style: italic; + position: relative; + top: 2px; } .daggerheart.sheet.adversary .motive-container .motive-title i { - margin-left: 4px; - cursor: pointer; + margin-left: 4px; + cursor: pointer; } .daggerheart.sheet.adversary .motive-container .motive-title i:hover { - filter: drop-shadow(0 0 3px red); + filter: drop-shadow(0 0 3px red); } .daggerheart.sheet.adversary .adversary-content-container { - display: flex; - align-items: baseline; + display: flex; + align-items: baseline; } .daggerheart.sheet.adversary .adversary-statistics-container { - flex: 1; - margin-right: 24px; - display: flex; - flex-direction: column; - gap: 12px; + flex: 1; + margin-right: 24px; + display: flex; + flex-direction: column; + gap: 12px; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-title { - flex: 0; - white-space: nowrap; - font-weight: bold; + flex: 0; + white-space: nowrap; + font-weight: bold; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-row { - display: flex; - align-items: center; + display: flex; + align-items: center; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-row .statistic-value { - flex: 0; - white-space: nowrap; - margin-left: 4px; + flex: 0; + white-space: nowrap; + margin-left: 4px; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-row .adversary-roll { - border: 0; - width: 16px; - margin-left: 4px; - align-self: baseline; - transition: transform 0.2s; + border: 0; + width: 16px; + margin-left: 4px; + align-self: baseline; + transition: transform 0.2s; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-row .adversary-roll:hover { - transform: rotate(30deg); - filter: drop-shadow(0px 0px 3px red); - cursor: pointer; + transform: rotate(30deg); + filter: drop-shadow(0px 0px 3px red); + cursor: pointer; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-resource-container { - display: flex; - align-items: center; + display: flex; + align-items: center; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-resource-container label { - min-width: 44px; + min-width: 44px; } -.daggerheart.sheet.adversary .adversary-statistics-container .statistic-resource-container .statistic-resource-inner-container { - display: flex; - align-items: center; - flex-wrap: wrap; - gap: 4px; +.daggerheart.sheet.adversary + .adversary-statistics-container + .statistic-resource-container + .statistic-resource-inner-container { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 4px; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-resource-container .resource-title { - align-self: center; - font-weight: bold; + align-self: center; + font-weight: bold; } .daggerheart.sheet.adversary .adversary-statistics-container .statistic-resource-container .statistic-resource-input { - margin: 0; - flex: 0; - min-width: 16px; + margin: 0; + flex: 0; + min-width: 16px; } .daggerheart.sheet.adversary .adversary-statistics-container .attack-container { - border: 1px solid black dotted; + border: 1px solid black dotted; } .daggerheart.sheet.adversary .adversary-statistics-container .experience-row { - display: flex; + display: flex; } .daggerheart.sheet.adversary .adversary-statistics-container .experience-row * { - flex: 0; - white-space: nowrap; + flex: 0; + white-space: nowrap; } .daggerheart.sheet.adversary .adversary-statistics-container .experience-container i { - margin-left: 4px; - cursor: pointer; + margin-left: 4px; + cursor: pointer; } .daggerheart.sheet.adversary .adversary-statistics-container .experience-container i:hover { - filter: drop-shadow(0 0 3px red); + filter: drop-shadow(0 0 3px red); } .daggerheart.sheet.adversary .adversary-statistics-container .experience-chip { - border: 2px solid #708090; - border-radius: 6px; - display: flex; - align-items: center; - padding: 4px; - margin-bottom: 6px; + border: 2px solid #708090; + border-radius: 6px; + display: flex; + align-items: center; + padding: 4px; + margin-bottom: 6px; } .daggerheart.sheet.adversary .adversary-statistics-container .experience-chip .experience-text { - flex: 1; + flex: 1; } .daggerheart.sheet.adversary .adversary-statistics-container .experience-chip .experience-value { - flex: 0; - min-width: 26px; - margin: 0 4px; + flex: 0; + min-width: 26px; + margin: 0 4px; } .daggerheart.sheet.adversary .adversary-statistics-container .experience-chip .experience-button { - flex: 0; - border-radius: 50%; - height: 20px; - width: 20px; - display: flex; - align-items: center; - justify-content: center; - padding: 12px; + flex: 0; + border-radius: 50%; + height: 20px; + width: 20px; + display: flex; + align-items: center; + justify-content: center; + padding: 12px; } .daggerheart.sheet.adversary .adversary-damage-threshold-container input { - min-width: 26px; + min-width: 26px; } .daggerheart.sheet.adversary .adversary-moves-container { - flex: 2.5; + flex: 2.5; } .daggerheart.sheet.adversary .adversary-moves-container .moves-title { - text-decoration: underline; - font-weight: bold; + text-decoration: underline; + font-weight: bold; } .daggerheart.sheet.adversary .adversary-moves-container .move-container { - cursor: pointer; + cursor: pointer; } .daggerheart.sheet.adversary .adversary-moves-container .move-container:hover { - background: #2f4f4f40; + background: #2f4f4f40; } .daggerheart.sheet.adversary .adversary-moves-container .move-container .moves-name { - font-weight: bold; - text-decoration: none; + font-weight: bold; + text-decoration: none; } .daggerheart.sheet.adversary .adversary-moves-container .move-container .move-description p { - margin-top: 0; + margin-top: 0; } .daggerheart.sheet.adversary .adversary-moves-container .moves-edit-container i { - margin-left: 4px; - cursor: pointer; + margin-left: 4px; + cursor: pointer; } .daggerheart.sheet.adversary .adversary-moves-container .moves-edit-container i:hover { - filter: drop-shadow(0 0 3px red); + filter: drop-shadow(0 0 3px red); } .daggerheart.sheet.adversary .chip-container { - display: flex; - align-items: center; - justify-content: space-between; - background: #778899; - padding: 8px; - border: 2px solid black; - border-radius: 6px; + display: flex; + align-items: center; + justify-content: space-between; + background: #778899; + padding: 8px; + border: 2px solid black; + border-radius: 6px; } .daggerheart.sheet.adversary .chip-container:not(:last-child) { - margin-bottom: 8px; + margin-bottom: 8px; } .daggerheart.sheet.adversary .chip-container .chip-inner-container { - display: flex; - align-items: center; + display: flex; + align-items: center; } .daggerheart.sheet.adversary .chip-container .chip-inner-container img { - height: 40px; - width: 40px; - margin-right: 8px; + height: 40px; + width: 40px; + margin-right: 8px; } .daggerheart.sheet.adversary .chip-container .chip-inner-container .chip-title { - font-size: 22px; - font-weight: bold; - font-style: italic; + font-size: 22px; + font-weight: bold; + font-style: italic; } .daggerheart.sheet.adversary .chip-container button { - height: 40px; - width: 40px; - background: white; + height: 40px; + width: 40px; + background: white; } .daggerheart.sheet .title-container { - display: flex; - gap: 8px; + display: flex; + gap: 8px; } .daggerheart.sheet .title-container div { - flex: 1; - align-items: baseline; + flex: 1; + align-items: baseline; } .daggerheart.sheet .editor-form-group { - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; } .daggerheart.sheet .editor-form-group label { - font-weight: bold; - text-align: center; + font-weight: bold; + text-align: center; } .daggerheart.sheet .option-select { - position: absolute; - top: calc(50% - 10px); - right: 8px; - height: 20px; - width: 20px; - border-radius: 50%; - display: flex; - align-items: center; - justify-content: center; - padding: 8px; + position: absolute; + top: calc(50% - 10px); + right: 8px; + height: 20px; + width: 20px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + padding: 8px; } .daggerheart.sheet .option-select.deeper { - right: 32px; + right: 32px; } .daggerheart.sheet .option-select:hover:not(:disabled) { - filter: drop-shadow(0px 0px 3px red); - cursor: pointer; + filter: drop-shadow(0px 0px 3px red); + cursor: pointer; } .daggerheart.sheet .option-select i { - margin: 0; - font-size: 11px; + margin: 0; + font-size: 11px; } .daggerheart.sheet .ability-title { - width: 100%; - display: flex; + width: 100%; + display: flex; } .daggerheart.sheet .ability-title h2 { - flex: 1; + flex: 1; } .daggerheart.sheet .ability-title i { - cursor: pointer; + cursor: pointer; } .daggerheart.sheet .ability-title i:hover { - filter: drop-shadow(0px 0px 3px red); + filter: drop-shadow(0px 0px 3px red); } .daggerheart.sheet .ability-choices { - display: flex; - align-items: center; - flex-wrap: wrap; + display: flex; + align-items: center; + flex-wrap: wrap; } .daggerheart.sheet .ability-chip { - border: 2px solid #708090; - border-radius: 6px; - display: flex; - align-items: center; - padding: 4px; - margin-bottom: 6px; - flex: calc(33% - 4px); - max-width: calc(33% - 4px); + border: 2px solid #708090; + border-radius: 6px; + display: flex; + align-items: center; + padding: 4px; + margin-bottom: 6px; + flex: calc(33% - 4px); + max-width: calc(33% - 4px); } .daggerheart.sheet .ability-chip.selected { - filter: drop-shadow(0px 0px 3px red); + filter: drop-shadow(0px 0px 3px red); } .daggerheart.sheet .ability-chip:nth-of-type(3n-1) { - margin-left: 6px; - margin-right: 6px; + margin-left: 6px; + margin-right: 6px; } .daggerheart.sheet .ability-chip input { - border: 0; + border: 0; } .daggerheart.sheet .ability-chip button { - flex: 0; - border-radius: 50%; - height: 20px; - width: 20px; - display: flex; - align-items: center; - justify-content: center; - margin: 2px 0 2px 4px; - padding: 12px; + flex: 0; + border-radius: 50%; + height: 20px; + width: 20px; + display: flex; + align-items: center; + justify-content: center; + margin: 2px 0 2px 4px; + padding: 12px; } .daggerheart.sheet .ability-chip button i { - margin: 0; + margin: 0; } .daggerheart.sheet .object-select-display { - position: relative; - width: calc(100% - 2px); - background: rgba(0, 0, 0, 0.05); - height: var(--form-field-height); - display: flex; - border: 1px solid #7a7971; - border-radius: 3px; + position: relative; + width: calc(100% - 2px); + background: rgba(0, 0, 0, 0.05); + height: var(--form-field-height); + display: flex; + border: 1px solid #7a7971; + border-radius: 3px; } .daggerheart.sheet .object-select-display .object-select-title { - position: absolute; - left: 4px; - text-align: center; - font-weight: bold; - text-transform: uppercase; + position: absolute; + left: 4px; + text-align: center; + font-weight: bold; + text-transform: uppercase; } .daggerheart.sheet .object-select-display .object-select-text { - align-self: center; + align-self: center; } .daggerheart.sheet .object-select-display .object-select-item { - cursor: pointer; + cursor: pointer; } .daggerheart.sheet .object-select-display .object-select-item:hover { - filter: drop-shadow(0px 0px 3px red); + filter: drop-shadow(0px 0px 3px red); } .daggerheart.sheet .feature-container { - display: flex; - align-items: center; - justify-content: space-between; - background: #778899; - padding: 8px; - border: 2px solid black; - border-radius: 6px; + display: flex; + align-items: center; + justify-content: space-between; + background: #778899; + padding: 8px; + border: 2px solid black; + border-radius: 6px; } .daggerheart.sheet .feature-container:not(:last-child) { - margin-bottom: 8px; + margin-bottom: 8px; } .daggerheart.sheet .feature-container .feature-inner-container { - display: flex; - align-items: center; + display: flex; + align-items: center; } .daggerheart.sheet .feature-container .feature-inner-container img { - height: 40px; - width: 40px; - margin-right: 8px; + height: 40px; + width: 40px; + margin-right: 8px; } .daggerheart.sheet .feature-container .feature-inner-container .feature-title { - font-size: 22px; - font-weight: bold; - font-style: italic; + font-size: 22px; + font-weight: bold; + font-style: italic; } .daggerheart.sheet .feature-container button { - height: 40px; - width: 40px; - background: inherit; - border: 0; + height: 40px; + width: 40px; + background: inherit; + border: 0; } .slider-container { - position: relative; - background: lightslategray; + position: relative; + background: lightslategray; } .slider-container .slider-inner-container { - position: absolute; - top: 1px; - left: -60px; - background-color: inherit; - color: inherit; - border-radius: 30px; - cursor: pointer; - display: flex; - align-items: center; - height: 20px; - width: 40px; - padding: 0 4px; - border: 1px solid black; + position: absolute; + top: 1px; + left: -60px; + background-color: inherit; + color: inherit; + border-radius: 30px; + cursor: pointer; + display: flex; + align-items: center; + height: 20px; + width: 40px; + padding: 0 4px; + border: 1px solid black; } .slider-container .slider-inner-container:hover { - filter: drop-shadow(0 0 3px red); + filter: drop-shadow(0 0 3px red); } .slider-container .slider-inner-container input:checked { - opacity: 0; - width: 0; - height: 0; + opacity: 0; + width: 0; + height: 0; } .slider-container .slider-inner-container input:checked + .slider-icon { - transform: translateX(17px); - transition: 1s; + transform: translateX(17px); + transition: 1s; } .slider-container .slider-inner-container .slider-icon { - position: absolute; - left: 4px; - height: 15px; - width: 15px; - border-radius: 50%; - transition: 1s; - transform: translateX(0); + position: absolute; + left: 4px; + height: 15px; + width: 15px; + border-radius: 50%; + transition: 1s; + transform: translateX(0); } .item-button.checked { - background: green; + background: green; } .item-button .item-icon { - opacity: 0; - transition: opacity 0.2s; + opacity: 0; + transition: opacity 0.2s; } .item-button .item-icon.checked { - opacity: 1; + opacity: 1; } #logo { - content: url(../assets/DaggerheartLogo.webp); - height: 50px; - width: 50px; - position: relative; - left: 25px; + content: url(../assets/DaggerheartLogo.webp); + height: 50px; + width: 50px; + position: relative; + left: 25px; } .daggerheart { - /* Flex */ - /****/ + /* Flex */ + /****/ } .daggerheart .vertical-separator { - border-left: 2px solid black; - height: 56px; - flex: 0; - align-self: center; + border-left: 2px solid black; + height: 56px; + flex: 0; + align-self: center; } .daggerheart .flex-centered { - display: flex; - align-items: center; - justify-content: center; + display: flex; + align-items: center; + justify-content: center; } .daggerheart .flex-col-centered { - display: flex; - flex-direction: column; - align-items: center; + display: flex; + flex-direction: column; + align-items: center; } .daggerheart .flex-spaced { - display: flex; - justify-content: space-between; - align-items: center; - width: 100%; + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; } .daggerheart .flex-min { - display: flex; - flex: 0; + display: flex; + flex: 0; } .daggerheart img[data-edit='img'] { - min-width: 64px; - min-height: 64px; + min-width: 64px; + min-height: 64px; } .daggerheart .editor { - height: 200px; + height: 200px; } .daggerheart button i { - margin: 0; + margin: 0; } .daggerheart .icon-button.spaced { - margin-left: 4px; + margin-left: 4px; } .daggerheart .icon-button.active { - filter: drop-shadow(0 0 3px red); + filter: drop-shadow(0 0 3px red); } .daggerheart .icon-button.active.secondary { - filter: drop-shadow(0 0 3px gold); + filter: drop-shadow(0 0 3px gold); } .daggerheart .icon-button.disabled { - opacity: 0.6; + opacity: 0.6; } .daggerheart .icon-button:hover:not(.disabled) { - cursor: pointer; - filter: drop-shadow(0 0 3px red); + cursor: pointer; + filter: drop-shadow(0 0 3px red); } .daggerheart .icon-button:hover:not(.disabled).secondary { - filter: drop-shadow(0 0 3px gold); + filter: drop-shadow(0 0 3px gold); } #players h3 { - display: flex; - align-items: center; - justify-content: space-between; - flex-wrap: nowrap; + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: nowrap; } #players h3 .players-container { - display: flex; - align-items: center; + display: flex; + align-items: center; } #players h3 .fear-control { - font-size: 10px; + font-size: 10px; } #players h3 .fear-control.disabled { - opacity: 0.4; + opacity: 0.4; } #players h3 .fear-control:hover:not(.disabled) { - cursor: pointer; - filter: drop-shadow(0 0 3px red); + cursor: pointer; + filter: drop-shadow(0 0 3px red); } diff --git a/template.json b/template.json index e66dba4a..7e6c3c67 100644 --- a/template.json +++ b/template.json @@ -37,9 +37,10 @@ "combat": {} }, "ChatMessage": { - "types": ["dualityRoll", "adversaryRoll", "abilityUse"], + "types": ["dualityRoll", "adversaryRoll", "damageRoll", "abilityUse"], "dualityRoll": {}, "adversaryRoll": {}, + "damageRoll": {}, "abilityUse": {} } } diff --git a/templates/chat/adversary-attack-roll.hbs b/templates/chat/adversary-attack-roll.hbs index 8ed8f094..3e805de9 100644 --- a/templates/chat/adversary-attack-roll.hbs +++ b/templates/chat/adversary-attack-roll.hbs @@ -1,22 +1,30 @@ -