diff --git a/GURPS/gurps.html b/GURPS/gurps.html index 2ec047c839..bc2e09141c 100644 --- a/GURPS/gurps.html +++ b/GURPS/gurps.html @@ -26359,7 +26359,7 @@ The attacker may choose to hit the original target or the limb you used to parry let attributes = jsonData.Character.Traits.Attribute; - let advantages = jsonData.Character.Traits.Advantage; + let advantages = getJsonArrayFromTrait(jsonData.Character.Traits.Advantage); let campaign = jsonData.Character.Campaign; @@ -26477,6 +26477,29 @@ The attacker may choose to hit the original target or the limb you used to parry "Fearlessness", ]; + /** + * If a trait, like Advantage only has one advantage, + * then the JSON is NOT an array. We have to convert that + * element to an array + * NOTE: Classic single or array issue with json + * + * @param json trait A trait(s) like advantages, perks, etc. + */ + function getJsonArrayFromTrait(trait) { + + let traits; + + if (Array.isArray(trait)) { + traits = trait; + } else { + // convert to an array + traits = [trait]; + } + + return traits; + + } + /** * Loops advantages and add advantages * TODO: Check to see if advantage already exists, then update @@ -26490,7 +26513,7 @@ The attacker may choose to hit the original target or the limb you used to parry // make sure we have a valid function callback = callback || noop; - let advantages = jsonData.Character.Traits.Advantage; + let advantages = getJsonArrayFromTrait(jsonData.Character.Traits.Advantage); let rows = {}; @@ -26926,9 +26949,9 @@ The attacker may choose to hit the original target or the limb you used to parry // make sure we have a valid function callback = callback || noop; - let perks = jsonData.Character.Traits.Perks; + let perks = getJsonArrayFromTrait(jsonData.Character.Traits.Perks); - let quirks = jsonData.Character.Traits.Quirk; + let quirks = getJsonArrayFromTrait(jsonData.Character.Traits.Quirk); let rows = {}; @@ -27031,7 +27054,7 @@ The attacker may choose to hit the original target or the limb you used to parry // make sure we have a valid function callback = callback || noop; - let disadvantages = jsonData.Character.Traits.Disadvantage; + let disadvantages = getJsonArrayFromTrait(jsonData.Character.Traits.Disadvantage); let rows = {}; @@ -27199,7 +27222,7 @@ The attacker may choose to hit the original target or the limb you used to parry // make sure we have a valid function callback = callback || noop; - let skills = jsonData.Character.Traits.Skill; + let skills = getJsonArrayFromTrait(jsonData.Character.Traits.Skill); let rows = {}; @@ -27423,7 +27446,7 @@ The attacker may choose to hit the original target or the limb you used to parry // make sure we have a valid function callback = callback || noop; - let skills = jsonData.Character.Traits.Skill; + let skills = getJsonArrayFromTrait(jsonData.Character.Traits.Skill); let rows = {}; @@ -27643,7 +27666,7 @@ The attacker may choose to hit the original target or the limb you used to parry // make sure we have a valid function callback = callback || noop; - let items = jsonData.Character.Traits.Equipment; + let items = getJsonArrayFromTrait(jsonData.Character.Traits.Equipment); let rows = {}; @@ -27768,7 +27791,7 @@ The attacker may choose to hit the original target or the limb you used to parry // make sure we have a valid function callback = callback || noop; - let spells = jsonData.Character.Traits.Spell; + let spells = getJsonArrayFromTrait(jsonData.Character.Traits.Spell); let rows = {};