Aliharu / Foundry-Ex3

Foundry module for Exalted Third Edition
MIT License
7 stars 11 forks source link

NPC Importer Problems #40

Closed Pentazer closed 8 months ago

Pentazer commented 8 months ago

I've been using the quick character to import entities from the Hundred Devil's Night Parade book and for the most part, it seems to work well. However it seems to break on charms all the time. It will only import the first charm, then cram all the remaining stuff into that entry. Here's the format:

Fang-Blossom Description A few generations ago, a Dragon-Blooded sailor fancied a lovely species of flowering plant native to the West. Ignoring the islanders’ warnings, she uprooted the bulbs of these beautiful scandent vines and returned home to the Blessed Isle. The invasive species flourished there with alarming vitality. Emboldened by the Center’s rich soil, these fang-blossoms — as the Dynast eventually dubbed them — multiplied in droves: first one seedling from each plant, then five, then twenty, and eventually they overran the walls of her estate and germinated in the wild. The mystery of pets gone missing without explanation dogged the prefecture for months, but no one blamed the plants until the grisly devouring of a visiting foreign dignitary prompted a political feud that persists to this day. The fang-blossom’s flowers are wide and circular, displaying a riot of dazzling colours. Each plant begins as a yellow-green root roughly the size of a watermelon, then develops a thick stem, countless tendrils, and large blooms. Curated, it maintains a reasonable size for a garden plant and limits its carnivorous tendencies to wild animals. Left to feed and sprout freely, fang-blossoms develop dozens of thick vines and can swallow an unfortunate passerby whole. Storyteller Tactics Fang-blossoms keep their maws closed and pretend to be nonthreatening until prey approaches within reach of their tendrils. They attack by grappling victims and dragging them into their flower-maws, but a fang-blossom keeps two vines free to use Defend Other to protect the core unless it’s desperate. Assign a starting number of vines equal to twice the number of enemies present. Fang-blossoms sense weakness, targeting non-combatants first, then the target standing closest to a flower or wearing the least armour. Essence: 2; Willpower: 5; Join Battle: 7 dice Personal Motes: 60 Health Levels: –0/–1x4/–2x3/–4/Incap. Actions: Climb/Slither (vines only): 9 dice; Feats of Strength: 8 dice (vines only; may attempt Strength 5 feats); Senses: 5 dice; Disguise/Stealth: 7 dice (see Camouflage) Resolve 4, Guile 4 COMBAT Attack (Bite): 11 dice (Damage 12, minimum 3) Attack (Vine grapple): 10 dice (12 to control) Combat Movement: 8 dice (vines only) Evasion 1, Parry 6 Soak/Hardness: 6/0

SPECIAL ABILITIES Needle-Tooth Bite: A fang-blossom’s carnivorous maw opens to reveal rings of sharpened teeth while its mass of tendrils immobilizes its prey. When it deals 5+ damage with a withering bite attack, it may forgo receiving any Initiative to instead make a reflexive grapple gambit against that enemy, without an Initiative roll or cost. Each Initiative point it would have gained instead adds one die to the control roll.

MERITS Camouflage: Whenever a fang-blossom’s maws are closed and it poses as an ordinary flowering plant, double 9s on Disguise/Stealth rolls. Tendril-Sprouting Nightmare: Each fang-blossom has a core plant with bulb, stem, and one blossom maw to start with. The core has the traits listed above and is immobile. Its vines can slither out to short range and perform actions as noted above; each vine acts as a separate target with its own health track that can defend the core, and the plant cannot become Incapacitated until all of its vines have been severed by depleting their health tracks. Each vine has the same traits as the core plant except that it has five –0 health levels instead of the core’s track.

OFFENSIVE CHARMS Swallow Whole (15m; Reflexive; Decisive-only; Instant; Essence 2): After dealing 3+ levels of damage to a grappled enemy with a decisive savage attack, the fang-blossom may swallow them alive as long as they’re within close range of a flower-maw. Within the plant’s stem, they contend with its digestive acids, an environmental hazard with damage 3L/round and difficulty 5. A swallowed enemy may attempt to cut their way free with a difficulty 5 gambit, but cannot otherwise attack it from inside without a relevant stunt. Even then, they contend with its full defenses. The fang-blossom may swallow a number of human-sized characters at a time equal to the number of flower-maws it has.

MISCELLANEOUS CHARMS Infinite Reaching Vines (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): For five motes and two Initiative, the plant sprouts an additional vine. For ten motes and four Initiative, the plant grows another flower-maw and becomes larger.

And it looks like everything got imported, however... image See how Swallow Whole has Miscellaneous Charms and the entry for the charm stuck in it? this seems to happen on all entries. From what I can see, it looks like the format I'm using on the importer matches the example.

Pentazer commented 8 months ago

Oh and it looks like Merits is also not working right. It appears to import only 1 merit and no description for it, missing other merits in the list.

Aliharu commented 8 months ago

Just tested it and it seemed to work fine.

For the mertis you need a space between merits. I don't know why the charms are messing up on your end

Pentazer commented 8 months ago

I got the merits working right, but yeah. I copied the misc charm up to offensive and put a space between them:

MERITS Camouflage: Whenever a fang-blossom’s maws are closed and it poses as an ordinary flowering plant, double 9s on Disguise/Stealth rolls.

Tendril-Sprouting Nightmare: Each fang-blossom has a core plant with bulb, stem, and one blossom maw to start with. The core has the traits listed above and is immobile. Its vines can slither out to short range and perform actions as noted above; each vine acts as a separate target with its own health track that can defend the core, and the plant cannot become Incapacitated until all of its vines have been severed by depleting their health tracks. Each vine has the same traits as the core plant except that it has five –0 health levels instead of the core’s track.

OFFENSIVE CHARMS Swallow Whole (15m; Reflexive; Decisive-only; Instant; Essence 2): After dealing 3+ levels of damage to a grappled enemy with a decisive savage attack, the fang-blossom may swallow them alive as long as they’re within close range of a flower-maw. Within the plant’s stem, they contend with its digestive acids, an environmental hazard with damage 3L/round and difficulty 5. A swallowed enemy may attempt to cut their way free with a difficulty 5 gambit, but cannot otherwise attack it from inside without a relevant stunt. Even then, they contend with its full defenses. The fang-blossom may swallow a number of human-sized characters at a time equal to the number of flower-maws it has.

Infinite Reaching Vines (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): For five motes and two Initiative, the plant sprouts an additional vine. For ten motes and four Initiative, the plant grows another flower-maw and becomes larger.

Infinite reaching vines still shows up inside Swallow Whole. Despite the placement. As a further test, I created an entirely new test game with no modules loaded, only the rule system and it replicated the exact same outcome. So it's definitely not any other mods.

Pentazer commented 8 months ago

image

Pentazer commented 8 months ago

Tried it on the latest update of 2.5.8 and discovered some weird stuff going on. image

So, Test Monster 1 is still rolling multiple charms into the prior line, if the charm description is brief. As you can see charm 2 test is appearing in charm 1's description. Here is test monster 1 data:

Test Monster
Description 
Essence: 2; Willpower: 5; Join Battle: 7 dice
Personal Motes: 60
Health Levels: –0/–1x4/–2x3/–4/Incap.
Actions: Climb/Slither (vines only): 9 dice; Feats of
Strength: 8 dice (vines only; may attempt Strength 5
feats); Senses: 5 dice; Disguise/Stealth: 7 dice (see
Camouflage)
Resolve 4, Guile 4
COMBAT
Attack (Bite): 11 dice (Damage 12, minimum 3)
Attack (Vine grapple): 10 dice (12 to control)
Combat Movement: 8 dice (vines only)
Evasion 1, Parry 6
Soak/Hardness: 6/0

SPECIAL ABILITIES
Test Ability 1: Does stuff

Test Ability 2: Does stuff

MERITS
Test Merit 1: Does stuff

Test Merit 2: Does stuff

OFFENSIVE CHARMS
Test Offensive Charm 1 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuff

Test Offensive Charm 2 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuff

MISCELLANEOUS CHARMS
Test Misc Charm 1 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuff

Test Misc Charm 2 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuff

However If I generate a ton of text, it seems to work. Here is test monster 2 data:

Test Monster 2
Description 
Essence: 2; Willpower: 5; Join Battle: 7 dice
Personal Motes: 60
Health Levels: –0/–1x4/–2x3/–4/Incap.
Actions: Climb/Slither (vines only): 9 dice; Feats of
Strength: 8 dice (vines only; may attempt Strength 5
feats); Senses: 5 dice; Disguise/Stealth: 7 dice (see
Camouflage)
Resolve 4, Guile 4
COMBAT
Attack (Bite): 11 dice (Damage 12, minimum 3)
Attack (Vine grapple): 10 dice (12 to control)
Combat Movement: 8 dice (vines only)
Evasion 1, Parry 6
Soak/Hardness: 6/0

SPECIAL ABILITIES
Test Ability 1: Does stuff

Test Ability 2: Does stuff

MERITS
Test Merit 1: Does stuff

Test Merit 2: Does stuff

OFFENSIVE CHARMS
Test Offensive Charm 1 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuffLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dignissim sodales ut eu sem integer vitae. Consequat ac felis donec et. Integer vitae justo eget magna fermentum. Arcu cursus euismod quis viverra nibh cras pulvinar. Suspendisse ultrices gravida dictum fusce ut placerat orci. Aenean sed adipiscing diam donec adipiscing tristique risus nec feugiat. Aliquam ultrices sagittis orci a scelerisque purus semper. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempus egestas sed sed risus pretium quam vulputate. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed velit. Fermentum leo vel orci porta non pulvinar neque. Turpis egestas pretium aenean pharetra magna. Et leo duis ut diam quam nulla porttitor massa id. Sit amet luctus venenatis lectus magna. Ornare suspendisse sed nisi lacus sed viverra tellus in hac. Leo duis ut diam quam nulla porttitor massa id. Sodales ut eu sem integer vitae justo eget magna. Porta nibh venenatis cras sed felis eget.

In arcu cursus euismod quis viverra nibh cras pulvinar mattis. Ipsum a arcu cursus vitae congue. Arcu non odio euismod lacinia at quis risus sed. Morbi blandit cursus risus at ultrices mi. Varius vel pharetra vel turpis nunc eget lorem. Lacus sed viverra tellus in hac habitasse platea dictumst vestibulum. Sed egestas egestas fringilla phasellus faucibus scelerisque. Mauris a diam maecenas sed. Nisi quis eleifend quam adipiscing vitae proin. Sit amet risus nullam eget felis eget nunc lobortis mattis. Etiam erat velit scelerisque in dictum non consectetur. Tristique senectus et netus et.

Test Offensive Charm 2 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuffLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dignissim sodales ut eu sem integer vitae. Consequat ac felis donec et. Integer vitae justo eget magna fermentum. Arcu cursus euismod quis viverra nibh cras pulvinar. Suspendisse ultrices gravida dictum fusce ut placerat orci. Aenean sed adipiscing diam donec adipiscing tristique risus nec feugiat. Aliquam ultrices sagittis orci a scelerisque purus semper. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempus egestas sed sed risus pretium quam vulputate. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed velit. Fermentum leo vel orci porta non pulvinar neque. Turpis egestas pretium aenean pharetra magna. Et leo duis ut diam quam nulla porttitor massa id. Sit amet luctus venenatis lectus magna. Ornare suspendisse sed nisi lacus sed viverra tellus in hac. Leo duis ut diam quam nulla porttitor massa id. Sodales ut eu sem integer vitae justo eget magna. Porta nibh venenatis cras sed felis eget.

In arcu cursus euismod quis viverra nibh cras pulvinar mattis. Ipsum a arcu cursus vitae congue. Arcu non odio euismod lacinia at quis risus sed. Morbi blandit cursus risus at ultrices mi. Varius vel pharetra vel turpis nunc eget lorem. Lacus sed viverra tellus in hac habitasse platea dictumst vestibulum. Sed egestas egestas fringilla phasellus faucibus scelerisque. Mauris a diam maecenas sed. Nisi quis eleifend quam adipiscing vitae proin. Sit amet risus nullam eget felis eget nunc lobortis mattis. Etiam erat velit scelerisque in dictum non consectetur. Tristique senectus et netus et.

MISCELLANEOUS CHARMS
Test Misc Charm 1 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuffLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dignissim sodales ut eu sem integer vitae. Consequat ac felis donec et. Integer vitae justo eget magna fermentum. Arcu cursus euismod quis viverra nibh cras pulvinar. Suspendisse ultrices gravida dictum fusce ut placerat orci. Aenean sed adipiscing diam donec adipiscing tristique risus nec feugiat. Aliquam ultrices sagittis orci a scelerisque purus semper. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempus egestas sed sed risus pretium quam vulputate. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed velit. Fermentum leo vel orci porta non pulvinar neque. Turpis egestas pretium aenean pharetra magna. Et leo duis ut diam quam nulla porttitor massa id. Sit amet luctus venenatis lectus magna. Ornare suspendisse sed nisi lacus sed viverra tellus in hac. Leo duis ut diam quam nulla porttitor massa id. Sodales ut eu sem integer vitae justo eget magna. Porta nibh venenatis cras sed felis eget.

In arcu cursus euismod quis viverra nibh cras pulvinar mattis. Ipsum a arcu cursus vitae congue. Arcu non odio euismod lacinia at quis risus sed. Morbi blandit cursus risus at ultrices mi. Varius vel pharetra vel turpis nunc eget lorem. Lacus sed viverra tellus in hac habitasse platea dictumst vestibulum. Sed egestas egestas fringilla phasellus faucibus scelerisque. Mauris a diam maecenas sed. Nisi quis eleifend quam adipiscing vitae proin. Sit amet risus nullam eget felis eget nunc lobortis mattis. Etiam erat velit scelerisque in dictum non consectetur. Tristique senectus et netus et.

Test Misc Charm 2 (5m, 2i or 10m, 4i; Simple; Instant; Essence 1): Does stuffLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Dignissim sodales ut eu sem integer vitae. Consequat ac felis donec et. Integer vitae justo eget magna fermentum. Arcu cursus euismod quis viverra nibh cras pulvinar. Suspendisse ultrices gravida dictum fusce ut placerat orci. Aenean sed adipiscing diam donec adipiscing tristique risus nec feugiat. Aliquam ultrices sagittis orci a scelerisque purus semper. Sit amet commodo nulla facilisi nullam vehicula ipsum a arcu. Tempus egestas sed sed risus pretium quam vulputate. Malesuada bibendum arcu vitae elementum curabitur vitae nunc sed velit. Fermentum leo vel orci porta non pulvinar neque. Turpis egestas pretium aenean pharetra magna. Et leo duis ut diam quam nulla porttitor massa id. Sit amet luctus venenatis lectus magna. Ornare suspendisse sed nisi lacus sed viverra tellus in hac. Leo duis ut diam quam nulla porttitor massa id. Sodales ut eu sem integer vitae justo eget magna. Porta nibh venenatis cras sed felis eget.

In arcu cursus euismod quis viverra nibh cras pulvinar mattis. Ipsum a arcu cursus vitae congue. Arcu non odio euismod lacinia at quis risus sed. Morbi blandit cursus risus at ultrices mi. Varius vel pharetra vel turpis nunc eget lorem. Lacus sed viverra tellus in hac habitasse platea dictumst vestibulum. Sed egestas egestas fringilla phasellus faucibus scelerisque. Mauris a diam maecenas sed. Nisi quis eleifend quam adipiscing vitae proin. Sit amet risus nullam eget felis eget nunc lobortis mattis. Etiam erat velit scelerisque in dictum non consectetur. Tristique senectus et netus et.

And to sum up the weirdness. Here is the fang blossom we started with: image Fang Test 1 is copy-paste from the original description, which shows the charm problem previously described. Fang Test 2 is filling out the charms with a bunch of garbage data like I used for test monster 2, but for some reason, it's still rolling it all up into the one charm.

I'm not really sure what's going on here.

Aliharu commented 8 months ago

The importer doesn't function well with charms that take up only 1-2 lines because its such a rare occurrence in actual books.

Putting some line breaks in the charm data will cause the charms to separate correctly

Pentazer commented 8 months ago

hey, looks like that worked!

Oldrasek the Eternal Wheel 
Demon of the First Circle These demons tumble from place to place humming and whispering, quietly singing or mumbling about their obsessions. An oldrasek has no eyes, but it sees; no mouth, though it speaks. A half-dozen to a dozen glittering, rotating, concentric rings composed of any combination of brass, blackened steel, pitted bone, tendons, glistening viscera, basalt, or etched crystal, encircle its heart. No two oldrasek possess the same set of rings, but each has a scintillating fire opal at its center. The demon rolls along, propelled by its ever-turning rings. These shift and twist in turn to give it unparalleled maneuverability, casting bright arcs of reflected light in all directions. Ringing, clattering, and meaty slapping follow in an oldrasek’s wake, its various rings striking the ground as they spin. These messengers roll up the mirror-polished surfaces of Malfean glass towers, carrying correspondence for the Demon City’s inhabitants and bearing their decrees to Creation’s farthest- flung reaches. Summoners and demon princes call upon oldrasek to deliver messages with dogged persistence. Tasked with delivering a missive, the demon commits it to memory and takes it to its target without regard for the challenges or dangers of terrain. An oldrasek does not stop for any obstacle, smashing through panes of living glass, toppling a Dynastic estate’s marble pillars, or crumbling the palisade erected around a fort. It rolls through raging battles, plumbs pelagial depths, and trundles through raksha courts with neither fear nor regard for the wonders and horrors it passes by. Upon arrival, it relays the message exactly as it was received, in a language the recipient understands. Oldrasek obsess over language and the delivery of messages. To amuse themselves, they translate the messages they carry into countless tongues, searching for hidden meanings and coded phrases to decipher, and memorizing correspondents’ linguistic patterns. They recombine dispatches to form a strange kind of found poetry, some of which borders on the prophetic. Each message it delivers links one being to another, forging an invisible chain across Creation and Malfeas alike. Some occultists believe that if one plotted out an oldrasek’s journeys on a map, its path would resemble the words of an incomplete missive. They suggest that if all oldrasek wanderings were so traced, they’d spell out a prayer the demons themselves have been composing for millennia. Storyteller Tactics Summoners and more powerful demons use oldrasek to relay important messages to their allies or threats to their enemies, leaving plenty of opportunity for characters to bind one of their own or intercept critical information relayed via demon. An oldrasek resorts to Spinning Gimbal Crush only if cornered or if someone tries to prevent it from making a delivery. If its target is unwilling to hear the message, it smashes bodily into the recipient until he stops moving or complies — messages must be delivered. Whenever an oldrasek has no message to carry, it obsessively seeks another, roaming about and offering its services like a rickshaw driver seeking fares. If forced into battle, an oldrasek flees once it’s taken damage to its last −1 health level.
Essence: 2; Willpower: 6; Join Battle: 8 dice
Personal Motes: 70
Health Levels: −0x5/−1x2/−2x2/−4/Incap.
Actions: Feats of Strength: 8 dice (may attempt
Strength 5 feats); Linguistic Feats: 8 dice; Navigation:
10 dice; Resist Disease/Poison: 8 dice; Senses: 5 dice
Resolve 3, Guile 2
COMBAT
Attack (Rolling trample): 10 dice (Damage 14,
minimum 2); Tags: Smashing
Combat Movement: 13 dice
Evasion 4, Parry 3
Soak/Hardness: 8/4
MERITS
Eternal Wheel: So long as an oldrasek bears a message and continues to move, it needs no rest or nourishment, suffers no penalties for difficult terrain, and ignores damage from environmental hazards. Additionally, as long as it moves at least one range band per round in combat, it waives the Initiative cost for smash attacks.

Sturdy as Stone: An oldrasek cannot be knocked back or prone except by magical effects or creatures of Legendary Size. A grappled oldrasek cannot be thrown or slammed unless magic such as Dragon Coil Technique (Exalted, p. 280) is used, or if the attacker is of Legendary Size.

OFFENSIVE CHARMS
Spinning Gimbal Crush (5m; Simple; Instant; Decisive- only; Essence 2): An oldrasek pulps flesh and grinds bone within its swirling sphere. Add three dice to a decisive attack. This attack ignores all Hardness except from a Charm or other magical ability. If the oldrasek deals any damage, it may then take a reflexive rush action against another target, or a disengage action if escaping the fight would be more prudent. This is only usable once per scene; reset by moving at least one range band per round for five consecutive rounds.

MOBILITY CHARMS
Earth-Defying Gyration (6m, 1wp; Reflexive; One scene; Eclipse; Essence 1): Unbound by natural laws, an oldrasek can move vertically as well as horizontally as long as it has a surface to roll on. Eclipses with this Charm must roll as well, either by dropping prone and rolling bodily or using a wheeled device.

Unstoppable Dervish Approach (8m, 1wp; Supplemental; Instant; Essence 2): Add 3 dice to a feat of strength to smash through a mundane obstacle. It crushes any object up to the size of an adult human, or creates a similarly sized hole in a wall or barrier. When the oldrasek is within medium range of its message’s recipient, the demon may attempt Strength 7 feats to destroy obstacles in its way. This is only usable once per scene; reset by moving at least one range band per round for five consecutive rounds. 

MISCELLANEOUS CHARMS
Hurry Home (10m; Simple; Instant; Essence 1): The demon returns to its summoner’s side; unavailable when unbound. 

Materialize (35m, 1wp; Simple; Instant; Essence 1): In a whirl of brass, flesh, and blood, bands of sinew, and the smell of heat, an oldrasek takes material shape. 

Measure the Wind (5m, Simple; Instant; Essence 1): An oldrasek reads the nature of anyone to whom it’s delivering a message, or anyone who’s ordering such a delivery.

image

Pentazer commented 8 months ago

For note, these are all official entries by the Onyx Path, from the hundred devil's night parade book. Thanks for the clarification on how to work around it!