diff --git a/lang/en.json b/lang/en.json index 2b355ae0..1096036f 100755 --- a/lang/en.json +++ b/lang/en.json @@ -318,6 +318,7 @@ "DamageReduction": { "armorMarks": "Armor Marks", "armorWithStress": "Spend 1 stress to use an extra mark", + "thresholdImmunities": "Threshold Immunities", "stress": "Stress", "stressReduction": "Reduce By Stress", "title": "Damage Reduction", @@ -952,6 +953,12 @@ "name": "Dice Set" } }, + "RuleChoice": { + "off": "Off", + "offWithToggle": "Off With Toggle", + "on": "On", + "onWithToggle": "On With Toggle" + }, "SelectAction": { "selectType": "Select Action Type", "selectAction": "Action Selection" @@ -1662,7 +1669,8 @@ "major": "Major", "severe": "Severe", "majorThreshold": "Major Damage Threshold", - "severeThreshold": "Severe Damage Threshold" + "severeThreshold": "Severe Damage Threshold", + "with": "{threshold} Damage Threshold" }, "Dice": { "single": "Die", @@ -1772,6 +1780,10 @@ "hint": "If this value is set you can use up to that much stress to spend additional Armor Marks beyond your normal maximum." }, "stress": { + "any": { + "label": "Stress Damage Reduction: Any", + "hint": "The cost in stress you can pay to reduce incoming damage down one threshold" + }, "severe": { "label": "Stress Damage Reduction: Severe", "hint": "The cost in stress you can pay to reduce severe damage down to major." @@ -1850,6 +1862,7 @@ }, "actorName": "Actor Name", "amount": "Amount", + "any": "Any", "armorScore": "Armor Score", "activeEffects": "Active Effects", "armorSlots": "Armor Slots", @@ -2059,6 +2072,10 @@ "hint": "Automatically increase the GM's fear pool on a fear duality roll result." }, "FIELDS": { + "damageReductionRulesDefault": { + "label": "Damage Reduction Rules Default", + "hint": "Wether using armor and reductions has rules on by default" + }, "hopeFear": { "label": "Hope & Fear", "gm": { "label": "GM" }, @@ -2312,7 +2329,9 @@ "appliedEvenIfSuccessful": "Applied even if save succeeded", "diceIsRerolled": "The dice has been rerolled (x{times})", "pendingSaves": "Pending Reaction Rolls", - "openSheetSettings": "Open Settings" + "openSheetSettings": "Open Settings", + "rulesOn": "Rules On", + "rulesOff": "Rules Off" } } } diff --git a/module/applications/dialogs/damageReductionDialog.mjs b/module/applications/dialogs/damageReductionDialog.mjs index e0841324..d8541396 100644 --- a/module/applications/dialogs/damageReductionDialog.mjs +++ b/module/applications/dialogs/damageReductionDialog.mjs @@ -10,14 +10,18 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap this.reject = reject; this.actor = actor; this.damage = damage; + this.rulesDefault = game.settings.get( + CONFIG.DH.id, + CONFIG.DH.SETTINGS.gameSettings.Automation + ).damageReductionRulesDefault; + + this.rulesOn = [CONFIG.DH.GENERAL.ruleChoice.on.id, CONFIG.DH.GENERAL.ruleChoice.onWithToggle.id].includes( + this.rulesDefault + ); const canApplyArmor = damageType.every(t => actor.system.armorApplicableDamageTypes[t] === true); - const maxArmorMarks = canApplyArmor - ? Math.min( - actor.system.armorScore - actor.system.armor.system.marks.value, - actor.system.rules.damageReduction.maxArmorMarked.value - ) - : 0; + const availableArmor = actor.system.armorScore - actor.system.armor.system.marks.value; + const maxArmorMarks = canApplyArmor ? availableArmor : 0; const armor = [...Array(maxArmorMarks).keys()].reduce((acc, _) => { acc[foundry.utils.randomID()] = { selected: false }; @@ -42,6 +46,7 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap acc[damage] = { cost: dr.cost, selected: false, + any: key === 'any', from: getDamageLabel(damage), to: getDamageLabel(damage - 1) }; @@ -51,16 +56,28 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap }, null ); + + this.thresholdImmunities = Object.keys(actor.system.rules.damageReduction.thresholdImmunities).reduce( + (acc, key) => { + if (actor.system.rules.damageReduction.thresholdImmunities[key]) + acc[damageKeyToNumber(key)] = game.i18n.format(`DAGGERHEART.GENERAL.DamageThresholds.with`, { + threshold: game.i18n.localize(`DAGGERHEART.GENERAL.DamageThresholds.${key}`) + }); + return acc; + }, + {} + ); } static DEFAULT_OPTIONS = { tag: 'form', classes: ['daggerheart', 'views', 'damage-reduction'], position: { - width: 240, + width: 280, height: 'auto' }, actions: { + toggleRules: this.toggleRules, setMarks: this.setMarks, useStressReduction: this.useStressReduction, takeDamage: this.takeDamage @@ -89,6 +106,12 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap async _prepareContext(_options) { const context = await super._prepareContext(_options); + context.rulesOn = this.rulesOn; + context.rulesToggleable = [ + CONFIG.DH.GENERAL.ruleChoice.onWithToggle.id, + CONFIG.DH.GENERAL.ruleChoice.offWithToggle.id + ].includes(this.rulesDefault); + context.thresholdImmunities = this.thresholdImmunities; const { selectedArmorMarks, selectedStressMarks, stressReductions, currentMarks, currentDamage } = this.getDamageInfo(); @@ -110,12 +133,22 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap } : null; - context.marks = this.marks; + const maxArmor = this.actor.system.rules.damageReduction.maxArmorMarked.value; + context.marks = { + armor: Object.keys(this.marks.armor).reduce((acc, key, index) => { + const mark = this.marks.armor[key]; + if (!this.rulesOn || index + 1 <= maxArmor) acc[key] = mark; + + return acc; + }, {}), + stress: this.marks.stress + }; context.availableStressReductions = this.availableStressReductions; context.damage = getDamageLabel(this.damage); context.reducedDamage = currentDamage !== this.damage ? getDamageLabel(currentDamage) : null; context.currentDamage = context.reducedDamage ?? context.damage; + context.currentDamageNr = currentDamage; return context; } @@ -136,22 +169,48 @@ export default class DamageReductionDialog extends HandlebarsApplicationMixin(Ap const armorMarkReduction = selectedArmorMarks.length * this.actor.system.rules.damageReduction.increasePerArmorMark; - const currentDamage = this.damage - armorMarkReduction - selectedStressMarks.length - stressReductions.length; + let currentDamage = Math.max( + this.damage - armorMarkReduction - selectedStressMarks.length - stressReductions.length, + 0 + ); + + if (this.thresholdImmunities[currentDamage]) currentDamage = 0; return { selectedArmorMarks, selectedStressMarks, stressReductions, currentMarks, currentDamage }; }; + static toggleRules() { + this.rulesOn = !this.rulesOn; + + const maxArmor = this.actor.system.rules.damageReduction.maxArmorMarked.value; + this.marks = { + armor: Object.keys(this.marks.armor).reduce((acc, key, index) => { + const mark = this.marks.armor[key]; + const keepSelectValue = !this.rulesOn || index + 1 <= maxArmor; + acc[key] = { ...mark, selected: keepSelectValue ? mark.selected : false }; + + return acc; + }, {}), + stress: this.marks.stress + }; + + this.render(); + } + static setMarks(_, target) { const currentMark = this.marks[target.dataset.type][target.dataset.key]; const { selectedStressMarks, stressReductions, currentMarks, currentDamage } = this.getDamageInfo(); + if (!currentMark.selected && currentDamage === 0) { ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.damageAlreadyNone')); return; } - if (!currentMark.selected && currentMarks === this.actor.system.armorScore) { - ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noAvailableArmorMarks')); - return; + if (this.rulesOn) { + if (!currentMark.selected && currentMarks === this.actor.system.armorScore) { + ui.notifications.info(game.i18n.localize('DAGGERHEART.UI.Notifications.noAvailableArmorMarks')); + return; + } } if (currentMark.selected) { diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index c41f7ab5..e5b624f8 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -2,6 +2,25 @@ export const compendiumJournals = { welcome: 'Compendium.daggerheart.journals.JournalEntry.g7NhKvwltwafmMyR' }; +export const ruleChoice = { + on: { + id: 'on', + label: 'DAGGERHEART.CONFIG.RuleChoice.on' + }, + of: { + id: 'off', + label: 'DAGGERHEART.CONFIG.RuleChoice.off' + }, + onWithToggle: { + id: 'onWithToggle', + label: 'DAGGERHEART.CONFIG.RuleChoice.onWithToggle' + }, + offWithToggle: { + id: 'offWithToggle', + label: 'DAGGERHEART.CONFIG.RuleChoice.offWithToggle' + } +}; + export const range = { self: { id: 'self', diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index a924f956..7cb51d33 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -240,7 +240,8 @@ export default class DhCharacter extends BaseDataActor { stressDamageReduction: new fields.SchemaField({ severe: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.severe'), major: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.major'), - minor: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.minor') + minor: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.minor'), + any: stressDamageReductionRule('DAGGERHEART.GENERAL.Rules.damageReduction.stress.any') }), increasePerArmorMark: new fields.NumberField({ integer: true, @@ -249,7 +250,11 @@ export default class DhCharacter extends BaseDataActor { hint: 'DAGGERHEART.GENERAL.Rules.damageReduction.increasePerArmorMark.hint' }), magical: new fields.BooleanField({ initial: false }), - physical: new fields.BooleanField({ initial: false }) + physical: new fields.BooleanField({ initial: false }), + thresholdImmunities: new fields.SchemaField({ + minor: new fields.BooleanField({ initial: false }) + }), + disabledArmor: new fields.BooleanField({ intial: false }) }), attack: new fields.SchemaField({ damage: new fields.SchemaField({ diff --git a/module/data/countdowns.mjs b/module/data/countdowns.mjs index 34e8b790..62036c38 100644 --- a/module/data/countdowns.mjs +++ b/module/data/countdowns.mjs @@ -103,7 +103,7 @@ class DhCountdown extends foundry.abstract.DataModel { required: true, choices: CONFIG.DH.GENERAL.countdownTypes, initial: CONFIG.DH.GENERAL.countdownTypes.custom.id, - label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.type.value.label' + label: 'DAGGERHEART.GENERAL.type' }), label: new fields.StringField({ label: 'DAGGERHEART.APPLICATIONS.Countdown.FIELDS.countdowns.element.progress.type.label.label' diff --git a/module/data/settings/Automation.mjs b/module/data/settings/Automation.mjs index 66e685d0..84b7469c 100644 --- a/module/data/settings/Automation.mjs +++ b/module/data/settings/Automation.mjs @@ -34,6 +34,12 @@ export default class DhAutomation extends foundry.abstract.DataModel { initial: true, label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.effects.rangeDependent.label' }) + }), + damageReductionRulesDefault: new fields.StringField({ + required: true, + choices: CONFIG.DH.GENERAL.ruleChoice, + initial: CONFIG.DH.GENERAL.ruleChoice.onWithToggle.id, + label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.damageReductionRulesDefault.label' }) }; } diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index 9a3612f8..156e9f31 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -464,14 +464,17 @@ export default class DhpActor extends Actor { } #canReduceDamage(hpDamage, type) { + const { stressDamageReduction, disabledArmor } = this.system.rules.damageReduction; + if (disabledArmor) return false; + const availableStress = this.system.resources.stress.max - this.system.resources.stress.value; const canUseArmor = this.system.armor && this.system.armor.system.marks.value < this.system.armorScore && type.every(t => this.system.armorApplicableDamageTypes[t] === true); - const canUseStress = Object.keys(this.system.rules.damageReduction.stressDamageReduction).reduce((acc, x) => { - const rule = this.system.rules.damageReduction.stressDamageReduction[x]; + const canUseStress = Object.keys(stressDamageReduction).reduce((acc, x) => { + const rule = stressDamageReduction[x]; if (damageKeyToNumber(x) <= hpDamage) return acc || (rule.enabled && availableStress >= rule.cost); return acc; }, false); diff --git a/module/documents/item.mjs b/module/documents/item.mjs index ffafa401..5c7f7dfc 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -112,9 +112,9 @@ export default class DHItem extends foundry.documents.Item { * Generate a localized label array for this item. * @returns {(string | { value: string, icons: string[] })[]} An array of localized strings and damage label objects. */ - getLabels() { + _getLabels() { const labels = []; - if (this.system.getLabels) labels.push(...this.system.getLabels()); + if (this.system._getLabels) labels.push(...this.system._getLabels()); return labels; } diff --git a/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json b/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json index ec1b1c01..1624957e 100644 --- a/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json +++ b/src/packs/ancestries/feature_Endurance_tXWEMdLXafUSZTbK.json @@ -28,7 +28,7 @@ }, "changes": [ { - "key": "system.resources.hitPoints.value", + "key": "system.resources.hitPoints.max", "mode": 2, "value": "1", "priority": null @@ -59,7 +59,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753996768847, - "modifiedTime": 1753999765864, + "modifiedTime": 1754310930764, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!tXWEMdLXafUSZTbK.db8W2Q0Qty84XV0x" diff --git a/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json b/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json index 434f9138..81fd4b84 100644 --- a/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json +++ b/src/packs/ancestries/feature_High_Stamina_HMXNJZ7ynzajR2KT.json @@ -28,7 +28,7 @@ }, "changes": [ { - "key": "system.resources.stress.value", + "key": "system.resources.stress.max", "mode": 2, "value": "1", "priority": null @@ -59,7 +59,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753997348303, - "modifiedTime": 1753999779490, + "modifiedTime": 1754310946414, "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!HMXNJZ7ynzajR2KT.Xl3TsKUJcl6vi1ly" diff --git a/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json b/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json index 3fb1299a..2177b496 100644 --- a/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json +++ b/src/packs/domains/domainCard_A_Soldier_s_Bond_Y08dLFuPXsgeRrHi.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "o7t2fsAmRxKLoHrO", "system": { - "description": "
Once per
Once per long rest, when you compliment someone or ask them about something they’re good at, you can both gain 3 Hope.
", "domain": "blade", "recallCost": 1, "level": 2, @@ -14,7 +14,7 @@ "type": "healing", "_id": "7Tcn3wYxEIGEfbJ5", "systemPath": "actions", - "description": "", + "description": "Once per long rest, when you compliment someone or ask them about something they’re good at, you can both gain 3 Hope.
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -89,8 +89,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784407, - "modifiedTime": 1754244754496, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304308103, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "Y08dLFuPXsgeRrHi", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json index 14423eda..e3c74f7e 100644 --- a/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json +++ b/src/packs/domains/domainCard_Battle_Cry_Ef1JsUG50LIoKx2F.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "me7ywrVh38j6T8Sm", "system": { - "description": "Once per
Once per long rest, while you’re charging into danger, you can muster a rousing call that inspires your allies. All allies who can hear you each clear a Stress and gain a Hope. Additionally, your allies gain advantage on attack rolls until you or an ally rolls a failure with Fear.
", "domain": "blade", "recallCost": 2, "level": 8, @@ -14,7 +14,7 @@ "type": "healing", "_id": "jakoB9n8KSgvYVZv", "systemPath": "actions", - "description": "", + "description": "Once per long rest, while you’re charging into danger, you can muster a rousing call that inspires your allies. All allies who can hear you each clear a Stress and gain a Hope. Additionally, your allies gain advantage on attack rolls until you or an ally rolls a failure with Fear.
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -119,8 +119,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784413, - "modifiedTime": 1754247384173, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304622040, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "Ef1JsUG50LIoKx2F", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json b/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json index 39af16dd..ccd46389 100644 --- a/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json +++ b/src/packs/domains/domainCard_Battle_Hardened_NeEOghgfyDUBTwBG.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "EiP5dLozOFZKIeWN", "system": { - "description": "Once per
Once per long rest when you would make a Death Move, you can spend a Hope to clear a Hit Point instead.
", "domain": "blade", "recallCost": 2, "level": 6, @@ -14,7 +14,7 @@ "type": "healing", "_id": "iucXKML1P8Q7nmcp", "systemPath": "actions", - "description": "", + "description": "Once per long rest when you would make a Death Move, you can spend a Hope to clear a Hit Point instead.
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -89,8 +89,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784415, - "modifiedTime": 1754246132892, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304541810, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "NeEOghgfyDUBTwBG", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json b/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json index cd945918..50cabbea 100644 --- a/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json +++ b/src/packs/domains/domainCard_Battle_Monster_P0ezScyQ5t8ruByf.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "7pKKYgRQAKlQAksV", "system": { - "description": "When you make a successful attack against an adversary, you can mark 4
When you make a successful attack against an adversary, you can mark 4 Stress to force the target to mark a number of Hit Points equal to the number of Hit Points you currently have marked instead of rolling for damage.
", "domain": "blade", "recallCost": 0, "level": 10, @@ -14,10 +14,19 @@ "type": "effect", "_id": "lekCIrTCQ2FhwGd1", "systemPath": "actions", - "description": "", + "description": "When you make a successful attack against an adversary, you can mark 4 Stress to force the target to mark a number of Hit Points equal to the number of Hit Points you currently have marked instead of rolling for damage.
", "chatDisplay": true, "actionType": "action", - "cost": [], + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 4, + "keyIsID": false, + "step": null, + "consumeOnSuccess": false + } + ], "uses": { "value": null, "max": "", @@ -44,8 +53,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784414, - "modifiedTime": 1754248024583, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304799641, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "P0ezScyQ5t8ruByf", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json b/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json index 56166bfe..82a13070 100644 --- a/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json +++ b/src/packs/domains/domainCard_Blade_Touched_Gb5bqpFSBiuBxUix.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "HAGbPLHwm0UozDeG", "system": { - "description": "When 4 or more of the domain cards in your
When 4 or more of the domain cards in your loadout are from the Blade domain, gain the following benefits:
+2 bonus to your attack rolls
+4 bonus to your Severe damage threshold
When you
You can’t choose the same option more than once.
", + "description": "When you critically succeed on an attack, you can spend up to 3 Hope and choose one of the following options for each Hope spent:
You clear a Hit Point.
You clear an Armor Slot.
You can’t choose the same option more than once.
", "domain": "blade", "recallCost": 1, "level": 5, @@ -14,7 +14,7 @@ "type": "healing", "_id": "CbKKgf1TboGPZitf", "systemPath": "actions", - "description": "", + "description": "When you critically succeed on an attack, you can spend up to 3 Hope and choose one of the following options for each Hope spent:
You clear a Hit Point.
You clear an Armor Slot.
You can’t choose the same option more than once.
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -239,8 +239,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784433, - "modifiedTime": 1754245291254, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304490701, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "rnejRbUQsNGX1GMC", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json b/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json index 0164f390..62b40269 100644 --- a/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json +++ b/src/packs/domains/domainCard_Deadly_Focus_xxZOXC4tiZQ6kg1e.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "yalAnCU3SndrYImF", "system": { - "description": "Once per rest, you can apply all your focus toward a target of your choice. Until you attack another creature, you defeat the target, or the battle ends, gain a +1 bonus to your
Once per rest, you can apply all your focus toward a target of your choice. Until you attack another creature, you defeat the target, or the battle ends, gain a +1 bonus to your Proficiency.
", "domain": "blade", "recallCost": 2, "level": 4, @@ -14,14 +14,14 @@ "type": "effect", "_id": "xdNbP1ggDxpXZ1HP", "systemPath": "actions", - "description": "", + "description": "Once per rest, you can apply all your focus toward a target of your choice. Until you attack another creature, you defeat the target, or the battle ends, gain a +1 bonus to your Proficiency.
", "chatDisplay": true, "actionType": "action", "cost": [], "uses": { "value": null, - "max": "", - "recovery": null, + "max": "1", + "recovery": "shortRest", "consumeOnSuccess": false }, "effects": [ @@ -49,8 +49,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784443, - "modifiedTime": 1754244951595, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304260916, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "xxZOXC4tiZQ6kg1e", "sort": 3400000, @@ -59,7 +59,7 @@ "name": "Deadly Focus", "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png", "origin": "Compendium.daggerheart.domains.Item.xxZOXC4tiZQ6kg1e", - "transfer": false, + "transfer": true, "_id": "6sR46Hd554DiLHy4", "type": "base", "system": { @@ -78,7 +78,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -101,8 +101,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754244951545, - "modifiedTime": 1754244958779, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304242570, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!xxZOXC4tiZQ6kg1e.6sR46Hd554DiLHy4" } diff --git a/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json b/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json index 8dc2eb6f..b48a2e09 100644 --- a/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json +++ b/src/packs/domains/domainCard_Fortified_Armor_oVa49lI107eZILZr.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "yalAnCU3SndrYImF", "system": { - "description": "While you are wearing
While you are wearing armor, gain a +2 bonus to your damage thresholds.
", "domain": "blade", "recallCost": 0, "level": 4, @@ -19,8 +19,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784458, - "modifiedTime": 1754244852896, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304268859, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "oVa49lI107eZILZr", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json b/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json index d7523ef5..d8718735 100644 --- a/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json +++ b/src/packs/domains/domainCard_Frenzy_MMl7abdGRLl7TJLO.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "me7ywrVh38j6T8Sm", "system": { - "description": "Once per
While Frenzied, you can’t use
Once per long rest, you can go into a Frenzy until there are no more adversaries within sight.
While Frenzied, you can’t use Armor Slots, and you gain a +10 bonus to your damage rolls and a +8 bonus to your Severe damage threshold.
", "domain": "blade", "recallCost": 3, "level": 8, @@ -49,8 +49,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784459, - "modifiedTime": 1754247528112, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304635322, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "MMl7abdGRLl7TJLO", "sort": 3400000, @@ -71,12 +71,6 @@ } }, "changes": [ - { - "key": "system.bonuses.damage.primaryWeapon.bonus", - "mode": 2, - "value": "10", - "priority": null - }, { "key": "system.bonuses.damage.physical.bonus", "mode": 2, @@ -84,7 +78,7 @@ "priority": null }, { - "key": "system.bonuses.damage.secondaryWeapon.bonus", + "key": "system.bonuses.damage.magical.bonus", "mode": 2, "value": "10", "priority": null @@ -94,6 +88,12 @@ "mode": 2, "value": "8", "priority": null + }, + { + "key": "system.rules.damageReduction.disabledArmor", + "mode": 5, + "value": "1", + "priority": null } ], "disabled": false, @@ -106,7 +106,7 @@ "startRound": null, "startTurn": null }, - "description": "", + "description": "Once per long rest, you can go into a Frenzy until there are no more adversaries within sight.
While Frenzied, you can’t use Armor Slots, and you gain a +10 bonus to your damage rolls and a +8 bonus to your Severe damage threshold.
", "tint": "#ffffff", "statuses": [], "sort": 0, @@ -119,8 +119,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754247528086, - "modifiedTime": 1754247639266, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304880762, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!MMl7abdGRLl7TJLO.1POoAgObPOWDpUco" } diff --git a/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json b/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json index a9fb5929..a2e1366b 100644 --- a/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json +++ b/src/packs/domains/domainCard_Get_Back_Up_BFWN2cObMdlk9uVz.json @@ -4,45 +4,12 @@ "type": "domainCard", "folder": "9Xc6KzNyjDtTGZkp", "system": { - "description": "When you take
When you take Severe damage, you can mark a Stress to reduce the severity by one threshold.
", "domain": "blade", "recallCost": 1, "level": 1, "type": "ability", - "actions": { - "cXjI5GBpJSd7OtZY": { - "type": "effect", - "_id": "cXjI5GBpJSd7OtZY", - "systemPath": "actions", - "description": "", - "chatDisplay": true, - "actionType": "action", - "cost": [ - { - "scalable": false, - "key": "stress", - "value": 1, - "keyIsID": false, - "step": null, - "consumeOnSuccess": false - } - ], - "uses": { - "value": null, - "max": "", - "recovery": null, - "consumeOnSuccess": false - }, - "effects": [], - "target": { - "type": "any", - "amount": null - }, - "name": "Mark a Stress", - "img": "icons/magic/control/silhouette-aura-energy.webp", - "range": "" - } - } + "actions": {} }, "flags": {}, "_stats": { @@ -53,12 +20,70 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784460, - "modifiedTime": 1754244495256, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304045807, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "BFWN2cObMdlk9uVz", "sort": 3400000, - "effects": [], + "effects": [ + { + "name": "Get Back Up", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "_id": "aV3KUHtXXR86PRMh", + "img": "icons/magic/control/silhouette-aura-energy.webp", + "changes": [ + { + "key": "system.rules.damageReduction.stressDamageReduction.severe.cost", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.rules.damageReduction.stressDamageReduction.severe.enabled", + "mode": 5, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "When you take Severe damage, you can mark a Stress to reduce the severity by one threshold.
", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754304030600, + "modifiedTime": 1754304076699, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!items.effects!BFWN2cObMdlk9uVz.aV3KUHtXXR86PRMh" + } + ], "ownership": { "default": 0 }, diff --git a/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json b/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json index f0264441..b01a8e00 100644 --- a/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json +++ b/src/packs/domains/domainCard_Glancing_Blow_nCNCqSH7UgW4O3To.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "HAGbPLHwm0UozDeG", "system": { - "description": "When you fail an attack, you can mark a
When you fail an attack, you can mark a Stress to deal weapon damage using half your Proficiency.
", "domain": "blade", "recallCost": 1, "level": 7, @@ -14,7 +14,7 @@ "type": "damage", "_id": "DUojhK0OtvsotiE6", "systemPath": "actions", - "description": "", + "description": "When you fail an attack, you can mark a Stress to deal weapon damage using half your Proficiency.
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -57,8 +57,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784462, - "modifiedTime": 1754247275114, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304608102, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "nCNCqSH7UgW4O3To", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json b/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json index fab18a49..6c8de699 100644 --- a/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json +++ b/src/packs/domains/domainCard_Gore_and_Glory_3zvjgZ5Od343wHzx.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "QYdeGsmVYIF34kZR", "system": { - "description": "When you
Additionally, when you deal enough damage to defeat an enemy, gain a Hope or clear a Stress.
", + "description": "When you critically succeed on a weapon attack, gain an additional Hope or clear an additional Stress.
Additionally, when you deal enough damage to defeat an enemy, gain a Hope or clear a Stress.
", "domain": "blade", "recallCost": 2, "level": 9, @@ -14,7 +14,7 @@ "type": "healing", "_id": "crvDbD8V8linpzeg", "systemPath": "actions", - "description": "", + "description": "When you critically succeed on a weapon attack, gain an additional Hope or clear an additional Stress.
Additionally, when you deal enough damage to defeat an enemy, gain a Hope or clear a Stress.
", "chatDisplay": true, "actionType": "action", "cost": [], @@ -50,31 +50,6 @@ } }, "type": [] - }, - { - "value": { - "custom": { - "enabled": true, - "formula": "1" - }, - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null - }, - "applyTo": "hope", - "base": false, - "resultBased": false, - "valueAlt": { - "multiplier": "prof", - "flatMultiplier": 1, - "dice": "d6", - "bonus": null, - "custom": { - "enabled": false - } - }, - "type": [] } ], "includeBase": false @@ -99,9 +74,77 @@ }, "useDefault": false }, - "name": "Gain Hope & Clear Stress", + "name": "Clear Stress", "img": "icons/magic/control/buff-flight-wings-runes-purple.webp", "range": "" + }, + "r7MFU8khXqsEpx16": { + "type": "healing", + "_id": "r7MFU8khXqsEpx16", + "systemPath": "actions", + "description": "When you critically succeed on a weapon attack, gain an additional Hope or clear an additional Stress.
Additionally, when you deal enough damage to defeat an enemy, gain a Hope or clear a Stress.
", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null, + "consumeOnSuccess": false + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hope", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "self", + "amount": null + }, + "effects": [], + "roll": { + "type": null, + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "name": "Gain Hope", + "img": "icons/magic/holy/barrier-shield-winged-blue.webp", + "range": "" } } }, @@ -114,8 +157,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784464, - "modifiedTime": 1754247713267, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304753469, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "3zvjgZ5Od343wHzx", "sort": 3400000, diff --git a/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json b/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json index 1109dcdd..a7276bba 100644 --- a/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json +++ b/src/packs/domains/domainCard_On_the_Brink_zbxPl81kbWEegKQN.json @@ -24,7 +24,59 @@ }, "_id": "zbxPl81kbWEegKQN", "sort": 3400000, - "effects": [], + "effects": [ + { + "name": "On The Brink", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "_id": "UJTsJlnhi5Zi0XQ2", + "img": "icons/magic/life/heart-cross-blue.webp", + "changes": [ + { + "key": "system.rules.damageReduction.thresholdImmunities.minor", + "mode": 5, + "value": "1", + "priority": null + } + ], + "disabled": true, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "When you have 2 or fewer Hit Points unmarked, you don’t take Minor damage.
", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754303484332, + "modifiedTime": 1754303570504, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!items.effects!zbxPl81kbWEegKQN.UJTsJlnhi5Zi0XQ2" + } + ], "ownership": { "default": 0 }, diff --git a/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json b/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json index 425dd8b9..0d924ef2 100644 --- a/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json +++ b/src/packs/domains/domainCard_Onslaught_I7pNsQ9Yx6mRJX4V.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "7pKKYgRQAKlQAksV", "system": { - "description": "When you successfully make an attack with your weapon, you never deal damage beneath a target’s
Additionally, when a creature within your weapon’s range deals damage to an ally with an attack that doesn’t include you, you can mark a
When you successfully make an attack with your weapon, you never deal damage beneath a target’s Major damage threshold (the target always marks a minimum of 2 Hit Points).
Additionally, when a creature within your weapon’s range deals damage to an ally with an attack that doesn’t include you, you can mark a Stress to force them to make a Reaction Roll (15). On a failure, the target must mark a Hit Point.
", "domain": "blade", "recallCost": 3, "level": 10, @@ -14,7 +14,7 @@ "type": "damage", "_id": "MxaqNvY9IfWnFe5P", "systemPath": "actions", - "description": "", + "description": "When you successfully make an attack with your weapon, you never deal damage beneath a target’s Major damage threshold (the target always marks a minimum of 2 Hit Points).
Additionally, when a creature within your weapon’s range deals damage to an ally with an attack that doesn’t include you, you can mark a Stress to force them to make a Reaction Roll (15). On a failure, the target must mark a Hit Point.
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -57,8 +57,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784490, - "modifiedTime": 1754248295075, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304817948, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "I7pNsQ9Yx6mRJX4V", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json b/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json index 7fa82556..c79bd98a 100644 --- a/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json +++ b/src/packs/domains/domainCard_Rage_Up_GRL0cvs96vrTDckZ.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "EiP5dLozOFZKIeWN", "system": { - "description": "Before you make an attack, you can mark a
You can Rage Up twice per attack.
", + "description": "Before you make an attack, you can mark a Stress to gain a bonus to your damage roll equal to twice your Strength.
You can Rage Up twice per attack.
", "domain": "blade", "recallCost": 1, "level": 6, @@ -95,8 +95,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784496, - "modifiedTime": 1754246820890, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304556054, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "GRL0cvs96vrTDckZ", "sort": 3400000, @@ -105,7 +105,7 @@ "name": "Rage Up (1)", "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png", "origin": "Compendium.daggerheart.domains.Item.GRL0cvs96vrTDckZ", - "transfer": false, + "transfer": true, "_id": "bq1MhcmoP6Wo5CXF", "type": "base", "system": { @@ -124,7 +124,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -147,8 +147,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754246159246, - "modifiedTime": 1754246767854, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304575352, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!GRL0cvs96vrTDckZ.bq1MhcmoP6Wo5CXF" }, @@ -156,7 +156,7 @@ "name": "Rage Up (2)", "img": "systems/daggerheart/assets/icons/domains/domain-card/blade.png", "origin": "Compendium.daggerheart.domains.Item.GRL0cvs96vrTDckZ", - "transfer": false, + "transfer": true, "_id": "t6SIjQxB6UBUJ98f", "type": "base", "system": { @@ -175,7 +175,7 @@ "priority": null } ], - "disabled": false, + "disabled": true, "duration": { "startTime": null, "combat": null, @@ -198,8 +198,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1754246675511, - "modifiedTime": 1754246707418, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304583724, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!GRL0cvs96vrTDckZ.t6SIjQxB6UBUJ98f" } diff --git a/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json b/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json index e1511db6..201005a1 100644 --- a/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json +++ b/src/packs/domains/domainCard_Reaper_s_Strike_MCgNRlh0s5XUPCfl.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "QYdeGsmVYIF34kZR", "system": { - "description": "Once per
Once per long rest, spend a Hope to make an attack roll. The GM tells you which targets within range it would succeed against. Choose one of these targets and force them to mark 5 Hit Points.
", "domain": "blade", "recallCost": 3, "level": 9, @@ -14,7 +14,7 @@ "type": "attack", "_id": "bFW8Qgv6fUswbA6s", "systemPath": "actions", - "description": "", + "description": "Once per long rest, spend a Hope to make an attack roll. The GM tells you which targets within range it would succeed against. Choose one of these targets and force them to mark 5 Hit Points.
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -77,8 +77,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784498, - "modifiedTime": 1754247964921, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304768446, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "MCgNRlh0s5XUPCfl", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json b/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json index 77b90825..7e6d927a 100644 --- a/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json +++ b/src/packs/domains/domainCard_Reckless_2ooUo2yoilGifY81.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "o7t2fsAmRxKLoHrO", "system": { - "description": "Mark a
Mark a Stress to gain advantage on an attack.
", "domain": "blade", "recallCost": 1, "level": 2, @@ -14,7 +14,7 @@ "type": "effect", "_id": "1vOYZjiUbRBmLcVr", "systemPath": "actions", - "description": "", + "description": "Mark a Stress to gain advantage on an attack.
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -53,8 +53,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784500, - "modifiedTime": 1754244790951, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304322191, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "2ooUo2yoilGifY81", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json b/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json index 32e5b0a6..5ca6fc07 100644 --- a/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json +++ b/src/packs/domains/domainCard_Scramble_5bBU9jWHOuOY12lR.json @@ -4,11 +4,36 @@ "type": "domainCard", "folder": "wWL9mV6i2EGX5xHS", "system": { - "description": "Once per rest, when a creature within
Once per rest, when a creature within Melee range would deal damage to you, you can avoid the attack and safely move out of Melee range of the enemy.
", "domain": "blade", "recallCost": 1, "level": 3, - "type": "ability" + "type": "ability", + "actions": { + "lcEmS1XXO5wH54cQ": { + "type": "effect", + "_id": "lcEmS1XXO5wH54cQ", + "systemPath": "actions", + "description": "Once per rest, when a creature within Melee range would deal damage to you, you can avoid the attack and safely move out of Melee range of the enemy.
", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "1", + "recovery": "shortRest", + "consumeOnSuccess": false + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Avoid", + "img": "icons/skills/movement/feet-winged-boots-brown.webp", + "range": "melee" + } + } }, "flags": {}, "_stats": { @@ -19,8 +44,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784509, - "modifiedTime": 1754244800614, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304188850, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "5bBU9jWHOuOY12lR", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json index 2d5ed024..4a6d5a74 100644 --- a/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json +++ b/src/packs/domains/domainCard_Shrug_It_Off_JwfhtgmmuRxg4zhI.json @@ -81,7 +81,65 @@ }, "_id": "JwfhtgmmuRxg4zhI", "sort": 3400000, - "effects": [], + "effects": [ + { + "name": "Shrug It Off", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "_id": "5DTQDVU8Jy5Nnp5V", + "img": "icons/magic/defensive/shield-barrier-deflect-teal.webp", + "changes": [ + { + "key": "system.rules.damageReduction.stressDamageReduction.any.cost", + "mode": 5, + "value": "1", + "priority": null + }, + { + "key": "system.rules.damageReduction.stressDamageReduction.any.enabled", + "mode": 5, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "When you would take damage, you can mark a Stress to reduce the severity of the damage by one threshold. When you do, roll a d6. On a result of 3 or lower, place this card in your vault.
", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754306645903, + "modifiedTime": 1754306703368, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!items.effects!JwfhtgmmuRxg4zhI.5DTQDVU8Jy5Nnp5V" + } + ], "ownership": { "default": 0 }, diff --git a/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json b/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json index 2090343a..c8134c0c 100644 --- a/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json +++ b/src/packs/domains/domainCard_Versatile_Fighter_wQ53ImDswEHv5SGQ.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "wWL9mV6i2EGX5xHS", "system": { - "description": "You can use a different
When you deal damage, you can mark a
You can use a different character trait for an equipped weapon, rather than the trait the weapon calls for.
When you deal damage, you can mark a Stress to use the maximum result of one of your damage dice instead of rolling it.
", "domain": "blade", "recallCost": 1, "level": 3, @@ -14,7 +14,7 @@ "type": "effect", "_id": "XAaygVE635axvBX7", "systemPath": "actions", - "description": "", + "description": "You can use a different character trait for an equipped weapon, rather than the trait the weapon calls for.
When you deal damage, you can mark a Stress to use the maximum result of one of your damage dice instead of rolling it.
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -53,8 +53,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784541, - "modifiedTime": 1754244901236, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304293769, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "wQ53ImDswEHv5SGQ", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json b/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json index be4a1dbe..3e41ae1a 100644 --- a/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json +++ b/src/packs/domains/domainCard_Vitality_sWUlSPOJEaXyQLCj.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "Emnx4o1DWGTVKoAg", "system": { - "description": "When you choose this card, permanently gain two of the following benefits:
One Stress slot
One Hit Point slot
Then place this card in your vault permanently.
", + "description": "When you choose this card, permanently gain two of the following benefits:
One Stress slot
One Hit Point slot
Then place this card in your vault permanently.
", "domain": "blade", "recallCost": 0, "level": 5, @@ -57,8 +57,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784542, - "modifiedTime": 1754245974822, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304501280, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "sWUlSPOJEaXyQLCj", "sort": 3400000, diff --git a/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json b/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json index 8e4d7daf..a6013aa6 100644 --- a/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json +++ b/src/packs/domains/domainCard_Whirlwind_anO0arioUy7I5zBg.json @@ -4,7 +4,7 @@ "type": "domainCard", "folder": "9Xc6KzNyjDtTGZkp", "system": { - "description": "When you make a successful attack against a target within
When you make a successful attack against a target within Very Close range, you can spend a Hope to use the attack against all other targets within Very Close range. All additional adversaries you succeed against with this ability take half damage.
@Template[type:emanation|range:vc]
", "domain": "blade", "recallCost": 0, "level": 1, @@ -14,7 +14,7 @@ "type": "effect", "_id": "g9X0wRuCtAYzF576", "systemPath": "actions", - "description": "", + "description": "When you make a successful attack against a target within Very Close range, you can spend a Hope to use the attack against all other targets within Very Close range. All additional adversaries you succeed against with this ability take half damage.
@Template[type:emanation|range:vc]
", "chatDisplay": true, "actionType": "action", "cost": [ @@ -53,8 +53,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784545, - "modifiedTime": 1754244586174, - "lastModifiedBy": "l5jB3XmcVXOTQpRZ" + "modifiedTime": 1754304354572, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "anO0arioUy7I5zBg", "sort": 3400000, diff --git a/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json b/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json index 2e0df28d..560564ec 100644 --- a/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json +++ b/src/packs/domains/folders_Level_10_D1MFCYakdFIKDmcD.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "D1MFCYakdFIKDmcD", "description": "", - "sort": 2100000, + "sort": 1000000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241657301 + "modifiedTime": 1754303642814 }, "_key": "!folders!D1MFCYakdFIKDmcD" } diff --git a/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json b/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json index 9e6f9792..adecc370 100644 --- a/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json +++ b/src/packs/domains/folders_Level_1_QpOL7jPbMBzH96qR.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "QpOL7jPbMBzH96qR", "description": "", - "sort": 1200000, + "sort": 100000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241649342 + "modifiedTime": 1754303642814 }, "_key": "!folders!QpOL7jPbMBzH96qR" } diff --git a/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json b/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json index cec9ff1c..d9a97198 100644 --- a/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json +++ b/src/packs/domains/folders_Level_2_pk4xXE8D3vTawrqj.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "pk4xXE8D3vTawrqj", "description": "", - "sort": 1300000, + "sort": 200000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241651400 + "modifiedTime": 1754303642814 }, "_key": "!folders!pk4xXE8D3vTawrqj" } diff --git a/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json b/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json index 085a8fb4..88442df9 100644 --- a/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json +++ b/src/packs/domains/folders_Level_3_Oo9EkkF7CDD3QZEG.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "Oo9EkkF7CDD3QZEG", "description": "", - "sort": 1400000, + "sort": 300000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241653016 + "modifiedTime": 1754303642814 }, "_key": "!folders!Oo9EkkF7CDD3QZEG" } diff --git a/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json b/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json index 716b0af5..20f61024 100644 --- a/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json +++ b/src/packs/domains/folders_Level_4_cOZgzLQRGNnBzsHT.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "cOZgzLQRGNnBzsHT", "description": "", - "sort": 1500000, + "sort": 400000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241653668 + "modifiedTime": 1754303642814 }, "_key": "!folders!cOZgzLQRGNnBzsHT" } diff --git a/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json b/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json index 630703fc..0895c2eb 100644 --- a/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json +++ b/src/packs/domains/folders_Level_5_XDSp0FdiYDVO0tfw.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "XDSp0FdiYDVO0tfw", "description": "", - "sort": 1600000, + "sort": 500000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241654308 + "modifiedTime": 1754303642814 }, "_key": "!folders!XDSp0FdiYDVO0tfw" } diff --git a/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json b/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json index 9bbe114b..f9a7e7f3 100644 --- a/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json +++ b/src/packs/domains/folders_Level_6_nKCmeAn7ESsb4byE.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "nKCmeAn7ESsb4byE", "description": "", - "sort": 1700000, + "sort": 600000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241654911 + "modifiedTime": 1754303642814 }, "_key": "!folders!nKCmeAn7ESsb4byE" } diff --git a/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json b/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json index f4b4afc9..f4ca4b03 100644 --- a/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json +++ b/src/packs/domains/folders_Level_7_kj3gwg5bmCqwFYze.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "kj3gwg5bmCqwFYze", "description": "", - "sort": 1800000, + "sort": 700000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241655520 + "modifiedTime": 1754303642814 }, "_key": "!folders!kj3gwg5bmCqwFYze" } diff --git a/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json b/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json index 1ebc4f4d..a9acdf99 100644 --- a/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json +++ b/src/packs/domains/folders_Level_8_FUzQxkv4gFc46SIs.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "FUzQxkv4gFc46SIs", "description": "", - "sort": 1900000, + "sort": 800000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241656103 + "modifiedTime": 1754303642814 }, "_key": "!folders!FUzQxkv4gFc46SIs" } diff --git a/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json b/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json index b0405020..20d3fbb5 100644 --- a/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json +++ b/src/packs/domains/folders_Level_9_8DOVMjTtZFKtwX4p.json @@ -6,7 +6,7 @@ "sorting": "a", "_id": "8DOVMjTtZFKtwX4p", "description": "", - "sort": 2000000, + "sort": 900000, "flags": {}, "_stats": { "compendiumSource": null, @@ -16,7 +16,7 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "lastModifiedBy": "MQSznptE5yLT7kj8", - "modifiedTime": 1754241656688 + "modifiedTime": 1754303642814 }, "_key": "!folders!8DOVMjTtZFKtwX4p" } diff --git a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json index e80d4f13..71ad95a9 100644 --- a/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json +++ b/src/packs/items/armors/armor_Irontree_Breastplate_Armor_tzZntboNtHL5C6VM.json @@ -31,18 +31,20 @@ "effects": [ { "name": "Reinforced", - "description": "When you mark your last Armor Slot, increase your damage thresholds by +2 until you clear at least 1 Armor Slot.", + "description": "When you mark your last Armor Slot, increase your damage thresholds by +2 until you clear at least 1 Armor Slot.
", "img": "icons/magic/defensive/shield-barrier-glowing-triangle-green.webp", "changes": [ { - "key": "system.bunuses.damageThresholds.major", + "key": "system.damageThresholds.major", "mode": 2, - "value": "2" + "value": "2", + "priority": null }, { - "key": "system.bunuses.damageThresholds.severe", + "key": "system.damageThresholds.severe", "mode": 2, - "value": "2" + "value": "2", + "priority": null } ], "_id": "P3aCN8PQgPXP4C9M", @@ -51,7 +53,12 @@ "disabled": false, "duration": { "startTime": null, - "combat": null + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null }, "origin": null, "tint": "#ffffff", @@ -67,8 +74,8 @@ "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753807455490, - "modifiedTime": 1753807455490, - "lastModifiedBy": "FecEtPuoQh6MpjQ0" + "modifiedTime": 1754297884536, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_key": "!items.effects!tzZntboNtHL5C6VM.P3aCN8PQgPXP4C9M" } diff --git a/styles/less/dialog/damage-reduction/damage-reduction-container.less b/styles/less/dialog/damage-reduction/damage-reduction-container.less index 7dab4f5d..9e1d1472 100644 --- a/styles/less/dialog/damage-reduction/damage-reduction-container.less +++ b/styles/less/dialog/damage-reduction/damage-reduction-container.less @@ -2,11 +2,35 @@ .daggerheart.views.damage-reduction { .damage-reduction-container { + position: relative; + padding: 8px 0; display: flex; flex-direction: column; align-items: center; gap: 4px; + .rules-button { + position: absolute; + top: 4px; + right: 4px; + border-radius: 50%; + + &.inactive { + opacity: 0.4; + + ::after { + position: absolute; + content: '/'; + color: red; + font-weight: 700; + font-size: 1.8em; + left: 5px; + top: 0; + rotate: 13deg; + } + } + } + .section-container { display: flex; flex-direction: column; @@ -44,7 +68,7 @@ .mark-selection-inner { display: flex; - gap: 2px; + gap: 8px; .mark-container { cursor: pointer; @@ -58,10 +82,6 @@ justify-content: center; opacity: 0.4; - &:not(:last-child) { - margin-right: 8px; - } - &.selected { opacity: 1; } @@ -79,11 +99,11 @@ } } - .stress-reduction-container { + .chip-container { margin: 0; width: 100%; - .stress-reduction { + .chip-inner-container { border: 1px solid light-dark(@dark-blue, @golden); border-radius: 6px; height: 26px; @@ -113,6 +133,14 @@ } } + .threshold-label { + opacity: 0.6; + + &.active { + opacity: 1; + } + } + .markers-subtitle { margin: -4px 0 0 0; diff --git a/styles/less/dialog/damage-reduction/sheets.less b/styles/less/dialog/damage-reduction/sheets.less index b73d7518..153cb364 100644 --- a/styles/less/dialog/damage-reduction/sheets.less +++ b/styles/less/dialog/damage-reduction/sheets.less @@ -2,6 +2,6 @@ .daggerheart.views.damage-reduction { .window-content { - padding: 8px 0; + padding: 0; } } diff --git a/styles/less/global/inventory-item.less b/styles/less/global/inventory-item.less index 274f51a5..5ab4759c 100644 --- a/styles/less/global/inventory-item.less +++ b/styles/less/global/inventory-item.less @@ -94,6 +94,7 @@ .label { gap: 4px; + color: @beige-80; } } } diff --git a/styles/less/sheets/actors/adversary/actions.less b/styles/less/sheets/actors/adversary/actions.less index 3c8ca4bc..00395ebd 100644 --- a/styles/less/sheets/actors/adversary/actions.less +++ b/styles/less/sheets/actors/adversary/actions.less @@ -8,9 +8,8 @@ flex-direction: column; gap: 10px; overflow-y: auto; - mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%); - padding: 20px 0; - padding-top: 10px; + mask-image: linear-gradient(0deg, transparent 0%, black 5%); + padding-bottom: 20px; scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; diff --git a/styles/less/sheets/actors/adversary/sheet.less b/styles/less/sheets/actors/adversary/sheet.less index b710cab8..0bd845fa 100644 --- a/styles/less/sheets/actors/adversary/sheet.less +++ b/styles/less/sheets/actors/adversary/sheet.less @@ -6,7 +6,6 @@ display: grid; grid-template-columns: 275px 1fr; grid-template-rows: auto 1fr; - gap: 15px 0; height: 100%; width: 100%; padding-bottom: 0; diff --git a/styles/less/sheets/actors/character/effects.less b/styles/less/sheets/actors/character/effects.less index 387b831b..ceadd05e 100644 --- a/styles/less/sheets/actors/character/effects.less +++ b/styles/less/sheets/actors/character/effects.less @@ -8,9 +8,8 @@ flex-direction: column; gap: 10px; overflow-y: auto; - mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%); - padding: 20px 0; - padding-top: 10px; + mask-image: linear-gradient(0deg, transparent 0%, black 5%); + padding-bottom: 20px; scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; diff --git a/styles/less/sheets/actors/character/features.less b/styles/less/sheets/actors/character/features.less index af53e11d..6a6438ff 100644 --- a/styles/less/sheets/actors/character/features.less +++ b/styles/less/sheets/actors/character/features.less @@ -8,9 +8,8 @@ flex-direction: column; gap: 10px; overflow-y: auto; - mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%); - padding: 20px 0; - padding-top: 10px; + mask-image: linear-gradient(0deg, transparent 0%, black 5%); + padding-bottom: 20px; scrollbar-width: thin; scrollbar-color: light-dark(@dark-blue, @golden) transparent; diff --git a/styles/less/sheets/actors/character/sheet.less b/styles/less/sheets/actors/character/sheet.less index 026b4d29..68792c99 100644 --- a/styles/less/sheets/actors/character/sheet.less +++ b/styles/less/sheets/actors/character/sheet.less @@ -6,7 +6,6 @@ display: grid; grid-template-columns: 275px 1fr; grid-template-rows: auto 1fr; - gap: 15px 0; height: 100%; width: 100%; padding-bottom: 0; diff --git a/styles/less/sheets/actors/character/sidebar.less b/styles/less/sheets/actors/character/sidebar.less index cefa1e02..494a4728 100644 --- a/styles/less/sheets/actors/character/sidebar.less +++ b/styles/less/sheets/actors/character/sidebar.less @@ -445,7 +445,7 @@ overflow-y: hidden; padding-top: 10px; padding-bottom: 20px; - mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%); + mask-image: linear-gradient(0deg, transparent 0%, black 5%); &:hover { overflow-y: auto; diff --git a/styles/less/sheets/actors/environment/actions.less b/styles/less/sheets/actors/environment/actions.less new file mode 100644 index 00000000..51385322 --- /dev/null +++ b/styles/less/sheets/actors/environment/actions.less @@ -0,0 +1,18 @@ +@import '../../../utils/colors.less'; +@import '../../../utils/fonts.less'; + +.application.sheet.daggerheart.actor.dh-style.environment { + .tab.features { + .feature-section { + display: flex; + flex-direction: column; + gap: 10px; + overflow-y: auto; + mask-image: linear-gradient(0deg, transparent 0%, black 5%); + padding-bottom: 20px; + + scrollbar-width: thin; + scrollbar-color: light-dark(@dark-blue, @golden) transparent; + } + } +} diff --git a/styles/less/sheets/index.less b/styles/less/sheets/index.less index aa2f4356..76c1a320 100644 --- a/styles/less/sheets/index.less +++ b/styles/less/sheets/index.less @@ -16,6 +16,7 @@ @import './actors/companion/header.less'; @import './actors/companion/sheet.less'; +@import './actors/environment/actions.less'; @import './actors/environment/header.less'; @import './actors/environment/sheet.less'; diff --git a/styles/less/utils/colors.less b/styles/less/utils/colors.less index 757fedfb..0b87e18c 100755 --- a/styles/less/utils/colors.less +++ b/styles/less/utils/colors.less @@ -55,6 +55,7 @@ @beige: #efe6d8; @beige-15: #efe6d815; @beige-50: #efe6d850; +@beige-80: #efe6d880; @soft-white-shadow: rgba(255, 255, 255, 0.05); diff --git a/templates/dialogs/damageReduction.hbs b/templates/dialogs/damageReduction.hbs index 43f55e86..c9f344d5 100644 --- a/templates/dialogs/damageReduction.hbs +++ b/templates/dialogs/damageReduction.hbs @@ -1,4 +1,9 @@