From 6528fc8bab34af262dab91f16a9ff9d837332a19 Mon Sep 17 00:00:00 2001 From: Stefan Zermatten Date: Fri, 22 Sep 2017 11:41:32 +0200 Subject: [PATCH] Improved vMix export closes #138 --- rpg-docs/lib/functions/characterExport.js | 51 +++++++++++++++++------ 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/rpg-docs/lib/functions/characterExport.js b/rpg-docs/lib/functions/characterExport.js index 0db37c10..dd8e95c5 100644 --- a/rpg-docs/lib/functions/characterExport.js +++ b/rpg-docs/lib/functions/characterExport.js @@ -17,11 +17,18 @@ characterExport = function(charId){ return Characters.calculate.attributeValue(charId, attributeName); }; var abilityMod = function(attributeName){ - return Characters.calculate.abilityMod(charId, attributeName) + return signedString( + Characters.calculate.abilityMod(charId, attributeName) + ); }; var skillMod = function(skillName){ - return Characters.calculate.skillMod(charId, skillName); + return signedString( + Characters.calculate.skillMod(charId, skillName) + ); }; + var proficiency = function(skillName){ + return Characters.calculate.proficiency(charId, skillName); + } var damageMods = getDamageMods(charId); var character = { "Id": char._id, @@ -45,7 +52,7 @@ characterExport = function(charId){ "Languages": getLanguages(charId), "Description": char.description || "", "Backstory": char.backstory || "", - "Personality": char.Personality || "" , + "Personality": char.personality || "" , "Bonds": char.bonds || "", "Ideals": char.ideals || "", "Flaws": char.flaws || "", @@ -69,12 +76,18 @@ characterExport = function(charId){ "DamageResistances": damageMods.resistances, "DamageImmunities": damageMods.immunities, - "StrSave": skillMod("strengthSave"), - "DexSave": skillMod("dexteritySave"), - "ConSave": skillMod("constitutionSave"), - "IntSave": skillMod("intelligenceSave"), - "WisSave": skillMod("wisdomSave"), - "ChaSave": skillMod("charismaSave"), + "StrengthSave": skillMod("strengthSave"), + "StrengthSaveProficiency": proficiency("strengthSave"), + "DexteritySave": skillMod("dexteritySave"), + "DexteritySaveProficiency": proficiency("dexteritySave"), + "ConstitutionSave": skillMod("constitutionSave"), + "ConstitutionSaveProficiency": proficiency("constitutionSave"), + "intelligenceSave": skillMod("intelligenceSave"), + "intelligenceSaveProficiency": proficiency("intelligenceSave"), + "WisdomSave": skillMod("wisdomSave"), + "WisdomSaveProficiency": proficiency("wisdomSave"), + "CharismaSave": skillMod("charismaSave"), + "CharismaSaveProficiency": proficiency("charismaSave"), "Level1SpellSlots": attributeValue("level1SpellSlots"), "Level2SpellSlots": attributeValue("level2SpellSlots"), @@ -89,6 +102,10 @@ characterExport = function(charId){ "Rages": attributeValue("rages"), "RageDamage": attributeValue("rageDamage"), "SorceryPoints": attributeValue("sorceryPoints"), + + "DeathSavePasses": char.deathSave.pass, + "DeathSaveFails": char.deathSave.fail, + "DeathSaveStable": char.deathSave.stable, }; _.extend(character, getSkills(charId)); _.extend(character, getAttacks(charId)); @@ -107,6 +124,7 @@ var getHitDiceString = function(charId){ (d10 ? `${d10}d10 + ` : "") + (d12 ? `${d12}d12 + ` : "") + con; + return string; } var getArmorString = function(charId){ @@ -181,8 +199,13 @@ var getSkills = function(charId){ ]; var skills = {}; _.each(allSkills, skill => { - var value = Characters.calculate.skillMod(charId, skill.name); - skills[skill.name] = value; + var value = signedString( + Characters.calculate.skillMod(charId, skill.name) + ); + var prof = Characters.calculate.proficiency(charId, skill.name); + var name = skill.name.charAt(0).toUpperCase() + skill.name.slice(1); + skills[name] = value; + skills[name + "Proficiency"] = prof; }); return skills; }; @@ -212,4 +235,8 @@ var getAttacks = function(charId){ `${a.details}`; }); return attacks; -} +}; + +var signedString = function(number) { + return number >= 0 ? "+" + number : "" + number; +};