daggerheart/src/packs/adversaries/adversary_Volcanic_Dragon__Ashen_Tyrant_pMuXGCSOQaxpi5tb.json
WBHarry 3eda3c4c05
Some checks are pending
Project CI / build (24.x) (push) Waiting to run
[Feature] Action Areas (#1815)
* Functioning setup

* .

* Fixes

* Completed

* Apply suggestions from code review

Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com>

* using function.call instead of function.bind

* Run lint fix on action areas PR (#1820)

* .

* .

* Restructured getTemplateShape to be a lot more readable

* .

* .

* Changed from 'area' to 'areas'

* .

* Moved the areas button to the left

* Fix regression with actions list

* Updated all SRD adversaries

---------

Co-authored-by: Carlos Fernandez <CarlosFdez@users.noreply.github.com>
Co-authored-by: Carlos Fernandez <cfern1990@gmail.com>
2026-04-21 22:27:52 +02:00

939 lines
27 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"folder": "7XHlANCPz18yvl5L",
"name": "Volcanic Dragon: Ashen Tyrant",
"type": "adversary",
"_id": "pMuXGCSOQaxpi5tb",
"img": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg",
"system": {
"description": "<p><em>No enemy has ever had the insolence to wound the dragon so. As the lava settles, its ground to ash like the dragons past foes.</em></p>",
"resistance": {
"physical": {
"resistance": false,
"immunity": false,
"reduction": 0
},
"magical": {
"resistance": false,
"immunity": false,
"reduction": 0
}
},
"tier": 4,
"type": "solo",
"notes": "",
"difficulty": 18,
"hordeHp": 1,
"damageThresholds": {
"major": 29,
"severe": 55
},
"resources": {
"hitPoints": {
"value": 0,
"max": 8,
"isReversed": true
},
"stress": {
"value": 0,
"max": 5,
"isReversed": true
}
},
"attack": {
"name": "Claws and Teeth",
"img": "icons/creatures/claws/claw-scaled-red.webp",
"_id": "bAM5u66XszRmjaT8",
"systemPath": "attack",
"chatDisplay": false,
"type": "attack",
"range": "close",
"target": {
"type": "any",
"amount": 1
},
"roll": {
"type": "attack",
"trait": null,
"difficulty": null,
"bonus": 10,
"advState": "neutral",
"diceRolling": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"compare": null,
"treshold": null
},
"useDefault": false
},
"damage": {
"parts": {
"hitPoints": {
"value": {
"custom": {
"enabled": false
},
"flatMultiplier": 4,
"dice": "d12",
"bonus": 15,
"multiplier": "flat"
},
"applyTo": "hitPoints",
"type": [
"physical"
],
"resultBased": false,
"valueAlt": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"bonus": null,
"custom": {
"enabled": false
}
},
"base": false
}
},
"includeBase": false
},
"description": "",
"actionType": "action",
"cost": [],
"uses": {
"value": null,
"max": null,
"recovery": null
},
"effects": [],
"save": {
"trait": null,
"difficulty": null,
"damageMod": "none"
}
},
"experiences": {
"wOdWWjFaanbmRXYg": {
"name": "Hunt from Above",
"value": 5,
"description": ""
}
},
"bonuses": {
"roll": {
"attack": {
"bonus": 0,
"dice": []
},
"action": {
"bonus": 0,
"dice": []
},
"reaction": {
"bonus": 0,
"dice": []
}
},
"damage": {
"physical": {
"bonus": 0,
"dice": []
},
"magical": {
"bonus": 0,
"dice": []
}
}
},
"motivesAndTactics": "Choke, fly, intimidate, kill or be killed",
"attribution": {
"source": "Daggerheart SRD",
"page": 101,
"artist": ""
},
"size": "gargantuan"
},
"prototypeToken": {
"name": "Volcanic Dragon: Ashen Tyrant",
"displayName": 0,
"actorLink": false,
"width": 1,
"height": 1,
"texture": {
"src": "systems/daggerheart/assets/icons/documents/actors/dragon-head.svg",
"anchorX": 0.5,
"anchorY": 0.5,
"fit": "contain",
"scaleX": 1,
"scaleY": 1,
"tint": "#ffffff",
"alphaThreshold": 0.75
},
"lockRotation": false,
"rotation": 0,
"alpha": 1,
"disposition": -1,
"displayBars": 0,
"bar1": {
"attribute": "resources.hitPoints"
},
"bar2": {
"attribute": "resources.stress"
},
"light": {
"negative": false,
"priority": 0,
"alpha": 0.5,
"angle": 360,
"bright": 0,
"color": null,
"coloration": 1,
"dim": 0,
"attenuation": 0.5,
"luminosity": 0.5,
"saturation": 0,
"contrast": 0,
"shadows": 0,
"animation": {
"type": null,
"speed": 5,
"intensity": 5,
"reverse": false
},
"darkness": {
"min": 0,
"max": 1
}
},
"sight": {
"enabled": false,
"range": 0,
"angle": 360,
"visionMode": "basic",
"color": null,
"attenuation": 0.1,
"brightness": 0,
"saturation": 0,
"contrast": 0
},
"detectionModes": {},
"occludable": {
"radius": 0
},
"ring": {
"enabled": false,
"colors": {
"ring": null,
"background": null
},
"effects": 1,
"subject": {
"scale": 1,
"texture": null
}
},
"turnMarker": {
"mode": 1,
"animation": null,
"src": null,
"disposition": false
},
"movementAction": null,
"flags": {},
"randomImg": false,
"appendNumber": false,
"prependAdjective": false,
"depth": 1
},
"items": [
{
"name": "Relentless (4)",
"type": "feature",
"system": {
"description": "<p>The @Lookup[@name] can be spotlighted up to four times per GM turn. Spend Fear as usual to spotlight them.</p>",
"resource": null,
"actions": {
"cvhKUhLycuEeloKH": {
"type": "effect",
"_id": "cvhKUhLycuEeloKH",
"systemPath": "actions",
"description": "",
"chatDisplay": true,
"actionType": "passive",
"cost": [
{
"scalable": false,
"key": "fear",
"value": 1,
"keyIsID": false,
"step": null,
"consumeOnSuccess": false
}
],
"uses": {
"value": 0,
"max": "3",
"recovery": null,
"consumeOnSuccess": false
},
"effects": [],
"target": {
"type": "any",
"amount": null
},
"name": "Spotlight: Relentless",
"img": "icons/magic/unholy/silhouette-evil-horned-giant.webp",
"range": ""
}
},
"originItemType": null,
"originId": null
},
"_id": "saz3Vr0xgfAl10tU",
"img": "icons/magic/unholy/silhouette-evil-horned-giant.webp",
"effects": [],
"folder": null,
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items!pMuXGCSOQaxpi5tb.saz3Vr0xgfAl10tU"
},
{
"name": "Cornered",
"type": "feature",
"system": {
"description": "<p><strong>Mark a Stress</strong> instead of spending a Fear to spotlight the @Lookup[@name].</p>",
"resource": null,
"actions": {
"nIBoqkOFWx0vpbnj": {
"type": "effect",
"_id": "nIBoqkOFWx0vpbnj",
"systemPath": "actions",
"description": "<p><strong>Mark a Stress</strong> instead of spending a Fear to spotlight the Ashen Tyrant.</p>",
"chatDisplay": true,
"actionType": "action",
"cost": [
{
"scalable": false,
"key": "stress",
"value": 1,
"step": null
}
],
"uses": {
"value": null,
"max": "",
"recovery": null
},
"effects": [],
"target": {
"type": "self",
"amount": null
},
"name": "Mark Stress",
"img": "icons/magic/symbols/mask-metal-silver-white.webp",
"range": ""
}
},
"originItemType": null,
"originId": null
},
"_id": "8d4bCyFvNq3NymUK",
"img": "icons/magic/symbols/mask-metal-silver-white.webp",
"effects": [],
"folder": null,
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items!pMuXGCSOQaxpi5tb.8d4bCyFvNq3NymUK"
},
{
"name": "Injured Wings",
"type": "feature",
"system": {
"description": "<p>While flying, the @Lookup[@name] gains a +1 bonus to their Difficulty.</p>",
"resource": null,
"actions": {},
"originItemType": null,
"originId": null
},
"_id": "jOojMjb779Kea1ZV",
"img": "icons/commodities/biological/wing-green.webp",
"effects": [
{
"name": "Injured Wings",
"type": "base",
"system": {
"rangeDependence": {
"enabled": false,
"type": "withinRange",
"target": "hostile",
"range": "melee"
}
},
"_id": "zCi90lgFAaA7yrJG",
"img": "icons/commodities/biological/wing-green.webp",
"changes": [
{
"key": "system.difficulty",
"mode": 2,
"value": "1",
"priority": null
}
],
"disabled": false,
"duration": {
"startTime": null,
"combat": null,
"seconds": null,
"rounds": null,
"turns": null,
"startRound": null,
"startTurn": null
},
"description": "<p>While flying, the Ashen Tyrant gains a +1 bonus to their Difficulty.</p>",
"origin": null,
"tint": "#ffffff",
"transfer": true,
"statuses": [],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items.effects!pMuXGCSOQaxpi5tb.jOojMjb779Kea1ZV.zCi90lgFAaA7yrJG"
}
],
"folder": null,
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items!pMuXGCSOQaxpi5tb.jOojMjb779Kea1ZV"
},
{
"name": "Ashes to Ashes",
"type": "feature",
"system": {
"description": "<p>When a PC rolls a failure while within Close range of the @Lookup[@name], they lose a Hope and you gain a Fear. If the PC cant lose a Hope, they must mark a HP.</p>",
"resource": null,
"actions": {
"q6gbeIrGMII6IeiM": {
"type": "damage",
"_id": "q6gbeIrGMII6IeiM",
"systemPath": "actions",
"description": "",
"chatDisplay": true,
"actionType": "action",
"cost": [],
"uses": {
"value": null,
"max": "",
"recovery": null
},
"damage": {
"parts": {
"hope": {
"value": {
"custom": {
"enabled": true,
"formula": "1"
},
"multiplier": "flat",
"flatMultiplier": 1,
"dice": "d6",
"bonus": null
},
"applyTo": "hope",
"type": [],
"base": false,
"resultBased": false,
"valueAlt": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"bonus": null,
"custom": {
"enabled": false
}
}
}
},
"includeBase": false,
"groupAttack": ""
},
"target": {
"type": "any",
"amount": null
},
"effects": [],
"name": "Lose Hope",
"img": "icons/magic/fire/flame-burning-skull-orange.webp",
"range": "close",
"areas": [
{
"name": "Ashes to Ashes",
"type": "placed",
"shape": "emanation",
"size": "close",
"effects": []
}
]
}
},
"originItemType": null,
"originId": null
},
"_id": "LeOYwp1GhN59NIHa",
"img": "icons/magic/fire/flame-burning-skull-orange.webp",
"effects": [],
"folder": null,
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items!pMuXGCSOQaxpi5tb.LeOYwp1GhN59NIHa"
},
{
"name": "Desperate Rampage",
"type": "feature",
"system": {
"description": "<p><strong>Mark a Stress</strong> to make an attack against all targets within Close range. Targets the @Lookup[@name] succeeds against take <strong>2d20+2</strong> physical damage, are knocked back to Close range of where they were, and must mark a Stress.</p>",
"resource": null,
"actions": {
"3glUQAcsLBcCumnS": {
"type": "attack",
"_id": "3glUQAcsLBcCumnS",
"systemPath": "actions",
"description": "",
"chatDisplay": true,
"actionType": "action",
"cost": [],
"uses": {
"value": null,
"max": "",
"recovery": null
},
"damage": {
"parts": {
"hitPoints": {
"value": {
"custom": {
"enabled": false
},
"flatMultiplier": 2,
"dice": "d20",
"bonus": 2,
"multiplier": "flat"
},
"applyTo": "hitPoints",
"type": [
"physical"
],
"base": false,
"resultBased": false,
"valueAlt": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"bonus": null,
"custom": {
"enabled": false
}
}
},
"stress": {
"value": {
"custom": {
"enabled": true,
"formula": "1"
},
"multiplier": "flat",
"flatMultiplier": 1,
"dice": "d6",
"bonus": null
},
"applyTo": "stress",
"type": [],
"base": false,
"resultBased": false,
"valueAlt": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"bonus": null,
"custom": {
"enabled": false
}
}
}
},
"includeBase": false,
"groupAttack": ""
},
"target": {
"type": "any",
"amount": null
},
"effects": [],
"roll": {
"type": "attack",
"trait": null,
"difficulty": null,
"bonus": null,
"advState": "neutral",
"diceRolling": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"compare": null,
"treshold": null
},
"useDefault": false
},
"save": {
"trait": null,
"difficulty": null,
"damageMod": "none"
},
"name": "Attack",
"img": "icons/creatures/abilities/tail-swipe-green.webp",
"range": "close",
"areas": [
{
"name": "Desperate Rampage",
"type": "placed",
"shape": "emanation",
"size": "close",
"effects": []
}
]
}
},
"originItemType": null,
"originId": null,
"featureForm": "action"
},
"_id": "AXhSVGL33i0j6DAw",
"img": "icons/creatures/abilities/tail-swipe-green.webp",
"effects": [],
"folder": null,
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items!pMuXGCSOQaxpi5tb.AXhSVGL33i0j6DAw"
},
{
"name": "Ashen Cloud",
"type": "feature",
"system": {
"description": "<p><strong>Spend a Fear</strong> to smash the ground and kick up ash within Far range. While within the ash cloud, a target has disadvantage on action rolls. The ash cloud clears the next time an adversary is spotlighted.</p>",
"resource": null,
"actions": {
"UrD4A68IBJgyfvvt": {
"type": "effect",
"_id": "UrD4A68IBJgyfvvt",
"systemPath": "actions",
"description": "",
"chatDisplay": true,
"actionType": "action",
"cost": [
{
"scalable": false,
"key": "fear",
"value": 1,
"step": null
}
],
"uses": {
"value": null,
"max": "",
"recovery": null
},
"effects": [],
"target": {
"type": "self",
"amount": null
},
"name": "Spend Fear",
"img": "icons/magic/air/fog-gas-smoke-brown.webp",
"range": "",
"areas": [
{
"name": "Ashen Cloud",
"type": "placed",
"shape": "emanation",
"size": "far",
"effects": []
}
]
}
},
"originItemType": null,
"originId": null,
"featureForm": "action"
},
"_id": "ggCol5LQ2ZpeQjly",
"img": "icons/magic/air/fog-gas-smoke-brown.webp",
"effects": [],
"folder": null,
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items!pMuXGCSOQaxpi5tb.ggCol5LQ2ZpeQjly"
},
{
"name": "Apocalyptic Thrasing",
"type": "feature",
"system": {
"description": "<p><em>Countdown (1d12)</em>. <strong>Spend a Fear</strong> to activate. It ticks down when a PC rolls with Fear. When it triggers, the @Lookup[@name] thrashes about, causing environmental damage (such as an earthquake, avalanche, or collapsing walls). All targets within Far range must make a Strength Reaction Roll. Targets who fail take 2d10+10 physical damage and are Restrained by the rubble until they break free with a successful Strength Roll. Targets who succeed take half damage. If the @Lookup[@name] is defeated while this countdown is active, trigger the countdown immediately as the destruction caused by their death throes.</p>",
"resource": null,
"actions": {
"OznXxmwiPwzuFPQZ": {
"type": "attack",
"_id": "OznXxmwiPwzuFPQZ",
"systemPath": "actions",
"description": "<p>When the countdown triggers, the @Lookup[@name] thrashes about, causing environmental damage (such as an earthquake, avalanche, or collapsing walls). All targets within Far range must make a Strength Reaction Roll. Targets who fail take 2d10+10 physical damage and are Restrained by the rubble until they break free with a successful Strength Roll. Targets who succeed take half damage. If the @Lookup[@name] is defeated while this countdown is active, trigger the countdown immediately as the destruction caused by their death throes.</p>",
"chatDisplay": true,
"actionType": "action",
"cost": [],
"uses": {
"value": null,
"max": "",
"recovery": null
},
"damage": {
"parts": {
"hitPoints": {
"value": {
"custom": {
"enabled": false
},
"flatMultiplier": 2,
"dice": "d10",
"bonus": 10,
"multiplier": "flat"
},
"applyTo": "hitPoints",
"type": [
"physical"
],
"base": false,
"resultBased": false,
"valueAlt": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"bonus": null,
"custom": {
"enabled": false
}
}
}
},
"includeBase": false,
"groupAttack": ""
},
"target": {
"type": "any",
"amount": null
},
"effects": [
{
"_id": "YUjdwrEZ4zn7WR9X",
"onSave": false
}
],
"roll": {
"type": null,
"trait": null,
"difficulty": null,
"bonus": null,
"advState": "neutral",
"diceRolling": {
"multiplier": "prof",
"flatMultiplier": 1,
"dice": "d6",
"compare": null,
"treshold": null
},
"useDefault": false
},
"save": {
"trait": "strength",
"difficulty": null,
"damageMod": "half"
},
"name": "Roll Save",
"img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp",
"range": "",
"areas": [
{
"name": "Apocalyptic Thrasing",
"type": "placed",
"shape": "emanation",
"size": "far",
"effects": []
}
]
},
"rZ7IwBnDzw7VmBT6": {
"type": "countdown",
"_id": "rZ7IwBnDzw7VmBT6",
"systemPath": "actions",
"description": "<p><em>Countdown (1d12)</em>. <strong>Spend a Fear</strong> to activate. It ticks down when a PC rolls with Fear.</p>",
"chatDisplay": true,
"originItem": {
"type": "itemCollection"
},
"actionType": "action",
"cost": [
{
"scalable": false,
"key": "fear",
"value": 1,
"itemId": null,
"step": null,
"consumeOnSuccess": false
}
],
"uses": {
"value": null,
"max": "",
"recovery": null,
"consumeOnSuccess": false
},
"countdown": [
{
"name": "Apocalyptic Thrasing",
"type": "encounter",
"defaultOwnership": -1,
"img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp",
"progress": {
"looping": "noLooping",
"type": "fear",
"start": 1,
"startFormula": "1d12",
"current": 1
},
"ownership": {}
}
],
"name": "Start Countdown",
"img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp",
"range": ""
}
},
"originItemType": null,
"originId": null,
"featureForm": "action"
},
"_id": "uWiyaJPXcoW06pOM",
"img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp",
"effects": [
{
"name": "Apocalyptic Thrasing",
"img": "icons/creatures/abilities/mouth-teeth-fire-orange.webp",
"origin": "Compendium.daggerheart.adversaries.Actor.pMuXGCSOQaxpi5tb.Item.uWiyaJPXcoW06pOM",
"transfer": false,
"_id": "YUjdwrEZ4zn7WR9X",
"type": "base",
"system": {
"rangeDependence": {
"enabled": false,
"type": "withinRange",
"target": "hostile",
"range": "melee"
},
"changes": [],
"duration": {
"type": "temporary",
"description": "<p>Until you break free with a successful Strength Roll.</p>"
}
},
"disabled": false,
"duration": {
"value": null,
"units": "seconds",
"expiry": null,
"expired": false
},
"description": "<p><em>Restrained</em> by the rubble until you break free with a successful Strength Roll.</p>",
"tint": "#ffffff",
"statuses": [
"restrained"
],
"sort": 0,
"flags": {},
"_stats": {
"compendiumSource": null
},
"start": {
"time": 0,
"combat": null,
"combatant": null,
"initiative": null,
"round": null,
"turn": null
},
"showIcon": 1,
"folder": null,
"_key": "!actors.items.effects!pMuXGCSOQaxpi5tb.uWiyaJPXcoW06pOM.YUjdwrEZ4zn7WR9X"
}
],
"folder": null,
"sort": 0,
"ownership": {
"default": 0,
"MQSznptE5yLT7kj8": 3
},
"flags": {},
"_stats": {
"compendiumSource": null
},
"_key": "!actors.items!pMuXGCSOQaxpi5tb.uWiyaJPXcoW06pOM"
}
],
"effects": [],
"sort": 500000,
"ownership": {
"default": 0,
"99pQVoplilbkZnOk": 3
},
"flags": {},
"_key": "!actors!pMuXGCSOQaxpi5tb"
}