ceryliae / DnDAppFiles

Files for the Fifth Edition apps by Lion's Den
613 stars 550 forks source link

Human Variant race #284

Open DnDPaladin opened 7 years ago

DnDPaladin commented 7 years ago

Human variant race doesn't have the ability node. instead it is built into its traits which shouldn't be.

arpakarta commented 7 years ago

The ability node is a set of fixed values, but Human (Variant) and all the Half-Elf Races have a 'choose two' feature instead which requires descriptive text and choices made by the player/user. What values do you think should be used in the ability node?

DnDPaladin commented 7 years ago

Depends, of course i dont know how your program works, but since its XML and each program can entirely depends on words themselves... you could put "choose list of abilities" or something of the sort. in the program i use the variant gave me an error because it didn't have the ability node unlike all other races. had to put a test to see if the node existed and if it didn't just ignore it, but i think this method is kinda ridiculous. but that is just my view.

i thought it was better to have all the same nodes for simplicity sake. hence why i created this issue. but if you feel like its fine as it is, then fine by me, my program just takes the text and show it off anyway. as i said, i created this because i thought it was an error or something because all others have the ability node, including the half-elves. human variant didn'T. all that is to it.

arpakarta commented 7 years ago

ah, I see. I didn't realize you were developing an app/viewer independent of the target application of this project, "GM5 and Fight Club apps from Lion's Den".

Since this project does not have influence over the app it is targeting, the files in Compendiums needs to conform with that program. For the sake of your program, you could make a Pull Request adding <ability>Str ?, Dex ?, Con ?, Int ?, Wis ?, Cha ?> to Human (Variant) and Half-Elf Races, which is compatible with the intended apps by adding lines of "+0" on each. I wouldn't know if ceryliae would accept that PR, but o/c you can maintain your own fork

As for coding against uncontrolled data (or semi-controlled via an external API etc), it is important to use robust parsing code. I recommend slicing out your desired elements without requiring them to exist, then dropping any known unwanted elements and placing any remaining content into a general notes/text area so that you have visible indication of the mismatch so you can catch any necessary changes and relieve time constraints on releasing code updates.