mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
* Increased priority on effects in srd domain cards that depend on character data * Increased priority on effects in srd classes/subclasses that depend on character data * Increased priority on effects in srd ancestries that depend on character data * Increased priority on effects in srd beastforms that depend on character data * Increased priority on effects in remaining SRD items that depend on character data * Adversaries * Raised system version
1528 lines
57 KiB
JavaScript
1528 lines
57 KiB
JavaScript
export const armorFeatures = {
|
|
burning: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.burning.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.burning.description',
|
|
actions: [
|
|
{
|
|
type: 'damage',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.burning.actions.burn.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.burning.actions.burn.description',
|
|
img: 'icons/magic/fire/flame-burning-embers-yellow.webp',
|
|
range: 'melee',
|
|
target: {
|
|
type: 'hostile'
|
|
},
|
|
damage: {
|
|
parts: [
|
|
{
|
|
applyTo: 'stress',
|
|
value: {
|
|
custom: {
|
|
enabled: true,
|
|
formula: '1'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
channeling: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.channeling.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.channeling.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.channeling.effects.channeling.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.channeling.effects.channeling.description',
|
|
img: 'icons/magic/symbols/rune-sigil-horned-blue.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.bonuses.roll.spellcast',
|
|
mode: 2,
|
|
value: '1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
difficult: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.difficult.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.difficult.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.difficult.effects.difficult.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.difficult.effects.difficult.description',
|
|
img: 'icons/magic/control/buff-flight-wings-red.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.traits.agility.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
},
|
|
{
|
|
key: 'system.traits.strength.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
},
|
|
{
|
|
key: 'system.traits.finesse.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
},
|
|
{
|
|
key: 'system.traits.instinct.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
},
|
|
{
|
|
key: 'system.traits.presence.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
},
|
|
{
|
|
key: 'system.traits.knowledge.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
},
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
flexible: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.flexible.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.flexible.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.flexible.effects.flexible.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.flexible.effects.flexible.description',
|
|
img: 'icons/magic/movement/abstract-ribbons-red-orange.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
fortified: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.fortified.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.fortified.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.fortified.effects.fortified.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.fortified.effects.fortified.description',
|
|
img: 'icons/magic/defensive/shield-barrier-glowing-blue.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.rules.damageReduction.increasePerArmorMark',
|
|
mode: 5,
|
|
value: '2'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
gilded: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.gilded.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.gilded.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.gilded.effects.gilded.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.gilded.effects.gilded.description',
|
|
img: 'icons/magic/control/control-influence-crown-gold.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.traits.presence.value',
|
|
mode: 2,
|
|
value: '1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
heavy: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.heavy.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.heavy.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.heavy.effects.heavy.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.heavy.effects.heavy.description',
|
|
img: 'icons/commodities/metal/ingot-worn-iron.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
hopeful: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.actions.hope.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.hopeful.actions.hope.description',
|
|
img: 'icons/magic/holy/barrier-shield-winged-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
impenetrable: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.actions.impenetrable.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.impenetrable.actions.impenetrable.description',
|
|
img: 'icons/magic/defensive/shield-barrier-flaming-pentagon-purple-orange.webp',
|
|
uses: {
|
|
max: 1,
|
|
recovery: 'shortRest',
|
|
value: 0
|
|
},
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
magical: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.magical.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.magical.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.magical.effects.magical.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.magical.effects.magical.description',
|
|
img: 'icons/magic/defensive/barrier-shield-dome-blue-purple.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.rules.damageReduction.magical',
|
|
mode: 5,
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
painful: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.painful.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.painful.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.painful.actions.pain.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.painful.actions.pain.description',
|
|
img: 'icons/skills/wounds/injury-face-impact-orange.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
physical: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.physical.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.physical.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.physical.effects.physical.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.physical.effects.physical.description',
|
|
img: 'icons/commodities/stone/ore-pile-tan.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.rules.damageReduction.physical',
|
|
mode: 5,
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
quiet: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.actions.quiet.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.quiet.actions.quiet.description',
|
|
img: 'icons/magic/perception/silhouette-stealth-shadow.webp'
|
|
}
|
|
]
|
|
},
|
|
reinforced: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.reinforced.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.reinforced.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.reinforced.effects.reinforced.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.reinforced.effects.reinforced.description',
|
|
img: 'icons/magic/defensive/shield-barrier-glowing-triangle-green.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.bunuses.damageThresholds.major',
|
|
mode: 2,
|
|
value: '2'
|
|
},
|
|
{
|
|
key: 'system.bunuses.damageThresholds.severe',
|
|
mode: 2,
|
|
value: '2'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
resilient: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.description',
|
|
actions: [
|
|
{
|
|
type: 'attack',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.actions.resilient.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.resilient.actions.resilient.description',
|
|
img: 'icons/magic/life/heart-cross-purple-orange.webp',
|
|
roll: {
|
|
type: 'diceSet',
|
|
diceRolling: {
|
|
compare: 'equal',
|
|
dice: 'd6',
|
|
multiplier: 'flat',
|
|
flatMultiplier: 1,
|
|
treshold: 6
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
sharp: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.sharp.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.sharp.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.sharp.effects.sharp.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.sharp.effects.sharp.description',
|
|
img: 'icons/magic/defensive/shield-barrier-glowing-triangle-green.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.bonuses.damage.primaryWeapon.dice',
|
|
mode: 2,
|
|
value: '1d4'
|
|
},
|
|
{
|
|
key: 'system.bonuses.damage.secondaryWeapon.dice',
|
|
mode: 2,
|
|
value: '1d4'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
shifting: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.actions.shift.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.shifting.actions.shift.description',
|
|
img: 'icons/magic/defensive/illusion-evasion-echo-purple.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
timeslowing: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.description',
|
|
actions: [
|
|
{
|
|
type: 'attack',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.actions.slowTime.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.timeslowing.actions.slowTime.description',
|
|
img: 'icons/magic/time/hourglass-brown-orange.webp',
|
|
cost: [
|
|
{
|
|
key: 'armorSlot',
|
|
value: 1
|
|
}
|
|
],
|
|
roll: {
|
|
type: 'diceSet',
|
|
diceRolling: {
|
|
dice: 'd4',
|
|
multiplier: 'flat',
|
|
flatMultiplier: 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
truthseeking: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.actions.truthseeking.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.truthseeking.actions.truthseeking.description',
|
|
img: 'icons/magic/perception/orb-crystal-ball-scrying-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
veryheavy: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.veryHeavy.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.veryHeavy.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.veryHeavy.effects.veryHeavy.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.veryHeavy.effects.veryHeavy.description',
|
|
img: 'icons/commodities/metal/ingot-stamped-steel.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '-2'
|
|
},
|
|
{
|
|
key: 'system.traits.agility.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
warded: {
|
|
label: 'DAGGERHEART.CONFIG.ArmorFeature.warded.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.warded.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.ArmorFeature.warded.effects.warded.name',
|
|
description: 'DAGGERHEART.CONFIG.ArmorFeature.warded.effects.warded.description',
|
|
img: 'icons/magic/defensive/barrier-shield-dome-pink.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.resistance.magical.reduction',
|
|
mode: 2,
|
|
value: '@system.armorScore',
|
|
priority: 21
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
};
|
|
|
|
export const allArmorFeatures = () => {
|
|
const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures
|
|
.armorFeatures;
|
|
return {
|
|
...armorFeatures,
|
|
...Object.keys(homebrewFeatures).reduce((acc, key) => {
|
|
const feature = homebrewFeatures[key];
|
|
const actions = feature.actions.map(action => ({
|
|
...action,
|
|
effects: action.effects.map(effect => feature.effects.find(x => x.id === effect._id)),
|
|
type: action.type
|
|
}));
|
|
const actionEffects = actions.flatMap(a => a.effects);
|
|
|
|
const effects = feature.effects.filter(effect => !actionEffects.some(x => x.id === effect.id));
|
|
|
|
acc[key] = { ...feature, label: feature.name, effects, actions };
|
|
return acc;
|
|
}, {})
|
|
};
|
|
};
|
|
|
|
export const orderedArmorFeatures = () => {
|
|
const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures
|
|
.armorFeatures;
|
|
const allFeatures = { ...armorFeatures, ...homebrewFeatures };
|
|
const all = Object.keys(allFeatures).map(key => {
|
|
const feature = allFeatures[key];
|
|
return {
|
|
...feature,
|
|
id: key,
|
|
label: feature.label ?? feature.name
|
|
};
|
|
});
|
|
return Object.values(all).sort((a, b) => game.i18n.localize(a.label).localeCompare(game.i18n.localize(b.label)));
|
|
};
|
|
|
|
export const weaponFeatures = {
|
|
barrier: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.effects.barrier.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.barrier.effects.barrier.description',
|
|
img: 'icons/skills/melee/shield-block-bash-blue.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.armorScore',
|
|
mode: 2,
|
|
value: 'ITEM.@system.tier + 1'
|
|
},
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
bonded: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.bonded.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.bonded.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.bonded.effects.damage.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.bonded.effects.damage.description',
|
|
img: 'icons/magic/symbols/chevron-elipse-circle-blue.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.bonuses.damage.primaryWeapon.bonus',
|
|
mode: 2,
|
|
value: '@system.levelData.level.current'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
bouncing: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.actions.bounce.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.bouncing.actions.bounce.description',
|
|
img: 'icons/skills/movement/ball-spinning-blue.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1,
|
|
scalable: true,
|
|
step: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
brave: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.brave.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.brave.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.brave.effects.brave.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.brave.effects.brave.description',
|
|
img: 'icons/magic/life/heart-cross-strong-flame-purple-orange.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '-1'
|
|
},
|
|
{
|
|
key: 'system.damageThresholds.severe',
|
|
mode: 2,
|
|
value: 'ITEM.@system.tier'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
brutal: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.actions.addDamage.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.brutal.actions.addDamage.description',
|
|
img: 'icons/skills/melee/strike-dagger-blood-red.webp'
|
|
}
|
|
]
|
|
},
|
|
burning: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.burning.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.burning.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.burning.actions.burn.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.burning.actions.burn.description',
|
|
img: 'icons/magic/fire/blast-jet-stream-embers-orange.webp'
|
|
}
|
|
]
|
|
},
|
|
charged: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.charged.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.charged.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.charged.actions.markStress.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.charged.actions.markStress.description',
|
|
img: 'icons/magic/lightning/claws-unarmed-strike-teal.webp',
|
|
target: {
|
|
type: 'self'
|
|
},
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
],
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.charged.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.charged.description',
|
|
img: 'icons/magic/lightning/claws-unarmed-strike-teal.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.proficiency',
|
|
mode: 2,
|
|
value: '1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
concussive: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.actions.attack.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.concussive.actions.attack.description',
|
|
img: 'icons/skills/melee/shield-block-bash-yellow.webp',
|
|
target: {
|
|
type: 'any'
|
|
},
|
|
cost: [
|
|
{
|
|
key: 'hope',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
cumbersome: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.cumbersome.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.cumbersome.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.cumbersome.effects.cumbersome.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.cumbersome.effects.cumbersome.description',
|
|
img: 'icons/commodities/metal/mail-plate-steel.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.traits.finesse.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
deadly: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.actions.extraDamage.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.deadly.actions.extraDamage.description',
|
|
img: 'icons/skills/melee/strike-sword-dagger-runes-red.webp'
|
|
}
|
|
]
|
|
},
|
|
deflecting: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.actions.deflect.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.actions.deflect.description',
|
|
img: 'icons/skills/melee/hand-grip-sword-strike-orange.webp',
|
|
target: {
|
|
type: 'self'
|
|
},
|
|
cost: [
|
|
{
|
|
type: 'armor',
|
|
value: 1
|
|
}
|
|
],
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.effects.deflecting.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.deflecting.effects.deflecting.description',
|
|
img: 'icons/skills/melee/hand-grip-sword-strike-orange.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '@system.armorScore',
|
|
priority: 21
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
destructive: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.description',
|
|
actions: [
|
|
{
|
|
type: 'damage',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.actions.attack.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.actions.attack.descriptive',
|
|
img: 'icons/skills/melee/strike-flail-spiked-pink.webp',
|
|
range: 'veryClose',
|
|
target: {
|
|
type: 'hostile'
|
|
},
|
|
damage: {
|
|
parts: [
|
|
{
|
|
applyTo: 'stress',
|
|
value: {
|
|
custom: {
|
|
enabled: true,
|
|
formula: '1'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.destructive.effects.agility',
|
|
img: 'icons/skills/melee/strike-flail-spiked-pink.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.traits.agility.value',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
devastating: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.actions.devastate.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.devastating.actions.devastate.description',
|
|
img: 'icons/skills/melee/strike-flail-destructive-yellow.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
doubleDuty: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.effects.doubleDuty.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.doubleDuty.effects.doubleDuty.description',
|
|
img: 'icons/skills/melee/sword-shield-stylized-white.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.armorScore',
|
|
mode: 2,
|
|
value: '1'
|
|
},
|
|
{
|
|
key: 'system.bonuses.damage.primaryWeapon.bonus',
|
|
mode: 2,
|
|
value: '1'
|
|
}
|
|
],
|
|
system: {
|
|
rangeDependence: {
|
|
enabled: true,
|
|
range: 'melee',
|
|
target: 'hostile',
|
|
type: 'withinRange'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
doubledUp: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.actions.doubleUp.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.doubledUp.actions.doubleUp.description',
|
|
img: 'icons/skills/melee/strike-slashes-orange.webp'
|
|
}
|
|
]
|
|
},
|
|
dueling: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.actions.duel.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.dueling.actions.duel.description',
|
|
img: 'icons/skills/melee/weapons-crossed-swords-pink.webp'
|
|
}
|
|
]
|
|
},
|
|
eruptive: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.description',
|
|
actions: [
|
|
{
|
|
type: 'effect', // Should prompt a dc 14 reaction save on adversaries
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.actions.erupt.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.eruptive.actions.erupt.description',
|
|
img: 'icons/skills/melee/strike-hammer-destructive-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
grappling: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.actions.grapple.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.grappling.actions.grapple.description',
|
|
img: 'icons/magic/control/debuff-chains-ropes-net-white.webp',
|
|
cost: [
|
|
{
|
|
key: 'hope',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
greedy: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.description',
|
|
img: 'icons/commodities/currency/coins-crown-stack-gold.webp',
|
|
target: {
|
|
type: 'self'
|
|
},
|
|
// Should cost handful of gold,
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.actions.greed.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.greedy.actions.greed.description',
|
|
img: 'icons/commodities/currency/coins-crown-stack-gold.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.proficiency',
|
|
mode: 2,
|
|
value: '1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
healing: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.healing.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.healing.description',
|
|
actions: [
|
|
{
|
|
type: 'healing',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.healing.actions.heal.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.healing.actions.heal.description',
|
|
img: 'icons/magic/life/cross-beam-green.webp',
|
|
target: {
|
|
type: 'self'
|
|
},
|
|
damage: {
|
|
parts: [
|
|
{
|
|
applyTo: 'hitPoints',
|
|
value: {
|
|
custom: {
|
|
enabled: true,
|
|
formula: 1
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
heavy: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.heavy.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.heavy.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.heavy.effects.heavy.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.heavy.effects.heavy.description',
|
|
img: 'icons/commodities/metal/ingot-worn-iron.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
hooked: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.actions.hook.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.hooked.actions.hook.description',
|
|
img: 'icons/skills/melee/strike-chain-whip-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
hot: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.hot.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.hot.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.hot.actions.hot.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.hot.actions.hot.description',
|
|
img: 'icons/magic/fire/dagger-rune-enchant-flame-red.webp'
|
|
}
|
|
]
|
|
},
|
|
invigorating: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.actions.invigorate.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.invigorating.actions.invigorate.description',
|
|
img: 'icons/magic/life/heart-cross-green.webp'
|
|
}
|
|
]
|
|
},
|
|
lifestealing: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.actions.lifesteal.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.lifestealing.actions.lifesteal.description',
|
|
img: 'icons/magic/unholy/hand-claw-fire-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
lockedOn: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.actions.lockOn.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.lockedOn.actions.lockOn.description',
|
|
img: 'icons/skills/targeting/crosshair-arrowhead-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
long: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.long.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.long.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.long.actions.long.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.long.actions.long.description',
|
|
img: 'icons/skills/melee/strike-weapon-polearm-ice-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
lucky: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.actions.luck.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.lucky.actions.luck.description',
|
|
img: 'icons/magic/control/buff-luck-fortune-green.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
massive: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.massive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.massive.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.massive.effects.massive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.massive.effects.massive.description',
|
|
img: 'icons/skills/melee/strike-flail-destructive-yellow.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.evasion',
|
|
mode: 2,
|
|
value: '-1'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
painful: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.painful.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.painful.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.painful.actions.pain.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.painful.actions.pain.description',
|
|
img: 'icons/skills/wounds/injury-face-impact-orange.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
paired: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.paired.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.paired.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.paired.effects.paired.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.paired.effects.paired.description',
|
|
img: 'icons/skills/melee/weapons-crossed-swords-yellow-teal.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.bonuses.damage.primaryWeapon.bonus',
|
|
mode: 2,
|
|
value: 'ITEM.@system.tier + 1'
|
|
}
|
|
],
|
|
system: {
|
|
rangeDependence: {
|
|
enabled: true,
|
|
range: 'melee',
|
|
target: 'hostile',
|
|
type: 'withinRange'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
parry: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.parry.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.parry.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.parry.actions.parry.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.parry.actions.parry.description',
|
|
img: 'icons/skills/melee/shield-block-fire-orange.webp'
|
|
}
|
|
]
|
|
},
|
|
persuasive: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.actions.persuade.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.actions.persuade.description',
|
|
img: 'icons/magic/control/hypnosis-mesmerism-eye.webp',
|
|
target: {
|
|
type: 'self'
|
|
},
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
],
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.effects.persuasive.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.persuasive.effects.persuasive.description',
|
|
img: 'icons/magic/control/hypnosis-mesmerism-eye.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.traits.presence.value',
|
|
mode: 2,
|
|
value: '2'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
pompous: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.actions.pompous.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.pompous.actions.pompous.description',
|
|
img: 'icons/magic/control/control-influence-crown-gold.webp'
|
|
}
|
|
]
|
|
},
|
|
powerful: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.effects.powerful.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.powerful.effects.powerful.description',
|
|
img: 'icons/magic/control/buff-flight-wings-runes-red-yellow.webp',
|
|
changes: []
|
|
}
|
|
]
|
|
},
|
|
protective: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.protective.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.protective.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.protective.effects.protective.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.protective.effects.protective.description',
|
|
img: 'icons/skills/melee/shield-block-gray-orange.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.armorScore',
|
|
mode: 2,
|
|
value: 'ITEM.@system.tier'
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
quick: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.quick.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.quick.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.quick.actions.quick.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.quick.actions.quick.description',
|
|
img: 'icons/skills/movement/arrow-upward-yellow.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
reliable: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.reliable.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.reliable.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.reliable.effects.reliable.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.reliable.effects.reliable.description',
|
|
img: 'icons/skills/melee/strike-sword-slashing-red.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.bonuses.roll.primaryWeapon.bonus',
|
|
mode: 2,
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
reloading: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.actions.reload.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.reloading.actions.reload.description',
|
|
img: 'icons/weapons/ammunition/shot-round-blue.webp'
|
|
}
|
|
]
|
|
},
|
|
retractable: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.actions.retract.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.retractable.actions.retract.description',
|
|
img: 'icons/skills/melee/blade-tip-smoke-green.webp'
|
|
}
|
|
]
|
|
},
|
|
returning: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.returning.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.returning.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.returning.actions.return.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.returning.actions.return.description',
|
|
img: 'icons/magic/movement/trail-streak-pink.webp'
|
|
}
|
|
]
|
|
},
|
|
scary: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.scary.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.scary.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.scary.actions.scare.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.scary.actions.scare.description',
|
|
img: 'icons/magic/death/skull-energy-light-purple.webp'
|
|
}
|
|
]
|
|
},
|
|
selfCorrecting: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.selfCorrecting.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.selfCorrecting.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.selfCorrecting.effects.selfCorrecting.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.selfCorrecting.effects.selfCorrecting.description',
|
|
img: 'icons/weapons/ammunition/arrow-broadhead-glowing-orange.webp',
|
|
changes: []
|
|
}
|
|
]
|
|
},
|
|
serrated: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.serrated.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.serrated.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.serrated.effects.serrated.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.serrated.effects.serrated.description',
|
|
img: 'icons/weapons/ammunition/arrow-broadhead-glowing-orange.webp',
|
|
changes: []
|
|
}
|
|
]
|
|
},
|
|
sharpwing: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.sharpwing.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.sharpwing.description',
|
|
effects: [
|
|
{
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.sharpwing.effects.sharpwing.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.sharpwing.effects.sharpwing.description',
|
|
img: 'icons/weapons/swords/sword-winged-pink.webp',
|
|
changes: [
|
|
{
|
|
key: 'system.bonuses.damage.primaryWeapon.bonus',
|
|
mode: 2,
|
|
value: '@system.traits.agility.value',
|
|
priority: 21
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
sheltering: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.actions.shelter.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.sheltering.actions.shelter.description',
|
|
img: 'icons/skills/melee/shield-block-gray-yellow.webp'
|
|
}
|
|
]
|
|
},
|
|
startling: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.startling.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.startling.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.startling.actions.startle.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.startling.actions.startle.description',
|
|
img: 'icons/magic/control/fear-fright-mask-orange.webp',
|
|
cost: [
|
|
{
|
|
key: 'stress',
|
|
value: 1
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
timebending: {
|
|
label: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.description',
|
|
actions: [
|
|
{
|
|
type: 'effect',
|
|
chatDisplay: true,
|
|
name: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.name',
|
|
description: 'DAGGERHEART.CONFIG.WeaponFeature.timebending.actions.bendTime.description',
|
|
img: 'icons/magic/time/clock-spinning-gold-pink.webp'
|
|
}
|
|
]
|
|
}
|
|
};
|
|
|
|
export const allWeaponFeatures = () => {
|
|
const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures
|
|
.weaponFeatures;
|
|
|
|
return {
|
|
...weaponFeatures,
|
|
...Object.keys(homebrewFeatures).reduce((acc, key) => {
|
|
const feature = homebrewFeatures[key];
|
|
|
|
const actions = feature.actions.map(action => ({
|
|
...action,
|
|
effects: action.effects.map(effect => feature.effects.find(x => x.id === effect._id)),
|
|
type: action.type
|
|
}));
|
|
const actionEffects = actions.flatMap(a => a.effects);
|
|
const effects = feature.effects.filter(effect => !actionEffects.some(x => x.id === effect.id));
|
|
|
|
acc[key] = { ...feature, label: feature.name, effects, actions };
|
|
return acc;
|
|
}, {})
|
|
};
|
|
};
|
|
|
|
export const orderedWeaponFeatures = () => {
|
|
const homebrewFeatures = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).itemFeatures
|
|
.weaponFeatures;
|
|
const allFeatures = { ...weaponFeatures, ...homebrewFeatures };
|
|
const all = Object.keys(allFeatures).map(key => {
|
|
const feature = allFeatures[key];
|
|
return {
|
|
...feature,
|
|
id: key,
|
|
label: feature.label ?? feature.name
|
|
};
|
|
});
|
|
return Object.values(all).sort((a, b) => game.i18n.localize(a.label).localeCompare(game.i18n.localize(b.label)));
|
|
};
|
|
|
|
export const featureForm = {
|
|
passive: 'DAGGERHEART.CONFIG.FeatureForm.passive',
|
|
action: 'DAGGERHEART.CONFIG.FeatureForm.action',
|
|
reaction: 'DAGGERHEART.CONFIG.FeatureForm.reaction'
|
|
};
|
|
|
|
export const featureTypes = {
|
|
ancestry: {
|
|
id: 'ancestry',
|
|
label: 'TYPES.Item.ancestry'
|
|
},
|
|
community: {
|
|
id: 'community',
|
|
label: 'TYPES.Item.community'
|
|
},
|
|
companion: {
|
|
id: 'companion',
|
|
label: 'TYPES.Actor.companion'
|
|
},
|
|
class: {
|
|
id: 'class',
|
|
label: 'TYPES.Item.class'
|
|
},
|
|
subclass: {
|
|
id: 'subclass',
|
|
label: 'TYPES.Item.subclass'
|
|
},
|
|
domainCard: {
|
|
id: 'domainCard',
|
|
label: 'TYPES.Item.domainCard'
|
|
},
|
|
armor: {
|
|
id: 'armor',
|
|
label: 'TYPES.Item.armor'
|
|
},
|
|
weapon: {
|
|
id: 'weapon',
|
|
label: 'TYPES.Item.weapon'
|
|
},
|
|
consumable: {
|
|
id: 'consumable',
|
|
label: 'TYPES.Item.consumable'
|
|
},
|
|
loot: {
|
|
id: 'loot',
|
|
label: 'TYPES.Item.loot'
|
|
},
|
|
beastform: {
|
|
if: 'beastform',
|
|
label: 'TYPES.Item.beastform'
|
|
}
|
|
};
|
|
|
|
export const featureSubTypes = {
|
|
primary: 'primary',
|
|
secondary: 'secondary',
|
|
hope: 'hope',
|
|
class: 'class',
|
|
foundation: 'foundation',
|
|
specialization: 'specialization',
|
|
mastery: 'mastery'
|
|
};
|
|
|
|
export const itemResourceTypes = {
|
|
simple: {
|
|
id: 'simple',
|
|
label: 'DAGGERHEART.CONFIG.ItemResourceType.simple'
|
|
},
|
|
diceValue: {
|
|
id: 'diceValue',
|
|
label: 'DAGGERHEART.CONFIG.ItemResourceType.diceValue'
|
|
},
|
|
die: {
|
|
id: 'die',
|
|
label: 'DAGGERHEART.CONFIG.ItemResourceType.die'
|
|
}
|
|
};
|
|
|
|
export const itemResourceProgression = {
|
|
increasing: {
|
|
id: 'increasing',
|
|
label: 'DAGGERHEART.CONFIG.ItemResourceProgression.increasing'
|
|
},
|
|
decreasing: {
|
|
id: 'decreasing',
|
|
label: 'DAGGERHEART.CONFIG.ItemResourceProgression.decreasing'
|
|
}
|
|
};
|
|
|
|
export const beastformTypes = {
|
|
normal: {
|
|
id: 'normal',
|
|
label: 'DAGGERHEART.CONFIG.BeastformType.normal'
|
|
},
|
|
evolved: {
|
|
id: 'evolved',
|
|
label: 'DAGGERHEART.CONFIG.BeastformType.evolved'
|
|
},
|
|
hybrid: {
|
|
id: 'hybrid',
|
|
label: 'DAGGERHEART.CONFIG.BeastformType.hybrid'
|
|
}
|
|
};
|
|
|
|
export const originItemType = {
|
|
itemCollection: 'itemCollection',
|
|
restMove: 'restMove'
|
|
};
|