Giter Site home page Giter Site logo

fg5exmltopdf's People

Contributors

jassop avatar jdcain avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fg5exmltopdf's Issues

List item details missing

Example:

[Features]
War Domain: War has many manifestations. It can make heroes of ordinary people. It can be desperate and horrific, with acts of cruelty and cowardice eclipsing instances of excellence and courage. In either case, the gods of war watch over warriors and reward them for their great deeds. The clerics of such gods excel in battle, inspiring others to fight the good fight or offering acts of violence as prayers. Gods of war include champions of honor and chivalry (such as Torm, Heironeous, and Kiri-Jolith) as well as gods of destruction and pillage (such as Erythnul, the Fury, Gruumsh, and Ares) and gods of conquest and domination (such as Bane, Hextor, and Maglubiyet). Other war gods (such as Tempus, Nike, and Nuada) take a more neutral stance, promoting war in all its manifestations and supporting warriors in any circumstance.
War Domain Spells
Cleric Level - Spell
Spell: 1st - Divine Favor
Spell:
Spell:
Spell:
Spell:
Spell:
Spell:
Spell:
Spell:
Spell:
Features
Bonus Proficiencies (War)War PriestChannel Divinity: Guided Strike
Channel Divinity:
Divine Strike (War)
Avatar of Battle

NullReference exception with certain XML file in release 0.6.0

System.NullReferenceException: Objektreferensen har inte angetts till en instans av ett objekt.
vid FG5eXmlToPDF.FG5eXml.GenericItemMaker(XElement features) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 114
vid FG5eXmlToPDF.FG5eXml.<>c__DisplayClass2_0.b__0(XElement x) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 110
vid System.Collections.Generic.List1.ForEach(Action1 action)
vid FG5eXmlToPDF.FG5eXml.PopulateGenericList(List1 traitList, List1 itemList) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 110
vid FG5eXmlToPDF.FG5eXml.LoadCharacter(String fileString) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 21
vid FG5eXmlToPdf.Console.Program.Main(String[] args)

Ohanterat undantag: System.NullReferenceException: Objektreferensen har inte angetts till en instans av ett objekt.
vid FG5eXmlToPDF.FG5eXml.GenericItemMaker(XElement features) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 114
vid FG5eXmlToPDF.FG5eXml.<>c__DisplayClass2_0.b__0(XElement x) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 110
vid System.Collections.Generic.List1.ForEach(Action1 action)
vid FG5eXmlToPDF.FG5eXml.PopulateGenericList(List1 traitList, List1 itemList) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 110
vid FG5eXmlToPDF.FG5eXml.LoadCharacter(String fileString) i C:\Source\repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:rad 21
vid FG5eXmlToPdf.Console.Program.Main(String[] args)

faffner.zip

Files don't open anymore

I exported two characters of our DnD5e group and tried to convert them to pdf, but when I pull it on the 0.6.2 exe I only get the following exceptions:
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei FG5eXmlToPDF.FG5eXml.LoadCharacter(XElement charElement) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:Zeile 92.
bei FG5eXmlToPDF.FG5eXml.LoadCharacters(String filePath) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:Zeile 24.
bei FG5eXmlToPdf.Console.Program.Main(String[] args)

Unbehandelte Ausnahme: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei FG5eXmlToPDF.FG5eXml.LoadCharacter(XElement charElement) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:Zeile 92.
bei FG5eXmlToPDF.FG5eXml.LoadCharacters(String filePath) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:Zeile 24.
bei FG5eXmlToPdf.Console.Program.Main(String[] args)

Even if it is partial German, I think you get it...

<?xml version="1.0" encoding="utf-8"?> <root version="4.3" dataversion="20230221" release="8.1|CoreRPG:6"> <character> <abilities> <charisma> <bonus type="number">-1</bonus> <save type="number">-1</save> <savemodifier type="number">0</savemodifier> <saveprof type="number">0</saveprof> <score type="number">8</score> </charisma> <constitution> <bonus type="number">2</bonus> <save type="number">2</save> <savemodifier type="number">0</savemodifier> <saveprof type="number">0</saveprof> <score type="number">14</score> </constitution> <dexterity> <bonus type="number">3</bonus> <save type="number">5</save> <savemodifier type="number">0</savemodifier> <saveprof type="number">1</saveprof> <score type="number">16</score> </dexterity> <intelligence> <bonus type="number">-1</bonus> <save type="number">-1</save> <savemodifier type="number">0</savemodifier> <saveprof type="number">0</saveprof> <score type="number">8</score> </intelligence> <strength> <bonus type="number">1</bonus> <save type="number">3</save> <savemodifier type="number">0</savemodifier> <saveprof type="number">1</saveprof> <score type="number">12</score> </strength> <wisdom> <bonus type="number">3</bonus> <save type="number">3</save> <savemodifier type="number">0</savemodifier> <saveprof type="number">0</saveprof> <score type="number">16</score> </wisdom> </abilities> <adventurelist /> <age type="string">46</age> <alignment type="string">Neutral Good</alignment> <attunement> <class type="number">0</class> <misc type="number">0</misc> </attunement> <background type="string">Criminal</background> <backgroundlink type="windowreference"> <class>reference_background</class> <recordname>reference.backgrounddata.criminal@DD Basic Rules - Player</recordname> </backgroundlink> <classes> <id-00001> <casterlevelinvmult type="number">0</casterlevelinvmult> <casterpactmagic type="number">0</casterpactmagic> <hddie type="dice">1d8</hddie> <hdused type="number">1</hdused> <level type="number">3</level> <name type="string">Monk</name> <shortcut type="windowreference"> <class>reference_class</class> <recordname>reference.classdata.monk@DD PHB Deluxe</recordname> </shortcut> <specialization type="string">Way of Shadow</specialization> <specializationlink type="windowreference"> <class>reference_classability</class> <recordname>reference.classdata.monk.abilities.wayofshadow@DD PHB Deluxe</recordname> </specializationlink> </id-00001> </classes> <coinother type="string">Silberschatulle mit 3 goldenen Ringen (je 25 gp)\n1 Platinkette mit Tropfenanhänger\nGoldphiole (75 gp)\nAugenklappe mit Karneol (50 gp)\nSilberes Kurzschwert (110 gp)</coinother> <coins> <id-00001> <amount type="number">0</amount> <name type="string">PP</name> </id-00001> <id-00002> <amount type="number">15</amount> <name type="string">GP</name> </id-00002> <id-00003> <amount type="number">0</amount> <name type="string">EP</name> </id-00003> <id-00004> <amount type="number">1</amount> <name type="string">SP</name> </id-00004> <id-00005> <amount type="number">0</amount> <name type="string">CP</name> </id-00005> </coins> <defenses> <ac> <armor type="number">0</armor> <disstealth type="number">0</disstealth> <misc type="number">0</misc> <prof type="number">1</prof> <shield type="number">0</shield> <stat2 type="string">wisdom</stat2> <temporary type="number">0</temporary> <total type="number">16</total> </ac> </defenses> <deity type="string">Mask / Tymora / Lliira</deity> <encumbrance> <encumbered type="number">60</encumbered> <encumberedheavy type="number">120</encumberedheavy> <liftpushdrag type="number">360</liftpushdrag> <load type="number">74</load> <max type="number">180</max> </encumbrance> <exp type="number">0</exp> <expneeded type="number">0</expneeded> <featlist /> <featurelist> <id-00001> <level type="number">1</level> <locked type="number">1</locked> <name type="string">Unarmored Defense</name> <text type="formattedtext"> <p>Beginning at 1st level, while you are wearing no armor and not wielding a shield, your AC equals 10 + your Dexterity modifier + your Wisdom modifier.</p> </text> </id-00001> <id-00002> <level type="number">1</level> <locked type="number">1</locked> <name type="string">Martial Arts</name> <text type="formattedtext"> <p>At 1st level, your practice of martial arts gives you mastery of combat styles that use unarmed strikes and monk weapons, which are shortswords and any simple melee weapons that don't have the two-handed or heavy property.</p> <p>You gain the following benefits while you are unarmed or wielding only monk weapons and you aren't wearing armor or wielding a shield:</p> <list> <li>You can use Dexterity instead of Strength for the attack and damage rolls of your unarmed strikes and monk weapons.</li> <li>You can roll a d4 in place of the normal damage of your unarmed strike or monk weapon. This die changes as you gain monk levels, as shown in the Martial Arts column of the Monk table.</li> <li>When you use the Attack action with an unarmed strike or a monk weapon on your turn, you can make one unarmed strike as a bonus action. For example, if you take the Attack action and attack with a quarterstaff, you can also make an unarmed strike as a bonus action, assuming you haven't already taken a bonus action this turn.</li> </list> <p>Certain monasteries use specialized forms of the monk weapons. For example, you might use a club that is two lengths of wood connected by a short chain (called a nunchaku) or a sickle with a shorter, straighter blade (called a kama). Whatever name you use for a monk weapon, you can use the game statistics provided for the weapon.</p> </text> </id-00002> <id-00003> <locked type="number">1</locked> <name type="string">Criminal Contact</name> <text type="formattedtext"> <p>You have a reliable and trustworthy contact who acts as your liaison to a network of other criminals. You know how to get messages to and from your contact, even over great distances; specifically, you know the local messengers, corrupt caravan masters, and seedy sailors who can deliver messages for you.</p> </text> </id-00003> <id-00004> <level type="number">2</level> <locked type="number">1</locked> <name type="string">Ki</name> <text type="formattedtext"> <p>Starting at 2nd level, your training allows you to harness the mystic energy of ki. Your access to this energy is represented by a number of ki points. Your monk level determines the number of points you have, as shown in the Ki Points column of the Monk table. You can spend these points to fuel various ki features. You start knowing three such features: Flurry of Blows, Patient Defense, and Step of the Wind. You learn more ki features as you gain levels in this class. When you spend a ki point, it is unavailable until you finish a short or long rest, at the end of which you draw all of your expended ki back into yourself. You must spend at least 30 minutes of the rest meditating to regain your ki points.</p> <p>Some of your ki features require your target to make a saving throw to resist the feature's effects. The saving throw DC is calculated as follows:</p> <p> <b>Ki save DC </b>= 8 + your proficiency bonus + your Wisdom modifier</p> <p> <b>Flurry of Blows</b> </p> <p>Immediately after you take the Attack action on your turn, you can spend 1 ki point to make two unarmed strikes as a bonus action.</p> <p> <b>Patient Defense</b> </p> <p>You can spend 1 ki point to take the Dodge action as a bonus action on your turn.</p> <p> <b>Step of the Wind</b> </p> <p>You can spend 1 ki point to take the Disengage or Dash action as a bonus action on your turn, and your jump distance is doubled for the turn.</p> </text> </id-00004> <id-00005> <level type="number">2</level> <locked type="number">1</locked> <name type="string">Unarmored Movement</name> <text type="formattedtext"> <p>Starting at 2nd level, your speed increases by 10 feet while you are not wearing armor or wielding a shield. This bonus increases when you reach certain monk levels, as shown in the Monk table.</p> <p>At 9th level, you gain the ability to move along vertical surfaces and across liquids on your turn without falling during the move.</p> </text> </id-00005> <id-00006> <level type="number">3</level> <locked type="number">1</locked> <name type="string">Deflect Missiles</name> <text type="formattedtext"> <p>Starting at 3rd level, you can use your reaction to deflect or catch the missile when you are hit by a ranged weapon attack. When you do so, the damage you take from the attack is reduced by 1d10 + your Dexterity modifier + your monk level.</p> <p>If you reduce the damage to 0, you can catch the missile if it is small enough for you to hold in one hand and you have at least one hand free. If you catch a missile in this way, you can spend 1 ki point to make a ranged attack (range 20/60 ft.) with the weapon or piece of ammunition you just caught, as part of the same reaction. You make this attack with proficiency, regardless of your weapon proficiencies, and the missile counts as a monk weapon for the attack.</p> </text> </id-00006> <id-00007> <level type="number">3</level> <locked type="number">1</locked> <name type="string">Monastic Tradition</name> <specializationchoice type="number">1</specializationchoice> <text type="formattedtext"> <p>When you reach 3rd level, you commit yourself to a monastic tradition: the Way of the Open Hand, the Way of Shadow, or the Way of the Four Elements, all detailed at the end of the class description. Your tradition grants you features at 3rd level and again at 6th, 11th, and 17th level.</p> </text> </id-00007> <id-00008> <level type="number">3</level> <locked type="number">1</locked> <name type="string">Shadow Arts</name> <specialization type="string">Way of Shadow</specialization> <specializationchoice type="number">0</specializationchoice> <text type="formattedtext"> <p>Starting when you choose this tradition at 3rd level, you can use your ki to duplicate the effects of certain spells. As an action, you can spend 2 ki points to cast darkness, darkvision, pass without trace, or silence, without providing material components. Additionally, you gain the minor illusion cantrip if you don't already know it.</p> </text> </id-00008> </featurelist> <gender type="string">Female</gender> <height type="string">1,46 m</height> <hp> <deathsavefail type="number">0</deathsavefail> <deathsavesuccess type="number">0</deathsavesuccess> <temporary type="number">0</temporary> <total type="number">24</total> <wounds type="number">0</wounds> </hp> <initiative> <misc type="number">0</misc> <temporary type="number">0</temporary> <total type="number">3</total> </initiative> <inventorylist> <id-00001> <ac type="number">0</ac> <attune type="number">0</attune> <bonus type="number">0</bonus> <carried type="number">2</carried> <count type="number">1</count> <damage type="string">1d4 bludgeoning</damage> <description type="formattedtext"> <p /> </description> <effect type="string">DMG: [DEX] bludgeoning</effect> <effectlist /> <locked type="number">1</locked> <name type="string">Unarmed Strike (Monk)</name> <type type="string">Weapon</type> <weight type="number">0</weight> </id-00001> <id-00002> <attune type="number">0</attune> <carried type="number">2</carried> <cost type="string">10 gp</cost> <count type="number">1</count> <damage type="string">1d6 piercing</damage> <locked type="number">1</locked> <name type="string">Shortsword</name> <properties type="string">Finesse, light</properties> <subtype type="string">Martial Weapons</subtype> <type type="string">Weapon</type> <weight type="number">2</weight> </id-00002> <id-00003> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">1 gp</cost> <count type="number">1</count> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Bedroll</name> <subtype type="string">Standard Adventuring Gear</subtype> <type type="string">Adventuring Gear</type> <weight type="number">7</weight> </id-00003> <id-00004> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">5 sp</cost> <count type="number">10</count> <description type="formattedtext"> <p>Rations consist of dry foods suitable for extended travel, including jerky, dried fruit, hardtack, and nuts.</p> </description> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Rations (1 Day)</name> <subtype type="string">Standard Adventuring Gear</subtype> <type type="string">Adventuring Gear</type> <weight type="number">2</weight> </id-00004> <id-00005> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">1 cp</cost> <count type="number">10</count> <description type="formattedtext"> <p>A torch burns for 1 hour, providing bright light in a 20-foot radius and dim light for an additional 20 feet. If you make a melee attack with a burning torch and hit, it deals 1 fire damage.</p> </description> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Torch</name> <subtype type="string">Standard Adventuring Gear</subtype> <type type="string">Adventuring Gear</type> <weight type="number">1</weight> </id-00005> <id-00006> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">5 sp</cost> <count type="number">1</count> <description type="formattedtext"> <p>This small container holds flint, fire steel, and tinder (usually dry cloth soaked in light oil) used to kindle a fire. Using it to light a torchor anything else with abundant, exposed fueltakes an action. Lighting any other fire takes 1 minute.</p> </description> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Tinderbox</name> <subtype type="string">Standard Adventuring Gear</subtype> <type type="string">Adventuring Gear</type> <weight type="number">1</weight> </id-00006> <id-00007> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">2 sp</cost> <count type="number">1</count> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Waterskin</name> <subtype type="string">Standard Adventuring Gear</subtype> <type type="string">Adventuring Gear</type> <weight type="number">5</weight> </id-00007> <id-00008> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">2 sp</cost> <count type="number">1</count> <description type="formattedtext"> <p>This tin box contains a cup and simple cutlery. The box clamps together, and one side can be used as a cooking pan and the other as a plate or shallow bowl.</p> </description> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Mess Kit</name> <subtype type="string">Standard Adventuring Gear</subtype> <type type="string">Adventuring Gear</type> <weight type="number">1</weight> </id-00008> <id-00009> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">1 gp</cost> <count type="number">1</count> <description type="formattedtext"> <p>Rope, whether made of hemp or silk, has 2 hit points and can be burst with a DC 17 Strength check.</p> </description> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Rope, Hempen (50 Feet)</name> <subtype type="string">Standard Adventuring Gear</subtype> <type type="string">Adventuring Gear</type> <weight type="number">10</weight> </id-00009> <id-00010> <attune type="number">0</attune> <carried type="number">2</carried> <cost type="string">2 gp</cost> <count type="number">1</count> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Backpack (Empty)</name> <subtype type="string">Standard</subtype> <type type="string">Adventuring Gear</type> <weight type="number">5</weight> </id-00010> <id-00011> <attune type="number">0</attune> <bonus type="number">0</bonus> <carried type="number">2</carried> <cost type="string">5 cp</cost> <count type="number">1</count> <damage type="string">1d4 piercing</damage> <description type="formattedtext"> <p /> </description> <locked type="number">1</locked> <name type="string">Dart</name> <properties type="string">Finesse, thrown (range 20/60)</properties> <subtype type="string">Simple Ranged Weapons</subtype> <type type="string">Weapon</type> <weight type="number">0.25</weight> </id-00011> <id-00012> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">2 gp</cost> <count type="number">1</count> <description type="formattedtext"> <p>Using a crowbar grants advantage to Strength checks where the crowbar's leverage can be applied.</p> </description> <locked type="number">1</locked> <name type="string">Crowbar</name> <subtype type="string">Standard</subtype> <type type="string">Adventuring Gear</type> <weight type="number">5</weight> </id-00012> <id-00013> <attune type="number">0</attune> <carried type="number">2</carried> <cost type="string">5 sp</cost> <count type="number">1</count> <locked type="number">1</locked> <name type="string">Clothes, Common (dark) with hood</name> <subtype type="string">Standard</subtype> <type type="string">Adventuring Gear</type> <weight type="number">3</weight> </id-00013> <id-00014> <ac type="number">0</ac> <attune type="number">0</attune> <bonus type="number">0</bonus> <carried type="number">1</carried> <cost type="string">50 gp</cost> <count type="number">1</count> <description type="formattedtext"> <p>A character who drinks the magical red fluid in this vial regains 2d4 + 2 hit points. Drinking or administering a potion takes an action.</p> </description> <isidentified type="number">1</isidentified> <istemplate type="number">0</istemplate> <locked type="number">1</locked> <name type="string">Potion of Healing</name> <nonid_name type="string">Potion</nonid_name> <nonidentified type="string">A vial of red liquid that shimmers when agitated.</nonidentified> <subtype type="string">Standard</subtype> <type type="string">Potion</type> <weight type="number">0.5</weight> </id-00014> <id-00016> <attune type="number">0</attune> <carried type="number">2</carried> <cost type="string">5 sp</cost> <count type="number">1</count> <description type="formattedtext"> <p>A cloth or leather pouch can hold up to 20 sling bullets or 50 blowgun needles, among other things. A compartmentalized pouch for holding spell components is called a component pouch (described earlier in this section).</p> </description> <locked type="number">1</locked> <name type="string">Pouch</name> <subtype type="string">Standard</subtype> <type type="string">Adventuring Gear</type> <weight type="number">1</weight> </id-00016> <id-00017> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">25 gp</cost> <count type="number">1</count> <description type="formattedtext"> <p>This set of tools includes a small file, a set of lock picks, a small mirror mounted on a metal handle, a set of narrow-bladed scissors, and a pair of pliers. Proficiency with these tools lets you add your proficiency bonus to any ability checks you make to disarm traps or open locks.</p> </description> <locked type="number">1</locked> <name type="string">Thieves' Tools</name> <subtype type="string">Kits / Sets</subtype> <type type="string">Tools</type> <weight type="number">1</weight> </id-00017> <id-00018> <attune type="number">0</attune> <carried type="number">1</carried> <cost type="string">5 sp</cost> <count type="number">1</count> <description type="formattedtext"> <p>This item encompasses a wide range of game pieces, including dice and decks of cards (for games such as Three-Dragon Ante). A few common examples appear on the Tools table, but other kinds of gaming sets exist. If you are proficient with a gaming set, you can add your proficiency bonus to ability checks you make to play a game with that set. Each type of gaming set requires a separate proficiency.</p> </description> <locked type="number">1</locked> <name type="string">Playing Card Set</name> <subtype type="string">Gaming Set</subtype> <type type="string">Tools</type> <weight type="number">0</weight> </id-00018> <id-00019> <ac type="number">0</ac> <attune type="number">0</attune> <bonus type="number">0</bonus> <carried type="number">1</carried> <cost type="string">101 - 500 gp</cost> <count type="number">1</count> <description type="formattedtext"> <h>Description</h> <linklist> <link class="imagewindow" recordname="image.id-00278@DD Curse of Strahd"> <b>Image: </b>Cloak of Protection</link> </linklist> <p>You gain a +1 bonus to AC and saving throws while you wear this cloak.</p> </description> <isidentified type="number">1</isidentified> <locked type="number">1</locked> <name type="string">Cloak of Protection</name> <nonid_name type="string">Cloak</nonid_name> <nonidentified type="string">Made of fine cloth, embroidered with silver and gold threads, there is clearly something special about this garment.</nonidentified> <properties type="string">Magic</properties> <rarity type="string">Uncommon (Requires Attunement)</rarity> <spells> <id-00001> <link type="windowreference"> <class /> <recordname /> </link> <name type="string">Cloak of Protection</name> </id-00001> <id-00002> <link type="windowreference"> <class /> <recordname /> </link> <name type="string">Cloak</name> </id-00002> </spells> <type type="string">Wondrous Item</type> <weight type="number">2</weight> </id-00019> </inventorylist> <languagelist> <id-00001> <name type="string">Common </name> </id-00001> <id-00002> <name type="string">Elvish</name> </id-00002> </languagelist> <level type="number">3</level> <name type="string">Liria(thalasiana) Schattentanz</name> <perception type="number">15</perception> <perceptionmodifier type="number">0</perceptionmodifier> <powergroup> <id-00001> <atkmod type="number">0</atkmod> <atkprof type="number">1</atkprof> <name type="string">Monk Actions/Effects</name> <prepared type="number">0</prepared> <savemod type="number">0</savemod> <saveprof type="number">1</saveprof> <uses type="number">3</uses> <usesperiod type="string">enc</usesperiod> </id-00001> <id-00002> <castertype type="string">memorization</castertype> <name type="string">Spells</name> </id-00002> </powergroup> <powermeta> <pactmagicslots1> <max type="number">0</max> <used type="number">0</used> </pactmagicslots1> <pactmagicslots2> <max type="number">0</max> <used type="number">0</used> </pactmagicslots2> <pactmagicslots3> <max type="number">0</max> <used type="number">0</used> </pactmagicslots3> <pactmagicslots4> <max type="number">0</max> <used type="number">0</used> </pactmagicslots4> <pactmagicslots5> <max type="number">0</max> <used type="number">0</used> </pactmagicslots5> <pactmagicslots6> <max type="number">0</max> <used type="number">0</used> </pactmagicslots6> <pactmagicslots7> <max type="number">0</max> <used type="number">0</used> </pactmagicslots7> <pactmagicslots8> <max type="number">0</max> <used type="number">0</used> </pactmagicslots8> <pactmagicslots9> <max type="number">0</max> <used type="number">0</used> </pactmagicslots9> <spellslots1> <max type="number">0</max> </spellslots1> <spellslots2> <max type="number">0</max> </spellslots2> <spellslots3> <max type="number">0</max> </spellslots3> <spellslots4> <max type="number">0</max> </spellslots4> <spellslots5> <max type="number">0</max> </spellslots5> <spellslots6> <max type="number">0</max> </spellslots6> <spellslots7> <max type="number">0</max> </spellslots7> <spellslots8> <max type="number">0</max> </spellslots8> <spellslots9> <max type="number">0</max> </spellslots9> </powermeta> <powermode type="string">standard</powermode> <powers> <id-00001> <actions> <id-00001> <atkbase type="string">ability</atkbase> <atkmod type="number">0</atkmod> <atkprof type="number">1</atkprof> <atkstat type="string">dexterity</atkstat> <atktype type="string">melee</atktype> <order type="number">1</order> <savedcmod type="number">0</savedcmod> <savedcprof type="number">1</savedcprof> <savemagic type="number">0</savemagic> <tknbutton type="token"></tknbutton> <type type="string">cast</type> </id-00001> <id-00002> <damagelist> <id-00001> <bonus type="number">0</bonus> <dice type="dice">d4</dice> <stat type="string">dexterity</stat> <statmult type="number">1</statmult> <type type="string">bludgeoning</type> </id-00001> </damagelist> <order type="number">2</order> <tknbutton type="token"></tknbutton> <type type="string">damage</type> </id-00002> </actions> <cast type="number">0</cast> <description type="formattedtext"> <p>At 1st level, your practice of martial arts gives you mastery of combat styles that use unarmed strikes and monk weapons, which are shortswords and any simple melee weapons that don't have the two-handed or heavy property.</p> <p>You gain the following benefits while you are unarmed or wielding only monk weapons and you aren't wearing armor or wielding a shield:</p> <list> <li>You can use Dexterity instead of Strength for the attack and damage rolls of your unarmed strikes and monk weapons.</li> <li>You can roll a d4 in place of the normal damage of your unarmed strike or monk weapon. This die changes as you gain monk levels, as shown in the Martial Arts column of the Monk table.</li> <li>When you use the Attack action with an unarmed strike or a monk weapon on your turn, you can make one unarmed strike as a bonus action. For example, if you take the Attack action and attack with a quarterstaff, you can also make an unarmed strike as a bonus action, assuming you haven't already taken a bonus action this turn.</li> </list> <p>Certain monasteries use specialized forms of the monk weapons. For example, you might use a club that is two lengths of wood connected by a short chain (called a nunchaku) or a sickle with a shorter, straighter blade (called a kama). Whatever name you use for a monk weapon, you can use the game statistics provided for the weapon.</p> </description> <group type="string">Monk Actions/Effects</group> <level type="number">0</level> <locked type="number">1</locked> <name type="string">Martial Arts</name> <prepared type="number">0</prepared> <ritual type="number">0</ritual> </id-00001> <id-00002> <actions> <id-00001> <durmod type="number">1</durmod> <label type="string">Patient Defense;Dodge</label> <order type="number">1</order> <targeting type="string">self</targeting> <tknbutton type="token"></tknbutton> <type type="string">effect</type> </id-00001> </actions> <cast type="number">0</cast> <description type="formattedtext"> <p>Starting at 2nd level, your training allows you to harness the mystic energy of ki. Your access to this energy is represented by a number of ki points. Your monk level determines the number of points you have, as shown in the Ki Points column of the Monk table. You can spend these points to fuel various ki features. You start knowing three such features: Flurry of Blows, Patient Defense, and Step of the Wind. You learn more ki features as you gain levels in this class. When you spend a ki point, it is unavailable until you finish a short or long rest, at the end of which you draw all of your expended ki back into yourself. You must spend at least 30 minutes of the rest meditating to regain your ki points.</p> <p>Some of your ki features require your target to make a saving throw to resist the feature's effects. The saving throw DC is calculated as follows:</p> <p> <b>Ki save DC </b>= 8 + your proficiency bonus + your Wisdom modifier</p> <p> <b>Flurry of Blows</b> </p> <p>Immediately after you take the Attack action on your turn, you can spend 1 ki point to make two unarmed strikes as a bonus action.</p> <p> <b>Patient Defense</b> </p> <p>You can spend 1 ki point to take the Dodge action as a bonus action on your turn.</p> <p> <b>Step of the Wind</b> </p> <p>You can spend 1 ki point to take the Disengage or Dash action as a bonus action on your turn, and your jump distance is doubled for the turn.</p> </description> <group type="string">Monk Actions/Effects</group> <level type="number">0</level> <locked type="number">1</locked> <name type="string">Patient Defense</name> <prepared type="number">0</prepared> </id-00002> <id-00003> <actions> <id-00001> <atkbase type="string">ability</atkbase> <atkmod type="number">0</atkmod> <atkprof type="number">1</atkprof> <atkstat type="string">dexterity</atkstat> <atktype type="string">melee</atktype> <order type="number">1</order> <savedcmod type="number">0</savedcmod> <savedcprof type="number">1</savedcprof> <savemagic type="number">1</savemagic> <savetype type="string">strength</savetype> <tknbutton type="token"></tknbutton> <type type="string">cast</type> </id-00001> <id-00002> <durmod type="number">0</durmod> <label type="string">Flurry of Blows;Prone</label> <order type="number">2</order> <tknbutton type="token"></tknbutton> <type type="string">effect</type> </id-00002> </actions> <cast type="number">0</cast> <description type="formattedtext"> <p>Starting at 2nd level, your training allows you to harness the mystic energy of ki. Your access to this energy is represented by a number of ki points. Your monk level determines the number of points you have, as shown in the Ki Points column of the Monk table. You can spend these points to fuel various ki features. You start knowing three such features: Flurry of Blows, Patient Defense, and Step of the Wind. You learn more ki features as you gain levels in this class. When you spend a ki point, it is unavailable until you finish a short or long rest, at the end of which you draw all of your expended ki back into yourself. You must spend at least 30 minutes of the rest meditating to regain your ki points.</p> <p>Some of your ki features require your target to make a saving throw to resist the feature's effects. The saving throw DC is calculated as follows:</p> <p> <b>Ki save DC </b>= 8 + your proficiency bonus + your Wisdom modifier</p> <p> <b>Flurry of Blows</b> </p> <p>Immediately after you take the Attack action on your turn, you can spend 1 ki point to make two unarmed strikes as a bonus action.</p> <p> <b>Patient Defense</b> </p> <p>You can spend 1 ki point to take the Dodge action as a bonus action on your turn.</p> <p> <b>Step of the Wind</b> </p> <p>You can spend 1 ki point to take the Disengage or Dash action as a bonus action on your turn, and your jump distance is doubled for the turn.</p> </description> <group type="string">Monk Actions/Effects</group> <level type="number">0</level> <locked type="number">1</locked> <name type="string">Flurry of Blows</name> <prepared type="number">0</prepared> <ritual type="number">0</ritual> </id-00003> <id-00004> <actions> <id-00001> <atktype type="string">ranged</atktype> <order type="number">1</order> <tknbutton type="token"></tknbutton> <type type="string">cast</type> </id-00001> <id-00002> <heallist> <id-00001> <dice type="dice">d10</dice> <stat type="string">dexterity</stat> </id-00001> <id-00002> <stat type="string">monk</stat> </id-00002> </heallist> <order type="number">2</order> <tknbutton type="token"></tknbutton> <type type="string">heal</type> </id-00002> </actions> <cast type="number">0</cast> <description type="formattedtext"> <p>Starting at 3rd level, you can use your reaction to deflect or catch the missile when you are hit by a ranged weapon attack. When you do so, the damage you take from the attack is reduced by 1d10 + your Dexterity modifier + your monk level.</p> <p>If you reduce the damage to 0, you can catch the missile if it is small enough for you to hold in one hand and you have at least one hand free. If you catch a missile in this way, you can spend 1 ki point to make a ranged attack (range 20/60 ft.) with the weapon or piece of ammunition you just caught, as part of the same reaction. You make this attack with proficiency, regardless of your weapon proficiencies, and the missile counts as a monk weapon for the attack.</p> </description> <group type="string">Monk Actions/Effects</group> <locked type="number">1</locked> <name type="string">Deflect Missiles</name> <prepared type="number">0</prepared> </id-00004> <id-00010> <actions> <id-00001> <durmod type="number">10</durmod> <durunit type="string">minute</durunit> <label type="string">Darkness; (C)</label> <order type="number">1</order> <targeting type="string">self</targeting> <tknbutton type="token"></tknbutton> <type type="string">effect</type> </id-00001> </actions> <cast type="number">0</cast> <castingtime type="string">1 action</castingtime> <components type="string">V, M (bat fur and a drop of pitch or piece of coal)</components> <description type="formattedtext"> <p>Magical darkness spreads from a point you choose within range to fill a 15-foot-radius sphere for the duration. The darkness spreads around corners.</p> <p>A creature with darkvision can't see through this darkness, and nonmagical light can't illuminate it.</p> <p>If the point you choose is on an object you are holding or one that isn't being worn or carried, the darkness emanates from the object and moves with it. Completely covering the source of the darkness with an opaque object, such as a bowl or a helm, blocks the darkness.</p> <p>If any of this spell's area overlaps with an area of light created by a spell of 2nd level or lower, the spell that created the light is dispelled.</p> </description> <duration type="string">Concentration, up to 10 minutes</duration> <group type="string">Spells</group> <level type="number">2</level> <locked type="number">1</locked> <name type="string">Darkness</name> <prepared type="number">0</prepared> <range type="string">60 feet</range> <school type="string">Evocation</school> <source type="string">Druid Swamp Circle, Eldritch Knight, Monk, Sorcerer, Warlock, Wizard, Arcane Trickster</source> </id-00010> <id-00011> <actions /> <cast type="number">0</cast> <castingtime type="string">1 action</castingtime> <components type="string">V, S, M (either a pinch of dried carrot or an agate)</components> <description type="formattedtext"> <p>You touch a willing creature to grant it the ability to see in the dark. For the duration, that creature has darkvision out to a range of 60 feet.</p> </description> <duration type="string">8 hours</duration> <group type="string">Spells</group> <level type="number">2</level> <locked type="number">1</locked> <name type="string">Darkvision</name> <prepared type="number">0</prepared> <range type="string">Touch</range> <school type="string">Transmutation</school> <source type="string">Druid, Eldritch Knight, Monk, Ranger, Sorcerer, Wizard, Arcane Trickster</source> </id-00011> <id-00012> <actions> <id-00001> <durmod type="number">1</durmod> <durunit type="string">hour</durunit> <label type="string">Pass without Trace; (C)</label> <order type="number">1</order> <targeting type="string">self</targeting> <tknbutton type="token"></tknbutton> <type type="string">effect</type> </id-00001> </actions> <cast type="number">0</cast> <castingtime type="string">1 action</castingtime> <components type="string">V, S, M (ashes from a burned leaf of mistletoe and a sprig of spruce)</components> <description type="formattedtext"> <p>A veil of shadows and silence radiates from you, masking you and your companions from detection. For the duration, each creature you choose within 30 feet of you (including you) has a +10 bonus to Dexterity (Stealth) checks and can't be tracked except by magical means. A creature that receives this bonus leaves behind no tracks or other traces of its passage.</p> </description> <duration type="string">Concentration, up to 1 hour</duration> <group type="string">Spells</group> <level type="number">2</level> <locked type="number">1</locked> <name type="string">Pass without Trace</name> <prepared type="number">0</prepared> <range type="string">Self</range> <school type="string">Abjuration</school> <source type="string">Cleric Trickery Domain, Druid, Druid Grassland Circle, Monk, Ranger</source> </id-00012> <id-00013> <actions> <id-00001> <durmod type="number">10</durmod> <durunit type="string">minute</durunit> <label type="string">Silence; (C)</label> <order type="number">1</order> <targeting type="string">self</targeting> <tknbutton type="token"></tknbutton> <type type="string">effect</type> </id-00001> </actions> <cast type="number">0</cast> <castingtime type="string">1 action</castingtime> <components type="string">V, S</components> <description type="formattedtext"> <p>For the duration, no sound can be created within or pass through a 20-foot-radius sphere centered on a point you choose within range. Any creature or object entirely inside the sphere is immune to thunder damage, and creatures are deafened while entirely inside it.</p> <p>Casting a spell that includes a verbal component is impossible there.</p> </description> <duration type="string">Concentration, up to 10 minutes</duration> <group type="string">Spells</group> <level type="number">2</level> <locked type="number">1</locked> <name type="string">Silence</name> <prepared type="number">0</prepared> <range type="string">120 feet</range> <ritual type="number">1</ritual> <school type="string">Illusion</school> <source type="string">Bard, Cleric, Druid Desert Circle, Monk, Ranger</source> </id-00013> <id-00014> <actions /> <cast type="number">0</cast> <castingtime type="string">1 action</castingtime> <components type="string">S, M (a bit of fleece)</components> <description type="formattedtext"> <p>You create a sound or an image of an object within range that lasts for the duration. The illusion also ends if you dismiss it as an action or cast this spell again.</p> <p>If you create a sound, its volume can range from a whisper to a scream. It can be your voice, someone else's voice, a lion's roar, a beating of drums, or any other sound you choose. The sound continues unabated throughout the duration, or you can make discrete sounds at different times before the spell ends.</p> <p>If you create an image of an object-such as a chair, muddy footprints, or a small chest-it must be no larger than a 5-foot cube. The image can't create sound, light, smell, or any other sensory effect. Physical interaction with the image reveals it to be an illusion, because things can pass through it.</p> <p>If a creature uses its action to examine the sound or image, the creature can determine that it is an illusion with a successful Intelligence (Investigation) check against your spell save DC. If a creature discerns the illusion for what it is, the illusion becomes faint to the creature.</p> </description> <duration type="string">1 minute</duration> <group type="string">Spells</group> <level type="number">0</level> <locked type="number">1</locked> <name type="string">Minor Illusion</name> <prepared type="number">0</prepared> <range type="string">30 feet</range> <school type="string">Illusion</school> <source type="string">Bard, Eldritch Knight, Monk, Sorcerer, Warlock, Wizard, Arcane Trickster</source> </id-00014> </powers> <profbonus type="number">2</profbonus> <proficiencylist> <id-00001> <name type="string">Weapon: Simple weapons, shortswords</name> </id-00001> <id-00002> <name type="string">Tool: Lute</name> </id-00002> <id-00003> <name type="string">Tool: Playing Card Set, thieves' tools</name> </id-00003> </proficiencylist> <race type="string">Wood Elf</race> <racelink type="windowreference"> <class>reference_race</class> <recordname>reference.racedata.elf@DD5E SRD Data</recordname> </racelink> <senses type="string">Darkvision 60</senses> <shifttoken type="token"></shifttoken> <size type="string">Medium</size> <skilllist> <id-00001> <misc type="number">0</misc> <name type="string">Perception</name> <prof type="number">1</prof> <stat type="string">wisdom</stat> <total type="number">5</total> </id-00001> <id-00002> <misc type="number">0</misc> <name type="string">Athletics</name> <prof type="number">1</prof> <stat type="string">strength</stat> <total type="number">3</total> </id-00002> <id-00003> <misc type="number">0</misc> <name type="string">Stealth</name> <prof type="number">1</prof> <stat type="string">dexterity</stat> <total type="number">5</total> </id-00003> <id-00004> <misc type="number">0</misc> <name type="string">Arcana</name> <prof type="number">0</prof> <stat type="string">intelligence</stat> <total type="number">-1</total> </id-00004> <id-00005> <misc type="number">0</misc> <name type="string">Persuasion</name> <prof type="number">0</prof> <stat type="string">charisma</stat> <total type="number">-1</total> </id-00005> <id-00006> <misc type="number">0</misc> <name type="string">Nature</name> <prof type="number">0</prof> <stat type="string">intelligence</stat> <total type="number">-1</total> </id-00006> <id-00007> <misc type="number">0</misc> <name type="string">Medicine</name> <prof type="number">0</prof> <stat type="string">wisdom</stat> <total type="number">3</total> </id-00007> <id-00008> <misc type="number">0</misc> <name type="string">Survival</name> <prof type="number">0</prof> <stat type="string">wisdom</stat> <total type="number">3</total> </id-00008> <id-00009> <misc type="number">0</misc> <name type="string">Performance</name> <prof type="number">0</prof> <stat type="string">charisma</stat> <total type="number">-1</total> </id-00009> <id-00010> <misc type="number">0</misc> <name type="string">Acrobatics</name> <prof type="number">1</prof> <stat type="string">dexterity</stat> <total type="number">5</total> </id-00010> <id-00011> <misc type="number">0</misc> <name type="string">Religion</name> <prof type="number">0</prof> <stat type="string">intelligence</stat> <total type="number">-1</total> </id-00011> <id-00012> <misc type="number">0</misc> <name type="string">Sleight of Hand</name> <prof type="number">0</prof> <stat type="string">dexterity</stat> <total type="number">3</total> </id-00012> <id-00013> <misc type="number">0</misc> <name type="string">Insight</name> <prof type="number">0</prof> <stat type="string">wisdom</stat> <total type="number">3</total> </id-00013> <id-00014> <misc type="number">0</misc> <name type="string">Intimidation</name> <prof type="number">0</prof> <stat type="string">charisma</stat> <total type="number">-1</total> </id-00014> <id-00015> <misc type="number">0</misc> <name type="string">Deception</name> <prof type="number">1</prof> <stat type="string">charisma</stat> <total type="number">1</total> </id-00015> <id-00016> <misc type="number">0</misc> <name type="string">Investigation</name> <prof type="number">0</prof> <stat type="string">intelligence</stat> <total type="number">-1</total> </id-00016> <id-00017> <misc type="number">0</misc> <name type="string">History</name> <prof type="number">0</prof> <stat type="string">intelligence</stat> <total type="number">-1</total> </id-00017> <id-00018> <misc type="number">0</misc> <name type="string">Animal Handling</name> <prof type="number">0</prof> <stat type="string">wisdom</stat> <total type="number">3</total> </id-00018> </skilllist> <speed> <armor type="number">10</armor> <base type="number">35</base> <misc type="number">0</misc> <temporary type="number">0</temporary> <total type="number">45</total> </speed> <subracelink type="windowreference"> <class>reference_subrace</class> <recordname>reference.racedata.elf.subraces.woodelf@D&amp;D Sword Coast Adventurer's Guide - Player's Guide</recordname> </subracelink> <temp /> <token type="token">portrait_id-00005_token</token> <traitlist> <id-00001> <locked type="number">1</locked> <name type="string">Trance</name> <text type="formattedtext"> <p>Elves don't need to sleep. Instead, they meditate deeply, remaining semiconscious, for 4 hours a day. (The Common word for such meditation is &#34;trance.&#34;) While meditating, you can dream after a fashion; such dreams are actually mental exercises that have become reflexive through years of practice. After resting in this way, you gain the same benefit that a human does from 8 hours of sleep.</p> </text> <type type="string">racial</type> </id-00001> <id-00002> <locked type="number">1</locked> <name type="string">Keen Senses</name> <text type="formattedtext"> <p>You have proficiency in the Perception skill.</p> </text> <type type="string">racial</type> </id-00002> <id-00003> <locked type="number">1</locked> <name type="string">Fey Ancestry</name> <text type="formattedtext"> <p>You have advantage on saving throws against being charmed, and magic can't put you to sleep.</p> </text> <type type="string">racial</type> </id-00003> <id-00004> <locked type="number">1</locked> <name type="string">Mask of the Wild</name> <text type="formattedtext"> <p>You can attempt to hide even when you are only lightly obscured by foliage, heavy rain, falling snow, mist, and other natural phenomena.</p> </text> <type type="string">subracial</type> </id-00004> <id-00005> <locked type="number">1</locked> <name type="string">Elf Weapon Training</name> <text type="formattedtext"> <p>You have proficiency with the longsword, shortsword, shortbow, and longbow.</p> </text> <type type="string">subracial</type> </id-00005> </traitlist> <weapon> <critdicebonus> <melee type="number">0</melee> <ranged type="number">0</ranged> </critdicebonus> <critrange> <melee type="number">20</melee> <ranged type="number">20</ranged> </critrange> <twoweaponfighting type="number">0</twoweaponfighting> </weapon> <weaponlist> <id-00001> <attackbonus type="number">0</attackbonus> <attackstat type="string">dexterity</attackstat> <carried type="number">2</carried> <damagelist> <id-00001> <bonus type="number">0</bonus> <dice type="dice">d4</dice> <stat type="string">dexterity</stat> <statmult type="number">1</statmult> <type type="string">bludgeoning</type> </id-00001> </damagelist> <handling type="number">0</handling> <isidentified type="number">1</isidentified> <maxammo type="number">0</maxammo> <name type="string">Unarmed Strike (Monk)</name> <prof type="number">1</prof> <shortcut type="windowreference"> <class>item</class> <recordname>....inventorylist.id-00001</recordname> </shortcut> <type type="number">0</type> </id-00001> <id-00002> <attackbonus type="number">0</attackbonus> <attackstat type="string">dexterity</attackstat> <carried type="number">2</carried> <damagelist> <id-00001> <bonus type="number">0</bonus> <dice type="dice">d6</dice> <stat type="string">dexterity</stat> <statmult type="number">1</statmult> <type type="string">piercing</type> </id-00001> </damagelist> <handling type="number">0</handling> <isidentified type="number">1</isidentified> <maxammo type="number">0</maxammo> <name type="string">Wakizashi</name> <prof type="number">1</prof> <properties type="string">Finesse, light</properties> <shortcut type="windowreference"> <class>item</class> <recordname>....inventorylist.id-00002</recordname> </shortcut> <type type="number">0</type> </id-00002> <id-00003> <ammo type="number">1</ammo> <attackbonus type="number">0</attackbonus> <carried type="number">2</carried> <damagelist> <id-00001> <bonus type="number">0</bonus> <dice type="dice">d4</dice> <stat type="string">base</stat> <statmult type="number">1</statmult> <type type="string">piercing</type> </id-00001> </damagelist> <handling type="number">0</handling> <isidentified type="number">1</isidentified> <maxammo type="number">10</maxammo> <name type="string">Dart</name> <prof type="number">1</prof> <properties type="string">Finesse, thrown (range 20/60)</properties> <shortcut type="windowreference"> <class>item</class> <recordname>....inventorylist.id-00011</recordname> </shortcut> <type type="number">2</type> </id-00003> </weaponlist> <weight type="string">46 kg</weight> </character> </root>

Crash with pre-generated character sheet

I used a pre-generated character sheet from Lost Mine of Phandelver in the current release of FG (v3.3.7). Exported the character and ran the exe:

System.NullReferenceException: Object reference not set to an instance of an object.
   at FG5eXmlToPDF.FG5eXml.LoadCharacter(XElement charElement) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:line 88
   at FG5eXmlToPDF.FG5eXml.LoadCharacters(String filePath) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:line 24
   at FG5eXmlToPdf.Console.Program.Main(String[] args)

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at FG5eXmlToPDF.FG5eXml.LoadCharacter(XElement charElement) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:line 88
   at FG5eXmlToPDF.FG5eXml.LoadCharacters(String filePath) in C:\Users\jd.LOCORUM\Source\Repos\FG5eXmlToPdf\FG5eXmlToPdf\Fg5eXml.cs:line 24
   at FG5eXmlToPdf.Console.Program.Main(String[] args)

Missing Bonus Elements throws Exception

Saw that you fixed the exceptions in Fg5eXml for missing Bonus elements, but still needs some handling for later calculations in Fg5ePdf,cs@103

Damages:
Bonus = danage?.Element("bonus")?.Value ?? "0"
Weapons:
AttackBonus = int.Parse(weapon?.Element("attackbonus")?.Value ?? "0")

Thrown Weapons Caculation

Example, Hand-ax shows twice but the 2nd item not the same as in FG display. No indication that one should be thrown, just shows twice.

It doesn't open

I try to open the program and it kinda just flashes a like code page and wont open

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.