From cf2459fb375649064b6ffe2cefda7f94e29c8028 Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Mon, 5 Aug 2024 12:05:25 -0600 Subject: [PATCH 01/11] Working version 2.1 created. New HDE 2.1 --- .../2.1/HeroSystem6eHeroic.hde | 3533 ++++++++++++ .../2.1/HeroSystem6eHeroic_HDImporter.js | 4755 +++++++++++++++++ .../2.1/Sample_Character.TXT | 1 + .../2.1/Sample_Character.hdc | Bin 0 -> 523852 bytes 4 files changed, 8289 insertions(+) create mode 100644 HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde create mode 100644 HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js create mode 100644 HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT create mode 100644 HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.hdc diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde new file mode 100644 index 000000000..560f9541a --- /dev/null +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde @@ -0,0 +1,3533 @@ +HeroSystem6eHeroic

HeroSystem6eHeroic

Version 2.0

Export format for the Roll20 API script HeroSystem6eHeroic_HDImporter, which imports Hero Designer characters into the HeroSystem6eHeroic character sheet.

For documentation see https://github.com/Roll20/roll20-api-scripts/tree/master/HeroSystem6eHeroic_HDImporter

By Villain In Glasses (Roll20 ID 633423)

+txt +!hero --import { + "character":{ + "character_name":"", + "character_title":"", + "height":"", + "weight":"", + "eyes":"", + "hair":"", + "backgroundText":"", + "historyText":"", + "appearance":"", + "tactics":"", + "campaignUse":"", + "quote":"", + "experience":"", + "experienceBenefit":"", + "strength":"", + "dexterity":"", + "constitution":"", + "intelligence":"", + "ego":"", + "presence":"", + "ocv":"", + "dcv":"", + "omcv":"", + "dmcv":"", + "speed":"", + "pd":"", + "ed":"", + "body":"", + "stun":"", + "endurance":"", + "recovery":"", + "running":"", + "leaping":"", + "swimming":"", + "equipment":{ + "equipment01":{1 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 1}, + "equipment02":{2 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 2}, + "equipment03":{3 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 3}, + "equipment04":{4 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 4}, + "equipment05":{5 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 5}, + "equipment06":{6 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 6}, + "equipment07":{7 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 7}, + "equipment08":{8 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 8}, + "equipment09":{9 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 9}, + "equipment10":{10 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 10}, + "equipment11":{11 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 11}, + "equipment12":{12 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 12}, + "equipment13":{13 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 13}, + "equipment14":{14 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 14}, + "equipment15":{15 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 15}, + "equipment16":{16 + + + "name":"(Multipower) ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"(MPSlot ", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + + + "name":"", + "text":"", + "damage":"", + "end":"", + "range":"", + "mass":"", + "attack":"true", + "defense":"true", + "notes":"" + + + 16} + }, + "maneuvers":{ + "maneuver01":{ + + 1 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 1 + + }, + "maneuver02":{ + + 2 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 2 + + }, + "maneuver03":{ + + 3 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 3 + + }, + "maneuver04":{ + + 4 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 4 + + }, + "maneuver05":{ + + 5 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 5 + + }, + "maneuver06":{ + + 6 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 6 + + }, + "maneuver07":{ + + 7 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 7 + + }, + "maneuver08":{ + + 8 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 8 + + }, + "maneuver09":{ + + 9 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 9 + + }, + "maneuver10":{ + + 10 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 10 + + }, + "maneuver11":{ + + 11 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 11 + + }, + "maneuver12":{ + + 12 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 12 + + }, + "maneuver13":{ + + + + 1 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 1 + + + + }, + "maneuver14":{ + + + + 2 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 2 + + + + }, + "maneuver15":{ + + + + 3 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 3 + + + + }, + "maneuver16":{ + + + + 4 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 4 + + + + }, + "maneuver17":{ + + + + 5 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 5 + + + + }, + "maneuver18":{ + + + + 6 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 6 + + + + }, + "maneuver19":{ + + + + 7 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 7 + + + + }, + "maneuver20":{ + + + + 8 + "name":"", + "points":"", + "phase":"", + "ocv":"", + "dcv":"", + "effect":"", + "notes":"" + 8 + + + + } + }, + "perks":{ + "perk01":{ + + 1 + "type":"", + "points":"", + "text":"", + "notes":"" + 1 + }, + "perk02":{ + + 2 + "type":"", + "points":"", + "text":"", + "notes":"" + 2 + }, + "perk03":{ + + 3 + "type":"", + "points":"", + "text":"", + "notes":"" + 3 + }, + "perk04":{ + + 4 + "type":"", + "points":"", + "text":"", + "notes":"" + 4 + }, + "perk05":{ + + 5 + "type":"", + "points":"", + "text":"", + "notes":"" + 5 + }, + "perk06":{ + + 6 + "type":"", + "points":"", + "text":"", + "notes":"" + 6 + }, + "perk07":{ + + 7 + "type":"", + "points":"", + "text":"", + "notes":"" + 7 + }, + "perk08":{ + + 8 + "type":"", + "points":"", + "text":"", + "notes":"" + 8 + }, + "perk09":{ + + 9 + "type":"", + "points":"", + "text":"", + "notes":"" + 9 + }, + "perk10":{ + + 10 + "type":"", + "points":"", + "text":"", + "notes":"" + 10 + } + }, + "talents":{ + "talent01":{ + + 1 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 1 + }, + "talent02":{ + + 2 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 2 + }, + "talent03":{ + + 3 + "type":"", + "points":"", + "text":"", + "notes":"" + 3 + }, + "talent04":{ + + 4 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 4 + }, + "talent05":{ + + 5 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 5 + }, + "talent06":{ + + 6 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 6 + }, + "talent07":{ + + 7 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 7 + }, + "talent08":{ + + 8 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 8 + }, + "talent09":{ + + 9 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 9 + }, + "talent10":{ + + 10 + "type":"", + "points":"", + "text":" + ", + "notes":"" + 10 + } + }, + "complications":{ + "complication01":{ + + 1 + "type":"", + "points":"", + "text":"", + "notes":"" + 1 + }, + "complication02":{ + + 2 + "type":"", + "points":"", + "text":"", + "notes":"" + 2 + }, + "complication03":{ + + 3 + "type":"", + "points":"", + "text":"", + "notes":"" + 3 + }, + "complication04":{ + + 4 + "type":"", + "points":"", + "text":"", + "notes":"" + 4 + }, + "complication05":{ + 5 + "type":"", + "points":"", + "text":"", + "notes":"" + 5 + }, + "complication06":{ + 6 + "type":"", + "points":"", + "text":"", + "notes":"" + 6 + }, + "complication07":{ + 7 + "type":"", + "points":"", + "text":"", + "notes":"" + 7 + }, + "complication08":{ + 8 + "type":"", + "points":"", + "text":"", + "notes":"" + 8 + }, + "complication09":{ + 9 + "type":"", + "points":"", + "text":"", + "notes":"" + 9 + }, + "complication10":{ + 10 + "type":"", + "points":"", + "text":"", + "notes":"" + 10 + }, + "complication11":{ + 11 + "type":"", + "points":"", + "text":"", + "notes":"" + 11 + }, + "complication12":{ + 12 + "type":"", + "points":"", + "text":"", + "notes":"" + 12 + }, + "complication13":{ + 13 + "type":"", + "points":"", + "text":"", + "notes":"" + 13 + }, + "complication14":{ + 14 + "type":"", + "points":"", + "text":"", + "notes":"" + 14 + }, + "complication15":{ + 15 + "type":"", + "points":"", + "text":"", + "notes":"" + 15 + }, + "complication16":{ + 16 + "type":"", + "points":"", + "text":"", + "notes":"" + 16 + }, + "complication17":{ + 17 + "type":"", + "points":"", + "text":"", + "notes":"" + 17 + }, + "complication18":{ + 18 + "type":"", + "points":"", + "text":"", + "notes":"" + 18 + }, + "complication19":{ + 19 + "type":"", + "points":"", + "text":"", + "notes":"" + 19 + }, + "complication20":{ + 20 + "type":"", + "points":"", + "text":"", + "notes":"" + 20 + } + }, + "powers":{ + "power01":{ + 1 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 1 + }, + "power02":{ + 2 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 2 + }, + "power03":{ + 3 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 3 + }, + "power04":{ + 4 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 4 + }, + "power05":{ + 5 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 5 + }, + "power06":{ + 6 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 6 + }, + "power07":{ + 7 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 7 + }, + "power08":{ + 8 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 8 + }, + "power09":{ + 9 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 9 + }, + "power10":{ + 10 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 10 + }, + "power11":{ + 11 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 11 + }, + "power12":{ + 12 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 12 + }, + "power13":{ + 13 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 13 + }, + "power14":{ + 14 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 14 + }, + "power15":{ + 15 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 15 + }, + "power16":{ + 16 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 16 + }, + "power17":{ + 17 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 17 + }, + "power18":{ + 18 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 18 + }, + "power19":{ + 19 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 19 + }, + "power20":{ + 20 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 20 + }, + "power21":{ + 21 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 21 + }, + "power22":{ + 22 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 22 + }, + "power23":{ + 23 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 23 + }, + "power24":{ + 24 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 24 + }, + "power25":{ + 25 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 25 + }, + "power26":{ + 26 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 26 + }, + "power27":{ + 27 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 27 + }, + "power28":{ + 28 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 28 + }, + "power29":{ + 29 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 29 + }, + "power30":{ + 30 + + + "name":"(Multipower) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"(MPSlot ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + + "name":"", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + + "name":"(VPP) ", + "base":"", + "text":"", + "notes":"", + "cost":"", + "endurance":"", + "damage":"", + + + "compound":"true" + + + "compound":"false" + + 30 + } + }, + "skills": { + "skill01": { + 1 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 1 + }, + "skill02": { + 2 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 2 + }, + "skill03": { + 3 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 3 + }, + "skill04": { + 4 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 4 + }, + "skill05": { + 5 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 5 + }, + "skill06": { + 6 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 6 + }, + "skill07": { + 7 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 7 + }, + "skill08": { + 8 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 8 + }, + "skill09": { + 9 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 9 + }, + "skill10": { + 10 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 10 + }, + "skill11": { + 11 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 11 + }, + "skill12": { + 12 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 12 + }, + "skill13": { + 13 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 13 + }, + "skill14": { + 14 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 14 + }, + "skill15": { + 15 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 15 + }, + "skill16": { + 16 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 16 + }, + "skill17": { + 17 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 17 + }, + "skill18": { + 18 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 18 + }, + "skill19": { + 19 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 19 + }, + "skill20": { + 20 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 20 + }, + "skill21": { + 21 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 21 + }, + "skill22": { + 22 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 22 + }, + "skill23": { + 23 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 23 + }, + "skill24": { + 24 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 24 + }, + "skill25": { + 25 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 25 + }, + "skill26": { + 26 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 26 + }, + "skill27": { + 27 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 27 + }, + "skill28": { + 28 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 28 + }, + "skill29": { + 29 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 29 + }, + "skill30": { + 30 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 30 + }, + "skill31": { + 31 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 31 + }, + "skill32": { + 32 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 32 + }, + "skill33": { + 33 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 33 + }, + "skill34": { + 34 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 34 + }, + "skill35": { + 35 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 35 + }, + "skill36": { + 36 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 36 + }, + "skill37": { + 37 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 37 + }, + "skill38": { + 38 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 38 + }, + "skill39": { + 39 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 39 + }, + "skill40": { + 40 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 40 + }, + "skill41": { + 41 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 41 + }, + "skill42": { + 42 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 42 + }, + "skill43": { + 43 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 43 + }, + "skill44": { + 44 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 44 + }, + "skill45": { + 45 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 45 + }, + "skill46": { + 46 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 46 + }, + "skill47": { + 47 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 47 + }, + "skill48": { + 48 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 48 + }, + "skill49": { + 49 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 49 + }, + "skill50": { + 50 + "name":"", + "enhancer":"true", + "text":"", + "display":"", + "attribute":"getCharacteristicString", + "base":"", + "levels":"", + "cost":"" + 50 + } + }, + "playerName":"", + "gmName":"", + "characterFile":"", + "versionHD":"", + "timeStamp":"", + "genre":"", + "campaign":"", + "version":"2.1", + "HeroSystem6eHeroic":"true" + } +} + +\\/ +Flight (\d*)"Flight $1m +within (\d*)"within $1m +Range \((\d*)"\)Range \($1m\) +(?<=[^\^\t:])(")(?=[^\>\}\]\:\n][^\n])'' +(\n)+ +(\t)+ +(\s)+ \ No newline at end of file diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js new file mode 100644 index 000000000..137ea69d0 --- /dev/null +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js @@ -0,0 +1,4755 @@ +/* HeroSystem6eHeroic_HDImporter.js + * Hero Designer Importer for the Roll20 Hero System 6e Heroic character sheet + * Version: 2.0 + * By Villain in Glasses + * villaininglasses@icloud.com + * Discord: Villain#0604 + * Roll20: https://app.roll20.net/users/633423/villain-in-glasses + * Hero Games Forum Thread: + * https://www.herogames.com/forums/topic/101627-new-roll20-character-sheet-hero-system-6e-heroic/ + * + * Purpose: Imports characters created in Hero Designer into a Roll20 HeroSystem6eHeroic campaign. + * + * Installation: Paste this script into the API setup area of your Roll20 HeroSystem6eHeroic campaign. + * + * Copy "HeroSystem6eHeroic.hde" into your Hero Designer export format folder. + * + * Use: from Hero Designer export a character using HeroSystem6eHeroic.hde found in this repository as the selected format. + * This will produce a text file with the name of the character (e.g., myCharacter.txt). + * + * Open the exported file in your favorite text editor. Select all of the contents and copy it. + * Paste the copied text in the chat window of your Roll20 HeroSystem6eHeroic campaign. Hit enter. + * + * Commands: + * Import character: "!hero --import {character text}" + * Help: "!hero --help" + * Config: "!hero --config" + * + * Based on BeyondImporter Version O.4.0 by + * Robin Kuiper + * Discord: Atheos#1095 + * Roll20: https://app.roll20.net/users/1226016/robin + * + * Matt DeKok + * Discord: Sillvva#2532 + * Roll20: https://app.roll20.net/users/494585/sillvva + * + * Ammo Goettsch + * Discord: ammo#7063 + * Roll20: https://app.roll20.net/users/2990964/ammo + */ + +(function() { + // Constants + const versionMod = "2.0"; + const versionSheet = "2.9"; // Note that a newer sheet will make upgrades as well as it can. + const needsExportedVersion = new Set(["1.0", "2.0"]); + + const defaultAttributes = { + + // Bio + character_title: "hero", + backgroundText: "", + historyText: "", + experience: 0, + money: 0, + + // Tally Bar + characteristicsCost: 0, + + // Primary Attributes. + // We need to define strengthNet for weapons. + strength: 10, + strengthNet: 10, + dexterity: 10, + constitution: 10, + intelligence: 10, + ego: 10, + presence:10, + + // Combat Attributes + ocv: 3, + dcv: 3, + omcv: 3, + dmcv: 3, + speed: 2, + pd: 2, + ed: 2, + body: 10, + stun: 20, + endurance: 20, + recovery: 4, + + // Movement Attributes + running: 12, + leaping: 4, + swimming: 4, + + // Health Status Attributes + CurrentBODY: 10, + CurrentSTUN: 20, + CurrentEND: 20, + gearCurrentBODY: 10, + gearCurrentSTUN: 20, + gearCurrentEND: 20, + + // Make characteristic maximums default to no. + useCharacteristicMaximums: 0, + optionTakesNoSTUN: 0, + + // Skill levels + skillLevels38: 0, + skillLevels39: 0, + skillLevels40: 0, + interactionLevelsCP: 0, + intellectLevelsCP: 0, + agilityLevelsCP: 0, + noncombatLevelsCP: 0, + overallLevelsCP: 0 + } + + let hero_caller = {}; + let object; // This is the character object. + + + // Styling for the chat responses. + const style = "margin-left: 0px; overflow: hidden; background-color: royalblue; border: 2px solid #fff990; padding: 5px; border-radius: 5px; color: white; div#home a:link { color: #70DB93; }"; + const buttonStyle = "background-color: dodgerblue; border: 1px solid #292929; width: 25%; border-radius: 3px; padding: 5px; color: #fff; text-align: center; float: right;"; + const altButtonStyle = "background-color: orange; border: 1px solid #292929; border-radius: 3px; padding: 5px; color: #fff; text-align: center; float: right;"; + const linkStyle = "color: green;" + + const script_name = 'HDImporter'; + const state_name = 'HDIMPORTER'; + var verbose = false; + + + // Start messages + on('ready', function() { + checkInstall(); + log(script_name + ' Ready! Command: !hero'); + //sendChat(script_name, script_name + ' Ready!\n For help enter "!hero --help"', null, {noarchive:true}); + sendChat(script_name, '

' + script_name + ' Ready!

For help enter "!hero --help"

', null, {noarchive:true}); + }); + + + on('chat:message', (msg) => { + if (msg.type != 'api') return; + + // Split the message into command and argument(s) + let args = msg.content.split(/ --(help|reset|config|imports|import) ?/g); + let command = args.shift().substring(1).trim(); + + if (command === "") { + return; + } + + hero_caller = getObj('player', msg.playerid); + + if (command !== 'hero') { + return; + } + + let importData = ""; + if(args.length < 1) { sendHelpMenu(hero_caller); return; } + + let config = state[state_name][hero_caller.id].config; + + for(let i = 0; i < args.length; i+=2) { + let k = args[i].trim(); + let v = args[i+1] != null ? args[i+1].trim() : null; + let check; + + v = cleanQuotes(v, script_name); + + check = Array.from(v.replace(/\s/g, '')); + + switch(k) { + case 'help': + sendHelpMenu(hero_caller); + return; + + case 'reset': + state[state_name][hero_caller] = {}; + setDefaults(true); + sendConfigMenu(hero_caller); + return; + + case 'config': + if(args.length > 0){ + let setting = v.split('|'); + let key = setting.shift(); + let value = (setting[0] === 'true') ? true : (setting[0] === 'false') ? false : (setting[0] === '[NONE]') ? '' : setting[0]; + + if(key === 'prefix' && value.charAt(0) !== '_' && value.length > 0) { value = value + ' ';} + if(key === 'suffix' && value.charAt(0) !== '_' && value.length > 0) { value = ' ' + value} + + state[state_name][hero_caller.id].config[key] = value; + } + + sendConfigMenu(hero_caller); + return; + + case 'imports': + if(args.length > 0){ + let setting = v.split('|'); + let key = setting.shift(); + let value = (setting[0] === 'true') ? true : (setting[0] === 'false') ? false : (setting[0] === '[NONE]') ? '' : setting[0]; + + state[state_name][hero_caller.id].config.imports[key] = value; + } + + sendConfigMenu(hero_caller); + return; + + case 'import': + if (check.length < 2100) { + // Intended character data length is safely less than the minimum character file size if exported with HDE format version 1.0. + // This is likely an error. + sendChat(script_name, '
Hero Importer finished early because the import command does not appear to contain valid character data.
' ); + return; + } else if ( (check[0] !== "{") && (check[check.length - 1] !== "}")) { + // Improper JSON format. + sendChat(script_name, '
Hero Importer finished early because the import command does not appear to contain valid character data.
' ); + return; + } + + importData = v.replace(/[\n\r]/g, ''); + break; + + default: + sendHelpMenu(hero_caller); + return; + } + } + + if ((importData === '') || (typeof importData === "undefined")) { + return; + } + + var json = importData; + var character = null; + + // Try to catch some bad input. Doesn't currently catch no input. + try { + character = JSON.parse(json).character; + } + + catch(error) { + let message = ""; + needsExportedVersion.forEach(function(value) { + message += value + ", "; + }); + + // Drop the last comma. + message = message.slice(0, -2); + + sendChat(script_name, '
Hero Importer ended early due to a source content error.
' ); + sendChat(script_name, "Please verify that the character file was exported using HeroSystem6eHeroic.hde (acceptable versions: "+message+"). For help use the command !hero --help."); + return; + } + + // Verify that the character was exported with the latest version of HeroSystem6eHeroic.hde. If not, report error and abort. + if (needsExportedVersion.has(character.version) === false) { + var last; + needsExportedVersion.forEach(k => { last = k }); + + sendChat(script_name, '
Import of ' + character.character_name + ' ended early due to version mismatch error.
' ); + sendChat(script_name, "Please download and install the latest version of HeroSystem6eHeroic.hde (version: "+last+" recommended) into your Hero Designer export formats folder. Export your character and try HD Importer again. For help use the command !hero --help." ); + + return; + } + + sendChat(script_name, '
Import of ' + character.character_name + ' started.
', null, {noarchive:true}); + + if (character.version === "1.0") { + sendChat(script_name, "Source exported from HERO Designer using HeroSystem6eHeroic.hde version 1.0"); + } + + object = null; + + // Assign a random name if the character doesn't have one. + if ((character.character_name).length === 0) { + character.character_name = createRandomString(7); + } + + // Remove characters with the same name if overwrite is enabled. + if(state[state_name][hero_caller.id].config.overwrite) { + let objects = findObjs({ + _type: "character", + name: state[state_name][hero_caller.id].config.prefix + character.character_name + state[state_name][hero_caller.id].config.suffix + }, {caseInsensitive: true}); + + if(objects.length > 0) { + object = objects[0]; + for(let i = 1; i < objects.length; i++){ + objects[i].remove(); + } + } + } + + if(!object) { + // Create character object + object = createObj("character", { + name: state[state_name][hero_caller.id].config.prefix + character.character_name + state[state_name][hero_caller.id].config.suffix, + inplayerjournals: playerIsGM(msg.playerid) ? state[state_name][hero_caller.id].config.inplayerjournals : msg.playerid, + controlledby: playerIsGM(msg.playerid) ? state[state_name][hero_caller.id].config.controlledby : msg.playerid + }); + } + + // Set base character sheet values. + setAttrs(object.id, defaultAttributes); + + // Import Page 1: Characteristics and Bio + importCharacteristics(object, character, script_name); + + // Import Page 2: Martial Arts Maneuvers + // Maneuvers over the sheet maximum will be prepended to excess perks and talents in the treasures field. + character.overflow = importManeuvers(object, character, script_name); + + // Import Page 2: Equipment + importEquipment(object, character, script_name); + + // Import Page 3: Skills + importAllSkills(object, character, script_name); + + // Import Page 4: Powers + // Powers over the sheet maximum will be prepended to excess perks and talents in a text field. + character.overflow = importPowers(object, character, script_name); + + // Import Page 5: Perks and Talents + importPerksAndTalents(object, character, script_name); + + // Import Page 5: Complications + importComplications(object, character, script_name); + + // Version + applyVersion(object, character, script_name, versionSheet); + + // Finished notification + sendChat(script_name, '
Import of ' + character.character_name + ' finished.
', null, {noarchive:true}); + }); + + // END MAIN + + +/* **************************************** */ +/* *** Begin Import Functions *** */ +/* **************************************** */ + + var importCharacteristics = function(object, character, script_name) { + + /* ************************************************* */ + /* *** Import Function: Characteristics *** */ + /* ************************************************* */ + + // Set sticky note to importer details. + let importInfoString = "HDImporter for Roll20\n"; + importInfoString = importInfoString + "Version: " + versionMod + "\n"; + if (typeof character.playerName !== "undefined") { + importInfoString = importInfoString + "Player: " + character.playerName + "\n"; + } + if (typeof character.gmName !== "undefined") { + importInfoString = importInfoString + "GM: " + character.gmName + "\n"; + } + if (typeof character.genre !== "undefined") { + importInfoString = importInfoString + "Genre: " + character.genre + "\n"; + } + if (typeof character.campaign !== "undefined") { + importInfoString = importInfoString + "Campaign: " + character.campaign + "\n"; + } + if (typeof character.versionHD !== "undefined") { + importInfoString = importInfoString + "Hero Designer version: " + character.versionHD + "\n"; + } + importInfoString = importInfoString + "HeroSystem6eHeroic.hde version: " + character.version + "\n"; + if (typeof character.characterFile !== "undefined") { + importInfoString = importInfoString + "Original file: " + character.characterFile + "\n"; + } + if (typeof character.timeStamp !== "undefined") { + importInfoString = importInfoString + "Export date: \n " + character.timeStamp + "\n"; + } + + setAttrs(object.id, {portraitStickyNote: importInfoString}); + + + // Set sticky window as visible portrait. + setAttrs(object.id, {portraitSelection: 2}); + + // Set bio-type attributes and experience points. + + let description = ""; + let quote = ""; + + if (character.version >= 1.2) { + quote = character.quote; + quote = quote.trim(); + + description += ((character.appearance).length > 0) ? character.appearance : ""; + description += ((character.backgroundText).length > 0) ? '\n' + '\n' + character.backgroundText : ""; + description += ((character.historyText).length > 0) ? '\n' + '\n' + character.historyText : ""; + description += ((character.tactics).length > 0) ? '\n' + '\n' + character.tactics : ""; + description += ((character.campaignUse).length > 0) ? '\n' + '\n' + character.campaignUse : ""; + description = description.trim(); + description += '\n' + '\n' + character.height + " and " + Math.round(Number((character.weight).replace(/[^0-9.]/g,''))) + " kg."; + description = description.trim(); + } else { + quote = ""; + + description += ((character.historyText).length > 0) ? character.historyText : ""; + description = description.trim(); + } + + let bio_attributes = { + character_title: character.character_title, + backgroundText: quote, + historyText: description, + experience: parseInt(character.experience)||0, + experienceBenefit: parseInt(character.experienceBenefit)||0 + } + + setAttrs(object.id, bio_attributes); + + if(verbose) { + sendChat(script_name, "Imported bio and experience."); + } + + // Set primary attributes. + let primary_attributes = { + strength: parseInt(character.strength)||10, + strengthNet: parseInt(character.strength)||10, + dexterity: parseInt(character.dexterity)||10, + constitution: parseInt(character.constitution)||10, + intelligence: parseInt(character.intelligence)||10, + ego: parseInt(character.ego)||10, + presence: parseInt(character.presence)||10 + } + + setAttrs(object.id, primary_attributes); + + if(verbose) { + sendChat(script_name, "Imported core attributes."); + } + + // Set combat attributes. + let combat_attributes = { + ocv: parseInt(character.ocv)||3, + dcv: parseInt(character.dcv)||3, + omcv: parseInt(character.omcv)||3, + dmcv: parseInt(character.dmcv)||3, + speed: parseInt(character.speed)||2, + pd: parseInt(character.pd)||0, + ed: parseInt(character.ed)||0, + body: parseInt(character.body)||10, + stun: parseInt(character.stun)||0, + hiddenSTUN: parseInt(character.stun)||0, + endurance: parseInt(character.endurance)||0, + recovery: parseInt(character.recovery)||0 + } + + if (character.stun !== "") { + combat_attributes.stun = parseInt(character.stun); + } else { + combat_attributes.stun = 0; + } + + setAttrs(object.id, combat_attributes); + + if(verbose) { + sendChat(script_name, "Imported combat attributes."); + } + + // Set movement attributes. + + let movement_attributes = { + running: parseInt(character.running)||0, + leaping: parseInt(character.leaping)||0, + swimming: parseInt(character.swimming)||0 + }; + + setAttrs(object.id, movement_attributes); + + if(verbose) { + sendChat(script_name, "Imported movement."); + } + + // Set status attributes to starting values + let health_attributes = { + CurrentBODY: character.body, + CurrentSTUN: character.stun, + CurrentEND: character.endurance, + gearCurrentBODY: character.body, + gearCurrentSTUN: character.stun, + gearCurrentEND: character.endurance + } + + setAttrs(object.id, health_attributes); + + if(verbose) { + sendChat(script_name, "Configured health status."); + } + + return; + } + + + function createRandomString(length) { + // random character name from https://sentry.io/answers/generate-random-string-characters-in-javascript/ + const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + let result = ""; + for (let i = 0; i < length; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)); + } + return result; + } + + + var applyVersion = function(object, character, script_name, version) { + // Set version data to avoid improper sheet auto updates. + let version_attributes = { + version: version, + validateMay23: 1, + + // Show the Treasures slide where equipment will appear. + gearSlideSelection : "gearTreasures" + } + + setAttrs(object.id, version_attributes); + } + + + var importManeuvers = function(object, character, script_name) { + + /* ************************************************* */ + /* *** Import Function: Import Maneuvers *** */ + /* ************************************************* */ + + + // Overall list of maneuvers + let maneuverArray = new Array(); + let maneuverArrayIndex = 0; + let temp = 0; + let tempString = ""; + const maxManeuvers = 20; + const maneuverSlots = 10; + let importCount = 0; + let ID = "01"; + + // Imports twenty martial arts maneuvers, skipping empty slots. + // Only the first 10 are imported into sheet slots. + + for (importCount = 1; importCount < maxManeuvers; importCount++) { + + ID = String(importCount).padStart(2,'0'); + + if ((typeof character.maneuvers["maneuver"+ID] !== "undefined") && (typeof character.maneuvers["maneuver"+ID].name !== "undefined")) { + maneuverArray[maneuverArrayIndex] = character.maneuvers["maneuver"+ID]; + + maneuverArrayIndex++; + } + + } + + let importedManeuvers = {}; + importCount = 0; + const nameMax = 16; + + while ( (importCount < maneuverSlots) && (importCount < maneuverArrayIndex) ) { + if (importCount < maneuverArrayIndex) { + ID = String(importCount+1).padStart(2,'0'); + + if ( maneuverArray[importCount].name.length > nameMax) { + importedManeuvers["martialManeuverName"+ID] = maneuverArray[importCount].name.slice(0, nameMax); + importedManeuvers["martialManeuverEffect"+ID] = maneuverArray[importCount].name + '\n' + maneuverArray[importCount].effect; + } else { + importedManeuvers["martialManeuverName"+ID] = maneuverArray[importCount].name; + importedManeuvers["martialManeuverEffect"+ID] = maneuverArray[importCount].effect; + } + + importedManeuvers["martialManeuverCP"+ID] = maneuverArray[importCount].points; + importedManeuvers["martialManeuverPhase"+ID] = maneuverArray[importCount].phase; + temp = Number(maneuverArray[importCount].ocv); + importedManeuvers["martialManeuverOCV"+ID] = isNaN(temp) ? 0 : temp; + temp = Number(maneuverArray[importCount].dcv); + importedManeuvers["martialManeuverDCV"+ID] = isNaN(temp) ? 0 : temp; + + importCount++; + } + } + + // Import maneuvers. + setAttrs(object.id, importedManeuvers); + + if(verbose) { + if (importCount === 1) { + sendChat(script_name, "Imported 1 maneuver."); + } else { + sendChat(script_name, "Imported " + importCount + " maneuvers."); + } + } + + // Display additional maneuvers in the treasures text box. + if (maneuverArrayIndex > maneuverSlots) { + let extras = 0; + + for (let i = maneuverSlots; i < maneuverArrayIndex; i++) { + tempString = tempString + maneuverArray[i].name + "\n"; + tempString = tempString + "CP: " + maneuverArray[i].points + "\n"; + if (maneuverArray[i].ocv !== "") { + tempString = tempString + "OCV: " + maneuverArray[i].ocv + "\n"; + } + if (maneuverArray[i].dcv !== "") { + tempString = tempString + "DCV: " + maneuverArray[i].dcv + "\n"; + } + if (maneuverArray[i].phase !== "") { + tempString = tempString + "Phase: " + maneuverArray[i].phase + "\n"; + } + tempString = tempString + maneuverArray[i].effect + "\n" + "\n"; + extras++; + } + + if(verbose) { + if (extras === 1) { + sendChat(script_name, extras + " maneuver placed in treasures."); + } else { + sendChat(script_name, extras + " maneuvers placed in treasures."); + } + } + + if ( (typeof character.treasures != "undefined") && (character.treasures !== "")) { + tempString = character.treasures + '\n' + '\n' + tempString.trim(); + } else { + tempString = tempString.trim(); + } + + // Place additional maneuvers in the treasures text box. + setAttrs(object.id, {treasures: tempString}); + } + + // Make the Maneuver window visible. + if (importCount>0) { + setAttrs(object.id, {gearSlideSelection: 2}); + } + + return tempString; + } + + + var importEquipment = function(object, character, script_name) { + + /* ************************************************* */ + /* *** Import Function: Import Equipment *** */ + /* ************************************************* */ + + // Imports equipment and sets carried weight. + // Similar to the way perks and talents are handled, we will parse the imported equipment into temporary arrays. + + const strength = parseInt(character.strength)||10; + let gearTextBox = ""; + + let tempString; + let tempPosition; + let secondPosition; + let subStringA; + let subStringB; + let sampleSize; + + // Needed for adjusted damage. + let advantage = 0; + + // Overall array of equipment. + let equipmentArray = new Array(); + let equipmentArrayIndex = 0; + + // Array of items of equipment that are not weapons, armor, or shields. + let equipmentListArray = new Array(); + let equipmentListArrayIndex = 0; + + // Array of items of equipment that are weapons. + let weaponsArray = new Array(); + let weaponsArrayIndex = 0; + + // Array of items of equipment that are weapons. + let armorArray = new Array(); + let armorArrayIndex = 0; + + // Array for multipowers, which need to be independent from others. + let multipowerArray = new Array(); + let multipowerArrayIndex = 0; + + // Read equipment + const maxEquipment = 16; + let importCount = 0; + let imported = 0; + let ID = "01"; + + // Imports sixteen martial arts maneuvers, skipping empty slots. + + for (importCount = 1; importCount <= maxEquipment; importCount++) { + + ID = String(importCount).padStart(2,'0'); + + if ((typeof character.equipment["equipment"+ID] !== "undefined") && (typeof character.equipment["equipment"+ID].name !== "undefined")) { + + equipmentArray[equipmentArrayIndex]=character.equipment["equipment"+ID]; + + tempString = equipmentArray[equipmentArrayIndex].name; + + if ((tempString !== "") && tempString.length) { + if ((equipmentArray[equipmentArrayIndex].name.includes("Multipower")) || (equipmentArray[equipmentArrayIndex].name.includes("MPSlot"))) { + // Then place in multipower array. + multipowerArray[multipowerArrayIndex]=equipmentArray[equipmentArrayIndex]; + multipowerArrayIndex++; + + } else if ((equipmentArray[equipmentArrayIndex].attack !== "") && (equipmentArray[equipmentArrayIndex].damage !== "") && (equipmentArray[equipmentArrayIndex].attack === "true")) { + // If the item is a damage attack add it to the weapon list. + weaponsArray[weaponsArrayIndex]=equipmentArray[equipmentArrayIndex]; + weaponsArrayIndex++; + + } else if ((equipmentArray[equipmentArrayIndex].defense !== "") && (equipmentArray[equipmentArrayIndex].defense === "true")) { + // If the item is a defense add it to the armor list. + // This will need to be updated for shields. + armorArray[armorArrayIndex]=equipmentArray[equipmentArrayIndex]; + armorArrayIndex++; + + } else { + // If the item is not an attack or defense add it to the equipment list. + equipmentListArray[equipmentListArrayIndex]=equipmentArray[equipmentArrayIndex]; + equipmentListArrayIndex++; + } + } + + equipmentArrayIndex++; + } + } + + // Write raw details of imported equipment to the treasures slide. + if (equipmentArrayIndex > 0) { + + // Get current contents of the treasures text box. + tempString = character.overflow + '\n' + '\n'; + + // Add equipment to treasures. + for (let i = 0; i < equipmentArrayIndex; i++) { + tempString += equipmentArray[i].name + '\n'; + if (equipmentArray[i].damage !== "") { + tempString += "Damage: " + equipmentArray[i].damage + ", "; + } + if (equipmentArray[i].end !== "") { + tempString += "END: " + equipmentArray[i].end + ", "; + } + if (equipmentArray[i].range !== "") { + tempString += "Range: " + equipmentArray[i].range + ", "; + } + if (equipmentArray[i].text !== "") { + tempString += equipmentArray[i].text; + if (equipmentArray[i].notes !== "") { + tempString += ", " + equipmentArray[i].notes; + } + } else if (equipmentArray[i].notes !== "") { + tempString += ", " + equipmentArray[i].notes; + } + if (equipmentArray[i].mass !== "") { + tempString += ", Mass: " + equipmentArray[i].mass; + } + if (i < (equipmentArrayIndex + 2)) { + tempString += '\n' + '\n'; + } + } + + if ( (typeof character.treasures != "undefined") && (character.treasures !== "")) { + tempString = character.treasures + '\n' + '\n' + tempString.trim(); + } else { + tempString = tempString.trim(); + } + + setAttrs(object.id, {treasures: tempString}); + + // Show the Treasures Gear Tab slide where the multipower equipment will appear. + setAttrs(object.id, {gearSlideSelection: 3}); + } + + // Prepare object of items that are not weapons or armor. + // Assign to character sheet Equipment List. + + let importedEquipment = new Array(); + importCount = 0; + imported = 0; + + // Prepare Items + for (importCount = 0; importCount < maxEquipment; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + + if (importCount < equipmentListArrayIndex) { + imported += 1; + + // Check for charges. + if (equipmentListArray[importCount].end != "") { + tempString = equipmentListArray[importCount].end; + if (tempString.includes("[")) { + tempString = " (" + parseInt(tempString.replace(/[^\d.-]/g, "")) +")"; + } else { + tempString = ""; + }; + } + + importedEquipment["equipText"+ID] = equipmentListArray[importCount].name; + + // Get item mass. + if (equipmentListArray[importCount].mass !== "") { + tempString = equipmentListArray[importCount].mass; + importedEquipment["equipMass"+ID] = getItemMass(tempString, script_name); + } else { + importedEquipment["equipMass"+ID] = 0; + } + } + } + + // Import equipment. + setAttrs(object.id, importedEquipment); + + if(verbose) { + if (imported === 1) { + sendChat(script_name, "Imported 1 piece of equipment."); + } else { + sendChat(script_name, "Imported "+ imported +" pieces of equipment."); + } + } + + // Prepare objects of weapons. Assign to character sheet Weapon List. + + let importedWeapons = new Array(); + const maxAdvantage = 1; + const maxWeapons = 5; + let tempValue = 0; + + importCount = 0; + imported = 0; + + for (importCount = 0; importCount < maxWeapons; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + + if (importCount < weaponsArrayIndex) { + imported += 1; + + importedWeapons["weaponName"+ID] = weaponsArray[importCount].name; + + // Assign weapon base damage. + importedWeapons["weaponDamage"+ID] = getWeaponDamage(weaponsArray[importCount].damage, script_name); + + tempString = weaponsArray[importCount].text; + if ((typeof tempString !== "undefined") && (tempString !== "")) { + // Look for weapon advantages. + tempValue = getAdvantage(tempString, script_name); + if (tempValue > maxAdvantage) { + importedWeapons["weaponAdvantage"+ID] = maxAdvantage; + } else { + importedWeapons["weaponAdvantage"+ID] = tempValue; + } + + // Check for Killing Attack. + if (tempString.includes("Killing Attack") || tempString.includes("RKA") || tempString.includes("HKA")) { + // importedWeapons.weaponNormalDamage01= "off"; + } else { + importedWeapons["weaponNormalDamage"+ID]= "on"; + } + + // Get OCV bonus or penalty. + importedWeapons["weaponOCV"+ID] = getOCVmodifier(tempString, script_name); + + // Check for range mod adjustment. + if (tempString.includes("vs. Range Modifier")) { + tempPosition=tempString.indexOf("vs. Range Modifier"); + importedWeapons["weaponRangeMod"+ID]= parseInt(tempString.substr(tempPosition-3, 2)); + } else { + importedWeapons["weaponRangeMod"+ID]= 0; + } + + // Check for modified STUN multiplier. + importedWeapons["weaponStunMod"+ID] = getStunModifier(tempString, script_name); + + // Get STR minimum and apply strength. + importedWeapons["weaponStrengthMin"+ID] = getWeaponStrMin(tempString, script_name); + importedWeapons["weaponEnhancedBySTR"+ID] = ( checkDamageBySTR(tempString, script_name) ? "on" : 0); + importedWeapons["weaponStrength"+ID] = ( importedWeapons["weaponEnhancedBySTR"+ID] === "on" ) ? getWeaponStrength(importedWeapons["weaponStrengthMin"+ID], strength, script_name) : Math.min(getWeaponStrMin(tempString, script_name), character.strength); + + // Check for AoE. + importedWeapons["weaponAreaEffect"+ID] = (tempString.includes("Area Of Effect")) ? "on" : 0; + } + + // Check for charges. + tempString = weaponsArray[importCount].end; + if ((typeof tempString !== "undefined") && (tempString !== "")) { + if (tempString.includes("[")) { + importedWeapons["weaponShots"+ID] = parseInt(tempString.replace(/[^\d.-]/g, "")); + } else { + importedWeapons["weaponShots"+ID] = 0; + } + } + + // Get weapon mass. + if (weaponsArray[importCount].mass !== "") { + tempString = weaponsArray[importCount].mass; + importedWeapons["weaponMass"+ID] = getItemMass(tempString, script_name); + } else { + importedWeapons["weaponMass"+ID] = 0; + } + + // Calculate thrown weapon range or assign range without units. + importedWeapons["weaponRange"+ID] = getWeaponRange(weaponsArray[importCount].range, character.strength, importedWeapons["weaponMass"+ID], script_name); + } + + } + + // Import weapons. + + setAttrs(object.id, importedWeapons); + + if(verbose) { + if (imported === 1) { + sendChat(script_name, "Imported 1 weapon."); + } else { + sendChat(script_name, "Imported "+ imported +" weapons."); + } + } + + // Prepare object of armor defenses. Assign to character sheet Armor List. + + let importedArmor = new Array(); + const maxArmor = 4; // The 4th may be overwritten if the character has resistant protection. + + importCount = 0; + imported = 0; + + for (importCount = 0; importCount < maxArmor; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + tempString = "none"; + + if (importCount < armorArrayIndex) { + imported += 1; + + importedArmor["armorName"+ID] = armorArray[importCount].name; + + // Find resistant protection values. + // This needs to be adjusted so that it doesn't pick out other PD/ED stats from elsewhere in the text. + if (typeof armorArray[importCount].text !== "undefined") { + tempString = armorArray[importCount].text; + } + + if (tempString.includes("Resistant Protection")) { + tempPosition = tempString.indexOf("Resistant Protection"); + sampleSize = 14; + subStringA = tempString.substr(tempPosition+20, sampleSize); + + if (subStringA.includes("PD")) { + tempPosition = subStringA.indexOf("PD"); + subStringB = subStringA.slice(Math.max(0, tempPosition-3), tempPosition); + importedArmor["armorPD"+ID] = parseInt(subStringB.replace(/[^\d.-]/g, "")); + importedArmor["totalPD"+ID] = importedArmor["armorPD"+ID] + parseInt(character.pd); + } else { + importedArmor["armorPD"+ID] = 0; + importedArmor["totalPD"+ID] = parseInt(character.pd); + }; + + if (subStringA.includes("ED")) { + tempPosition = subStringA.indexOf("ED"); + subStringB = subStringA.slice(Math.max(0, tempPosition-3), tempPosition); + importedArmor["armorED"+ID] = parseInt(subStringB.replace(/[^\d.-]/g, "")); + importedArmor["totalED"+ID] = importedArmor["armorED"+ID] + parseInt(character.ed); + } else { + importedArmor["armorED"+ID] = 0; + importedArmor["totalED"+ID] = parseInt(character.ed); + }; + }; + + // Activation roll + tempString = armorArray[importCount].text; + + if (tempString.includes("Requires A Roll")) { + tempPosition = tempString.indexOf("Requires A Roll"); + + sampleSize = 4; + subStringA = tempString.substr(tempPosition+15, sampleSize); + subStringB = subStringA.replace(/[^\d]/g, ""); + importedArmor["armorActivation"+ID] = parseInt(subStringB); + } + + // Armor locations. Sometimes locations are stored in the notes field. + if (armorArray[importCount].notes !== "") { + tempString += ", " + armorArray[importCount].notes; + } + importedArmor["armorLocations"+ID] = getArmorLocations(tempString, script_name); + importedArmor["armorEND"+ID] = getArmorEND(tempString, script_name); + + // Get armor mass. + if (armorArray[importCount].mass !== "") { + tempString = armorArray[importCount].mass; + importedArmor["armorMass"+ID] = getItemMass(tempString, script_name); + } else { + importedArmor["armorMass"+ID] = 0; + } + } + } + + // Import armor. + + setAttrs(object.id, importedArmor); + + if(verbose) { + if (imported === 1) { + sendChat(script_name, "Imported 1 piece of armor."); + } else { + sendChat(script_name, "Imported " + imported + " pieces of armor."); + } + } + + // Identify independent multipowers. + let equipmentMultipowers = []; + let shieldSearchIndex; + + for (let i=0; i< multipowerArray.length; i++) { + //sendChat(script_name, "Multipower search "+ i +"."); + if (multipowerArray[i].name.includes("Multipower")) { + equipmentMultipowers.push(i); + } + } + + // Find first shield if any. + let shieldFound = false; + let importedShield = new Array(); + let shieldID = "06"; + + for (let i=0; i < equipmentMultipowers.length; i++) { + // Get next multipower index. + shieldSearchIndex=equipmentMultipowers[i]; + tempString = multipowerArray[shieldSearchIndex].name; + tempString = tempString.toLowerCase(); + + if ( (tempString.includes("shield") || tempString.includes("buckler")) && !shieldFound) { + // Shield found + shieldFound = true; + + if(verbose) { + if (equipmentMultipowers !== "undefined") { + sendChat(script_name, "Found shield multipower."); + } + } + + // Get shield name. + importedShield["weaponName"+shieldID] = multipowerArray[shieldSearchIndex].name.replace("(Multipower)",""); + + // Get STR minimum. + tempString = multipowerArray[shieldSearchIndex].text; + importedShield["weaponStrengthMin"+shieldID] = getWeaponStrMin(tempString, script_name); + + // Get weapon mass. + if (multipowerArray[shieldSearchIndex].mass !== "") { + tempString = multipowerArray[shieldSearchIndex].mass; + importedShield.shieldMass = getItemMass(tempString, script_name); + } else { + importedShield.shieldMass = 0; + } + + // Search for multipower slot that grants DCV. + let foundShieldDCV = false; + + if (i+2 > equipmentMultipowers.length) { + // Shield is the last multipower in the list. + for (let j = shieldSearchIndex; j equipmentMultipowers.length) { + // Shield is the last multipower in the list. + for (let j = shieldSearchIndex; j equipmentMultipowers.length) { + // Item is the last multipower in the list. + for (let j = shieldSearchIndex; j 0) { + + for (importCount = 0; importCount < maxImport; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + + importedTalents["talentName"+ID] = perksAndTalentsArray[importCount].type; + importedTalents["talentText"+ID] = perksAndTalentsArray[importCount].text; + importedTalents["talentCP"+ID] = perksAndTalentsArray[importCount].points; + + if (typeof importedTalents["talentText"+ID] !== "undefined") { + + tempString = importedTalents["talentText"+ID]; + + + // Many of the following roll chances won't be used, but are here for completeness. + + if (tempString.includes("10-")) { + importedTalents["talentRollChance"+ID] = 10; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("11-")) { + importedTalents["talentRollChance"+ID] = 11; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("12-")) { + importedTalents["talentRollChance"+ID] = 12; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("13-")) { + importedTalents["talentRollChance"+ID] = 13; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("14-")) { + importedTalents["talentRollChance"+ID] = 14; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("15-")) { + importedTalents["talentRollChance"+ID] = 15; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("16-")) { + importedTalents["talentRollChance"+ID] = 16; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("17-")) { + importedTalents["talentRollChance"+ID] = 17; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("18-")) { + importedTalents["talentRollChance"+ID] = 18; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("19-")) { + importedTalents["talentRollChance"+ID] = 19; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("20-")) { + importedTalents["talentRollChance"+ID] = 20; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("21-")) { + importedTalents["talentRollChance"+ID] = 21; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("3-")) { + importedTalents["talentRollChance"+ID] = 3; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("4-")) { + importedTalents["talentRollChance"+ID] = 4; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("5-")) { + importedTalents["talentRollChance"+ID] = 5; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("6-")) { + importedTalents["talentRollChance"+ID] = 6; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("7-")) { + importedTalents["talentRollChance"+ID] = 7; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("8-")) { + importedTalents["talentRollChance"+ID] = 8; + importedTalents["talentActivate"+ID] = "on"; + } else if (tempString.includes("9-")) { + importedTalents["talentRollChance"+ID] = 9; + importedTalents["talentActivate"+ID] = "on"; + } + + if ( tempString.includes("d6") ) { + tempPosition = tempString.indexOf("d6") + diceString = tempString.slice(0, tempPosition); + diceString = diceString.slice(-2).replace(/\D/g,"") + "d6"; + importedTalents["talentDice"+ID] = diceString; + } else { + importedTalents["talentDice"+ID] = "0"; + } + } + } + + // Display additional perks and talents in the complications text box. + if (perksAndTalentsIndex > maxCombinedSheet) { + let i = maxCombinedSheet; + let extras = 0; + + for (let i = maxCombinedSheet; i= 1.2) ? 10 : 0; + + let tempString; + let damageString; + let tempPosition; + let tempValue = 0; + let endPosition; + let subStringA; + let subStringB; + let subStringC; + let theEffect = ""; + let sampleSize; + let control = 0; + let base = 0; + let active = 0; + let cost = 0; + let advantages = 0; + let limitations = 0; + let count = 0; + let ID = ""; + + let testObject = { + testString : "", + testEndurance : 0, + powerReducedEND : "standard" + } + + var tempObject = new Object(); + + // Overall list of powers + var importedPowers = new Object(); + let powerArray = new Array(); + let powerArrayIndex = 0; + + let importCount = 0; + + /* ------------------------- */ + /* Read Powers */ + /* ------------------------- */ + + for (importCount; importCount < maxPowers; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + + if ((typeof character.powers["power"+ID] !== "undefined") && (typeof character.powers["power"+ID].name !== "undefined")) { + + tempString = character.powers["power"+ID].name; + + if (tempString.includes("(VPP)")) { + // Varriable Power Pool found. + // The pool needs to be split into control and base parts. + tempString = character.powers["power"+ID].text; + subStringA = tempString.toLowerCase(); + + if (subStringA.includes("base")) { + subStringA = subStringA.slice(tempString.indexOf("base")-4, tempString.indexOf("base")); + subStringA = subStringA.replace(/\D/g, ''); + base = Number(subStringA); + } else { + // Error + base = 0; + } + + control = Math.round(base/2); + + character.powers["power"+ID].base = heroRoundDown(control, 2); + + // Create entry for Control Cost + powerArray[powerArrayIndex]={ + name: character.powers["power"+ID].name + "(control)", + base: control.toString(), + text: character.powers["power"+ID].text, + cost: control.toString(), + endurance: character.powers["power"+ID].endurance, + damage: character.powers["power"+ID].damage, + compound: false + } + powerArrayIndex++; + + // Create entry for Pool Cost + powerArray[powerArrayIndex]={ + name: character.powers["power"+ID].name, + base: base.toString(), + text: JSON.stringify(base) + "-point Power Pool.", + cost: base.toString(), + endurance: character.powers["power"+ID].endurance, + damage: character.powers["power"+ID].damage, + compound: false + } + powerArrayIndex++; + + } else if (tempString.includes("(Multipower)") || tempString.includes("(MPSlot")) { + // Import multipower or multipower slot. + powerArray[powerArrayIndex]=character.powers["power"+ID]; + + powerArrayIndex++; + } else if (character.powers["power"+ID].compound === "true") { + // Check for compound power and import sub power part separately if found. + + tempString = character.powers["power"+ID].text; + count = (tempString.match(/plus/g) || []).length+1; + + // Remove total costs. + if (tempString.includes("(Total:")) { + tempString = tempString.substring(tempString.indexOf(" Real Cost)") + 12); + } + + if(verbose) { + sendChat(script_name, "Compound power with " + JSON.stringify(count) + " parts."); + } + + damageString = character.powers["power"+ID].damage + for (let i=0; i 0) { + + for (importCount = 0; importCount < maxImport; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + + // First fix some known typos. + powerArray[importCount].text = fixKnownSpellingErrors(powerArray[importCount].text, script_name); + + // Assign power effect type. + theEffect = findEffectType(powerArray[importCount].text, script_name); + importedPowers["powerEffect"+ID] = theEffect; + + // If the power does not have a name assign it the effect type. + if (powerArray[importCount].name === "") { + importedPowers["powerName"+ID] = importedPowers["powerEffect"+ID]; + } else { + importedPowers["powerName"+ID] = powerArray[importCount].name; + } + + // Special cases or base cost. + tempCostArray = getPowerBaseCost(character, powerArray[importCount].base, theEffect, powerArray[importCount].text, bonusCP, importedPowers.optionTakesNoSTUN, script_name); + importedPowers["powerBaseCost"+ID] = tempCostArray[0]; + bonusCP = tempCostArray[1]; + + // Determine endurance type, advantages, and limitations. + testObject.testString = powerArray[importCount].text; + testObject.testEndurance = powerArray[importCount].endurance; + + // Get powerReducedEND level and separate endurance limitation or advantage cost. + testObject = findEndurance(testObject); + importedPowers["powerReducedEND"+ID] = testObject.powerReducedEND; + + // Find advantages and limitations values. + importedPowers["powerAdvantages"+ID] = findAdvantages(testObject.testString); + importedPowers["powerLimitations"+ID] = findLimitations(testObject.testString); + importedPowers["powerText"+ID] = (powerArray[importCount].text).trim(); + importedPowers["powerAoE"+ID] = isAoE(testObject.testString) ? "on" : 0; + + // Search for skill roll. + tempObject = requiresRoll(testObject.testString); + importedPowers["powerActivate"+ID] = tempObject.hasRoll ? "on" : 0; + importedPowers["powerSkillRoll"+ID] = tempObject.hasRoll ? tempObject.skillRoll : 18; + + // Search for reduced DCV due to the Concentration limitation. + importedPowers["powerDCV"+ID] = reducedDCV(testObject.testString); + + // Search for zero, half, or full range modifiers. + importedPowers["powerRMod"+ID] = reducedRMod(testObject.testString); + + // Search for a STUNx mod. + importedPowers["powerStunMod"+ID] = modifiedSTUNx(testObject.testString); + + // Assign effect dice. + importedPowers["powerDice"+ID] = getPowerDamage(powerArray[importCount].damage, theEffect, character.strength, script_name); + + // Find and assign power type. Remove export notes from names. + tempString = powerArray[importCount].name; + if (tempString.includes("(Multipower)")) { + // Remove note from name. + importedPowers["powerName"+ID] = tempString.replace("(Multipower) ", ""); + importedPowers["powerType"+ID] = "multipower"; + importedPowers["powerEffect"+ID] = "Multipower"; + } else if (tempString.includes("(MPSlot")) { + subStringA = powerArray[importCount].cost; + if (subStringA.includes("v")) { + // Remove note from name. + importedPowers["powerName"+ID] = tempString.replace("(MPSlot", ""); + importedPowers["powerType"+ID] = "variableSlot"; + } else { + // Remove note from name. + importedPowers["powerName"+ID] = tempString.replace("(MPSlot", ""); + importedPowers["powerType"+ID] = "fixedSlot"; + } + } else if (tempString.includes("(VPP)")) { + if (tempString.includes("control")) { + // Remove notes from name. + tempString = tempString.replace("(VPP) ", ""); + importedPowers["powerName"+ID] = tempString.replace("(control)", ""); + importedPowers["powerType"+ID] = "powerPool"; + importedPowers["powerEffect"+ID] = "VPP Control"; + importedPowers["powerAction"+ID] = "false"; + importedPowers["powerBaseCost"+ID] = powerArray[importCount].base; + } else { + // Remove note from name. + importedPowers["powerName"+ID] = tempString.replace("(VPP) ", ""); + importedPowers["powerType"+ID] = "powerPool"; + importedPowers["powerEffect"+ID] = "VPP Pool"; + importedPowers["powerAction"+ID] = "false"; + } + } else if (powerArray[importCount].compound === true) { + importedPowers["powerType"+ID] = "compound"; + } else if ( (typeof powerArray[importCount].text != "undefined") && (powerArray[importCount].text != "") && ((powerArray[importCount].text).includes("Unified Power")) ) { + importedPowers["powerType"+ID] = "unified"; + } else { + importedPowers["powerType"+ID] = "single"; + } + + // Set attack checkbox for attacks. + importedPowers["powerAttack"+ID] = isAttack(theEffect) ? "on" : 0; + + // Set power type. + importedPowers["powerDamageType"+ID] = getPowerDamageType(theEffect); + + // If Power's effect is Resistant Protection create armor in Armor Slot 4 with a combination of ED and PD. + tempString = (powerArray[importCount].text).toLowerCase(); + + if (theEffect === "Resistant Protection") { + if ( (typeof powerArray[importCount].text != "undefined") && (powerArray[importCount].text != "") ) { + if(verbose) { + sendChat(script_name, "Created Resistant Protection armor."); + } + + tempValue = getResistantPD(powerArray[importCount].text, script_name); + if (tempValue > 0) { + charMod.armorPD04 += tempValue; + if ( (specialArray.some(v => tempString.includes(v))) != true) { + // We don't want to add overall modifications for special cases. + charMod.pdMod += tempValue; + } + if (!pdAddedToTotal) { + charMod.totalPD04 = tempValue + parseInt(character.pd); + pdAddedToTotal = true; + } else { + charMod.totalPD04 += tempValue; + } + charMod.armorName04 = importedPowers["powerName"+ID]; + charMod.armorLocations04 = "3-18"; + tempObject = (requiresRoll(powerArray[importCount].text)); + if (tempObject.hasRoll) { + charMod.armorActivation04 = tempObject.skillRoll; + } else { + charMod.armorActivation04 = 18; + } + } + + tempValue = getResistantED(powerArray[importCount].text, script_name); + if (tempValue > 0) { + charMod.armorED04 += tempValue; + if ( (specialArray.some(v => tempString.includes(v))) != true) { + // We don't want to add overall modifications for special cases. + charMod.edMod += tempValue; + } + if (!edAddedToTotal) { + charMod.totalED04 = tempValue + parseInt(character.ed); + edAddedToTotal = true; + } else { + charMod.totalED04 += tempValue; + } + charMod.armorName04 = importedPowers["powerName"+ID]; + charMod.armorLocations04 = "3-18"; + tempObject = (requiresRoll(powerArray[importCount].text)); + if (tempObject.hasRoll) { + charMod.armorActivation04 = tempObject.skillRoll; + } else { + charMod.armorActivation04 = 18; + } + } + } + } else if (theEffect === "Base PD Mod") { + if ( (typeof powerArray[importCount].text != "undefined") && (powerArray[importCount].text != "") ) { + if(verbose) { + sendChat(script_name, "Added Resistant PD to armor."); + } + + if ( (powerArray[importCount].text).includes("Resistant")) { + charMod.armorPD04 += parseInt(character.pd); + if (!pdAddedToTotal) { + charMod.totalPD04 += parseInt(character.pd); + pdAddedToTotal = true; + } + charMod.armorName04 = importedPowers["powerName"+ID]; + charMod.armorLocations04 = "3-18"; + tempObject = (requiresRoll(powerArray[importCount].text)); + if (tempObject.hasRoll) { + charMod.armorActivation04 = tempObject.skillRoll; + } else { + charMod.armorActivation04 = 18; + } + } + } + } else if (theEffect === "Base ED Mod") { + if ( (typeof powerArray[importCount].text != "undefined") && (powerArray[importCount].text != "") ) { + if(verbose) { + sendChat(script_name, "Added Resistant ED to armor."); + } + + if ( (powerArray[importCount].text).includes("Resistant") ) { + charMod.armorED04 += parseInt(character.ed); + if (!edAddedToTotal) { + charMod.totalED04 += parseInt(character.ed); + edAddedToTotal = true; + } + charMod.armorName04 = importedPowers["powerName"+ID]; + charMod.armorLocations04 = "3-18"; + tempObject = (requiresRoll(powerArray[importCount].text)); + if (tempObject.hasRoll) { + charMod.armorActivation04 = tempObject.skillRoll; + } else { + charMod.armorActivation04 = 18; + } + } + } + } + + // Apply characteristic mods granted by enhancement powers or movement. + tempString = powerArray[importCount].text; + + if ( (typeof tempString != "undefined") && (tempString != "") ) { + switch (theEffect) { + case "Base STR Mod": if (tempString.includes("0 END")) { + importedPowers["optionUntiring"] = "on"; + } + break; + case "Running": charMod.runningMod += getCharacteristicMod(tempString, "Running", script_name); + break; + case "Leaping": charMod.leapingMod += getCharacteristicMod(tempString, "Leaping", script_name); + break; + case "Swimming": charMod.swimmingMod += getCharacteristicMod(tempString, "Swimming", script_name); + break; + case "Flight": charMod.flightMod += getCharacteristicMod(tempString, "Flight", script_name); + break; + case "Enhanced STR": charMod.strengthMod += getCharacteristicMod(tempString, "STR", script_name); + break; + case "Enhanced DEX": charMod.dexterityMod += getCharacteristicMod(tempString, "DEX", script_name); + break; + case "Enhanced CON": charMod.constitutionMod += getCharacteristicMod(tempString, "CON", script_name); + break; + case "Enhanced INT": charMod.intelligenceMod += getCharacteristicMod(tempString, "INT", script_name); + break; + case "Enhanced EGO": charMod.egoMod += getCharacteristicMod(tempString, "EGO", script_name); + break; + case "Enhanced PRE": charMod.presenceMod += getCharacteristicMod(tempString, "PRE", script_name); + break; + case "Enhanced OCV": charMod.ocvMod += getCharacteristicMod(tempString, "OCV", script_name); + break; + case "Enhanced DCV": charMod.dcvMod += getCharacteristicMod(tempString, "DCV", script_name); + break; + case "Enhanced OMCV": charMod.omcvMod += getCharacteristicMod(tempString, "OMCV", script_name); + break; + case "Enhanced DMCV": charMod.dmcvMod += getCharacteristicMod(tempString, "DMCV", script_name); + break; + case "Enhanced BODY": charMod.bodyMod += getCharacteristicMod(tempString, "BODY", script_name); + break; + case "Enhanced PD": charMod.pdMod += getCharacteristicMod(tempString, "PD", script_name); + break; + case "Enhanced ED": charMod.edMod += getCharacteristicMod(tempString, "ED", script_name); + break; + case "Enhanced STUN": charMod.stunMod += getCharacteristicMod(tempString, "STUN", script_name); + break; + case "Enhanced END": charMod.endMod += getCharacteristicMod(tempString, "END", script_name); + break; + case "Enhanced REC": charMod.recMod += getCharacteristicMod(tempString, "REC", script_name); + break; + case "Enhanced PER": if ( tempString.includes("all Sense") ) { + charMod.enhancedPerceptionModifier += getCharacteristicMod(tempString, "PER", script_name); + if ( (tempString.includes("except Sight")) || (tempString.includes("but Sight")) ) { + charMod.perceptionModifierVision += -getCharacteristicMod(tempString, "PER", script_name); + } + if ( (tempString.includes("except Hearing")) || (tempString.includes("but Hearing")) ) { + charMod.perceptionModifierHearing += -getCharacteristicMod(tempString, "PER", script_name); + } + if ( (tempString.includes("except Smell")) || (tempString.includes("but Smell")) ) { + charMod.perceptionModifierSmell += -getCharacteristicMod(tempString, "PER", script_name); + } + } else { + charMod.perceptionModifierVision += (tempString.includes("Sight")) ? getCharacteristicMod(tempString, "PER", script_name) : 0; + charMod.perceptionModifierHearing += (tempString.includes("Hearing")) ? getCharacteristicMod(tempString, "PER", script_name) : 0; + charMod.perceptionModifierSmell += (tempString.includes("Smell")) ? getCharacteristicMod(tempString, "PER", script_name) : 0; + if ( !(tempString.includes("Sight")) && !(tempString.includes("Hearing")) && !(tempString.includes("Smell")) ) { + charMod.enhancedPerceptionModifier += getCharacteristicMod(tempString, "PER", script_name); + } + } + break; + default: break; + } + } + } + } + + // Display additional powers in the talents text box. + tempString = ""; + if (powerArrayIndex > maxPowers) { + let extras = 0; + + for (let i = maxPowers; i < powerArrayIndex; i++) { + tempString += powerArray[i].name + "\n"; + if (powerArray[i].damage !== "") { + tempString += " Damage: " + powerArray[i].damage + "\n"; + } + tempString += " END: " + powerArray[i].endurance + "\n"; + tempString += " Base CP: " + powerArray[i].base + ", " + " Real CP: " + powerArray[i].cost + "\n"; + tempString += powerArray[i].text + "\n" + "\n"; + extras++; + } + + if(verbose) { + sendChat(script_name, extras + " powers placed in notes."); + } + + importedPowers.complicationsTextLeft = tempString; + } + + // Import powers and bonus points to sheet. + importedPowers.bonusBenefit = bonusCP; + + const importedPowersAndMods = Object.assign({}, importedPowers, charMod); + setAttrs(object.id, importedPowersAndMods); + + if(verbose) { + if (powerArrayIndex === 1) { + sendChat(script_name, "Imported 1 power."); + } else { + sendChat(script_name, "Imported " + powerArrayIndex + " powers."); + } + } + + return tempString.trim(); + }; + + + var importComplications = function(object, character, script_name) { + + /* ************************************************* */ + /* *** Import Function: Import Complications *** */ + /* ************************************************* */ + + // Imports the first six complications. + let importCount = 0; + let imported = 0; + let ID = ""; + let tempString = ""; + let diceString = ""; + let tempPosition = 0; + const maxComplications = 10; + const maxOverflow = 10; + let overflowString = ""; + var importedComplications = new Object(); + + /* ------------------------- */ + /* Read Complications */ + /* ------------------------- */ + + for (importCount = 0; importCount < maxComplications + maxOverflow; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + + if (importCount < maxComplications) { + if ((typeof character.complications["complication"+ID] !== "undefined") && (typeof character.complications["complication"+ID].type !== "undefined")) { + importedComplications["complicationName"+ID] = character.complications["complication"+ID].type; + importedComplications["complicationText"+ID] = character.complications["complication"+ID].text + '\n' + character.complications["complication"+ID].notes; + importedComplications["complicationCP"+ID] = character.complications["complication"+ID].points; + + // Type + tempString = character.complications["complication"+ID].type; + tempString = tempString.toLowerCase(); + + if (tempString.includes("accidental change")) { + importedComplications["complicationType"+ID] = "accidental"; + } else if (tempString.includes("dependence")) { + importedComplications["complicationType"+ID] = "dependence"; + } else if (tempString.includes("dependent")) { + importedComplications["complicationType"+ID] = "dependent"; + } else if (tempString.includes("distinctive")) { + importedComplications["complicationType"+ID] = "distinctive"; + } else if ((tempString.includes("enraged")) || (tempString.includes("berserk"))) { + importedComplications["complicationType"+ID] = "enraged"; + } else if (tempString.includes("hunted")) { + importedComplications["complicationType"+ID] = "hunted"; + } else if (tempString.includes("reputation")) { + importedComplications["complicationType"+ID] = "reputation"; + } else if (tempString.includes("physical")) { + importedComplications["complicationType"+ID] = "physical"; + } else if (tempString.includes("psychological")) { + importedComplications["complicationType"+ID] = "psychological"; + } else if (tempString.includes("rival")) { + importedComplications["complicationType"+ID] = "rival"; + } else if (tempString.includes("social")) { + importedComplications["complicationType"+ID] = "social"; + } else if (tempString.includes("susceptibility")) { + importedComplications["complicationType"+ID] = "susceptibility"; + } else if (tempString.includes("unluck")) { + importedComplications["complicationType"+ID] = "unluck"; + } else if (tempString.includes("vulnerability")) { + importedComplications["complicationType"+ID] = "vulnerability"; + } else { + importedComplications["complicationType"+ID] = "custom"; + } + + // Activation Roll + tempString = character.complications["complication"+ID].text + " " + character.complications["complication"+ID].notes; + tempString = tempString.toLowerCase(); + + // Most of these roll options will never be used, but are here for completeness. + + if (tempString.includes("10-")) { + importedComplications["complicationRollChance"+ID] = 10; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("11-")) { + importedComplications["complicationRollChance"+ID] = 11; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("12-")) { + importedComplications["complicationRollChance"+ID] = 12; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("13-")) { + importedComplications["complicationRollChance"+ID] = 13; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("14-")) { + importedComplications["complicationRollChance"+ID] = 14; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("15-")) { + importedComplications["complicationRollChance"+ID] = 15; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("16-")) { + importedComplications["complicationRollChance"+ID] = 16; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("17-")) { + importedComplications["complicationRollChance"+ID] = 17; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("18-")) { + importedComplications["complicationRollChance"+ID] = 18; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("3-")) { + importedComplications["complicationRollChance"+ID] = 3; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("4-")) { + importedComplications["complicationRollChance"+ID] = 4; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("5-")) { + importedComplications["complicationRollChance"+ID] = 5; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("6-")) { + importedComplications["complicationRollChance"+ID] = 6; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("7-")) { + importedComplications["complicationRollChance"+ID] = 7; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("8-")) { + importedComplications["complicationRollChance"+ID] = 8; + importedComplications["complicationActivate"+ID] = "on"; + } else if (tempString.includes("9-")) { + importedComplications["complicationRollChance"+ID] = 9; + importedComplications["complicationActivate"+ID] = "on"; + } + + // Dice + if ( tempString.includes("d6") ) { + tempPosition = tempString.indexOf("d6") + diceString = tempString.slice(0, tempPosition); + diceString = diceString.slice(-2).replace(/\D/g,"") + "d6"; + importedComplications["complicationDice"+ID] = diceString; + } else { + importedComplications["complicationDice"+ID] = "0"; + } + + imported += 1; + } + } else if (importCount < maxComplications + maxOverflow) { + if ((typeof character.complications["complication"+ID] !== "undefined") && (typeof character.complications["complication"+ID].type !== "undefined")) { + overflowString += character.complications["complication"+ID].type + '\n'; + overflowString += character.complications["complication"+ID].text + '\n' + character.complications["complication"+ID].notes + '\n'; + overflowString += "("+character.complications["complication"+ID].points + " points)\n\n"; + + imported += 1; + } + } + } + + importedComplications["complicationsTextRight"] = overflowString; + + if(verbose) { + if (imported === 1) { + sendChat(script_name, "Imported 1 complication."); + } else { + sendChat(script_name, "Imported " + imported + " complications."); + } + } + + // Import complications to sheet. + setAttrs(object.id, importedComplications); + + return; + }; + + + var importAllSkills = function(object, character, script_name) { + + /* ************************************************* */ + /* *** Import Function: Import Skills *** */ + /* ************************************************* */ + + // Struct for counting processed skills. + + let sheetSkillIndexes={ + skillIndex: 0, + generalSkillIndex: 0, + combatSkillIndex: 0, + languageSkillIndex: 0 + } + + const maxSkills = 50; + + for (let importCount = 0; importCount < maxSkills; importCount++) { + + ID = String(importCount+1).padStart(2,'0'); + + if (typeof character.skills["skill"+ID] !== "undefined") {sheetSkillIndexes = importSkill(object, character, script_name, sheetSkillIndexes, character.skills["skill"+ID]);} + } + + return; + }; + + + /* ------------------------- */ + /* Import Helper Functions */ + /* ------------------------- */ + + var cleanQuotes = function(inputString, script_name) { + // Look for double quotes in text that shouldn't be there. Remove them. + + let detailString; + let cleanString; + let frontMatter; + let backMatter; + let startPosition; + let endPosition; + let count = 0; + let matches = 0; + let engagePosition = inputString.indexOf('\"backgroundText\":\"'); + let exitPosition = inputString.indexOf('\"experience\":') - 10; + + for (let i = engagePosition; i < exitPosition; i+=1) { + startPosition = inputString.indexOf('\":\"', i)+1; + endPosition = inputString.indexOf('\", \"', i); + detailString = inputString.slice(startPosition+2, endPosition); + matches = detailString.match(/["]/g); + count = matches ? matches.length : 0; + + if (matches) { + frontMatter = inputString.slice(0, startPosition+2); + backMatter = inputString.slice(endPosition+1); + cleanString = detailString.replace(/["]+/g, ""); + inputString = frontMatter + cleanString + '\"' + backMatter; + + exitPosition -= count; + } + + i += detailString.length - count; + } + + return inputString; + } + + + var importSkill = function(object, character, script_name, sheetSkillIndexes, theSkill) { + // Assign skill to general, combat, language, enhancer, etc. + + if (Object.keys(theSkill).length === 0) { + // Empty Skill. + return sheetSkillIndexes; + + } else if (theSkill.enhancer === "true") { + // Invoke Skill Enhancer Function + importSkillEnhancer(object, character, script_name, theSkill.text); + + } else if (theSkill.display === "Language") { + // Call import language function. + importLanguage(object, character, script_name, theSkill, sheetSkillIndexes.languageSkillIndex); + sheetSkillIndexes.languageSkillIndex++; + + } else if (theSkill.display === "Combat Skill Levels"){ + // Import weapon levels. The combat skill index may or may not be increased. + // This needs to be decided by the function as more general skill levels + // use prepared slots on the character sheet. + sheetSkillIndexes.combatSkillIndex = importWeaponSkill(object, character, script_name, theSkill, sheetSkillIndexes.combatSkillIndex); + + } else if (theSkill.display === "Penalty Skill Levels") { + // Import penalty skill levels. + sheetSkillIndexes.combatSkillIndex = importWeaponSkill(object, character, script_name, theSkill, sheetSkillIndexes.combatSkillIndex); + + } else if (theSkill.display === ("Weapon Familiarity")) { + // Weapon familiarity skill line. + // There should be only one line since Hero Designer lumps them together. + // We need to break them up. + let tempString = theSkill.text; + tempString = tempString.replace(/\s\s+/g, " "); + tempString = tempString.replace("WF: ", ""); + let weaponFamArrayLength = (tempString.split(",").length - 1); + let weaponFamArray = new Array(weaponFamArrayLength); + + for (let i = 0; i <= weaponFamArrayLength; i++) { + // Split up string into weapon groups. + if (i < weaponFamArrayLength) { + // Get first weapon group before a comma. + weaponFamArray[i] = tempString.substr(0, tempString.indexOf(",")); + + // Remove that weapon group from the string. + tempString = tempString.replace(weaponFamArray[i] + ", ", ""); + } else { + // There is only one group left to get. + weaponFamArray[i] = tempString; + } + } + + // Process the skills in weaponFamArray as individual skills. + // The combatSkillIndex will advance each time. + for (let i = 0; i <= weaponFamArrayLength; i++) { + let tempSkill = { + name: "", + enhancer: "", + text: weaponFamArray[i], + display:"Weapon Familiarity", + cost: 0 + } + if (tempSkill.text.includes("Common") || tempSkill.text.includes("Small Arms") || tempSkill.text.includes("Emplaced Weapons") || tempSkill.text.includes("Beam Weapons") || tempSkill.text.includes("Energy Weapons") || tempSkill.text.includes("Early Firearms") || tempSkill.text.includes("Siege Engines")) { + tempSkill.cost = 2; + } else { + tempSkill.cost = 1; + } + + sheetSkillIndexes.combatSkillIndex = importWeaponSkill(object, character, script_name, tempSkill, sheetSkillIndexes.combatSkillIndex); + } + } else if (theSkill.display === ("Transport Familiarity")) { + // Transport familiarity skill line. + // There should be only one line since Hero Designer lumps them together. + // We need to break them up. + let tempString = theSkill.text; + tempString = tempString.replace(/\s\s+/g, " "); + tempString = tempString.replace("TF: ", ""); + let transportFamArrayLength = (tempString.split(",").length - 1); + let transportFamArray = new Array(transportFamArrayLength); + + for (let i = 0; i <= transportFamArrayLength; i++) { + // Split up string into transport groups. + if (i < transportFamArrayLength) { + // Get first weapon group before a comma. + transportFamArray[i] = tempString.substr(0, tempString.indexOf(",")); + + // Remove that weapon group from the string. + tempString = tempString.replace(transportFamArray[i]+", ", ""); + } else { + // There is only one group left to get. + transportFamArray[i] = tempString; + } + } + + // Process the skills in transportFamArray as individual skills. + // The generalSkillIndex will advance each time. + for (let i = 0; i <= transportFamArrayLength; i++) { + let tempSkill = { + name: transportFamArray[i], + enhancer: "", + text: "TF: " + transportFamArray[i], + display:"Transport Familiarity", + cost: 1 + } + + // Find 2-point TF groups. + if (tempSkill.text.includes("Common") || tempSkill.text.includes("Riding") || tempSkill.text.includes("Space Vehicles") || tempSkill.text.includes("Mecha")) { + tempSkill.cost = 2; + } + + sheetSkillIndexes.generalSkillIndex = importGeneralSkill(object, character, script_name, tempSkill, sheetSkillIndexes.generalSkillIndex); + } + } else if (theSkill.display === "Skill Levels") { + // Import non-combat skill levels. + // Groups of three skills will be a challenge. + + if (theSkill.text.includes("three pre-defined Skills")) { + // This type of skill level is recorded along with general skills. + sheetSkillIndexes.generalSkillIndex = importGeneralSkill(object, character, script_name, theSkill, sheetSkillIndexes.generalSkillIndex); + } else if (parseInt(theSkill.cost/theSkill.levels) === 3) { + // This type of skill level is recorded along with general skills. + + sheetSkillIndexes.generalSkillIndex = importGeneralSkill(object, character, script_name, theSkill, sheetSkillIndexes.generalSkillIndex); + } else { + importSkillLevels(object, character, script_name, theSkill); + } + } else { + // Import general skill + + sheetSkillIndexes.generalSkillIndex = importGeneralSkill(object, character, script_name, theSkill, sheetSkillIndexes.generalSkillIndex); + } + + sheetSkillIndexes.skillIndex++; + + return sheetSkillIndexes; + } + + + var importSkillEnhancer = function(object, character, script_name, enhancerString) { + // This function is called when a skill is identified as an enhancer. + // The skills' text will determine which enhancer it is. + let enhancer; + + switch(enhancerString) { + case "Jack of All Trades": + enhancer = { + enhancerJack: "on", + enhancerJackCP: 3 + } + break; + case "Linguist": + enhancer = { + enhancerLing: "on", + enhancerLingCP: 3 + } + break; + case "Scholar": + enhancer = { + enhancerSch: "on", + enhancerSchCP: 3 + } + break; + case "Scientist": + enhancer = { + enhancerSci: "on", + enhancerSciCP: 3 + } + break; + case "Traveler": + enhancer = { + enhancerTrav: "on", + enhancerTravCP: 3 + } + break; + default: + // Well-Connected + enhancer = { + enhancerWell: "on", + enhancerWellCP: 3 + } + } + + setAttrs(object.id, enhancer); + + return; + } + + + var importLanguage = function(object, character, script_name, languageObject, languageIndex) { + // This function is called when a skill is identified as an enhancer. + // The skills' text will determine which enhancer it is. + // let languages; + + let language; + let name = languageObject.name; + let tempString = languageObject.text; + if (name === "") { + if (tempString.includes("Language:")) { + name = tempString.replace("Language:", ""); + } + if (name.includes("(") && name.includes(")")) { + let endPosition = name.indexOf("("); + name = name.slice(0, endPosition-1); + } + } + + let fluency; + let literacy; + let cost = languageObject.cost; + + // Determine fluency. + if (tempString.includes("native")) { + fluency = "native"; + } else if (cost == 0) { + fluency = "native"; + } else if ((cost == 1) && (tempString.includes("literate"))) { + fluency = "native"; + } else if (tempString.includes("basic")) { + fluency = "basic"; + } else if (tempString.includes("completely")) { + fluency = "accent"; + } else if (tempString.includes("fluent")) { + fluency = "fluent"; + } else if (tempString.includes("idiomatic")) { + fluency = "idiomatic"; + } else if (tempString.includes("imitate")) { + fluency = "imitate"; + } else { + fluency = "none"; + } + + // Determine literacy. + if (tempString.includes("literate")) { + literacy = "on"; + } + else { + literacy = 0; + } + + // Assign this language to the character sheet. + + switch(languageIndex) { + case 0: + language = { + skillName41: name, + skillFluency41: fluency, + skillLiteracy41: literacy + } + break; + case 1: + language = { + skillName42: name, + skillFluency42: fluency, + skillLiteracy42: literacy + } + break; + case 2: + language = { + skillName43: name, + skillFluency43: fluency, + skillLiteracy43: literacy + } + break; + case 3: + language = { + skillName44: name, + skillFluency44: fluency, + skillLiteracy44: literacy + } + break; + case 4: + language = { + skillName45: name, + skillFluency45: fluency, + skillLiteracy45: literacy + } + break; + case 5: + language = { + skillName46: name, + skillFluency46: fluency, + skillLiteracy46: literacy + } + break; + case 6: + language = { + skillName47: name, + skillFluency47: fluency, + skillLiteracy47: literacy + } + break; + case 7: + language = { + skillName48: name, + skillFluency48: fluency, + skillLiteracy48: literacy + } + break; + default: + // Last language slot available. + language = { + skillName49: name, + skillFluency49: fluency, + skillLiteracy49: literacy + } + } + + setAttrs(object.id, language); + + return; + } + + + var importWeaponSkill = function(object, character, script_name, skillObject, weaponSkillIndex) { + // Identify and assign combat levels + + let weaponSkill; + let name = skillObject.name; + let levels = parseInt(skillObject.levels); + let levelCost; + let type = 'none'; + let cost = parseInt(skillObject.cost); + + if (skillObject.text.includes("HTH Combat")) { + // Find the number of levels from the CP spent. + weaponSkill = { + skillLevels38: skillObject.levels + }; + + } else if (skillObject.text.includes("Ranged Combat")) { + // Find the number of levels from the CP spent. + weaponSkill = { + skillLevels39: skillObject.levels + }; + + } else if (skillObject.text.includes("All Attacks")) { + // Find the number of levels from the CP spent. + weaponSkill = { + skillLevels40: skillObject.levels + }; + + } else if (skillObject.text.includes("group") || skillObject.text.includes("single") || (skillObject.display === "Weapon Familiarity") || (skillObject.display === "Penalty Skill Levels") || (skillObject.display === "Combat Skill Levels")) { + // Call import weapon skills function. + + // Determine type + if (skillObject.display === "Weapon Familiarity") { + // Weapon familiarity at the moment can be common or single. + if (cost === 1) { + name = skillObject.text; + type = "Fam1"; + levels = 0; + } else { + name = skillObject.text.replace("Weapons", ""); + type = "Fam2"; + levels = 0; + } + } else if (skillObject.display === "Penalty Skill Levels") { + // Determine penalty skill levels + + // Try to shorten the name text. + name = skillObject.text.replace("versus", "vs"); + name = name.replace("Versus", "vs"); + name = name.replace("Location", "Loc"); + name = name.replace("Range", "Rng"); + name = name.replace("Modifiers ", ""); + name = name.replace("Modifier ", ""); + name = name.replace("with", "w/"); + name = name.replace("the ", ""); + + levelCost = parseInt(cost/levels); + switch (levelCost) { + case 1: type = 'PSL1'; + break; + case 2: type = 'PSL2'; + break; + case 3: type = 'PSL3'; + break; + default: 'none'; + } + } else { + // Determine combat skill levels + name = skillObject.text.replace("with", "w/"); + + levelCost = parseInt(cost/levels); + switch (levelCost) { + case 2: type = 'CSL2'; + break; + case 3: type = 'CSL3'; + break; + case 5: type = 'CSL5'; + break; + case 8: type = 'CSL8'; + break; + default: 'none'; + } + } + + // Assign skill parameters to an open weapon skill slot. + switch (weaponSkillIndex) { + case 0: + // Weapon skill slot 1. + weaponSkill = { + skillName31: name, + skillType31: type, + skillLevels31: levels, + skillCP31: cost + } + break; + case 1: + // Weapon skill slot 2. + weaponSkill = { + skillName32: name, + skillType32: type, + skillLevels32: levels, + skillCP32: cost + } + break; + case 2: + // Weapon skill slot 3. + weaponSkill = { + skillName33: name, + skillType33: type, + skillLevels33: levels, + skillCP33: cost + } + break; + case 3: + // Weapon skill slot 4. + weaponSkill = { + skillName34: name, + skillType34: type, + skillLevels34: levels, + skillCP34: cost + } + break; + case 4: + // Weapon skill slot 5. + weaponSkill = { + skillName35: name, + skillType35: type, + skillLevels35: levels, + skillCP35: cost + } + break; + case 5: + // Weapon skill slot 6. + weaponSkill = { + skillName36: name, + skillType36: type, + skillLevels36: levels, + skillCP36: cost + } + break; + case 6: + // Last weapon skill slot available. + weaponSkill = { + skillName37: name, + skillType37: type, + skillLevels37: levels, + skillCP37: cost + } + } + weaponSkillIndex++; + } + + setAttrs(object.id, weaponSkill); + + return weaponSkillIndex; + } + + + var importSkillLevels = function(object, character, script_name, skillObject) { + + if (skillObject.text.includes("all Intellect Skills")) { + // The broad group skill level is ambiguous. + // By default we will guess intellect as the most common. + + if (skillObject.name.includes("nteract")) { + // Look at name to see if player added interaction label. + let skillLevel = { + interactionLevels: skillObject.levels, + interactionLevelsCP: skillObject.levels*4 + } + + if(verbose) { + sendChat(script_name, "Found interaction group levels."); + } + setAttrs(object.id, skillLevel); + } else if (skillObject.name.includes("ntellect")) { + // Look at name to see if player added intellect label. + let skillLevel = { + intellectLevels: skillObject.levels, + intellectLevelsCP: skillObject.levels*4 + } + + if(verbose) { + sendChat(script_name, "Found intellect group levels."); + } + setAttrs(object.id, skillLevel); + } else { + // Assume intellect. + let skillLevel = { + intellectLevels: skillObject.levels, + intellectLevelsCP: skillObject.levels*4 + } + + if(verbose) { + sendChat(script_name, "Found broad group levels. Assuming intellect."); + } + setAttrs(object.id, skillLevel); + } + } else if (skillObject.text.includes("all Agility Skills")) { + let skillLevel = { + agilityLevels: skillObject.levels, + agilityLevelsCP: skillObject.levels*6 + } + setAttrs(object.id, skillLevel); + } else if (skillObject.text.includes("all Non-Combat Skills")) { + let skillLevel = { + noncombatLevels: skillObject.levels, + noncombatLevelsCP: skillObject.levels*10 + } + setAttrs(object.id, skillLevel); + } else if (skillObject.text.includes("Overall")) { + let skillLevel = { + overallLevels: skillObject.levels, + overallLevelsCP: skillObject.levels*12 + } + setAttrs(object.id, skillLevel); + } + + return; + } + + + var importGeneralSkill = function(object, character, script_name, skillObject, generalSkillIndex) { + // Identify and import a general skill. + + var theSkill = new Object(); + let attribute = skillObject.attribute; + let text = skillObject.text; + let type = "none"; + let base = skillObject.base; + let levels = skillObject.levels; + let cost = skillObject.cost; + + if (skillObject.display === ("Skill Levels")) { + // Three-group skill. + type = "group"; + } else if (skillObject.text.includes("three pre-defined Skills")) { + // Three-group skill. + type = "group"; + } else if ((base === "0") && (cost === "0")) { + // Everyman skill. + type = "everyman"; + } else if (text.startsWith("KS") && ((base-levels) === 2)) { + // Knowledge Skill + type = "ks"; + } else if (text.startsWith("KS") && ((base-levels) === 3)) { + // Knowledge Skill based on INT. + type = "intKS"; + } else if (text.startsWith("CK") && ((base-levels) === 2)) { + // City Knowledge Skill + type = "ck"; + } else if (text.startsWith("CK") && ((base-levels) === 3)) { + // City Knowledge Skill based on INT. + type = "intCK"; + } else if (text.startsWith("CuK") && ((base-levels) === 2)) { + // Culture Knowledge Skill + type = "cuk"; + } else if (text.startsWith("CuK") && ((base-levels) === 3)) { + // Culture Knowledge Skill based on INT. + type = "intCuK"; + } else if (text.startsWith("Science Skill") && ((base-levels) === 2)) { + // Science Skill + type = "ss"; + } else if (text.startsWith("Science Skill") && ((base-levels) === 3)) { + // Science Skill based on INT. + type = "intSS"; + } else if (text.startsWith("AK") && ((base-levels) === 2)) { + // Area Knowledge. + type = "ak"; + } else if (text.startsWith("AK") && ((base-levels) === 3)) { + // Area Knowledge Skill based on INT. + type = "intAK"; + } else if (text.startsWith("TF")) { + // Transport familiarity. + type = "tf"; + } else if (text.startsWith("PS")) { + // Professional skill. + type = "ps"; + } else if (attribute === "INT") { + // Intellect skill. + type = "int"; + } else if (attribute === "DEX") { + // Agility skill. + type = "dex"; + } else if (attribute === "PRE") { + // Interact skill. + type = "pre"; + } else if (attribute === "EGO") { + // Ego skill. Probably faith. + type = "ego"; + } else if (attribute === "STR") { + // Strength skill (unusual). + type = "str"; + } else if (attribute === "CON") { + // Constitution skill (unusual). + type = "con"; + } else if ((skillObject.display === "Cramming") || (text.toLowerCase().includes("skill"))) { + // A special skill or group of undetermined skills. + type = "other"; + } else if (cost === "") { + // Empty slot. + type = "none"; + } else { + // Best last guess is combat. + type = "combat"; + } + + // Try to find the best name of the skill. + // It may be in .name, .text, or .display. + + let name = skillObject.name; + if (name === "") { + if ((text !== "") && text.includes("AK: ")) { + name = text.replace("AK: ", ""); + name = name.slice(0, -3); + } else if ((text !== "") && text.includes("KS: ")) { + name = text.replace("KS: ", ""); + name = name.slice(0, -3); + } else if ((text !== "") && text.includes("CK: ")) { + name = text.replace("CK: ", ""); + name = name.slice(0, -3); + } else if ((text !== "") && text.includes("CuK: ")) { + name = text.replace("CuK: ", ""); + name = name.slice(0, -4); + } else if ((text !== "") && text.includes("SS: ")) { + name = text.replace("SS: ", ""); + name = name.slice(0, -3); + } else if ((text !== "") && text.includes("Science Skill: ")) { + name = text.replace("Science Skill: ", ""); + name = name.slice(0, -3); + } else if ((text !== "") && text.includes("PS: ")) { + name = text.replace("PS: ", ""); + name = name.slice(0, -3); + } else if (skillObject.display !== "") { + name = skillObject.display; + } + } + + // Import the skill + ID = String(generalSkillIndex+1).padStart(2,'0'); + theSkill["skillName"+ID] = name.trim(); + theSkill["skillType"+ID] = type; + theSkill["skillCP"+ID] = cost; + if (type === "everyman") { + theSkill["skillRollChance"+ID] = "8"; + } + + setAttrs(object.id, theSkill); + + generalSkillIndex++; + + return generalSkillIndex; + } + + + var findEndurance = function(testObject) { + // Determine endurance type, advantages, and limitations. + // Remove advantage or limitation from tempString so that they aren't counted twice. + + // testObject should have three items: + // testString, testEndurance, powerReducedEND + + let tempString = testObject.testString; + let endString = testObject.testEndurance; + + if ( ((tempString.includes("Costs Endurance (-1/4)")) || (tempString.includes("Costs Half Endurance"))) && (endString.includes("["))) { + testObject.powerReducedEND = "costsENDhalf"; + tempString = tempString.replace("Costs Endurance (-1/4)", ""); + } else if ((tempString.includes("Costs Endurance (-1/2)")) && (endString.includes("["))) { + testObject.powerReducedEND = "costsENDfull"; + tempString = tempString.replace("Costs Endurance (-1/2)", ""); + } else if (endString.includes("[")) { + testObject.powerReducedEND = "noEND"; + } else if (tempString.includes("Costs Endurance (-1/4)")) { + testObject.powerReducedEND = "costsENDhalf"; + tempString = tempString.replace("Costs Endurance (-1/4)", ""); + } else if (tempString.includes("Costs Endurance (-1/2)")) { + testObject.powerReducedEND = "costsENDfull"; + tempString = tempString.replace("Costs Endurance (-1/2)", ""); + } else if ((tempString.includes("Reduced Endurance (1/2 END; +1/2)")) && (tempString.includes("Autofire"))) { + testObject.powerReducedEND = "reducedENDAF"; + tempString = tempString.replace("Reduced Endurance (1/2 END; +1/2)", ""); + } else if (tempString.includes("Reduced Endurance (0 END; +1/2)")) { + testObject.powerReducedEND = "zeroEND"; + tempString = tempString.replace("Reduced Endurance (0 END; +1/2)", ""); + } else if (tempString.includes("Reduced Endurance (0 END; +1)")) { + testObject.powerReducedEND = "zeroENDAF"; + tempString = tempString.replace("Reduced Endurance (0 END; +1)", ""); + } else if (tempString.includes("Reduced Endurance (1/2 END; +1/4)")) { + testObject.powerReducedEND = "reducedEND"; + tempString = tempString.replace("Reduced Endurance (1/2 END; +1/4)", ""); + } else if (tempString.includes("Increased Endurance Cost (x2 END; -1/2)")) { + testObject.powerReducedEND = "increasedENDx2"; + tempString = tempString.replace("Increased Endurance Cost (x2 END; -1/2)", ""); + } else if (tempString.includes("Increased Endurance Cost (x3 END; -1)")) { + testObject.powerReducedEND = "increasedENDx3"; + tempString = tempString.replace("Increased Endurance Cost (x3 END; -1)", ""); + } else if (tempString.includes("Increased Endurance Cost (x4 END; -1 1/2)")) { + testObject.powerReducedEND = "increasedENDx4"; + tempString = tempString.replace("Increased Endurance Cost (x4 END; -1 1/2)", ""); + } else if (tempString.includes("Increased Endurance Cost (x5 END; -2)")) { + testObject.powerReducedEND = "increasedENDx5"; + tempString = tempString.replace("Increased Endurance Cost (x5 END; -2)", ""); + } else if (tempString.includes("Increased Endurance Cost (x6 END; -2 1/2)")) { + testObject.powerReducedEND = "increasedENDx6"; + tempString = tempString.replace("Increased Endurance Cost (x6 END; -2 1/2)", ""); + } else if (tempString.includes("Increased Endurance Cost (x7 END; -3)")) { + testObject.powerReducedEND = "increasedENDx7"; + tempString = tempString.replace("Increased Endurance Cost (x7 END; -3)", ""); + } else if (tempString.includes("Increased Endurance Cost (x8 END; -3 1/2)")) { + testObject.powerReducedEND = "increasedENDx8"; + tempString = tempString.replace("Increased Endurance Cost (x8 END; -3 1/2)", ""); + } else if (tempString.includes("Increased Endurance Cost (x9 END; -3 1/2)")) { + testObject.powerReducedEND3 = "increasedENDx9"; + tempString = tempString.replace("Increased Endurance Cost (x9 END; -3 1/2)", ""); + } else if (tempString.includes("Increased Endurance Cost (x10 END; -4)")) { + testObject.powerReducedEND = "increasedENDx10"; + tempString = tempString.replace("Increased Endurance Cost (x10 END; -4)", ""); + } else if (endString == "") { + testObject.powerReducedEND = "noEND"; + } else if (endString == 0) { + testObject.powerReducedEND = "noEND"; + } else { + testObject.powerReducedEND = "standardEND"; + } + + testObject.testString = tempString; + + return testObject; + } + + + var findEffectType = function(tempString, script_name) { + // Search for and return effect keywords. + + const talentArray = ["absolute range sense", "absolute time sense", "ambidexterity", "animal friendship", "bump of direction", "combat luck", "combat sense", "danger sense", "deadly blow", "double jointed", "eidetic memory", "environmental movement", "lightning calculator", "lightning reflexes", "lightsleap", "off-hand defense", "perfect pitch", "resistance", "simulate death", "speed reading", "striking appearance", "universal translator", "weaponmaster"]; + const skillArray = ["overall"]; + const senseModifierArray = ["analyze", "concealed", "adjacent", "dimensional", "discriminatory", "increased arc", "microscopic", "penetrative", "range", "rapid", "telescopic", "tracking", "transmit"]; + + if ( (typeof tempString != "undefined") && (tempString != "") ) { + let lowerCaseString = tempString.toLowerCase(); + + if (lowerCaseString.includes("applied to str")) { + return "Base STR Mod"; + } else if (lowerCaseString.includes("range based on str") && lowerCaseString.includes("of hka")) { + return "HKA Mod"; + } else if (lowerCaseString.includes("applied to running")) { + return "Base Running Mod"; + } else if (lowerCaseString.includes("applied to leaping")) { + return "Base Leaping Mod"; + } else if (lowerCaseString.includes("applied to swimming")) { + return "Base Swimming Mod"; + } else if (lowerCaseString.includes("applied to pd")) { + return "Base PD Mod"; + } else if (lowerCaseString.includes("applied to ed")) { + return "Base ED Mod"; + } else if (tempString.includes("Absorption")) { + return "Absorption"; + } else if (tempString.includes("Aid")) { + return "Aid"; + } else if (tempString.includes("Automaton")) { + return "Automaton"; + } else if (tempString.includes("Barrier")) { + return "Barrier"; + } else if (tempString.includes("Blast")) { + return "Blast"; + } else if (tempString.includes("Change Environment")) { + return "Change Environment"; + } else if (tempString.includes("Clairsentience")) { + return "Clairsentience"; + } else if (tempString.includes("Clinging")) { + return "Clinging"; + } else if (tempString.includes("Damage Negation")) { + return "Damage Negation"; + } else if (tempString.includes("Damage Reduction")) { + return "Damage Reduction"; + } else if (tempString.includes("Darkness")) { + return "Darkness"; + } else if (tempString.includes("Deflection")) { + return "Deflection"; + } else if (tempString.includes("Density Increase")) { + return "Density Increase"; + } else if (tempString.includes("Desolidification")) { + return "Desolidification"; + } else if (tempString.includes("Dispel")) { + return "Dispel"; + } else if (tempString.includes("Does Not Bleed")) { + return "Does Not Bleed"; + } else if (tempString.includes("Drain")) { + return "Drain"; + } else if (tempString.includes("Duplication")) { + return "Duplication"; + } else if (tempString.includes("Enhanced Senses")) { + return "Enhanced Senses"; + } else if (tempString.includes("Endurance Reserve")) { + return "Endurance Reserve"; + } else if (tempString.includes("Extra Limb")) { + return "Extra Limb"; + } else if (tempString.includes("Extra-Dimensional Movement")) { + return "Extra-Dimensional Movement"; + } else if (tempString.includes("Faster-Than-Light-Travel")) { + return "Faster-Than-Light-Travel"; + } else if (tempString.includes("Resistant")) { + return "Resistant Protection"; + } else if (tempString.includes("Flash")) { + return "Flash"; + } else if (tempString.includes("Flash Defense")) { + return "Flash Defense"; + } else if (tempString.includes("Flight")) { + return "Flight"; + } else if (tempString.includes("Growth")) { + return "Growth"; + } else if (tempString.includes("Hand-To-Hand Attack")) { + return "HTH Attack"; + } else if (tempString.includes("Healing")) { + return "Healing"; + } else if (tempString.includes("Invisibility")) { + return "Invisibility"; + } else if (tempString.includes("Killing Attack - Hand-To-Hand")) { + return "HTH Killing Attack"; + } else if (tempString.includes("HKA")) { + return "HTH Killing Attack"; + } else if ( (tempString.includes("Images")) && !(lowerCaseString.includes("only to perceive images")) ) { + return "Images"; + } else if (tempString.includes("Killing Attack - Ranged")) { + return "Ranged Killing Attack"; + } else if (tempString.includes("RKA")) { + return "Ranged Killing Attack"; + } else if (tempString.includes("Knockback Resistance")) { + return "Knockback Resistance"; + } else if (tempString.includes("Leaping")) { + return "Leaping"; + } else if (tempString.includes("Life Support")) { + return "Life Support"; + } else if (tempString.includes("Luck")) { + return "Luck"; + } else if (tempString.includes("Mental Blast")) { + return "Mental Blast"; + } else if (tempString.includes("Transform")) { + return "Transform"; + } else if (tempString.includes("Mental Defense")) { + return "Mental Defense"; + } else if (tempString.includes("Mental Illusions")) { + return "Mental Illusions"; + } else if (tempString.includes("Mind Control")) { + return "Mind Control"; + } else if (tempString.includes("Mind Link")) { + return "Mind Link"; + } else if (tempString.includes("Mind Scan")) { + return "Mind Scan"; + } else if (tempString.includes("Multiform")) { + return "Multiform"; + } else if (tempString.includes("No Hit Locations")) { + return "No Hit Locations"; + } else if (tempString.includes("Possession")) { + return "Possession"; + } else if (tempString.includes("Power Defense")) { + return "Power Defense"; + } else if (tempString.includes("Reach")) { + return "Reach"; + } else if (tempString.includes("Reflection")) { + return "Reflection"; + } else if (tempString.includes("Regeneration")) { + return "Regeneration"; + } else if (tempString.includes("Running")) { + return "Running"; + } else if (tempString.includes("Shape Shift")) { + return "Shape Shift"; + } else if (tempString.includes("Shrinking")) { + return "Shrinking"; + } else if (tempString.includes("Stretching")) { + return "Stretching"; + } else if (tempString.includes("Summon")) { + return "Summon"; + } else if (tempString.includes("Swimming")) { + return "Swimming"; + } else if (tempString.includes("Swinging")) { + return "Swinging"; + } else if (tempString.includes("Takes No STUN")) { + return "Takes No STUN"; + } else if (tempString.includes("Telekinesis")) { + return "Telekinesis"; + } else if (tempString.includes("Telepathy")) { + return "Telepathy"; + } else if (tempString.includes("Teleportation")) { + return "Teleportation"; + } else if (tempString.includes("Tunneling")) { + return "Tunneling"; + } else if (tempString.includes("Active Sonar")) { + return "Active Sonar"; + } else if (tempString.includes("Detect")) { + return "Detect"; + } else if (tempString.includes("Enhanced Perception")) { + return "Enhanced PER"; + } else if ( (tempString.includes("High Range Radio")) || (tempString.includes("HRRP")) ) { + return "HR Radio PER"; + } else if (tempString.includes("Infrared Perception")) { + return "IR Perception"; + } else if (tempString.includes("IR Perception")) { + return "IR Perception"; + } else if (tempString.includes("Mental Awareness")) { + return "Mental Awareness"; + } else if (tempString.includes("Nightvision")) { + return "Nightvision"; + } else if (tempString.includes("Radar")) { + return "Radar"; + } else if (tempString.includes("Radio Perception/Transmission")) { + return "Radio PER/Trans"; + } else if (tempString.includes("Radio Perception")) { + return "Radio PER"; + } else if (tempString.includes("Spatial Awareness")) { + return "Spatial Awareness"; + } else if (tempString.includes("Tracking")) { + return "Enhanced Sense"; + } else if (tempString.includes("Ultrasonic Perception")) { + return "Ultrasonic PER"; + } else if (tempString.includes("Ultraviolet Perception")) { + return "UV Perception"; + } else if (skillArray.some(v => lowerCaseString.includes(v))) { + return "Skill"; + } else if (talentArray.some(v => lowerCaseString.includes(v))) { + return "Talent"; + } else if (senseModifierArray.some(v => lowerCaseString.includes(v))) { + return "Sense Modifier"; + } else if (tempString.includes("SPD")) { + return "Enhanced SPD"; + } else if (tempString.includes("PER")) { + return "Enhanced PER"; + } else if (tempString.includes("STR")) { + return "Enhanced STR"; + } else if (tempString.includes("CON")) { + return "Enhanced CON"; + } else if (tempString.includes("INT")) { + return "Enhanced INT"; + } else if (tempString.includes("EGO")) { + return "Enhanced EGO"; + } else if (tempString.includes("PRE")) { + return "Enhanced PRE"; + } else if (tempString.includes("OCV")) { + return "Enhanced OCV"; + } else if (tempString.includes("OMCV")) { + return "Enhanced OMCV"; + } else if (tempString.includes("DMCV")) { + return "Enhanced DMCV"; + } else if (tempString.includes("PD")) { + return "Enhanced PD"; + } else if (tempString.includes("ED")) { + return "Enhanced ED"; + } else if (tempString.includes("BODY")) { + return "Enhanced BODY"; + } else if (tempString.includes("STUN")) { + return "Enhanced STUN"; + } else if (tempString.includes("REC")) { + return "Enhanced REC"; + } else if (tempString.includes("DEX")) { + return "Enhanced DEX"; + } else if (lowerCaseString.includes("sight") || lowerCaseString.includes("hearing") || lowerCaseString.includes("smell") || lowerCaseString.includes("taste") || lowerCaseString.includes("touch") || lowerCaseString.includes("sense")) { + return "Enhanced PER"; + } else if (lowerCaseString.includes("eating") || lowerCaseString.includes("immunity") || lowerCaseString.includes("longevity") || lowerCaseString.includes("safe in") || lowerCaseString.includes("breathing") || lowerCaseString.includes("sleeping")) { + return "Life Support"; + } else if (tempString.includes("Entangle")) { + return "Entangle"; + } else if ( (lowerCaseString.includes("advantage")) || (lowerCaseString.includes("area of effect")) ) { + return "Naked Advantage"; + } else if (lowerCaseString.includes("worth of") || lowerCaseString.includes("powers") || lowerCaseString.includes("spells") || lowerCaseString.includes("abilities")) { + return "To Be Determined"; + } else if (tempString.includes("DCV")) { + return "Enhanced DCV"; + } else if (tempString.includes("END")) { + return "Enhanced END"; + } else { + return "Unknown Effect"; + } + } else { + return "Unknown Effect"; + } + } + + + var fixKnownSpellingErrors = function(theString, script_name) { + // Here we try to catch and correct important typos found in tested commercial sources. + // Add to typoList as needed. + + const typoList = [ + ["Restistant", "Resistant"] + ]; + + const iMax = 1; + let found = false; + let i = 0; + + if ( (typeof theString != "undefined") && (theString != "") ) { + while ( (i < iMax) && !found ) { + if (theString.includes(typoList[i][0])) { + theString = theString.replace(typoList[i][0], typoList[i][1]); + found = true; + } + + i++; + } + } + + return theString; + } + + + var isAttack = function (effect) { + // For setting the attack state. + const attackSet = new Set(["Blast", "Dispel", "Drain", "Entangle", "Flash", "Healing", "HTH Attack", "HTH Killing Attack", "Mental Blast", "Mental Illusions", "Mind Control", "Mind Link", "Mind Scan", "Ranged Killing Attack", "Telekinesis", "Telepathy", "Transform"]); + + return attackSet.has(effect) ? true : false; + } + + + var getResistantPD = function (inputString, script_name) { + // For Armor slot 4. + let protection = 0; + let startPosition = 0; + let endPosition = 0; + let tempString = inputString; + + if (inputString.includes("PD/")) { + endPosition = inputString.indexOf("PD/"); + tempString = inputString.slice(endPosition-Math.min(4,endPosition), endPosition); + tempString = tempString.replace(/[^0-9]/g, ""); + protection = (tempString !== "") ? Number(tempString) : 0; + protection = isNaN(protection) ? 0 : protection; + } else if (inputString.includes("PD")) { + endPosition = inputString.indexOf("PD"); + tempString = inputString.slice(endPosition-Math.min(4,endPosition), endPosition); + tempString = tempString.replace(/[^0-9]/g, ""); + protection = (tempString !== "") ? Number(tempString) : 0; + protection = isNaN(protection) ? 0 : protection; + } else { + protection = 0; + } + + return protection; + } + + + var getResistantED = function (inputString, script_name) { + // For Armor slot 4. + let protection = 0; + let startPosition = 0; + let endPosition = 0; + let tempString = inputString; + + if (inputString.includes("PD/ED")) { + endPosition = inputString.indexOf("PD/ED"); + tempString = inputString.slice(endPosition-Math.min(3, endPosition), endPosition); + tempString = tempString.replace(/[^0-9]/g, ""); + protection = (tempString !== "") ? Number(tempString) : 0; + protection = isNaN(protection) ? 0 : protection; + } else if (inputString.includes("PD/")) { + if (inputString.includes("ED")) { + endPosition = inputString.indexOf("ED"); + tempString = inputString.slice(endPosition-Math.min(4,endPosition), endPosition); + tempString = tempString.replace(/[^0-9]/g, ""); + protection = (tempString !== "") ? Number(tempString) : 0; + protection = isNaN(protection) ? 0 : protection; + } else if (inputString.includes("ED/")) { + endPosition = inputString.indexOf("ED/"); + tempString = inputString.slice(endPosition-Math.min(4,endPosition), endPosition); + tempString = tempString.replace(/[^0-9]/g, ""); + protection = (tempString !== "") ? Number(tempString) : 0; + protection = isNaN(protection) ? 0 : protection; + } + } else if (inputString.includes("ED")) { + endPosition = inputString.indexOf("ED"); + tempString = inputString.slice(endPosition-Math.min(4,endPosition), endPosition); + tempString = tempString.replace(/[^0-9]/g, ""); + protection = (tempString !== "") ? Number(tempString) : 0; + protection = isNaN(protection) ? 0 : protection; + } else { + protection = 0; + } + + return protection; + } + + + var getPowerDamageType = function (effect) { + // For setting the attack state. + const killingSet = new Set(["HTH Killing Attack", "Ranged Killing Attack"]); + const normalSet = new Set(["Blast", "HTH Attack"]); + const mentalSet = new Set(["Mental Blast", "Mental Illusions", "Mind Control", "Mind Link", "Mind Scan", "Telepathy"]); + let damageType = null; + + if (killingSet.has(effect)) { + damageType = "killing"; + } else if (mentalSet.has(effect)) { + damageType = "mental"; + } else if (normalSet.has(effect)) { + damageType = "normal"; + } else { + damageType = "power"; + } + + return damageType; + } + + + var getPowerBaseCost = function(character, base, effect, text, bonus, option, script_name) { + // For ordinary powers, this function simply returns the imported base cost. + // For stat modification powers, this function assigns a base cost determined from the characteristic + // and also awards those points as bonus points so that the character is not charged twice. + // For 'to be determined' powers the function attempts to parse the base cost from the power's text. + + let powerBaseCost = parseInt(base); + let bonusCP = parseInt(bonus); + let slicePosition = 0; + let tempValue = 0; + let tempString = ""; + + if (effect === "Base STR Mod") { + powerBaseCost = parseInt(character.strength); + bonusCP = bonusCP + powerBaseCost; + } else if (effect === "Base Running Mod") { + powerBaseCost = parseInt(character.running); + bonusCP = bonusCP + powerBaseCost; + } else if (effect === "Base Leaping Mod") { + powerBaseCost = parseInt(Math.round(character.leaping/2)); + bonusCP = bonusCP + powerBaseCost; + } else if (effect === "Base Swimming Mod") { + powerBaseCost = parseInt(Math.round(character.swimming/2)); + bonusCP = bonusCP + powerBaseCost; + } else if (effect === "Base Defense Mod") { + if (option === "on") { + // Determine pd cost. If character has takes No STUN triple cost over the base 2. + if ((option === "on") && (character.pd > 1)) { + powerBaseCost = parseInt(1 + (character.pd - 1)*3); + bonusCP = bonusCP + powerBaseCost; + } else { + powerBaseCost = parseInt(character.pd*1); + bonusCP = bonusCP + powerBaseCost; + } + + // Add ed cost. If character has takes No STUN triple cost over the base 2. + if ((option === "on") && (character.ed > 1)) { + powerBaseCost = powerBaseCost + parseInt(1 + (character.ed - 1)*3); + bonusCP = bonusCP + powerBaseCost; + } else { + powerBaseCost = powerBaseCost + parseInt(character.ed*1); + bonusCP = bonusCP + powerBaseCost; + } + } else { + powerBaseCost = parseInt(character.pd*1) + parseInt(character.ed*1); + bonusCP = bonusCP + powerBaseCost; + } + } else if (effect === "Base PD Mod") { + // If character has takes No STUN triple cost over the base 2. + if ((option === "on") && (character.pd > 1)) { + powerBaseCost = parseInt(1 + (character.pd - 1)*3); + bonusCP = bonusCP + powerBaseCost; + } else { + powerBaseCost = parseInt(character.pd*1); + bonusCP = bonusCP + powerBaseCost; + } + } else if (effect === "Base ED Mod") { + // If character has takes No STUN triple cost over the base 2. + if ((option === "on") && (character.ed > 1)) { + powerBaseCost = parseInt(1 + (character.ed - 1)*3); + bonusCP = bonusCP + powerBaseCost; + } else { + powerBaseCost = parseInt(character.ed*1); + bonusCP = bonusCP + powerBaseCost; + } + } else if (effect === "Endurance Reserve") { + // Special cost due to separate END and REC purchases. + slicePosition = text.indexOf("END"); + tempString = text.slice(Math.max(0, slicePosition-7), slicePosition); + + tempValue = tempString.replace(/[^0-9\-]/g, ''); + if (tempValue === "") { + tempValue = 0; + } + powerBaseCost = Math.round(tempValue/4); + + slicePosition = text.indexOf("REC"); + tempString = text.slice(Math.max(0, slicePosition-6), slicePosition); + + tempValue = tempString.replace(/[^0-9\-]/g, ''); + if (tempValue === "") { + tempValue = 0; + } + powerBaseCost += Math.round(2 * tempValue/3); + } else if (effect === "To Be Determined") { + // Workaround for when sometimes points reported as base are incorrect. + if ((text.match(/^\d+|\d+\b|\d+(?=\w)/g) !== null) && (text.match(/^\d+|\d+\b|\d+(?=\w)/g) !== "")) { + powerBaseCost = text.match(/^\d+|\d+\b|\d+(?=\w)/g)[0]; + } else { + // If the array came up empty, default to base cost. + powerBaseCost = parseInt(base); + } + } + + if (bonus != bonusCP) { + if(verbose) { + sendChat(script_name, JSON.stringify(bonusCP - bonus) + " CP added to Bonus."); + } + } + + return [powerBaseCost, bonusCP]; + } + + + var findAdvantages = function(tempString) { + // Determine total limitations. This will take some doing. + + let advantages = 0; + + // Find half-integers. Replace larger ones first. + advantages = advantages + ((tempString.match(/\+5 1\/2\)/g) || []).length)*5.5; + tempString = tempString.replace("+5 1/2)",""); + advantages = advantages + ((tempString.match(/\+4 1\/2\)/g) || []).length)*4.5; + tempString = tempString.replace("+4 1/2)",""); + advantages = advantages + ((tempString.match(/\+3 1\/2\)/g) || []).length)*3.5; + tempString = tempString.replace("+3 1/2)",""); + advantages = advantages + ((tempString.match(/\+2 1\/2\)/g) || []).length)*2.5; + tempString = tempString.replace("+2 1/2)",""); + advantages = advantages + ((tempString.match(/\+1 1\/2\)/g) || []).length)*1.5; + tempString = tempString.replace("+1 1/2)",""); + advantages = advantages + ((tempString.match(/\+1\/2\)/g) || []).length)*0.5; + tempString = tempString.replace("+1/2)",""); + + // Find three-quarter integers. Replace larger ones first. + advantages = advantages + ((tempString.match(/\+5 3\/4\)/g) || []).length)*5.75; + tempString = tempString.replace("+5 3/4)",""); + advantages = advantages + ((tempString.match(/\+4 3\/4\)/g) || []).length)*4.75; + tempString = tempString.replace("+4 3/4)",""); + advantages = advantages + ((tempString.match(/\+3 3\/4\)/g) || []).length)*3.75; + tempString = tempString.replace("+3 3/4)",""); + advantages = advantages + ((tempString.match(/\+2 3\/4\)/g) || []).length)*2.75; + tempString = tempString.replace("+2 3/4)",""); + advantages = advantages + ((tempString.match(/\+1 3\/4\)/g) || []).length)*1.75; + tempString = tempString.replace("+1 3/4)",""); + advantages = advantages + ((tempString.match(/\+3\/4\)/g) || []).length)*0.75; + tempString = tempString.replace("+3/4)",""); + + // Find quarter integers. Replace larger ones first. + advantages = advantages + ((tempString.match(/\+5 1\/4\)/g) || []).length)*5.25; + tempString = tempString.replace("+5 1/4)",""); + advantages = advantages + ((tempString.match(/\+4 1\/4\)/g) || []).length)*4.25; + tempString = tempString.replace("+4 1/4)",""); + advantages = advantages + ((tempString.match(/\+3 1\/4\)/g) || []).length)*3.25; + tempString = tempString.replace("+3 1/4)",""); + advantages = advantages + ((tempString.match(/\+2 1\/4\)/g) || []).length)*2.25; + tempString = tempString.replace("+2 1/4)",""); + advantages = advantages + ((tempString.match(/\+1 1\/4\)/g) || []).length)*1.25; + tempString = tempString.replace("+1 1/4)",""); + advantages = advantages + ((tempString.match(/\+1\/4\)/g) || []).length)*0.25; + tempString = tempString.replace("+1/4)",""); + + // Find whole integers. Replace larger ones first. + advantages = advantages + ((tempString.match(/\+6\)/g) || []).length)*6; + tempString = tempString.replace("+6)",""); + advantages = advantages + ((tempString.match(/\+5\)/g) || []).length)*5; + tempString = tempString.replace("+5)",""); + advantages = advantages + ((tempString.match(/\+4\)/g) || []).length)*4; + tempString = tempString.replace("+4)",""); + advantages = advantages + ((tempString.match(/\+3\)/g) || []).length)*3; + tempString = tempString.replace("+3)",""); + advantages = advantages + ((tempString.match(/\+2\)/g) || []).length)*2; + tempString = tempString.replace("+2)",""); + advantages = advantages + ((tempString.match(/\+1\)/g) || []).length)*1; + tempString = tempString.replace("+1)",""); + + return advantages; + } + + var findLimitations = function(tempString) { + // Determine total limitations. This will take some doing. + + let limitations = 0; + + // Find half-integers. Replace larger ones first. + limitations = limitations + ((tempString.match(/-5 1\/2\)/g) || []).length)*5.5; + tempString = tempString.replace("-5 1/2)",""); + limitations = limitations + ((tempString.match(/-4 1\/2\)/g) || []).length)*4.5; + tempString = tempString.replace("-4 1/2)",""); + limitations = limitations + ((tempString.match(/-3 1\/2\)/g) || []).length)*3.5; + tempString = tempString.replace("-3 1/2)",""); + limitations = limitations + ((tempString.match(/-2 1\/2\)/g) || []).length)*2.5; + tempString = tempString.replace("-2 1/2)",""); + limitations = limitations + ((tempString.match(/-1 1\/2\)/g) || []).length)*1.5; + tempString = tempString.replace("-1 1/2)",""); + limitations = limitations + ((tempString.match(/-1\/2\)/g) || []).length)*0.5; + tempString = tempString.replace("-1/2)",""); + + // Find three-quarter integers. Replace larger ones first. + limitations = limitations + ((tempString.match(/-5 3\/4\)/g) || []).length)*5.75; + tempString = tempString.replace("-5 3/4)",""); + limitations = limitations + ((tempString.match(/-4 3\/4\)/g) || []).length)*4.75; + tempString = tempString.replace("-4 3/4)",""); + limitations = limitations + ((tempString.match(/-3 3\/4\)/g) || []).length)*3.75; + tempString = tempString.replace("-3 3/4)",""); + limitations = limitations + ((tempString.match(/-2 3\/4\)/g) || []).length)*2.75; + tempString = tempString.replace("-2 3/4)",""); + limitations = limitations + ((tempString.match(/-1 3\/4\)/g) || []).length)*1.75; + tempString = tempString.replace("-1 3/4)",""); + limitations = limitations + ((tempString.match(/-3\/4\)/g) || []).length)*0.75; + tempString = tempString.replace("-3/4)",""); + + // Find quarter integers. Replace larger ones first. + limitations = limitations + ((tempString.match(/-5 1\/4\)/g) || []).length)*5.25; + tempString = tempString.replace("-5 1/4)",""); + limitations = limitations + ((tempString.match(/-4 1\/4\)/g) || []).length)*4.25; + tempString = tempString.replace("-4 1/4)",""); + limitations = limitations + ((tempString.match(/-3 1\/4\)/g) || []).length)*3.25; + tempString = tempString.replace("-3 1/4)",""); + limitations = limitations + ((tempString.match(/-2 1\/4\)/g) || []).length)*2.25; + tempString = tempString.replace("-2 1/4)",""); + limitations = limitations + ((tempString.match(/-1 1\/4\)/g) || []).length)*1.25; + tempString = tempString.replace("-1 1/4)",""); + limitations = limitations + ((tempString.match(/-1\/4\)/g) || []).length)*0.25; + tempString = tempString.replace("-1/4)",""); + + // Find whole integers. Replace larger ones first. + limitations = limitations + ((tempString.match(/-6\)/g) || []).length)*6; + tempString = tempString.replace("-6)",""); + limitations = limitations + ((tempString.match(/-5\)/g) || []).length)*5; + tempString = tempString.replace("-5)",""); + limitations = limitations + ((tempString.match(/-4\)/g) || []).length)*4; + tempString = tempString.replace("-4)",""); + limitations = limitations + ((tempString.match(/-3\)/g) || []).length)*3; + tempString = tempString.replace("-3)",""); + limitations = limitations + ((tempString.match(/-2\)/g) || []).length)*2; + tempString = tempString.replace("-2)",""); + limitations = limitations + ((tempString.match(/-1\)/g) || []).length)*1; + tempString = tempString.replace("-1)",""); + + return limitations; + } + + + var isAoE = function(inputString) { + // Search advantages for any that indicate an Area of Effect power. + // Written so as to be able to look for more than just "area" but this may be enough. + inputString = inputString.replace(/\W/g, " "); + inputString = inputString.toLowerCase(); + + const searchSet = new Set(["area"]); + let setOfWords = new Set(inputString.split(" ")); + let intersection = new Set([...setOfWords].filter(x => searchSet.has(x))); + let answer = false; + + if (intersection.size != 0) { + answer = true; + } + + return answer; + } + + + var requiresRoll = function(inputString) { + // Determine if the power as an activation roll and find it if it is simple. + let lowerCaseString = inputString.toLowerCase(); + let detailString; + let startPosition; + let endPosition; + let answer = false; + let value = 18; + let searchSet = new Set(["skill", "characteristic", "ps", "ks", "ss", "attack", "per"]); + let setOfWords; + let intersection; + + if (lowerCaseString.includes("requires a roll")) { + + answer = true; + + // Attempt to obtain the skill roll needed if it is a simple activation roll. The others + // would require guesses, which means we need to leave the decision to the players. + + startPosition = lowerCaseString.indexOf("requires a roll"); + startPosition = lowerCaseString.indexOf("(", startPosition); + endPosition = lowerCaseString.indexOf(")", startPosition); + detailString = lowerCaseString.slice(startPosition, endPosition); + setOfWords = new Set((detailString.replace(/\W/g, " ").split(" "))); + intersection = new Set([...setOfWords].filter(x => searchSet.has(x))); + + if (intersection.size === 0) { + endPosition = detailString.indexOf("-", 0); + value = detailString.slice(0, endPosition); + value = value.replace(/\D/g, ''); + if (value.length !== 0) { + value = Number(value); + } + } + } + + return { + "hasRoll": answer, + "skillRoll": value + } + } + + + var reducedDCV = function(inputString) { + // Search for the Concentration limitation. + inputString = inputString.toLowerCase(); + let answer; + + if (inputString.includes("0 dcv")) { + answer = "zero"; + } else if (inputString.includes("1/2 dcv")) { + answer = "half"; + } else { + answer = "full"; + } + + return answer; + } + + + var reducedRMod = function(inputString) { + // Search for half or zero range modifier advantages. + inputString = inputString.toLowerCase(); + let answer; + + if (inputString.includes("no range modifier")) { + answer = "zero"; + } else if (inputString.includes("half range modifier")) { + answer = "half"; + } else { + answer = "STD"; + } + + return answer; + } + + + var modifiedSTUNx = function(inputString) { + // Search for a STUNx multiplier. + inputString = inputString.toLowerCase(); + let answer; + + if (inputString.includes("-2 decreased stun multiplier")) { + answer = "-2"; + } else if (inputString.includes("-1 decreased stun multiplier")) { + answer = "-1"; + } else if (inputString.includes("+1 increased stun multiplier")) { + answer = "1"; + } else if (inputString.includes("+2 increased stun multiplier")) { + answer = "2"; + } else { + answer = "0"; + } + + return answer; + } + + + var getWeaponStrMin = function (weaponString, script_name) { + // Parse weapon text and look for one of three strings used + // by Hero Designer to record a weapon strength minimum. + let strengthMin = 0; + let strengthString; + let startParenthesis; + let endParenthesis; + let valueString; + let defaultStrength = 0; + + if (weaponString !== "") { + if (weaponString.includes("STR Minimum")) { + tempPosition = weaponString.indexOf("STR Minimum"); + startParenthesis = weaponString.indexOf("(", tempPosition + 11); + endParenthesis = weaponString.indexOf(")", tempPosition + 11); + strengthString = weaponString.slice(tempPosition + 11, startParenthesis); + + // Get the limitation value in case no strength is available. + valueString = weaponString.slice(startParenthesis+1, endParenthesis); + valueString = valueString.replace(/\s/g, ""); + + switch(valueString) { + case "-1/4": + defaultStrength = 4; + break; + case "-1/2": + defaultStrength = 9; + break; + case "-3/4": + defaultStrength = 14; + break; + case "-1": + defaultStrength = 19; + break; + default: + defaultStrength = 1; + } + + // Check to see if a strength range is used: + if (strengthString.includes("-")) { + tempPosition = strengthString.indexOf("-"); + strengthString = strengthString.substring(0, tempPosition); + } + + strengthMin = parseInt(strengthString.replace(/\D/g, ""))||defaultStrength; + + } else if (weaponString.includes("STR Min")) { + tempPosition = weaponString.indexOf("STR Min"); + startParenthesis = weaponString.indexOf("(", tempPosition + 8); + endParenthesis = weaponString.indexOf(")", tempPosition + 8); + strengthString = weaponString.slice(tempPosition + 8, startParenthesis); + + // Get the limitation value in case no strength is available. + valueString = weaponString.slice(startParenthesis+1, endParenthesis); + valueString = valueString.replace(/\s/g, ""); + + switch(valueString) { + case "-1/4": + defaultStrength = 4; + break; + case "-1/2": + defaultStrength = 9; + break; + case "-3/4": + defaultStrength = 14; + break; + case "-1": + defaultStrength = 19; + break; + default: + defaultStrength = 1; + } + + // Check to see if a strength range is used: + if (strengthString.includes("-")) { + tempPosition = strengthString.indexOf("-"); + strengthString = strengthString.substring(0, tempPosition); + } + + strengthMin = parseInt(strengthString.replace(/\D/g, ""))||defaultStrength; + + } else { + strengthMin = 0; + } + } else { + strengthMin = 0; + } + + return strengthMin; + } + + + var getWeaponRange = function (rangeString, strength, mass, script_name) { + // Parses range string for numeric characters. + // If "var" is found, calls the range based strength function "calculateRange". + + let range = 0; + + if (rangeString !== "") { + if (rangeString.includes("var")) { + range = calculateRange(strength, mass); + } else { + range = parseInt(rangeString.replace(/[^\d.-]/g, "")); + } + } else { + range = 0; + } + + return range; + } + + + var getWeaponStrength = function (strengthMin, strengthMax, script_name) { + // Returns STR in increments of 5 above strengthMin up to strengthMax. + + let differenceDC = 0; + let strength = strengthMax; + + if (strengthMax >= strengthMin) { + differenceDC = Math.floor( (strengthMax - strengthMin)/5 ); + strength = strengthMin + 5 * differenceDC; + } + + return strength; + } + + + var getPowerDamage = function (damageString, effect, strength, script_name) { + // Parses damageString for damage dice. + + let damage = "0"; + let DC = 0; + let strDC = Math.floor(strength/5); + let halfDie = (((strength % 5) === 3) || ((strength % 5) === 4)) ? true : false; + let lastIndex = 0; + let detailString; + let startPosition; + let endPosition; + var diceSet = new Set(["Aid", "Blast", "Dispel", "Drain", "Entangle", "Flash", "HTH Attack", "HTH Killing Attack", "Ranged Killing Attack", "Healing", "Luck", "Mental Blast", "Mental Illusions", "Mind Control", "Mind Scan", "Transform", "Telepathy"]); + + if (diceSet.has(effect)) { + if (damageString.includes("standard effect")) { + startPosition = damageString.indexOf("standard effect"); + endPosition = damageString.indexOf(")", startPosition); + detailString = damageString.slice(startPosition+16, endPosition); + damage = detailString; + } else { + if ((damageString.match(/d6/g) || []).length > 1) { + damageString = damageString.replace("d6", "d6+"); + lastIndex = damageString.lastIndexOf("d6+"); + damageString = damageString.substring(0, lastIndex) + "d6" + damageString.substring(lastIndex + 2); + } + + // Sometimes the damage string contains extra bits after a comma. Drop them. + if (damageString.includes(",")) { + damageString = damageString.split(",")[0]; + } + + // Look for (xd6 w/STR) and use that. + if (damageString.includes(" w/STR")) { + damageString = damageString.match(/\(([^)]*)\)/)[1]; + damageString = damageString.replace(" w/STR", ""); + damageString = damageString.trim(); + } else if (effect === "HTH Attack") { + endPosition = damageString.indexOf("d"); + detailString = damageString.substring(0,endPosition); + DC = parseInt(detailString.replace(/[^0-9]/g, ""))||0; + DC += strDC; + damageString = DC.toString() + "d6"; + damageString += halfDie ? "+d3" : ""; + } + + // Make sure the 1/2d6 is a 1d3. + if (damageString.includes(" 1/2d6")) { + damage = damageString.replace(" 1/2d6", "d6+d3"); + } else if (damageString.includes("1/2d6")) { + damage = damageString.replace("1/2d6", "d3"); + } else { + damage = damageString; + } + } + } else { + damage = "0"; + } + + return damage; + } + + + var getCharacteristicMod = function (inputString, searchString, script_name) { + let charMod = 0; + let lastIndex = 0; + let detailString = ""; + let startPosition = 0; + let endPosition = 0; + let lowerCaseString = inputString.toLowerCase(); + + const specialArray = ["real weapon", "only works", "only for", "only to", "only applies", "only when", "attacks", "requires a roll", "for up to"]; + var leadingSet = new Set(["STR", "DEX", "CON", "INT", "EGO", "PRE", "OCV", "DCV", "OMCV", "DMCV", "PD", "ED", "BODY", "STUN", "END", "REC", "PER"]); + var trailingSet = new Set(["Running", "Leaping", "Swimming", "Flight"]); + + if (specialArray.some(v => lowerCaseString.includes(v))) { + // We don't want to add overall modifications for special cases. + charMod = 0; + } else if (leadingSet.has(searchString)) { + endPosition = inputString.indexOf(searchString); + detailString = inputString.slice(0, endPosition); + startPosition = detailString.includes("+") ? detailString.indexOf("+") : 0; + detailString = detailString.slice(startPosition, endPosition); + charMod = detailString.replace(/[^0-9\-]/g, ''); + if (charMod === "") { + charMod = 0; + } + } else if (trailingSet.has(searchString)) { + startPosition = inputString.indexOf(searchString); + detailString = inputString.slice(startPosition + searchString.length); + endPosition = detailString.includes("m") ? detailString.indexOf("m") : detailString.length; + detailString = detailString.slice(startPosition, endPosition); + charMod = detailString.replace(/[^0-9\-]/g, ''); + if (charMod === "") { + charMod = 0; + } + } else { + charMod = 0; + } + + if (verbose) { + sendChat(script_name, "Applied characteristic mod " + searchString + " + " + charMod.toString()); + } + + // Make sure we don't return something nasty. + return isNaN(charMod) ? 0 : Math.max(-99, Math.min( (parseInt(charMod)||0), 99)); + } + + + var getGrowthMod = function (inputString, searchString, script_name) { + let charMod = 0; + let lastIndex = 0; + let detailString = ""; + let startPosition; + let lowerCaseString = inputString.toLowerCase(); + + const specialArray = ["real weapon", "only works", "only for", "only to", "only applies", "only when", "requires a roll", "for up to"]; + var leadingSet = new Set(["STR", "DEX", "CON", "INT", "EGO", "PRE", "OCV", "DCV", "OMCV", "DMCV", "PD", "ED", "BODY", "STUN", "END", "REC", "PER","Running", "Leaping", "Swimming", "Flight"]); + + if (specialArray.some(v => lowerCaseString.includes(v))) { + // We don't want to add overall modifications for special cases. + charMod = 0; + } else if (leadingSet.has(searchString)) { + endPosition = inputString.indexOf(searchString); + detailString = inputString.slice(0, endPosition); + startPosition = detailString.includes("+") ? detailString.indexOf("+") : 0; + detailString = detailString.slice(startPosition, endPosition); + charMod = detailString.replace(/[^0-9\-]/g, ''); + if (charMod === "") { + charMod = 0; + } + } else { + charMod = 0; + } + + return Math.max(-99, Math.min( (parseInt(charMod)||0), 99)); + } + + + var getWeaponDamage = function (damageString, script_name) { + // Parses damageString for damage dice. + + let damage = "0"; + let lastIndex = 0; + let detailString; + let startPosition; + let endPosition; + + if (damageString.includes("standard effect")) { + startPosition = damageString.indexOf("standard effect"); + endPosition = damageString.indexOf(")", startPosition); + detailString = damageString.slice(startPosition+16, endPosition); + damage = detailString; + } else { + // Remove dice in w/STR since we'll calculated it. + if (damageString.includes(" w/STR")) { + damageString = damageString.replace(/\([^()]*\)/g, ""); + } + + // Separate joined dice if present. + if ((damageString.match(/d6/g) || []).length > 1) { + damageString = damageString.replace("d6", "d6+"); + lastIndex = damageString.lastIndexOf("d6+"); + damageString = damageString.substring(0, lastIndex) + "d6" + damageString.substring(lastIndex + 2); + } + + // Make sure the 1/2d6 is a 1d3. + if (damageString.includes(" 1/2d6")) { + damage = damageString.replace(" 1/2d6", "d6+d3"); + } else if (damageString.includes("1/2d6")) { + damage = damageString.replace("1/2d6", "d3"); + } else { + damage = damageString; + } + } + + return damage; + } + + + var checkDamageBySTR = function (damageString, script_name) { + damageBySTR = false; + + if (damageString.includes(" w/STR")) { + damageBySTR = true; + } + + return damageBySTR; + } + + + var getArmorLocations = function (inputString, script_name) { + let locations = ""; + let startPosition = 0; + let endPosition = 0; + + inputString = inputString.toLowerCase(); + + if (inputString.includes("location")) { + startPosition = inputString.indexOf("location"); + locations = inputString.slice(startPosition); + if (locations.includes(';')) { + endPosition = locations.indexOf(';'); + locations = locations.slice(0,endPosition); + } else if (locations.includes(')')) { + endPosition = locations.indexOf(')'); + locations = locations.slice(0,endPosition); + } else { + endPosition = Math.min(28, locations.length); + locations = locations.slice(0,endPosition); + } + locations = locations.replace(/[^\d,-]/g, ""); + if (locations.includes(',')) { + locations = locations.replace(',', ", "); + } + } else if (inputString.includes("loc")) { + startPosition = inputString.indexOf("loc"); + locations = inputString.slice(startPosition); + if (locations.includes(';')) { + endPosition = locations.indexOf(';'); + locations = locations.slice(0,endPosition); + } else if (locations.includes(')')) { + endPosition = locations.indexOf(')'); + locations = locations.slice(0,endPosition); + } else { + endPosition = Math.min(11, locations.length); + locations = locations.slice(0,endPosition); + } + locations = locations.replace(/[^\d,-]/g, ""); + if (locations.includes(',')) { + locations = locations.replace(',', ", "); + } + } + + return locations.trim(); + } + + + var getArmorEND = function (inputString, script_name) { + let tempString = ""; + let endurance = 0; + let startPosition = 0; + let endPosition = 0; + + inputString = inputString.toLowerCase(); + + if (inputString.includes("end/turn:")) { + startPosition = inputString.indexOf("end/turn:") + 9; + endPosition = Math.min(inputString.length, startPosition + 2); + tempString = inputString.slice(startPosition, endPosition); + endurance = parseInt(tempString.replace(/[^\d]/g, ""))||0; + } else if (inputString.includes("end/turn")) { + endPosition = inputString.indexOf("end/turn"); + startPosition = Math.max(0, endPosition - 2); + tempString = inputString.slice(startPosition, endPosition); + endurance = parseInt(tempString.replace(/[^\d]/g, ""))||0; + } else { + endurance = 0; + } + + return endurance; + } + + + var getAdvantage = function (weaponString, script_name) { + // See 6E2 98 for a list of advantages that affect weapon damage. + let advantage = 0; + let temp = 0; + let searchString = ""; + + weaponString = weaponString.toLowerCase(); + + searchString = "area of effect"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "armor piercing"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "autofire"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "attack versus alternate defense"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "boostable"; + advantage += getSingleAdvantage (weaponString, searchString); + + if (weaponString.includes("constant")) { + advantage += 0.5; + } + + searchString = "cumulative"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "damage over time"; + advantage += getSingleAdvantage (weaponString, searchString); + + if (weaponString.includes("does body")) { + advantage += 1; + } + + if (weaponString.includes("does knockback")) { + advantage += 0.25; + } + + if (weaponString.includes("double knockback")) { + advantage += 0.5; + } + + if (weaponString.includes("+1 increased stun multiplier")) { + advantage += 0.25; + } else if (weaponString.includes("+2 increased stun multiplier")) { + advantage += 0.50; + } + + searchString = "penetrating"; + advantage += getSingleAdvantage (weaponString, searchString); + + if (weaponString.includes("range based on str")) { + advantage += 0.25; + } + + if (weaponString.includes("sticky")) { + advantage += 0.5; + } + + searchString = "time limit"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "transdimensional"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "trigger"; + advantage += getSingleAdvantage (weaponString, searchString); + + if (weaponString.includes("uncontrolled")) { + advantage += 0.5; + } + + searchString = "variable advantage"; + advantage += getSingleAdvantage (weaponString, searchString); + + searchString = "variable special effects"; + advantage += getSingleAdvantage (weaponString, searchString); + + return advantage; + } + + var getSingleAdvantage = function(weaponString, searchString) { + let advantage = 0; + + if (weaponString.includes(searchString)) { + searchString = weaponString.slice(weaponString.indexOf(searchString) + searchString.length); + searchString = searchString.match(/\(([^)]+)\)/)[0]; + + advantage = findAdvantages(searchString); + + if (advantage < 0) { + advantage = 0; + } + } + + return advantage; + } + + + var calculateRange = function(strength, mass) { + // Determines range based on strength. + let liftCapability; + let freeCapability; + let effectiveStrength; + let range; + + // First calculate carrying capacity. + switch (strength) { + case 0: liftCapability = 0; + break; + case 1: liftCapability = 8; + break; + case 2: liftCapability = 16; + break; + case 3: liftCapability = 25; + break; + case 4: liftCapability = 38; + break; + default: liftCapability=Math.round(25*Math.pow(2,(strength/5))); + } + + // Subtract the thrown weight from capacity. + freeCapability = liftCapability-mass; + + // Determine unused strength and calculate range. + if (freeCapability <= 0) { + range = 0; + } else { + if (freeCapability <= 8) { + effectiveStrength = 1; + range = 2; + } else if (freeCapability <= 16) { + effectiveStrength = 2; + range = 3; + } else if (freeCapability <= 25) { + effectiveStrength = 3; + range = 4; + } else if (freeCapability <= 38) { + effectiveStrength = 4; + range = 6; + } else { + effectiveStrength = 5 * Math.log2(freeCapability/25); + range = Math.round(8 * effectiveStrength/5); + } + } + + return parseInt(Math.round(range)); + } + + + var getItemMass = function(massString, script_name) { + // Remove units from mass and round to one decimal. + let mass = 0; + + if (massString !== "") { + massString = parseFloat(massString.replace(/[^\d.-]/g, "")); + mass = Math.round(10*massString)/10; + } + + return mass; + } + + + var getStunModifier = function(itemString, script_name) { + // Parse string for STUN multiple. + let stunModifier = 0; + let tempPosition; + + if ((typeof itemString !== "undefined") && (itemString.length !== 0)) { + if (itemString.includes("Increased STUN Multiplier")) { + tempPosition = itemString.indexOf("Increased STUN Multiplier"); + stunModifier = parseInt(itemString.substr(tempPosition-3, 2)); + } else if (itemString.includes("Decreased STUN Multiplier")) { + tempPosition = itemString.indexOf("Decreased STUN Multiplier"); + stunModifier = parseInt(itemString.substr(tempPosition-3, 2)); + } + } + + return stunModifier; + } + + + var getOCVmodifier = function(weaponString, script_name) { + // Parse weapon string for OCV modifier or penalty. + let ocvModifier = 0; + let tempPosition; + let subString; + + // First, remove Range Modifier OCV if present. + weaponString = weaponString.replace("OCV modifier",""); + + // Then search for OCV bonus. + if ((weaponString !== "") && (weaponString.includes("OCV"))) { + tempPosition = weaponString.indexOf("OCV"); + subString = weaponString.slice(0, tempPosition); + + // If there is a modifier before the OCV entry, drop characters up to that point. + if (subString.includes(")")) { + tempPosition = subString.lastIndexOf(")"); + subString = subString.substr(tempPosition); + } + + subString = subString.replace(/[^\d-]/g, ""); + ocvModifier = parseInt(subString); + } + + return ocvModifier; + } + + + var heroRoundUp = function(numerator, denominator) { + + if (denominator > 0) { + const intermediate = numerator/denominator; + const remainder = Math.floor((numerator % denominator)*10)/10; + + if (remainder < 0.5) { + return Math.floor(intermediate); + } else { + return Math.ceil(intermediate); + } + } + + // Error. Return unmodified value. + return numerator; + } + + + var heroRoundDown = function(numerator, denominator) { + + if (denominator > 0) { + const intermediate = numerator/denominator; + const remainder = Math.floor((numerator % denominator)*10)/10; + + if (remainder < 0.6) { + return Math.floor(intermediate); + } else { + return Math.ceil(intermediate); + } + } + + // Error. Return unmodified value. + return numerator; + } + + +/* **************************************** */ +/* *** END Importing Functions *** */ +/* **************************************** */ + + // TEST + const createSingleWriteQueue = (attributes) => { + // this is the list of trigger attributes that will trigger class recalculation, as of 5e OGL 2.5 October 2018 + // (see on... handler that calls update_class in sheet html) + // these are written first and individually, since they trigger a lot of changes + let class_update_triggers = [ + 'strength']; + + // set class first, everything else is alphabetical + let classAttribute = class_update_triggers.shift(); + class_update_triggers.sort(); + class_update_triggers.unshift(classAttribute); + + // write in deterministic order (class first, then alphabetical) + + let items = []; + + for (trigger of class_update_triggers) { + let value = attributes[trigger]; + if ((value === undefined) || (value === null)) { + continue; + } + items.push([trigger, value]); + log('hero: trigger attribute ' + trigger); + delete attributes[trigger]; + } + + return items; + } + + + const reportReady = (character) => { + // From Beyond. Left as-is. + // + // TODO this is nonsense. we aren't actually done importing, because notifications in the character sheet are firing for quite a while + // after we finish changing things (especially on first import) and we have no way (?) to wait for it to be done. These are not sheet workers + // on which we can wait. + // sendChat(script_name, '
Import of ' + character.character_name + ' is ready at https://journal.roll20.net/character/' + object.id +'
', null, {noarchive:true}); + return; + } + + + const blankIfNull = (input) => { + return (input === null)?"":input; + } + + + const ucFirst = (string) => { + if(string == null) return string; + return string.charAt(0).toUpperCase() + string.slice(1); + }; + + + const sendConfigMenu = (player, first) => { + let playerid = player.id; + let prefix = (state[state_name][playerid].config.prefix !== '') ? state[state_name][playerid].config.prefix : '[NONE]'; + let prefixButton = makeButton(prefix, '!hero --config prefix|?{Prefix}', buttonStyle); + let suffix = (state[state_name][playerid].config.suffix !== '') ? state[state_name][playerid].config.suffix : '[NONE]'; + let suffixButton = makeButton(suffix, '!hero --config suffix|?{Suffix}', buttonStyle); + let overwriteButton = makeButton(state[state_name][playerid].config.overwrite, '!hero --config overwrite|'+!state[state_name][playerid].config.overwrite, buttonStyle); + let debugButton = makeButton(state[state_name][playerid].config.debug, '!hero --config debug|'+!state[state_name][playerid].config.debug, buttonStyle); + let optionMaximumsButton = makeButton(state[state_name][playerid].config.maximums, '!hero --config maximums|'+!state[state_name][playerid].config.maximums, buttonStyle); + let optionLiteracyButton = makeButton(state[state_name][playerid].config.literacy, '!hero --config literacy|'+!state[state_name][playerid].config.literacy, buttonStyle); + let optionSuperENDButton = makeButton(state[state_name][playerid].config.superEND, '!hero --config superEND|'+!state[state_name][playerid].config.superEND, buttonStyle); + let optionLocationsButton = makeButton(state[state_name][playerid].config.locations, '!hero --config locations|'+!state[state_name][playerid].config.locations, buttonStyle); + + let listItems = [ + 'Overwrite: '+overwriteButton+'
CAUTION: overwrites an existing character sheet that has a matching character name.', + 'Prefix: '+prefixButton, + 'Suffix: '+suffixButton, + 'Verbose Report: '+debugButton, + ] + + let list = 'Importer'+makeList(listItems, 'overflow: hidden; list-style: none; padding: 0; margin: 0;', 'overflow: hidden; margin-top: 5px;'); + + let inPlayerJournalsButton = makeButton(player.get('displayname'), "", buttonStyle); + let controlledByButton = makeButton(player.get('displayname'), "", buttonStyle); + if(playerIsGM(playerid)) { + let players = ""; + let playerObjects = findObjs({ + _type: "player", + }); + for(let i = 0; i < playerObjects.length; i++) { + players += '|'+playerObjects[i]['attributes']['_displayname']+','+playerObjects[i].id; + } + + let ipj = state[state_name][playerid].config.inplayerjournals == "" ? '[NONE]' : state[state_name][playerid].config.inplayerjournals; + if(ipj != '[NONE]' && ipj != 'all') ipj = getObj('player', ipj).get('displayname'); + inPlayerJournalsButton = makeButton(ipj, '!hero --config inplayerjournals|?{Player|None,[NONE]|All Players,all'+players+'}', buttonStyle); + let cb = state[state_name][playerid].config.controlledby == "" ? '[NONE]' : state[state_name][playerid].config.controlledby; + if(cb != '[NONE]' && cb != 'all') cb = getObj('player', cb).get('displayname'); + controlledByButton = makeButton(cb, '!hero --config controlledby|?{Player|None,[NONE]|All Players,all'+players+'}', buttonStyle); + } + + let sheetListItems = [ + 'In Player Journal: ' + inPlayerJournalsButton, + 'Player Control: ' + controlledByButton, + 'Use Char Maximums: ' + optionMaximumsButton, + 'Literacy Costs CP: ' + optionLiteracyButton, + 'Super-Heroic END: ' + optionSuperENDButton, + 'Use Hit Locations: ' + optionLocationsButton + ] + + let sheetList = '
Character Sheet'+makeList(sheetListItems, 'overflow: hidden; list-style: none; padding: 0; margin: 0;', 'overflow: hidden; margin-top: 5px;'); + + // Set verbose (debug) option + let debug = ""; + if(state[state_name][playerid].config.debug){ + // The original version here would generate debug option buttons. For now, we will only change the verbose reporting state. + verbose = true; + } else { + verbose = false; + } + + // Set characteristic maximums option + if(state[state_name][playerid].config.maximums){ + defaultAttributes.useCharacteristicMaximums = "on"; + } else { + defaultAttributes.useCharacteristicMaximums = 0; + } + + // Set literacy cost option + if(state[state_name][playerid].config.literacy){ + defaultAttributes.optionLiteracyCostsPoints = "on"; + } else { + defaultAttributes.optionLiteracyCostsPoints = 0; + } + + // Set super-heroic END option + if(state[state_name][playerid].config.superEND){ + defaultAttributes.optionSuperHeroicEndurance = "on"; + } else { + defaultAttributes.optionSuperHeroicEndurance = 0; + } + + // Set hit location system option + if(state[state_name][playerid].config.locations){ + defaultAttributes.optionHitLocationSystem = "on"; + } else { + defaultAttributes.optionHitLocationSystem = 0; + } + + let resetButton = makeButton('Reset', '!hero --reset', altButtonStyle + ' margin: auto; width: 90%; display: block; float: none;'); + + //let title_text = (first) ? script_name + ' First Time Setup' : script_name + ' Config'; + let title_text = (first) ? 'HD Importer First Time Setup' : 'HD Importer Configuration'; + let text = '
'+makeTitle(title_text)+list+sheetList+debug+'
'+resetButton+'
'; + + sendChat(script_name, '/w "' + player.get('displayname') + '" ' + text, null, {noarchive:true}); + }; + + + const sendHelpMenu = (player, first) => { + let configButton = makeButton('Config', '!hero --config', altButtonStyle+' margin: auto; width: 90%; display: block; float: none;'); + + let listItems = [ + '!hero --help
Shows this menu.', + '!hero --config
Shows the configuration menu. (GM only)', + '!hero --import [CHARACTER JSON]
Imports a character from Hero Designer.', + ]; + + let command_list = makeList(listItems, 'list-style: none; padding: 0; margin: 0;'); + + let text = '
'; + //text += makeTitle(script_name + ' Help'); + text += makeTitle('HD Importer Help'); + text += '

Export a character in Hero Designer using the HeroSystem6eHeroic.hde format.

'; + text += '

Locate and open the exported .txt file in a text editor. Copy its entire contents and paste them into the Roll20 chat window. Hit enter.

'; + text += '

For more information see the documentation page in the HDImporter Github repository.

'; + text += '
'; + text += 'Commands:'+command_list; + text += '
'; + text += configButton; + text += '
'; + + sendChat(script_name, '/w "'+ player.get('displayname') + '" ' + text, null, {noarchive:true}); + }; + + + const makeTitle = (title) => { + return '

'+title+'

'; + }; + + + const makeButton = (title, href, style) => { + return ''+title+''; + }; + + + const makeList = (items, listStyle, itemStyle) => { + let list = '
    '; + items.forEach((item) => { + list += '
  • '+item+'
  • '; + }); + list += '
'; + return list; + }; + + + const replaceChars = (text) => { + text = text.replace('\&rsquo\;', '\'').replace('\&mdash\;','—').replace('\ \;',' ').replace('\&hellip\;','…'); + text = text.replace('\ \;', ' '); + text = text.replace('\û\;','û').replace('’', '\'').replace(' ', ' '); + text = text.replace(/]+>/gi,'• ').replace(/<\/li>/gi,''); + text = text.replace(/\r\n(\r\n)+/gm,'\r\n'); + return text; + }; + + + const getRepeatingRowIds = (section, attribute, matchValue, index) => { + let ids = []; + if(state[state_name][hero_caller.id].config.overwrite) { + let matches = findObjs({ type: 'attribute', characterid: object.id }) + .filter((attr) => { + return attr.get('name').indexOf('repeating_'+section) !== -1 && attr.get('name').indexOf(attribute) !== -1 && attr.get('current') == matchValue; + }); + for(let i in matches) { + let row = matches[i].get('name').replace('repeating_'+section+'_','').replace('_'+attribute,''); + ids.push(row); + } + if(ids.length == 0) ids.push(generateRowID()); + } + else ids.push(generateRowID()); + + if(index == null) return ids; + else return ids[index] == null && index >= 0 ? generateRowID() : ids[index]; + } + + + // Return an array of objects according to key, value, or key and value matching, optionally ignoring objects in array of names + const getObjects = (obj, key, val, except) => { + except = except || []; + let objects = []; + for (let i in obj) { + if (!obj.hasOwnProperty(i)) continue; + if (typeof obj[i] == 'object') { + if (except.indexOf(i) != -1) { + continue; + } + objects = objects.concat(getObjects(obj[i], key, val)); + } else + //if key matches and value matches or if key matches and value is not passed (eliminating the case where key matches but passed value does not) + if (i == key && obj[i] == val || i == key && val == "") { // + objects.push(obj); + } else if (obj[i] == val && key == ""){ + //only add if the object is not already in the array + if (objects.lastIndexOf(obj) == -1){ + objects.push(obj); + } + } + } + return objects; + }; + + // This section from Beyond is not used in HS6eH_HDImporter, but may be useful in future. + // + // Find an existing repeatable item with the same name, or generate new row ID + // const getOrMakeRowID = (character,repeatPrefix,name) => { + // // Get list of all of the character's attributes + // let attrObjs = findObjs({ _type: "attribute", _characterid: character.get("_id") }); + // + // let i = 0; + // while (i < attrObjs.length) + // { + // // If this is a feat taken multiple times, strip the number of times it was taken from the name + // let attrName = attrObjs[i].get("current").toString(); + // if (regexIndexOf(attrName, / x[0-9]+$/) !== -1) + // attrName = attrName.replace(/ x[0-9]+/,""); + // + // if (attrObjs[i].get("name").indexOf(repeatPrefix) !== -1 && attrObjs[i].get("name").indexOf("_name") !== -1 && attrName === name) + // return attrObjs[i].get("name").substring(repeatPrefix.length,(attrObjs[i].get("name").indexOf("_name"))); + // i++; + // i++; + // } + // return generateRowID(); + // }; + + + const generateUUID = (function() { + let a = 0, b = []; + return function() { + let c = (new Date()).getTime() + 0, d = c === a; + a = c; + for (var e = new Array(8), f = 7; 0 <= f; f--) { + e[f] = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(c % 64); + c = Math.floor(c / 64); + } + c = e.join(""); + if (d) { + for (f = 11; 0 <= f && 63 === b[f]; f--) { + b[f] = 0; + } + b[f]++; + } else { + for (f = 0; 12 > f; f++) { + b[f] = Math.floor(64 * Math.random()); + } + } + for (f = 0; 12 > f; f++){ + c += "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(b[f]); + } + return c; + }; + }()); + + + const generateRowID = function() { + "use strict"; + return generateUUID().replace(/_/g, "Z"); + }; + + + const regexIndexOf = (str, regex, startpos) => { + let indexOf = str.substring(startpos || 0).search(regex); + return (indexOf >= 0) ? (indexOf + (startpos || 0)) : indexOf; + }; + + + const pre_log = (message) => { + log('---------------------------------------------------------------------------------------------'); + log(message); + log('---------------------------------------------------------------------------------------------'); + }; + + + const checkInstall = function() { + if(!_.has(state, state_name)){ + state[state_name] = state[state_name] || {}; + } + setDefaults(); + }; + + + const setDefaults = (reset) => { + const defaults = { + overwrite: false, + debug: false, + prefix: '', + suffix: '', + inplayerjournals: '', + controlledby: '', + maximums: false, + literacy: false, + superEND: false, + locations: false + }; + + let playerObjects = findObjs({ + _type: "player", + }); + playerObjects.forEach((player) => { + if(!state[state_name][player.id]) { + state[state_name][player.id] = {}; + } + + if(!state[state_name][player.id].config) { + state[state_name][player.id].config = defaults; + } + + for(let item in defaults) { + if(!state[state_name][player.id].config.hasOwnProperty(item)) { + state[state_name][player.id].config[item] = defaults[item]; + } + } + + if(!state[state_name][player.id].config.hasOwnProperty('firsttime')){ + if(!reset){ + sendConfigMenu(player, true); + } + state[state_name][player.id].config.firsttime = false; + } + }); + }; + + +})(); \ No newline at end of file diff --git a/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT new file mode 100644 index 000000000..391cf8236 --- /dev/null +++ b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT @@ -0,0 +1 @@ + !hero --import { "character":{ "character_name":"Darci", "character_title":"Fae-Cursed", "height":"1.66 m", "weight":"60.00 kg", "eyes":"Brown", "hair":"Brown", "backgroundText":"Darci grew up in a small highland village, the daughter of a village healer, with no ambition save to learn her mother's trade. Her life was turned upside down when she encountered a trol while out collection herbs in the woods. The troll promised to tell her secrets of Fae magic in return for her friendship. Darci has regretted her kindness ever since. Exiled and feard by common folk and given little help by the Fae, Darci has found safety in the service of a mercenary company.", "historyText":"", "appearance":"", "tactics":"", "campaignUse":"", "quote":"Village Herbalist", "experience":"0", "experienceBenefit":"0", "strength":"17", "dexterity":"13", "constitution":"18", "intelligence":"18", "ego":"13", "presence":"10", "ocv":"4", "dcv":"4", "omcv":"3", "dmcv":"3", "speed":"4", "pd":"4", "ed":"3", "body":"14", "stun":"26", "endurance":"40", "recovery":"9", "running":"12", "leaping":"6", "swimming":"6", "equipment":{ "equipment01":{ "name":"Bronze Cap", "text":"Resistant Protection (5 PD/5 ED) (15 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"0.83kg", "attack":"", "defense":"true", "notes":"(Locations 5)" }, "equipment02":{ "name":"Bronze Maille", "text":"Resistant Protection (4 PD/4 ED) (12 Active Points); Normal Mass (-1), OIF (-1/2), Requires A Roll (11- roll; Locations 7-14; -1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"11.40kg", "attack":"", "defense":"true", "notes":"(1 END/turn)" }, "equipment03":{ "name":"High Boots, Gloves", "text":"Resistant Protection (2 PD/2 ED) (6 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"1.20kg", "attack":"", "defense":"true", "notes":"(Locations 16-18, 6-7)" }, "equipment04":{ "name":"Bronze Battle Axe", "text":"(Total: 46 Active Cost, 16 Real Cost) Killing Attack - Hand-To-Hand 2d6 (3d6 w/STR), Reduced Endurance (0 END; +1/2) (45 Active Points); OAF (-1), STR Min: 13 (-1/2), Real Weapon (-1/4), Required Hands One-And-A-Half-Handed (-1/4) (Real Cost: 15) plus (1 Active Points) (Real Cost: 1)", "damage":"2d6 (3d6 w/STR)", "end":"0", "range":"", "mass":"1.60kg", "attack":"true", "defense":"", "notes":"" }, "equipment05":{ "name":"Bronze Dagger", "text":"Killing Attack - Hand-To-Hand 1d6-1 (1d6 w/STR), Range Based On STR (+1/4), Reduced Endurance (0 END; +1/2) (17 Active Points); OAF (-1), Real Weapon (-1/4), STR Minimum 6 (-1/4)", "damage":"1d6-1 (1d6 w/STR)", "end":"0", "range":"var.", "mass":"0.80kg", "attack":"true", "defense":"", "notes":"" }, "equipment06":{ "name":"Healing Potion", "text":"Healing BODY 4d6 (40 Active Points); 3 Charges which Never Recover (-3 1/4), OAF Fragile (-1 1/4), Extra Time (Full Phase, -1/2), Gestures (-1/4)", "damage":"4d6", "end":"[3 nr]", "range":"", "mass":"1.30kg", "attack":"", "defense":"", "notes":"" }, "equipment07":{ "name":"Winter Coat", "text":"Life Support (Safe in Intense Cold) (2 Active Points); OIF (-1/2)", "damage":"", "end":"0", "range":"", "mass":"3.30kg", "attack":"", "defense":"", "notes":"" }, "equipment08":{ "name":"(Multipower) Small Shield", "text":"Multipower, 5-point reserve, (5 Active Points); all slots OAF (-1), STR Min 6 (-1/4)", "damage":"", "end":"", "range":"", "mass":"3.00kg", "attack":"", "defense":"", "notes":"" }, "equipment09":{ "name":"(MPSlot1) ", "text":"+1 DCV (5 Active Points); OAF (-1), Real Armor (-1/4), STR Min 6 (-1/4)", "damage":"", "end":"", "range":"", "mass":"", "attack":"", "defense":"", "notes":"" }, "equipment10":{ "name":"(MPSlot2) Bash", "text":"Hand-To-Hand Attack +1d6 (5 Active Points); OAF (-1), Hand-To-Hand Attack (-1/2), Side Effects -1 OCV, Side Effect occurs automatically whenever Power is used (-1/2), Real Weapon (-1/4), STR Min 6 (-1/4)", "damage":"1d6", "end":"1", "range":"", "mass":"", "attack":"true", "defense":"", "notes":"" }, "equipment11":{}, "equipment12":{}, "equipment13":{}, "equipment14":{}, "equipment15":{}, "equipment16":{} }, "maneuvers":{ "maneuver01":{ }, "maneuver02":{ }, "maneuver03":{ }, "maneuver04":{ }, "maneuver05":{ }, "maneuver06":{ }, "maneuver07":{ }, "maneuver08":{ }, "maneuver09":{ }, "maneuver10":{ }, "maneuver11":{ }, "maneuver12":{ }, "maneuver13":{ }, "maneuver14":{ }, "maneuver15":{ }, "maneuver16":{ }, "maneuver17":{ }, "maneuver18":{ }, "maneuver19":{ }, "maneuver20":{ } }, "perks":{ "perk01":{ "type":"Fringe Benefit", "points":"1", "text":"Member of the CompanyFringe Benefit: Membership", "notes":"" }, "perk02":{ "type":"Fringe Benefit", "points":"1", "text":"Low-ranking member of Fae SocietyFringe Benefit (0 Active Points)", "notes":"" }, "perk03":{ }, "perk04":{ }, "perk05":{ }, "perk06":{ }, "perk07":{ }, "perk08":{ }, "perk09":{ }, "perk10":{ } }, "talents":{}, "complications":{ "complication01":{ "type":"Social Complication", "points":"10", "text":"Social Complication: Regarded as fae-touched and cursed. Frequently, Minor", "notes":"" }, "complication02":{ "type":"Hunted", "points":"15", "text":"Hunted: Hunted by agents of Summer. Frequently (Mo Pow; Mildly Punish)", "notes":"" }, "complication03":{ "type":"Distinctive Features", "points":"5", "text":"Distinctive Features: Peculiar smell and hard-to-pin-down appearance. Not quite human. Trollish, to those who know of fae. (Easily Concealed; Noticed and Recognizable; Detectable By Commonly-Used Senses)", "notes":"" }, "complication04":{ "type":"Psychological Complication", "points":"20", "text":"Psychological Complication: Finds the touch of iron uncomfortable and won't wear iron armor or jewelry or use iron tools. (Very Common; Strong)", "notes":"" }, "complication05":{}, "complication06":{}, "complication07":{}, "complication08":{}, "complication09":{}, "complication10":{}, "complication11":{}, "complication12":{}, "complication13":{}, "complication14":{}, "complication15":{}, "complication16":{}, "complication17":{}, "complication18":{}, "complication19":{}, "complication20":{} }, "powers":{ "power01":{ "name":"Bile and Acid", "base":"15", "text":"Killing Attack - Ranged 1d6, Area Of Effect (4 2m Areas; +1/2), Damage Over Time, Target's defenses only apply once (3 damage increments, damage occurs every four Segments, can be negated by Water; +2 1/2) (60 Active Points); 3 Recoverable Charges (-3/4), Extra Time (Full Phase, -1/2), No Range (-1/2), Gestures (Requires both hands; -1/2), Side Effects (1d6+1d3 drain STUN; -1/4), Concentration (1/2 DCV; -1/4), Limited Power Power loses about a fourth of its effectiveness (Does not work in water; -1/4), Requires A Roll (Skill roll, -1 per 20 Active Points modifier; Magic Roll; -1/4)", "cost":"14", "endurance":"[3 rc]", "damage":"1d6", "compound":"false" }, "power02":{ "name":"Pneuma", "base":"30", "text":"Killing Attack - Ranged 2d6, Invisible Power Effects (Inobvious to [one Sense Group]; +1/4) (37 Active Points); Requires A Roll (Skill roll; -1/2), Gestures (-1/4), Incantations (-1/4), Beam (-1/4), Limited Power Power loses about a fourth of its effectiveness (Does not work under water; -1/4)", "cost":"15", "endurance":"4", "damage":"2d6", "compound":"false" }, "power03":{ "name":"Self Renewal", "base":"55", "text":"Healing BODY 5d6, Can Heal Limbs (55 Active Points); Increased Endurance Cost (x6 END; -2 1/2), Extra Time (1 Turn (Post-Segment 12), Character May Take No Other Actions, -1 1/2), Concentration, Must Concentrate throughout use of Constant Power (0 DCV; Character is totally unaware of nearby events; -1 1/2), OAF (Eat a sprig of evergreen; -1), Gestures (Requires both hands; -1/2), Life Energy Modifier Power loses about a third of its effectiveness (-1/2), Self Only Power loses about a third of its effectiveness (-1/2), Incantations (-1/4), Requires A Roll (Characteristic roll, -1 per 20 Active Points modifier; -1/4)", "cost":"6", "endurance":"30", "damage":"5d6", "compound":"false" }, "power04":{ "name":"Underdark Eyes", "base":"5", "text":"Nightvision (5 Active Points); Gestures (Requires both hands; -1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4)", "cost":"2", "endurance":"0", "damage":"", "compound":"false" }, "power05":{ "name":"Winter's Shawl", "base":"12", "text":"Life Support (Immunity All terrestrial diseases; Immunity: All terrestrial poisons; Safe in Intense Cold) (12 Active Points); Costs Endurance (-1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4)", "cost":"5", "endurance":"1", "damage":"", "compound":"false" }, "power06":{ "name":"Fae Sense", "base":"10", "text":"Detect Magic A Class Of Things 13- (no Sense Group), Range (10 Active Points); Increased Endurance Cost (x4 END; -3/4), Gestures (Requires both hands; -1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4), Costs Endurance (Only Costs END to Activate; -1/4)", "cost":"3", "endurance":"4", "damage":"13-", "compound":"false" }, "power07":{ }, "power08":{ }, "power09":{ }, "power10":{ }, "power11":{ }, "power12":{ }, "power13":{ }, "power14":{ }, "power15":{ }, "power16":{ }, "power17":{ }, "power18":{ }, "power19":{ }, "power20":{ }, "power21":{ }, "power22":{ }, "power23":{ }, "power24":{ }, "power25":{ }, "power26":{ }, "power27":{ }, "power28":{ }, "power29":{ }, "power30":{ } }, "skills": { "skill01": { "name":"Mercenary", "enhancer":"", "text":"PS 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill02": { "name":"Herbalist", "enhancer":"", "text":"PS 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"0", "levels":"0", "cost":"0" }, "skill03": { "name":"", "enhancer":"", "text":"Language: Clan's Tongue (idiomatic; literate) (5 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"5", "levels":"0", "cost":"0" }, "skill04": { "name":"", "enhancer":"", "text":"Language: King's Tongue (fluent conversation)", "display":"Language", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill05": { "name":"", "enhancer":"", "text":"Language: Fae (completely fluent; literate)", "display":"Language", "attribute":"GENERAL", "base":"4", "levels":"0", "cost":"4" }, "skill06": { "name":"", "enhancer":"", "text":"+3 Battle Axe", "display":"Combat Skill Levels", "attribute":"GENERAL", "base":"6", "levels":"3", "cost":"6" }, "skill07": { "name":"Fae Society", "enhancer":"", "text":"KS 11-", "display":"KS", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill08": { "name":"Clan Lands", "enhancer":"", "text":"AK 11-", "display":"Knowledge Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill09": { "name":"Common Melee", "enhancer":"", "text":"WF: Common Melee Weapons", "display":"Weapon Familiarity", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill10": { "name":"Power Skill Fae Magic", "enhancer":"", "text":"Power 15-", "display":"Power", "attribute":"INT", "base":"7", "levels":"2", "cost":"7" }, "skill11": { "name":"", "enhancer":"", "text":"Stealth 12-", "display":"Stealth", "attribute":"DEX", "base":"3", "levels":"0", "cost":"3" }, "skill12": { "name":"", "enhancer":"", "text":"Teamwork 12-", "display":"Teamwork", "attribute":"DEX", "base":"3", "levels":"0", "cost":"3" }, "skill13": { "name":"", "enhancer":"", "text":"Concealment 13-", "display":"Concealment", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill14": { "name":"", "enhancer":"", "text":"Science Skill: Herbal Medicine 11-", "display":"Science Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill15": { "name":"", "enhancer":"", "text":"Paramedics 13-", "display":"Paramedics", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill16": { "name":"Survival", "enhancer":"", "text":"Survival 13-", "display":"Survival", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill17": { }, "skill18": { }, "skill19": { }, "skill20": { }, "skill21": { }, "skill22": { }, "skill23": { }, "skill24": { }, "skill25": { }, "skill26": { }, "skill27": { }, "skill28": { }, "skill29": { }, "skill30": { }, "skill31": { }, "skill32": { }, "skill33": { }, "skill34": { }, "skill35": { }, "skill36": { }, "skill37": { }, "skill38": { }, "skill39": { }, "skill40": { }, "skill41": { }, "skill42": { }, "skill43": { }, "skill44": { }, "skill45": { }, "skill46": { }, "skill47": { }, "skill48": { }, "skill49": { }, "skill50": { } }, "playerName":"Matt", "gmName":"Villain In Glasses", "characterFile":"Darci.hdc", "versionHD":"20220801", "timeStamp":"Sat, 27 Apr 2024 16:03:01", "genre":"Fantasy Hero", "campaign":"Coryn's Company", "version":"2.0", "HeroSystem6eHeroic":"true" } } \ No newline at end of file diff --git a/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.hdc b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.hdc new file mode 100644 index 0000000000000000000000000000000000000000..baad5b59ee3c32bec9e11d3e9ddf9f1104906274 GIT binary patch literal 523852 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 z

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 Date: Mon, 5 Aug 2024 12:23:18 -0600 Subject: [PATCH 02/11] Everyman PS, Range based on STR fix, Mental Blast fix --- .../2.1/HeroSystem6eHeroic_HDImporter.js | 130 ++++++++++-------- 1 file changed, 70 insertions(+), 60 deletions(-) diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js index 137ea69d0..ac39fa325 100644 --- a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js @@ -1,49 +1,49 @@ /* HeroSystem6eHeroic_HDImporter.js - * Hero Designer Importer for the Roll20 Hero System 6e Heroic character sheet - * Version: 2.0 - * By Villain in Glasses - * villaininglasses@icloud.com - * Discord: Villain#0604 - * Roll20: https://app.roll20.net/users/633423/villain-in-glasses - * Hero Games Forum Thread: - * https://www.herogames.com/forums/topic/101627-new-roll20-character-sheet-hero-system-6e-heroic/ - * - * Purpose: Imports characters created in Hero Designer into a Roll20 HeroSystem6eHeroic campaign. - * - * Installation: Paste this script into the API setup area of your Roll20 HeroSystem6eHeroic campaign. - * - * Copy "HeroSystem6eHeroic.hde" into your Hero Designer export format folder. - * - * Use: from Hero Designer export a character using HeroSystem6eHeroic.hde found in this repository as the selected format. - * This will produce a text file with the name of the character (e.g., myCharacter.txt). - * - * Open the exported file in your favorite text editor. Select all of the contents and copy it. - * Paste the copied text in the chat window of your Roll20 HeroSystem6eHeroic campaign. Hit enter. - * - * Commands: - * Import character: "!hero --import {character text}" - * Help: "!hero --help" - * Config: "!hero --config" - * - * Based on BeyondImporter Version O.4.0 by - * Robin Kuiper - * Discord: Atheos#1095 - * Roll20: https://app.roll20.net/users/1226016/robin - * - * Matt DeKok - * Discord: Sillvva#2532 - * Roll20: https://app.roll20.net/users/494585/sillvva - * - * Ammo Goettsch - * Discord: ammo#7063 - * Roll20: https://app.roll20.net/users/2990964/ammo - */ +* Hero Designer Importer for the Roll20 Hero System 6e Heroic character sheet +* Version: 2.1 +* By Villain in Glasses +* villaininglasses@icloud.com +* Discord: Villain#0604 +* Roll20: https://app.roll20.net/users/633423/villain-in-glasses +* Hero Games Forum Thread: +* https://www.herogames.com/forums/topic/101627-new-roll20-character-sheet-hero-system-6e-heroic/ +* +* Purpose: Imports characters created in Hero Designer into a Roll20 HeroSystem6eHeroic campaign. +* +* Installation: Paste this script into the API setup area of your Roll20 HeroSystem6eHeroic campaign. +* +* Copy "HeroSystem6eHeroic.hde" into your Hero Designer export format folder. +* +* Use: from Hero Designer export a character using HeroSystem6eHeroic.hde found in this repository as the selected format. +* This will produce a text file with the name of the character (e.g., myCharacter.txt). +* +* Open the exported file in your favorite text editor. Select all of the contents and copy it. +* Paste the copied text in the chat window of your Roll20 HeroSystem6eHeroic campaign. Hit enter. +* +* Commands: +* Import character: "!hero --import {character text}" +* Help: "!hero --help" +* Config: "!hero --config" +* +* Based on BeyondImporter Version O.4.0 by +* Robin Kuiper +* Discord: Atheos#1095 +* Roll20: https://app.roll20.net/users/1226016/robin +* +* Matt DeKok +* Discord: Sillvva#2532 +* Roll20: https://app.roll20.net/users/494585/sillvva +* +* Ammo Goettsch +* Discord: ammo#7063 +* Roll20: https://app.roll20.net/users/2990964/ammo +*/ (function() { // Constants - const versionMod = "2.0"; - const versionSheet = "2.9"; // Note that a newer sheet will make upgrades as well as it can. - const needsExportedVersion = new Set(["1.0", "2.0"]); + const versionMod = "2.1"; + const versionSheet = "3.14"; // Note that a newer sheet will make upgrades as well as it can. + const needsExportedVersion = new Set(["1.0", "2.0", "2.1"]); // HeroSystem6eHeroic.hde versions allowed. const defaultAttributes = { @@ -231,21 +231,21 @@ // Try to catch some bad input. Doesn't currently catch no input. try { - character = JSON.parse(json).character; + character = JSON.parse(json).character; } catch(error) { - let message = ""; - needsExportedVersion.forEach(function(value) { + let message = ""; + needsExportedVersion.forEach(function(value) { message += value + ", "; - }); - - // Drop the last comma. - message = message.slice(0, -2); - - sendChat(script_name, '

' ); - sendChat(script_name, "Please verify that the character file was exported using HeroSystem6eHeroic.hde (acceptable versions: "+message+"). For help use the command !hero --help."); - return; + }); + + // Drop the last comma. + message = message.slice(0, -2); + + sendChat(script_name, '
Hero Importer ended early due to a source content error.
' ); + sendChat(script_name, "Please verify that the character file was exported using HeroSystem6eHeroic.hde (acceptable versions: "+message+"). For help use the command !hero --help."); + return; } // Verify that the character was exported with the latest version of HeroSystem6eHeroic.hde. If not, report error and abort. @@ -263,7 +263,11 @@ if (character.version === "1.0") { sendChat(script_name, "Source exported from HERO Designer using HeroSystem6eHeroic.hde version 1.0"); - } + } + + // else if (character.version === "2.0") { + // sendChat(script_name, "Source exported from HERO Designer using HeroSystem6eHeroic.hde version 2.0"); + // } object = null; @@ -865,6 +869,9 @@ importedWeapons["weaponRangeMod"+ID]= 0; } + // Check for thrown weapon property. + importedWeapons["rangeBasedOnStr"+ID] = (tempString.includes("Range Based On STR")) ? "on" : 0; + // Check for modified STUN multiplier. importedWeapons["weaponStunMod"+ID] = getStunModifier(tempString, script_name); @@ -1674,7 +1681,7 @@ let bonusCP = 0; let maxImport = (powerArrayIndex <= maxPowers) ? powerArrayIndex : maxPowers; let tempPER = [0, 0, 0, 0]; - const specialArray = ["real weapon", "only works", "only for", "only to", "only applies", "only when", "attacks", "requires a roll", "protects areas"]; + const specialArray = ["real weapon", "only works", "only against", "only for", "only to", "only applies", "only when", "attacks", "requires a roll", "protects areas"]; const characterAdjustments = { strengthMod: 0, @@ -2412,7 +2419,7 @@ let enhancer; switch(enhancerString) { - case "Jack of All Trades": + case "Jack of All Trades": enhancer = { enhancerJack: "on", enhancerJackCP: 3 @@ -2442,8 +2449,8 @@ enhancerTravCP: 3 } break; - default: - // Well-Connected + default: + // Well-Connected enhancer = { enhancerWell: "on", enhancerWellCP: 3 @@ -2820,6 +2827,9 @@ } else if (skillObject.text.includes("three pre-defined Skills")) { // Three-group skill. type = "group"; + } else if ((base === "0") && (cost === "0") && skillObject.text.includes("11-")) { + // Everyman professional skill. + type = "everymanPS"; } else if ((base === "0") && (cost === "0")) { // Everyman skill. type = "everyman"; @@ -3045,6 +3055,8 @@ return "Automaton"; } else if (tempString.includes("Barrier")) { return "Barrier"; + } else if (tempString.includes("Mental Blast")) { + return "Mental Blast"; } else if (tempString.includes("Blast")) { return "Blast"; } else if (tempString.includes("Change Environment")) { @@ -3117,8 +3129,6 @@ return "Life Support"; } else if (tempString.includes("Luck")) { return "Luck"; - } else if (tempString.includes("Mental Blast")) { - return "Mental Blast"; } else if (tempString.includes("Transform")) { return "Transform"; } else if (tempString.includes("Mental Defense")) { From 30d2db6a42a59299a785f56ae859ba8ad504a647 Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Tue, 6 Aug 2024 01:01:36 -0600 Subject: [PATCH 03/11] Martial arts damage, DC, STR Mod parsed. --- .../2.1/HeroSystem6eHeroic_HDImporter.js | 71 +++++++++++++++++-- 1 file changed, 66 insertions(+), 5 deletions(-) diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js index ac39fa325..60e467b2e 100644 --- a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js @@ -532,6 +532,8 @@ let maneuverArrayIndex = 0; let temp = 0; let tempString = ""; + let diceString = ""; + let tempPosition = 0; const maxManeuvers = 20; const maneuverSlots = 10; let importCount = 0; @@ -572,8 +574,61 @@ importedManeuvers["martialManeuverPhase"+ID] = maneuverArray[importCount].phase; temp = Number(maneuverArray[importCount].ocv); importedManeuvers["martialManeuverOCV"+ID] = isNaN(temp) ? 0 : temp; - temp = Number(maneuverArray[importCount].dcv); - importedManeuvers["martialManeuverDCV"+ID] = isNaN(temp) ? 0 : temp; + + tempString = maneuverArray[importCount].effect.toLowerCase(); + if ( tempString.includes("weapon") ) { + if ( tempString.includes("strike") ) { + importedManeuvers["martialManeuverType"+ID] = "weaponAttack"; + + tempString = maneuverArray[importCount].effect; + + if ( tempString.includes("DC") ) { + tempPosition = tempString.indexOf("DC"); + diceString = tempString.slice(0, tempPosition); + diceString = diceString.slice(-3).replace(/[^0-9.-]/g, ''); + importedManeuvers["martialManeuverDC"+ID] = Math.max(-2, Math.min(2, parseInt(diceString)||0)); + } + } else if ( tempString.includes("block") ) { + importedManeuvers["martialManeuverType"+ID] = "weaponBlock"; + } else { + importedManeuvers["martialManeuverType"+ID] = "weaponContest"; + } + } else { + if ( tempString.includes("strike") ) { + importedManeuvers["martialManeuverType"+ID] = "attack"; + } else if ( tempString.includes("hka") ) { + importedManeuvers["martialManeuverType"+ID] = "attack"; + importedManeuvers["martialManeuverNormal"+ID] = "0"; + } else if ( tempString.includes("block") ) { + importedManeuvers["martialManeuverType"+ID] = "block"; + } else if ( tempString.includes("dodge") ) { + importedManeuvers["martialManeuverType"+ID] = "dodge"; + } else { + importedManeuvers["martialManeuverType"+ID] = "contest"; + } + + // Damage or STR adds. + if ( tempString.includes("d6") ) { + tempPosition = tempString.indexOf("d6"); + diceString = tempString.slice(0, tempPosition); + diceString = diceString.slice(-2).replace(/\D/g,"") + "d6"; + + if (tempString.includes("d3")) { + diceString += "+1d3"; + } else if (tempString.includes("+1")) { + diceString += "+1"; + } else if (tempString.includes("-1")) { + diceString += "-1"; + } + + importedManeuvers["martialManeuverDamage"+ID] = diceString; + } else if ( tempString.includes("str") ) { + tempPosition = tempString.indexOf("str"); + diceString = tempString.slice(0, tempPosition); + diceString = diceString.slice(-3).replace(/\D/g,""); + importedManeuvers["martialManeuverStrMod"+ID] = parseInt(diceString)||0; + } + } importCount++; } @@ -844,7 +899,7 @@ tempString = weaponsArray[importCount].text; if ((typeof tempString !== "undefined") && (tempString !== "")) { // Look for weapon advantages. - tempValue = getAdvantage(tempString, script_name); + tempValue = findDamageAdvantages(tempString, script_name); if (tempValue > maxAdvantage) { importedWeapons["weaponAdvantage"+ID] = maxAdvantage; } else { @@ -1759,9 +1814,15 @@ // Find advantages and limitations values. importedPowers["powerAdvantages"+ID] = findAdvantages(testObject.testString); importedPowers["powerLimitations"+ID] = findLimitations(testObject.testString); - importedPowers["powerText"+ID] = (powerArray[importCount].text).trim(); + importedPowers["powerDamageAdvantage"+ID] = findDamageAdvantages(testObject.testString, script_name); importedPowers["powerAoE"+ID] = isAoE(testObject.testString) ? "on" : 0; + // Power descriptions + importedPowers["powerText"+ID] = (powerArray[importCount].text).trim(); + if (character.version >= 2.1) { + importedPowers["powerText"+ID] += '\n'+'\n'+(powerArray[importCount].notes).trim(); + } + // Search for skill roll. tempObject = requiresRoll(testObject.testString); importedPowers["powerActivate"+ID] = tempObject.hasRoll ? "on" : 0; @@ -4134,7 +4195,7 @@ } - var getAdvantage = function (weaponString, script_name) { + var findDamageAdvantages = function (weaponString, script_name) { // See 6E2 98 for a list of advantages that affect weapon damage. let advantage = 0; let temp = 0; From b32bcbbe6cde373ea178832ae9a8950ff97cb42e Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Tue, 6 Aug 2024 01:23:45 -0600 Subject: [PATCH 04/11] Fixed incorrect maneuver DCV. --- .../2.1/HeroSystem6eHeroic.hde | 24 +++++++++---------- .../2.1/HeroSystem6eHeroic_HDImporter.js | 2 ++ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde index 560f9541a..de38df75d 100644 --- a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde @@ -702,7 +702,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 1 @@ -715,7 +715,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 2 @@ -728,7 +728,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 3 @@ -741,7 +741,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 4 @@ -754,7 +754,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 5 @@ -767,7 +767,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 6 @@ -780,7 +780,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 7 @@ -793,7 +793,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 8 @@ -806,7 +806,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 9 @@ -819,7 +819,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 10 @@ -832,7 +832,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 11 @@ -845,7 +845,7 @@ "points":"", "phase":"", "ocv":"", - "dcv":"", + "dcv":"", "effect":"", "notes":"" 12 diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js index 60e467b2e..2cc929394 100644 --- a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js @@ -574,6 +574,8 @@ importedManeuvers["martialManeuverPhase"+ID] = maneuverArray[importCount].phase; temp = Number(maneuverArray[importCount].ocv); importedManeuvers["martialManeuverOCV"+ID] = isNaN(temp) ? 0 : temp; + temp = Number(maneuverArray[importCount].dcv); + importedManeuvers["martialManeuverDCV"+ID] = isNaN(temp) ? 0 : temp; tempString = maneuverArray[importCount].effect.toLowerCase(); if ( tempString.includes("weapon") ) { From 4467c4a8b7a1037ff56a84d499fa167ef94b40bc Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Tue, 6 Aug 2024 01:46:40 -0600 Subject: [PATCH 05/11] Warning message for older HDE-generated source. --- .../2.1/HeroSystem6eHeroic_HDImporter.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js index 2cc929394..f6ed95096 100644 --- a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js @@ -42,7 +42,7 @@ (function() { // Constants const versionMod = "2.1"; - const versionSheet = "3.14"; // Note that a newer sheet will make upgrades as well as it can. + const versionSheet = "3.15"; // Note that a newer sheet will make upgrades as well as it can. const needsExportedVersion = new Set(["1.0", "2.0", "2.1"]); // HeroSystem6eHeroic.hde versions allowed. const defaultAttributes = { @@ -262,12 +262,10 @@ sendChat(script_name, '
Import of ' + character.character_name + ' started.
', null, {noarchive:true}); if (character.version === "1.0") { - sendChat(script_name, "Source exported from HERO Designer using HeroSystem6eHeroic.hde version 1.0"); - } - - // else if (character.version === "2.0") { - // sendChat(script_name, "Source exported from HERO Designer using HeroSystem6eHeroic.hde version 2.0"); - // } + sendChat(script_name, "Exported from HERO Designer with \n HeroSystem6eHeroic.hde v1.0. \n Version 2.1 is recommended."); + } else if (character.version === "2.0") { + sendChat(script_name, "Exported from HERO Designer with \n HeroSystem6eHeroic.hde v2.0. \n Version 2.1 is recommended."); + } object = null; From 6c24b4881542a57bb7bcbb4ada37afe935ba5ca8 Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Thu, 8 Aug 2024 23:46:25 -0600 Subject: [PATCH 06/11] Added second sample character Henkle. --- .../2.1/HeroSystem6eHeroic_HDImporter.js | 13 ++++++++----- .../2.1/Sample_Character.TXT | 2 +- .../2.1/Sample_Character.hdc | Bin 523852 -> 531698 bytes .../2.1/Sample_Character_MA.TXT | 1 + .../2.1/Sample_Character_MA.hdc | Bin 0 -> 444342 bytes 5 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 HeroSystem6eHeroic_HDImporter/2.1/Sample_Character_MA.TXT create mode 100644 HeroSystem6eHeroic_HDImporter/2.1/Sample_Character_MA.hdc diff --git a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js index f6ed95096..f32ee69f9 100644 --- a/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js +++ b/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic_HDImporter.js @@ -42,7 +42,7 @@ (function() { // Constants const versionMod = "2.1"; - const versionSheet = "3.15"; // Note that a newer sheet will make upgrades as well as it can. + const versionSheet = "3.16"; // Note that a newer sheet will make upgrades as well as it can. const needsExportedVersion = new Set(["1.0", "2.0", "2.1"]); // HeroSystem6eHeroic.hde versions allowed. const defaultAttributes = { @@ -262,9 +262,9 @@ sendChat(script_name, '
Import of ' + character.character_name + ' started.
', null, {noarchive:true}); if (character.version === "1.0") { - sendChat(script_name, "Exported from HERO Designer with \n HeroSystem6eHeroic.hde v1.0. \n Version 2.1 is recommended."); + sendChat(script_name, "Exported from HERO Designer with \n HeroSystem6eHeroic.hde v1.0. \n Version 2.1 supports additional content."); } else if (character.version === "2.0") { - sendChat(script_name, "Exported from HERO Designer with \n HeroSystem6eHeroic.hde v2.0. \n Version 2.1 is recommended."); + sendChat(script_name, "Exported from HERO Designer with \n HeroSystem6eHeroic.hde v2.0. \n Version 2.1 supports additional content."); } object = null; @@ -924,7 +924,7 @@ importedWeapons["weaponRangeMod"+ID]= 0; } - // Check for thrown weapon property. + // Check for the thrown weapon advantage. importedWeapons["rangeBasedOnStr"+ID] = (tempString.includes("Range Based On STR")) ? "on" : 0; // Check for modified STUN multiplier. @@ -4249,8 +4249,11 @@ searchString = "penetrating"; advantage += getSingleAdvantage (weaponString, searchString); - if (weaponString.includes("range based on str")) { + // Check for the ranged advantage. + if (weaponString.includes("range based on str (+1/4)")) { advantage += 0.25; + } else if (weaponString.includes("ranged (+1/2)")) { + advantage += 0.50; } if (weaponString.includes("sticky")) { diff --git a/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT index 391cf8236..bf57258d1 100644 --- a/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT +++ b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.TXT @@ -1 +1 @@ - !hero --import { "character":{ "character_name":"Darci", "character_title":"Fae-Cursed", "height":"1.66 m", "weight":"60.00 kg", "eyes":"Brown", "hair":"Brown", "backgroundText":"Darci grew up in a small highland village, the daughter of a village healer, with no ambition save to learn her mother's trade. Her life was turned upside down when she encountered a trol while out collection herbs in the woods. The troll promised to tell her secrets of Fae magic in return for her friendship. Darci has regretted her kindness ever since. Exiled and feard by common folk and given little help by the Fae, Darci has found safety in the service of a mercenary company.", "historyText":"", "appearance":"", "tactics":"", "campaignUse":"", "quote":"Village Herbalist", "experience":"0", "experienceBenefit":"0", "strength":"17", "dexterity":"13", "constitution":"18", "intelligence":"18", "ego":"13", "presence":"10", "ocv":"4", "dcv":"4", "omcv":"3", "dmcv":"3", "speed":"4", "pd":"4", "ed":"3", "body":"14", "stun":"26", "endurance":"40", "recovery":"9", "running":"12", "leaping":"6", "swimming":"6", "equipment":{ "equipment01":{ "name":"Bronze Cap", "text":"Resistant Protection (5 PD/5 ED) (15 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"0.83kg", "attack":"", "defense":"true", "notes":"(Locations 5)" }, "equipment02":{ "name":"Bronze Maille", "text":"Resistant Protection (4 PD/4 ED) (12 Active Points); Normal Mass (-1), OIF (-1/2), Requires A Roll (11- roll; Locations 7-14; -1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"11.40kg", "attack":"", "defense":"true", "notes":"(1 END/turn)" }, "equipment03":{ "name":"High Boots, Gloves", "text":"Resistant Protection (2 PD/2 ED) (6 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"1.20kg", "attack":"", "defense":"true", "notes":"(Locations 16-18, 6-7)" }, "equipment04":{ "name":"Bronze Battle Axe", "text":"(Total: 46 Active Cost, 16 Real Cost) Killing Attack - Hand-To-Hand 2d6 (3d6 w/STR), Reduced Endurance (0 END; +1/2) (45 Active Points); OAF (-1), STR Min: 13 (-1/2), Real Weapon (-1/4), Required Hands One-And-A-Half-Handed (-1/4) (Real Cost: 15) plus (1 Active Points) (Real Cost: 1)", "damage":"2d6 (3d6 w/STR)", "end":"0", "range":"", "mass":"1.60kg", "attack":"true", "defense":"", "notes":"" }, "equipment05":{ "name":"Bronze Dagger", "text":"Killing Attack - Hand-To-Hand 1d6-1 (1d6 w/STR), Range Based On STR (+1/4), Reduced Endurance (0 END; +1/2) (17 Active Points); OAF (-1), Real Weapon (-1/4), STR Minimum 6 (-1/4)", "damage":"1d6-1 (1d6 w/STR)", "end":"0", "range":"var.", "mass":"0.80kg", "attack":"true", "defense":"", "notes":"" }, "equipment06":{ "name":"Healing Potion", "text":"Healing BODY 4d6 (40 Active Points); 3 Charges which Never Recover (-3 1/4), OAF Fragile (-1 1/4), Extra Time (Full Phase, -1/2), Gestures (-1/4)", "damage":"4d6", "end":"[3 nr]", "range":"", "mass":"1.30kg", "attack":"", "defense":"", "notes":"" }, "equipment07":{ "name":"Winter Coat", "text":"Life Support (Safe in Intense Cold) (2 Active Points); OIF (-1/2)", "damage":"", "end":"0", "range":"", "mass":"3.30kg", "attack":"", "defense":"", "notes":"" }, "equipment08":{ "name":"(Multipower) Small Shield", "text":"Multipower, 5-point reserve, (5 Active Points); all slots OAF (-1), STR Min 6 (-1/4)", "damage":"", "end":"", "range":"", "mass":"3.00kg", "attack":"", "defense":"", "notes":"" }, "equipment09":{ "name":"(MPSlot1) ", "text":"+1 DCV (5 Active Points); OAF (-1), Real Armor (-1/4), STR Min 6 (-1/4)", "damage":"", "end":"", "range":"", "mass":"", "attack":"", "defense":"", "notes":"" }, "equipment10":{ "name":"(MPSlot2) Bash", "text":"Hand-To-Hand Attack +1d6 (5 Active Points); OAF (-1), Hand-To-Hand Attack (-1/2), Side Effects -1 OCV, Side Effect occurs automatically whenever Power is used (-1/2), Real Weapon (-1/4), STR Min 6 (-1/4)", "damage":"1d6", "end":"1", "range":"", "mass":"", "attack":"true", "defense":"", "notes":"" }, "equipment11":{}, "equipment12":{}, "equipment13":{}, "equipment14":{}, "equipment15":{}, "equipment16":{} }, "maneuvers":{ "maneuver01":{ }, "maneuver02":{ }, "maneuver03":{ }, "maneuver04":{ }, "maneuver05":{ }, "maneuver06":{ }, "maneuver07":{ }, "maneuver08":{ }, "maneuver09":{ }, "maneuver10":{ }, "maneuver11":{ }, "maneuver12":{ }, "maneuver13":{ }, "maneuver14":{ }, "maneuver15":{ }, "maneuver16":{ }, "maneuver17":{ }, "maneuver18":{ }, "maneuver19":{ }, "maneuver20":{ } }, "perks":{ "perk01":{ "type":"Fringe Benefit", "points":"1", "text":"Member of the CompanyFringe Benefit: Membership", "notes":"" }, "perk02":{ "type":"Fringe Benefit", "points":"1", "text":"Low-ranking member of Fae SocietyFringe Benefit (0 Active Points)", "notes":"" }, "perk03":{ }, "perk04":{ }, "perk05":{ }, "perk06":{ }, "perk07":{ }, "perk08":{ }, "perk09":{ }, "perk10":{ } }, "talents":{}, "complications":{ "complication01":{ "type":"Social Complication", "points":"10", "text":"Social Complication: Regarded as fae-touched and cursed. Frequently, Minor", "notes":"" }, "complication02":{ "type":"Hunted", "points":"15", "text":"Hunted: Hunted by agents of Summer. Frequently (Mo Pow; Mildly Punish)", "notes":"" }, "complication03":{ "type":"Distinctive Features", "points":"5", "text":"Distinctive Features: Peculiar smell and hard-to-pin-down appearance. Not quite human. Trollish, to those who know of fae. (Easily Concealed; Noticed and Recognizable; Detectable By Commonly-Used Senses)", "notes":"" }, "complication04":{ "type":"Psychological Complication", "points":"20", "text":"Psychological Complication: Finds the touch of iron uncomfortable and won't wear iron armor or jewelry or use iron tools. (Very Common; Strong)", "notes":"" }, "complication05":{}, "complication06":{}, "complication07":{}, "complication08":{}, "complication09":{}, "complication10":{}, "complication11":{}, "complication12":{}, "complication13":{}, "complication14":{}, "complication15":{}, "complication16":{}, "complication17":{}, "complication18":{}, "complication19":{}, "complication20":{} }, "powers":{ "power01":{ "name":"Bile and Acid", "base":"15", "text":"Killing Attack - Ranged 1d6, Area Of Effect (4 2m Areas; +1/2), Damage Over Time, Target's defenses only apply once (3 damage increments, damage occurs every four Segments, can be negated by Water; +2 1/2) (60 Active Points); 3 Recoverable Charges (-3/4), Extra Time (Full Phase, -1/2), No Range (-1/2), Gestures (Requires both hands; -1/2), Side Effects (1d6+1d3 drain STUN; -1/4), Concentration (1/2 DCV; -1/4), Limited Power Power loses about a fourth of its effectiveness (Does not work in water; -1/4), Requires A Roll (Skill roll, -1 per 20 Active Points modifier; Magic Roll; -1/4)", "cost":"14", "endurance":"[3 rc]", "damage":"1d6", "compound":"false" }, "power02":{ "name":"Pneuma", "base":"30", "text":"Killing Attack - Ranged 2d6, Invisible Power Effects (Inobvious to [one Sense Group]; +1/4) (37 Active Points); Requires A Roll (Skill roll; -1/2), Gestures (-1/4), Incantations (-1/4), Beam (-1/4), Limited Power Power loses about a fourth of its effectiveness (Does not work under water; -1/4)", "cost":"15", "endurance":"4", "damage":"2d6", "compound":"false" }, "power03":{ "name":"Self Renewal", "base":"55", "text":"Healing BODY 5d6, Can Heal Limbs (55 Active Points); Increased Endurance Cost (x6 END; -2 1/2), Extra Time (1 Turn (Post-Segment 12), Character May Take No Other Actions, -1 1/2), Concentration, Must Concentrate throughout use of Constant Power (0 DCV; Character is totally unaware of nearby events; -1 1/2), OAF (Eat a sprig of evergreen; -1), Gestures (Requires both hands; -1/2), Life Energy Modifier Power loses about a third of its effectiveness (-1/2), Self Only Power loses about a third of its effectiveness (-1/2), Incantations (-1/4), Requires A Roll (Characteristic roll, -1 per 20 Active Points modifier; -1/4)", "cost":"6", "endurance":"30", "damage":"5d6", "compound":"false" }, "power04":{ "name":"Underdark Eyes", "base":"5", "text":"Nightvision (5 Active Points); Gestures (Requires both hands; -1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4)", "cost":"2", "endurance":"0", "damage":"", "compound":"false" }, "power05":{ "name":"Winter's Shawl", "base":"12", "text":"Life Support (Immunity All terrestrial diseases; Immunity: All terrestrial poisons; Safe in Intense Cold) (12 Active Points); Costs Endurance (-1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4)", "cost":"5", "endurance":"1", "damage":"", "compound":"false" }, "power06":{ "name":"Fae Sense", "base":"10", "text":"Detect Magic A Class Of Things 13- (no Sense Group), Range (10 Active Points); Increased Endurance Cost (x4 END; -3/4), Gestures (Requires both hands; -1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4), Costs Endurance (Only Costs END to Activate; -1/4)", "cost":"3", "endurance":"4", "damage":"13-", "compound":"false" }, "power07":{ }, "power08":{ }, "power09":{ }, "power10":{ }, "power11":{ }, "power12":{ }, "power13":{ }, "power14":{ }, "power15":{ }, "power16":{ }, "power17":{ }, "power18":{ }, "power19":{ }, "power20":{ }, "power21":{ }, "power22":{ }, "power23":{ }, "power24":{ }, "power25":{ }, "power26":{ }, "power27":{ }, "power28":{ }, "power29":{ }, "power30":{ } }, "skills": { "skill01": { "name":"Mercenary", "enhancer":"", "text":"PS 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill02": { "name":"Herbalist", "enhancer":"", "text":"PS 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"0", "levels":"0", "cost":"0" }, "skill03": { "name":"", "enhancer":"", "text":"Language: Clan's Tongue (idiomatic; literate) (5 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"5", "levels":"0", "cost":"0" }, "skill04": { "name":"", "enhancer":"", "text":"Language: King's Tongue (fluent conversation)", "display":"Language", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill05": { "name":"", "enhancer":"", "text":"Language: Fae (completely fluent; literate)", "display":"Language", "attribute":"GENERAL", "base":"4", "levels":"0", "cost":"4" }, "skill06": { "name":"", "enhancer":"", "text":"+3 Battle Axe", "display":"Combat Skill Levels", "attribute":"GENERAL", "base":"6", "levels":"3", "cost":"6" }, "skill07": { "name":"Fae Society", "enhancer":"", "text":"KS 11-", "display":"KS", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill08": { "name":"Clan Lands", "enhancer":"", "text":"AK 11-", "display":"Knowledge Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill09": { "name":"Common Melee", "enhancer":"", "text":"WF: Common Melee Weapons", "display":"Weapon Familiarity", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill10": { "name":"Power Skill Fae Magic", "enhancer":"", "text":"Power 15-", "display":"Power", "attribute":"INT", "base":"7", "levels":"2", "cost":"7" }, "skill11": { "name":"", "enhancer":"", "text":"Stealth 12-", "display":"Stealth", "attribute":"DEX", "base":"3", "levels":"0", "cost":"3" }, "skill12": { "name":"", "enhancer":"", "text":"Teamwork 12-", "display":"Teamwork", "attribute":"DEX", "base":"3", "levels":"0", "cost":"3" }, "skill13": { "name":"", "enhancer":"", "text":"Concealment 13-", "display":"Concealment", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill14": { "name":"", "enhancer":"", "text":"Science Skill: Herbal Medicine 11-", "display":"Science Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill15": { "name":"", "enhancer":"", "text":"Paramedics 13-", "display":"Paramedics", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill16": { "name":"Survival", "enhancer":"", "text":"Survival 13-", "display":"Survival", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill17": { }, "skill18": { }, "skill19": { }, "skill20": { }, "skill21": { }, "skill22": { }, "skill23": { }, "skill24": { }, "skill25": { }, "skill26": { }, "skill27": { }, "skill28": { }, "skill29": { }, "skill30": { }, "skill31": { }, "skill32": { }, "skill33": { }, "skill34": { }, "skill35": { }, "skill36": { }, "skill37": { }, "skill38": { }, "skill39": { }, "skill40": { }, "skill41": { }, "skill42": { }, "skill43": { }, "skill44": { }, "skill45": { }, "skill46": { }, "skill47": { }, "skill48": { }, "skill49": { }, "skill50": { } }, "playerName":"Matt", "gmName":"Villain In Glasses", "characterFile":"Darci.hdc", "versionHD":"20220801", "timeStamp":"Sat, 27 Apr 2024 16:03:01", "genre":"Fantasy Hero", "campaign":"Coryn's Company", "version":"2.0", "HeroSystem6eHeroic":"true" } } \ No newline at end of file + !hero --import { "character":{ "character_name":"Darci", "character_title":"Fae-Cursed", "height":"1.66 m", "weight":"60.00 kg", "eyes":"Brown", "hair":"Brown", "backgroundText":"Darci grew up in a small highland village, the daughter of a village healer, with no ambition save to learn her mother's trade. Her life was turned upside down when she encountered a trol while out collection herbs in the woods. The troll promised to tell her secrets of Fae magic in return for her friendship. Darci has regretted her kindness ever since. Exiled and feard by common folk and given little help by the Fae, Darci has found safety in the service of a mercenary company.", "historyText":"", "appearance":"", "tactics":"", "campaignUse":"", "quote":"Village Herbalist", "experience":"0", "experienceBenefit":"0", "strength":"17", "dexterity":"13", "constitution":"18", "intelligence":"18", "ego":"13", "presence":"10", "ocv":"4", "dcv":"4", "omcv":"3", "dmcv":"3", "speed":"4", "pd":"4", "ed":"3", "body":"14", "stun":"26", "endurance":"40", "recovery":"9", "running":"12", "leaping":"6", "swimming":"6", "equipment":{ "equipment01":{ "name":"Chainmail", "text":"Resistant Protection (6 PD/6 ED) (18 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4), Requires A Roll (14- roll; Must be made each Phase/use; -1/4)", "damage":"", "end":"0", "range":"", "mass":"20.00kg", "attack":"", "defense":"true", "notes":"" }, "equipment02":{ "name":"Longbow, Medium", "text":"(Total: 32 Active Cost, 7 Real Cost) Killing Attack - Ranged 1 1/2d6 (31 Active Points); OAF (-1), STR Minimum 12 (STR Min. Cannot Add/Subtract Damage; -1), Limited Power No Horse (-1/2), Required Hands Two-Handed (-1/2), Beam (-1/4), Concentration (1/2 DCV; -1/4), Real Weapon (-1/4), 10 Recoverable Charges (+1/4) (Real Cost: 6) plus Penalty Skill Levels: +1 vs. Range Modifier with to offset a specific negative OCV modifier with any single attack; OAF (-1), Required Hands Two-Handed (-1/2) (Real Cost: 1)", "damage":"1 1/2d6", "end":"[10 rc]", "range":"", "mass":"1.20kg", "attack":"true", "defense":"", "notes":"" }, "equipment03":{ "name":"Healing Potion", "text":"Healing BODY 4d6 (40 Active Points); 3 Charges which Never Recover (-3 1/4), OAF Fragile (-1 1/4), Extra Time (Full Phase, -1/2), Gestures (-1/4)", "damage":"4d6", "end":"[3 nr]", "range":"", "mass":"1.30kg", "attack":"", "defense":"", "notes":"" }, "equipment04":{ "name":"Baton/Shillelagh", "text":"(Total: 23 Active Cost, 8 Real Cost) Hand-To-Hand Attack +3d6, Reduced Endurance (0 END; +1/2) (22 Active Points); OAF (-1), Hand-To-Hand Attack (-1/2), Real Weapon (-1/4), STR Minimum 8 (-1/4) (Real Cost: 7) plus (1 Active Points) (Real Cost: 1)", "damage":"3d6", "end":"0", "range":"", "mass":"1.20kg", "attack":"true", "defense":"", "notes":"" }, "equipment05":{ "name":"Winter Coat", "text":"Life Support (Safe in Intense Cold) (2 Active Points); OIF (-1/2)", "damage":"", "end":"0", "range":"", "mass":"3.30kg", "attack":"", "defense":"", "notes":"" }, "equipment06":{ "name":"Dagger/Dirk", "text":"Killing Attack - Hand-To-Hand 1d6-1 (1d6 w/STR), Range Based On STR (+1/4), Reduced Endurance (0 END; +1/2) (17 Active Points); OAF (-1), Real Weapon (-1/4), STR Minimum 6 (-1/4)", "damage":"1d6-1 (1d6 w/STR)", "end":"0", "range":"var.", "mass":"0.80kg", "attack":"true", "defense":"", "notes":"" }, "equipment07":{ "name":"(Multipower) Small Shield", "text":"Multipower, 5-point reserve, (5 Active Points); all slots OAF (-1), STR Min 6 (-1/4)", "damage":"", "end":"", "range":"", "mass":"3.00kg", "attack":"", "defense":"", "notes":"" }, "equipment08":{ "name":"(MPSlot1) ", "text":"+1 DCV (5 Active Points); OAF (-1), Real Armor (-1/4), STR Min 6 (-1/4)", "damage":"", "end":"", "range":"", "mass":"", "attack":"", "defense":"", "notes":"" }, "equipment09":{ "name":"(MPSlot2) Bash", "text":"Hand-To-Hand Attack +1d6 (5 Active Points); OAF (-1), Hand-To-Hand Attack (-1/2), Side Effects -1 OCV, Side Effect occurs automatically whenever Power is used (-1/2), Real Weapon (-1/4), STR Min 6 (-1/4)", "damage":"1d6", "end":"1", "range":"", "mass":"", "attack":"true", "defense":"", "notes":"" }, "equipment10":{}, "equipment11":{}, "equipment12":{}, "equipment13":{}, "equipment14":{}, "equipment15":{}, "equipment16":{} }, "maneuvers":{ "maneuver01":{ }, "maneuver02":{ }, "maneuver03":{ }, "maneuver04":{ }, "maneuver05":{ }, "maneuver06":{ }, "maneuver07":{ }, "maneuver08":{ }, "maneuver09":{ }, "maneuver10":{ }, "maneuver11":{ }, "maneuver12":{ }, "maneuver13":{ }, "maneuver14":{ }, "maneuver15":{ }, "maneuver16":{ }, "maneuver17":{ }, "maneuver18":{ }, "maneuver19":{ }, "maneuver20":{ } }, "perks":{ "perk01":{ "type":"Fringe Benefit", "points":"1", "text":"Member of a Mercenary CompanyFringe Benefit (0 Active Points)", "notes":"Some Perks Notes." }, "perk02":{ "type":"Fringe Benefit", "points":"1", "text":"Low-ranking member of Fae SocietyFringe Benefit (0 Active Points)", "notes":"" }, "perk03":{ }, "perk04":{ }, "perk05":{ }, "perk06":{ }, "perk07":{ }, "perk08":{ }, "perk09":{ }, "perk10":{ } }, "talents":{}, "complications":{ "complication01":{ "type":"Social Complication", "points":"10", "text":"Social Complication: Regarded as fae-touched and cursed. Frequently, Minor", "notes":"The mortal world tends to distrust anyone or anything touched by Fae." }, "complication02":{ "type":"Hunted", "points":"15", "text":"Hunted: Hunted by agents of Summer. Frequently (Mo Pow; Mildly Punish)", "notes":"While Darci hasn't reached the notoriety that would attract more dangerous agents, Summer won't hesitate to torment her and her companions." }, "complication03":{ "type":"Distinctive Features", "points":"5", "text":"Distinctive Features: Peculiar smell and hard-to-pin-down appearance. Not quite human. Trollish, to those who know of fae. (Easily Concealed; Noticed and Recognizable; Detectable By Commonly-Used Senses)", "notes":"" }, "complication04":{ "type":"Psychological Complication", "points":"20", "text":"Psychological Complication: Finds the touch of iron uncomfortable and won't wear iron armor or jewelry or use iron tools. (Very Common; Strong)", "notes":"" }, "complication05":{}, "complication06":{}, "complication07":{}, "complication08":{}, "complication09":{}, "complication10":{}, "complication11":{}, "complication12":{}, "complication13":{}, "complication14":{}, "complication15":{}, "complication16":{}, "complication17":{}, "complication18":{}, "complication19":{}, "complication20":{} }, "powers":{ "power01":{ "name":"Bile and Acid", "base":"15", "text":"Killing Attack - Ranged 1d6, Area Of Effect (4 2m Areas; +1/2), Damage Over Time, Target's defenses only apply once (3 damage increments, damage occurs every four Segments, can be negated by Water; +2 1/2) (60 Active Points); 3 Recoverable Charges (-3/4), Extra Time (Full Phase, -1/2), No Range (-1/2), Gestures (Requires both hands; -1/2), Side Effects (1d6+1d3 drain STUN; -1/4), Concentration (1/2 DCV; -1/4), Limited Power Power loses about a fourth of its effectiveness (Does not work in water; -1/4), Requires A Roll (Skill roll, -1 per 20 Active Points modifier; Magic Roll; -1/4)", "notes":"This effects of this spell don't paint a pretty picture, but they get the job done.", "cost":"14", "endurance":"[3 rc]", "damage":"1d6", "compound":"false" }, "power02":{ "name":"Pneuma", "base":"30", "text":"Killing Attack - Ranged 2d6, Invisible Power Effects (Inobvious to [one Sense Group]; +1/4) (37 Active Points); Requires A Roll (Skill roll; -1/2), Gestures (-1/4), Incantations (-1/4), Beam (-1/4), Limited Power Power loses about a fourth of its effectiveness (Does not work under water; -1/4)", "notes":"A pneuma is an invisble dart, which Darci draws from her breath with an exaggerated motion and throws at her target.", "cost":"15", "endurance":"4", "damage":"2d6", "compound":"false" }, "power03":{ "name":"Self Renewal", "base":"55", "text":"Healing BODY 5d6, Can Heal Limbs (55 Active Points); Increased Endurance Cost (x6 END; -2 1/2), Extra Time (1 Turn (Post-Segment 12), Character May Take No Other Actions, -1 1/2), Concentration, Must Concentrate throughout use of Constant Power (0 DCV; Character is totally unaware of nearby events; -1 1/2), OAF (Eat a sprig of evergreen; -1), Gestures (Requires both hands; -1/2), Life Energy Modifier Power loses about a third of its effectiveness (-1/2), Self Only Power loses about a third of its effectiveness (-1/2), Incantations (-1/4), Requires A Roll (Characteristic roll, -1 per 20 Active Points modifier; -1/4)", "notes":"Darci can draw from the regenerative powers of trolls after an intense and painful bout of concentration.", "cost":"6", "endurance":"30", "damage":"5d6", "compound":"false" }, "power04":{ "name":"Underdark Eyes", "base":"5", "text":"Nightvision (5 Active Points); Gestures (Requires both hands; -1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4)", "notes":"Trolls may be unpleasant creatures, but they can see in the dark.", "cost":"2", "endurance":"0", "damage":"", "compound":"false" }, "power05":{ "name":"Winter's Shawl", "base":"12", "text":"Life Support (Immunity All terrestrial diseases; Immunity: All terrestrial poisons; Safe in Intense Cold) (12 Active Points); Costs Endurance (-1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4)", "notes":"The trolls of the Winter Court can survive most any winter storm or natural plague.", "cost":"5", "endurance":"1", "damage":"", "compound":"false" }, "power06":{ "name":"Fae Sense", "base":"10", "text":"Detect Magic A Class Of Things 13- (no Sense Group), Range (10 Active Points); Increased Endurance Cost (x4 END; -3/4), Gestures (Requires both hands; -1/2), Requires A Roll (11- roll; -1/2), Incantations (-1/4), Costs Endurance (Only Costs END to Activate; -1/4)", "notes":"The Fae have a knack for spotting ley lines and other magics in their enviornments.", "cost":"3", "endurance":"4", "damage":"13-", "compound":"false" }, "power07":{ }, "power08":{ }, "power09":{ }, "power10":{ }, "power11":{ }, "power12":{ }, "power13":{ }, "power14":{ }, "power15":{ }, "power16":{ }, "power17":{ }, "power18":{ }, "power19":{ }, "power20":{ }, "power21":{ }, "power22":{ }, "power23":{ }, "power24":{ }, "power25":{ }, "power26":{ }, "power27":{ }, "power28":{ }, "power29":{ }, "power30":{ } }, "skills": { "skill01": { "name":"", "enhancer":"", "text":"PS: Soldier 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill02": { "name":"", "enhancer":"", "text":"PS: Herbalist 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"0", "levels":"0", "cost":"0" }, "skill03": { "name":"", "enhancer":"", "text":"Language: Clan's Tongue (basic conversation; literate) (2 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"0" }, "skill04": { "name":"", "enhancer":"", "text":"Language: King's Tongue (fluent conversation)", "display":"Language", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill05": { "name":"", "enhancer":"", "text":"Language: Fae (completely fluent; literate)", "display":"Language", "attribute":"GENERAL", "base":"4", "levels":"0", "cost":"4" }, "skill06": { "name":"BattleAxe +2", "enhancer":"", "text":"+2 with any single attack", "display":"Combat Skill Levels", "attribute":"GENERAL", "base":"4", "levels":"2", "cost":"4" }, "skill07": { "name":"Fae Society", "enhancer":"", "text":"KS 11-", "display":"KS", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill08": { "name":"Clan Lands", "enhancer":"", "text":"AK 11-", "display":"Knowledge Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill09": { "name":"Common Melee", "enhancer":"", "text":"WF: Common Melee Weapons", "display":"Weapon Familiarity", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill10": { "name":"Power Skill Fae Magic", "enhancer":"", "text":"Power 15-", "display":"Power", "attribute":"INT", "base":"7", "levels":"2", "cost":"7" }, "skill11": { "name":"", "enhancer":"", "text":"Stealth 12-", "display":"Stealth", "attribute":"DEX", "base":"3", "levels":"0", "cost":"3" }, "skill12": { "name":"", "enhancer":"", "text":"Teamwork 12-", "display":"Teamwork", "attribute":"DEX", "base":"3", "levels":"0", "cost":"3" }, "skill13": { "name":"", "enhancer":"", "text":"Concealment 13-", "display":"Concealment", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill14": { "name":"", "enhancer":"", "text":"Science Skill: Herbal Medicine 11-", "display":"Science Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill15": { "name":"", "enhancer":"", "text":"Paramedics 13-", "display":"Paramedics", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill16": { "name":"Survival", "enhancer":"", "text":"Survival 13-", "display":"Survival", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill17": { }, "skill18": { }, "skill19": { }, "skill20": { }, "skill21": { }, "skill22": { }, "skill23": { }, "skill24": { }, "skill25": { }, "skill26": { }, "skill27": { }, "skill28": { }, "skill29": { }, "skill30": { }, "skill31": { }, "skill32": { }, "skill33": { }, "skill34": { }, "skill35": { }, "skill36": { }, "skill37": { }, "skill38": { }, "skill39": { }, "skill40": { }, "skill41": { }, "skill42": { }, "skill43": { }, "skill44": { }, "skill45": { }, "skill46": { }, "skill47": { }, "skill48": { }, "skill49": { }, "skill50": { } }, "playerName":"Test PC", "gmName":"Villain In Glasses", "characterFile":"Darci Fae-Cursed.hdc", "versionHD":"20220801", "timeStamp":"Thu, 8 Aug 2024 23:39:19", "genre":"Fantasy Hero", "campaign":"Coryn's Company", "version":"2.1", "HeroSystem6eHeroic":"true" } } \ No newline at end of file diff --git a/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.hdc b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character.hdc index baad5b59ee3c32bec9e11d3e9ddf9f1104906274..be2e26de5c2aeb3c7579dc218f6d62205a425917 100644 GIT binary patch delta 6333 zcma)AYfx3!6+Y{tA_zVr_y8~W3Q-9`xEJIVANYO*5gK1LlPC`nQF&BBLsJXWB&|~w zjoY|~ScRH6Hi;dWoHS=*G@4A(F;7gI)=W~B(b|kPsV14U%}ctzz3+j0#V)^THpHC+WVdFJzu`$?fituYko}e6ur!-Ft!-=hSw-I=9u5RDze3dX^EnzGEFp0 z8)r@T(HM$eYSbE=jI~A;D{mIJ$|s2Q74;&0!v^u`R9|e4k-@)Q{$=vz=PS#|6KB4P z7fp3(X2Y~Z5^L_gLo`-JnNLmMN+NxBns{zuvZ&2}Yv62Sma$aS&5RXmb`9=*nh;TD zl=8HyjB@eX{OuxQ)_+7-Wz>*NV~UYu_>64BFS@TRFgpsKbcx9e)65C;4n&9{cgC1q zOMXgsZ{rW^jrF{yQlrLb%uC1;@scdW>eiSh`;h0g>VSlsbK4+eAl>dvp;Eu0e@91L&ZvA zBTv9Qd$+pI{sC#(R%e<%THdux8+-m zI+kwYpO+(2%L7khsh8iDszu@+Q>)|YRIsF8IiQYZu-Ks9rn0<@@1e_D>tQPNwC9M-hhs(}=9%o192NB(zRMCNN8F+-B~JDiWY^ua zL>48H*AZRYPPXYiQR{@d63OCjbM%u`6e%A@X(%y-Ztn1mSG(3E~Hi0cv!Js*J5lQl~J&Gj z(Ey@A0p$v#paWefw;S}OJ^$B!MI*OSxr%#LzF!9~@_#geXeR5Gmn-=V zI$QXClX`jM*p8u$WQvg9F+pQ?=4+OQO2qgz1wb0(a- zph2elCO8C@77oE1EFPOH5UO?^77kLxQb7pN*8o-RKohHKrd`T{Y6UuY35M;d!7tdw zAqw!i_L%;=S$&}y+{QTu!-VYTa<)~?S%dew8DvNs(~NZ9mdW$gG!C7Bte8rPL3EnO z-pyt2X3Ck5kQ;Q8W?h|1$xes{bh!2)2Ko84Ftj`awaKz((?82!XZElWyimFSo?My$Ezm7~jO6ebhJJ6sec9sp@# zJy=GsxRfAV3;fcX&o01zM@H|Vo7Tp4w2Oj2BT2yZ3|75FP)@uvSTL= z8WH??MqoE7Jm&|?{8RK<_(}zg71H+#xqBaqhf@+q#3$PKy)3$3OyO$~Xn&k|e0QR< z+J91C#mh@ODT8;*DK7gPar$tAJT0hLG@cw4YBs#FK==E_$$ca}EwmN8SEU#2n6+q* zbgMSHqirZRGf@2em5Kc)!fDvsX^M^`x5S}OrbXk-#mjyL?QW4bQ|J^d?05JDCkTGD zpHp43XD=Og46jmum37xqIzW*ATpTP4OIhVUc1t0{w}x2;Jsx;b)4Z2IU(3IAhGhc-KA6t2 z3i}|;PuRcynPXnHqQUaF&9KzVR9xFds?I|T_ZI$Pb=r557j%>djIhXpI(5bei< zZ7hke7bJ)u{*WzpzmXufpC!(Jlc8LjuQ|>-_yV0AsTuLo8-#;a?0^|~yzv{gz+y%m zMT!VLvz6OWmw^xTFW8~uKoWiBdQhQk-NE$Jc9~MKGE^3n5I(h4#~pk^C|+I?BTrqT z88}{!Br)&j&%zn1ARW5QJ9AJMlS~%7BUkYsS3td!RbLfdqt^&bH}^KB993a2w9pw> zKZ)J^d5%)M&SW|H7$t-n3rC2Htms{|gZakJ(q4m%NQ8+)RA_OI&LGM~GJ;o%dow^@ zYo&XKU;#MsWQO50PgMh~$GEVB$yQ>T=0NNc?~Vw>;QE_%U%2dfo_+VH9dw5(O>)g) zdRjym1xnG?HrgAD9JG(Q(m8X`wr{jr+G&z5$M|M2`EU$sai#c3mvQ?oX3Z{0b-v}z zlEnl*(3jUg+nVSlI3!bI0fy~5w{d%j$Jh4D3juYr6G LvMzLo*Sh}?+9V0E delta 4245 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 diff --git a/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character_MA.TXT b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character_MA.TXT new file mode 100644 index 000000000..4db25ee80 --- /dev/null +++ b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character_MA.TXT @@ -0,0 +1 @@ + !hero --import { "character":{ "character_name":"Henkle", "character_title":"Clan Doctor", "height":"1.76 m", "weight":"87.00 kg", "eyes":"Green", "hair":"Sandy", "backgroundText":"Henkle is a learned man, trained as a physician by the best court instructors and an expert swordsman. He once had a promising future serving clan royalty. It all fell to pieces when he misinterpreted a joke and subsequently dug himself into a ever deepening hole. Lucky to be alive, he found himself banished. The Company scooped him up after a particularly self destructive drinking binge.", "historyText":"", "appearance":"Like many a clansman, Henkle is not small and his lack of social awareness makes for an intimidating block of a man.", "tactics":"", "campaignUse":"As part of his education, Henkle dabbled in Wizardy and can cast a couple of spells, including a minor healing spell and a light spell.", "quote":"Banished aristocrat", "experience":"0", "experienceBenefit":"0", "strength":"18", "dexterity":"15", "constitution":"13", "intelligence":"15", "ego":"14", "presence":"15", "ocv":"5", "dcv":"4", "omcv":"3", "dmcv":"4", "speed":"3", "pd":"4", "ed":"4", "body":"15", "stun":"36", "endurance":"40", "recovery":"7", "running":"12", "leaping":"4", "swimming":"0", "equipment":{ "equipment01":{ "name":"Light Maille", "text":"Resistant Protection (5 PD/5 ED) (15 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4), Requires A Roll (12- roll; Locations 9-14; -1/4)", "damage":"", "end":"0", "range":"", "mass":"10.20kg", "attack":"", "defense":"true", "notes":"(1 END/turn)" }, "equipment02":{ "name":"Open-face Helm", "text":"Resistant Protection (6 PD/6 ED) (18 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"0.83kg", "attack":"", "defense":"true", "notes":"(Locations 4-5)" }, "equipment03":{ "name":"High Boots, Gloves", "text":"Resistant Protection (2 PD/2 ED) (6 Active Points); Normal Mass (-1), OIF (-1/2), Real Armor (-1/4)", "damage":"", "end":"0", "range":"", "mass":"1.20kg", "attack":"", "defense":"true", "notes":"(Locations 16-18, 6-7)" }, "equipment04":{ "name":"Arming Sword", "text":"(Total: 31 Active Cost, 12 Real Cost) Killing Attack - Hand-To-Hand 1d6+1 (1 1/2d6 w/STR), Reduced Endurance (0 END; +1/2) (30 Active Points); OAF (-1), STR Minimum 12 (-1/2), Real Weapon (-1/4) (Real Cost: 11) plus (1 Active Points) (Real Cost: 1)", "damage":"1d6+1 (1 1/2d6 w/STR)", "end":"0", "range":"", "mass":"1.20kg", "attack":"true", "defense":"", "notes":"" }, "equipment05":{ "name":"Long Sword", "text":"(Total: 38 Active Cost, 13 Real Cost) Killing Attack - Hand-To-Hand 1 1/2d6 (2d6 w/STR), Reduced Endurance (0 END; +1/2) (37 Active Points); OAF (-1), STR Minimum 13 (-1/2), Real Weapon (-1/4), Required Hands One-And-A-Half-Handed (-1/4) (Real Cost: 12) plus (1 Active Points) (Real Cost: 1)", "damage":"1 1/2d6 (2d6 w/STR)", "end":"0", "range":"", "mass":"1.70kg", "attack":"true", "defense":"", "notes":"" }, "equipment06":{ "name":"Knife", "text":"(Total: 18 Active Cost, 8 Real Cost) Killing Attack - Hand-To-Hand 1/2d6 (1d6+1 w/STR), Range Based On STR (+1/4), Reduced Endurance (0 END; +1/2) (17 Active Points); OAF (-1), Real Weapon (-1/4), STR Minimum 4 (-1/4) (Real Cost: 7) plus (1 Active Points) (Real Cost: 1)", "damage":"1/2d6 (1d6+1 w/STR)", "end":"0", "range":"", "mass":"0.40kg", "attack":"true", "defense":"", "notes":"" }, "equipment07":{}, "equipment08":{}, "equipment09":{}, "equipment10":{}, "equipment11":{}, "equipment12":{}, "equipment13":{}, "equipment14":{}, "equipment15":{}, "equipment16":{} }, "maneuvers":{ "maneuver01":{ "name":"Slash", "points":"4", "phase":"1/2", "ocv":"+0", "dcv":"+2", "effect":"Weapon +2 DC Strike", "notes":"" }, "maneuver02":{ "name":"Parry", "points":"4", "phase":"1/2", "ocv":"+2", "dcv":"+2", "effect":"Block, Abort", "notes":"" }, "maneuver03":{ "name":"Counterstrike", "points":"4", "phase":"1/2", "ocv":"+2", "dcv":"+2", "effect":"Weapon +2 DC Strike, Must Follow Block", "notes":"" }, "maneuver04":{ "name":"Half-Sword Disarm", "points":"4", "phase":"1/2", "ocv":"-1", "dcv":"+1", "effect":"Disarm, 28 STR to Disarm roll, Requires Both Hands", "notes":"" }, "maneuver05":{ "name":"Half-Sword Trip", "points":"3", "phase":"1/2", "ocv":"+2", "dcv":"+0", "effect":"Weapon Strike, Target Falls, Requires Both Hands", "notes":"" }, "maneuver06":{ }, "maneuver07":{ }, "maneuver08":{ }, "maneuver09":{ }, "maneuver10":{ }, "maneuver11":{ }, "maneuver12":{ }, "maneuver13":{ }, "maneuver14":{ }, "maneuver15":{ }, "maneuver16":{ }, "maneuver17":{ }, "maneuver18":{ "name":"Weapon Element: Blades", "points":"0", "phase":"", "ocv":"", "dcv":"", "effect":"", "notes":"" }, "maneuver19":{ }, "maneuver20":{ } }, "perks":{ "perk01":{ "type":"Fringe Benefit", "points":"2", "text":"Fringe Benefit: Sergeant", "notes":"" }, "perk02":{ "type":"Positive Reputation", "points":"3", "text":"Positive Reputation: Brillaint Doctor (A medium-sized group) 11-, +3/+3d6", "notes":"" }, "perk03":{ "type":"Fringe Benefit", "points":"1", "text":"Company SoldierFringe Benefit: Membership", "notes":"" }, "perk04":{ }, "perk05":{ }, "perk06":{ }, "perk07":{ }, "perk08":{ }, "perk09":{ }, "perk10":{ } }, "talents":{}, "complications":{ "complication01":{ "type":"Hunted", "points":"15", "text":"Hunted: King's Church Frequently (Mo Pow; NCI; Watching)", "notes":"" }, "complication02":{ "type":"Psychological Complication", "points":"10", "text":"Psychological Complication: Airhead (Common; Moderate)", "notes":"This character is not truly stupid, but rather a bit slower on the uptake than the average person. The character needs to have jokes explained, doesn't understand situations that call for subtlety and wit, and tends to take sarcasm literally. While this condition is hardly debilitating, it does frequently cause the character to be the target of jokes, and causes a certain skepticism regarding the character's intelligence." }, "complication03":{ "type":"Psychological Complication", "points":"10", "text":"Psychological Complication: Aristocratic Attitude (Common; Moderate)", "notes":"This character speaks and acts as if he were royalty. He is stand-offish but polite, proper at all times, speaks impeccably, and expects his commands to be followed. To other characters, he is obviously stuck up and feels is 'too good' for other people." }, "complication04":{ "type":"Physical Complication", "points":"15", "text":"Physical Complication: Horrible Hangovers (Infrequently; Greatly Impairing)", "notes":"Pounding headaches, nausea, and light sensitivity. After waking up from a night of drinking the character suffers a -4 penalty to all rolls for 6 hours." }, "complication05":{}, "complication06":{}, "complication07":{}, "complication08":{}, "complication09":{}, "complication10":{}, "complication11":{}, "complication12":{}, "complication13":{}, "complication14":{}, "complication15":{}, "complication16":{}, "complication17":{}, "complication18":{}, "complication19":{}, "complication20":{} }, "powers":{ "power01":{ "name":"Reknit Flesh", "base":"20", "text":"Healing BODY 2d6 (20 Active Points); Increased Endurance Cost (x5 END; -2), Extra Time (1 Turn (Post-Segment 12), -1 1/4), Gestures (Requires both hands; -1/2), Requires A Roll (Wizardry; -1/2), Incantations (-1/4), IIF Expendable (Herbal Ointment; Easy to obtain new Focus; -1/4)", "notes":"Magical energies, if one understands them well enough, can be set to stitching a wound or coaxing the body to more rapidly repair the trauma of a hematoma.", "cost":"3", "endurance":"10", "damage":"2d6", "compound":"false" }, "power02":{ "name":"Light", "base":"22", "text":"Sight Group Images, +/-4 to PER Rolls, Area Of Effect (4m Radius; +1/4) (27 Active Points); Only To Create Light (-1), Gestures (Requires both hands; -1/2), Requires A Roll (Wizardry; -1/2), IIF Expendable (Difficult to obtain new Focus; Charcoal coated in saltpeter; -1/2), Incantations (-1/4), Extra Time (Full Phase, Only to Activate, -1/4), 2 Continuing Charges lasting 1 Hour each (-0)", "notes":"If magic ever had a use it would be to enable one continue study late into the night.", "cost":"7", "endurance":"[2 cc]", "damage":"", "compound":"false" }, "power03":{ }, "power04":{ }, "power05":{ }, "power06":{ }, "power07":{ }, "power08":{ }, "power09":{ }, "power10":{ }, "power11":{ }, "power12":{ }, "power13":{ }, "power14":{ }, "power15":{ }, "power16":{ }, "power17":{ }, "power18":{ }, "power19":{ }, "power20":{ }, "power21":{ }, "power22":{ }, "power23":{ }, "power24":{ }, "power25":{ }, "power26":{ }, "power27":{ }, "power28":{ }, "power29":{ }, "power30":{ } }, "skills": { "skill01": { "name":"", "enhancer":"", "text":"PS: Soldier 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill02": { "name":"", "enhancer":"", "text":"PS: Doctor 11-", "display":"Professional Skill", "attribute":"GENERAL", "base":"0", "levels":"0", "cost":"0" }, "skill03": { "name":"Power Skill Wizardry", "enhancer":"", "text":": Wizardry 12-", "display":"Power", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill04": { "name":"", "enhancer":"", "text":"Paramedics 13-", "display":"Paramedics", "attribute":"INT", "base":"5", "levels":"1", "cost":"5" }, "skill05": { "name":"", "enhancer":"", "text":"Science Skill: Medicine 13-", "display":"Science Skill", "attribute":"GENERAL", "base":"4", "levels":"2", "cost":"4" }, "skill06": { "name":"", "enhancer":"", "text":"Science Skill: Anatomy 11-", "display":"Science Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill07": { "name":"", "enhancer":"", "text":"KS: Herbalism 11-", "display":"KS", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill08": { "name":"", "enhancer":"", "text":"High Society 12-", "display":"High Society", "attribute":"PRE", "base":"3", "levels":"0", "cost":"3" }, "skill09": { "name":"", "enhancer":"", "text":"KS: Popular Literature 11-", "display":"KS", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill10": { "name":"", "enhancer":"", "text":"CuK: Popular Entertainment 11-", "display":"Knowledge Skill", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill11": { "name":"", "enhancer":"", "text":"Conversation 12-", "display":"Conversation", "attribute":"PRE", "base":"3", "levels":"0", "cost":"3" }, "skill12": { "name":"", "enhancer":"", "text":"Tactics 12-", "display":"Tactics", "attribute":"INT", "base":"3", "levels":"0", "cost":"3" }, "skill13": { "name":"", "enhancer":"", "text":"Teamwork 12-", "display":"Teamwork", "attribute":"DEX", "base":"3", "levels":"0", "cost":"3" }, "skill14": { "name":"", "enhancer":"true", "text":"Linguist", "display":"Linguist", "attribute":"", "base":"3", "levels":"0", "cost":"3" }, "skill15": { "name":"", "enhancer":"", "text":"Language: Ancient Elven (basic conversation; literate) (2 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"1" }, "skill16": { "name":"", "enhancer":"", "text":"Language: Clans' Tongue (idiomatic; literate) (5 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"5", "levels":"0", "cost":"0" }, "skill17": { "name":"", "enhancer":"", "text":"Language: King's Tongue (fluent conversation; literate) (3 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"3", "levels":"0", "cost":"2" }, "skill18": { "name":"", "enhancer":"", "text":"Language: Southern Tongue (fluent conversation; literate) (3 Active Points)", "display":"Language", "attribute":"GENERAL", "base":"3", "levels":"0", "cost":"2" }, "skill19": { "name":"", "enhancer":"", "text":"WF: Common Melee Weapons", "display":"Weapon Familiarity", "attribute":"GENERAL", "base":"2", "levels":"0", "cost":"2" }, "skill20": { "name":"", "enhancer":"", "text":"+3 Long Sword", "display":"Combat Skill Levels", "attribute":"GENERAL", "base":"6", "levels":"3", "cost":"6" }, "skill21": { "name":"", "enhancer":"", "text":"Defense Maneuver I-II ", "display":"Defense Maneuver", "attribute":"GENERAL", "base":"5", "levels":"0", "cost":"5" }, "skill22": { }, "skill23": { }, "skill24": { }, "skill25": { }, "skill26": { }, "skill27": { }, "skill28": { }, "skill29": { }, "skill30": { }, "skill31": { }, "skill32": { }, "skill33": { }, "skill34": { }, "skill35": { }, "skill36": { }, "skill37": { }, "skill38": { }, "skill39": { }, "skill40": { }, "skill41": { }, "skill42": { }, "skill43": { }, "skill44": { }, "skill45": { }, "skill46": { }, "skill47": { }, "skill48": { }, "skill49": { }, "skill50": { } }, "playerName":"Test PC #2", "gmName":"Villain in Glasses", "characterFile":"Henkle.hdc", "versionHD":"20220801", "timeStamp":"Thu, 8 Aug 2024 23:39:05", "genre":"Fantasy HERO", "campaign":"Coryn's Company", "version":"2.1", "HeroSystem6eHeroic":"true" } } \ No newline at end of file diff --git a/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character_MA.hdc b/HeroSystem6eHeroic_HDImporter/2.1/Sample_Character_MA.hdc new file mode 100644 index 0000000000000000000000000000000000000000..e9bd889ec8ad7c08900fc6358ea7daa673b4e26f GIT binary patch literal 444342 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

HESJjdcGkvA2u6N((I<>eoxWh@MP#EPic|f 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 z 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 Date: Thu, 8 Aug 2024 23:57:02 -0600 Subject: [PATCH 07/11] JSON updated for version 2.1 --- HeroSystem6eHeroic_HDImporter/script.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HeroSystem6eHeroic_HDImporter/script.json b/HeroSystem6eHeroic_HDImporter/script.json index 8e857d8a0..0bf81dd06 100644 --- a/HeroSystem6eHeroic_HDImporter/script.json +++ b/HeroSystem6eHeroic_HDImporter/script.json @@ -1,8 +1,8 @@ { "name":"HeroSystem6eHeroic HDImporter", "script":"HeroSystem6eHeroic_HDImporter.js", - "version":"2.0", - "description":"HDImporter imports HERO Designer-created heroes, villains, monsters, and other characters into a HeroSystem6eHeroic Roll20 campaign. The characters must be exported from Hero Designer using the format HeroSystem6eHeroic.hde, which is a companion file in the HD Importer repository. To use, open an exported character text file and paste the contents into chat and hit enter. Full sheet instructions in the [Readme](https://github.com/Roll20/roll20-api-scripts/tree/master/HeroSystem6eHeroic_HDImporter). Based on BeyondImporter Version O.4.0 by Robin Kuiper, Matt DeKok, and Ammo Goettsch", + "version":"2.1", + "description":"HDImporter imports HERO Designer-created heroes, villains, monsters, and other characters into a HeroSystem6eHeroic Roll20 campaign. The characters must be exported from Hero Designer using the format HeroSystem6eHeroic.hde, which is a companion file in the HD Importer repository. To use, open an exported character text file and paste the contents into chat and hit enter. Full sheet instructions in the [README](https://github.com/Roll20/roll20-api-scripts/tree/master/HeroSystem6eHeroic_HDImporter). Based on BeyondImporter Version O.4.0 by Robin Kuiper, Matt DeKok, and Ammo Goettsch", "authors": "Villain In Glasses", "roll20userid":"633423", "useroptions":[], @@ -13,6 +13,6 @@ }, "conflicts":[], "previousVersions":[ - "1.0, 1.1" + "1.0, 1.1, 2.0" ] } From 93db9b9a453ab00d0a1ed1036568c068ddf153c2 Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Fri, 9 Aug 2024 00:08:09 -0600 Subject: [PATCH 08/11] README update for version 2.1 --- HeroSystem6eHeroic_HDImporter/README.MD | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/HeroSystem6eHeroic_HDImporter/README.MD b/HeroSystem6eHeroic_HDImporter/README.MD index ecab18f6b..41af72088 100644 --- a/HeroSystem6eHeroic_HDImporter/README.MD +++ b/HeroSystem6eHeroic_HDImporter/README.MD @@ -32,7 +32,7 @@ If HD Importer has started correctly the following notification should appear in # Import a Character: ## HERO Designer -1. Download the latest export format file [HeroSystem6eHeroic.hde](https://github.com/Roll20/roll20-api-scripts/tree/master/HeroSystem6eHeroic_HDImporter/2.0) from this repository and install it into your HERO Designer folder. +1. Download the latest export format file [HeroSystem6eHeroic.hde](https://github.com/Roll20/roll20-api-scripts/tree/master/HeroSystem6eHeroic_HDImporter/2.1) from this repository and install it into your HERO Designer folder. 2. Create a new character or load a character file into HERO Designer. 3. Select the export format HeroSystem6eHeroic.hde via the menu item "Current Character->Export->Set Export Format..." 4. Select "Current Character->Export->Export to File..." to save the character as a .txt file. @@ -55,7 +55,7 @@ The release folder contains two sample character files: ## Notes Double quotation marks are used to indicate JSON data values. Please take care to avoid quotation marks in Hero Designer text fields. Instead use single quotes. The exporter will attempt to remove double quotes, but this may not be foolproof. -Characters exported with the older version of HeroSystem6eHeroic.hde (1.0) will likely work, but version 2.0 includes more description text, notes, powers, and complications. Version 2.0 also has some fixes for bugs found in 1.0. +Characters exported with the older version of HeroSystem6eHeroic.hde (1.0 and 2.0) should work, but version 2.1 supports more content and has fixes for bugs present in the earlier versions. Hero Designer has entries for eye color and hair color. This information is not imported since the character sheet does not have corresponding fields. @@ -109,4 +109,6 @@ Version 1.0 -- Initial release on August 1, 2022. Version 1.1 -- Updated to accommodate the seventeen power slots available on the character sheet (May 4, 2023). -Version 2.0 -- Updated to support additional character sheet features as of Sheet version 2.9. Updated version of Hero Designer export format (HeroSystem6eHeroic.hde to version 2.0). Adds support for 20 power slots with ten extra powers imported to text. Complications increased from seven to ten with up to an additional ten sent to text on the sheet. All HD description fields now recognized. Generates armor from Resistant Protection. Recognizes and applies powers that adjust characteristic and movement abilities. Adds more robust input error checking and avoids more quotation character troubles. Additional HD file pack testing. Bug fixes and 60% reduction in code size (April 27, 2024). +Version 2.0 -- Updated to support additional character sheet features as of sheet version 2.9. Updated version of Hero Designer export format (HeroSystem6eHeroic.hde to version 2.0). Adds support for 20 power slots with ten extra powers imported to text. Complications increased from seven to ten with up to an additional ten sent to text on the sheet. All HD description fields now recognized. Generates armor from Resistant Protection. Recognizes and applies powers that adjust characteristic and movement abilities. Adds more robust input error checking and avoids more quotation character troubles. Additional HD file pack testing. Bug fixes and 60% reduction in code size (April 27, 2024). + +Version 2.1 -- Updated to support additional character sheet features as of sheet version 3.16. Expands support for martial arts maneuvers. Recognizes power notes and scans powers for damage advantages. Adds the everyman PS skill. Bug fixes (August 9, 2024). From fdc252d2d72898fa74b403a5dec3387076295846 Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Fri, 9 Aug 2024 00:09:48 -0600 Subject: [PATCH 09/11] README update for version 2.1 --- HeroSystem6eHeroic_HDImporter/README.MD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HeroSystem6eHeroic_HDImporter/README.MD b/HeroSystem6eHeroic_HDImporter/README.MD index 41af72088..1f399b414 100644 --- a/HeroSystem6eHeroic_HDImporter/README.MD +++ b/HeroSystem6eHeroic_HDImporter/README.MD @@ -22,7 +22,7 @@ This script was tested with the following commercially available character packs From the campaign's home page go to the Mods page via 'Settings -> Mod (API) Scripts.' -From the Mods page select 'HeroSystem6eHeroic HDImporter' from the Mod Library dropdown list. Version 2.0 is the most recent and recommended version. Alternatively, create a new script and copy and paste the contents of HeroSystem6eHeroic_HDImporter.js into the text editing box. Save the script. +From the Mods page select 'HeroSystem6eHeroic HDImporter' from the Mod Library dropdown list. Version 2.1 is the most recent and recommended version. Alternatively, create a new script and copy and paste the contents of HeroSystem6eHeroic_HDImporter.js into the text editing box. Save the script. Launch the game. @@ -111,4 +111,4 @@ Version 1.1 -- Updated to accommodate the seventeen power slots available on the Version 2.0 -- Updated to support additional character sheet features as of sheet version 2.9. Updated version of Hero Designer export format (HeroSystem6eHeroic.hde to version 2.0). Adds support for 20 power slots with ten extra powers imported to text. Complications increased from seven to ten with up to an additional ten sent to text on the sheet. All HD description fields now recognized. Generates armor from Resistant Protection. Recognizes and applies powers that adjust characteristic and movement abilities. Adds more robust input error checking and avoids more quotation character troubles. Additional HD file pack testing. Bug fixes and 60% reduction in code size (April 27, 2024). -Version 2.1 -- Updated to support additional character sheet features as of sheet version 3.16. Expands support for martial arts maneuvers. Recognizes power notes and scans powers for damage advantages. Adds the everyman PS skill. Bug fixes (August 9, 2024). +Version 2.1 -- Updated to support additional character sheet features as of sheet version 3.16. Updated version of Hero Designer export format (HeroSystem6eHeroic.hde to version 2.1). Expands support for martial arts maneuvers. Recognizes power notes and scans powers for damage advantages. Adds the everyman PS skill. Bug fixes (August 9, 2024). From 4d78cdbd64cac88ae7f7536b46f56fb04d7f294c Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Fri, 9 Aug 2024 00:13:57 -0600 Subject: [PATCH 10/11] README update for version 2.1. HDE link. --- HeroSystem6eHeroic_HDImporter/README.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HeroSystem6eHeroic_HDImporter/README.MD b/HeroSystem6eHeroic_HDImporter/README.MD index 1f399b414..2411d6ca3 100644 --- a/HeroSystem6eHeroic_HDImporter/README.MD +++ b/HeroSystem6eHeroic_HDImporter/README.MD @@ -32,7 +32,7 @@ If HD Importer has started correctly the following notification should appear in # Import a Character: ## HERO Designer -1. Download the latest export format file [HeroSystem6eHeroic.hde](https://github.com/Roll20/roll20-api-scripts/tree/master/HeroSystem6eHeroic_HDImporter/2.1) from this repository and install it into your HERO Designer folder. +1. Download the latest export format file [HeroSystem6eHeroic.hde](https://github.com/Roll20/roll20-api-scripts/blob/master/HeroSystem6eHeroic_HDImporter/2.1/HeroSystem6eHeroic.hde) from this repository and install it into your HERO Designer folder. 2. Create a new character or load a character file into HERO Designer. 3. Select the export format HeroSystem6eHeroic.hde via the menu item "Current Character->Export->Set Export Format..." 4. Select "Current Character->Export->Export to File..." to save the character as a .txt file. From a7facc8904eced94c4ae2e61ef017e626c503a47 Mon Sep 17 00:00:00 2001 From: Villain1nGlasses <85969638+Villain1nGlasses@users.noreply.github.com> Date: Fri, 9 Aug 2024 00:16:00 -0600 Subject: [PATCH 11/11] README update for version 2.1. Sample characters. --- HeroSystem6eHeroic_HDImporter/README.MD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HeroSystem6eHeroic_HDImporter/README.MD b/HeroSystem6eHeroic_HDImporter/README.MD index 2411d6ca3..681307f9f 100644 --- a/HeroSystem6eHeroic_HDImporter/README.MD +++ b/HeroSystem6eHeroic_HDImporter/README.MD @@ -111,4 +111,4 @@ Version 1.1 -- Updated to accommodate the seventeen power slots available on the Version 2.0 -- Updated to support additional character sheet features as of sheet version 2.9. Updated version of Hero Designer export format (HeroSystem6eHeroic.hde to version 2.0). Adds support for 20 power slots with ten extra powers imported to text. Complications increased from seven to ten with up to an additional ten sent to text on the sheet. All HD description fields now recognized. Generates armor from Resistant Protection. Recognizes and applies powers that adjust characteristic and movement abilities. Adds more robust input error checking and avoids more quotation character troubles. Additional HD file pack testing. Bug fixes and 60% reduction in code size (April 27, 2024). -Version 2.1 -- Updated to support additional character sheet features as of sheet version 3.16. Updated version of Hero Designer export format (HeroSystem6eHeroic.hde to version 2.1). Expands support for martial arts maneuvers. Recognizes power notes and scans powers for damage advantages. Adds the everyman PS skill. Bug fixes (August 9, 2024). +Version 2.1 -- Updated to support additional character sheet features as of sheet version 3.16. Updated version of Hero Designer export format (HeroSystem6eHeroic.hde to version 2.1). Expands support for martial arts maneuvers. Recognizes power notes and scans powers for damage advantages. Adds the everyman PS skill. Added a second sample character with martial arts skills. Bug fixes (August 9, 2024).