From ab54edb47c310f93d872d9a0b88411e30878ef3d Mon Sep 17 00:00:00 2001 From: Psitacus <59754077+Psitacus@users.noreply.github.com> Date: Fri, 1 Aug 2025 04:16:56 -0600 Subject: [PATCH 1/5] Add communities and community features (#498) * add communities and community features * Updated Privileged * add advantage sources --------- Co-authored-by: psitacus Co-authored-by: WBHarry --- .../community_Highborne_DVw2mOCHB8i0XeBz.json | 16 ++- .../community_Loreborne_YsvlyqYoi8QQ8kwm.json | 16 ++- ...community_Orderborne_TY2TejenASXtS484.json | 16 ++- ...community_Ridgeborne_WHLA4qrdszXQHOuo.json | 16 ++- .../community_Seaborne_o5AA5J05N7EvH1rN.json | 16 ++- .../community_Slyborne_rGwCPMqZtky7SE6d.json | 16 ++- ...community_Underborne_eX0I1ZNMyD3nfaL1.json | 16 ++- ...ommunity_Wanderborne_82mDY2EIBfLkNwQj.json | 16 ++- .../community_Wildborne_CRJ5pzJj4FjCtIlx.json | 16 ++- .../feature_Dedicated_7aXWdH3gzaYREK0X.json | 57 +++++++++++ ...eature_Know_the_Tide_07x6Qe6qMzDw2xN4.json | 42 ++++++++ .../feature_Lightfoot_TQ1AIQjndC4mYmmU.json | 86 ++++++++++++++++ ...ure_Low_Light_Living_aMla3xQuCHEwORGD.json | 98 +++++++++++++++++++ ...feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json | 65 ++++++++++++ .../feature_Privilege_C7NR6qRatawZusmg.json | 98 +++++++++++++++++++ .../feature_Scoundrel_ZmEuBdL0JrvuA8le.json | 98 +++++++++++++++++++ .../feature_Steady_DYmmr5CknLtHnwuj.json | 98 +++++++++++++++++++ .../feature_Well_Read_JBZJmywisJg5X3tH.json | 86 ++++++++++++++++ 18 files changed, 827 insertions(+), 45 deletions(-) create mode 100644 src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json create mode 100644 src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json create mode 100644 src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json create mode 100644 src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json create mode 100644 src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json create mode 100644 src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json create mode 100644 src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json create mode 100644 src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json create mode 100644 src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json diff --git a/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json b/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json index 00c921b8..be485d0b 100644 --- a/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json +++ b/src/packs/communities/community_Highborne_DVw2mOCHB8i0XeBz.json @@ -1,25 +1,31 @@ { "name": "Highborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/settlement/palast.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of a highborne community means you’re accustomed to a life of elegance, opulence, and prestige within the upper echelons of society.

Traditionally, members of a highborne community possess incredible material wealth. While this can take a variety of forms depending on the community—including gold and other minerals, land, or controlling the means of production—this status always comes with power and influence. Highborne place great value on titles and possessions, and there is little social mobility within their ranks. Members of a highborne community often control the political and economic status of the areas in which they live due to their ability to influence people and the economy with their substantial wealth. The health and safety of the less affluent people who live in these locations often hinges on the ability of this highborne ruling class to prioritize the well-being of their subjects over profit.

\n

Highborne are often amiable, candid, conniving, enterprising, ostentatious, and unflappable.

" + "description": "

Being part of a highborne community means you’re accustomed to a life of elegance, opulence, and prestige within the upper echelons of society.

Traditionally, members of a highborne community possess incredible material wealth. While this can take a variety of forms depending on the community—including gold and other minerals, land, or controlling the means of production—this status always comes with power and influence. Highborne place great value on titles and possessions, and there is little social mobility within their ranks. Members of a highborne community often control the political and economic status of the areas in which they live due to their ability to influence people and the economy with their substantial wealth. The health and safety of the less affluent people who live in these locations often hinges on the ability of this highborne ruling class to prioritize the well-being of their subjects over profit.

\n

Highborne are often amiable, candid, conniving, enterprising, ostentatious, and unflappable.

", + "features": [ + "Compendium.daggerheart.communities.Item.C7NR6qRatawZusmg" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784392, - "modifiedTime": 1753922784392, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754010352828, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "DVw2mOCHB8i0XeBz", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!DVw2mOCHB8i0XeBz" } diff --git a/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json b/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json index d7e7be4d..50530aff 100644 --- a/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json +++ b/src/packs/communities/community_Loreborne_YsvlyqYoi8QQ8kwm.json @@ -1,25 +1,31 @@ { "name": "Loreborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/sundries/scrolls/scroll-writing-brown-gold.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of a loreborne community means you’re from a society that favors strong academic or political prowess.

Loreborne communities highly value knowledge, frequently in the form of historical preservation, political advancement, scientific study, skill development, or lore and mythology compilation. Most members of these communities research in institutions built in bastions of civilization, while some eclectic few thrive in gathering information from the natural world. Some may be isolationists, operating in smaller enclaves, schools, or guilds and following their own unique ethos. Others still wield their knowledge on a larger scale, making deft political maneuvers across governmental landscapes.

\n

Loreborne are often direct, eloquent, inquisitive, patient, rhapsodic, and witty.

" + "description": "

Being part of a loreborne community means you’re from a society that favors strong academic or political prowess.

Loreborne communities highly value knowledge, frequently in the form of historical preservation, political advancement, scientific study, skill development, or lore and mythology compilation. Most members of these communities research in institutions built in bastions of civilization, while some eclectic few thrive in gathering information from the natural world. Some may be isolationists, operating in smaller enclaves, schools, or guilds and following their own unique ethos. Others still wield their knowledge on a larger scale, making deft political maneuvers across governmental landscapes.

\n

Loreborne are often direct, eloquent, inquisitive, patient, rhapsodic, and witty.

", + "features": [ + "Compendium.daggerheart.communities.Item.JBZJmywisJg5X3tH" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784392, - "modifiedTime": 1753922784392, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754010491764, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "YsvlyqYoi8QQ8kwm", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!YsvlyqYoi8QQ8kwm" } diff --git a/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json b/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json index 70fc6e94..7817a2ea 100644 --- a/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json +++ b/src/packs/communities/community_Orderborne_TY2TejenASXtS484.json @@ -1,25 +1,31 @@ { "name": "Orderborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/people/infantry-army.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of an orderborne community means you’re from a collective that focuses on discipline or faith, and you uphold a set of principles that reflect your experience there.

Orderborne are frequently some of the most powerful among the surrounding communities. By aligning the members of their society around a common value or goal, such as a god, doctrine, ethos, or even a shared business or trade, the ruling bodies of these enclaves are able to mobilize larger populations with less effort. While orderborne communities take a variety of forms—some even profoundly pacifistic—perhaps the most feared are those that structure themselves around military prowess. In such a case, it’s not uncommon for orderborne to provide soldiers for hire to other cities or countries.

\n

Orderborne are often ambitious, benevolent, pensive, prudent, sardonic, and stoic.

" + "description": "

Being part of an orderborne community means you’re from a collective that focuses on discipline or faith, and you uphold a set of principles that reflect your experience there.

Orderborne are frequently some of the most powerful among the surrounding communities. By aligning the members of their society around a common value or goal, such as a god, doctrine, ethos, or even a shared business or trade, the ruling bodies of these enclaves are able to mobilize larger populations with less effort. While orderborne communities take a variety of forms—some even profoundly pacifistic—perhaps the most feared are those that structure themselves around military prowess. In such a case, it’s not uncommon for orderborne to provide soldiers for hire to other cities or countries.

\n

Orderborne are often ambitious, benevolent, pensive, prudent, sardonic, and stoic.

", + "features": [ + "Compendium.daggerheart.communities.Item.7aXWdH3gzaYREK0X" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784393, - "modifiedTime": 1753922784393, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754010626874, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "TY2TejenASXtS484", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!TY2TejenASXtS484" } diff --git a/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json b/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json index fd52c55e..5971d311 100644 --- a/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json +++ b/src/packs/communities/community_Ridgeborne_WHLA4qrdszXQHOuo.json @@ -1,25 +1,31 @@ { "name": "Ridgeborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/wilderness/terrain-rocks-brown.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of a ridgeborne community means you’ve called the rocky peaks and sharp cliffs of the mountainside home.

Those who’ve lived in the mountains often consider themselves hardier than most because they’ve thrived among the most dangerous terrain many continents have to offer. These groups are adept at adaptation, developing unique technologies and equipment to move both people and products across difficult terrain. As such, ridgeborne grow up scrambling and climbing, making them sturdy and strong-willed. Ridgeborne localities appear in a variety of forms—some cities carve out entire cliff faces, others construct castles of stone, and still more live in small homes on windblown peaks. Outside forces often struggle to attack ridgeborne groups, as the small militias and large military forces of the mountains are adept at utilizing their high-ground advantage.

\n

Ridgeborne are often bold, hardy, indomitable, loyal, reserved, and stubborn.

" + "description": "

Being part of a ridgeborne community means you’ve called the rocky peaks and sharp cliffs of the mountainside home.

Those who’ve lived in the mountains often consider themselves hardier than most because they’ve thrived among the most dangerous terrain many continents have to offer. These groups are adept at adaptation, developing unique technologies and equipment to move both people and products across difficult terrain. As such, ridgeborne grow up scrambling and climbing, making them sturdy and strong-willed. Ridgeborne localities appear in a variety of forms—some cities carve out entire cliff faces, others construct castles of stone, and still more live in small homes on windblown peaks. Outside forces often struggle to attack ridgeborne groups, as the small militias and large military forces of the mountains are adept at utilizing their high-ground advantage.

\n

Ridgeborne are often bold, hardy, indomitable, loyal, reserved, and stubborn.

", + "features": [ + "Compendium.daggerheart.communities.Item.DYmmr5CknLtHnwuj" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784394, - "modifiedTime": 1753922784394, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754010655426, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "WHLA4qrdszXQHOuo", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!WHLA4qrdszXQHOuo" } diff --git a/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json b/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json index ac1e13ea..95798e66 100644 --- a/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json +++ b/src/packs/communities/community_Seaborne_o5AA5J05N7EvH1rN.json @@ -1,25 +1,31 @@ { "name": "Seaborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/settlement/ship.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of a seaborne community means you lived on or near a large body of water.

Seaborne communities are built, both physically and culturally, around the specific waters they call home. Some of these groups live along the shore, constructing ports for locals and travelers alike. These harbors function as centers of commerce, tourist attractions, or even just a safe place to lay down one’s head after weeks of travel. Other seaborne live on the water in small boats or large ships, with the idea of “home” comprising a ship and its crew, rather than any one landmass. No matter their exact location, seaborne communities are closely tied to the ocean tides and the creatures who inhabit them. Seaborne learn to fish at a young age, and train from birth to hold their breath and swim in even the most tumultuous waters. Individuals from these groups are highly sought after for their sailing skills, and many become captains of vessels, whether within their own community, working for another, or even at the helm of a powerful naval operation.

\n

Seaborne are often candid, cooperative, exuberant, fierce, resolute, and weathered.

" + "description": "

Being part of a seaborne community means you lived on or near a large body of water.

Seaborne communities are built, both physically and culturally, around the specific waters they call home. Some of these groups live along the shore, constructing ports for locals and travelers alike. These harbors function as centers of commerce, tourist attractions, or even just a safe place to lay down one’s head after weeks of travel. Other seaborne live on the water in small boats or large ships, with the idea of “home” comprising a ship and its crew, rather than any one landmass. No matter their exact location, seaborne communities are closely tied to the ocean tides and the creatures who inhabit them. Seaborne learn to fish at a young age, and train from birth to hold their breath and swim in even the most tumultuous waters. Individuals from these groups are highly sought after for their sailing skills, and many become captains of vessels, whether within their own community, working for another, or even at the helm of a powerful naval operation.

\n

Seaborne are often candid, cooperative, exuberant, fierce, resolute, and weathered.

", + "features": [ + "Compendium.daggerheart.communities.Item.07x6Qe6qMzDw2xN4" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784395, - "modifiedTime": 1753922784395, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754010861330, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "o5AA5J05N7EvH1rN", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!o5AA5J05N7EvH1rN" } diff --git a/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json b/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json index 53d8f2e9..c038fe90 100644 --- a/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json +++ b/src/packs/communities/community_Slyborne_rGwCPMqZtky7SE6d.json @@ -1,25 +1,31 @@ { "name": "Slyborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/settlement/city-night-spire.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists.

Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists. Members of slyborne communities are brought together by their disreputable goals and their clever means of achieving them. Many people in these communities have an array of unscrupulous skills: forging, thievery, smuggling, and violence. People of any social class can be slyborne, from those who have garnered vast wealth and influence to those without a coin to their name. To the outside eye, slyborne might appear to be ruffians with no loyalty, but these communities possess some of the strictest codes of honor which, when broken, can result in a terrifying end for the transgressor.

\n

Slyborne are often calculating, clever, formidable, perceptive, shrewd, and tenacious.

" + "description": "

Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists.

Being part of a slyborne community means you come from a group that operates outside the law, including all manner of criminals, grifters, and con artists. Members of slyborne communities are brought together by their disreputable goals and their clever means of achieving them. Many people in these communities have an array of unscrupulous skills: forging, thievery, smuggling, and violence. People of any social class can be slyborne, from those who have garnered vast wealth and influence to those without a coin to their name. To the outside eye, slyborne might appear to be ruffians with no loyalty, but these communities possess some of the strictest codes of honor which, when broken, can result in a terrifying end for the transgressor.

\n

Slyborne are often calculating, clever, formidable, perceptive, shrewd, and tenacious.

", + "features": [ + "Compendium.daggerheart.communities.Item.ZmEuBdL0JrvuA8le" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784396, - "modifiedTime": 1753922784396, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754011031727, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "rGwCPMqZtky7SE6d", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!rGwCPMqZtky7SE6d" } diff --git a/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json b/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json index bb562103..7bd276be 100644 --- a/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json +++ b/src/packs/communities/community_Underborne_eX0I1ZNMyD3nfaL1.json @@ -1,25 +1,31 @@ { "name": "Underborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/wilderness/cave-entrance-dwarven-hill.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of an underborne community means you’re from a subterranean society.

Many underborne live right beneath the cities and villages of other collectives, while some live much deeper. These communities range from small family groups in burrows to massive metropolises in caverns of stone. In many locales, underborne are recognized for their incredible boldness and skill that enable great feats of architecture and engineering. Underborne are regularly hired for their bravery, as even the least daring among them has likely encountered formidable belowground beasts, and learning to dispatch such creatures is common practice amongst these societies. Because of the dangers of their environment, many underborne communities develop unique nonverbal languages that prove equally useful on the surface.

\n

Underborne are often composed, elusive, indomitable, innovative, resourceful, and unpretentious.

" + "description": "

Being part of an underborne community means you’re from a subterranean society.

Many underborne live right beneath the cities and villages of other collectives, while some live much deeper. These communities range from small family groups in burrows to massive metropolises in caverns of stone. In many locales, underborne are recognized for their incredible boldness and skill that enable great feats of architecture and engineering. Underborne are regularly hired for their bravery, as even the least daring among them has likely encountered formidable belowground beasts, and learning to dispatch such creatures is common practice amongst these societies. Because of the dangers of their environment, many underborne communities develop unique nonverbal languages that prove equally useful on the surface.

\n

Underborne are often composed, elusive, indomitable, innovative, resourceful, and unpretentious.

", + "features": [ + "Compendium.daggerheart.communities.Item.aMla3xQuCHEwORGD" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784398, - "modifiedTime": 1753922784398, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754011085731, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "eX0I1ZNMyD3nfaL1", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!eX0I1ZNMyD3nfaL1" } diff --git a/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json b/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json index f84b711c..a1b03f93 100644 --- a/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json +++ b/src/packs/communities/community_Wanderborne_82mDY2EIBfLkNwQj.json @@ -1,25 +1,31 @@ { "name": "Wanderborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/settlement/wagon.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of a wanderborne community means you’ve lived as a nomad, forgoing a permanent home and experiencing a wide variety of cultures.

Unlike many communities that are defined by their locale, wanderborne are defined by their traveling lifestyle. Because of their frequent migration, wanderborne put less value on the accumulation of material possessions in favor of acquiring information, skills, and connections. While some wanderborne are allied by a common ethos, such as a religion or a set of political or economic values, others come together after shared tragedy, such as the loss of their home or land. No matter the reason, the dangers posed by life on the road and the choice to continue down that road together mean that wanderborne are known for their unwavering loyalty.

\n

Wanderborne are often inscrutable, magnanimous, mirthful, reliable, savvy, and unorthodox.

" + "description": "

Being part of a wanderborne community means you’ve lived as a nomad, forgoing a permanent home and experiencing a wide variety of cultures.

Unlike many communities that are defined by their locale, wanderborne are defined by their traveling lifestyle. Because of their frequent migration, wanderborne put less value on the accumulation of material possessions in favor of acquiring information, skills, and connections. While some wanderborne are allied by a common ethos, such as a religion or a set of political or economic values, others come together after shared tragedy, such as the loss of their home or land. No matter the reason, the dangers posed by life on the road and the choice to continue down that road together mean that wanderborne are known for their unwavering loyalty.

\n

Wanderborne are often inscrutable, magnanimous, mirthful, reliable, savvy, and unorthodox.

", + "features": [ + "Compendium.daggerheart.communities.Item.2RSrQouA2zEJ5Xee" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784398, - "modifiedTime": 1753922784398, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754011123332, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "82mDY2EIBfLkNwQj", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!82mDY2EIBfLkNwQj" } diff --git a/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json b/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json index 49936d47..73032136 100644 --- a/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json +++ b/src/packs/communities/community_Wildborne_CRJ5pzJj4FjCtIlx.json @@ -1,25 +1,31 @@ { "name": "Wildborne", - "img": "icons/svg/item-bag.svg", + "img": "icons/environment/wilderness/tree-oak.webp", "type": "community", "folder": null, "system": { - "description": "

Being part of a wildborne community means you lived deep within the forest.

Wildborne communities are defined by their dedication to the conservation of their homelands, and many have strong religious or cultural ties to the fauna they live among. This results in unique architectural and technological advancements that favor sustainability over short-term, high-yield results. It is a hallmark of wildborne societies to integrate their villages and cities with the natural environment and avoid disturbing the lives of the plants and animals. While some construct their lodgings high in the branches of trees, others establish their homes on the ground beneath the forest canopy. It’s not uncommon for wildborne to remain reclusive and hidden within their woodland homes.

\n

Wildborne are often hardy, loyal, nurturing, reclusive, sagacious, and vibrant.

" + "description": "

Being part of a wildborne community means you lived deep within the forest.

Wildborne communities are defined by their dedication to the conservation of their homelands, and many have strong religious or cultural ties to the fauna they live among. This results in unique architectural and technological advancements that favor sustainability over short-term, high-yield results. It is a hallmark of wildborne societies to integrate their villages and cities with the natural environment and avoid disturbing the lives of the plants and animals. While some construct their lodgings high in the branches of trees, others establish their homes on the ground beneath the forest canopy. It’s not uncommon for wildborne to remain reclusive and hidden within their woodland homes.

\n

Wildborne are often hardy, loyal, nurturing, reclusive, sagacious, and vibrant.

", + "features": [ + "Compendium.daggerheart.communities.Item.TQ1AIQjndC4mYmmU" + ] }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784398, - "modifiedTime": 1753922784398, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754011159389, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" }, "_id": "CRJ5pzJj4FjCtIlx", "sort": 3400000, "effects": [], + "ownership": { + "default": 0 + }, "_key": "!items!CRJ5pzJj4FjCtIlx" } diff --git a/src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json b/src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json new file mode 100644 index 00000000..c93811a9 --- /dev/null +++ b/src/packs/communities/feature_Dedicated_7aXWdH3gzaYREK0X.json @@ -0,0 +1,57 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Dedicated", + "type": "feature", + "_id": "7aXWdH3gzaYREK0X", + "img": "icons/environment/people/cleric-orange.webp", + "system": { + "description": "

Record three sayings or values your upbringing instilled in you. Once per rest, when you describe how you’re embodying one of these principles through your current action, you can roll a d20 as your Hope Die

", + "resource": null, + "actions": { + "ZBVqSlsDUKf8uGrI": { + "type": "effect", + "_id": "ZBVqSlsDUKf8uGrI", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "1", + "recovery": "shortRest" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Use", + "img": "icons/environment/people/cleric-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!7aXWdH3gzaYREK0X" +} diff --git a/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json b/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json new file mode 100644 index 00000000..cab7e54d --- /dev/null +++ b/src/packs/communities/feature_Know_the_Tide_07x6Qe6qMzDw2xN4.json @@ -0,0 +1,42 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Know the Tide", + "type": "feature", + "_id": "07x6Qe6qMzDw2xN4", + "img": "icons/environment/wilderness/cave-entrance-island.webp", + "system": { + "description": "

You can sense the ebb and flow of life. When you roll with Fear, place a token on your community card. You can hold a number of tokens equal to your level. Before you make an action roll, you can spend any number of these tokens to gain a +1 bonus to the roll for each token spent. At the end of each session, clear all unspent tokens.

", + "resource": { + "type": "simple", + "value": 0, + "max": "", + "icon": "", + "recovery": null, + "diceStates": {}, + "dieFaces": "d4" + }, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!07x6Qe6qMzDw2xN4" +} diff --git a/src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json b/src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json new file mode 100644 index 00000000..86d1ba97 --- /dev/null +++ b/src/packs/communities/feature_Lightfoot_TQ1AIQjndC4mYmmU.json @@ -0,0 +1,86 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Lightfoot", + "type": "feature", + "_id": "TQ1AIQjndC4mYmmU", + "img": "icons/magic/control/debuff-energy-snare-blue.webp", + "system": { + "description": "

Your movement is naturally silent. You have advantage on rolls to move without being heard.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Lightfoot", + "type": "base", + "_id": "4my9X5XC3uwDSx7B", + "img": "icons/magic/control/debuff-energy-snare-blue.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "Move without being heard.", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "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": 1754020396302, + "modifiedTime": 1754020437585, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "_key": "!items.effects!TQ1AIQjndC4mYmmU.4my9X5XC3uwDSx7B" + } + ], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!TQ1AIQjndC4mYmmU" +} diff --git a/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json b/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json new file mode 100644 index 00000000..27dde95c --- /dev/null +++ b/src/packs/communities/feature_Low_Light_Living_aMla3xQuCHEwORGD.json @@ -0,0 +1,98 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Low-Light Living", + "type": "feature", + "_id": "aMla3xQuCHEwORGD", + "img": "icons/environment/settlement/temple-night.webp", + "system": { + "description": "

When you’re in an area with low light or heavy shadow, you have advantage on rolls to hide, investigate, or perceive details within that area.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Low-Light Living", + "type": "base", + "_id": "pCp32u7UwqxCI4WW", + "img": "icons/environment/settlement/temple-night.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "In an area with low light or heavy shadow: hide, investigate, or perceive", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "", + "priority": null + }, + { + "key": "", + "mode": 2, + "value": "", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "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": 1754020102118, + "modifiedTime": 1754020317730, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "_key": "!items.effects!aMla3xQuCHEwORGD.pCp32u7UwqxCI4WW" + } + ], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!aMla3xQuCHEwORGD" +} diff --git a/src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json b/src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json new file mode 100644 index 00000000..605c9d7d --- /dev/null +++ b/src/packs/communities/feature_Nomadic_Pack_2RSrQouA2zEJ5Xee.json @@ -0,0 +1,65 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Nomadic Pack", + "type": "feature", + "_id": "2RSrQouA2zEJ5Xee", + "img": "icons/containers/bags/pack-leather-brown.webp", + "system": { + "description": "

Add a Nomadic Pack to your inventory. Once per session, you can spend a Hope to reach into this pack and pull out a mundane item that’s useful to your situation. Work with the GM to figure out what item you take out.

", + "resource": null, + "actions": { + "Jd9uVincqkIMAXgU": { + "type": "effect", + "_id": "Jd9uVincqkIMAXgU", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "keyIsID": false, + "key": "hope", + "value": 1, + "scalable": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "1", + "recovery": "session" + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Pull Item", + "img": "icons/containers/bags/pack-leather-brown.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!2RSrQouA2zEJ5Xee" +} diff --git a/src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json b/src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json new file mode 100644 index 00000000..20f015b2 --- /dev/null +++ b/src/packs/communities/feature_Privilege_C7NR6qRatawZusmg.json @@ -0,0 +1,98 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Privilege", + "type": "feature", + "_id": "C7NR6qRatawZusmg", + "img": "icons/commodities/currency/coins-plain-stack-gold.webp", + "system": { + "description": "

You have advantage on rolls to consort with nobles, negotiate prices, or leverage your reputation to get what you want.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Privilege", + "type": "base", + "_id": "xgtjykfgvg142urA", + "img": "icons/commodities/currency/coins-plain-stack-gold.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "Consort with nobles", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "Negotiate prices", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "Leverage your reputation to get what you want", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "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": 1754015237400, + "modifiedTime": 1754015289801, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!items.effects!C7NR6qRatawZusmg.xgtjykfgvg142urA" + } + ], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!C7NR6qRatawZusmg" +} diff --git a/src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json b/src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json new file mode 100644 index 00000000..b5618477 --- /dev/null +++ b/src/packs/communities/feature_Scoundrel_ZmEuBdL0JrvuA8le.json @@ -0,0 +1,98 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Scoundrel", + "type": "feature", + "_id": "ZmEuBdL0JrvuA8le", + "img": "icons/equipment/head/hood-cloth-teal-gold.webp", + "system": { + "description": "

You have advantage on rolls to negotiate with criminals, detect lies, or find a safe place to hide.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Scoundrel", + "type": "base", + "_id": "snkYmZ22Q8HHLY9M", + "img": "icons/equipment/head/hood-cloth-teal-gold.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "Negotiate with criminals", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "Detect lies", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "Find a safe place to hide", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "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": 1754020484740, + "modifiedTime": 1754020540768, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "_key": "!items.effects!ZmEuBdL0JrvuA8le.snkYmZ22Q8HHLY9M" + } + ], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!ZmEuBdL0JrvuA8le" +} diff --git a/src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json b/src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json new file mode 100644 index 00000000..713f8f53 --- /dev/null +++ b/src/packs/communities/feature_Steady_DYmmr5CknLtHnwuj.json @@ -0,0 +1,98 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Steady", + "type": "feature", + "_id": "DYmmr5CknLtHnwuj", + "img": "icons/equipment/feet/boots-collared-simple-leather.webp", + "system": { + "description": "

You have advantage on rolls to traverse dangerous cliffs and ledges, navigate harsh environments, and use your survival knowledge.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Steady", + "type": "base", + "_id": "QDf9LD8Mhd0Cw0CB", + "img": "icons/equipment/feet/boots-collared-simple-leather.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "Traverse dangerous cliffs and ledges", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "Navigate harsh environment", + "priority": null + }, + { + "key": "system.advantageSources", + "mode": 2, + "value": "Use your survival knowledge", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "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": 1754020582449, + "modifiedTime": 1754020663104, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "_key": "!items.effects!DYmmr5CknLtHnwuj.QDf9LD8Mhd0Cw0CB" + } + ], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!DYmmr5CknLtHnwuj" +} diff --git a/src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json b/src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json new file mode 100644 index 00000000..7fd9e397 --- /dev/null +++ b/src/packs/communities/feature_Well_Read_JBZJmywisJg5X3tH.json @@ -0,0 +1,86 @@ +{ + "folder": "KA1VSGslxkbvVeMp", + "name": "Well-Read", + "type": "feature", + "_id": "JBZJmywisJg5X3tH", + "img": "icons/sundries/books/book-open-brown.webp", + "system": { + "description": "

You have advantage on rolls that involve the history, culture, or politics of a prominent person or place.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Well-Read", + "type": "base", + "_id": "RwhxYOAAKKlYZiz0", + "img": "icons/sundries/books/book-open-brown.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.advantageSources", + "mode": 2, + "value": "History, culture, or politics of a prominent person or place", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "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": 1754020727223, + "modifiedTime": 1754020782488, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "_key": "!items.effects!JBZJmywisJg5X3tH.RwhxYOAAKKlYZiz0" + } + ], + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010247432, + "modifiedTime": 1754010247432, + "lastModifiedBy": "Q9NoTaEarn3VMS6Z" + }, + "sort": 0, + "ownership": { + "default": 0, + "Q9NoTaEarn3VMS6Z": 3 + }, + "_key": "!items!JBZJmywisJg5X3tH" +} From 3014be79ada9ed5ab1fec302034836a311678079 Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Fri, 1 Aug 2025 16:42:52 +0200 Subject: [PATCH 2/5] Made sure to load compendium document if it wasn't already (#501) --- module/data/item/base.mjs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs index 1839a983..8b9adab4 100644 --- a/module/data/item/base.mjs +++ b/module/data/item/base.mjs @@ -126,15 +126,20 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { if (this.actor && this.actor.type === 'character' && this.features) { for (let f of this.features) { - const feature = f.item ?? f; - const createData = foundry.utils.mergeObject(feature.toObject(), { - system: { - originItemType: this.parent.type, - originId: data._id, - identifier: feature.identifier, - subType: feature.item ? feature.type : undefined - } - }, { inplace: false }); + const fBase = f.item ?? f; + const feature = fBase.system ? fBase : await foundry.utils.fromUuid(fBase.uuid); + const createData = foundry.utils.mergeObject( + feature.toObject(), + { + system: { + originItemType: this.parent.type, + originId: data._id, + identifier: feature.identifier, + subType: feature.item ? feature.type : undefined + } + }, + { inplace: false } + ); await this.actor.createEmbeddedDocuments('Item', [createData]); } } From 263dfa69aec6606bab938915eca257944e8c2a4a Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Fri, 1 Aug 2025 16:43:59 +0200 Subject: [PATCH 3/5] [Feature] 494 - Adversaries Tier 1 (#500) * Some work * More work * Finished Tier 1 --- lang/en.json | 8 + .../sheets/api/application-mixin.mjs | 6 +- module/config/generalConfig.mjs | 6 + module/data/action/damageAction.mjs | 10 +- module/data/activeEffect/_module.mjs | 6 +- module/data/activeEffect/hordeEffect.mjs | 3 + module/data/actor/adversary.mjs | 63 +- module/documents/activeEffect.mjs | 15 +- module/documents/item.mjs | 12 +- module/enrichers/TemplateEnricher.mjs | 22 +- module/enrichers/_module.mjs | 6 +- ...ersary_Acid_Burrower_89yAh30vaNQOALlz.json | 709 ++++++++++++++++++ ...ersary_Acid_Burrower_aKVLLjMb35om4QbJ.json | 186 ----- ...versary_Archer_Guard_JRhrrEg5UroURiAD.json | 227 +++++- .../adversary_Bear_71qKDLKO3CsrNkdy.json | 368 ++++++++- ...versary_Bladed_Guard_B4LZcGuBAHzyVdzy.json | 272 ++++++- ...ersary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json | 359 ++++++++- .../adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json | 432 ++++++++++- .../adversary_Construct_uOP5oT9QzXPlnf3p.json | 462 +++++++++++- .../adversary_Courtier_CBBuEXAlLKFMJdjg.json | 292 +++++++- ...ry_Deeproot_Defender_9x2xY9zwc3xzbXo5.json | 306 +++++++- .../adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json | 332 +++++++- ...ary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json | 291 ++++++- .../adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json | 191 ++++- ...rsary_Giant_Scorpion_fmfntuJ8mHRCAktP.json | 353 ++++++++- ...dversary_Glass_Snake_8KWVLWXFhlY2kYx0.json | 440 ++++++++++- ...adversary_Green_Ooze_SHXedd9zZPVfUgUa.json | 433 ++++++++++- .../adversary_Harrier_uRtghKE9mHlII4rs.json | 208 ++++- ...adversary_Head_Guard_mK3A5FTx6k8iPU3F.json | 220 +++++- ..._Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json | 180 ++++- ...y_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json | 275 ++++++- ...ed_Knife_Kneebreaker_CBKixLH3yhivZZuL.json | 231 +++++- ..._Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json | 167 ++++- ...ged_Knife_Lieutenant_aTljstqteGoLpCBq.json | 334 ++++++++- ..._Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json | 248 +++++- ..._Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json | 167 ++++- .../adversary_Merchant_Al3w2CgjfdT3p9ma.json | 180 ++++- ...inor_Chaos_Elemental_sRn4bqerfARvhgSV.json | 449 ++++++++++- ...dversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json | 388 +++++++++- ...Minor_Fire_Elemental_DscWkNVoHak6P4hh.json | 527 ++++++++++++- ...versary_Minor_Treant_G62k4oSkhkoXEs2D.json | 160 +++- ...atchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json | 374 ++++++++- ...dversary_Petty_Noble_wycLpvebWdUqRhpP.json | 248 +++++- ...rsary_Pirate_Captain_OROJbjsqagVh7ECV.json | 363 ++++++++- ...rsary_Pirate_Raiders_5YgEajn0wa4i85kC.json | 224 +++++- ...versary_Pirate_Tough_GB8zP9LYt061DlqY.json | 222 +++++- .../adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json | 369 ++++++++- ...ersary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json | 160 +++- .../adversary_Sellsword_bgreCaQ6ap2DVpCr.json | 160 +++- ...ary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json | 171 ++++- ...sary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json | 195 ++++- ...sary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json | 160 +++- ...sary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json | 388 +++++++++- ...ary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json | 217 +++++- ...adversary_Spellblade_ldbWEL7uZs84vyrR.json | 310 +++++++- ...ersary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json | 164 +++- ...rsary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json | 398 +++++++++- ...Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json | 535 +++++++++++++ ...Tangle_Bramble_Swarm_RLvFm4xfDYB6MZ7j.json | 186 ----- ...rsary_Tangle_Bramble_XcAGOSmtCFLT1unN.json | 389 ++++++++++ ...rsary_Tangle_Bramble_jd4MVRwy9zTfmRRE.json | 170 ----- ...sary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json | 152 +++- ...ersary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json | 152 +++- ...versary_Weaponmaster_ZNbQ2jg35LG4t9eH.json | 386 +++++++++- ...dversary_Young_Dryad_8yUj2Mzvnifhxegm.json | 300 +++++++- ...dversary_Zombie_Pack_Nf0v43rtflV56V2T.json | 195 ++++- styles/less/global/elements.less | 1 + system.json | 3 +- templates/sheets/actors/adversary/sidebar.hbs | 5 +- .../global/partials/inventory-item-V2.hbs | 2 +- 70 files changed, 15171 insertions(+), 972 deletions(-) create mode 100644 module/data/activeEffect/hordeEffect.mjs create mode 100644 src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json delete mode 100644 src/packs/adversaries/adversary_Acid_Burrower_aKVLLjMb35om4QbJ.json create mode 100644 src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json delete mode 100644 src/packs/adversaries/adversary_Tangle_Bramble_Swarm_RLvFm4xfDYB6MZ7j.json create mode 100644 src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json delete mode 100644 src/packs/adversaries/adversary_Tangle_Bramble_jd4MVRwy9zTfmRRE.json diff --git a/lang/en.json b/lang/en.json index 1ccfeac8..2ed77e99 100755 --- a/lang/en.json +++ b/lang/en.json @@ -930,6 +930,14 @@ "selectType": "Select Action Type", "selectAction": "Action Selection" }, + "TemplateTypes": { + "circle": "Circle", + "cone": "Cone", + "emanation": "Emanation", + "inFront": "In Front", + "rect": "Rectangle", + "ray": "Ray" + }, "Traits": { "agility": { "name": "Agility", diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index 50c93617..d5d0565f 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -311,8 +311,12 @@ export default function DHApplicationMixin(Base) { name: 'CONTROLS.CommonEdit', icon: 'fa-solid fa-pen-to-square', condition: target => { + const { dataset } = target.closest('[data-item-uuid]'); const doc = getDocFromElementSync(target); - return !doc || !doc.hasOwnProperty('systemPath') || doc.inCollection; + return ( + (!dataset.noCompendiumEdit && !doc) || + (doc && (!doc?.hasOwnProperty('systemPath') || doc?.inCollection)) + ); }, callback: async target => (await getDocFromElement(target)).sheet.render({ force: true }) } diff --git a/module/config/generalConfig.mjs b/module/config/generalConfig.mjs index 361adcea..5f2011bb 100644 --- a/module/config/generalConfig.mjs +++ b/module/config/generalConfig.mjs @@ -43,6 +43,12 @@ export const range = { } }; +export const templateTypes = { + ...CONST.MEASURED_TEMPLATE_TYPES, + EMANATION: 'emanation', + INFRONT: 'inFront' +}; + export const rangeInclusion = { withinRange: { id: 'withinRange', diff --git a/module/data/action/damageAction.mjs b/module/data/action/damageAction.mjs index c8da5737..d7ad6f1c 100644 --- a/module/data/action/damageAction.mjs +++ b/module/data/action/damageAction.mjs @@ -10,10 +10,8 @@ export default class DHDamageAction extends DHBaseAction { const isAdversary = this.actor.type === 'adversary'; if (isAdversary && this.actor.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { - const hasHordeDamage = this.actor.effects.find( - x => x.name === game.i18n.localize('DAGGERHEART.CONFIG.AdversaryType.horde.label') - ); - if (hasHordeDamage) return part.valueAlt; + const hasHordeDamage = this.actor.effects.find(x => x.type === 'horde'); + if (hasHordeDamage && !hasHordeDamage.disabled) return part.valueAlt; } return formulaValue; @@ -47,7 +45,9 @@ export default class DHDamageAction extends DHBaseAction { formulas = this.formatFormulas(formulas, systemData); const config = { - title: game.i18n.format(`DAGGERHEART.UI.Chat.${ this.type === 'healing' ? 'healing' : 'damage'}Roll.title`, { damage: game.i18n.localize(this.name) }), + title: game.i18n.format(`DAGGERHEART.UI.Chat.${this.type === 'healing' ? 'healing' : 'damage'}Roll.title`, { + damage: game.i18n.localize(this.name) + }), roll: formulas, targets: systemData.targets?.filter(t => t.hit) ?? data.targets, hasSave: this.hasSave, diff --git a/module/data/activeEffect/_module.mjs b/module/data/activeEffect/_module.mjs index 79ad7813..1a50088a 100644 --- a/module/data/activeEffect/_module.mjs +++ b/module/data/activeEffect/_module.mjs @@ -1,9 +1,11 @@ import BaseEffect from './baseEffect.mjs'; import BeastformEffect from './beastformEffect.mjs'; +import HordeEffect from './hordeEffect.mjs'; -export { BaseEffect, BeastformEffect }; +export { BaseEffect, BeastformEffect, HordeEffect }; export const config = { base: BaseEffect, - beastform: BeastformEffect + beastform: BeastformEffect, + horde: HordeEffect }; diff --git a/module/data/activeEffect/hordeEffect.mjs b/module/data/activeEffect/hordeEffect.mjs new file mode 100644 index 00000000..775aa5a9 --- /dev/null +++ b/module/data/activeEffect/hordeEffect.mjs @@ -0,0 +1,3 @@ +import BaseEffect from './baseEffect.mjs'; + +export default class HordeEffect extends BaseEffect {} diff --git a/module/data/actor/adversary.mjs b/module/data/actor/adversary.mjs index 08455dd3..161c3324 100644 --- a/module/data/actor/adversary.mjs +++ b/module/data/actor/adversary.mjs @@ -117,29 +117,46 @@ export default class DhpAdversary extends BaseDataActor { if (allowed === false) return false; if (this.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { - if (changes.system?.resources?.hitPoints?.value) { - const halfHP = Math.ceil(this.resources.hitPoints.max / 2); - const newHitPoints = changes.system.resources.hitPoints.value; - const previouslyAboveHalf = this.resources.hitPoints.value < halfHP; - const loweredBelowHalf = previouslyAboveHalf && newHitPoints >= halfHP; - const raisedAboveHalf = !previouslyAboveHalf && newHitPoints < halfHP; - if (loweredBelowHalf) { - await this.parent.createEmbeddedDocuments('ActiveEffect', [ - { - name: game.i18n.localize('DAGGERHEART.CONFIG.AdversaryType.horde.label'), - img: 'icons/magic/movement/chevrons-down-yellow.webp', - disabled: !game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation) - .hordeDamage - } - ]); - } else if (raisedAboveHalf) { - const hordeEffects = this.parent.effects.filter( - x => x.name === game.i18n.localize('DAGGERHEART.CONFIG.AdversaryType.horde.label') - ); - await this.parent.deleteEmbeddedDocuments( - 'ActiveEffect', - hordeEffects.map(x => x.id) - ); + const autoHordeDamage = game.settings.get( + CONFIG.DH.id, + CONFIG.DH.SETTINGS.gameSettings.Automation + ).hordeDamage; + if (autoHordeDamage && changes.system?.resources?.hitPoints?.value) { + const hordeActiveEffect = this.parent.effects.find(x => x.type === 'horde'); + if (hordeActiveEffect) { + const halfHP = Math.ceil(this.resources.hitPoints.max / 2); + const newHitPoints = changes.system.resources.hitPoints.value; + const previouslyAboveHalf = this.resources.hitPoints.value < halfHP; + const loweredBelowHalf = previouslyAboveHalf && newHitPoints >= halfHP; + const raisedAboveHalf = !previouslyAboveHalf && newHitPoints < halfHP; + if (loweredBelowHalf) { + await hordeActiveEffect.update({ disabled: false }); + } else if (raisedAboveHalf) { + await hordeActiveEffect.update({ disabled: true }); + } + } + } + } + } + + _onUpdate(changes, options, userId) { + super._onUpdate(changes, options, userId); + + if (game.user.id === userId) { + if (changes.system.type) { + const existingHordeEffect = this.parent.effects.find(x => x.type === 'horde'); + if (changes.system.type === CONFIG.DH.ACTOR.adversaryTypes.horde.id) { + if (!existingHordeEffect) + this.parent.createEmbeddedDocuments('ActiveEffect', [ + { + type: 'horde', + name: game.i18n.localize('DAGGERHEART.CONFIG.AdversaryType.horde.label'), + img: 'icons/magic/movement/chevrons-down-yellow.webp', + disabled: true + } + ]); + } else { + existingHordeEffect?.delete(); } } } diff --git a/module/documents/activeEffect.mjs b/module/documents/activeEffect.mjs index 07dacb2f..cee90b91 100644 --- a/module/documents/activeEffect.mjs +++ b/module/documents/activeEffect.mjs @@ -1,7 +1,6 @@ import { itemAbleRollParse } from '../helpers/utils.mjs'; export default class DhActiveEffect extends foundry.documents.ActiveEffect { - /* -------------------------------------------- */ /* Properties */ /* -------------------------------------------- */ @@ -78,8 +77,8 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { /** * Altered Foundry safeEval to allow non-numeric return - * @param {string} expression - * @returns + * @param {string} expression + * @returns */ static effectSafeEval(expression) { let result; @@ -95,13 +94,15 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect { } /** - * Generates a list of localized tags based on this item's type-specific properties. - * @returns {string[]} An array of localized tag strings. - */ + * Generates a list of localized tags based on this item's type-specific properties. + * @returns {string[]} An array of localized tag strings. + */ _getTags() { const tags = [ `${game.i18n.localize(this.parent.system.metadata.label)}: ${this.parent.name}`, - game.i18n.localize(this.isTemporary ? 'DAGGERHEART.EFFECTS.Duration.temporary' : 'DAGGERHEART.EFFECTS.Duration.passive') + game.i18n.localize( + this.isTemporary ? 'DAGGERHEART.EFFECTS.Duration.temporary' : 'DAGGERHEART.EFFECTS.Duration.passive' + ) ]; for (const statusId of this.statuses) { diff --git a/module/documents/item.mjs b/module/documents/item.mjs index 3e44e846..21ba8bc4 100644 --- a/module/documents/item.mjs +++ b/module/documents/item.mjs @@ -74,8 +74,8 @@ export default class DHItem extends foundry.documents.Item { isInventoryItem === true ? 'Inventory Items' //TODO localize : isInventoryItem === false - ? 'Character Items' //TODO localize - : 'Other'; //TODO localize + ? 'Character Items' //TODO localize + : 'Other'; //TODO localize return { value: type, label, group }; } @@ -137,10 +137,10 @@ export default class DHItem extends foundry.documents.Item { this.type === 'ancestry' ? game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.ancestryTitle') : this.type === 'community' - ? game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.communityTitle') - : this.type === 'feature' - ? game.i18n.localize('TYPES.Item.feature') - : game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.subclassFeatureTitle'), + ? game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.communityTitle') + : this.type === 'feature' + ? game.i18n.localize('TYPES.Item.feature') + : game.i18n.localize('DAGGERHEART.UI.Chat.foundationCard.subclassFeatureTitle'), origin: origin, img: this.img, name: this.name, diff --git a/module/enrichers/TemplateEnricher.mjs b/module/enrichers/TemplateEnricher.mjs index 11523ce5..a09e217d 100644 --- a/module/enrichers/TemplateEnricher.mjs +++ b/module/enrichers/TemplateEnricher.mjs @@ -11,7 +11,7 @@ export default function DhTemplateEnricher(match, _options) { if (split.length === 2) { switch (split[0]) { case 'type': - const matchedType = Object.values(CONST.MEASURED_TEMPLATE_TYPES).find( + const matchedType = Object.values(CONFIG.DH.GENERAL.templateTypes).find( x => x.toLowerCase() === split[1] ); type = matchedType; @@ -28,10 +28,12 @@ export default function DhTemplateEnricher(match, _options) { if (!type || !range) return match[0]; + const label = game.i18n.localize(`DAGGERHEART.CONFIG.TemplateTypes.${type}`); + const templateElement = document.createElement('span'); templateElement.innerHTML = ` `; @@ -45,16 +47,26 @@ export const renderMeasuredTemplate = async event => { if (!type || !range || !game.canvas.scene) return; - const distance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.RangeMeasurement)[range]; + const usedType = type === 'inFront' ? 'cone' : type === 'emanation' ? 'circle' : type; + const angle = + type === CONST.MEASURED_TEMPLATE_TYPES.CONE + ? CONFIG.MeasuredTemplate.defaults.angle + : type === CONFIG.DH.GENERAL.templateTypes.INFRONT + ? '180' + : undefined; + + const baseDistance = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.RangeMeasurement)[range]; + const distance = type === CONFIG.DH.GENERAL.templateTypes.EMANATION ? baseDistance + 2.5 : baseDistance; + const { width, height } = game.canvas.scene.dimensions; canvas.scene.createEmbeddedDocuments('MeasuredTemplate', [ { x: width / 2, y: height / 2, - t: type, + t: usedType, distance: distance, width: type === CONST.MEASURED_TEMPLATE_TYPES.RAY ? 5 : undefined, - angle: type === CONST.MEASURED_TEMPLATE_TYPES.CONE ? CONFIG.MeasuredTemplate.defaults.angle : undefined + angle: angle } ]); }; diff --git a/module/enrichers/_module.mjs b/module/enrichers/_module.mjs index 3b597dd5..deec4250 100644 --- a/module/enrichers/_module.mjs +++ b/module/enrichers/_module.mjs @@ -7,7 +7,7 @@ export { DhDamageEnricher, DhDualityRollEnricher, DhEffectEnricher, DhTemplateEn export const enricherConfig = [ { - pattern: /^@Damage\[(.*)\]({.*})?$/g, + pattern: /@Damage\[(.*)\]({.*})?/g, enricher: DhDamageEnricher }, { @@ -15,11 +15,11 @@ export const enricherConfig = [ enricher: DhDualityRollEnricher }, { - pattern: /^@Effect\[(.*)\]({.*})?$/g, + pattern: /@Effect\[(.*)\]({.*})?/g, enricher: DhEffectEnricher }, { - pattern: /^@Template\[(.*)\]({.*})?$/g, + pattern: /@Template\[(.*)\]({.*})?/g, enricher: DhTemplateEnricher } ]; diff --git a/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json new file mode 100644 index 00000000..4f319f40 --- /dev/null +++ b/src/packs/adversaries/adversary_Acid_Burrower_89yAh30vaNQOALlz.json @@ -0,0 +1,709 @@ +{ + "name": "Acid Burrower", + "img": "icons/svg/mystery-man.svg", + "type": "adversary", + "folder": "sxvlEwi25uAoB2C5", + "system": { + "difficulty": 14, + "damageThresholds": { + "major": 8, + "severe": 15 + }, + "resources": { + "hitPoints": { + "value": 0, + "max": 8, + "isReversed": true + }, + "stress": { + "value": 0, + "max": 3, + "isReversed": true + } + }, + "motivesAndTactics": "Burrow, drag away, feed, reposition", + "resistance": { + "physical": { + "resistance": false, + "immunity": false, + "reduction": 0 + }, + "magical": { + "resistance": false, + "immunity": false, + "reduction": 0 + } + }, + "type": "solo", + "notes": "", + "hordeHp": 1, + "experiences": { + "pe7OIoJsqlpMXEvs": { + "name": "Tremor Sense", + "value": 2 + } + }, + "bonuses": { + "roll": { + "attack": { + "bonus": 0, + "dice": [] + }, + "action": { + "bonus": 0, + "dice": [] + }, + "reaction": { + "bonus": 0, + "dice": [] + } + }, + "damage": { + "physical": { + "bonus": 0, + "dice": [] + }, + "magical": { + "bonus": 0, + "dice": [] + } + } + }, + "tier": 1, + "description": "

A horse-sized insect with digging claws and acidic blood.

", + "attack": { + "name": "Claws", + "range": "veryClose", + "roll": { + "bonus": 3, + "type": "attack", + "trait": null, + "difficulty": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d12", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ], + "includeBase": false + }, + "_id": "TCKVaVweyJzhEArX", + "systemPath": "actions", + "type": "", + "description": "", + "img": "icons/creatures/claws/claw-curved-jagged-yellow.webp", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [], + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + } + } + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754010222829, + "modifiedTime": 1754010222919, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3, + "WafZqd6qLGpBRGTt": 3, + "MQSznptE5yLT7kj8": 3 + }, + "prototypeToken": { + "name": "Acid Burrower", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "texture": { + "src": "icons/svg/mystery-man.svg", + "anchorX": 0.5, + "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "rotation": 0, + "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 + }, + "items": [ + { + "name": "Relentless (3)", + "type": "feature", + "_id": "MFmGN6Tbf5GYxrQ9", + "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", + "system": { + "description": "

The Burrower can be spotlighted up to three times per GM turn. Spend Fear as usual to spotlight them.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!89yAh30vaNQOALlz.MFmGN6Tbf5GYxrQ9" + }, + { + "name": "Earth Eruption", + "type": "feature", + "_id": "ctXYwil2D1zfsekT", + "img": "icons/magic/earth/barrier-stone-explosion-red.webp", + "system": { + "description": "

Mark a Stress to have the Burrower burst out of the ground. All creatures within Very Close range must succeed on an Agility Reaction Roll or be knocked over, making them Vulnerable until they next act.

@Template[type:emanation|range:vc]

", + "resource": null, + "actions": { + "4ppSeiTdbqnMzWAs": { + "type": "attack", + "_id": "4ppSeiTdbqnMzWAs", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "9PsnogEPsp1OOK64", + "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": "agility", + "difficulty": null, + "damageMod": "none" + }, + "name": "Use", + "img": "icons/magic/earth/barrier-stone-explosion-red.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Earth Eruption", + "img": "icons/magic/earth/barrier-stone-explosion-red.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.aKVLLjMb35om4QbJ.Item.ctXYwil2D1zfsekT", + "transfer": false, + "_id": "9PsnogEPsp1OOK64", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items.effects!89yAh30vaNQOALlz.ctXYwil2D1zfsekT.9PsnogEPsp1OOK64" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!89yAh30vaNQOALlz.ctXYwil2D1zfsekT" + }, + { + "name": "Spit Acid", + "type": "feature", + "_id": "UpFsnlbZkyvM2Ftv", + "img": "icons/magic/acid/projectile-smoke-glowing.webp", + "system": { + "description": "

Make an attack against all targets in front of the Burrower within Close range. Targets the Burrower succeeds against take 2d6 physical damage and must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP and you gain a Fear.

@Template[type:inFront|range:c]

", + "resource": null, + "actions": { + "yd10HwK6Wa3OEvv2": { + "type": "attack", + "_id": "yd10HwK6Wa3OEvv2", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "2d6" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + }, + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "armorSlot", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "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/magic/acid/projectile-smoke-glowing.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": "MQSznptE5yLT7kj8", + "modifiedTime": 1754012083498 + }, + "_key": "!actors.items!89yAh30vaNQOALlz.UpFsnlbZkyvM2Ftv" + }, + { + "name": "Acid Bath", + "type": "feature", + "_id": "aNIVT5LKhwLyjKpI", + "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", + "system": { + "description": "

When the Burrower takes Severe damage, all creatures within Close range are bathed in their acidic blood, taking 1d10 physical damage. This splash covers the ground within Very Close range with blood, and all creatures other than the Burrower who move through it take 1d6 physical damage.

@Template[type:emanation|range:c]

", + "resource": null, + "actions": { + "XbtTzOBvlTaxOKTy": { + "type": "damage", + "_id": "XbtTzOBvlTaxOKTy", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1d10" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Splash", + "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", + "range": "close" + }, + "xpcp1ECTWF20kxve": { + "type": "damage", + "_id": "xpcp1ECTWF20kxve", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1d6" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Acid Ground", + "img": "icons/magic/acid/dissolve-pool-bubbles.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!89yAh30vaNQOALlz.aNIVT5LKhwLyjKpI" + } + ], + "effects": [], + "_id": "89yAh30vaNQOALlz", + "sort": 500000, + "_key": "!actors!89yAh30vaNQOALlz" +} diff --git a/src/packs/adversaries/adversary_Acid_Burrower_aKVLLjMb35om4QbJ.json b/src/packs/adversaries/adversary_Acid_Burrower_aKVLLjMb35om4QbJ.json deleted file mode 100644 index a8b3d14f..00000000 --- a/src/packs/adversaries/adversary_Acid_Burrower_aKVLLjMb35om4QbJ.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "name": "Acid Burrower", - "img": "icons/svg/mystery-man.svg", - "type": "adversary", - "folder": "sxvlEwi25uAoB2C5", - "system": { - "difficulty": 14, - "damageThresholds": { - "major": 8, - "severe": 15 - }, - "resources": { - "hitPoints": { - "value": 0, - "max": 8, - "isReversed": true - }, - "stress": { - "value": 0, - "max": 3, - "isReversed": true - } - }, - "motivesAndTactics": "Burrow, drag away, feed, reposition", - "resistance": { - "physical": { - "resistance": false, - "immunity": false, - "reduction": 0 - }, - "magical": { - "resistance": false, - "immunity": false, - "reduction": 0 - } - }, - "type": "standard", - "notes": "", - "hordeHp": 1, - "experiences": {}, - "bonuses": { - "roll": { - "attack": { - "bonus": 0, - "dice": [] - }, - "action": { - "bonus": 0, - "dice": [] - }, - "reaction": { - "bonus": 0, - "dice": [] - } - }, - "damage": { - "physical": { - "bonus": 0, - "dice": [] - }, - "magical": { - "bonus": 0, - "dice": [] - } - } - }, - "tier": 1, - "description": "

A horse-sized insect with digging claws and acidic blood.

" - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753922784217, - "modifiedTime": 1753922784217, - "lastModifiedBy": "WafZqd6qLGpBRGTt" - }, - "_id": "aKVLLjMb35om4QbJ", - "sort": 3400000, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3, - "WafZqd6qLGpBRGTt": 3 - }, - "prototypeToken": { - "name": "Acid Burrower", - "displayName": 0, - "actorLink": false, - "width": 1, - "height": 1, - "texture": { - "src": "icons/svg/mystery-man.svg", - "anchorX": 0.5, - "anchorY": 0.5, - "offsetX": 0, - "offsetY": 0, - "fit": "contain", - "scaleX": 1, - "scaleY": 1, - "rotation": 0, - "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 - }, - "items": [], - "effects": [], - "_key": "!actors!aKVLLjMb35om4QbJ" -} diff --git a/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json b/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json index e23f3832..ad9976e8 100644 --- a/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json +++ b/src/packs/adversaries/adversary_Archer_Guard_JRhrrEg5UroURiAD.json @@ -33,10 +33,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "ranged", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "Gtr9I2G39GcXT2Si": { + "name": "Local Knowledge", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,62 @@ } }, "tier": 1, - "description": "

A tall guard bearing a longbow and quiver with arrows fletched in the settlement’s colors.

" + "description": "

A tall guard bearing a longbow and quiver with arrows fletched in the settlement’s colors.

", + "motivesAndTactics": "Arrest, close gates, make it through the day, pin down", + "attack": { + "name": "Longbow", + "range": "far", + "roll": { + "bonus": 1, + "type": "attack" + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/weapons/bows/longbow-recurve-leather-brown.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784222, - "modifiedTime": 1753922784222, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151270, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "JRhrrEg5UroURiAD", - "sort": 3400000, + "sort": 2900000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +224,173 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Hobbling Shot", + "type": "feature", + "_id": "DMtd1EXQPlPaoRmV", + "img": "icons/skills/wounds/bone-broken-knee-beam.webp", + "system": { + "description": "

Make an attack against a target within Far range. On a success, mark a Stress to deal 1d12+3 physical damage. If the target marks HP from this attack, they have disadvantage on Agility Rolls until they clear at least 1 HP.

", + "resource": null, + "actions": { + "84rwldOFvTPrrHJJ": { + "type": "attack", + "_id": "84rwldOFvTPrrHJJ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d12", + "bonus": 3, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "wGuxOLokMqdxVSOo", + "onSave": false + } + ], + "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/skills/wounds/bone-broken-knee-beam.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Hobbling Shot", + "img": "icons/skills/wounds/bone-broken-knee-beam.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.JRhrrEg5UroURiAD.Item.DMtd1EXQPlPaoRmV", + "transfer": false, + "_id": "wGuxOLokMqdxVSOo", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.disadvantageSources", + "mode": 2, + "value": "Agility Rolls", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You have disadvantage on Agility Rolls until you clear at least 1 HP.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012705802, + "modifiedTime": 1754012740752, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!JRhrrEg5UroURiAD.DMtd1EXQPlPaoRmV.wGuxOLokMqdxVSOo" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012548341, + "modifiedTime": 1754012705815, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!JRhrrEg5UroURiAD.DMtd1EXQPlPaoRmV" + } + ], "effects": [], "_key": "!actors!JRhrrEg5UroURiAD" } diff --git a/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json b/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json index 471df7bd..5e765b6f 100644 --- a/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json +++ b/src/packs/adversaries/adversary_Bear_71qKDLKO3CsrNkdy.json @@ -34,10 +34,19 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "5ASmWCwf7HMplPDT": { + "name": "Ambusher", + "value": 3 + }, + "rjs6ek5OZP8inYqu": { + "name": "Keen Senses", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +74,60 @@ } }, "tier": 1, - "description": "

A large bear with thick fur and powerful claws.

" + "description": "

A large bear with thick fur and powerful claws.

", + "attack": { + "name": "Claws", + "roll": { + "bonus": 1, + "type": "attack" + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/creatures/claws/claw-straight-brown.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784226, - "modifiedTime": 1753922784226, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151030, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "71qKDLKO3CsrNkdy", - "sort": 3400000, + "sort": 1200000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +227,312 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Overwhelming Force", + "type": "feature", + "_id": "2fXzhh2qil8dw3vw", + "img": "icons/skills/melee/strike-slashes-orange.webp", + "system": { + "description": "

Targets who mark HP from the Bear’s standard attack are knocked back to Very Close range.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012151208, + "modifiedTime": 1754012182512, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!71qKDLKO3CsrNkdy.2fXzhh2qil8dw3vw" + }, + { + "name": "Bite", + "type": "feature", + "_id": "zgR0MEqyobKp2yXr", + "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", + "system": { + "description": "

Mark a Stress to make an attack against a target within Melee range. On a success, deal 3d4+10 physical damage and the target is Restrained until they break free with a successful Strength Roll.

", + "resource": null, + "actions": { + "PXL3e51eBYZ4O2lb": { + "type": "attack", + "_id": "PXL3e51eBYZ4O2lb", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 3, + "dice": "d4", + "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 + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "U50Ccm9emMqAxma6", + "onSave": false + } + ], + "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/mouth-teeth-long-red.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Bite", + "img": "icons/creatures/abilities/mouth-teeth-long-red.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.71qKDLKO3CsrNkdy.Item.zgR0MEqyobKp2yXr", + "transfer": false, + "_id": "U50Ccm9emMqAxma6", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You are Restrained until you break free with a successful Strength Roll.

", + "tint": "#ffffff", + "statuses": [ + "restrain" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012285077, + "modifiedTime": 1754012313771, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!71qKDLKO3CsrNkdy.zgR0MEqyobKp2yXr.U50Ccm9emMqAxma6" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012195973, + "modifiedTime": 1754012285100, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!71qKDLKO3CsrNkdy.zgR0MEqyobKp2yXr" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "4hJbq9WCwJn78frt", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Bear makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": { + "HawHNALF7mdigX4X": { + "type": "healing", + "_id": "HawHNALF7mdigX4X", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "fear", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "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 Fear", + "img": "icons/magic/unholy/orb-hands-pink.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012330113, + "modifiedTime": 1754012418576, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!71qKDLKO3CsrNkdy.4hJbq9WCwJn78frt" + } + ], "effects": [], "_key": "!actors!71qKDLKO3CsrNkdy" } diff --git a/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json b/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json index 80de6400..de805464 100644 --- a/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json +++ b/src/packs/adversaries/adversary_Bladed_Guard_B4LZcGuBAHzyVdzy.json @@ -37,7 +37,12 @@ "type": "standard", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "ptgh1mGd4XGIjaAO": { + "name": "Local Knowledge", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,60 @@ } }, "tier": 1, - "description": "

An armored guard bearing a sword and shield painted in the settlement’s colors.

" + "description": "

An armored guard bearing a sword and shield painted in the settlement’s colors.

", + "attack": { + "roll": { + "bonus": 1, + "type": "attack" + }, + "name": "Longsword", + "img": "icons/weapons/swords/sword-guard.webp", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784226, - "modifiedTime": 1753922784226, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151128, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "B4LZcGuBAHzyVdzy", - "sort": 3400000, + "sort": 2000000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +223,222 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Shield Wall", + "type": "feature", + "_id": "qEn4baWgkjKtmILp", + "img": "icons/equipment/shield/shield-round-boss-wood-brown.webp", + "system": { + "description": "

A creature who tries to move within Very Close range of the Guard must succeed on an Agility Roll. If additional Bladed Guards are standing in a line alongside the f i rst, and each is within Melee range of another guard in the line, the Diffi culty increases by the total number of guards in that line.

", + "resource": null, + "actions": { + "3lbeEeJdjzPn0MoG": { + "type": "attack", + "_id": "3lbeEeJdjzPn0MoG", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "passive", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "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 + }, + "save": { + "trait": "agility", + "difficulty": null, + "damageMod": "none" + }, + "name": "Use", + "img": "icons/equipment/shield/shield-round-boss-wood-brown.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012824140, + "modifiedTime": 1754012926434, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!B4LZcGuBAHzyVdzy.qEn4baWgkjKtmILp" + }, + { + "name": "Detain", + "type": "feature", + "_id": "9gizFt9ovKL05DXu", + "img": "icons/commodities/metal/chain-silver.webp", + "system": { + "description": "

Make an attack against a target within Very Close range. On a success, mark a Stress to Restrain the target until they break free with a successful attack, Finesse Roll, or Strength Roll.

", + "resource": null, + "actions": { + "TK5R00afB1RIA6gp": { + "type": "attack", + "_id": "TK5R00afB1RIA6gp", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "LmzztuktRkwOCy1a", + "onSave": false + } + ], + "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/commodities/metal/chain-silver.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Detain", + "img": "icons/commodities/metal/chain-silver.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.B4LZcGuBAHzyVdzy.Item.9gizFt9ovKL05DXu", + "transfer": false, + "_id": "LmzztuktRkwOCy1a", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You are Restrained until you break free with a successful attack, Finesse Roll, or Strength Roll.

", + "tint": "#ffffff", + "statuses": [ + "restrained" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013054188, + "modifiedTime": 1754013085395, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!B4LZcGuBAHzyVdzy.9gizFt9ovKL05DXu.LmzztuktRkwOCy1a" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754012944888, + "modifiedTime": 1754013114603, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!B4LZcGuBAHzyVdzy.9gizFt9ovKL05DXu" + } + ], "effects": [], "_key": "!actors!B4LZcGuBAHzyVdzy" } diff --git a/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json b/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json index 3ad8ff69..bddea834 100644 --- a/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json +++ b/src/packs/adversaries/adversary_Brawny_Zombie_2UeZ0tEe7AzgSJNd.json @@ -34,10 +34,19 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "BKNynHS8sUlJSt9P": { + "name": "Collateral Damage", + "value": 2 + }, + "Kq5ZfACqF0EIjKIq": { + "name": "Throw", + "value": 4 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +74,61 @@ } }, "tier": 1, - "description": "

A large corpse, decay-bloated and angry.

" + "description": "

A large corpse, decay-bloated and angry.

", + "attack": { + "name": "Slam", + "roll": { + "bonus": 2, + "type": "attack" + }, + "range": "veryClose", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d12", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784231, - "modifiedTime": 1753922784231, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046150943, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "2UeZ0tEe7AzgSJNd", - "sort": 3400000, + "sort": 400000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +228,302 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Slow", + "type": "feature", + "_id": "yBaLF9DwPH2GSRKf", + "img": "icons/magic/time/hourglass-brown-orange.webp", + "system": { + "description": "

When you spotlight the Zombie and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the Zombie and they have a token on their stat block, clear the token and they can act.

", + "resource": { + "type": "simple", + "value": 0, + "max": "1", + "icon": "fa-solid fa-hourglass-half" + }, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013235761, + "modifiedTime": 1754013348057, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!2UeZ0tEe7AzgSJNd.yBaLF9DwPH2GSRKf" + }, + { + "name": "Rend Asunder", + "type": "feature", + "_id": "LP7xVLMTkJsmiIvl", + "img": "icons/skills/melee/strike-slashes-red.webp", + "system": { + "description": "

Make a standard attack with advantage against a target the Zombie has Restrained. On a success, the attack deals direct damage.

", + "resource": null, + "actions": { + "qCcWw60cPZnEWbpG": { + "type": "attack", + "_id": "qCcWw60cPZnEWbpG", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d12", + "bonus": 3, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/skills/melee/strike-slashes-red.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013355113, + "modifiedTime": 1754013446559, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!2UeZ0tEe7AzgSJNd.LP7xVLMTkJsmiIvl" + }, + { + "name": "Rip and Tear", + "type": "feature", + "_id": "69reUZ5tv3splqyO", + "img": "icons/creatures/abilities/mouth-teeth-lamprey-red.webp", + "system": { + "description": "

When the Zombies makes a successful standard attack, you can mark a Stress to temporarily Restrain the target and force them to mark 2 Stress.

", + "resource": null, + "actions": { + "xV1z3dk9c7jIkk7v": { + "type": "damage", + "_id": "xV1z3dk9c7jIkk7v", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "CjMrSdL6kgD8mKRQ", + "onSave": false + } + ], + "name": "Damage", + "img": "icons/creatures/abilities/mouth-teeth-lamprey-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Rip and Tear", + "img": "icons/creatures/abilities/mouth-teeth-lamprey-red.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.2UeZ0tEe7AzgSJNd.Item.69reUZ5tv3splqyO", + "transfer": false, + "_id": "CjMrSdL6kgD8mKRQ", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "restrained" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013588940, + "modifiedTime": 1754013596861, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!2UeZ0tEe7AzgSJNd.69reUZ5tv3splqyO.CjMrSdL6kgD8mKRQ" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013473713, + "modifiedTime": 1754013614420, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!2UeZ0tEe7AzgSJNd.69reUZ5tv3splqyO" + } + ], "effects": [], "_key": "!actors!2UeZ0tEe7AzgSJNd" } diff --git a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json index 21574d5f..1d5085c4 100644 --- a/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json +++ b/src/packs/adversaries/adversary_Cave_Ogre_8Zkqk1jU09nKL2fy.json @@ -33,10 +33,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "solo", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "7GpgCWSe6hNwnOO7": { + "name": "Throw", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,62 @@ } }, "tier": 1, - "description": "

A massive humanoid who sees all sapient life as food.

" + "description": "

A massive humanoid who sees all sapient life as food.

", + "motivesAndTactics": "Bite off heads, feast, rip limbs, stomp, throw enemies", + "attack": { + "roll": { + "bonus": 1, + "type": "attack" + }, + "range": "veryClose", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d10", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "name": "Club", + "img": "icons/weapons/clubs/club-banded-barbed-black.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784233, - "modifiedTime": 1753922784233, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151057, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "8Zkqk1jU09nKL2fy", - "sort": 3400000, + "sort": 1500000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +224,378 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Ramp Up", + "type": "feature", + "_id": "ynuyMl1sMQYINfcQ", + "img": "icons/weapons/clubs/club-spiked-glowing.webp", + "system": { + "description": "

You must spend a Fear to spotlight the Ogre. While spotlighted, they can make their standard attack against all targets within range.

", + "resource": null, + "actions": { + "UoZ6vXRXvWYjpJpZ": { + "type": "effect", + "_id": "UoZ6vXRXvWYjpJpZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/weapons/clubs/club-spiked-glowing.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011303846, + "modifiedTime": 1754011580092, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8Zkqk1jU09nKL2fy.ynuyMl1sMQYINfcQ" + }, + { + "name": "Bone Breaker", + "type": "feature", + "_id": "szu5YYQ6klkDbqAT", + "img": "icons/skills/wounds/bone-broken-marrow-red.webp", + "system": { + "description": "

The Ogre’s attacks deal direct damage.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011637183, + "modifiedTime": 1754011673466, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8Zkqk1jU09nKL2fy.szu5YYQ6klkDbqAT" + }, + { + "name": "Hail of Boulders", + "type": "feature", + "_id": "zGvaBYJPOOnQVQEn", + "img": "icons/magic/earth/projectile-stone-boulder-orange.webp", + "system": { + "description": "

Mark a Stress to pick up heavy objects and throw them at all targets in front of the Ogre within Far range. Make an attack against these targets. Targets the Ogre succeeds against take 1d10+2 physical damage. If they succeed against more than one target, you gain a Fear.

@Template[type:inFront|range:f]

", + "resource": null, + "actions": { + "3p1qfHy5uHe4H2hB": { + "type": "attack", + "_id": "3p1qfHy5uHe4H2hB", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d12", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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": "Throw", + "img": "icons/magic/earth/projectile-stone-boulder-orange.webp", + "range": "far" + }, + "pmeromzI4eQOilbp": { + "type": "healing", + "_id": "pmeromzI4eQOilbp", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "fear", + "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 Fear", + "img": "icons/magic/unholy/orb-hands-pink.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011680074, + "modifiedTime": 1754011917159, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8Zkqk1jU09nKL2fy.zGvaBYJPOOnQVQEn" + }, + { + "name": "Rampaging Fury", + "type": "feature", + "_id": "Qxkddj6nQc4RDExW", + "img": "icons/skills/melee/strike-flail-destructive-yellow.webp", + "system": { + "description": "

When the Ogre marks 2 or more HP, they can rampage. Move the Ogre to a point within Close range and deal 2d6+3 direct physical damage to all targets in their path.

", + "resource": null, + "actions": { + "PtTu9bnCJKMySBSV": { + "type": "damage", + "_id": "PtTu9bnCJKMySBSV", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 2, + "dice": "d6", + "bonus": 3, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Damage", + "img": "icons/skills/melee/strike-flail-destructive-yellow.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754011925214, + "modifiedTime": 1754012026787, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8Zkqk1jU09nKL2fy.Qxkddj6nQc4RDExW" + } + ], "effects": [], "_key": "!actors!8Zkqk1jU09nKL2fy" } diff --git a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json index ea4409f1..bbc806a4 100644 --- a/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json +++ b/src/packs/adversaries/adversary_Construct_uOP5oT9QzXPlnf3p.json @@ -34,7 +34,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "solo", "notes": "", "hordeHp": 1, "experiences": {}, @@ -65,22 +65,60 @@ } }, "tier": 1, - "description": "

A roughly humanoid being of stone and steel, assembled and animated by magic.

" + "description": "

A roughly humanoid being of stone and steel, assembled and animated by magic.

", + "attack": { + "roll": { + "bonus": 4, + "type": "attack" + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d20", + "bonus": null, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "name": "Fist Slam", + "img": "icons/skills/melee/unarmed-punch-fist-yellow-red.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784236, - "modifiedTime": 1753922784236, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151560, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "uOP5oT9QzXPlnf3p", - "sort": 3400000, + "sort": 4900000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +218,417 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Relentless (2)", + "type": "feature", + "_id": "y3oUmDLGkcSjOO5Q", + "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", + "system": { + "description": "

The Construct can be spotlighted up to two times per GM turn. Spend Fear as usual to spotlight them.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013727085, + "modifiedTime": 1754013745214, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uOP5oT9QzXPlnf3p.y3oUmDLGkcSjOO5Q" + }, + { + "name": "Weak Structure", + "type": "feature", + "_id": "p4HLIkiM3HsglRoA", + "img": "icons/commodities/metal/barstock-broken-steel.webp", + "system": { + "description": "

When the Construct marks HP from physical damage, they must mark an additional HP.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013751967, + "modifiedTime": 1754013777727, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uOP5oT9QzXPlnf3p.p4HLIkiM3HsglRoA" + }, + { + "name": "Trample", + "type": "feature", + "_id": "93m085bEaKFzvEWT", + "img": "icons/skills/movement/arrow-upward-blue.webp", + "system": { + "description": "

Mark a Stress to make an attack against all targets in the Construct’s path when they move. Targets the Construct succeeds against take 1d8 physical damage.

", + "resource": null, + "actions": { + "OswphW4Z1B5oa4ts": { + "type": "attack", + "_id": "OswphW4Z1B5oa4ts", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d8", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/skills/movement/arrow-upward-blue.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013785248, + "modifiedTime": 1754013859298, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uOP5oT9QzXPlnf3p.93m085bEaKFzvEWT" + }, + { + "name": "Overload", + "type": "feature", + "_id": "EF6YIDjQ0liFubGA", + "img": "icons/creatures/magical/construct-golem-stone-blue.webp", + "system": { + "description": "

Before rolling damage for the Construct’s attack, you can mark a Stress to gain a +10 bonus to the damage roll. The Construct can then take the spotlight again.

", + "resource": null, + "actions": { + "xYACTiZzApmCXXmf": { + "type": "effect", + "_id": "xYACTiZzApmCXXmf", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Mark Stress", + "img": "icons/creatures/magical/construct-golem-stone-blue.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Overload", + "type": "base", + "_id": "xkDIZk9u2ipDHvOL", + "img": "icons/creatures/magical/construct-golem-stone-blue.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.bonuses.damage.physical.bonus", + "mode": 2, + "value": "10", + "priority": null + } + ], + "disabled": true, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Gain a +10 bonus to the damage roll

", + "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": 1754013932820, + "modifiedTime": 1754013969723, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!uOP5oT9QzXPlnf3p.EF6YIDjQ0liFubGA.xkDIZk9u2ipDHvOL" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013871234, + "modifiedTime": 1754013921817, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uOP5oT9QzXPlnf3p.EF6YIDjQ0liFubGA" + }, + { + "name": "Death Quake", + "type": "feature", + "_id": "UlGLuV1L33tDWkli", + "img": "icons/magic/sonic/explosion-shock-wave-teal.webp", + "system": { + "description": "

When the Construct marks their last HP, the magic powering them ruptures in an explosion of force. Make an attack with advantage against all targets within Very Close range. Targets the Construct succeeds against take 1d12+2 magic damage.

", + "resource": null, + "actions": { + "fkIWRdcGPgHgm6VC": { + "type": "attack", + "_id": "fkIWRdcGPgHgm6VC", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d12", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/magic/sonic/explosion-shock-wave-teal.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754013980637, + "modifiedTime": 1754014038531, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uOP5oT9QzXPlnf3p.UlGLuV1L33tDWkli" + } + ], "effects": [], "_key": "!actors!uOP5oT9QzXPlnf3p" } diff --git a/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json b/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json index f16cbfec..cf0e8a04 100644 --- a/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json +++ b/src/packs/adversaries/adversary_Courtier_CBBuEXAlLKFMJdjg.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "social", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "omqadwvxPY4xsd7K": { + "name": "Socialite", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,60 @@ } }, "tier": 1, - "description": "

An ambitious and ostentatiously dressed socialite.

" + "description": "

An ambitious and ostentatiously dressed socialite.

", + "attack": { + "name": "Daggers", + "roll": { + "bonus": -4, + "type": "attack" + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d4", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/weapons/daggers/dagger-twin-green.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784237, - "modifiedTime": 1753922784237, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151158, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "CBBuEXAlLKFMJdjg", - "sort": 3400000, + "sort": 2200000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +223,240 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Mockery", + "type": "feature", + "_id": "LYNaKEYcYMgvF4Rf", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "system": { + "description": "

Mark a Stress to say something mocking and force a target within Close range to make a Presence Reaction Roll (14) to see if they can save face. On a failure, the target must mark 2 Stress and is Vulnerable until the scene ends.

", + "resource": null, + "actions": { + "Yi3rvjj0Umqt5Z8j": { + "type": "attack", + "_id": "Yi3rvjj0Umqt5Z8j", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "YNMhgBZW8ndrCjIp", + "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": "presence", + "difficulty": 14, + "damageMod": "none" + }, + "name": "Use", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Mockery", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.CBBuEXAlLKFMJdjg.Item.LYNaKEYcYMgvF4Rf", + "transfer": false, + "_id": "YNMhgBZW8ndrCjIp", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014456918, + "modifiedTime": 1754014468386, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!CBBuEXAlLKFMJdjg.LYNaKEYcYMgvF4Rf.YNMhgBZW8ndrCjIp" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014295058, + "modifiedTime": 1754014456928, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!CBBuEXAlLKFMJdjg.LYNaKEYcYMgvF4Rf" + }, + { + "name": "Scapegoat", + "type": "feature", + "_id": "Ux42ELBBuSYwm4yW", + "img": "icons/skills/social/diplomacy-unity-alliance.webp", + "system": { + "description": "

Spend a Fear and target a PC. The Courtier convinces a crowd or prominent individual that the target is the cause of their current conflict or misfortune.

", + "resource": null, + "actions": { + "IwuFowlcXyjvfOxp": { + "type": "effect", + "_id": "IwuFowlcXyjvfOxp", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/skills/social/diplomacy-unity-alliance.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014473825, + "modifiedTime": 1754014546519, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!CBBuEXAlLKFMJdjg.Ux42ELBBuSYwm4yW" + } + ], "effects": [], "_key": "!actors!CBBuEXAlLKFMJdjg" } diff --git a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json index 9f3b146d..57f6fb5c 100644 --- a/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json +++ b/src/packs/adversaries/adversary_Deeproot_Defender_9x2xY9zwc3xzbXo5.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "8ThlnO2VRVTMnfzP": { + "name": "Huge", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,61 @@ } }, "tier": 1, - "description": "

A burly vegetable-person with grasping vines.

" + "description": "

A burly vegetable-person with grasping vines.

", + "attack": { + "name": "Vines", + "range": "close", + "roll": { + "bonus": 2, + "type": "attack" + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/magic/nature/root-vines-grow-brown.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784246, - "modifiedTime": 1753922784246, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151094, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "9x2xY9zwc3xzbXo5", - "sort": 3400000, + "sort": 1800000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +224,253 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Ground Slam", + "type": "feature", + "_id": "0DSCzAFXy0hV4afJ", + "img": "icons/magic/earth/barrier-stone-brown-green.webp", + "system": { + "description": "

Slam the ground, knocking all targets within Very Close range back to Far range. Each target knocked back this way must mark a Stress.

@Template[type:emanation|range:vc]

", + "resource": null, + "actions": { + "55hCZsJQhJNcZ0lX": { + "type": "damage", + "_id": "55hCZsJQhJNcZ0lX", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "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 + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Stress Damage", + "img": "icons/magic/earth/barrier-stone-brown-green.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014765553, + "modifiedTime": 1754014836251, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!9x2xY9zwc3xzbXo5.0DSCzAFXy0hV4afJ" + }, + { + "name": "Grab and Drag", + "type": "feature", + "_id": "rreGFW5TbhUoZf2T", + "img": "icons/magic/nature/root-vine-entangled-hand.webp", + "system": { + "description": "

Make an attack against a target within Close range. On a success, spend a Fear to pull them into Melee range, deal 1d6+2 physical damage, and Restrain them until the Defender takes Severe damage.

", + "resource": null, + "actions": { + "nQ3vXrrKBizZoaDt": { + "type": "attack", + "_id": "nQ3vXrrKBizZoaDt", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d6", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "F3E7fiz01AbF2kr5", + "onSave": false + } + ], + "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/magic/nature/root-vine-entangled-hand.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Grab and Drag", + "img": "icons/magic/nature/root-vine-entangled-hand.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.9x2xY9zwc3xzbXo5.Item.rreGFW5TbhUoZf2T", + "transfer": false, + "_id": "F3E7fiz01AbF2kr5", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You are Restrained until the Defender takes Severe damage.

", + "tint": "#ffffff", + "statuses": [ + "restrain" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014907002, + "modifiedTime": 1754014933428, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!9x2xY9zwc3xzbXo5.rreGFW5TbhUoZf2T.F3E7fiz01AbF2kr5" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754014840148, + "modifiedTime": 1754014907017, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!9x2xY9zwc3xzbXo5.rreGFW5TbhUoZf2T" + } + ], "effects": [], "_key": "!actors!9x2xY9zwc3xzbXo5" } diff --git a/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json b/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json index 32b29f30..02703ebb 100644 --- a/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json +++ b/src/packs/adversaries/adversary_Dire_Wolf_wNzeuQLfLUMvgHlQ.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "skulk", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "JB2mFGRwgG2NIob8": { + "name": "Keen Senses", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,60 @@ } }, "tier": 1, - "description": "

A large wolf with menacing teeth, seldom encountered alone.

" + "description": "

A large wolf with menacing teeth, seldom encountered alone.

", + "attack": { + "name": "Claws", + "roll": { + "bonus": 2, + "type": "attack" + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/creatures/claws/claw-straight-brown.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784257, - "modifiedTime": 1753922784257, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046151583, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "wNzeuQLfLUMvgHlQ", - "sort": 3400000, + "sort": 5100000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +223,280 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Pack tactics", + "type": "feature", + "_id": "wQXEnMqrl2jo91oy", + "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", + "system": { + "description": "

If the Wolf makes a successful standard attack and another Dire Wolf is within Melee range of the target, deal 1d6+5 physical damage instead of their standard damage and you gain a Fear.

", + "resource": null, + "actions": { + "FFQvt3sMfuwXxIrf": { + "type": "attack", + "_id": "FFQvt3sMfuwXxIrf", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d6", + "bonus": 5, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/wolf-howl-moon-purple.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044226022, + "modifiedTime": 1754044331531, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!wNzeuQLfLUMvgHlQ.wQXEnMqrl2jo91oy" + }, + { + "name": "Hobbling Strike", + "type": "feature", + "_id": "85XrqDvLP30YOO43", + "img": "icons/skills/wounds/bone-broken-knee-beam.webp", + "system": { + "description": "

Mark a Stress to make an attack against a target within Melee range. On a success, deal 3d4+10 direct physical damage and make them Vulnerable until they clear at least 1 HP.

", + "resource": null, + "actions": { + "Tvizq1jEfG8FyfNc": { + "type": "attack", + "_id": "Tvizq1jEfG8FyfNc", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 3, + "dice": "d4", + "bonus": 10, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "YNKHEFQ4ucGr4Rmc", + "onSave": false + } + ], + "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/skills/wounds/bone-broken-knee-beam.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Hobbling Strike", + "img": "icons/skills/wounds/bone-broken-knee-beam.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.wNzeuQLfLUMvgHlQ.Item.85XrqDvLP30YOO43", + "transfer": false, + "_id": "YNKHEFQ4ucGr4Rmc", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044420696, + "modifiedTime": 1754044425763, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!wNzeuQLfLUMvgHlQ.85XrqDvLP30YOO43.YNKHEFQ4ucGr4Rmc" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044355011, + "modifiedTime": 1754044420728, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!wNzeuQLfLUMvgHlQ.85XrqDvLP30YOO43" + } + ], "effects": [], "_key": "!actors!wNzeuQLfLUMvgHlQ" } diff --git a/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json b/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json index 4e94be24..7ea73ade 100644 --- a/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json +++ b/src/packs/adversaries/adversary_Giant_Mosquitoes_IIWV4ysJPFPnTP7W.json @@ -33,10 +33,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "horde", "notes": "", - "hordeHp": 1, - "experiences": {}, + "hordeHp": 5, + "experiences": { + "4SUFXKZh33mFvNt9": { + "name": "Camouflage", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,62 @@ } }, "tier": 1, - "description": "

Dozens of fist-sized mosquitoes, flying together for protection.

" + "description": "

Dozens of fist-sized mosquitoes, flying together for protection.

", + "motivesAndTactics": "Fly away, harass, steal blood", + "attack": { + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "valueAlt": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 1, + "custom": { + "enabled": false + } + }, + "resultBased": false, + "base": false + } + ] + }, + "name": "Proboscis", + "img": "icons/skills/wounds/blood-cells-vessel-red.webp", + "roll": { + "bonus": -2, + "type": "attack" + }, + "range": "" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784269, - "modifiedTime": 1753922784269, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046262389, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "IIWV4ysJPFPnTP7W", - "sort": 3400000, + "sort": 2800000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +224,233 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], - "effects": [], + "items": [ + { + "name": "Horde (1d4+1)", + "type": "feature", + "_id": "9RduwBLYcBaiouYk", + "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", + "system": { + "description": "

When the Mosquitoes have marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754044549944, + "modifiedTime": 1754044591579, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!IIWV4ysJPFPnTP7W.9RduwBLYcBaiouYk" + }, + { + "name": "Flying", + "type": "feature", + "_id": "gxYV6iTMM1S9Vv5v", + "img": "icons/commodities/biological/wing-insect-green.webp", + "system": { + "description": "

While flying, the Mosquitoes have a +2 bonus to their Difficulty.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Flying", + "type": "base", + "_id": "aATxfjeOzUYtKuU6", + "img": "icons/commodities/biological/wing-insect-green.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.difficulty", + "mode": 2, + "value": "2", + "priority": null + } + ], + "disabled": true, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

While flying, the Mosquitoes have a +2 bonus to their Difficulty.

", + "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": 1754046389966, + "modifiedTime": 1754046415469, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!IIWV4ysJPFPnTP7W.gxYV6iTMM1S9Vv5v.aATxfjeOzUYtKuU6" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046355588, + "modifiedTime": 1754046387649, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!IIWV4ysJPFPnTP7W.gxYV6iTMM1S9Vv5v" + }, + { + "name": "Bloodsucker", + "type": "feature", + "_id": "BTlMLjG65KQs0Jk2", + "img": "icons/skills/wounds/blood-drip-droplet-red.webp", + "system": { + "description": "

When the Mosquitoes’ attack causes a target to mark HP, you can mark a Stress to force the target to mark an additional HP.

", + "resource": null, + "actions": { + "7ee6IhkKYDehjLmg": { + "type": "effect", + "_id": "7ee6IhkKYDehjLmg", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Mark Stress", + "img": "icons/skills/wounds/blood-drip-droplet-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046426987, + "modifiedTime": 1754046474428, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!IIWV4ysJPFPnTP7W.BTlMLjG65KQs0Jk2" + } + ], + "effects": [ + { + "type": "horde", + "name": "Horde", + "img": "icons/magic/movement/chevrons-down-yellow.webp", + "disabled": true, + "_id": "dQgcYTz5vmV25Y6G", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "duration": { + "startTime": 0, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754045860587, + "modifiedTime": 1754046339705, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.effects!IIWV4ysJPFPnTP7W.dQgcYTz5vmV25Y6G" + } + ], "_key": "!actors!IIWV4ysJPFPnTP7W" } diff --git a/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json b/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json index db6985ce..553bb67b 100644 --- a/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json +++ b/src/packs/adversaries/adversary_Giant_Rat_4PfLnaCrOcMdb4dK.json @@ -17,10 +17,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "minion", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "G0iclPpoGwevQcTC": { + "name": "Keen Senses", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -49,22 +54,68 @@ }, "difficulty": 10, "tier": 1, - "description": "

A cat-sized rodent skilled at scavenging and survival.

" + "description": "

A cat-sized rodent skilled at scavenging and survival.

", + "resources": { + "hitPoints": { + "max": 1 + }, + "stress": { + "max": 1 + } + }, + "attack": { + "roll": { + "bonus": -4 + }, + "name": "Claws", + "img": "icons/creatures/claws/claw-straight-brown.webp", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784270, - "modifiedTime": 1753922784270, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046551239, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "4PfLnaCrOcMdb4dK", - "sort": 3400000, + "sort": 800000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -164,7 +215,131 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Minion (3)", + "type": "feature", + "_id": "v3AcLcWrXy2rtW4Z", + "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", + "system": { + "description": "

The Rat is defeated when they take any damage. For every 3 damage a PC deals to the Rat, defeat an additional Minion within range the attack would succeed against.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046555525, + "modifiedTime": 1754046632476, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!4PfLnaCrOcMdb4dK.v3AcLcWrXy2rtW4Z" + }, + { + "name": "Group Attack", + "type": "feature", + "_id": "fsaBlCjTdq1jM23G", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Spend a Fear to choose a target and spotlight all Giant Rats within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

", + "resource": null, + "actions": { + "q8chow47nQLR9qeF": { + "type": "attack", + "_id": "q8chow47nQLR9qeF", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "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-strike-bone-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046640194, + "modifiedTime": 1754046720495, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!4PfLnaCrOcMdb4dK.fsaBlCjTdq1jM23G" + } + ], "effects": [], "_key": "!actors!4PfLnaCrOcMdb4dK" } diff --git a/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json b/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json index 20590d90..0a7711e9 100644 --- a/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json +++ b/src/packs/adversaries/adversary_Giant_Scorpion_fmfntuJ8mHRCAktP.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "SZtO9UTincKiOlC4": { + "name": "Camouflage", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,59 @@ } }, "tier": 1, - "description": "

A human-sized insect with tearing claws and a stinging tail.

" + "description": "

A human-sized insect with tearing claws and a stinging tail.

", + "attack": { + "name": "Pincers", + "img": "icons/creatures/claws/pincer-crab-brown.webp", + "roll": { + "bonus": 1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d12", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784272, - "modifiedTime": 1753922784272, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754046801101, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "fmfntuJ8mHRCAktP", - "sort": 3400000, + "sort": 4200000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +222,302 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Double Strike", + "type": "feature", + "_id": "4ct6XEXiTBFQKvXW", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Mark a Stress to make a standard attack against two targets within Melee range.

", + "resource": null, + "actions": { + "PJbZ4ibLPle9BBRv": { + "type": "attack", + "_id": "PJbZ4ibLPle9BBRv", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d12", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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-strike-bone-orange.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046803174, + "modifiedTime": 1754046863892, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!fmfntuJ8mHRCAktP.4ct6XEXiTBFQKvXW" + }, + { + "name": "Venomous Stinger", + "type": "feature", + "_id": "lANiDkxxth2sGacT", + "img": "icons/creatures/abilities/stinger-poison-scorpion-brown.webp", + "system": { + "description": "

Make an attack against a target within Very Close range. On a success, spend a Fear to deal 1d4+4 physical damage and Poison them until their next rest or they succeed on a Knowledge Roll (16). While Poisoned, the target must roll a d6 before they make an action roll. On a result of 4 or lower, they must mark a Stress.

", + "resource": null, + "actions": { + "RvsClkuSWILB0nYa": { + "type": "damage", + "_id": "RvsClkuSWILB0nYa", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d4", + "bonus": 4, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "cO2VDcRL8uDN7Uu6", + "onSave": false + } + ], + "name": "Spend Fear", + "img": "icons/creatures/abilities/stinger-poison-scorpion-brown.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Poison", + "img": "icons/creatures/abilities/stinger-poison-scorpion-brown.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.fmfntuJ8mHRCAktP.Item.lANiDkxxth2sGacT", + "transfer": false, + "_id": "cO2VDcRL8uDN7Uu6", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You are Poisoned until your next rest or until you succeed on a Knowledge Roll (16). While Poisoned, you must roll a d6 before you make an action roll. On a result of 4 or lower, you must mark a Stress.

[[/dr trait=knowledge difficulty=16]]

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046921939, + "modifiedTime": 1754047011246, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!fmfntuJ8mHRCAktP.lANiDkxxth2sGacT.cO2VDcRL8uDN7Uu6" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754046868084, + "modifiedTime": 1754047035479, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!fmfntuJ8mHRCAktP.lANiDkxxth2sGacT" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "TmDpAY5t3PjhEv9K", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Scorpion makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047039345, + "modifiedTime": 1754047066840, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!fmfntuJ8mHRCAktP.TmDpAY5t3PjhEv9K" + } + ], "effects": [], "_key": "!actors!fmfntuJ8mHRCAktP" } diff --git a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json index da8dea2e..8b1f4bdb 100644 --- a/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json +++ b/src/packs/adversaries/adversary_Glass_Snake_8KWVLWXFhlY2kYx0.json @@ -65,22 +65,60 @@ } }, "tier": 1, - "description": "

A clear serpent with a massive head that leaves behind a glass shard trail wherever they go.

" + "description": "

A clear serpent with a massive head that leaves behind a glass shard trail wherever they go.

", + "attack": { + "name": "Glass Fangs", + "img": "icons/creatures/abilities/fang-tooth-blood-red.webp", + "roll": { + "bonus": 2 + }, + "range": "veryClose", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784273, - "modifiedTime": 1753922784273, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754047110424, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "8KWVLWXFhlY2kYx0", - "sort": 3400000, + "sort": 1400000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +218,397 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Armor-Shredding Shards", + "type": "feature", + "_id": "Efa6t9Ow8b1DRyZV", + "img": "icons/skills/melee/shield-damaged-broken-gold.webp", + "system": { + "description": "

On a successful attack within Melee range against the Snake, the attacker must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "resource": null, + "actions": { + "H1nUSOudbtha1lnC": { + "type": "damage", + "_id": "H1nUSOudbtha1lnC", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "armorSlot", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Damage Armor", + "img": "icons/skills/melee/shield-damaged-broken-gold.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047117565, + "modifiedTime": 1754047173751, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8KWVLWXFhlY2kYx0.Efa6t9Ow8b1DRyZV" + }, + { + "name": "Spinning Serpent", + "type": "feature", + "_id": "Ro9XCeXsTOT9SXyo", + "img": "icons/skills/melee/blood-slash-foam-red.webp", + "system": { + "description": "

Mark a Stress to make an attack against all targets within Very Close range. Targets the Snake succeeds against take 1d6+1 physical damage.

", + "resource": null, + "actions": { + "2UzeQYL5HeyF3zwh": { + "type": "attack", + "_id": "2UzeQYL5HeyF3zwh", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d6", + "bonus": 1, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/skills/melee/blood-slash-foam-red.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047177610, + "modifiedTime": 1754047224249, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8KWVLWXFhlY2kYx0.Ro9XCeXsTOT9SXyo" + }, + { + "name": "Spitter", + "type": "feature", + "_id": "LR5XHauNtWcl18CY", + "img": "icons/magic/acid/projectile-needles-salvo-green.webp", + "system": { + "description": "

Spend a Fear to introduce a d6 Spitter Die. When the Snake is in the spotlight, roll this die. On a result of 5 or higher, all targets in front of the Snake within Far range must succeed on an Agility Reaction Roll or take 1d4 physical damage. The Snake can take the spotlight a second time this GM turn.

@Template[type:inFront|range:f]

", + "resource": null, + "actions": { + "yx5fjMLLwSnvSbqs": { + "type": "effect", + "_id": "yx5fjMLLwSnvSbqs", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [ + { + "_id": "Mchd23xNQ4nSWw9X", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/magic/acid/projectile-needles-salvo-green.webp", + "range": "" + }, + "Ds6KlQKZCOhh5OMT": { + "type": "attack", + "_id": "Ds6KlQKZCOhh5OMT", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d4", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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": "agility", + "difficulty": null, + "damageMod": "none" + }, + "name": "Spit Attack", + "img": "icons/magic/acid/projectile-needles-salvo-green.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Spitter Die", + "img": "icons/magic/acid/projectile-needles-salvo-green.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.8KWVLWXFhlY2kYx0.Item.LR5XHauNtWcl18CY", + "transfer": false, + "_id": "Mchd23xNQ4nSWw9X", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You have a d6 Spitter Die. When the Snake is in the spotlight, roll this die. On a result of 5 or higher, all targets in front of the Snake within Far range must succeed on an Agility Reaction Roll or take 1d4 physical damage. The Snake can take the spotlight a second time this GM turn.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047334477, + "modifiedTime": 1754047363187, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!8KWVLWXFhlY2kYx0.LR5XHauNtWcl18CY.Mchd23xNQ4nSWw9X" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047231449, + "modifiedTime": 1754047430569, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8KWVLWXFhlY2kYx0.LR5XHauNtWcl18CY" + } + ], "effects": [], "_key": "!actors!8KWVLWXFhlY2kYx0" } diff --git a/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json b/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json index 8296e7d2..bcbe8b4f 100644 --- a/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json +++ b/src/packs/adversaries/adversary_Green_Ooze_SHXedd9zZPVfUgUa.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "skulk", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "Ti0QFAMro3FpetoT": { + "name": "Camouflage", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,59 @@ } }, "tier": 1, - "description": "

A moving mound of translucent green slime.

" + "description": "

A moving mound of translucent green slime.

", + "attack": { + "name": "Ooze Appendage", + "roll": { + "bonus": 1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784278, - "modifiedTime": 1753922784278, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754047493989, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "SHXedd9zZPVfUgUa", - "sort": 3400000, + "sort": 3500000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +222,382 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Slow", + "type": "feature", + "_id": "DquXi9yCNsPAFEmK", + "img": "icons/magic/time/hourglass-brown-orange.webp", + "system": { + "description": "

When you spotlight the Ooze and they don’t have a token on their stat block, they can’t act yet. Place a token on their stat block and describe what they’re preparing to do. When you spotlight the Ooze and they have a token on their stat block, clear the token and they can act.

", + "resource": { + "type": "simple", + "value": 0, + "max": "1", + "icon": "fa-solid fa-hourglass-half" + }, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047494964, + "modifiedTime": 1754047536506, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!SHXedd9zZPVfUgUa.DquXi9yCNsPAFEmK" + }, + { + "name": "Acidic Form", + "type": "feature", + "_id": "gJWoUSTGwVsJwPmK", + "img": "icons/skills/melee/shield-damaged-broken-gold.webp", + "system": { + "description": "

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefits (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "resource": null, + "actions": { + "nU4xpjruOvskcmiA": { + "type": "damage", + "_id": "nU4xpjruOvskcmiA", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "armorSlot", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Damage Armor", + "img": "icons/skills/melee/shield-damaged-broken-gold.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047544158, + "modifiedTime": 1754047598393, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!SHXedd9zZPVfUgUa.gJWoUSTGwVsJwPmK" + }, + { + "name": "Envelop", + "type": "feature", + "_id": "Sm9Sk4mSvcq6PkmR", + "img": "icons/creatures/slimes/slime-face-melting-green.webp", + "system": { + "description": "

Make a standard attack against a target within Melee range. On a success, the Ooze envelops them and the target must mark 2 Stress. The target must mark an additional Stress when they make an action roll. If the Ooze takes Severe damage, the target is freed.

", + "resource": null, + "actions": { + "fSxq0AL6YwZs7OAH": { + "type": "attack", + "_id": "fSxq0AL6YwZs7OAH", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d6", + "bonus": 1, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + }, + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "yk5kR5OVLCgDWfgY", + "onSave": false + } + ], + "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/slimes/slime-face-melting-green.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Envelop", + "img": "icons/creatures/slimes/slime-face-melting-green.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.SHXedd9zZPVfUgUa.Item.Sm9Sk4mSvcq6PkmR", + "transfer": false, + "_id": "yk5kR5OVLCgDWfgY", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You must mark an additional Stress when you make an action roll. If the Ooze takes Severe damage, you are freed.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047680616, + "modifiedTime": 1754047701198, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!SHXedd9zZPVfUgUa.Sm9Sk4mSvcq6PkmR.yk5kR5OVLCgDWfgY" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047601843, + "modifiedTime": 1754047680632, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!SHXedd9zZPVfUgUa.Sm9Sk4mSvcq6PkmR" + }, + { + "name": "Split", + "type": "feature", + "_id": "qNhrEK2YF8e3ljU6", + "img": "icons/creatures/slimes/slime-movement-pseudopods-green.webp", + "system": { + "description": "

When the Ooze has 3 or more HP marked, you can spend a Fear to split them into two Tiny Green Oozes (with no marked HP or Stress). Immediately spotlight both of them.

", + "resource": null, + "actions": { + "s5mLw6DRGd76MLcC": { + "type": "effect", + "_id": "s5mLw6DRGd76MLcC", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/slimes/slime-movement-pseudopods-green.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047707170, + "modifiedTime": 1754047746968, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!SHXedd9zZPVfUgUa.qNhrEK2YF8e3ljU6" + } + ], "effects": [], "_key": "!actors!SHXedd9zZPVfUgUa" } diff --git a/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json b/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json index 967815cd..c580e5e4 100644 --- a/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json +++ b/src/packs/adversaries/adversary_Harrier_uRtghKE9mHlII4rs.json @@ -37,7 +37,12 @@ "type": "standard", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "JlnCE0K8VvBosjMX": { + "name": "Camouflage", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,60 @@ } }, "tier": 1, - "description": "

A nimble fighter armed with javelins.

" + "description": "

A nimble fighter armed with javelins.

", + "attack": { + "name": "Javelin", + "range": "close", + "roll": { + "bonus": 1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/weapons/polearms/spear-hooked-rounded.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784281, - "modifiedTime": 1753922784281, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754047818844, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "uRtghKE9mHlII4rs", - "sort": 3400000, + "sort": 5000000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +223,158 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Maintain Distance", + "type": "feature", + "_id": "t9Fa5jKLhvjD8Ar2", + "img": "icons/skills/movement/arrow-upward-blue.webp", + "system": { + "description": "

After making a standard attack, the Harrier can move anywhere within Far range.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047858708, + "modifiedTime": 1754047895621, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uRtghKE9mHlII4rs.t9Fa5jKLhvjD8Ar2" + }, + { + "name": "Fall Back", + "type": "feature", + "_id": "v8TMp5ATyAjrmJJM", + "img": "icons/skills/movement/arrow-upward-yellow.webp", + "system": { + "description": "

When a creature moves into Melee range to make an attack, you can mark a Stress before the attack roll to move anywhere within Close range and make an attack against that creature. On a success, deal 1d10+2 physical damage.

", + "resource": null, + "actions": { + "FiuiLUbNUL0YKq7w": { + "type": "attack", + "_id": "FiuiLUbNUL0YKq7w", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d10", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/skills/movement/arrow-upward-yellow.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754047898040, + "modifiedTime": 1754047992144, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!uRtghKE9mHlII4rs.v8TMp5ATyAjrmJJM" + } + ], "effects": [], "_key": "!actors!uRtghKE9mHlII4rs" } diff --git a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json index 2d8c658e..b5d181dd 100644 --- a/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json +++ b/src/packs/adversaries/adversary_Head_Guard_mK3A5FTx6k8iPU3F.json @@ -34,10 +34,19 @@ "reduction": 0 } }, - "type": "standard", + "type": "leader", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "3B8vav5pEdBrxWXw": { + "name": "Commander", + "value": 2 + }, + "DxLwVt9XFIUUhCAo": { + "name": "Local Knowledge", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +74,59 @@ } }, "tier": 1, - "description": "

A seasoned guard with a mace, a whistle, and a bellowing voice.

" + "description": "

A seasoned guard with a mace, a whistle, and a bellowing voice.

", + "attack": { + "name": "Mace", + "img": "icons/weapons/maces/mace-round-ornate-purple.webp", + "roll": { + "bonus": 4 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d10", + "bonus": 4, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784282, - "modifiedTime": 1753922784282, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754048050272, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "mK3A5FTx6k8iPU3F", - "sort": 3400000, + "sort": 4600000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +226,165 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Rally Guards", + "type": "feature", + "_id": "SsgN2qSYpQLR43Cz", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "system": { + "description": "

Spend 2 Fear to spotlight the Head Guard and up to 2d4 allies within Far range.

@Template[type:emanation|range:f]

", + "resource": null, + "actions": { + "lI0lnRb3xrUjqIYX": { + "type": "attack", + "_id": "lI0lnRb3xrUjqIYX", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 2, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "roll": { + "type": "diceSet", + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "flat", + "flatMultiplier": 2, + "dice": "d4", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, + "name": "Rally", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048051353, + "modifiedTime": 1754048138930, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!mK3A5FTx6k8iPU3F.SsgN2qSYpQLR43Cz" + }, + { + "name": "On My Signal", + "type": "feature", + "_id": "YeJ7eJVCKsRxG8mk", + "img": "icons/skills/ranged/target-bullseye-arrow-blue.webp", + "system": { + "description": "

Countdown (5). When the Head Guard is in the spotlight for the fi rst time, activate the countdown. It ticks down when a PC makes an attack roll. When it triggers, all Archer Guards within Far range make a standard attack with advantage against the nearest target within their range. If any attacks succeed on the same target, combine their damage.

@Template[type:emanation|range:f]

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048119625, + "modifiedTime": 1754048254827, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!mK3A5FTx6k8iPU3F.YeJ7eJVCKsRxG8mk" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "sd2OlhLchyoqeKke", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Head Guard makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048263819, + "modifiedTime": 1754048279307, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!mK3A5FTx6k8iPU3F.sd2OlhLchyoqeKke" + } + ], "effects": [], "_key": "!actors!mK3A5FTx6k8iPU3F" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json b/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json index 39a4d45c..e984d9e2 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Bandit_5Lh1T0zaT8Pkr2U2.json @@ -36,7 +36,12 @@ "type": "standard", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "ASrtgt4pTDvoXehG": { + "name": "Thief", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,60 @@ } }, "tier": 1, - "description": "

A cunning criminal in a cloak bearing one of the gang’s iconic knives.

" + "description": "

A cunning criminal in a cloak bearing one of the gang’s iconic knives.

", + "motivesAndTactics": "Escape, profi t, steal, throw smoke", + "attack": { + "name": "Daggers", + "roll": { + "bonus": 1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/weapons/daggers/dagger-twin-green.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784290, - "modifiedTime": 1753922784290, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754048329039, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "5Lh1T0zaT8Pkr2U2", - "sort": 3400000, + "sort": 900000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +222,130 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Climber", + "type": "feature", + "_id": "5VPb3OJDv6Q5150r", + "img": "icons/skills/movement/arrow-upward-white.webp", + "system": { + "description": "

The Bandit climbs just as easily as they run.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048330414, + "modifiedTime": 1754048348296, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!5Lh1T0zaT8Pkr2U2.5VPb3OJDv6Q5150r" + }, + { + "name": "From Above", + "type": "feature", + "_id": "V7haVmSLm6vTeffc", + "img": "icons/skills/movement/arrow-down-pink.webp", + "system": { + "description": "

When the Bandit succeeds on a standard attack from above a target, they deal 1d10+1 physical damage instead of their standard damage.

", + "resource": null, + "actions": { + "X7xdCLY7ySMpaTHe": { + "type": "damage", + "_id": "X7xdCLY7ySMpaTHe", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d10", + "bonus": 1, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Damage", + "img": "icons/skills/movement/arrow-down-pink.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048351101, + "modifiedTime": 1754048394638, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!5Lh1T0zaT8Pkr2U2.V7haVmSLm6vTeffc" + } + ], "effects": [], "_key": "!actors!5Lh1T0zaT8Pkr2U2" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json b/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json index 2e68c2c2..580d6e0d 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Hexer_MbBPIOxaxXYNApXz.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "support", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "B5VVVALfK4P1nbWo": { + "name": "Magical Knowledge", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,60 @@ } }, "tier": 1, - "description": "

A staff-wielding bandit in a cloak adorned with magical paraphernalia, using curses to vex their foes.

" + "description": "

A staff-wielding bandit in a cloak adorned with magical paraphernalia, using curses to vex their foes.

", + "attack": { + "name": "Staff", + "range": "far", + "roll": { + "bonus": 2 + }, + "img": "icons/weapons/staves/staff-blue-jewel.webp", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784291, - "modifiedTime": 1753922784291, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754048452205, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "MbBPIOxaxXYNApXz", - "sort": 3400000, + "sort": 3000000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +223,223 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Curse", + "type": "feature", + "_id": "Bl8L0RCGOgVUzuXo", + "img": "icons/magic/unholy/hand-marked-pink.webp", + "system": { + "description": "

Choose a target within Far range and temporarily Curse them. While the target is Cursed, you can mark a Stress when that target rolls with Hope to make the roll be with Fear instead.

", + "resource": null, + "actions": { + "yzjCJyfGzZrEd0G3": { + "type": "effect", + "_id": "yzjCJyfGzZrEd0G3", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [ + { + "_id": "ihy3kvEGSOEKdNfT", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Use", + "img": "icons/magic/unholy/hand-marked-pink.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Curse", + "img": "icons/magic/unholy/hand-marked-pink.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.MbBPIOxaxXYNApXz.Item.Bl8L0RCGOgVUzuXo", + "transfer": false, + "_id": "ihy3kvEGSOEKdNfT", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Whenever you roll with Hope, the hexer can mark a stress to make the roll be with Fear instead.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048512322, + "modifiedTime": 1754048550598, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!MbBPIOxaxXYNApXz.Bl8L0RCGOgVUzuXo.ihy3kvEGSOEKdNfT" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048453602, + "modifiedTime": 1754048512335, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!MbBPIOxaxXYNApXz.Bl8L0RCGOgVUzuXo" + }, + { + "name": "Chaotic Flux", + "type": "feature", + "_id": "d8uVdKpTm9yw6TZS", + "img": "icons/magic/unholy/projectile-bolts-salvo-pink.webp", + "system": { + "description": "

Make an attack against up to three targets within Very Close range. Mark a Stress to deal 2d6+3 magic damage to targets the Hexer succeeded against.

", + "resource": null, + "actions": { + "HmvmqoMli6oC2y2a": { + "type": "attack", + "_id": "HmvmqoMli6oC2y2a", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 2, + "dice": "d6", + "bonus": 3, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 3 + }, + "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/magic/unholy/projectile-bolts-salvo-pink.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048558693, + "modifiedTime": 1754048626455, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!MbBPIOxaxXYNApXz.d8uVdKpTm9yw6TZS" + } + ], "effects": [], "_key": "!actors!MbBPIOxaxXYNApXz" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json b/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json index ebd5d2fc..2ddc4e15 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Kneebreaker_CBKixLH3yhivZZuL.json @@ -34,10 +34,19 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "VMCCn7A9eLU1PMz7": { + "name": "Thief", + "value": 2 + }, + "HXPw1dnHO0ckLOBS": { + "name": "Unveiled Threats", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +74,59 @@ } }, "tier": 1, - "description": "

An imposing brawler carrying a large club.

" + "description": "

An imposing brawler carrying a large club.

", + "attack": { + "name": "Club", + "img": "icons/weapons/clubs/club-barbed-steel.webp", + "roll": { + "bonus": -3 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d4", + "bonus": 6, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784292, - "modifiedTime": 1753922784292, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754048705930, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "CBKixLH3yhivZZuL", - "sort": 3400000, + "sort": 2300000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +226,176 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "I've Got 'Em", + "type": "feature", + "_id": "vipYd2zMFs0i4Ock", + "img": "icons/commodities/metal/chain-silver.webp", + "system": { + "description": "

Creatures Restrained by the Kneebreaker take double damage from attacks by other adversaries.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048707079, + "modifiedTime": 1754048731065, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!CBKixLH3yhivZZuL.vipYd2zMFs0i4Ock" + }, + { + "name": "Hold Them Down", + "type": "feature", + "_id": "Sa4Nt0eoDjirBKGf", + "img": "icons/skills/melee/unarmed-punch-fist.webp", + "system": { + "description": "

Make an attack against a target within Melee range. On a success, the target takes no damage but is Restrained and Vulnerable. The target can break free, clearing both conditions, with a successful Strength Roll or is freed automatically if the Kneebreaker takes Major or greater damage.

", + "resource": null, + "actions": { + "uMNSQzNPVPhHT34T": { + "type": "attack", + "_id": "uMNSQzNPVPhHT34T", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "d7sB1Qa1kJMnglqu", + "onSave": false + } + ], + "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/skills/melee/unarmed-punch-fist.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Hold Them Down", + "img": "icons/skills/melee/unarmed-punch-fist.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.CBKixLH3yhivZZuL.Item.Sa4Nt0eoDjirBKGf", + "transfer": false, + "_id": "d7sB1Qa1kJMnglqu", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "", + "tint": "#ffffff", + "statuses": [ + "restrained", + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048778047, + "modifiedTime": 1754048784601, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!CBKixLH3yhivZZuL.Sa4Nt0eoDjirBKGf.d7sB1Qa1kJMnglqu" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048736567, + "modifiedTime": 1754048778059, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!CBKixLH3yhivZZuL.Sa4Nt0eoDjirBKGf" + } + ], "effects": [], "_key": "!actors!CBKixLH3yhivZZuL" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json b/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json index 13e61cf3..e8e2b75c 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Lackey_C0OMQqV7pN6t7ouR.json @@ -17,10 +17,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "minion", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "tNLKSFvNBTfjwujs": { + "name": "Thief", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -49,22 +54,68 @@ }, "difficulty": 9, "tier": 1, - "description": "

A thief with simple clothes and small daggers, eager to prove themselves.

" + "description": "

A thief with simple clothes and small daggers, eager to prove themselves.

", + "attack": { + "name": "Daggers", + "img": "icons/weapons/daggers/dagger-twin-green.webp", + "roll": { + "bonus": -2 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + }, + "resources": { + "hitPoints": { + "max": 1 + }, + "stress": { + "max": 1 + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784293, - "modifiedTime": 1753922784293, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754048849157, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "C0OMQqV7pN6t7ouR", - "sort": 3400000, + "sort": 2100000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -164,7 +215,107 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Minion (3)", + "type": "feature", + "_id": "hfP30YIlYDW9wkHe", + "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", + "system": { + "description": "

The Lackey is defeated when they take any damage. For every 3 damage a PC deals to the Lackey, defeat an additional Minion within range the attack would succeed against.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048850501, + "modifiedTime": 1754048890330, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!C0OMQqV7pN6t7ouR.hfP30YIlYDW9wkHe" + }, + { + "name": "Group Attack", + "type": "feature", + "_id": "1k5TmQIAunM7Bv32", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Spend a Fear to choose a target and spotlight all Jagged Knife Lackeys within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", + "resource": null, + "actions": { + "aoQDb2m32NDxE6ZP": { + "type": "effect", + "_id": "aoQDb2m32NDxE6ZP", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048894188, + "modifiedTime": 1754048930970, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!C0OMQqV7pN6t7ouR.1k5TmQIAunM7Bv32" + } + ], "effects": [], "_key": "!actors!C0OMQqV7pN6t7ouR" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json index b2650eef..73909d8e 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Lieutenant_aTljstqteGoLpCBq.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "leader", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "oeECEmL7jdYrpiBY": { + "name": "Local Knowledge", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,60 @@ } }, "tier": 1, - "description": "

A seasoned bandit in quality leathers with a strong voice and cunning eyes.

" + "description": "

A seasoned bandit in quality leathers with a strong voice and cunning eyes.

", + "attack": { + "name": "Javelin", + "img": "icons/weapons/polearms/spear-hooked-rounded.webp", + "roll": { + "bonus": 2 + }, + "range": "close", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784294, - "modifiedTime": 1753922784294, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754048988454, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "aTljstqteGoLpCBq", - "sort": 3400000, + "sort": 4000000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +223,282 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Tactician", + "type": "feature", + "_id": "LIAbel7pMzAHpgF3", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "system": { + "description": "

When you spotlight the Lieutenant, mark a Stress to also spotlight two allies within Close range.

", + "resource": null, + "actions": { + "IfMFU67g4sfhSYtm": { + "type": "effect", + "_id": "IfMFU67g4sfhSYtm", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "friendly", + "amount": 2 + }, + "name": "Mark Stress", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754048989987, + "modifiedTime": 1754049036837, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!aTljstqteGoLpCBq.LIAbel7pMzAHpgF3" + }, + { + "name": "More Where That Came From", + "type": "feature", + "_id": "Mo91w4ccffcmBPt5", + "img": "icons/magic/control/silhouette-hold-beam-blue.webp", + "system": { + "description": "

Summon three Jagged Knife Lackeys, who appear at Far range.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049041008, + "modifiedTime": 1754049075688, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!aTljstqteGoLpCBq.Mo91w4ccffcmBPt5" + }, + { + "name": "Coup de Grace", + "type": "feature", + "_id": "qe94UdLZb0p3Gvxj", + "img": "icons/weapons/polearms/spear-flared-bronze-teal.webp", + "system": { + "description": "

Spend a Fear to make an attack against a Vulnerable target within Close range. On a success, deal 2d6+12 physical damage and the target must mark a Stress.

", + "resource": null, + "actions": { + "fzVyO0DUwIVEUCtg": { + "type": "attack", + "_id": "fzVyO0DUwIVEUCtg", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 2, + "dice": "d6", + "bonus": 12, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + }, + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "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/weapons/polearms/spear-flared-bronze-teal.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049080786, + "modifiedTime": 1754049152990, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!aTljstqteGoLpCBq.qe94UdLZb0p3Gvxj" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "uelnRgGStjJ27VtO", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Lieutenant makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049157702, + "modifiedTime": 1754049175516, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!aTljstqteGoLpCBq.uelnRgGStjJ27VtO" + } + ], "effects": [], "_key": "!actors!aTljstqteGoLpCBq" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json b/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json index a44490db..b5b90601 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Shadow_XF4tYTq9nPJAy2ox.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "skulk", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "ZUMG6p8iB73HY73o": { + "name": "Intrusion", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,59 @@ } }, "tier": 1, - "description": "

A nimble scoundrel bearing a wicked knife and utilizing shadow magic to isolate targets.

" + "description": "

A nimble scoundrel bearing a wicked knife and utilizing shadow magic to isolate targets.

", + "attack": { + "name": "Daggers", + "img": "icons/weapons/daggers/dagger-twin-green.webp", + "roll": { + "bonus": 1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d4", + "bonus": 4, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784295, - "modifiedTime": 1753922784295, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754049225449, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "XF4tYTq9nPJAy2ox", - "sort": 3400000, + "sort": 3700000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +222,197 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Backstab", + "type": "feature", + "_id": "dhycdSd4NYdPOYbP", + "img": "icons/weapons/daggers/dagger-crooked-ice-blue.webp", + "system": { + "description": "

When the Shadow succeeds on a standard attack that has advantage, they deal 1d6+6 physical damage instead of their standard damage.

", + "resource": null, + "actions": { + "6G5Dasl1pP8pfYkZ": { + "type": "attack", + "_id": "6G5Dasl1pP8pfYkZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d6", + "bonus": 6, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/weapons/daggers/dagger-crooked-ice-blue.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049227184, + "modifiedTime": 1754049294295, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!XF4tYTq9nPJAy2ox.dhycdSd4NYdPOYbP" + }, + { + "name": "Cloaked", + "type": "feature", + "_id": "ILIogeKbYioPutRw", + "img": "icons/magic/perception/silhouette-stealth-shadow.webp", + "system": { + "description": "

Become Hidden until after the Shadow’s next attack. Attacks made while Hidden from this feature have advantage.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Cloaked", + "type": "base", + "_id": "9fZkdsHfyTskJk7r", + "img": "icons/magic/perception/silhouette-stealth-shadow.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": true, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Become Hidden until after the Shadow’s next attack. Attacks made while Hidden from this feature have advantage.

", + "origin": null, + "tint": "#ffffff", + "transfer": true, + "statuses": [ + "hidden" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049344935, + "modifiedTime": 1754049371699, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!XF4tYTq9nPJAy2ox.ILIogeKbYioPutRw.9fZkdsHfyTskJk7r" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049306353, + "modifiedTime": 1754049333765, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!XF4tYTq9nPJAy2ox.ILIogeKbYioPutRw" + } + ], "effects": [], "_key": "!actors!XF4tYTq9nPJAy2ox" } diff --git a/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json b/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json index 03145e51..6958388a 100644 --- a/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json +++ b/src/packs/adversaries/adversary_Jagged_Knife_Sniper_1zuyof1XuIfi3aMG.json @@ -36,7 +36,12 @@ "type": "standard", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "GLqSqPJcyKHQYMtO": { + "name": "Stealth", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,61 @@ } }, "tier": 1, - "description": "

A lanky bandit striking from cover with a shortbow.

" + "description": "

A lanky bandit striking from cover with a shortbow.

", + "motivesAndTactics": "Ambush, hide, profi t, reposition", + "attack": { + "name": "Shortbow", + "img": "icons/weapons/bows/shortbow-leather.webp", + "roll": { + "bonus": -1 + }, + "range": "far", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d10", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784296, - "modifiedTime": 1753922784296, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754049439023, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "1zuyof1XuIfi3aMG", - "sort": 3400000, + "sort": 300000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +223,116 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Unseen Strike", + "type": "feature", + "_id": "adPXzpvLREjN3len", + "img": "icons/skills/ranged/arrow-flying-spiral-blue.webp", + "system": { + "description": "

If the Sniper is Hidden when they make a successful standard attack against a target, they deal 1d10+4 physical damage instead of their standard damage.

", + "resource": null, + "actions": { + "2eX7P0wSfbKKu8dJ": { + "type": "attack", + "_id": "2eX7P0wSfbKKu8dJ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d10", + "bonus": 4, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/skills/ranged/arrow-flying-spiral-blue.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049443033, + "modifiedTime": 1754049483638, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!1zuyof1XuIfi3aMG.adPXzpvLREjN3len" + } + ], "effects": [], "_key": "!actors!1zuyof1XuIfi3aMG" } diff --git a/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json b/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json index 8772432f..0ffc3a7d 100644 --- a/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json +++ b/src/packs/adversaries/adversary_Merchant_Al3w2CgjfdT3p9ma.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "social", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "5cbm0DMiWxo6300c": { + "name": "Shrewd Negotiator", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,59 @@ } }, "tier": 1, - "description": "

A finely dressed trader with a keen eye for financial gain.

" + "description": "

A finely dressed trader with a keen eye for financial gain.

", + "attack": { + "name": "Club", + "roll": { + "bonus": -4 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d4", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/weapons/clubs/club-baton-blue.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784305, - "modifiedTime": 1753922784305, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754049539761, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "Al3w2CgjfdT3p9ma", - "sort": 3400000, + "sort": 1900000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +222,129 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Preferential Treatment", + "type": "feature", + "_id": "3Fwj28UxUcdMifoi", + "img": "icons/skills/social/diplomacy-handshake.webp", + "system": { + "description": "

A PC who succeeds on a Presence Roll against the Merchant gains a discount on purchases. A PC who fails on a Presence Roll against the Merchant must pay more and has disadvantage on future Presence Rolls against the Merchant.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049540890, + "modifiedTime": 1754049568257, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!Al3w2CgjfdT3p9ma.3Fwj28UxUcdMifoi" + }, + { + "name": "The Runaround", + "type": "feature", + "_id": "Ksdgov6mYg7Og2ys", + "img": "icons/skills/social/trading-justice-scale-yellow.webp", + "system": { + "description": "

When a PC rolls a 14 or lower on a Presence Roll made against the Merchant, they must mark a Stress.

", + "resource": null, + "actions": { + "sTHDvAggf1nUX4Ai": { + "type": "damage", + "_id": "sTHDvAggf1nUX4Ai", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Stress Damage", + "img": "icons/skills/social/trading-justice-scale-yellow.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049578056, + "modifiedTime": 1754049645666, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!Al3w2CgjfdT3p9ma.Ksdgov6mYg7Og2ys" + } + ], "effects": [], "_key": "!actors!Al3w2CgjfdT3p9ma" } diff --git a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json index d38eef50..22fc46af 100644 --- a/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json +++ b/src/packs/adversaries/adversary_Minor_Chaos_Elemental_sRn4bqerfARvhgSV.json @@ -34,7 +34,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "solo", "notes": "", "hordeHp": 1, "experiences": {}, @@ -65,22 +65,59 @@ } }, "tier": 1, - "description": "

A coruscating mass of uncontrollable magic.

" + "description": "

A coruscating mass of uncontrollable magic.

", + "attack": { + "name": "Warp Blast", + "roll": { + "bonus": 3 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d12", + "bonus": 6, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "range": "close" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784307, - "modifiedTime": 1753922784307, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754049682687, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "sRn4bqerfARvhgSV", - "sort": 3400000, + "sort": 4800000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +217,405 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Arcane Form", + "type": "feature", + "_id": "4Rw5KC5klRseiLvn", + "img": "icons/magic/defensive/shield-barrier-flaming-diamond-blue.webp", + "system": { + "description": "

The Elemental is resistant to magic damage.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Arcane Form", + "type": "base", + "_id": "vwc93gtzFoFZj4XT", + "img": "icons/magic/defensive/shield-barrier-flaming-diamond-blue.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.resistance.magical.resistance", + "mode": 2, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

The Elemental is resistant to magic 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": 1754049715134, + "modifiedTime": 1754049734456, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!sRn4bqerfARvhgSV.4Rw5KC5klRseiLvn.vwc93gtzFoFZj4XT" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049689376, + "modifiedTime": 1754049704950, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!sRn4bqerfARvhgSV.4Rw5KC5klRseiLvn" + }, + { + "name": "Sickening Flux", + "type": "feature", + "_id": "oAxhAawgcK7DAdpa", + "img": "icons/magic/sonic/explosion-shock-sound-wave.webp", + "system": { + "description": "

Mark a HP to force all targets within Close range to mark a Stress and become Vulnerable until their next rest or they clear a HP.

@Template[type:emanation|range:c]

", + "resource": null, + "actions": { + "g4CVwjDeJgTJ2oCw": { + "type": "damage", + "_id": "g4CVwjDeJgTJ2oCw", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "hitPoints", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "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 + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [ + { + "_id": "KIyV2eXDmmymXY5y", + "onSave": false + } + ], + "name": "Mark HP", + "img": "icons/magic/sonic/explosion-shock-sound-wave.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Sickening Flux", + "img": "icons/magic/sonic/explosion-shock-sound-wave.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.sRn4bqerfARvhgSV.Item.oAxhAawgcK7DAdpa", + "transfer": false, + "_id": "KIyV2eXDmmymXY5y", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Vulnerable until your next rest or you clear a HP.

", + "tint": "#ffffff", + "statuses": [ + "vulnerable" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049820090, + "modifiedTime": 1754049838876, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!sRn4bqerfARvhgSV.oAxhAawgcK7DAdpa.KIyV2eXDmmymXY5y" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049738720, + "modifiedTime": 1754049853494, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!sRn4bqerfARvhgSV.oAxhAawgcK7DAdpa" + }, + { + "name": "Remake Reality", + "type": "feature", + "_id": "updQuIK8sybf4YmW", + "img": "icons/magic/light/explosion-glow-spiral-teal.webp", + "system": { + "description": "

Spend a Fear to transform the area within Very Close range into a different biome. All targets within this area take 2d6+3 direct magic damage.

@Template[type:emanation|range:vc]

", + "resource": null, + "actions": { + "QzuQIAtSrgz9Zd5V": { + "type": "damage", + "_id": "QzuQIAtSrgz9Zd5V", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 2, + "dice": "d6", + "bonus": 3, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Spend Fear", + "img": "icons/magic/light/explosion-glow-spiral-teal.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049858342, + "modifiedTime": 1754049963046, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!sRn4bqerfARvhgSV.updQuIK8sybf4YmW" + }, + { + "name": "Magical Reflection", + "type": "feature", + "_id": "dnVB2DxbpYtwt0S0", + "img": "icons/magic/light/beam-impact-deflect-teal.webp", + "system": { + "description": "

When the Elemental takes damage from an attack within Close range, deal an amount of damage to the attacker equal to half the damage they dealt.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754049966321, + "modifiedTime": 1754049998059, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!sRn4bqerfARvhgSV.dnVB2DxbpYtwt0S0" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "JqRfb0IZ3aJrVazI", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Elemental makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050010657, + "modifiedTime": 1754050027337, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!sRn4bqerfARvhgSV.JqRfb0IZ3aJrVazI" + } + ], "effects": [], "_key": "!actors!sRn4bqerfARvhgSV" } diff --git a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json index 81919108..41ac0d37 100644 --- a/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json +++ b/src/packs/adversaries/adversary_Minor_Demon_3tqCjDwJAQ7JKqMb.json @@ -34,7 +34,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "solo", "notes": "", "hordeHp": 1, "experiences": {}, @@ -65,22 +65,59 @@ } }, "tier": 1, - "description": "

A crimson-hued creature from the Circles Below, consumed by rage against all mortals.

" + "description": "

A crimson-hued creature from the Circles Below, consumed by rage against all mortals.

", + "attack": { + "name": "Claws", + "img": "icons/creatures/claws/claw-hooked-barbed.webp", + "roll": { + "bonus": 3 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 6, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784308, - "modifiedTime": 1753922784308, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754050065137, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "3tqCjDwJAQ7JKqMb", - "sort": 3400000, + "sort": 700000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +217,344 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Relentless (2)", + "type": "feature", + "_id": "4xoydX3YwsLujuaI", + "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", + "system": { + "description": "

The Demon can be spotlighted up to two times per GM turn. Spend Fear as usual to spotlight them.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050072926, + "modifiedTime": 1754050089194, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!3tqCjDwJAQ7JKqMb.4xoydX3YwsLujuaI" + }, + { + "name": "All Must fall", + "type": "feature", + "_id": "kD9kO92V7t3IqZu8", + "img": "icons/magic/unholy/strike-hand-glow-pink.webp", + "system": { + "description": "

When a PC rolls a failure with Fear while within Close range of the Demon, they lose a Hope.

@Template[type:emanation|range:c]

", + "resource": null, + "actions": { + "XQ7QebA0iGvMti4A": { + "type": "damage", + "_id": "XQ7QebA0iGvMti4A", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "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": "any", + "amount": null + }, + "effects": [], + "name": "Hope Damage", + "img": "icons/magic/unholy/strike-hand-glow-pink.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050091351, + "modifiedTime": 1754050150499, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!3tqCjDwJAQ7JKqMb.kD9kO92V7t3IqZu8" + }, + { + "name": "Hellfire", + "type": "feature", + "_id": "lA7vcvS7oGT9NTSy", + "img": "icons/magic/fire/projectile-beams-salvo-red.webp", + "system": { + "description": "

Spend a Fear to rain down hellfire within Far range. All targets within the area must make an Agility Reaction Roll. Targets who fail take 1d20+3 magic damage. Targets who succeed take half damage.

@Template[type:emanation|range:f]

", + "resource": null, + "actions": { + "nOzLQ0NJzeB3vKiV": { + "type": "attack", + "_id": "nOzLQ0NJzeB3vKiV", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d20", + "bonus": 3, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "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 + }, + "save": { + "trait": "agility", + "difficulty": null, + "damageMod": "half" + }, + "name": "Spend Fear", + "img": "icons/magic/fire/projectile-beams-salvo-red.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050154885, + "modifiedTime": 1754050246276, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!3tqCjDwJAQ7JKqMb.lA7vcvS7oGT9NTSy" + }, + { + "name": "Reaper", + "type": "feature", + "_id": "bpLBGTW1DmXPgIcx", + "img": "icons/magic/death/skull-energy-light-white.webp", + "system": { + "description": "

Before rolling damage for the Demon’s attack, you can mark a Stress to gain a bonus to the damage roll equal to the Demon’s current number of marked HP.

", + "resource": null, + "actions": { + "vZq3iaJrMzLYbqQN": { + "type": "effect", + "_id": "vZq3iaJrMzLYbqQN", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Mark Stress", + "img": "icons/magic/death/skull-energy-light-white.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050253435, + "modifiedTime": 1754050314370, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!3tqCjDwJAQ7JKqMb.bpLBGTW1DmXPgIcx" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "w400aHTlADxDihpt", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Demon makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050318009, + "modifiedTime": 1754050337233, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!3tqCjDwJAQ7JKqMb.w400aHTlADxDihpt" + } + ], "effects": [], "_key": "!actors!3tqCjDwJAQ7JKqMb" } diff --git a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json index 6fe5fb25..283a2ad3 100644 --- a/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json +++ b/src/packs/adversaries/adversary_Minor_Fire_Elemental_DscWkNVoHak6P4hh.json @@ -34,7 +34,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "solo", "notes": "", "hordeHp": 1, "experiences": {}, @@ -65,22 +65,60 @@ } }, "tier": 1, - "description": "

A living flame the size of a large bonfire.

" + "description": "

A living flame the size of a large bonfire.

", + "attack": { + "name": "Elemental Blast", + "img": "icons/magic/fire/flame-burning-earth-orange.webp", + "roll": { + "bonus": 3 + }, + "range": "far", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d10", + "bonus": 4, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784308, - "modifiedTime": 1753922784308, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754050387942, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "DscWkNVoHak6P4hh", - "sort": 3400000, + "sort": 2400000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +218,482 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Relentless (2)", + "type": "feature", + "_id": "c1jcZZD616J5Y4Mb", + "img": "icons/magic/unholy/silhouette-evil-horned-giant.webp", + "system": { + "description": "

The Elemental can be spotlighted up to two times per GM turn. Spend Fear as usual to spotlight them.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050392983, + "modifiedTime": 1754050410908, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!DscWkNVoHak6P4hh.c1jcZZD616J5Y4Mb" + }, + { + "name": "Scorched Earth", + "type": "feature", + "_id": "7AXE86WNd68OySkD", + "img": "icons/magic/fire/explosion-flame-lightning-strike.webp", + "system": { + "description": "

Mark a Stress to choose a point within Far range. The ground within Very Close range of that point immediately bursts into fl ames. All creatures within this area must make an Agility Reaction Roll. Targets who fail take 2d8 magic damage from the fl ames. Targets who succeed take half damage.

@Template[type:circle|range:vc]

", + "resource": null, + "actions": { + "x1VCkfcSYiPyg8fk": { + "type": "attack", + "_id": "x1VCkfcSYiPyg8fk", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 2, + "dice": "d8", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "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 + }, + "save": { + "trait": "agility", + "difficulty": null, + "damageMod": "half" + }, + "name": "Attack", + "img": "icons/magic/fire/explosion-flame-lightning-strike.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050413593, + "modifiedTime": 1754050528586, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!DscWkNVoHak6P4hh.7AXE86WNd68OySkD" + }, + { + "name": "Explosion", + "type": "feature", + "_id": "ESnu3I89BmUdBZEk", + "img": "icons/magic/fire/explosion-fireball-large-red-orange.webp", + "system": { + "description": "

Spend a Fear to erupt in a fi ery explosion. Make an attack against all targets within Close range. Targets the Elemental succeeds against take 1d8 magic damage and are knocked back to Far range.

@Template[type:emanation|range:c]

", + "resource": null, + "actions": { + "JQgqyW8H7fugR7F0": { + "type": "attack", + "_id": "JQgqyW8H7fugR7F0", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d8", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "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/magic/fire/explosion-fireball-large-red-orange.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050532131, + "modifiedTime": 1754050622414, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!DscWkNVoHak6P4hh.ESnu3I89BmUdBZEk" + }, + { + "name": "Consume Kindling", + "type": "feature", + "_id": "3u6wvKPJAS2v5nWV", + "img": "icons/magic/fire/elemental-fire-flying.webp", + "system": { + "description": "

Three times per scene, when the Elemental moves onto objects that are highly flammable, consume them to clear a HP or a Stress.

", + "resource": { + "type": "simple", + "value": 0, + "max": "3", + "icon": "fa-solid fa-fire" + }, + "actions": { + "CTWSVVisdgJgF7pd": { + "type": "healing", + "_id": "CTWSVVisdgJgF7pd", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "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": "Heal HP", + "img": "icons/magic/fire/elemental-fire-flying.webp", + "range": "" + }, + "e0fG0xtj6hOUp66o": { + "type": "healing", + "_id": "e0fG0xtj6hOUp66o", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "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": "Healing", + "img": "icons/magic/fire/elemental-fire-flying.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050626054, + "modifiedTime": 1754050713454, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!DscWkNVoHak6P4hh.3u6wvKPJAS2v5nWV" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "kssnXljBaV31iX58", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Elemental makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050716542, + "modifiedTime": 1754050733981, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!DscWkNVoHak6P4hh.kssnXljBaV31iX58" + } + ], "effects": [], "_key": "!actors!DscWkNVoHak6P4hh" } diff --git a/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json b/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json index 4c141dc4..1f91f112 100644 --- a/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json +++ b/src/packs/adversaries/adversary_Minor_Treant_G62k4oSkhkoXEs2D.json @@ -17,7 +17,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "minion", "notes": "", "hordeHp": 1, "experiences": {}, @@ -49,22 +49,68 @@ }, "difficulty": 10, "tier": 1, - "description": "

An ambulatory sapling rising up to defend their forest.

" + "description": "

An ambulatory sapling rising up to defend their forest.

", + "resources": { + "hitPoints": { + "max": 1 + }, + "stress": { + "max": 1 + } + }, + "attack": { + "name": "Clawed Branch", + "img": "icons/magic/nature/root-vine-hand-strike.webp", + "roll": { + "bonus": -2 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "4" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784309, - "modifiedTime": 1753922784309, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754050771646, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "G62k4oSkhkoXEs2D", - "sort": 3400000, + "sort": 2600000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -164,7 +210,107 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Minion (5)", + "type": "feature", + "_id": "gOgqATDRzPP7Jzbh", + "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", + "system": { + "description": "

The Treant is defeated when they take any damage. For every 5 damage a PC deals to the Treant, defeat an additional Minion within range the attack would succeed against.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050776443, + "modifiedTime": 1754050802444, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!G62k4oSkhkoXEs2D.gOgqATDRzPP7Jzbh" + }, + { + "name": "Group Attack", + "type": "feature", + "_id": "K08WlZwGqzEo4idT", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Spend a Fear to choose a target and spotlight all Minor Treants within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 4 physical damage each. Combine this damage.

", + "resource": null, + "actions": { + "xTMNAHcoErKuR6TZ": { + "type": "effect", + "_id": "xTMNAHcoErKuR6TZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754050805777, + "modifiedTime": 1754050841338, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!G62k4oSkhkoXEs2D.K08WlZwGqzEo4idT" + } + ], "effects": [], "_key": "!actors!G62k4oSkhkoXEs2D" } diff --git a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json index d26bec1b..069f6096 100644 --- a/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json +++ b/src/packs/adversaries/adversary_Patchwork_Zombie_Hulk_EQTOAOUrkIvS2z88.json @@ -34,10 +34,19 @@ "reduction": 0 } }, - "type": "standard", + "type": "solo", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "rLPEhboQmaD7QV7T": { + "name": "Intimidation", + "value": 2 + }, + "ejtjcqd5oW6eKnav": { + "name": "Tear Things Apart", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +74,60 @@ } }, "tier": 1, - "description": "

A towering gestalt of corpses moving as one, with torso-sized limbs and fists as large as a grown halfling.

" + "description": "

A towering gestalt of corpses moving as one, with torso-sized limbs and fists as large as a grown halfling.

", + "attack": { + "name": "Too Many Arms", + "range": "veryClose", + "roll": { + "bonus": 4 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d20", + "bonus": null, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/commodities/biological/hand-clawed-blue.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784322, - "modifiedTime": 1753922784322, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754051426324, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "EQTOAOUrkIvS2z88", - "sort": 3400000, + "sort": 2500000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +227,318 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Destructible", + "type": "feature", + "_id": "rEJ1kAfhHQZWhrZj", + "img": "icons/commodities/biological/hand-clawed-tan.webp", + "system": { + "description": "

When the Zombie takes Major or greater damage, they mark an additional HP.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051427428, + "modifiedTime": 1754051450294, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!EQTOAOUrkIvS2z88.rEJ1kAfhHQZWhrZj" + }, + { + "name": "Flailing Limbs", + "type": "feature", + "_id": "0fn7rVLwBnyCyvTA", + "img": "icons/skills/melee/strike-slashes-orange.webp", + "system": { + "description": "

When the Zombie makes a standard attack, they can attack all targets within Very Close range.

@Template[type:emanation|range:vc]

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051453609, + "modifiedTime": 1754051485833, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!EQTOAOUrkIvS2z88.0fn7rVLwBnyCyvTA" + }, + { + "name": "Another for the Pile", + "type": "feature", + "_id": "gw1Z2VazlRXYCiCK", + "img": "icons/magic/death/skull-trio-badge-purple.webp", + "system": { + "description": "

When the Zombie is within Very Close range of a corpse, they can incorporate it into themselves, clearing a HP and a Stress.

", + "resource": null, + "actions": { + "PfaFRZKFnHGg6mU4": { + "type": "healing", + "_id": "PfaFRZKFnHGg6mU4", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + }, + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "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": "Heal", + "img": "icons/magic/death/skull-trio-badge-purple.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051528475, + "modifiedTime": 1754051573226, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!EQTOAOUrkIvS2z88.gw1Z2VazlRXYCiCK" + }, + { + "name": "Tormented Screams", + "type": "feature", + "_id": "uTtQwNg46NAjgzuD", + "img": "icons/magic/death/skeleton-skull-soul-blue.webp", + "system": { + "description": "

Mark a Stress to cause all PCs within Far range to make a Presence Reaction Roll (13). Targets who fail lose a Hope and you gain a Fear for each. Targets who succeed must mark a Stress.

@Template[type:emanation|range:f]

", + "resource": null, + "actions": { + "2NYC0D7wkBNrUAKl": { + "type": "attack", + "_id": "2NYC0D7wkBNrUAKl", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "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": "any", + "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 + }, + "save": { + "trait": "presence", + "difficulty": null, + "damageMod": "none" + }, + "name": "Mark Stress", + "img": "icons/magic/death/skeleton-skull-soul-blue.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051580022, + "modifiedTime": 1754051676926, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!EQTOAOUrkIvS2z88.uTtQwNg46NAjgzuD" + } + ], "effects": [], "_key": "!actors!EQTOAOUrkIvS2z88" } diff --git a/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json b/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json index 03002595..eb31b205 100644 --- a/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json +++ b/src/packs/adversaries/adversary_Petty_Noble_wycLpvebWdUqRhpP.json @@ -33,10 +33,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "social", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "cATk1IILqCDA5pnb": { + "name": "Aristocrat", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,60 @@ } }, "tier": 1, - "description": "

A richly dressed and adorned aristocrat brimming with hubris.

" + "description": "

A richly dressed and adorned aristocrat brimming with hubris.

", + "motivesAndTactics": "Abuse power, gather resources, mobilize minions", + "attack": { + "name": "Rapier", + "img": "icons/weapons/swords/sword-jeweled-red.webp", + "roll": { + "bonus": -3 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784324, - "modifiedTime": 1753922784324, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754051774893, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "wycLpvebWdUqRhpP", - "sort": 3400000, + "sort": 5200000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +222,196 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "My Land, My Rules", + "type": "feature", + "_id": "Jbq36nElH6RDacLU", + "img": "icons/skills/social/diplomacy-writing-letter.webp", + "system": { + "description": "

All social actions made against the Noble on their land have disadvantage.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051777072, + "modifiedTime": 1754051799611, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!wycLpvebWdUqRhpP.Jbq36nElH6RDacLU" + }, + { + "name": "Guards, Seize Them!", + "type": "feature", + "_id": "ebdAPBso5ROmdFNO", + "img": "icons/environment/people/infantry-armored.webp", + "system": { + "description": "

Once per scene, mark a Stress to summon 1d4 Bladed Guards, who appear at Far range to enforce the Noble’s will.

", + "resource": null, + "actions": { + "cUKwhq1imsTVru8D": { + "type": "attack", + "_id": "cUKwhq1imsTVru8D", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "roll": { + "type": "diceSet", + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d4", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, + "name": "Summon Guards", + "img": "icons/environment/people/infantry-armored.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051802091, + "modifiedTime": 1754051889360, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!wycLpvebWdUqRhpP.ebdAPBso5ROmdFNO" + }, + { + "name": "Exile", + "type": "feature", + "_id": "xN09fSsg33nURqpk", + "img": "icons/commodities/currency/coin-embossed-skull-gold.webp", + "system": { + "description": "

Spend a Fear and target a PC. The Noble proclaims that the target and their allies are exiled from the noble’s territory. While exiled, the target and their allies have disadvantage during social situations within the Noble’s domain.

", + "resource": null, + "actions": { + "dAHzRxf0iztyc1mI": { + "type": "effect", + "_id": "dAHzRxf0iztyc1mI", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/commodities/currency/coin-embossed-skull-gold.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754051901804, + "modifiedTime": 1754052000961, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!wycLpvebWdUqRhpP.xN09fSsg33nURqpk" + } + ], "effects": [], "_key": "!actors!wycLpvebWdUqRhpP" } diff --git a/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json b/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json index 469ad468..505ee728 100644 --- a/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json +++ b/src/packs/adversaries/adversary_Pirate_Captain_OROJbjsqagVh7ECV.json @@ -34,10 +34,19 @@ "reduction": 0 } }, - "type": "standard", + "type": "leader", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "ndSzzasQ0JcMPJ6W": { + "name": "Commander", + "value": 2 + }, + "N0jWLtKmD5Cy6CjY": { + "name": "Sailor", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +74,59 @@ } }, "tier": 1, - "description": "

A charismatic sea dog with an impressive hat, eager to raid and plunder.

" + "description": "

A charismatic sea dog with an impressive hat, eager to raid and plunder.

", + "attack": { + "name": "Cutlass", + "img": "icons/weapons/swords/scimitar-worn-blue.webp", + "roll": { + "bonus": 4 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d12", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784325, - "modifiedTime": 1753922784325, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754052049963, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "OROJbjsqagVh7ECV", - "sort": 3400000, + "sort": 3200000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +226,308 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Swashbuckler", + "type": "feature", + "_id": "PsMA3x6giL8tixbf", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "system": { + "description": "

When the Captain marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", + "resource": null, + "actions": { + "xYphrI8GtMHHuT9a": { + "type": "damage", + "_id": "xYphrI8GtMHHuT9a", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [], + "name": "Damage Stress", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052051501, + "modifiedTime": 1754052096031, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!OROJbjsqagVh7ECV.PsMA3x6giL8tixbf" + }, + { + "name": "Reinforcements", + "type": "feature", + "_id": "WGEGO0DSOs5cF0EL", + "img": "icons/environment/people/charge.webp", + "system": { + "description": "

Once per scene, mark a Stress to summon a Pirate Raiders Horde, which appears at Far range.

", + "resource": null, + "actions": { + "NlgIp0KrmZoS27Xy": { + "type": "effect", + "_id": "NlgIp0KrmZoS27Xy", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Mark Stress", + "img": "icons/environment/people/charge.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052100431, + "modifiedTime": 1754052144255, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!OROJbjsqagVh7ECV.WGEGO0DSOs5cF0EL" + }, + { + "name": "No Quarter", + "type": "feature", + "_id": "brHnMc0TDiWVT4U6", + "img": "icons/magic/death/skull-energy-light-purple.webp", + "system": { + "description": "

Spend a Fear to choose a target who has three or more Pirates within Melee range of them. The Captain leads the Pirates in hurling threats and promises of a watery grave. The target must make a Presence Reaction Roll. On a failure, the target marks 1d4+1 Stress. On a success, they must mark a Stress.

", + "resource": null, + "actions": { + "h2vM7jDTeFttVJKN": { + "type": "attack", + "_id": "h2vM7jDTeFttVJKN", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d4", + "bonus": 1, + "multiplier": "flat" + }, + "applyTo": "stress", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "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 + }, + "save": { + "trait": "presence", + "difficulty": null, + "damageMod": "none" + }, + "name": "Spend Fear", + "img": "icons/magic/death/skull-energy-light-purple.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052150420, + "modifiedTime": 1754052237336, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!OROJbjsqagVh7ECV.brHnMc0TDiWVT4U6" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "V4EcsqMd70BTrDNu", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Captain makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052246000, + "modifiedTime": 1754052257935, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!OROJbjsqagVh7ECV.V4EcsqMd70BTrDNu" + } + ], "effects": [], "_key": "!actors!OROJbjsqagVh7ECV" } diff --git a/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json b/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json index a9156c71..1de471a4 100644 --- a/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json +++ b/src/packs/adversaries/adversary_Pirate_Raiders_5YgEajn0wa4i85kC.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "horde", "notes": "", - "hordeHp": 1, - "experiences": {}, + "hordeHp": 3, + "experiences": { + "a2aFr2x2FEZp7dFx": { + "name": "Sailor", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,59 @@ } }, "tier": 1, - "description": "

Seafaring scoundrels moving in a ravaging pack.

" + "description": "

Seafaring scoundrels moving in a ravaging pack.

", + "attack": { + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "valueAlt": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 1, + "custom": { + "enabled": false + } + }, + "resultBased": false, + "base": false + } + ] + }, + "name": "Cutlass", + "img": "icons/weapons/swords/scimitar-worn-blue.webp", + "roll": { + "bonus": 1 + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784326, - "modifiedTime": 1753922784326, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754052314538, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "5YgEajn0wa4i85kC", - "sort": 3400000, + "sort": 1000000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +222,169 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], - "effects": [], + "items": [ + { + "name": "Horde (1d4+1)", + "type": "feature", + "_id": "Q7DRbWjHl64CNwag", + "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", + "system": { + "description": "

When the Raiders have marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052315770, + "modifiedTime": 1754052347985, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!5YgEajn0wa4i85kC.Q7DRbWjHl64CNwag" + }, + { + "name": "Swashbuckler", + "type": "feature", + "_id": "N401rF937fLXMuMA", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "system": { + "description": "

When the Raiders mark 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", + "resource": null, + "actions": { + "ejadA9jjMnVNVczS": { + "type": "damage", + "_id": "ejadA9jjMnVNVczS", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "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 + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Damage Stress", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052352218, + "modifiedTime": 1754052393630, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!5YgEajn0wa4i85kC.N401rF937fLXMuMA" + } + ], + "effects": [ + { + "type": "horde", + "name": "Horde", + "img": "icons/magic/movement/chevrons-down-yellow.webp", + "disabled": true, + "_id": "OU05YZwFQffawtna", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "duration": { + "startTime": 0, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052272993, + "modifiedTime": 1754052272993, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.effects!5YgEajn0wa4i85kC.OU05YZwFQffawtna" + } + ], "_key": "!actors!5YgEajn0wa4i85kC" } diff --git a/src/packs/adversaries/adversary_Pirate_Tough_GB8zP9LYt061DlqY.json b/src/packs/adversaries/adversary_Pirate_Tough_GB8zP9LYt061DlqY.json index f6ebdd5b..ddb176df 100644 --- a/src/packs/adversaries/adversary_Pirate_Tough_GB8zP9LYt061DlqY.json +++ b/src/packs/adversaries/adversary_Pirate_Tough_GB8zP9LYt061DlqY.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "QEhfdx7HAbPay5Jy": { + "name": "Sailor", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,29 @@ } }, "tier": 1, - "description": "

A thickly muscled and tattooed pirate with melon-sized fists.

" + "description": "

A thickly muscled and tattooed pirate with melon-sized fists.

", + "attack": { + "name": "Massive Fists", + "roll": { + "bonus": 1 + }, + "img": "icons/skills/melee/unarmed-punch-fist.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784331, - "modifiedTime": 1753922784331, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754052449162, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "GB8zP9LYt061DlqY", - "sort": 3400000, + "sort": 2700000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +192,201 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Swashbuckler", + "type": "feature", + "_id": "5t4fSW4mzVmLouhu", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "system": { + "description": "

When the Tough marks 2 or fewer HP from an attack within Melee range, the attacker must mark a Stress.

", + "resource": null, + "actions": { + "ZNd0KWly09unKOFP": { + "type": "damage", + "_id": "ZNd0KWly09unKOFP", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "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 + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Damage Stress", + "img": "icons/magic/control/mouth-smile-deception-purple.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052450615, + "modifiedTime": 1754052485623, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!GB8zP9LYt061DlqY.5t4fSW4mzVmLouhu" + }, + { + "name": "Clear the Decks", + "type": "feature", + "_id": "z7pBdBGf9uWaWQvd", + "img": "icons/skills/melee/unarmed-punch-fist-blue.webp", + "system": { + "description": "

Make an attack against a target within Very Close range. On a success, mark a Stress to move into Melee range of the target, dealing 3d4 physical damage and knocking the target back to Close range.

", + "resource": null, + "actions": { + "fmRwrsodZ16gSVOZ": { + "type": "attack", + "_id": "fmRwrsodZ16gSVOZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 3, + "dice": "d4", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "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/skills/melee/unarmed-punch-fist-blue.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052489263, + "modifiedTime": 1754052558382, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!GB8zP9LYt061DlqY.z7pBdBGf9uWaWQvd" + } + ], "effects": [], "_key": "!actors!GB8zP9LYt061DlqY" } diff --git a/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json b/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json index 1cdbe382..5b0278f5 100644 --- a/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json +++ b/src/packs/adversaries/adversary_Red_Ooze_9rVlbJVrDNn1x7PS.json @@ -34,10 +34,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "skulk", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "0QeViWJm5MdiJ9GL": { + "name": "Camouflage", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,59 @@ } }, "tier": 1, - "description": "

A moving mound of translucent flaming red slime.

" + "description": "

A moving mound of translucent flaming red slime.

", + "attack": { + "name": "Ooze Appendage", + "roll": { + "bonus": 1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784338, - "modifiedTime": 1753922784338, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754052609388, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "9rVlbJVrDNn1x7PS", - "sort": 3400000, + "sort": 1700000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +222,318 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Creeping Fire", + "type": "feature", + "_id": "QGQTLWXIMMLUvm7c", + "img": "icons/magic/fire/flame-burning-embers-yellow.webp", + "system": { + "description": "

The Ooze can only move within Very Close range as their normal movement. They light any flammable object they touch on fi re.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052613872, + "modifiedTime": 1754052642573, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!9rVlbJVrDNn1x7PS.QGQTLWXIMMLUvm7c" + }, + { + "name": "Ignite", + "type": "feature", + "_id": "JU9uVwZSM0ItnZRq", + "img": "icons/magic/fire/blast-jet-stream-splash.webp", + "system": { + "description": "

Make an attack against a target within Very Close range. On a success, the target takes 1d8 magic damage and is Ignited until they’re extinguished with a successful Finesse Roll (14). While Ignited, the target takes 1d4 magic damage when they make an action roll.

", + "resource": null, + "actions": { + "b4g8XUIKLhxDlUPy": { + "type": "attack", + "_id": "b4g8XUIKLhxDlUPy", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d8", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [ + { + "_id": "9UBLk9M87VIUziAQ", + "onSave": false + } + ], + "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/magic/fire/blast-jet-stream-splash.webp", + "range": "veryClose" + }, + "6xYE9Zi8ce6bYjV8": { + "type": "damage", + "_id": "6xYE9Zi8ce6bYjV8", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d4", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Ignited Damage", + "img": "icons/magic/fire/blast-jet-stream-splash.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Ignited", + "img": "icons/magic/fire/blast-jet-stream-splash.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.9rVlbJVrDNn1x7PS.Item.JU9uVwZSM0ItnZRq", + "transfer": false, + "_id": "9UBLk9M87VIUziAQ", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You are Ignited until you are extinguished with a successful Finesse Roll (14). While Ignited, you take 1d4 magic damage whenever you make an action roll.

[[/dr trait=finesse difficulty=14]]

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052706000, + "modifiedTime": 1754052775735, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!9rVlbJVrDNn1x7PS.JU9uVwZSM0ItnZRq.9UBLk9M87VIUziAQ" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052646207, + "modifiedTime": 1754052803213, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!9rVlbJVrDNn1x7PS.JU9uVwZSM0ItnZRq" + }, + { + "name": "Split", + "type": "feature", + "_id": "M9gAcPrgKfSg9Tjb", + "img": "icons/creatures/slimes/slime-movement-splashing-red.webp", + "system": { + "description": "

When the Ooze has 3 or more HP marked, you can spend a Fear to split them into two Tiny Red Oozes (with no marked HP or Stress). Immediately spotlight both of them.

", + "resource": null, + "actions": { + "dw6Juw8mriH7sg0e": { + "type": "effect", + "_id": "dw6Juw8mriH7sg0e", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "any", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/slimes/slime-movement-splashing-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052809157, + "modifiedTime": 1754052844133, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!9rVlbJVrDNn1x7PS.M9gAcPrgKfSg9Tjb" + } + ], "effects": [], "_key": "!actors!9rVlbJVrDNn1x7PS" } diff --git a/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json b/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json index 98b52185..75623a04 100644 --- a/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json +++ b/src/packs/adversaries/adversary_Rotted_Zombie_gP3fWTLzSFnpA8EJ.json @@ -17,7 +17,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "minion", "notes": "", "hordeHp": 1, "experiences": {}, @@ -49,22 +49,68 @@ }, "difficulty": 8, "tier": 1, - "description": "

A decaying corpse ambling toward their prey.

" + "description": "

A decaying corpse ambling toward their prey.

", + "attack": { + "name": "Bite", + "roll": { + "bonus": -3 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/creatures/abilities/mouth-teeth-sharp.webp" + }, + "resources": { + "hitPoints": { + "max": 1 + }, + "stress": { + "max": 1 + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784339, - "modifiedTime": 1753922784339, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754053185385, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "gP3fWTLzSFnpA8EJ", - "sort": 3400000, + "sort": 4300000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -164,7 +210,107 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Minion (3)", + "type": "feature", + "_id": "cwV1kNkNrrrHWEwX", + "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", + "system": { + "description": "

The Zombie is defeated when they take any damage. For every 3 damage a PC deals to the Zombie, defeat an additional Minion within range the attack would succeed against.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754052988161, + "modifiedTime": 1754053002555, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!gP3fWTLzSFnpA8EJ.cwV1kNkNrrrHWEwX" + }, + { + "name": "Group Attack", + "type": "feature", + "_id": "R9vrwFNl5BD1YXJo", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Spend a Fear to choose a target and spotlight all Rotted Zombies within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", + "resource": null, + "actions": { + "DJBNtd3hWjwsjPwq": { + "type": "effect", + "_id": "DJBNtd3hWjwsjPwq", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053004648, + "modifiedTime": 1754053040875, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!gP3fWTLzSFnpA8EJ.R9vrwFNl5BD1YXJo" + } + ], "effects": [], "_key": "!actors!gP3fWTLzSFnpA8EJ" } diff --git a/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json b/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json index 1a2138e0..95a55564 100644 --- a/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json +++ b/src/packs/adversaries/adversary_Sellsword_bgreCaQ6ap2DVpCr.json @@ -17,7 +17,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "minion", "notes": "", "hordeHp": 1, "experiences": {}, @@ -49,22 +49,68 @@ }, "difficulty": 10, "tier": 1, - "description": "

An armed mercenary testing their luck.

" + "description": "

An armed mercenary testing their luck.

", + "resources": { + "hitPoints": { + "max": 1 + }, + "stress": { + "max": 1 + } + }, + "attack": { + "name": "Longsword", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "3" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "roll": { + "bonus": 3 + }, + "img": "icons/weapons/swords/sword-guard.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784341, - "modifiedTime": 1753922784341, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754053085697, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "bgreCaQ6ap2DVpCr", - "sort": 3400000, + "sort": 4100000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -164,7 +210,107 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Minion (4)", + "type": "feature", + "_id": "nLlbuGTKAvsFRnUB", + "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", + "system": { + "description": "

The Sellsword is defeated when they take any damage. For every 4 damage a PC deals to the Sellsword, defeat an additional Minion within range the attack would succeed against.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053090666, + "modifiedTime": 1754053105639, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!bgreCaQ6ap2DVpCr.nLlbuGTKAvsFRnUB" + }, + { + "name": "Group Attack", + "type": "feature", + "_id": "CQZQiEiRH70Br5Ge", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Spend a Fear to choose a target and spotlight all Sellswords within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 3 physical damage each. Combine this damage.

", + "resource": null, + "actions": { + "ghgFZskDiizJDjcn": { + "type": "effect", + "_id": "ghgFZskDiizJDjcn", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053107600, + "modifiedTime": 1754053147721, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!bgreCaQ6ap2DVpCr.CQZQiEiRH70Br5Ge" + } + ], "effects": [], "_key": "!actors!bgreCaQ6ap2DVpCr" } diff --git a/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json b/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json index 0069ef06..56743bbc 100644 --- a/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json +++ b/src/packs/adversaries/adversary_Shambling_Zombie_2nXz4ilAY4xuhKLm.json @@ -65,22 +65,59 @@ } }, "tier": 1, - "description": "

An animated corpse that moves shakily, driven only by hunger.

" + "description": "

An animated corpse that moves shakily, driven only by hunger.

", + "attack": { + "name": "Bite", + "img": "icons/creatures/abilities/mouth-teeth-sharp.webp", + "roll": { + "bonus": 0 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784342, - "modifiedTime": 1753922784342, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754053203019, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "2nXz4ilAY4xuhKLm", - "sort": 3400000, + "sort": 600000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +217,129 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Too Many to Handle", + "type": "feature", + "_id": "IpUWqXjwP2Lp5Zhs", + "img": "icons/magic/death/undead-zombie-grave-green.webp", + "system": { + "description": "

When the Zombie is within Melee range of a creature and at least one other Zombie is within Close range, all attacks against that creature have advantage.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053211277, + "modifiedTime": 1754053245814, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!2nXz4ilAY4xuhKLm.IpUWqXjwP2Lp5Zhs" + }, + { + "name": "Horrifying", + "type": "feature", + "_id": "iiOjamlZIuhpDC8W", + "img": "icons/magic/death/skull-energy-light-purple.webp", + "system": { + "description": "

Targets who mark HP from the Zombie’s attacks must also mark a Stress.

", + "resource": null, + "actions": { + "JUw16Jag9uTfBmKZ": { + "type": "damage", + "_id": "JUw16Jag9uTfBmKZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "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 + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [], + "name": "Stress Damage", + "img": "icons/magic/death/skull-energy-light-purple.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053249379, + "modifiedTime": 1754053287602, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!2nXz4ilAY4xuhKLm.iiOjamlZIuhpDC8W" + } + ], "effects": [], "_key": "!actors!2nXz4ilAY4xuhKLm" } diff --git a/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json b/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json index 76f8e91e..6a1c93a9 100644 --- a/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json +++ b/src/packs/adversaries/adversary_Skeleton_Archer_7X5q7a6ueeHs5oA9.json @@ -34,7 +34,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "ranged", "notes": "", "hordeHp": 1, "experiences": {}, @@ -65,22 +65,60 @@ } }, "tier": 1, - "description": "

A fragile skeleton with a shortbow and arrows.

" + "description": "

A fragile skeleton with a shortbow and arrows.

", + "attack": { + "name": "Shortbow", + "roll": { + "bonus": 2 + }, + "range": "far", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/weapons/bows/shortbow-leather.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784345, - "modifiedTime": 1753922784345, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754053336193, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "7X5q7a6ueeHs5oA9", - "sort": 3400000, + "sort": 1300000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +218,150 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Opportunist", + "type": "feature", + "_id": "6mL2FQ9pQdfoDNzG", + "img": "icons/skills/targeting/crosshair-triple-strike-orange.webp", + "system": { + "description": "

When two or more adversaries are within Very Close range of a creature, all damage the Archer deals to that creature is doubled.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053342962, + "modifiedTime": 1754053361998, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!7X5q7a6ueeHs5oA9.6mL2FQ9pQdfoDNzG" + }, + { + "name": "Deadly Shot", + "type": "feature", + "_id": "4w20xpEo6L1fgro3", + "img": "icons/skills/ranged/arrow-flying-broadhead-metal.webp", + "system": { + "description": "

Make an attack against a Vulnerable target within Far range. On a success, mark a Stress to deal 3d4+8 physical damage.

", + "resource": null, + "actions": { + "nKmxl3D7g4p7Zcub": { + "type": "attack", + "_id": "nKmxl3D7g4p7Zcub", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 3, + "dice": "d4", + "bonus": 8, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "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/skills/ranged/arrow-flying-broadhead-metal.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053364547, + "modifiedTime": 1754053413477, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!7X5q7a6ueeHs5oA9.4w20xpEo6L1fgro3" + } + ], "effects": [], "_key": "!actors!7X5q7a6ueeHs5oA9" } diff --git a/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json b/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json index 73b3156e..c7d542e3 100644 --- a/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json +++ b/src/packs/adversaries/adversary_Skeleton_Dredge_6l1a3Fazq8BoKIcc.json @@ -17,7 +17,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "minion", "notes": "", "hordeHp": 1, "experiences": {}, @@ -49,22 +49,68 @@ }, "difficulty": 8, "tier": 1, - "description": "

A clattering pile of bones.

" + "description": "

A clattering pile of bones.

", + "attack": { + "name": "Bone Claws", + "img": "icons/magic/death/hand-undead-skeleton-fire-green.webp", + "roll": { + "bonus": -1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + }, + "resources": { + "hitPoints": { + "max": 1 + }, + "stress": { + "max": 1 + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784347, - "modifiedTime": 1753922784347, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754053476707, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "6l1a3Fazq8BoKIcc", - "sort": 3400000, + "sort": 1100000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -164,7 +210,107 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Minion (4)", + "type": "feature", + "_id": "g9GQ9cMPNETxKXOz", + "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", + "system": { + "description": "

The Dredge is defeated when they take any damage. For every 4 damage a PC deals to the Dredge, defeat an additional Minion within range the attack would succeed against.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053484913, + "modifiedTime": 1754053498438, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!6l1a3Fazq8BoKIcc.g9GQ9cMPNETxKXOz" + }, + { + "name": "Group Attack", + "type": "feature", + "_id": "wl9KKEpVWDBu62hU", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Spend a Fear to choose a target and spotlight all Dredges within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 1 physical damage each. Combine this damage.

", + "resource": null, + "actions": { + "Sz55uB8xkoNytLwJ": { + "type": "effect", + "_id": "Sz55uB8xkoNytLwJ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053501054, + "modifiedTime": 1754053534908, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!6l1a3Fazq8BoKIcc.wl9KKEpVWDBu62hU" + } + ], "effects": [], "_key": "!actors!6l1a3Fazq8BoKIcc" } diff --git a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json index 9f9d8e18..bf280dca 100644 --- a/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json +++ b/src/packs/adversaries/adversary_Skeleton_Knight_Q9LaVTyXF9NF12C7.json @@ -34,7 +34,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, "experiences": {}, @@ -65,22 +65,59 @@ } }, "tier": 1, - "description": "

A large armored skeleton with a huge blade.

" + "description": "

A large armored skeleton with a huge blade.

", + "attack": { + "name": "Rusty Greatsword", + "img": "icons/weapons/swords/greatsword-crossguard-flanged-red.webp", + "roll": { + "bonus": 2 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d10", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784348, - "modifiedTime": 1753922784348, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754053576422, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "Q9LaVTyXF9NF12C7", - "sort": 3400000, + "sort": 3300000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +217,344 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Terrifying", + "type": "feature", + "_id": "OZKEz4eK9h7zCbuf", + "img": "icons/magic/death/skull-energy-light-purple.webp", + "system": { + "description": "

When the Knight makes a successful attack, all PCs within Close range lose a Hope and you gain a Fear.

", + "resource": null, + "actions": { + "9EiPNrGzwLtuf9g0": { + "type": "damage", + "_id": "9EiPNrGzwLtuf9g0", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "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 + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "name": "Damage Hope", + "img": "icons/magic/death/skull-energy-light-purple.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053581860, + "modifiedTime": 1754053647447, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!Q9LaVTyXF9NF12C7.OZKEz4eK9h7zCbuf" + }, + { + "name": "Cut to the Bone", + "type": "feature", + "_id": "WdVLwy9RNkVlZnCL", + "img": "icons/skills/melee/strike-sword-steel-yellow.webp", + "system": { + "description": "

Mark a Stress to make an attack against all targets within Very Close range. Targets the Knight succeeds against take 1d8+2 physical damage and must mark a Stress.

@Template[type:emanation|range:vc]

", + "resource": null, + "actions": { + "vMv4monku9LOSxUZ": { + "type": "attack", + "_id": "vMv4monku9LOSxUZ", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d8", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + }, + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "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/skills/melee/strike-sword-steel-yellow.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053666861, + "modifiedTime": 1754053803001, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!Q9LaVTyXF9NF12C7.WdVLwy9RNkVlZnCL" + }, + { + "name": "Dig Two Graves", + "type": "feature", + "_id": "STesKV2KB61PlwCh", + "img": "icons/magic/death/hand-undead-skeleton-fire-pink.webp", + "system": { + "description": "

When the Knight is defeated, they make an attack against a target within Very Close range (prioritizing the creature who killed them). On a success, the target takes 1d4+8 physical damage and loses 1d4 Hope.

", + "resource": null, + "actions": { + "NtGhAVVOJF6ZGBRv": { + "type": "attack", + "_id": "NtGhAVVOJF6ZGBRv", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d4", + "bonus": 8, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "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/magic/death/hand-undead-skeleton-fire-pink.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053741722, + "modifiedTime": 1754053792513, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!Q9LaVTyXF9NF12C7.STesKV2KB61PlwCh" + } + ], "effects": [], "_key": "!actors!Q9LaVTyXF9NF12C7" } diff --git a/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json b/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json index 0808c843..1c361a3c 100644 --- a/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json +++ b/src/packs/adversaries/adversary_Skeleton_Warrior_10YIQl0lvCJXZLfX.json @@ -65,22 +65,59 @@ } }, "tier": 1, - "description": "

A dirt-covered skeleton armed with a rusted blade.

" + "description": "

A dirt-covered skeleton armed with a rusted blade.

", + "attack": { + "name": "Sword", + "roll": { + "bonus": 0 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/weapons/swords/sword-guard-brass-worn.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784350, - "modifiedTime": 1753922784350, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754053847804, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "10YIQl0lvCJXZLfX", - "sort": 3400000, + "sort": 100000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +217,175 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Only Bones", + "type": "feature", + "_id": "ouvJweENF1kLYcOT", + "img": "icons/magic/death/bones-crossed-orange.webp", + "system": { + "description": "

The Warrior is resistant to physical damage.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Only Bones", + "type": "base", + "_id": "zTepuF1Z5OObQdSi", + "img": "icons/magic/death/bones-crossed-orange.webp", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [ + { + "key": "system.resistance.physical.resistance", + "mode": 5, + "value": "1", + "priority": null + } + ], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

The Warrior is resistant to physical 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": 1754053876673, + "modifiedTime": 1754053897442, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!10YIQl0lvCJXZLfX.ouvJweENF1kLYcOT.zTepuF1Z5OObQdSi" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053855030, + "modifiedTime": 1754053869442, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!10YIQl0lvCJXZLfX.ouvJweENF1kLYcOT" + }, + { + "name": "Won't Stay Dead", + "type": "feature", + "_id": "hYl31ThCmZdc0MFa", + "img": "icons/magic/death/hand-dirt-undead-zombie.webp", + "system": { + "description": "

When the Warrior is defeated, you can spotlight them and roll a d6. On a result of 6, if there are other adversaries on the battlefi eld, the Warrior re-forms with no marked HP.

", + "resource": null, + "actions": { + "QnuFrptj8oARaA3i": { + "type": "attack", + "_id": "QnuFrptj8oARaA3i", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "roll": { + "type": "diceSet", + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "compare": "equal", + "treshold": 6 + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, + "name": "Use", + "img": "icons/magic/death/hand-dirt-undead-zombie.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754053904083, + "modifiedTime": 1754053962878, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!10YIQl0lvCJXZLfX.hYl31ThCmZdc0MFa" + } + ], "effects": [], "_key": "!actors!10YIQl0lvCJXZLfX" } diff --git a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json index d6ad7693..084b3ce0 100644 --- a/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json +++ b/src/packs/adversaries/adversary_Spellblade_ldbWEL7uZs84vyrR.json @@ -33,10 +33,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "leader", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "5K7W5e63iQNI0MdQ": { + "name": "Magical Knowledge", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,61 @@ } }, "tier": 1, - "description": "

A mercenary combining swordplay and magic to deadly effect.

" + "description": "

A mercenary combining swordplay and magic to deadly effect.

", + "motivesAndTactics": "Blast, command, endure", + "attack": { + "name": "Empowered Longsword", + "img": "icons/weapons/swords/sword-broad-serrated-blue.webp", + "roll": { + "bonus": 3 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 4, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical", + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784353, - "modifiedTime": 1753922784353, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754054040763, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "ldbWEL7uZs84vyrR", - "sort": 3400000, + "sort": 4500000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +223,257 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Arcane Steel", + "type": "feature", + "_id": "BwuoAv3EWT0m1apk", + "img": "icons/weapons/swords/sword-runed-glowing.webp", + "system": { + "description": "

Damage dealt by the Spellblade’s standard attack is considered both physical and magic.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054042580, + "modifiedTime": 1754054057217, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!ldbWEL7uZs84vyrR.BwuoAv3EWT0m1apk" + }, + { + "name": "Supressing Blast", + "type": "feature", + "_id": "a76dNCrcoZOH1RRT", + "img": "icons/magic/sonic/projectile-shock-wave-blue.webp", + "system": { + "description": "

Mark a Stress and target a group within Far range. All targets must succeed on an Agility Reaction Roll or take 1d8+2 magic damage. You gain a Fear for each target who marked HP from this attack.

@Template[type:emanation|range:f]

", + "resource": null, + "actions": { + "K4VnxigKTiu7hhZx": { + "type": "attack", + "_id": "K4VnxigKTiu7hhZx", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d8", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "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 + }, + "save": { + "trait": "agility", + "difficulty": null, + "damageMod": "none" + }, + "name": "Attack", + "img": "icons/magic/sonic/projectile-shock-wave-blue.webp", + "range": "far" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054061492, + "modifiedTime": 1754054159859, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!ldbWEL7uZs84vyrR.a76dNCrcoZOH1RRT" + }, + { + "name": "Move as a Unit", + "type": "feature", + "_id": "piyJhdHzztabmZ8I", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "system": { + "description": "

Spend 2 Fear to spotlight up to fi ve allies within Far range.

", + "resource": null, + "actions": { + "N42NPEu7fcVDXEvl": { + "type": "effect", + "_id": "N42NPEu7fcVDXEvl", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 2, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/skills/movement/arrows-up-trio-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054175855, + "modifiedTime": 1754054211540, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!ldbWEL7uZs84vyrR.piyJhdHzztabmZ8I" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "P9nD5K2ztkZGo2I8", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Spellblade makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054217134, + "modifiedTime": 1754054233931, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!ldbWEL7uZs84vyrR.P9nD5K2ztkZGo2I8" + } + ], "effects": [], "_key": "!actors!ldbWEL7uZs84vyrR" } diff --git a/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json b/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json index 5dbf3cfb..c879ac99 100644 --- a/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json +++ b/src/packs/adversaries/adversary_Swarm_of_Rats_qNgs3AbLyJrY19nt.json @@ -34,9 +34,9 @@ "reduction": 0 } }, - "type": "standard", + "type": "horde", "notes": "", - "hordeHp": 1, + "hordeHp": 10, "experiences": {}, "bonuses": { "roll": { @@ -65,22 +65,59 @@ } }, "tier": 1, - "description": "

A skittering mass of ordinary rodents moving as one like a ravenous wave.

" + "description": "

A skittering mass of ordinary rodents moving as one like a ravenous wave.

", + "attack": { + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "valueAlt": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 1, + "custom": { + "enabled": false + } + }, + "resultBased": false, + "base": false + } + ] + }, + "name": "Claws", + "img": "icons/creatures/claws/claw-straight-brown.webp", + "roll": { + "bonus": -3 + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784356, - "modifiedTime": 1753922784356, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754054274609, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "qNgs3AbLyJrY19nt", - "sort": 3400000, + "sort": 4700000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +217,116 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], - "effects": [], + "items": [ + { + "name": "Horde (1d4+1)", + "type": "feature", + "_id": "9Zuu892SO5NmtI4w", + "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", + "system": { + "description": "

When the Swarm has marked half or more of their HP, their standard attack deals 1d4+1 physical damage instead.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054278838, + "modifiedTime": 1754054298798, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!qNgs3AbLyJrY19nt.9Zuu892SO5NmtI4w" + }, + { + "name": "In Your Face", + "type": "feature", + "_id": "0O6ckwZE34RBnjpB", + "img": "icons/creatures/mammals/rodent-rat-green.webp", + "system": { + "description": "

All targets within Melee range have disadvantage on attacks against targets other than the Swarm.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054301414, + "modifiedTime": 1754054322869, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!qNgs3AbLyJrY19nt.0O6ckwZE34RBnjpB" + } + ], + "effects": [ + { + "type": "horde", + "name": "Horde", + "img": "icons/magic/movement/chevrons-down-yellow.webp", + "disabled": true, + "_id": "FOV6AzngiR0PZyuN", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "duration": { + "startTime": 0, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054244649, + "modifiedTime": 1754054244649, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.effects!qNgs3AbLyJrY19nt.FOV6AzngiR0PZyuN" + } + ], "_key": "!actors!qNgs3AbLyJrY19nt" } diff --git a/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json b/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json index 60f98202..8eab7aa4 100644 --- a/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json +++ b/src/packs/adversaries/adversary_Sylvan_Soldier_VtFBt9XBE0WrGGxP.json @@ -37,7 +37,12 @@ "type": "standard", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "3HwCDcCvzVnicJKe": { + "name": "Tracker", + "value": 2 + } + }, "bonuses": { "roll": { "attack": { @@ -65,22 +70,59 @@ } }, "tier": 1, - "description": "

A faerie warrior adorned in armor made of leaves and bark.

" + "description": "

A faerie warrior adorned in armor made of leaves and bark.

", + "attack": { + "name": "Scythe", + "img": "icons/weapons/sickles/scythe-bone-jagged.webp", + "roll": { + "bonus": 0 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784356, - "modifiedTime": 1753922784356, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754054370297, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "VtFBt9XBE0WrGGxP", - "sort": 3400000, + "sort": 3600000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +222,349 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Pack tactics", + "type": "feature", + "_id": "uo5DbPuQQ018Pyfd", + "img": "icons/creatures/abilities/wolf-howl-moon-purple.webp", + "system": { + "description": "

If the Soldier makes a standard attack and another Sylvan Soldier is within Melee range of the target, deal 1d8+5 physical damage instead of their standard damage.

", + "resource": null, + "actions": { + "dmlz83o2JOAoGiuK": { + "type": "attack", + "_id": "dmlz83o2JOAoGiuK", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d8", + "bonus": 5, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "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/wolf-howl-moon-purple.webp", + "range": "melee" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054372208, + "modifiedTime": 1754054415661, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!VtFBt9XBE0WrGGxP.uo5DbPuQQ018Pyfd" + }, + { + "name": "Forest Control", + "type": "feature", + "_id": "phtxvgptyvT3WoeK", + "img": "icons/environment/wilderness/tree-spruce.webp", + "system": { + "description": "

Spend a Fear to pull down a tree within Close range. A creature hit by the tree must succeed on an Agility Reaction Roll (15) or take 1d10 physical damage.

", + "resource": null, + "actions": { + "UyL02IaAO3m8LgWI": { + "type": "attack", + "_id": "UyL02IaAO3m8LgWI", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d10", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "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 + }, + "save": { + "trait": "agility", + "difficulty": 15, + "damageMod": "none" + }, + "name": "Pull Tree", + "img": "icons/environment/wilderness/tree-spruce.webp", + "range": "close" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054421332, + "modifiedTime": 1754054505735, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!VtFBt9XBE0WrGGxP.phtxvgptyvT3WoeK" + }, + { + "name": "Blend In", + "type": "feature", + "_id": "1dmKoSnV82sLc8xZ", + "img": "icons/magic/nature/root-vine-leaves-green.webp", + "system": { + "description": "

When the Soldier makes a successful attack, you can mark a Stress to become Hidden until the Soldier’s next attack or a PC succeeds on an Instinct Roll (14) to fi nd them.

", + "resource": null, + "actions": { + "l32BjO9J0jFvD0Zy": { + "type": "effect", + "_id": "l32BjO9J0jFvD0Zy", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [ + { + "_id": "xyXPmPIOtqXYF1TJ", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Mark Stress", + "img": "icons/magic/nature/root-vine-leaves-green.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Blend In", + "img": "icons/magic/nature/root-vine-leaves-green.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.VtFBt9XBE0WrGGxP.Item.1dmKoSnV82sLc8xZ", + "transfer": false, + "_id": "xyXPmPIOtqXYF1TJ", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

Become Hidden until the Soldier’s next attack or a PC succeeds on an Instinct Roll (14) to fi nd them.

", + "tint": "#ffffff", + "statuses": [ + "hidden" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054562723, + "modifiedTime": 1754054581921, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!VtFBt9XBE0WrGGxP.1dmKoSnV82sLc8xZ.xyXPmPIOtqXYF1TJ" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054512042, + "modifiedTime": 1754054562730, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!VtFBt9XBE0WrGGxP.1dmKoSnV82sLc8xZ" + } + ], "effects": [], "_key": "!actors!VtFBt9XBE0WrGGxP" } diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json b/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json new file mode 100644 index 00000000..c275944b --- /dev/null +++ b/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_PKSXFuaIHUCoH63A.json @@ -0,0 +1,535 @@ +{ + "name": "Tangle Bramble Swarm", + "img": "icons/svg/mystery-man.svg", + "type": "adversary", + "folder": "sxvlEwi25uAoB2C5", + "system": { + "motivesAndTactics": "Digest, entangle, immobilize", + "resistance": { + "physical": { + "resistance": false, + "immunity": false, + "reduction": 0 + }, + "magical": { + "resistance": false, + "immunity": false, + "reduction": 0 + } + }, + "type": "horde", + "notes": "", + "hordeHp": 3, + "experiences": { + "WWznKZbYf1O4dcNS": { + "name": "Camouflage", + "value": 2 + } + }, + "bonuses": { + "roll": { + "attack": { + "bonus": 0, + "dice": [] + }, + "action": { + "bonus": 0, + "dice": [] + }, + "reaction": { + "bonus": 0, + "dice": [] + } + }, + "damage": { + "physical": { + "bonus": 0, + "dice": [] + }, + "magical": { + "bonus": 0, + "dice": [] + } + } + }, + "difficulty": 12, + "tier": 1, + "description": "

A cluster of animate, blood-drinking tumbleweeds, each the size of a large gourd.

", + "damageThresholds": { + "major": 6, + "severe": 11 + }, + "resources": { + "hitPoints": { + "value": 0, + "max": 6, + "isReversed": true + }, + "stress": { + "value": 0, + "max": 3, + "isReversed": true + } + }, + "attack": { + "name": "Thorns", + "img": "icons/magic/nature/root-vine-entwined-thorns.webp", + "_id": "LEgXds9kkshd2Ytq", + "systemPath": "attack", + "chatDisplay": false, + "type": "attack", + "range": "melee", + "target": { + "type": "any", + "amount": 1 + }, + "roll": { + "type": "attack", + "trait": null, + "difficulty": null, + "bonus": 0, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d6", + "bonus": 3, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "valueAlt": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 2, + "custom": { + "enabled": false + } + }, + "resultBased": false, + "base": false + } + ], + "includeBase": false + }, + "description": "", + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": null, + "recovery": null + }, + "effects": [], + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + } + } + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754054959791, + "modifiedTime": 1754055134138, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3, + "WafZqd6qLGpBRGTt": 3, + "MQSznptE5yLT7kj8": 3 + }, + "prototypeToken": { + "name": "Tangle Bramble Swarm", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "texture": { + "src": "icons/svg/mystery-man.svg", + "anchorX": 0.5, + "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "rotation": 0, + "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": 0, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "items": [ + { + "name": "Horde (1d4+2)", + "type": "feature", + "_id": "4dSzqtYvH385r9Ng", + "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", + "system": { + "description": "

When the Swarm has marked half or more of their HP, their standard attack deals 1d4+2 physical damage instead.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!PKSXFuaIHUCoH63A.4dSzqtYvH385r9Ng" + }, + { + "name": "Crush", + "type": "feature", + "_id": "2HlelvCZA00izcQa", + "img": "icons/magic/nature/root-vine-entangled-humanoid.webp", + "system": { + "description": "

Mark a Stress to deal 2d6+8 direct physical damage to a target with 3 or more bramble tokens.

", + "resource": null, + "actions": { + "CiA4K6py0eW6eihU": { + "type": "damage", + "_id": "CiA4K6py0eW6eihU", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d6", + "bonus": 8, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [], + "name": "Damage", + "img": "icons/magic/nature/root-vine-entangled-humanoid.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!PKSXFuaIHUCoH63A.2HlelvCZA00izcQa" + }, + { + "name": "Encumber", + "type": "feature", + "_id": "JRSGc3ozDnKCAvCj", + "img": "icons/magic/nature/root-vine-entangled-hands.webp", + "system": { + "description": "

When the Swarm succeeds on an attack, give the target a bramble token. If a target has any bramble tokens, they are Restrained. If a target has 3 or more bramble tokens, they are also Vulnerable. All bramble tokens can be removed by succeeding on a Finesse Roll (12 + the number of bramble tokens) or dealing Major or greater damage to the Swarm. If bramble tokens are removed from a target using a Finesse Roll, a number of Tangle Bramble Minions spawn within Melee range equal to the number of tokens removed.

", + "resource": null, + "actions": { + "Cdw2XxA5NhAQhQse": { + "type": "effect", + "_id": "Cdw2XxA5NhAQhQse", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [ + { + "_id": "PdkhaTw2j15KJwBf", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": 1 + }, + "name": "Give Token", + "img": "icons/magic/nature/root-vine-entangled-hands.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Encumber", + "img": "icons/magic/nature/root-vine-entangled-hands.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.jd4MVRwy9zTfmRRE.Item.JRSGc3ozDnKCAvCj", + "transfer": true, + "_id": "PdkhaTw2j15KJwBf", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

If a target has any bramble tokens, they are Restrained. If a target has 3 or more bramble tokens, they are also Vulnerable. All bramble tokens can be removed by succeeding on a Finesse Roll (12 + the number of bramble tokens) or dealing Major or greater damage to the Swarm. If bramble tokens are removed from a target using a Finesse Roll, a number of Tangle Bramble Minions spawn within Melee range equal to the number of tokens removed.

", + "tint": "#ffffff", + "statuses": [ + "restrained" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items.effects!PKSXFuaIHUCoH63A.JRSGc3ozDnKCAvCj.PdkhaTw2j15KJwBf" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!PKSXFuaIHUCoH63A.JRSGc3ozDnKCAvCj" + } + ], + "effects": [ + { + "type": "horde", + "name": "Horde", + "img": "icons/magic/movement/chevrons-down-yellow.webp", + "disabled": true, + "_id": "ki4vrzrFcEYtGeJu", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "duration": { + "startTime": 0, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.effects!PKSXFuaIHUCoH63A.ki4vrzrFcEYtGeJu" + } + ], + "_id": "PKSXFuaIHUCoH63A", + "sort": 0, + "_key": "!actors!PKSXFuaIHUCoH63A" +} diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_RLvFm4xfDYB6MZ7j.json b/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_RLvFm4xfDYB6MZ7j.json deleted file mode 100644 index 64b5f58d..00000000 --- a/src/packs/adversaries/adversary_Tangle_Bramble_Swarm_RLvFm4xfDYB6MZ7j.json +++ /dev/null @@ -1,186 +0,0 @@ -{ - "name": "Tangle Bramble Swarm", - "img": "icons/svg/mystery-man.svg", - "type": "adversary", - "folder": "sxvlEwi25uAoB2C5", - "system": { - "difficulty": 12, - "damageThresholds": { - "major": 6, - "severe": 11 - }, - "resources": { - "hitPoints": { - "value": 0, - "max": 6, - "isReversed": true - }, - "stress": { - "value": 0, - "max": 3, - "isReversed": true - } - }, - "motivesAndTactics": "Digest, entangle, immobilize", - "resistance": { - "physical": { - "resistance": false, - "immunity": false, - "reduction": 0 - }, - "magical": { - "resistance": false, - "immunity": false, - "reduction": 0 - } - }, - "type": "standard", - "notes": "", - "hordeHp": 1, - "experiences": {}, - "bonuses": { - "roll": { - "attack": { - "bonus": 0, - "dice": [] - }, - "action": { - "bonus": 0, - "dice": [] - }, - "reaction": { - "bonus": 0, - "dice": [] - } - }, - "damage": { - "physical": { - "bonus": 0, - "dice": [] - }, - "magical": { - "bonus": 0, - "dice": [] - } - } - }, - "tier": 1, - "description": "

A cluster of animate, blood-drinking tumbleweeds, each the size of a large gourd.

" - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753922784358, - "modifiedTime": 1753922784358, - "lastModifiedBy": "WafZqd6qLGpBRGTt" - }, - "_id": "RLvFm4xfDYB6MZ7j", - "sort": 3400000, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3, - "WafZqd6qLGpBRGTt": 3 - }, - "prototypeToken": { - "name": "Tangle Bramble Swarm", - "displayName": 0, - "actorLink": false, - "width": 1, - "height": 1, - "texture": { - "src": "icons/svg/mystery-man.svg", - "anchorX": 0.5, - "anchorY": 0.5, - "offsetX": 0, - "offsetY": 0, - "fit": "contain", - "scaleX": 1, - "scaleY": 1, - "rotation": 0, - "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 - }, - "items": [], - "effects": [], - "_key": "!actors!RLvFm4xfDYB6MZ7j" -} diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json b/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json new file mode 100644 index 00000000..2e283129 --- /dev/null +++ b/src/packs/adversaries/adversary_Tangle_Bramble_XcAGOSmtCFLT1unN.json @@ -0,0 +1,389 @@ +{ + "name": "Tangle Bramble", + "img": "icons/svg/mystery-man.svg", + "type": "adversary", + "folder": "sxvlEwi25uAoB2C5", + "system": { + "difficulty": 11, + "damageThresholds": { + "major": 0, + "severe": 0 + }, + "resources": { + "hitPoints": { + "value": 0, + "max": 1, + "isReversed": true + }, + "stress": { + "value": 0, + "max": 1, + "isReversed": true + } + }, + "motivesAndTactics": "Combine, drain, entangle", + "resistance": { + "physical": { + "resistance": false, + "immunity": false, + "reduction": 0 + }, + "magical": { + "resistance": false, + "immunity": false, + "reduction": 0 + } + }, + "type": "minion", + "notes": "", + "hordeHp": 1, + "experiences": {}, + "bonuses": { + "roll": { + "attack": { + "bonus": 0, + "dice": [] + }, + "action": { + "bonus": 0, + "dice": [] + }, + "reaction": { + "bonus": 0, + "dice": [] + } + }, + "damage": { + "physical": { + "bonus": 0, + "dice": [] + }, + "magical": { + "bonus": 0, + "dice": [] + } + } + }, + "tier": 1, + "description": "

An animate, blood-drinking tumbleweed.

", + "attack": { + "name": "Thorns", + "img": "icons/magic/nature/root-vine-hand-strike.webp", + "_id": "LEgXds9kkshd2Ytq", + "systemPath": "attack", + "chatDisplay": false, + "type": "attack", + "range": "melee", + "target": { + "type": "any", + "amount": 1 + }, + "roll": { + "type": "attack", + "trait": null, + "difficulty": null, + "bonus": -1, + "advState": "neutral", + "diceRolling": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "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" + } + } + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055125822, + "modifiedTime": 1754055125822, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "ownership": { + "default": 0, + "ei8OkswTzyDp4IGC": 3, + "WafZqd6qLGpBRGTt": 3, + "MQSznptE5yLT7kj8": 3 + }, + "prototypeToken": { + "name": "Tangle Bramble", + "displayName": 0, + "actorLink": false, + "width": 1, + "height": 1, + "texture": { + "src": "icons/svg/mystery-man.svg", + "anchorX": 0.5, + "anchorY": 0.5, + "offsetX": 0, + "offsetY": 0, + "fit": "contain", + "scaleX": 1, + "scaleY": 1, + "rotation": 0, + "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": 0, + "subject": { + "scale": 1, + "texture": null + } + }, + "turnMarker": { + "mode": 1, + "animation": null, + "src": null, + "disposition": false + }, + "movementAction": null, + "flags": {}, + "randomImg": false, + "appendNumber": false, + "prependAdjective": false + }, + "items": [ + { + "name": "Minion (4)", + "type": "feature", + "_id": "jH1VMpj4dCUhKVCJ", + "img": "icons/magic/symbols/runes-carved-stone-yellow.webp", + "system": { + "description": "

The Bramble is defeated when they take any damage. For every 4 damage a PC deals to the Tangle Bramble, defeat an additional Minion within range the attack would succeed against.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!XcAGOSmtCFLT1unN.jH1VMpj4dCUhKVCJ" + }, + { + "name": "Group Attack", + "type": "feature", + "_id": "WiobzuyvJ46zfsOv", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "system": { + "description": "

Spend a Fear to choose a target and spotlight all Tangle Brambles within Close range of them. Those Minions move into Melee range of the target and make one shared attack roll. On a success, they deal 2 physical damage each. Combine this damage.

", + "resource": null, + "actions": { + "ZC5pKIb9N82vgMWu": { + "type": "effect", + "_id": "ZC5pKIb9N82vgMWu", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/creatures/abilities/tail-strike-bone-orange.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!XcAGOSmtCFLT1unN.WiobzuyvJ46zfsOv" + }, + { + "name": "Drain and Multiply", + "type": "feature", + "_id": "KBMf7oBfFSHoafKN", + "img": "icons/magic/nature/root-vines-knot-brown.webp", + "system": { + "description": "

When an attack from the Bramble causes a target to mark HP and there are three or more Tangle Bramble Minions within Close range, you can combine the Minions into a Tangle Bramble Swarm Horde. The Horde’s HP is equal to the number of Minions combined.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "lastModifiedBy": null + }, + "_key": "!actors.items!XcAGOSmtCFLT1unN.KBMf7oBfFSHoafKN" + } + ], + "effects": [], + "_id": "XcAGOSmtCFLT1unN", + "sort": 0, + "_key": "!actors!XcAGOSmtCFLT1unN" +} diff --git a/src/packs/adversaries/adversary_Tangle_Bramble_jd4MVRwy9zTfmRRE.json b/src/packs/adversaries/adversary_Tangle_Bramble_jd4MVRwy9zTfmRRE.json deleted file mode 100644 index 3c13aad1..00000000 --- a/src/packs/adversaries/adversary_Tangle_Bramble_jd4MVRwy9zTfmRRE.json +++ /dev/null @@ -1,170 +0,0 @@ -{ - "name": "Tangle Bramble", - "img": "icons/svg/mystery-man.svg", - "type": "adversary", - "folder": "sxvlEwi25uAoB2C5", - "system": { - "motivesAndTactics": "Combine, drain, entangle", - "resistance": { - "physical": { - "resistance": false, - "immunity": false, - "reduction": 0 - }, - "magical": { - "resistance": false, - "immunity": false, - "reduction": 0 - } - }, - "type": "standard", - "notes": "", - "hordeHp": 1, - "experiences": {}, - "bonuses": { - "roll": { - "attack": { - "bonus": 0, - "dice": [] - }, - "action": { - "bonus": 0, - "dice": [] - }, - "reaction": { - "bonus": 0, - "dice": [] - } - }, - "damage": { - "physical": { - "bonus": 0, - "dice": [] - }, - "magical": { - "bonus": 0, - "dice": [] - } - } - }, - "difficulty": 11, - "tier": 1, - "description": "

An animate, blood-drinking tumbleweed.

" - }, - "flags": {}, - "_stats": { - "compendiumSource": null, - "duplicateSource": null, - "exportSource": null, - "coreVersion": "13.344", - "systemId": "daggerheart", - "systemVersion": "0.0.1", - "createdTime": 1753922784357, - "modifiedTime": 1753922784357, - "lastModifiedBy": "WafZqd6qLGpBRGTt" - }, - "_id": "jd4MVRwy9zTfmRRE", - "sort": 3400000, - "ownership": { - "default": 0, - "ei8OkswTzyDp4IGC": 3, - "WafZqd6qLGpBRGTt": 3 - }, - "prototypeToken": { - "name": "Tangle Bramble", - "displayName": 0, - "actorLink": false, - "width": 1, - "height": 1, - "texture": { - "src": "icons/svg/mystery-man.svg", - "anchorX": 0.5, - "anchorY": 0.5, - "offsetX": 0, - "offsetY": 0, - "fit": "contain", - "scaleX": 1, - "scaleY": 1, - "rotation": 0, - "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 - }, - "items": [], - "effects": [], - "_key": "!actors!jd4MVRwy9zTfmRRE" -} diff --git a/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json b/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json index 276658c7..e961b4e1 100644 --- a/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json +++ b/src/packs/adversaries/adversary_Tiny_Green_Ooze_aLkLFuVoKz2NLoBK.json @@ -16,7 +16,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "skulk", "notes": "", "hordeHp": 1, "experiences": {}, @@ -48,22 +48,72 @@ }, "difficulty": 14, "tier": 1, - "description": "

A small moving mound of translucent green slime.

" + "description": "

A small moving mound of translucent green slime.

", + "motivesAndTactics": "Camouflage, creep up", + "attack": { + "name": "Ooze Appendage", + "roll": { + "bonus": -1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d4", + "bonus": 1, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + }, + "img": "icons/creatures/slimes/slime-movement-dripping-pseudopods-green.webp" + }, + "damageThresholds": { + "major": 4, + "severe": 4 + }, + "resources": { + "hitPoints": { + "max": 2 + }, + "stress": { + "max": 1 + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784359, - "modifiedTime": 1753922784359, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754055264912, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "aLkLFuVoKz2NLoBK", - "sort": 3400000, + "sort": 3900000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -163,7 +213,95 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Acidic Form", + "type": "feature", + "_id": "WpOh5kHHx7lcTvEY", + "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", + "system": { + "description": "

When the Ooze makes a successful attack, the target must mark an Armor Slot without receiving its benefi ts (they can still use armor to reduce the damage). If they can’t mark an Armor Slot, they must mark an additional HP.

", + "resource": null, + "actions": { + "HfK0u0c7NRppuF1Q": { + "type": "damage", + "_id": "HfK0u0c7NRppuF1Q", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "1" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "armorSlot", + "type": [], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [], + "name": "Damage Armor", + "img": "icons/magic/acid/dissolve-drip-droplet-smoke.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055148507, + "modifiedTime": 1754055187632, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!aLkLFuVoKz2NLoBK.WpOh5kHHx7lcTvEY" + } + ], "effects": [], "_key": "!actors!aLkLFuVoKz2NLoBK" } diff --git a/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json b/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json index 62801c37..70fa8f48 100644 --- a/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json +++ b/src/packs/adversaries/adversary_Tiny_Red_Ooze_1fkLQXVtmILqfJ44.json @@ -17,7 +17,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "skulk", "notes": "", "hordeHp": 1, "experiences": {}, @@ -49,22 +49,71 @@ }, "difficulty": 11, "tier": 1, - "description": "

A small moving mound of translucent flaming red slime

" + "description": "

A small moving mound of translucent flaming red slime

", + "attack": { + "name": "Ooze Appendage", + "img": "icons/creatures/slimes/slime-movement-splashing-red.webp", + "roll": { + "bonus": -1 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d4", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + }, + "resources": { + "hitPoints": { + "max": 2 + }, + "stress": { + "max": 1 + } + }, + "damageThresholds": { + "major": 5, + "severe": 5 + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784359, - "modifiedTime": 1753922784359, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754055370827, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "1fkLQXVtmILqfJ44", - "sort": 3400000, + "sort": 200000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -164,7 +213,96 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Burning", + "type": "feature", + "_id": "zsUMP2qNmNpVHwk0", + "img": "icons/magic/fire/blast-jet-stream-splash.webp", + "system": { + "description": "

When a creature within Melee range deals damage to the Ooze, they take 1d6 direct magic damage.

", + "resource": null, + "actions": { + "cHaEnBwinVKmoS9s": { + "type": "damage", + "_id": "cHaEnBwinVKmoS9s", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "magical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [], + "name": "Damage", + "img": "icons/magic/fire/blast-jet-stream-splash.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055288007, + "modifiedTime": 1754055327095, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!1fkLQXVtmILqfJ44.zsUMP2qNmNpVHwk0" + } + ], "effects": [], "_key": "!actors!1fkLQXVtmILqfJ44" } diff --git a/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json b/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json index 8b76d7b1..b06e4732 100644 --- a/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json +++ b/src/packs/adversaries/adversary_Weaponmaster_ZNbQ2jg35LG4t9eH.json @@ -33,7 +33,7 @@ "reduction": 0 } }, - "type": "standard", + "type": "bruiser", "notes": "", "hordeHp": 1, "experiences": {}, @@ -64,22 +64,61 @@ } }, "tier": 1, - "description": "

A master-at-arms wielding a sword twice their size.

" + "description": "

A master-at-arms wielding a sword twice their size.

", + "motivesAndTactics": "Act fi rst, aim for the weakest, intimidate", + "attack": { + "roll": { + "bonus": 2 + }, + "name": "Claymore", + "img": "icons/weapons/swords/greatsword-guard-gold-worn.webp", + "range": "veryClose", + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d12", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784373, - "modifiedTime": 1753922784373, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754055465391, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "ZNbQ2jg35LG4t9eH", - "sort": 3400000, + "sort": 3800000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +218,340 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Goading Strike", + "type": "feature", + "_id": "tyGgOqQzDSIypoMz", + "img": "icons/skills/melee/strike-sword-dagger-runes-gold.webp", + "system": { + "description": "

Make a standard attack against a target. On a success, mark a Stress to Taunt the target until their next successful attack. The next time the Taunted target attacks, they have disadvantage against targets other than the Weaponmaster.

", + "resource": null, + "actions": { + "mlPgZJNL2TjykjUb": { + "type": "attack", + "_id": "mlPgZJNL2TjykjUb", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "flatMultiplier": 1, + "dice": "d12", + "bonus": 2, + "multiplier": "flat" + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + } + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "amount": 1 + }, + "effects": [ + { + "_id": "j2jYmYbtWXvq32yX", + "onSave": false + } + ], + "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/skills/melee/strike-sword-dagger-runes-gold.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Taunted", + "img": "icons/skills/melee/strike-sword-dagger-runes-gold.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.ZNbQ2jg35LG4t9eH.Item.tyGgOqQzDSIypoMz", + "transfer": false, + "_id": "j2jYmYbtWXvq32yX", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

The next time the Taunted target attacks, they have disadvantage against targets other than the Weaponmaster.

", + "tint": "#ffffff", + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055665322, + "modifiedTime": 1754055678355, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!ZNbQ2jg35LG4t9eH.tyGgOqQzDSIypoMz.j2jYmYbtWXvq32yX" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055391558, + "modifiedTime": 1754055694529, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!ZNbQ2jg35LG4t9eH.tyGgOqQzDSIypoMz" + }, + { + "name": "Adrenaline Burst", + "type": "feature", + "_id": "UsC0vtOBbf9Kut4v", + "img": "icons/magic/life/cross-beam-green.webp", + "system": { + "description": "

Once per scene, spend a Fear to clear 2 HP and 2 Stress.

", + "resource": { + "type": "simple", + "value": 1, + "max": "1", + "icon": "fa-solid fa-heart-pulse" + }, + "actions": { + "WQ067ZFiG2QMBo2n": { + "type": "healing", + "_id": "WQ067ZFiG2QMBo2n", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "hitPoints", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + }, + { + "value": { + "custom": { + "enabled": true, + "formula": "2" + }, + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null + }, + "applyTo": "stress", + "base": false, + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "type": [] + } + ], + "includeBase": false + }, + "target": { + "type": "any", + "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": "Spend Fear", + "img": "icons/magic/life/cross-beam-green.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055703816, + "modifiedTime": 1754055795306, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!ZNbQ2jg35LG4t9eH.UsC0vtOBbf9Kut4v" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "oYNVPQOy5oQli5Il", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Weaponmaster makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055804370, + "modifiedTime": 1754055820896, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!ZNbQ2jg35LG4t9eH.oYNVPQOy5oQli5Il" + } + ], "effects": [], "_key": "!actors!ZNbQ2jg35LG4t9eH" } diff --git a/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json b/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json index 5edd7306..eb55e6a1 100644 --- a/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json +++ b/src/packs/adversaries/adversary_Young_Dryad_8yUj2Mzvnifhxegm.json @@ -33,10 +33,15 @@ "reduction": 0 } }, - "type": "standard", + "type": "leader", "notes": "", "hordeHp": 1, - "experiences": {}, + "experiences": { + "lSUwWxW8jsQ2xho5": { + "name": "Leadership", + "value": 3 + } + }, "bonuses": { "roll": { "attack": { @@ -64,22 +69,60 @@ } }, "tier": 1, - "description": "

An imperious tree-person leading their forest’s defenses.

" + "description": "

An imperious tree-person leading their forest’s defenses.

", + "motivesAndTactics": "Command, nurture, prune the unwelcome", + "attack": { + "name": "Scythe", + "img": "icons/weapons/sickles/scythe-wrapped-worn-red.webp", + "roll": { + "bonus": 0 + }, + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d8", + "bonus": 5, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "resultBased": false, + "valueAlt": { + "multiplier": "prof", + "flatMultiplier": 1, + "dice": "d6", + "bonus": null, + "custom": { + "enabled": false + } + }, + "base": false + } + ] + } + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784374, - "modifiedTime": 1753922784374, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754055917813, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "8yUj2Mzvnifhxegm", - "sort": 3400000, + "sort": 1600000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -179,7 +222,248 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], + "items": [ + { + "name": "Voice of the Forest", + "type": "feature", + "_id": "lXhVuh31S2N4NVPG", + "img": "icons/magic/nature/leaf-hand-green.webp", + "system": { + "description": "

Mark a Stress to spotlight 1d4 allies within range of a target they can attack without moving. On a success, their attacks deal half damage.

", + "resource": null, + "actions": { + "0VOUNQKNjwlLhnRW": { + "type": "attack", + "_id": "0VOUNQKNjwlLhnRW", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "damage": { + "parts": [], + "includeBase": false + }, + "target": { + "type": "any", + "amount": null + }, + "effects": [], + "roll": { + "type": "diceSet", + "trait": null, + "difficulty": null, + "bonus": null, + "advState": "neutral", + "diceRolling": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "compare": null, + "treshold": null + }, + "useDefault": false + }, + "save": { + "trait": null, + "difficulty": null, + "damageMod": "none" + }, + "name": "Spotlight Allies", + "img": "icons/magic/nature/leaf-hand-green.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055838842, + "modifiedTime": 1754055987216, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8yUj2Mzvnifhxegm.lXhVuh31S2N4NVPG" + }, + { + "name": "Thorny Cage", + "type": "feature", + "_id": "i8NoUGUTNY2C5NhC", + "img": "icons/magic/nature/root-vine-barrier-wall-brown.webp", + "system": { + "description": "

Spend a Fear to form a cage around a target within Very Close range and Restrain them until they’re freed with a successful Strength Roll. When a creature makes an action roll against the cage, they must mark a Stress.

", + "resource": null, + "actions": { + "cXOjhfMgKh2yD1mc": { + "type": "effect", + "_id": "cXOjhfMgKh2yD1mc", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "fear", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [ + { + "_id": "k8LzBWRZo6VPqvpH", + "onSave": false + } + ], + "target": { + "type": "any", + "amount": null + }, + "name": "Spend Fear", + "img": "icons/magic/nature/root-vine-barrier-wall-brown.webp", + "range": "veryClose" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [ + { + "name": "Thorny Cage", + "img": "icons/magic/nature/root-vine-barrier-wall-brown.webp", + "origin": "Compendium.daggerheart.adversaries.Actor.8yUj2Mzvnifhxegm.Item.i8NoUGUTNY2C5NhC", + "transfer": false, + "_id": "k8LzBWRZo6VPqvpH", + "type": "base", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "disabled": false, + "duration": { + "startTime": null, + "combat": null, + "seconds": null, + "rounds": null, + "turns": null, + "startRound": null, + "startTurn": null + }, + "description": "

You are Restrained until you're freed with a successful Strength Roll. When a creature makes an action roll against the cage, they must mark a Stress.

", + "tint": "#ffffff", + "statuses": [ + "restrain" + ], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056038223, + "modifiedTime": 1754056077610, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items.effects!8yUj2Mzvnifhxegm.i8NoUGUTNY2C5NhC.k8LzBWRZo6VPqvpH" + } + ], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754055992231, + "modifiedTime": 1754056038239, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8yUj2Mzvnifhxegm.i8NoUGUTNY2C5NhC" + }, + { + "name": "Momentum", + "type": "feature", + "_id": "4f79icB7Dd1xLEZQ", + "img": "icons/skills/melee/strike-weapons-orange.webp", + "system": { + "description": "

When the Dryad makes a successful attack against a PC, you gain a Fear.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056082977, + "modifiedTime": 1754056099954, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!8yUj2Mzvnifhxegm.4f79icB7Dd1xLEZQ" + } + ], "effects": [], "_key": "!actors!8yUj2Mzvnifhxegm" } diff --git a/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json b/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json index c6eb37d6..d61311dd 100644 --- a/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json +++ b/src/packs/adversaries/adversary_Zombie_Pack_Nf0v43rtflV56V2T.json @@ -34,9 +34,9 @@ "reduction": 0 } }, - "type": "standard", + "type": "horde", "notes": "", - "hordeHp": 1, + "hordeHp": 2, "experiences": {}, "bonuses": { "roll": { @@ -65,22 +65,59 @@ } }, "tier": 1, - "description": "

A group of shambling corpses instinctively moving together.

" + "description": "

A group of shambling corpses instinctively moving together.

", + "attack": { + "damage": { + "parts": [ + { + "value": { + "custom": { + "enabled": false + }, + "dice": "d10", + "bonus": 2, + "multiplier": "flat", + "flatMultiplier": 1 + }, + "applyTo": "hitPoints", + "type": [ + "physical" + ], + "valueAlt": { + "multiplier": "flat", + "flatMultiplier": 1, + "dice": "d4", + "bonus": 2, + "custom": { + "enabled": false + } + }, + "resultBased": false, + "base": false + } + ] + }, + "name": "Bite", + "roll": { + "bonus": -1 + }, + "img": "icons/creatures/abilities/mouth-teeth-sharp.webp" + } }, "flags": {}, "_stats": { "compendiumSource": null, "duplicateSource": null, "exportSource": null, - "coreVersion": "13.344", + "coreVersion": "13.346", "systemId": "daggerheart", "systemVersion": "0.0.1", "createdTime": 1753922784375, - "modifiedTime": 1753922784375, - "lastModifiedBy": "WafZqd6qLGpBRGTt" + "modifiedTime": 1754056149776, + "lastModifiedBy": "MQSznptE5yLT7kj8" }, "_id": "Nf0v43rtflV56V2T", - "sort": 3400000, + "sort": 3100000, "ownership": { "default": 0, "ei8OkswTzyDp4IGC": 3, @@ -180,7 +217,147 @@ "appendNumber": false, "prependAdjective": false }, - "items": [], - "effects": [], + "items": [ + { + "name": "Horde (1d4+2)", + "type": "feature", + "_id": "nNJGAhWu0IuS2ybn", + "img": "icons/creatures/magical/humanoid-silhouette-aliens-green.webp", + "system": { + "description": "

When the Zombies have marked half or more of their HP, their standard attack deals 1d4+2 physical damage instead.

", + "resource": null, + "actions": {}, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056157290, + "modifiedTime": 1754056175899, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!Nf0v43rtflV56V2T.nNJGAhWu0IuS2ybn" + }, + { + "name": "Overwhelm", + "type": "feature", + "_id": "jQmltra0ovHE33Nx", + "img": "icons/magic/death/blood-corruption-vomit-red.webp", + "system": { + "description": "

When the Zombies mark HP from an attack within Melee range, you can mark a Stress to make a standard attack against the attacker.

", + "resource": null, + "actions": { + "0Im5AEgp8gJaVJHh": { + "type": "effect", + "_id": "0Im5AEgp8gJaVJHh", + "systemPath": "actions", + "description": "", + "chatDisplay": true, + "actionType": "action", + "cost": [ + { + "scalable": false, + "key": "stress", + "value": 1, + "keyIsID": false, + "step": null + } + ], + "uses": { + "value": null, + "max": "", + "recovery": null + }, + "effects": [], + "target": { + "type": "self", + "amount": null + }, + "name": "Mark Stress", + "img": "icons/magic/death/blood-corruption-vomit-red.webp", + "range": "" + } + }, + "originItemType": null, + "subType": null, + "originId": null + }, + "effects": [], + "folder": null, + "sort": 0, + "ownership": { + "default": 0, + "MQSznptE5yLT7kj8": 3 + }, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056184398, + "modifiedTime": 1754056281089, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.items!Nf0v43rtflV56V2T.jQmltra0ovHE33Nx" + } + ], + "effects": [ + { + "type": "horde", + "name": "Horde", + "img": "icons/magic/movement/chevrons-down-yellow.webp", + "disabled": true, + "_id": "aWWZTlNS9zYoUay7", + "system": { + "rangeDependence": { + "enabled": false, + "type": "withinRange", + "target": "hostile", + "range": "melee" + } + }, + "changes": [], + "duration": { + "startTime": 0, + "combat": null + }, + "description": "", + "origin": null, + "tint": "#ffffff", + "transfer": false, + "statuses": [], + "sort": 0, + "flags": {}, + "_stats": { + "compendiumSource": null, + "duplicateSource": null, + "exportSource": null, + "coreVersion": "13.346", + "systemId": "daggerheart", + "systemVersion": "0.0.1", + "createdTime": 1754056113999, + "modifiedTime": 1754056113999, + "lastModifiedBy": "MQSznptE5yLT7kj8" + }, + "_key": "!actors.effects!Nf0v43rtflV56V2T.aWWZTlNS9zYoUay7" + } + ], "_key": "!actors!Nf0v43rtflV56V2T" } diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less index 8a3677ae..72723f79 100755 --- a/styles/less/global/elements.less +++ b/styles/less/global/elements.less @@ -421,6 +421,7 @@ display: flex; gap: 8px; flex-wrap: wrap; + margin-top: 2px; button { white-space: nowrap; diff --git a/system.json b/system.json index 0efa1820..995f63f3 100644 --- a/system.json +++ b/system.json @@ -237,7 +237,8 @@ "beastform": {} }, "ActiveEffect": { - "beastform": {} + "beastform": {}, + "horde": {} }, "Combat": { "combat": {} diff --git a/templates/sheets/actors/adversary/sidebar.hbs b/templates/sheets/actors/adversary/sidebar.hbs index 77df4486..da43aa3f 100644 --- a/templates/sheets/actors/adversary/sidebar.hbs +++ b/templates/sheets/actors/adversary/sidebar.hbs @@ -59,8 +59,8 @@
- {{#if source.system.attack.target.amount}} -

{{source.system.attack.target.amount}}

+ {{#if source.system.attack.roll.bonus}} +

{{source.system.attack.roll.bonus}}

{{else}}

-

{{/if}} @@ -86,6 +86,7 @@ hideTooltip=true hideResources=true noExtensible=true + noCompendiumEdit=true }}
diff --git a/templates/sheets/global/partials/inventory-item-V2.hbs b/templates/sheets/global/partials/inventory-item-V2.hbs index b8e95280..318e4dcb 100644 --- a/templates/sheets/global/partials/inventory-item-V2.hbs +++ b/templates/sheets/global/partials/inventory-item-V2.hbs @@ -16,7 +16,7 @@ Parameters: --}}
  • + data-action-id="{{item.id}}" {{/if}} data-item-uuid="{{item.uuid}}" data-type="{{type}}" data-no-compendium-edit="{{noCompendiumEdit}}" draggable="true">
    {{!-- Image --}}
    Date: Fri, 1 Aug 2025 17:16:35 +0200 Subject: [PATCH 4/5] [Feature] Manual Character Editing (#490) * Initial * Added Character-Settings * Finalized Character-Settings * Hide CharacterSetup if any part is done manually * Fixed class/subclass drag-drop * Fixed relinking of Features from items created on Character * Adding features on CharacterItems now adds them on the Character and relinks * Made suggested items inactive in the Class sheet if rendered from inside a Character * Added hope to CharacterSetting * add style to textarea element, add spellcasting and domain class into char sheet and move rest buttons to another place * Fixed characterCreation experience description --------- Co-authored-by: moliloo --- lang/en.json | 35 ++++- module/applications/dialogs/_module.mjs | 1 + .../dialogs/multiclassChoiceDialog.mjs | 73 +++++++++ module/applications/levelup/levelup.mjs | 4 +- .../applications/sheets-configs/_module.mjs | 1 + .../sheets-configs/character-settings.mjs | 143 ++++++++++++++++++ .../sheets-configs/companion-settings.mjs | 34 +++++ .../applications/sheets/actors/character.mjs | 10 +- .../sheets/api/application-mixin.mjs | 24 ++- module/applications/sheets/api/base-item.mjs | 22 ++- module/applications/sheets/items/class.mjs | 76 +++++----- module/data/actor/adversary.mjs | 3 +- module/data/actor/character.mjs | 89 ++++++----- module/data/fields/actorField.mjs | 9 +- module/data/item/base.mjs | 19 ++- module/data/item/class.mjs | 35 ++++- module/data/item/feature.mjs | 1 - module/data/item/subclass.mjs | 57 ++++--- module/data/settings/Automation.mjs | 5 + module/documents/actor.mjs | 142 +++++++++-------- .../selections-container.less | 40 +++-- styles/less/dialog/index.less | 2 + .../dialog/level-up/selections-container.less | 6 + .../less/dialog/multiclass-choice/sheet.less | 76 ++++++++++ styles/less/global/elements.less | 19 ++- .../adversary-settings/experiences.less | 19 ++- .../character-settings/sheet.less | 36 +++++ styles/less/sheets-settings/index.less | 1 + .../less/sheets/actors/character/header.less | 80 ++++++---- .../less/sheets/actors/character/sheet.less | 1 + .../less/sheets/actors/character/sidebar.less | 116 +++++++++++--- .../setupTabs/experience.hbs | 8 +- templates/dialogs/multiclassChoice.hbs | 23 +++ templates/levelup/tabs/footer.hbs | 8 + templates/levelup/tabs/tab-navigation.hbs | 74 ++++----- templates/settings/automation-settings.hbs | 1 + .../adversary-settings/experiences.hbs | 10 +- .../character-settings/details.hbs | 42 +++++ .../character-settings/experiences.hbs | 25 +++ .../character-settings/header.hbs | 3 + .../companion-settings/attack.hbs | 1 + .../companion-settings/experiences.hbs | 16 +- templates/sheets/actors/adversary/header.hbs | 2 +- templates/sheets/actors/adversary/sidebar.hbs | 20 +-- templates/sheets/actors/character/header.hbs | 44 +++--- templates/sheets/actors/character/sidebar.hbs | 39 +++-- templates/sheets/actors/companion/header.hbs | 2 +- templates/sheets/items/class/features.hbs | 68 +++++---- templates/sheets/items/class/settings.hbs | 26 ++-- 49 files changed, 1205 insertions(+), 386 deletions(-) create mode 100644 module/applications/dialogs/multiclassChoiceDialog.mjs create mode 100644 module/applications/sheets-configs/character-settings.mjs create mode 100644 styles/less/dialog/multiclass-choice/sheet.less create mode 100644 styles/less/sheets-settings/character-settings/sheet.less create mode 100644 templates/dialogs/multiclassChoice.hbs create mode 100644 templates/levelup/tabs/footer.hbs create mode 100644 templates/sheets-settings/character-settings/details.hbs create mode 100644 templates/sheets-settings/character-settings/experiences.hbs create mode 100644 templates/sheets-settings/character-settings/header.hbs diff --git a/lang/en.json b/lang/en.json index 2ed77e99..48b01ea7 100755 --- a/lang/en.json +++ b/lang/en.json @@ -162,11 +162,25 @@ }, "faith": "Faith", "levelUp": "You can level up", + "maxEvasionBonus": "Max Evasion Increase", + "maxHPBonus": "Max HP Increase", "pronouns": "Pronouns", "story": { "backgroundTitle": "Background", "characteristics": "Characteristics", "connectionsTitle": "Connections" + }, + "experienceDataRemoveConfirmation": { + "title": "Remove Experience Data", + "text": "The experience you are about to remove has levelup data linked to it (assumably because you did levelups with the 'levelupAuto' automation setting on). Removing it will remove this automation data aswell. Do you want to proceed?" + }, + "manualMulticlass": { + "title": "Multiclass", + "text": "Do you want to add this class as your multiclass?" + }, + "manualMulticlassSubclass": { + "title": "Multiclass Subclass", + "text": "Do you want to add this subclass as your multiclass subclass?" } }, "Companion": { @@ -460,6 +474,11 @@ }, "title": "{actor} Level Up" }, + "MulticlassChoice": { + "title": "Multiclassing - {actor}", + "explanation": "You are adding {class} as your multiclass", + "selectDomainPrompt": "Select your new domain" + }, "OwnershipSelection": { "title": "Ownership Selection - {name}", "default": "Default Ownership" @@ -1866,6 +1885,7 @@ "levelUp": "Level Up", "loadout": "Loadout", "max": "Max", + "maxWithThing": "Max {thing}", "multiclass": "Multiclass", "newCategory": "New Category", "none": "None", @@ -2022,6 +2042,10 @@ "gm": { "label": "GM" }, "players": { "label": "Players" } }, + "levelupAuto": { + "label": "Levelup Automation", + "hint": "When you've made your choices and finish levelup, the numerical changes are automatically applied to your character." + }, "actionPoints": { "label": "Action Points", "hint": "Automatically give and take Action Points as combatants take their turns." @@ -2205,7 +2229,9 @@ "tooHighLevel": "You cannot raise the character level past the maximum", "tooLowLevel": "You cannot lower the character level below starting level", "subclassNotInClass": "This subclass does not belong to your selected class.", + "subclassNotInMulticlass": "This subclass does not belong to your selected multiclass.", "missingClass": "You don't have a class selected yet.", + "missingMulticlass": "Missing multiclass", "wrongDomain": "The card isn't from one of your class domains.", "cardTooHighLevel": "The card is too high level!", "duplicateCard": "You cannot select the same card more than once.", @@ -2235,7 +2261,9 @@ "beastformToManyFeatures": "You cannot select any more features.", "beastformEquipWeapon": "You cannot use weapons while in a Beastform.", "loadoutMaxReached": "You already have {max} cards in your loadout. Move atleast one to your vault before adding a new one.", - "insufficientResources": "You have insufficient resources" + "insufficientResources": "You have insufficient resources", + "multiclassAlreadyPresent": "You already have a class and multiclass", + "subclassesAlreadyPresent": "You already have a class and multiclass subclass" }, "Tooltip": { "disableEffect": "Disable Effect", @@ -2243,6 +2271,8 @@ "openItemWorld": "Open Item World", "openActorWorld": "Open Actor World", "sendToChat": "Send to Chat", + "maxEvasionClassBound": "Your Evasion base is set on your class. This is the increase ontop of that.", + "maxHPClassBound": "Your max HP base is set on your class. This is the increase ontop of that.", "moreOptions": "More Options", "equip": "Equip", "unequip": "Unequip", @@ -2252,7 +2282,8 @@ "rangeAndTarget": "Range & Target", "dragApplyEffect": "Drag effect to apply it to an actor", "appliedEvenIfSuccessful": "Applied even if save succeeded", - "diceIsRerolled": "The dice has been rerolled (x{times})" + "diceIsRerolled": "The dice has been rerolled (x{times})", + "openSheetSettings": "Open Settings" } } } diff --git a/module/applications/dialogs/_module.mjs b/module/applications/dialogs/_module.mjs index f9b40f3f..11d6dd2b 100644 --- a/module/applications/dialogs/_module.mjs +++ b/module/applications/dialogs/_module.mjs @@ -5,6 +5,7 @@ export { default as DamageReductionDialog } from './damageReductionDialog.mjs'; export { default as DamageSelectionDialog } from './damageSelectionDialog.mjs'; export { default as DeathMove } from './deathMove.mjs'; export { default as Downtime } from './downtime.mjs'; +export { default as MulticlassChoiceDialog } from './multiclassChoiceDialog.mjs'; export { default as OwnershipSelection } from './ownershipSelection.mjs'; export { default as ResourceDiceDialog } from './resourceDiceDialog.mjs'; export { default as ActionSelectionDialog } from './actionSelectionDialog.mjs'; diff --git a/module/applications/dialogs/multiclassChoiceDialog.mjs b/module/applications/dialogs/multiclassChoiceDialog.mjs new file mode 100644 index 00000000..12f2629b --- /dev/null +++ b/module/applications/dialogs/multiclassChoiceDialog.mjs @@ -0,0 +1,73 @@ +const { HandlebarsApplicationMixin, ApplicationV2 } = foundry.applications.api; + +export default class MulticlassChoiceDialog extends HandlebarsApplicationMixin(ApplicationV2) { + constructor(actor, multiclass, options) { + super(options); + + this.actor = actor; + this.multiclass = multiclass; + this.selectedDomain = null; + } + + get title() { + return game.i18n.format('DAGGERHEART.APPLICATIONS.MulticlassChoice.title', { actor: this.actor.name }); + } + + static DEFAULT_OPTIONS = { + classes: ['daggerheart', 'dh-style', 'dialog', 'views', 'multiclass-choice'], + position: { width: 'auto', height: 'auto' }, + window: { icon: 'fa-solid fa-person-rays' }, + actions: { + save: MulticlassChoiceDialog.#save, + selectDomain: MulticlassChoiceDialog.#selectDomain + } + }; + + static PARTS = { + application: { + id: 'multiclass-choice', + template: 'systems/daggerheart/templates/dialogs/multiclassChoice.hbs' + } + }; + + async _prepareContext(_options) { + const context = await super._prepareContext(_options); + context.multiclass = this.multiclass; + context.domainChoices = this.multiclass.domains.map(value => { + const domain = CONFIG.DH.DOMAIN.domains[value]; + return { + value: value, + label: game.i18n.localize(domain.label), + description: game.i18n.localize(domain.description), + src: domain.src, + selected: value === this.selectedDomain, + disabled: this.actor.system.domains.includes(value) + }; + }); + context.multiclassDisabled = !this.selectedDomain; + + return context; + } + + /** @override */ + _onClose(options = {}) { + if (!options.submitted) this.move = null; + } + + static async configure(actor, multiclass, options = {}) { + return new Promise(resolve => { + const app = new this(actor, multiclass, options); + app.addEventListener('close', () => resolve(app.selectedDomain), { once: true }); + app.render({ force: true }); + }); + } + + static #save() { + this.close({ submitted: true }); + } + + static #selectDomain(_event, button) { + this.selectedDomain = this.selectedDomain === button.dataset.domain ? null : button.dataset.domain; + this.render(); + } +} diff --git a/module/applications/levelup/levelup.mjs b/module/applications/levelup/levelup.mjs index 7820c267..f025c131 100644 --- a/module/applications/levelup/levelup.mjs +++ b/module/applications/levelup/levelup.mjs @@ -46,7 +46,8 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2) tabs: { template: 'systems/daggerheart/templates/levelup/tabs/tab-navigation.hbs' }, advancements: { template: 'systems/daggerheart/templates/levelup/tabs/advancements.hbs' }, selections: { template: 'systems/daggerheart/templates/levelup/tabs/selections.hbs' }, - summary: { template: 'systems/daggerheart/templates/levelup/tabs/summary.hbs' } + summary: { template: 'systems/daggerheart/templates/levelup/tabs/summary.hbs' }, + footer: { template: 'systems/daggerheart/templates/levelup/tabs/footer.hbs' } }; static TABS = { @@ -95,6 +96,7 @@ export default class DhlevelUp extends HandlebarsApplicationMixin(ApplicationV2) const context = await super._prepareContext(_options); context.levelup = this.levelup; context.tabs = this._getTabs(this.constructor.TABS); + context.levelupAuto = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).levelupAuto; return context; } diff --git a/module/applications/sheets-configs/_module.mjs b/module/applications/sheets-configs/_module.mjs index 49cc74b0..ed062163 100644 --- a/module/applications/sheets-configs/_module.mjs +++ b/module/applications/sheets-configs/_module.mjs @@ -1,4 +1,5 @@ export { default as ActionConfig } from './action-config.mjs'; +export { default as CharacterSettings } from './character-settings.mjs'; export { default as AdversarySettings } from './adversary-settings.mjs'; export { default as CompanionSettings } from './companion-settings.mjs'; export { default as DowntimeConfig } from './downtimeConfig.mjs'; diff --git a/module/applications/sheets-configs/character-settings.mjs b/module/applications/sheets-configs/character-settings.mjs new file mode 100644 index 00000000..20a09cfc --- /dev/null +++ b/module/applications/sheets-configs/character-settings.mjs @@ -0,0 +1,143 @@ +import DHBaseActorSettings from '../sheets/api/actor-setting.mjs'; + +/**@typedef {import('@client/applications/_types.mjs').ApplicationClickAction} ApplicationClickAction */ + +export default class DHCharacterSettings extends DHBaseActorSettings { + /**@inheritdoc */ + static DEFAULT_OPTIONS = { + classes: ['character-settings'], + position: { width: 455, height: 'auto' }, + actions: { + addExperience: DHCharacterSettings.#addExperience, + removeExperience: DHCharacterSettings.#removeExperience + }, + dragDrop: [ + { dragSelector: null, dropSelector: '.tab.features' }, + { dragSelector: '.feature-item', dropSelector: null } + ] + }; + + /**@override */ + static PARTS = { + header: { + id: 'header', + template: 'systems/daggerheart/templates/sheets-settings/character-settings/header.hbs' + }, + tabs: { template: 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs' }, + details: { + id: 'details', + template: 'systems/daggerheart/templates/sheets-settings/character-settings/details.hbs' + }, + experiences: { + id: 'experiences', + template: 'systems/daggerheart/templates/sheets-settings/character-settings/experiences.hbs' + } + }; + + /** @override */ + static TABS = { + primary: { + tabs: [{ id: 'details' }, { id: 'experiences' }], + initial: 'details', + labelPrefix: 'DAGGERHEART.GENERAL.Tabs' + } + }; + + /**@inheritdoc */ + async _prepareContext(options) { + const context = await super._prepareContext(options); + context.levelupAuto = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).levelupAuto; + + return context; + } + + /* -------------------------------------------- */ + + /** + * Adds a new experience entry to the actor. + * @type {ApplicationClickAction} + */ + static async #addExperience() { + const newExperience = { + name: 'Experience', + modifier: 0 + }; + await this.actor.update({ [`system.experiences.${foundry.utils.randomID()}`]: newExperience }); + } + + /** + * Removes an experience entry from the actor. + * @type {ApplicationClickAction} + */ + static async #removeExperience(_, target) { + const experience = this.actor.system.experiences[target.dataset.experience]; + const updates = {}; + + const relinkAchievementData = []; + const relinkSelectionData = []; + Object.keys(this.actor.system.levelData.levelups).forEach(key => { + const level = this.actor.system.levelData.levelups[key]; + + const achievementIncludesExp = level.achievements.experiences[target.dataset.experience]; + if (achievementIncludesExp) + relinkAchievementData.push({ levelKey: key, experience: target.dataset.experience }); + + const selectionIndex = level.selections.findIndex( + x => x.optionKey === 'experience' && x.data[0] === target.dataset.experience + ); + if (selectionIndex !== -1) + relinkSelectionData.push({ levelKey: key, selectionIndex, experience: target.dataset.experience }); + }); + + if (relinkAchievementData.length > 0 || relinkSelectionData.length > 0) { + const confirmed = await foundry.applications.api.DialogV2.confirm({ + window: { + title: game.i18n.localize('DAGGERHEART.ACTORS.Character.experienceDataRemoveConfirmation.title') + }, + content: game.i18n.localize('DAGGERHEART.ACTORS.Character.experienceDataRemoveConfirmation.text') + }); + if (!confirmed) return; + } + + if (relinkAchievementData.length > 0) { + relinkAchievementData.forEach(data => { + updates[`system.levelData.levelups.${data.levelKey}.achievements.experiences.-=${data.experience}`] = + null; + }); + } else if (relinkSelectionData.length > 0) { + relinkSelectionData.forEach(data => { + updates[`system.levelData.levelups.${data.levelKey}.selections`] = this.actor.system.levelData.levelups[ + data.levelKey + ].selections.reduce((acc, selection, index) => { + if ( + index === data.selectionIndex && + selection.optionKey === 'experience' && + selection.data.includes(data.experience) + ) { + acc.push({ ...selection, data: selection.data.filter(x => x !== data.experience) }); + } else { + acc.push(selection); + } + + return acc; + }, []); + }); + } else { + const confirmed = await foundry.applications.api.DialogV2.confirm({ + window: { + title: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.title', { + type: game.i18n.localize(`DAGGERHEART.GENERAL.Experience.single`), + name: experience.name + }) + }, + content: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.text', { name: experience.name }) + }); + if (!confirmed) return; + } + + await this.actor.update({ + ...updates, + [`system.experiences.-=${target.dataset.experience}`]: null + }); + } +} diff --git a/module/applications/sheets-configs/companion-settings.mjs b/module/applications/sheets-configs/companion-settings.mjs index fed70c56..6791c4c7 100644 --- a/module/applications/sheets-configs/companion-settings.mjs +++ b/module/applications/sheets-configs/companion-settings.mjs @@ -10,6 +10,8 @@ export default class DHCompanionSettings extends DHBaseActorSettings { classes: ['companion-settings'], position: { width: 455, height: 'auto' }, actions: { + addExperience: DHCompanionSettings.#addExperience, + removeExperience: DHCompanionSettings.#removeExperience, levelUp: DHCompanionSettings.#levelUp } }; @@ -88,6 +90,38 @@ export default class DHCompanionSettings extends DHBaseActorSettings { if (!value) await this.actor.updateLevel(1); } + /** + * Adds a new experience entry to the actor. + * @type {ApplicationClickAction} + */ + static async #addExperience() { + const newExperience = { + name: 'Experience', + modifier: 0 + }; + await this.actor.update({ [`system.experiences.${foundry.utils.randomID()}`]: newExperience }); + } + + /** + * Removes an experience entry from the actor. + * @type {ApplicationClickAction} + */ + static async #removeExperience(_, target) { + const experience = this.actor.system.experiences[target.dataset.experience]; + const confirmed = await foundry.applications.api.DialogV2.confirm({ + window: { + title: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.title', { + type: game.i18n.localize(`DAGGERHEART.GENERAL.Experience.single`), + name: experience.name + }) + }, + content: game.i18n.format('DAGGERHEART.APPLICATIONS.DeleteConfirmation.text', { name: experience.name }) + }); + if (!confirmed) return; + + await this.actor.update({ [`system.experiences.-=${target.dataset.experience}`]: null }); + } + /** * Opens the companion level-up dialog for the associated actor. * @type {ApplicationClickAction} diff --git a/module/applications/sheets/actors/character.mjs b/module/applications/sheets/actors/character.mjs index 6bbef5b0..1ef50b84 100644 --- a/module/applications/sheets/actors/character.mjs +++ b/module/applications/sheets/actors/character.mjs @@ -716,10 +716,14 @@ export default class CharacterSheet extends DHBaseActorSheet { }); } + /** + * Open the downtime application. + * @type {ApplicationClickAction} + */ static useDowntime(_, button) { - new game.system.api.applications.dialogs.Downtime(this.document, button.dataset.type === 'shortRest').render( - true - ); + new game.system.api.applications.dialogs.Downtime(this.document, button.dataset.type === 'shortRest').render({ + force: true + }); } async _onDragStart(event) { diff --git a/module/applications/sheets/api/application-mixin.mjs b/module/applications/sheets/api/application-mixin.mjs index d5d0565f..15bcb87f 100644 --- a/module/applications/sheets/api/application-mixin.mjs +++ b/module/applications/sheets/api/application-mixin.mjs @@ -417,17 +417,29 @@ export default function DHApplicationMixin(Base) { const { documentClass, type, inVault, disabled } = target.dataset; const parentIsItem = this.document.documentName === 'Item'; const parent = - parentIsItem && documentClass === 'Item' - ? type === 'action' - ? this.document.system - : null - : this.document; + this.document.parent?.type === 'character' + ? this.document.parent + : parentIsItem && documentClass === 'Item' + ? type === 'action' + ? this.document.system + : null + : this.document; + + let systemData = {}; + if (parent?.type === 'character' && type === 'feature') { + systemData = { + originItemType: this.document.type, + originId: this.document.id, + identifier: this.document.system.isMulticlass ? 'multiclass' : null + }; + } const cls = type === 'action' ? game.system.api.models.actions.actionsTypes.base : getDocumentClass(documentClass); const data = { name: cls.defaultName({ type, parent }), - type + type, + system: systemData }; if (inVault) data['system.inVault'] = true; if (disabled) data.disabled = true; diff --git a/module/applications/sheets/api/base-item.mjs b/module/applications/sheets/api/base-item.mjs index ed63956b..b5573a0c 100644 --- a/module/applications/sheets/api/base-item.mjs +++ b/module/applications/sheets/api/base-item.mjs @@ -150,10 +150,24 @@ export default class DHBaseItemSheet extends DHApplicationMixin(ItemSheetV2) { static async #addFeature(_, target) { const { type } = target.dataset; const cls = foundry.documents.Item.implementation; - const item = await cls.create({ - type: 'feature', - name: cls.defaultName({ type: 'feature' }) - }); + + let systemData = {}; + if (this.document.parent?.type === 'character') { + systemData = { + originItemType: this.document.type, + originId: this.document.id, + identifier: this.document.system.isMulticlass ? 'multiclass' : null + }; + } + + const item = await cls.create( + { + type: 'feature', + name: cls.defaultName({ type: 'feature' }), + system: systemData + }, + { parent: this.document.parent?.type === 'character' ? this.document.parent : undefined } + ); await this.document.update({ 'system.features': [...this.document.system.features, { type, item }].map(x => ({ ...x, diff --git a/module/applications/sheets/items/class.mjs b/module/applications/sheets/items/class.mjs index c78e1de1..3dce0a11 100644 --- a/module/applications/sheets/items/class.mjs +++ b/module/applications/sheets/items/class.mjs @@ -113,45 +113,47 @@ export default class ClassSheet extends DHBaseItemSheet { }); } else if (item.type === 'feature') { super._onDrop(event); - } else if (item.type === 'weapon') { - if (target.classList.contains('primary-weapon-section')) { - if (!item.system.secondary) + } else if (this.document.parent?.type !== 'character') { + if (item.type === 'weapon') { + if (target.classList.contains('primary-weapon-section')) { + if (!item.system.secondary) + await this.document.update({ + 'system.characterGuide.suggestedPrimaryWeapon': item.uuid + }); + } else if (target.classList.contains('secondary-weapon-section')) { + if (item.system.secondary) + await this.document.update({ + 'system.characterGuide.suggestedSecondaryWeapon': item.uuid + }); + } + } else if (item.type === 'armor') { + if (target.classList.contains('armor-section')) { await this.document.update({ - 'system.characterGuide.suggestedPrimaryWeapon': item.uuid - }); - } else if (target.classList.contains('secondary-weapon-section')) { - if (item.system.secondary) - await this.document.update({ - 'system.characterGuide.suggestedSecondaryWeapon': item.uuid - }); - } - } else if (item.type === 'armor') { - if (target.classList.contains('armor-section')) { - await this.document.update({ - 'system.characterGuide.suggestedArmor': item.uuid - }); - } - } else if (target.classList.contains('choice-a-section')) { - if (item.type === 'loot' || item.type === 'consumable') { - const filteredChoiceA = this.document.system.inventory.choiceA; - if (filteredChoiceA.length < 2) - await this.document.update({ - 'system.inventory.choiceA': [...filteredChoiceA.map(x => x.uuid), item.uuid] - }); - } - } else if (item.type === 'loot') { - if (target.classList.contains('take-section')) { - const filteredTake = this.document.system.inventory.take.filter(x => x); - if (filteredTake.length < 3) - await this.document.update({ - 'system.inventory.take': [...filteredTake.map(x => x.uuid), item.uuid] - }); - } else if (target.classList.contains('choice-b-section')) { - const filteredChoiceB = this.document.system.inventory.choiceB.filter(x => x); - if (filteredChoiceB.length < 2) - await this.document.update({ - 'system.inventory.choiceB': [...filteredChoiceB.map(x => x.uuid), item.uuid] + 'system.characterGuide.suggestedArmor': item.uuid }); + } + } else if (target.classList.contains('choice-a-section')) { + if (item.type === 'loot' || item.type === 'consumable') { + const filteredChoiceA = this.document.system.inventory.choiceA; + if (filteredChoiceA.length < 2) + await this.document.update({ + 'system.inventory.choiceA': [...filteredChoiceA.map(x => x.uuid), item.uuid] + }); + } + } else if (item.type === 'loot') { + if (target.classList.contains('take-section')) { + const filteredTake = this.document.system.inventory.take.filter(x => x); + if (filteredTake.length < 3) + await this.document.update({ + 'system.inventory.take': [...filteredTake.map(x => x.uuid), item.uuid] + }); + } else if (target.classList.contains('choice-b-section')) { + const filteredChoiceB = this.document.system.inventory.choiceB.filter(x => x); + if (filteredChoiceB.length < 2) + await this.document.update({ + 'system.inventory.choiceB': [...filteredChoiceB.map(x => x.uuid), item.uuid] + }); + } } } } diff --git a/module/data/actor/adversary.mjs b/module/data/actor/adversary.mjs index 161c3324..5ad855ed 100644 --- a/module/data/actor/adversary.mjs +++ b/module/data/actor/adversary.mjs @@ -87,7 +87,8 @@ export default class DhpAdversary extends BaseDataActor { experiences: new fields.TypedObjectField( new fields.SchemaField({ name: new fields.StringField(), - value: new fields.NumberField({ required: true, integer: true, initial: 1 }) + value: new fields.NumberField({ required: true, integer: true, initial: 1 }), + description: new fields.StringField() }) ), bonuses: new fields.SchemaField({ diff --git a/module/data/actor/character.mjs b/module/data/actor/character.mjs index 7fc7c5d7..e0bbcc03 100644 --- a/module/data/actor/character.mjs +++ b/module/data/actor/character.mjs @@ -4,6 +4,7 @@ import DhLevelData from '../levelData.mjs'; import BaseDataActor from './base.mjs'; import { attributeField, resourceField, stressDamageReductionRule, bonusField } from '../fields/actorField.mjs'; import { ActionField } from '../fields/actionField.mjs'; +import DHCharacterSettings from '../../applications/sheets-configs/character-settings.mjs'; export default class DhCharacter extends BaseDataActor { static LOCALIZATION_PREFIXES = ['DAGGERHEART.ACTORS.Character']; @@ -12,6 +13,7 @@ export default class DhCharacter extends BaseDataActor { return foundry.utils.mergeObject(super.metadata, { label: 'TYPES.Actor.character', type: 'character', + settingSheet: DHCharacterSettings, isNPC: false }); } @@ -22,7 +24,12 @@ export default class DhCharacter extends BaseDataActor { return { ...super.defineSchema(), resources: new fields.SchemaField({ - hitPoints: resourceField(0, 'DAGGERHEART.GENERAL.HitPoints.plural', true), + hitPoints: resourceField( + 0, + 'DAGGERHEART.GENERAL.HitPoints.plural', + true, + 'DAGGERHEART.ACTORS.Character.maxHPBonus' + ), stress: resourceField(6, 'DAGGERHEART.GENERAL.stress', true), hope: resourceField(6, 'DAGGERHEART.GENERAL.hope') }), @@ -56,7 +63,8 @@ export default class DhCharacter extends BaseDataActor { experiences: new fields.TypedObjectField( new fields.SchemaField({ name: new fields.StringField(), - value: new fields.NumberField({ integer: true, initial: 0 }) + value: new fields.NumberField({ integer: true, initial: 0 }), + description: new fields.StringField() }) ), gold: new fields.SchemaField({ @@ -312,7 +320,7 @@ export default class DhCharacter extends BaseDataActor { } get needsCharacterSetup() { - return !this.class.value || !this.class.subclass; + return !(this.class.value || this.class.subclass || this.ancestry || this.community); } get spellcastModifier() { @@ -399,11 +407,16 @@ export default class DhCharacter extends BaseDataActor { } else if (item.system.originItemType === CONFIG.DH.ITEM.featureTypes.subclass.id) { if (this.class.subclass) { const subclassState = this.class.subclass.system.featureState; - const subType = item.system.subType; + const subclass = + item.system.identifier === 'multiclass' ? this.multiclass.subclass : this.class.subclass; + const featureType = subclass + ? (subclass.system.features.find(x => x.item?.uuid === item.uuid)?.type ?? null) + : null; + if ( - subType === CONFIG.DH.ITEM.featureSubTypes.foundation || - (subType === CONFIG.DH.ITEM.featureSubTypes.specialization && subclassState >= 2) || - (subType === CONFIG.DH.ITEM.featureSubTypes.mastery && subclassState >= 3) + featureType === CONFIG.DH.ITEM.featureSubTypes.foundation || + (featureType === CONFIG.DH.ITEM.featureSubTypes.specialization && subclassState >= 2) || + (featureType === CONFIG.DH.ITEM.featureSubTypes.mastery && subclassState >= 3) ) { subclassFeatures.push(item); } @@ -502,7 +515,7 @@ export default class DhCharacter extends BaseDataActor { } prepareBaseData() { - this.evasion = this.class.value?.system?.evasion ?? 0; + this.evasion += this.class.value?.system?.evasion ?? 0; const currentLevel = this.levelData.level.current; const currentTier = @@ -511,37 +524,39 @@ export default class DhCharacter extends BaseDataActor { : Object.values(game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.LevelTiers).tiers).find( tier => currentLevel >= tier.levels.start && currentLevel <= tier.levels.end ).tier; - for (let levelKey in this.levelData.levelups) { - const level = this.levelData.levelups[levelKey]; + if (game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).levelupAuto) { + for (let levelKey in this.levelData.levelups) { + const level = this.levelData.levelups[levelKey]; - this.proficiency += level.achievements.proficiency; + this.proficiency += level.achievements.proficiency; - for (let selection of level.selections) { - switch (selection.type) { - case 'trait': - selection.data.forEach(data => { - this.traits[data].value += 1; - this.traits[data].tierMarked = selection.tier === currentTier; - }); - break; - case 'hitPoint': - this.resources.hitPoints.max += selection.value; - break; - case 'stress': - this.resources.stress.max += selection.value; - break; - case 'evasion': - this.evasion += selection.value; - break; - case 'proficiency': - this.proficiency += selection.value; - break; - case 'experience': - Object.keys(this.experiences).forEach(key => { - const experience = this.experiences[key]; - experience.value += selection.value; - }); - break; + for (let selection of level.selections) { + switch (selection.type) { + case 'trait': + selection.data.forEach(data => { + this.traits[data].value += 1; + this.traits[data].tierMarked = selection.tier === currentTier; + }); + break; + case 'hitPoint': + this.resources.hitPoints.max += selection.value; + break; + case 'stress': + this.resources.stress.max += selection.value; + break; + case 'evasion': + this.evasion += selection.value; + break; + case 'proficiency': + this.proficiency += selection.value; + break; + case 'experience': + selection.data.forEach(id => { + const experience = this.experiences[id]; + if (experience) experience.value += selection.value; + }); + break; + } } } } diff --git a/module/data/fields/actorField.mjs b/module/data/fields/actorField.mjs index 5fde9394..b4c7f9b9 100644 --- a/module/data/fields/actorField.mjs +++ b/module/data/fields/actorField.mjs @@ -6,10 +6,15 @@ const attributeField = label => tierMarked: new fields.BooleanField({ initial: false }) }); -const resourceField = (max = 0, label, reverse = false) => +const resourceField = (max = 0, label, reverse = false, maxLabel) => new fields.SchemaField({ value: new fields.NumberField({ initial: 0, min: 0, integer: true, label }), - max: new fields.NumberField({ initial: max, integer: true }), + max: new fields.NumberField({ + initial: max, + integer: true, + label: + maxLabel ?? game.i18n.format('DAGGERHEART.GENERAL.maxWithThing', { thing: game.i18n.localize(label) }) + }), isReversed: new fields.BooleanField({ initial: reverse }) }); diff --git a/module/data/item/base.mjs b/module/data/item/base.mjs index 8b9adab4..1f55e878 100644 --- a/module/data/item/base.mjs +++ b/module/data/item/base.mjs @@ -125,6 +125,7 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { } if (this.actor && this.actor.type === 'character' && this.features) { + const featureUpdates = {}; for (let f of this.features) { const fBase = f.item ?? f; const feature = fBase.system ? fBase : await foundry.utils.fromUuid(fBase.uuid); @@ -134,14 +135,26 @@ export default class BaseDataItem extends foundry.abstract.TypeDataModel { system: { originItemType: this.parent.type, originId: data._id, - identifier: feature.identifier, - subType: feature.item ? feature.type : undefined + identifier: this.isMulticlass ? 'multiclass' : null } }, { inplace: false } ); - await this.actor.createEmbeddedDocuments('Item', [createData]); + const [doc] = await this.actor.createEmbeddedDocuments('Item', [createData]); + + if (!featureUpdates.features) + featureUpdates.features = this.features.map(x => (x.item ? { ...x, item: x.item.uuid } : x.uuid)); + + if (f.item) { + const existingFeature = featureUpdates.features.find(x => x.item === f.item.uuid); + existingFeature.item = doc.uuid; + } else { + const replaceIndex = featureUpdates.features.findIndex(x => x === f.uuid); + featureUpdates.features.splice(replaceIndex, 1, doc.uuid); + } } + + await this.updateSource(featureUpdates); } } diff --git a/module/data/item/class.mjs b/module/data/item/class.mjs index d64c77cc..bca6434c 100644 --- a/module/data/item/class.mjs +++ b/module/data/item/class.mjs @@ -62,16 +62,37 @@ export default class DHClass extends BaseDataItem { } async _preCreate(data, options, user) { - const allowed = await super._preCreate(data, options, user); - if (allowed === false) return; - if (this.actor?.type === 'character') { - const path = data.system.isMulticlass ? 'system.multiclass.value' : 'system.class.value'; - if (foundry.utils.getProperty(this.actor, path)) { - ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.classAlreadySelected')); - return false; + const levelupAuto = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).levelupAuto; + if (levelupAuto) { + const path = data.system.isMulticlass ? 'system.multiclass.value' : 'system.class.value'; + if (foundry.utils.getProperty(this.actor, path)) { + ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.classAlreadySelected')); + return false; + } + } else { + if (this.actor.system.class.value) { + if (this.actor.system.multiclass.value) { + ui.notifications.warn( + game.i18n.localize('DAGGERHEART.UI.Notifications.multiclassAlreadyPresent') + ); + return false; + } else { + const selectedDomain = + await game.system.api.applications.dialogs.MulticlassChoiceDialog.configure( + this.actor, + this + ); + if (!selectedDomain) return false; + + await this.updateSource({ isMulticlass: true, domains: [selectedDomain] }); + } + } } } + + const allowed = await super._preCreate(data, options, user); + if (allowed === false) return; } _onCreate(data, options, userId) { diff --git a/module/data/item/feature.mjs b/module/data/item/feature.mjs index 93a2c0bd..53e4d2d6 100644 --- a/module/data/item/feature.mjs +++ b/module/data/item/feature.mjs @@ -23,7 +23,6 @@ export default class DHFeature extends BaseDataItem { nullable: true, initial: null }), - subType: new fields.StringField({ choices: CONFIG.DH.ITEM.featureSubTypes, nullable: true, initial: null }), originId: new fields.StringField({ nullable: true, initial: null }), identifier: new fields.StringField() }; diff --git a/module/data/item/subclass.mjs b/module/data/item/subclass.mjs index ed6f8b45..11d42e86 100644 --- a/module/data/item/subclass.mjs +++ b/module/data/item/subclass.mjs @@ -41,27 +41,48 @@ export default class DHSubclass extends BaseDataItem { } async _preCreate(data, options, user) { - const allowed = await super._preCreate(data, options, user); - if (allowed === false) return; - if (this.actor?.type === 'character') { - const classData = this.actor.items.find( - x => x.type === 'class' && x.system.isMulticlass === data.system.isMulticlass - ); - const subclassData = this.actor.items.find( - x => x.type === 'subclass' && x.system.isMulticlass === data.system.isMulticlass - ); - if (!classData) { - ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.missingClass')); - return false; - } else if (subclassData) { - ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassAlreadySelected')); - return false; - } else if (classData.system.subclasses.every(x => x.uuid !== (data.uuid ?? `Item.${data._id}`))) { - ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassNotInClass')); - return false; + if (this.actor.system.class.subclass) { + if (this.actor.system.multiclass.subclass) { + ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassesAlreadyPresent')); + return false; + } else { + if (!this.actor.system.multiclass.value) { + ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.missingMulticlass')); + return false; + } + + if ( + this.actor.system.multiclass.value.system.subclasses.every( + x => x.uuid !== (data.uuid ?? `Item.${data._id}`) + ) + ) { + ui.notifications.error( + game.i18n.localize('DAGGERHEART.UI.Notifications.subclassNotInMulticlass') + ); + return false; + } + + await this.updateSource({ isMulticlass: true }); + } + } else { + if (!this.actor.system.class.value) { + ui.notifications.warn(game.i18n.localize('DAGGERHEART.UI.Notifications.missingClass')); + return false; + } + if ( + this.actor.system.class.value.system.subclasses.every( + x => x.uuid !== (data.uuid ?? `Item.${data._id}`) + ) + ) { + ui.notifications.error(game.i18n.localize('DAGGERHEART.UI.Notifications.subclassNotInClass')); + return false; + } } } + + const allowed = await super._preCreate(data, options, user); + if (allowed === false) return; } _onCreate(data, options, userId) { diff --git a/module/data/settings/Automation.mjs b/module/data/settings/Automation.mjs index d4d6a2a7..66e685d0 100644 --- a/module/data/settings/Automation.mjs +++ b/module/data/settings/Automation.mjs @@ -14,6 +14,11 @@ export default class DhAutomation extends foundry.abstract.DataModel { label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.hopeFear.players.label' }) }), + levelupAuto: new fields.BooleanField({ + required: true, + initial: true, + label: 'DAGGERHEART.SETTINGS.Automation.FIELDS.levelupAuto.label' + }), actionPoints: new fields.BooleanField({ required: true, initial: false, diff --git a/module/documents/actor.mjs b/module/documents/actor.mjs index d7760637..dad36ec7 100644 --- a/module/documents/actor.mjs +++ b/module/documents/actor.mjs @@ -172,26 +172,30 @@ export default class DhpActor extends Actor { } async levelUp(levelupData) { + const levelupAuto = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).levelupAuto; + const levelups = {}; for (var levelKey of Object.keys(levelupData)) { const level = levelupData[levelKey]; - for (var experienceKey in level.achievements.experiences) { - const experience = level.achievements.experiences[experienceKey]; - await this.update({ - [`system.experiences.${experienceKey}`]: { - name: experience.name, - value: experience.modifier - } - }); - - if (this.system.companion) { - await this.system.companion.update({ + if (levelupAuto) { + for (var experienceKey in level.achievements.experiences) { + const experience = level.achievements.experiences[experienceKey]; + await this.update({ [`system.experiences.${experienceKey}`]: { - name: '', + name: experience.name, value: experience.modifier } }); + + if (this.system.companion) { + await this.system.companion.update({ + [`system.experiences.${experienceKey}`]: { + name: '', + value: experience.modifier + } + }); + } } } @@ -250,74 +254,86 @@ export default class DhpActor extends Actor { } for (var addition of featureAdditions) { - for (var featureData of addition.features) { - const feature = new DHFeature({ - ...featureData, - description: game.i18n.localize(featureData.description) - }); - - const document = featureData.toPartner && this.system.partner ? this.system.partner : this; - const embeddedItem = await document.createEmbeddedDocuments('Item', [ - { + if (levelupAuto) { + for (var featureData of addition.features) { + const feature = new DHFeature({ ...featureData, - name: game.i18n.localize(featureData.name), - type: 'feature', - system: feature - } - ]); - const newFeature = { - onPartner: Boolean(featureData.toPartner && this.system.partner), - id: embeddedItem[0].id - }; - addition.checkbox.features = !addition.checkbox.features - ? [newFeature] - : [...addition.checkbox.features, newFeature]; + description: game.i18n.localize(featureData.description) + }); + + const document = featureData.toPartner && this.system.partner ? this.system.partner : this; + const embeddedItem = await document.createEmbeddedDocuments('Item', [ + { + ...featureData, + name: game.i18n.localize(featureData.name), + type: 'feature', + system: feature + } + ]); + const newFeature = { + onPartner: Boolean(featureData.toPartner && this.system.partner), + id: embeddedItem[0].id + }; + addition.checkbox.features = !addition.checkbox.features + ? [newFeature] + : [...addition.checkbox.features, newFeature]; + } } selections.push(addition.checkbox); } if (multiclass) { - const subclassItem = await foundry.utils.fromUuid(multiclass.secondaryData.subclass); - const subclassData = subclassItem.toObject(); - const multiclassItem = await foundry.utils.fromUuid(multiclass.data[0]); - const multiclassData = multiclassItem.toObject(); + if (levelupAuto) { + const subclassItem = await foundry.utils.fromUuid(multiclass.secondaryData.subclass); + const subclassData = subclassItem.toObject(); + const multiclassItem = await foundry.utils.fromUuid(multiclass.data[0]); + const multiclassData = multiclassItem.toObject(); - const embeddedItem = await this.createEmbeddedDocuments('Item', [ - { - ...multiclassData, - system: { - ...multiclassData.system, - domains: [multiclass.secondaryData.domain], - isMulticlass: true + const embeddedItem = await this.createEmbeddedDocuments('Item', [ + { + ...multiclassData, + system: { + ...multiclassData.system, + domains: [multiclass.secondaryData.domain], + isMulticlass: true + } } - } - ]); + ]); - await this.createEmbeddedDocuments('Item', [ - { - ...subclassData, - system: { - ...subclassData.system, - isMulticlass: true + await this.createEmbeddedDocuments('Item', [ + { + ...subclassData, + system: { + ...subclassData.system, + isMulticlass: true + } } - } - ]); - selections.push({ ...multiclass, itemUuid: embeddedItem[0].uuid }); + ]); + selections.push({ ...multiclass, itemUuid: embeddedItem[0].uuid }); + } else { + selections.push({ ...multiclass }); + } } for (var domainCard of domainCards) { - const item = await foundry.utils.fromUuid(domainCard.data[0]); - const embeddedItem = await this.createEmbeddedDocuments('Item', [item.toObject()]); - selections.push({ ...domainCard, itemUuid: embeddedItem[0].uuid }); + if (levelupAuto) { + const item = await foundry.utils.fromUuid(domainCard.data[0]); + const embeddedItem = await this.createEmbeddedDocuments('Item', [item.toObject()]); + selections.push({ ...domainCard, itemUuid: embeddedItem[0].uuid }); + } else { + selections.push({ ...domainCard }); + } } const achievementDomainCards = []; - for (var card of Object.values(level.achievements.domainCards)) { - const item = await foundry.utils.fromUuid(card.uuid); - const embeddedItem = await this.createEmbeddedDocuments('Item', [item.toObject()]); - card.itemUuid = embeddedItem[0].uuid; - achievementDomainCards.push(card); + if (levelupAuto) { + for (var card of Object.values(level.achievements.domainCards)) { + const item = await foundry.utils.fromUuid(card.uuid); + const embeddedItem = await this.createEmbeddedDocuments('Item', [item.toObject()]); + card.itemUuid = embeddedItem[0].uuid; + achievementDomainCards.push(card); + } } if (subclassFeatureState.class) { diff --git a/styles/less/dialog/character-creation/selections-container.less b/styles/less/dialog/character-creation/selections-container.less index 0c13fae9..9f81f93b 100644 --- a/styles/less/dialog/character-creation/selections-container.less +++ b/styles/less/dialog/character-creation/selections-container.less @@ -263,24 +263,36 @@ gap: 8px; .experience-container { - position: relative; display: flex; - align-items: center; + flex-direction: column; + gap: 5px; - .experience-description { - border-color: light-dark(@dark-blue, @golden); - padding-right: 24px; - } - - .experience-value { - position: absolute; - right: 0; - width: 22px; - border-left: 1px solid light-dark(@dark-blue, @golden); - height: 100%; + .experience-inner-container { + position: relative; display: flex; align-items: center; - justify-content: center; + + .experience-description { + border-color: light-dark(@dark-blue, @golden); + padding-right: 24px; + } + + .experience-value { + position: absolute; + right: 0; + width: 22px; + border-left: 1px solid light-dark(@dark-blue, @golden); + height: 100%; + display: flex; + align-items: center; + justify-content: center; + } + } + + textarea { + width: 100%; + resize: none; + border-color: light-dark(@dark-blue, @golden); } } } diff --git a/styles/less/dialog/index.less b/styles/less/dialog/index.less index 496d09e9..c6a16527 100644 --- a/styles/less/dialog/index.less +++ b/styles/less/dialog/index.less @@ -24,3 +24,5 @@ @import './dice-roll/roll-selection.less'; @import './damage-reduction/damage-reduction-container.less'; @import './damage-reduction/sheets.less'; + +@import './multiclass-choice/sheet.less'; diff --git a/styles/less/dialog/level-up/selections-container.less b/styles/less/dialog/level-up/selections-container.less index 10d61ed6..552f7c86 100644 --- a/styles/less/dialog/level-up/selections-container.less +++ b/styles/less/dialog/level-up/selections-container.less @@ -104,4 +104,10 @@ } } } + + .levelup-footer { + display: flex; + gap: 8px; + margin-top: 8px; + } } diff --git a/styles/less/dialog/multiclass-choice/sheet.less b/styles/less/dialog/multiclass-choice/sheet.less new file mode 100644 index 00000000..93a8540b --- /dev/null +++ b/styles/less/dialog/multiclass-choice/sheet.less @@ -0,0 +1,76 @@ +.theme-light .daggerheart.dh-style.dialog.multiclass-choice { + .multiclass-container .domain-choice-container button label { + background-image: url(../assets/parchments/dh-parchment-light.png); + } +} + +.daggerheart.dh-style.dialog.multiclass-choice { + .multiclass-container { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + + .multiclass-explanation { + margin-top: 0; + font-style: italic; + } + + .multiclass-domains-container { + display: flex; + gap: 16px; + + .domain-choice-container { + display: flex; + flex-direction: column; + align-items: center; + gap: 8px; + + button { + position: relative; + display: flex; + justify-content: center; + width: 120px; + height: 120px; + background: light-dark(@dark-blue-10, @golden-10); + color: light-dark(@dark-blue, @golden); + + &.selected { + background: light-dark(@dark-blue-40, @golden-40); + } + + label { + position: absolute; + top: 4px; + font-family: @font-body; + border-radius: 6px; + border: 2px solid; + padding: 0 2px; + background-image: url(../assets/parchments/dh-parchment-dark.png); + color: light-dark(@dark, @beige); + } + } + + .domain-description { + width: 240px; + display: flex; + flex-wrap: wrap; + font-style: italic; + border: 1px solid light-dark(@dark-blue, @golden); + border-radius: 6px; + padding: 4px 4px; + } + } + } + + footer { + width: 100%; + display: flex; + gap: 8px; + + button { + flex: 1; + } + } + } +} diff --git a/styles/less/global/elements.less b/styles/less/global/elements.less index 72723f79..5dea5e11 100755 --- a/styles/less/global/elements.less +++ b/styles/less/global/elements.less @@ -5,22 +5,26 @@ border: 1px solid light-dark(@dark-blue, @golden); input[type='text'], - input[type='number'] { + input[type='number'], + textarea { background: light-dark(transparent, transparent); border-radius: 6px; box-shadow: 0 4px 30px @soft-shadow; backdrop-filter: blur(9.5px); -webkit-backdrop-filter: blur(9.5px); - outline: none; + outline: 2px solid transparent; color: light-dark(@dark-blue, @golden); border: 1px solid light-dark(@dark, @beige); + transition: all 0.3s ease; &::placeholder { color: light-dark(@dark-40, @beige-50); } + &:hover, &:hover[type='text'], &:hover[type='number'], + &:focus, &:focus[type='text'], &:focus[type='number'] { background: light-dark(@soft-shadow, @semi-transparent-dark-blue); @@ -70,6 +74,13 @@ } } + textarea { + color: light-dark(@dark, @beige); + font-family: @font-body; + scrollbar-width: thin; + scrollbar-color: light-dark(@dark-blue, @golden) transparent; + } + button { background: light-dark(transparent, @golden); border: 1px solid light-dark(@dark-blue, @dark-blue); @@ -206,6 +217,10 @@ } } + &.inactive { + opacity: 0.5; + } + &.fit-height { height: 95%; } diff --git a/styles/less/sheets-settings/adversary-settings/experiences.less b/styles/less/sheets-settings/adversary-settings/experiences.less index 05595ed4..dab261a6 100644 --- a/styles/less/sheets-settings/adversary-settings/experiences.less +++ b/styles/less/sheets-settings/adversary-settings/experiences.less @@ -12,18 +12,33 @@ .experience-list { display: flex; flex-direction: column; - gap: 10px; + gap: 15px; + } - .experience-item { + .experience-item { + display: flex; + flex-direction: column; + gap: 5px; + + .experience-inner-item { display: grid; grid-template-columns: 3fr 1fr 30px; align-items: center; gap: 5px; + &.no-controls { + grid-template-columns: 3fr 1fr; + } + a { text-align: center; } } + + textarea { + width: 100%; + resize: none; + } } } } diff --git a/styles/less/sheets-settings/character-settings/sheet.less b/styles/less/sheets-settings/character-settings/sheet.less new file mode 100644 index 00000000..b563f2f4 --- /dev/null +++ b/styles/less/sheets-settings/character-settings/sheet.less @@ -0,0 +1,36 @@ +.application.daggerheart.dh-style.dialog { + .tab.details { + .traits-inner-container { + width: 100%; + display: flex; + align-items: center; + justify-content: space-evenly; + gap: 8px; + + .trait-container { + width: 60px; + height: 60px; + background: url(../assets/svg/trait-shield.svg) no-repeat; + display: flex; + flex-direction: column; + align-items: center; + + div { + filter: drop-shadow(0 0 3px black); + text-shadow: 0 0 3px black; + font-family: @font-body; + font-size: 12px; + } + + input { + text-align: center; + width: 32px; + height: 24px; + position: relative; + top: 2px; + padding: 0; + } + } + } + } +} diff --git a/styles/less/sheets-settings/index.less b/styles/less/sheets-settings/index.less index e7818326..f575f848 100644 --- a/styles/less/sheets-settings/index.less +++ b/styles/less/sheets-settings/index.less @@ -2,6 +2,7 @@ @import './adversary-settings/sheet.less'; @import './adversary-settings/experiences.less'; @import './adversary-settings/features.less'; +@import './character-settings/sheet.less'; @import './environment-settings/features.less'; @import './environment-settings/adversaries.less'; diff --git a/styles/less/sheets/actors/character/header.less b/styles/less/sheets/actors/character/header.less index f9511207..d25d4ebf 100644 --- a/styles/less/sheets/actors/character/header.less +++ b/styles/less/sheets/actors/character/header.less @@ -4,12 +4,24 @@ // Theme header backgrounds .appTheme({ - .character-header-sheet .trait { - background: url(../assets/svg/trait-shield.svg) no-repeat; + .character-header-sheet { + .trait { + background: url(../assets/svg/trait-shield.svg) no-repeat; + } + + .character-row .domains-section img { + filter: invert(88%) sepia(98%) saturate(1784%) hue-rotate(311deg) brightness(104%) contrast(91%); + } } }, { - .character-header-sheet .trait { + .character-header-sheet { + .trait { background: url('../assets/svg/trait-shield-light.svg') no-repeat; + } + + .character-row .domains-section img { + filter: invert(87%) sepia(15%) saturate(343%) hue-rotate(333deg) brightness(110%) contrast(87%); + } } }); @@ -88,6 +100,11 @@ font-size: 12px; color: light-dark(@dark-blue, @golden); + .missing-header-feature { + opacity: 0.5; + text-decoration: line-through; + } + span { padding: 3px; border-radius: 3px; @@ -107,14 +124,27 @@ .character-row { display: flex; - gap: 20px; align-items: center; - justify-content: space-between; padding: 0; margin-bottom: 15px; + .hope-section { + margin-right: 20px; + } + + .downtime-section { + display: flex; + align-items: center; + gap: 2px; + margin-left: auto; + + button { + flex: 1; + } + } + .hope-section, - .threshold-section { + .domains-section { position: relative; display: flex; gap: 10px; @@ -132,21 +162,24 @@ font-weight: bold; text-transform: uppercase; color: light-dark(@dark-blue, @golden); - - &.threshold-value { - color: light-dark(@dark, @beige); - } } - .threshold-legend { - position: absolute; - bottom: -21px; - color: light-dark(@golden, @dark-blue); - background-color: light-dark(@dark-blue, @golden); - padding: 3px; - justify-self: anchor-center; - border-radius: 0 0 3px 3px; - text-transform: capitalize; + .domain { + display: flex; + align-items: center; + gap: 5px; + + .label { + font-size: 14px; + font-weight: bold; + text-transform: uppercase; + color: light-dark(@dark-blue, @golden); + } + + img { + height: 20px; + width: 20px; + } } .hope-value { @@ -193,14 +226,5 @@ } } } - - .character-downtime-container { - display: flex; - gap: 2px; - - button { - flex: 1; - } - } } } diff --git a/styles/less/sheets/actors/character/sheet.less b/styles/less/sheets/actors/character/sheet.less index 60fc6835..421b102f 100644 --- a/styles/less/sheets/actors/character/sheet.less +++ b/styles/less/sheets/actors/character/sheet.less @@ -18,6 +18,7 @@ } .character-header-sheet { + position: relative; grid-row: 1; grid-column: 2; } diff --git a/styles/less/sheets/actors/character/sidebar.less b/styles/less/sheets/actors/character/sidebar.less index 7cfeffac..61f8cc70 100644 --- a/styles/less/sheets/actors/character/sidebar.less +++ b/styles/less/sheets/actors/character/sidebar.less @@ -55,6 +55,62 @@ } } } + + .icons-list { + position: absolute; + display: flex; + flex-direction: column; + gap: 5px; + align-items: end; + justify-content: center; + top: 45px; + right: 10px; + + .spellcast-icon { + display: flex; + align-items: center; + justify-content: end; + text-align: center; + padding-right: 8px; + max-width: 50px; + height: 50px; + font-size: 1.2rem; + background: light-dark(@dark-blue-60, @dark-golden-80); + backdrop-filter: blur(8px); + border: 4px double light-dark(@beige, @golden); + color: light-dark(@beige, @golden); + border-radius: 999px; + transition: all 0.3s ease; + + .spellcast-label { + font-size: 14px; + opacity: 0; + margin-right: 0.3rem; + transition: all 0.3s ease; + } + + i { + height: 24px; + width: 24px; + align-content: center; + margin-right: 3px; + } + + &:not(.no-label):hover { + max-width: 300px; + padding: 0 10px; + border-radius: 60px; + + .spellcast-label { + opacity: 1; + } + + i { + margin-right: 0px; + } + } + } + } } .info-section { @@ -62,12 +118,13 @@ display: flex; flex-direction: column; top: -20px; - gap: 30px; + gap: 10px; margin-bottom: -16px; .resources-section { display: flex; justify-content: space-evenly; + margin-bottom: 20px; .status-bar { display: flex; @@ -345,6 +402,32 @@ } } } + + .threshold-section { + position: relative; + display: flex; + align-self: center; + gap: 10px; + background-color: light-dark(transparent, @dark-blue); + color: light-dark(@dark-blue, @golden); + padding: 5px 10px; + border: 1px solid light-dark(@dark-blue, @golden); + border-radius: 6px; + align-items: center; + width: fit-content; + height: 30px; + + h4 { + font-size: 14px; + font-weight: bold; + text-transform: uppercase; + color: light-dark(@dark-blue, @golden); + + &.threshold-value { + color: light-dark(@dark, @beige); + } + } + } } .items-sidebar-list { @@ -360,7 +443,7 @@ .shortcut-items-section { overflow-y: hidden; max-height: 56%; - padding-top: 16px; + padding-top: 10px; padding-bottom: 20px; mask-image: linear-gradient(0deg, transparent 0%, black 5%, black 95%, transparent 100%); @@ -393,35 +476,24 @@ .experience-row { display: flex; - gap: 5px; width: 250px; align-items: center; justify-content: space-between; - input[type='text'] { - height: 32px; - width: 180px; - border: 1px solid transparent; - outline: 2px solid transparent; + .experience-value { + height: 25px; + width: 35px; font-size: 14px; font-family: @font-body; - transition: all 0.3s ease; color: light-dark(@dark, @beige); - - &:hover { - outline: 2px solid light-dark(@dark, @beige); - } + align-content: center; + text-align: center; + margin-right: 5px; } - } - .experience-value { - height: 25px; - width: 35px; - font-size: 14px; - font-family: @font-body; - color: light-dark(@dark, @beige); - align-content: center; - text-align: center; + .controls { + margin-left: auto; + } } } } diff --git a/templates/characterCreation/setupTabs/experience.hbs b/templates/characterCreation/setupTabs/experience.hbs index 46c5b754..4b70b1b9 100644 --- a/templates/characterCreation/setupTabs/experience.hbs +++ b/templates/characterCreation/setupTabs/experience.hbs @@ -9,8 +9,12 @@
    {{#each experience.values as |experience id|}}
    - -
    {{numberFormat this.value sign=true}}
    +
    + +
    {{numberFormat this.value sign=true}}
    +
    + +
    {{/each}}
    diff --git a/templates/dialogs/multiclassChoice.hbs b/templates/dialogs/multiclassChoice.hbs new file mode 100644 index 00000000..3c89ff1a --- /dev/null +++ b/templates/dialogs/multiclassChoice.hbs @@ -0,0 +1,23 @@ +
    +
    +
    {{localize "DAGGERHEART.APPLICATIONS.MulticlassChoice.explanation" class=multiclass.parent.name }}
    +
    {{localize "DAGGERHEART.APPLICATIONS.MulticlassChoice.selectDomainPrompt" }}
    + +
    + {{#each domainChoices as | choice |}} +
    + +
    {{choice.description}}
    +
    + {{/each}} +
    + +
    + + +
    +
    +
    \ No newline at end of file diff --git a/templates/levelup/tabs/footer.hbs b/templates/levelup/tabs/footer.hbs new file mode 100644 index 00000000..85c49a91 --- /dev/null +++ b/templates/levelup/tabs/footer.hbs @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/templates/levelup/tabs/tab-navigation.hbs b/templates/levelup/tabs/tab-navigation.hbs index 82aacf1e..990e909d 100644 --- a/templates/levelup/tabs/tab-navigation.hbs +++ b/templates/levelup/tabs/tab-navigation.hbs @@ -1,40 +1,44 @@
    - -
    - {{#if this.showTabs}} - - {{/if}} -
    - {{#if this.navigate.previous.fromSummary}} - - {{else}} - {{#if (not this.navigate.previous.disabled)}} - - {{/if}} + {{#if levelupAuto}} + +
    + {{#if this.showTabs}} + {{/if}} - {{#if this.navigate.next.show}} - {{#if this.navigate.next.toSummary}} - - {{else}} - - {{/if}} - {{else}} -
    + {{#if this.levelupAuto}} +
    + {{#if this.navigate.previous.fromSummary}} + + {{else}} + {{#if (not this.navigate.previous.disabled)}} + + {{/if}} + {{/if}} + {{#if this.navigate.next.show}} + {{#if this.navigate.next.toSummary}} + + {{else}} + + {{/if}} + {{else}} +
    + {{/if}} +
    {{/if}}
    -
    - + + {{/if}}
    \ No newline at end of file diff --git a/templates/settings/automation-settings.hbs b/templates/settings/automation-settings.hbs index a02d6f97..efc25221 100644 --- a/templates/settings/automation-settings.hbs +++ b/templates/settings/automation-settings.hbs @@ -11,6 +11,7 @@ {{formGroup settingFields.schema.fields.actionPoints value=settingFields._source.actionPoints localize=true}} {{formGroup settingFields.schema.fields.hordeDamage value=settingFields._source.hordeDamage localize=true}} {{formGroup settingFields.schema.fields.effects.fields.rangeDependent value=settingFields._source.effects.rangeDependent localize=true}} + {{formGroup settingFields.schema.fields.levelupAuto value=settingFields._source.levelupAuto localize=true}}
    + +
    + {{localize tabs.experiences.label}} +
      + {{#each document._source.system.experiences as |experience key|}} +
    • +
      + + + {{#unless @root.levelupAuto}}{{/unless}} +
      + +
    • + {{/each}} +
    +
    + \ No newline at end of file diff --git a/templates/sheets-settings/character-settings/header.hbs b/templates/sheets-settings/character-settings/header.hbs new file mode 100644 index 00000000..c9cb60fe --- /dev/null +++ b/templates/sheets-settings/character-settings/header.hbs @@ -0,0 +1,3 @@ +
    +

    {{document.name}}

    +
    \ No newline at end of file diff --git a/templates/sheets-settings/companion-settings/attack.hbs b/templates/sheets-settings/companion-settings/attack.hbs index 359536b6..bebe40b3 100644 --- a/templates/sheets-settings/companion-settings/attack.hbs +++ b/templates/sheets-settings/companion-settings/attack.hbs @@ -18,4 +18,5 @@ {{/if}} {{/if}} + {{> 'systems/daggerheart/templates/actionTypes/damage.hbs' fields=systemFields.attack.fields.damage.fields.parts.element.fields source=document.system.attack.damage path="system.attack."}} \ No newline at end of file diff --git a/templates/sheets-settings/companion-settings/experiences.hbs b/templates/sheets-settings/companion-settings/experiences.hbs index a484c25b..9aebc2c3 100644 --- a/templates/sheets-settings/companion-settings/experiences.hbs +++ b/templates/sheets-settings/companion-settings/experiences.hbs @@ -3,16 +3,24 @@ data-tab='{{tabs.experiences.id}}' data-group='{{tabs.experiences.group}}' > + +
    {{localize tabs.experiences.label}}
      - {{#each document.system.experiences as |experience key|}} + {{#each document._source.system.experiences as |experience key|}}
    • - - +
      + + + {{#unless @root.levelupAuto}}{{/unless}} +
      + +
    • {{/each}}
    - \ No newline at end of file diff --git a/templates/sheets/actors/adversary/header.hbs b/templates/sheets/actors/adversary/header.hbs index a7cfa3a6..7adc1583 100644 --- a/templates/sheets/actors/adversary/header.hbs +++ b/templates/sheets/actors/adversary/header.hbs @@ -36,7 +36,7 @@
    {{> 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs'}} -
    diff --git a/templates/sheets/actors/adversary/sidebar.hbs b/templates/sheets/actors/adversary/sidebar.hbs index da43aa3f..55f8395e 100644 --- a/templates/sheets/actors/adversary/sidebar.hbs +++ b/templates/sheets/actors/adversary/sidebar.hbs @@ -98,17 +98,17 @@
    {{#each source.system.experiences as |experience id|}} -
    -
    - +{{experience.value}} +
    +
    + +{{experience.value}} +
    + {{experience.name}} +
    + + + +
    - {{experience.name}} -
    - - - -
    -
    {{/each}}
    diff --git a/templates/sheets/actors/character/header.hbs b/templates/sheets/actors/character/header.hbs index 5ab8fdd0..52991cb8 100644 --- a/templates/sheets/actors/character/header.hbs +++ b/templates/sheets/actors/character/header.hbs @@ -18,7 +18,7 @@ class="level-button glow" data-tooltip="{{#if document.system.needsCharacterSetup}}{{localize "DAGGERHEART.APPLICATIONS.CharacterCreation.buttonTitle"}}{{else}}{{localize "DAGGERHEART.ACTORS.Character.levelUp"}}{{/if}}" data-action="levelManagement" > - + {{/if}} {{localize 'DAGGERHEART.GENERAL.level'}} @@ -31,25 +31,25 @@ {{#if document.system.class.value}} {{document.system.class.value.name}} {{else}} - {{localize 'TYPES.Item.class'}} + {{localize 'TYPES.Item.class'}} {{/if}} {{#if document.system.class.subclass}} {{document.system.class.subclass.name}} {{else}} - {{localize 'TYPES.Item.subclass'}} + {{localize 'TYPES.Item.subclass'}} {{/if}} {{#if document.system.community}} {{document.system.community.name}} {{else}} - {{localize 'TYPES.Item.community'}} + {{localize 'TYPES.Item.community'}} {{/if}} {{#if document.system.ancestry}} {{document.system.ancestry.name}} {{else}} - {{localize 'TYPES.Item.ancestry'}} + {{localize 'TYPES.Item.ancestry'}} {{/if}}
    @@ -64,7 +64,7 @@ {{#if document.system.multiclass.subclass}} {{document.system.multiclass.subclass.name}} {{else}} - {{localize 'TYPES.Item.subclass'}} + {{localize 'TYPES.Item.subclass'}} {{/if}}
  • {{/if}} @@ -85,12 +85,23 @@ {{/times}} -
    -

    {{localize "DAGGERHEART.GENERAL.DamageThresholds.minor"}}

    -

    {{document.system.damageThresholds.major}}

    -

    {{localize "DAGGERHEART.GENERAL.DamageThresholds.major"}}

    -

    {{document.system.damageThresholds.severe}}

    -

    {{localize "DAGGERHEART.GENERAL.DamageThresholds.severe"}}

    + {{#if document.system.class.value}} +
    + {{#each document.system.class.value.system.domains as |domain|}} +
    + {{localize (concat 'DAGGERHEART.GENERAL.Domain.' domain '.label')}} + +
    + {{/each}} +
    + {{/if}} +
    + +
    @@ -117,13 +128,6 @@ {{#> 'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs'}} -
    - - -
    + {{/'systems/daggerheart/templates/sheets/global/tabs/tab-navigation.hbs'}} \ No newline at end of file diff --git a/templates/sheets/actors/character/sidebar.hbs b/templates/sheets/actors/character/sidebar.hbs index ffe3eb5e..08c211ca 100644 --- a/templates/sheets/actors/character/sidebar.hbs +++ b/templates/sheets/actors/character/sidebar.hbs @@ -1,6 +1,17 @@