From 3939f83ffc747f63fce5d5592b80288ef16bdf90 Mon Sep 17 00:00:00 2001
From: reschan <h>
Date: Thu, 23 Jun 2022 16:15:51 +0700
Subject: [PATCH] partially change to new format

---
 js/atree_constants.js | 4237 ++++++++++++++++++++++++++++++++++++++---
 1 file changed, 3991 insertions(+), 246 deletions(-)

diff --git a/js/atree_constants.js b/js/atree_constants.js
index 31c22eb..41cfb16 100644
--- a/js/atree_constants.js
+++ b/js/atree_constants.js
@@ -1,185 +1,1993 @@
 const atrees = 
 {
     "Archer": [
-        {"title": "Arrow Bomb", "desc": "Throw a long-ranged arrow that explodes and deal high damage in a large area (self-damage for 30% of DPS) Mana cost: 50 Total damage: 180% (of DPS) - Neutral: 160% - Fire: 20% Range: 26 blocks AoE: 2.5 blocks (circular)", "image": "../media/atree/node.png", "connector": false, "row": 0, "col": 4},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 1, "col": 4, "rotate": 0},
-        {"title": "Bow Proficiency", "desc": "Improve Main Attack damage and range w/ bow Main attack damage: +5% Main attack range: +6 blocks AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 2, "col": 4},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 2, "col": 5, "rotate": 90},
-        {"title": "Cheaper Arrow Bomb", "desc": "Reduce Mana cost of Arrow Bomb Mana cost: -10 AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 2, "col": 6},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 3, "col": 4, "rotate": 0},
-        {"title": "Heart Shatter", "desc": "If you hit a mob directly with Arrow Bomb, shatter its heart and deal bonus damage Total damage: +100% (of DPS) - Neutral: 100% AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 4, "col": 4},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 5, "col": 4, "rotate": 0},
-        {"title": "Escape", "desc": "Throw yourself backward to avoid danger (hold shift to cancel) Mana cost: 25 AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 6, "col": 4},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 6, "col": 3, "rotate": 90},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 6, "col": 5, "rotate": 90},
-        {"title": "Double Shots Ability\nBoltslinger Archetype", "desc": "Double Main Attack arrows, but they deal -30% damage per arrow (harder to hit far enemies) Blocks: - Power Shots AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 6, "col": 2},
-        {"title": "Power Shots Ability\nSharpshooter Archetype", "desc": "Main Attack arrows have increased speed and knockback Blocks: - Double Shots AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 6, "col": 6},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 7, "col": 6, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 7, "col": 2, "rotate": 0},
-        {"title": "Arrow Storm", "desc": "Shoots 2 streams of 8 arrows, dealing damage to close mobs and pushing them back Mana cost: 40 Total damage: 40% (of DPS per arrow) - Neutral: 30% - Thunder: 10% Range: 16 blocks AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 8, "col": 2},
-        {"title": "Cheaper Escape", "desc": "Reduce mana cost of Escape Mana cost: -5 AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 8, "col": 4},
-        {"title": "Arrow Shield", "desc": "Create a shield around you that deal damage and knockback mobs when triggered (2 charges) Mana cost: 30 Total damage: 100% (of DPS) - Neutral: 90% - Air: 10% Duration: 60s AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 8, "col": 6},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 8, "col": 3, "rotate": 90},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 8, "col": 5, "rotate": 90},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 8, "col": 1, "rotate": 180},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 8, "col": 0, "rotate": 180},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 8, "col": 7, "rotate": 90},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 8, "col": 8, "rotate": 270},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 9, "col": 0, "rotate": 0},
-        {"title": "Windy Feet Ability\nBoltslinger Archetype", "desc": "When casting Escape, give speed to yourself and nearby allies Effect: +20% Walk Speed Duration: 120s AoE: 8 blocks (circular) AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 9, "col": 1},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 9, "col": 2, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 9, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 9, "col": 6, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 9, "col": 8, "rotate": 0},
-        {"title": "Air Mastery Ability\nBoltslinger Archetype", "desc": "Increases base damage from all Air attacks Air Damage: +3-4 Air Damage: +15% AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 0},
-        {"title": "Thunder Mastery Ability\nBoltslinger Archetype", "desc": "Increases base damage from all Thunder attacks Thunder Damage: +1-8 Thunder Damage: +10% AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 2},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 10, "col": 3, "rotate": 90},
+        {   
+            "display_name": "Arrow Shield",
+            "desc": "Create a shield around you that deal damage and knockback mobs when triggered. (2 Charges)",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Power Shots", "Cheaper Escape"], 
+            "dependencies": [],
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 9,
+                "col": 6
+            },
+            "properties": {
+                "duration": 60
+            },
+            "effects": [
+                { 
+                    "type": "replace_spell",
+                    "name": "Arrow Shield",
+                    "cost": 30,
+                    "display_text": "Max Damage", 
+                    "base_spell": 4, 
+                    "spell_type": "damage", 
+                    "scaling": "spell",
+                    "display": "", 
+                    "parts": [
+                        {  
+                            "name": "Shield Damage",
+                            "type": "damage",
+                            "multipliers": [90, 0, 0, 0, 0, 10]
+                        },
+                        {
+                            "name": "Total Damage",
+                            "type": "total",
+                            "hits": {
+                                "Shield Damage": 2
+                            }
+                        }
+                    ]
+                }
+            ]
+        },
+            
+        {
+            "display_name": "Escape",
+            "desc": "Throw yourself backward to avoid danger. (Hold shift while escaping to cancel)",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Heart Shatter"], 
+            "dependencies": [],
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 7,
+            "col": 4
+            },
+            "properties": {
+            "aoe": 0,
+            "range": 0
+            },
+            "effects": [
+            { 
+                "type": "replace_spell",
+                "name": "Escape",
+                "cost": 25,
+                "display_text": "Max Damage", 
+                "base_spell": 2, 
+                "spell_type": "damage", 
+                "scaling": "spell",
+                "display": "Total Damage", 
+                "parts": [
+                {  
+                    "name": "None",
+                    "type": "damage",
+                    "multipliers": [0, 0, 0, 0, 0, 0]
+                },
+                {
+                    "name": "Total Damage",
+                    "type": "total",
+                    "hits": {
+                        "None": 0
+                    }
+                }
+                ]
+            }
+            ]
+        },
+        {
+            "display_name": "Arrow Bomb",
+            "desc": "Throw a long-range arrow that explodes and deal high damage in a large area. (Self-damage for 25% of your DPS)",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": [], 
+            "dependencies": [],
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 0,
+            "col": 4
+            },
+            "properties": {
+            "aoe": 4.5,
+            "range": 26
+            },
+            "effects": [
+            { 
+                "type": "replace_spell",
+                "name": "Arrow Bomb",
+                "cost": 50,
+                "display_text": "Average Damage", 
+                "base_spell": 3, 
+                "spell_type": "damage", 
+                "scaling": "spell",
+                "display": "Total Damage", 
+                "parts": [
+                {  
+                    "name": "Arrow Bomb",
+                    "type": "damage",
+                    "multipliers": [160, 0, 0, 0, 20, 0]
+                },
+                {
+                    "name": "Total Damage",
+                    "type": "total",
+                    "hits": {
+                        "Arrow Bomb": 1
+                    }
+                }
+                ]
+            }
+            ]
+        },
+        {
+            "display_name": "Heart Shatter",
+            "desc": "If you hit a mob directly with Arrow Bomb, shatter its heart and deal bonus damage.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Bow Proficiency I"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 4,
+            "col": 4
+            },
+            "properties": {},
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Arrow Bomb", 
+                "cost": 0,
+                "multipliers": [100, 0, 0, 0, 0, 0]
+            },
+            {
 
-        {"image": "../media/atree/connect_c.png", "connector": true, "row": 10, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 10, "col": 5, "rotate": 90},
+            }
+            ]
+        },
+        {
+            "display_name": "Fire Creep",
+            "desc": "Arrow Bomb will leak a trail of fire for 6s, Damaging enemies that walk into it every 0.4s.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Phantom Ray", "Fire Mastery", "Bryophyte Roots"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 16,
+            "col": 6
+            },
+            "properties": { 
+            "aoe": 0.8,
+            "duration": 6
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Fire Creep", 
+                "cost": 0,
+                "multipliers": [30, 0, 0, 0, 20, 0]
+            },
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Total Damage", 
+                "cost": 0,
+                "hits": {
+                    "Fire Creep": 15
+                }
+            }
+            ]
+        },
+        {
+            "display_name": "Bryophyte Roots",
+            "desc": "When you hit an enemy with Arrow Storm, create an area that slows them down and deals damage every 0.4s.",
+            "archetype": "Trapper", 
+            "archetype_req": 1, 
+            "parents": ["Fire Creep", "Earth Mastery"], 
+            "dependencies": ["Arrow Storm"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 16,
+            "col": 8
+            },
+            "properties": {
+            "aoe": 2,
+            "duration": 5,
+            "slowness": 0.4
+        },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 1, 
+                "target_part": "Bryophyte Roots", 
+                "cost": 0,
+                "multipliers": [40, 20, 0, 0, 0, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "Nimble String",
+            "desc": "Arrow Storm throw out +8 arrows per stream and shoot twice as fast.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Thunder Mastery", "Arrow Rain"], 
+            "dependencies": ["Arrow Storm"], 
+            "blockers": ["Phantom Ray"],
+            "cost": 2, 
+            "display": {
+            "row": 15,
+            "col": 2
+            },
+            "properties": {
+        "shootspeed": 2
+        },
+            "effects": [
+            {
+                "type": "add_spell_prop",
+                "base_spell": 1, 
+                "target_part": "Single Arrow", 
+                "cost": 0,
+                "multipliers": [-15, 0, 0, 0, 0, 0]
+            },
+            {
+                "type": "add_spell_prop",
+                "base_spell": 1, 
+                "target_part": "Single Stream", 
+                "cost": 0,
+                "hits": {
+                    "Single Arrow": 8
+                }
+            }
+        ]
+        },
+        {
+            "display_name": "Arrow Storm",
+            "desc": "Shoot two stream of 8 arrows, dealing significant damage to close mobs and pushing them back.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Double Shots", "Cheaper Escape"], 
+            "dependencies": [],
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 9,
+            "col": 2
+            },
+            "properties": {
+            "aoe": 0,
+            "range": 16
+            },
+            "effects": [
+            { 
+                "type": "replace_spell",
+                "name": "Arrow Storm",
+                "cost": 40,
+                "display_text": "Max Damage", 
+                "base_spell": 1, 
+                "spell_type": "damage", 
+                "scaling": "spell",
+                "display": "Total Damage", 
+                "parts": [
+                {  
+                    "name": "Single Arrow",
+                    "type": "damage",
+                    "multipliers": [30, 0, 10, 0, 0, 0]
+                },
+                {  
+                    "name": "Single Stream",
+                    "type": "total",
+                    "hits": {
+                    "Single Arrow": 8
+                    }
+                },
+                {  
+                    "name": "Total Damage",
+                    "type": "total",
+                    "hits": {
+                    "Single Stream": 2
+                    }
+                }
+                ]
+            }
+            ]
+        },
+        {
+            "display_name": "Guardian Angels",
+            "desc": "Your protective arrows from Arrow Shield will become sentient bows, dealing damage up to 8 times each to nearby enemies. (Arrow Shield will no longer push nearby enemies)",
+            "archetype": "Boltslinger",
+            "archetype_req": 3, 
+            "parents": ["Triple Shots", "Frenzy"], 
+            "dependencies": ["Arrow Shield"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 19,
+            "col": 1
+            },
+            "properties": {
+            "range": 4,
+            "duration": 60,
+            "shots": 8,
+            "count": 2
+        },
+            "effects": [
+            {
+                "type": "replace_spell",
+                "name": "Guardian Angels",
+                "cost": 30,
+                "display_text": "Total Damage Average",
+                "base_spell": 4,
+                "spell_type": "damage",
+                "scaling": "spell",
+                "display": "Total Damage",
+                "parts": [
+                    {
+                        "name": "Single Arrow",
+                        "type": "damage",
+                        "multipliers": [40, 0, 0, 0, 0, 20]
+                    },
+                    {
+                        "name": "Single Bow",
+                        "type": "total",
+                        "hits": {
+                            "Single Arrow": 8
+                        }
+                    },
+                    {
+                        "name": "Total Damage",
+                        "type": "total",
+                        "hits": {
+                            "Single Bow": 2
+                        }
+                    }
+                ]
+            }
+            ]
+        },
+        {
+            "display_name": "Windy Feet",
+            "base_abil": "Escape",
+            "desc": "When casting Escape, give speed to yourself and nearby allies.",
+            "archetype": "Boltslinger",
+            "archetype_req": 0, 
+            "parents": ["Arrow Storm"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 10,
+            "col": 1
+            },
+            "properties": {
+            "aoe": 8,
+            "duration": 120
+        },
+            "type": "stat_bonus",
+            "bonuses": [
+                { 
+                "type": "stat",
+                "name": "spd",
+                "value": 20
+                }
+            ]
+        },
+        {
+            "display_name": "Basaltic Trap",
+            "desc": "When you hit the ground with Arrow Bomb, leave a Trap that damages enemies. (Max 2 Traps)",
+            "archetype": "Trapper",
+            "archetype_req": 2, 
+            "parents": ["Bryophyte Roots"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 19,
+            "col": 8
+            },
+            "properties": {
+            "aoe": 7,
+            "traps": 2
+        },
+        "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Basaltic Trap", 
+                "cost": 0,
+                "multipliers": [140, 30, 0, 0, 30, 0]
+                }
+                ]
+            },
+        {
+            "display_name": "Windstorm",
+            "desc": "Arrow Storm shoot +1 stream of arrows, effectively doubling its damage.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Guardian Angels"], 
+            "dependencies": [], 
+            "blockers": ["Phantom Ray"],
+            "cost": 2, 
+            "display": {
+                "row": 21,
+                "col": 1
+                },
+            "properties": {},
+            "effects": [
+            {
+                "type": "add_spell_prop",
+                "base_spell": 1, 
+                "target_part": "Single Arrow", 
+                "cost": 0,
+                "multipliers": [-11, 0, -7, 0, 0, 3]
+            },
+            {
+                "type": "add_spell_prop",
+                "base_spell": 1, 
+                "target_part": "Total Damage", 
+                "cost": 0,
+                "hits": {
+                    "Single Stream": 1 
+                }
+            }
+            ]
+            },
+        {
+            "display_name": "Grappling Hook",
+            "base_abil": "Escape",
+            "desc": "When casting Escape, throw a hook that pulls you when hitting a block. If you hit an enemy, pull them towards you instead. (Escape will not throw you backward anymore)",
+            "archetype": "Trapper", 
+            "archetype_req": 0, 
+            "parents": ["Focus", "More Shields", "Cheaper Arrow Storm"], 
+            "dependencies": [], 
+            "blockers": ["Escape Artist"],
+            "cost": 2, 
+            "display": {
+                "row": 21,
+                "col": 5
+                },
+            "properties": {
+                "range": 20
+            },
+            "effects": [
+            ]
+            },
+        {
+            "display_name": "Implosion",
+            "desc": "Arrow bomb will pull enemies towards you. If a trap is nearby, it will pull them towards it instead. Increase Heart Shatter's damage.",
+            "archetype": "Trapper", 
+            "archetype_req": 0, 
+            "parents": ["Grappling Hook", "More Shields"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 23,
+                "col": 6
+                },
+            "properties": {},
+            "effects": [
+                { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Arrow Bomb", 
+                "cost": 0,
+                "multipliers": [40, 0, 0, 0, 0, 0]
+                }
+            ]
+            },
+        {
+            "display_name": "Twain's Arc",
+            "desc": "When you have 2+ Focus, holding shift will summon the Twain's Arc. Charge it up to shoot a destructive long-range beam. (Damage is dealt as Main Attack Damage)",
+            "archetype": "Sharpshooter", 
+            "archetype_req": 4, 
+            "parents": ["More Focus"], 
+            "dependencies": ["Focus"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 26,
+                "col": 4
+                },
+            "properties": {
+        "range": 64,
+        "focusReq": 2
+        },
+            "effects": [
 
-        {"title": "Fire Mastery Ability\nSharpshooter Archetype", "desc": "Increases base damage from all Fire attacks Fire Damage: +3-5 Fire Damage: +15% AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 6},
-        {"title": "Earth Mastery Ability\nSharpshooter Archetype", "desc": "Increases base damage from all Earth attacks Earth Damage: +2-4 Earth Damage: +20% AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 8},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 11, "col": 0, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 11, "col": 2, "rotate": 0},
-        {"title": "Water Mastery Ability\nSharpshooter Archetype", "desc": "Increases base damage from all Water attacks Water Damage: +2-4 Water Damage: +15% AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 11, "col": 4},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 11, "col": 6, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 11, "col": 8, "rotate": 0},
-        {"title": "Arrow Rain", "desc": "When Arrow Shield loses its last charge, unleash 200 arrows raining down on enemies Total Damage: 200% (of DPS per arrow) - Neutral: 120% - Air: 80% AP: 2 Req: Arrow Shield", "image": "../media/atree/node.png", "connector": false, "row": 12, "col": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 12, "col": 1, "rotate": 90},
-        {"title": "Nimble String", "desc": "Arrow Storm throws out +8 arrows per stream and shoot twice as fast Total Damage: -15% (of DPS per arrow) - Neutral: -15% Blocks: - Phantom Ray AP: 2 Req: Arrow Storm", "image": "../media/atree/node.png", "connector": false, "row": 12, "col": 2},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 12, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 12, "col": 6, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 12, "col": 8, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 13, "col": 0, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 13, "col": 2, "rotate": 0},
-        {"title": "Phantom Ray", "desc": "Condense Arrow Storm into a single ray that damages enemies 10 times per second Mana cost: -10 Total Damage: 30% (of DPS per hit) - Neutral: 25% - Water: 5% Range: 12 blocks Blocks: - Windstorm - Nimble String - Arrow Hurricane AP: 2 Req: Arrow Storm Min Sharpshooter: 0/1", "image": "../media/atree/node.png", "connector": false, "row": 13, "col": 4},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 13, "col": 5, "rotate": 90},
-        {"title": "Fire Creep\nSharpshooter Archetype", "desc": "Arrow Bomb will leak a trail of fire for 6s, damaging enemies that walk into it every 0.4s Total Damage: 50% (of DPS) - Neutral: 30% - Fire: 20% Duration: 6s AoE: 2 blocks (linear) AP: 2", "image": "../media/atree/node.png", "connector": false, "row": 13, "col": 6},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 13, "col": 7, "rotate": 90},
-        {"title": "Bryophyte Roots\nTrapper Archetype", "desc": "When you hit an enemy with Arrow Storm, create an area that slows them down and deals damage every 0.4s Total Damage: 60% (of DPS) - Neutral: 40% - Earth: 20% Effect: 40% Slowness to Enemies Duration: 5s AoE: 2 blocks (circular) AP: 2 Req: Arrow Storm Min Trapper: 0/1", "image": "../media/atree/node.png", "connector": false, "row": 13, "col": 8},
-        {"title": "Triple Shot\nBoltslinger Archetype", "desc": "Triple Main Attack arrows, but they deal -20% damage per arrow AP: 1 Req: Double Shots", "image": "../media/atree/node.png", "connector": false, "row": 14, "col": 0},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 14, "col": 1, "rotate": 180},
-        {"title": "Frenzy\nBoltslinger Archetype", "desc": "Every time you hit an enemy, briefly gain +6% Walk Speed (Max 200%). Decay -40% of the bonus every second AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 14, "col": 2},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 14, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 14, "col": 8, "rotate": 0},
-        {"title": "Guardian Angels Ability", "desc": "Your protective arrows from Arrow Shield will become sentient bows, dealing damage up to 8 times each to nearby enemies (Arrow Shield will no longer push nearby enemies) Total Damage: 60% (of DPS per arrow) - Neutral: 40% - Air: 20% Range: 4 Blocks Duration: 60s AP: 2 Req: Arrow Shield Min Boltslinger: 0/3", "image": "../media/atree/node.png", "connector": false, "row": 15, "col": 1},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 15, "col": 3, "rotate": 180},
-        {"title": "Focus Ability\nSharpshooter Archetype", "desc": "When hitting an aggressive mob 5+ blocks away, gain +1 Focus (Max 3). Resets if you miss once Damage Bonus: +35% (per focus) AP: 2 Min Sharpshooter: 0/1", "image": "../media/atree/node.png", "connector": false, "row": 15, "col": 4},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 15, "col": 5, "rotate": 270},
-        {"title": "Basaltic Trap Ability\nTrapper Archetype", "desc": "When you hit the ground with Arrow Bomb, leave a Trap that damages enemies (Max 2 Traps) Total Damage: 200% (of DPS) - Neutral: 140% - Earth: 30% - Fire: 30% AoE: 7 Blocks (Circular) AP: 2 Min Trapper: 0/1", "image": "../media/atree/node.png", "connector": false, "row": 15, "col": 8},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 15, "col": 7, "rotate": 180},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 16, "col": 0, "rotate": 180},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 16, "col": 1},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 16, "col": 2, "rotate": 90},
-        {"title": "Cheaper Arrow Storm", "desc": "Reduces the Mana cost of Arrow Storm. Mana Cost: -5 AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 16, "col": 3},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 16, "col": 4, "rotate": 180},
-        {"title": "Grappling Hook Ability\nTrapper Archetype", "desc": "When casting Escape, you throw a hook that pulls you when hitting a block. If you hit a mob, pull them towards you instead. (Escape will not throw you backward anymore) Range: 20 blocks Blocks: - Escape Artist AP: 2", "image": "../media/atree/node.png", "connector": false, "row": 16, "col": 5},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 16, "col": 6, "rotate": 180},
-        {"title": "More Shields Ability", "desc": "Give +2 charges to Arrow Shield AP: 1 Req: Arrow Shield", "image": "../media/atree/node.png", "connector": false, "row": 16, "col": 7},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 16, "col": 8, "rotate": 270},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 17, "col": 0, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 17, "col": 1, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 17, "col": 4, "rotate": 0},
-        {"title": "Implosion Ability\nTrapper Archetype", "desc": "Arrow Bomb will pull enemies towards you. If a Trap is nearby, it will pull them towards it instead. Increase Heart Shatter's damage Total Damage: +40% (of DPS) - Neutral: +40% AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 17, "col": 6},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 17, "col": 7, "rotate": 0},
-        {"title": "Patient Hunter Ability\nTrapper Archetype", "desc": "Your Traps will deal +20% more damage for every second they are active (Max +80%) AP: 2 Req: Basaltic Trap", "image": "../media/atree/node.png", "connector": false, "row": 17, "col": 8},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 18, "col": 0, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 18, "col": 1},
-        {"title": "More Focus Ability\nSharpshooter Archetype", "desc": "Add +2 max Focus Damage Bonus: -5% (per focus) AP: 1 Req: Focus", "image": "../media/atree/node.png", "connector": false, "row": 18, "col": 4},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 18, "col": 7, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 19, "col": 0, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 19, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 19, "col": 7, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 20, "col": 0},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 20, "col": 1, "rotate": 180},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 20, "col": 2},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 20, "col": 3, "rotate": 90},
-        {"title": "Twain's Arc Ability\nSharpshooter Archetype", "desc": "If you have 2+ Focus, holding shift will summon Twain's Arc. Charge it up to shoot a destructive long-range beam. (Damage is dealt as Main Attack Damage) Total Damage: 200% (of DPS) - Neutral: 200% Range: 64 blocks AP: 2 Min Sharpshooter: 0/4 Req: Focus", "image": "../media/atree/node.png", "connector": false, "row": 20, "col": 4},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 20, "col": 5, "rotate": 180},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 20, "col": 6, "rotate": 270},
-        {"title": "Bouncing Bomb Ability", "desc": "Arrow Bomb will bounce once when hitting a block or mob AP: 2", "image": "../media/atree/node.png", "connector": false, "row": 20, "col": 7},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 20, "col": 8, "rotate": 270},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 21, "col": 0, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 21, "col": 1},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 21, "col": 4, "rotate": 0},
-        {"title": "Scorched Earth Ability\nSharpshooter Archetype", "desc": "Fire Creep becomes much stronger Total Damage: +15% (of DPS) - Neutral: +10% - Fire: +5% Duration: 2s AoE: +0.4 Blocks (linear) AP: 1 Req: Fire Creep", "image": "../media/atree/node.png", "connector": false, "row": 21, "col": 5},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 21, "col": 6, "rotate": 0},
-        {"title": "More Traps Ability\nTrapper Archetype", "desc": "Increase the maximum amount of active Traps you can have by +2 AP: 1 Req: Basaltic Trap", "image": "../media/atree/node.png", "connector": false, "row": 21, "col": 8},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 22, "col": 0, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 22, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 22, "col": 6, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 22, "col": 8, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 0},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 23, "col": 1, "rotate": 180},
-        {"title": "Homing Shots Ability", "desc": "Your Main Attack arrows will follow nearby enemies and not be affected by gravity AP: 2", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 2},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 23, "col": 3, "rotate": 90},
-        {"title": "Shocking Bomb Ability\nSharpshooter Archetype", "desc": "Arrow Bomb will not be affected by gravity, and all damage conversions become Thunder AP: 2 Min Sharpshooter: 0/5 Req: Arrow Bomb", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 4},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 23, "col": 5, "rotate": 180},
-        {"title": "Better Arrow Shield Ability", "desc": "Arrow Shield will gain additonal AoE, knockback, and damage Total Damage: +40% (of DPS) - Neutral: +40% AoE: +1 Blocks (Circular) AP: 1 Req: Arrow Shield", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 6},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 23, "col": 7, "rotate": 90},
-        {"title": "Mana Trap Ability\nTrapper Archetype", "desc": "Your Traps will give you 4 Mana per second when you stay close to them Mana Cost: +10 Range: 12 Blocks AP: 2 Min Trapper: 0/5", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 8},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 24, "col": 0, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 24, "col": 1},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 24, "col": 2, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 24, "col": 5, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 24, "col": 8, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 25, "col": 1, "rotate": 90},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 2},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 25, "col": 4, "rotate": 180},
-        {"title": "Initiator Ability\nSharpshooter Archetype", "desc": "If you do not damage an enemy for 5s for more, your next successful hit will deal +50% damage and add +1 Focus AP: 2 Req: Focus Min Sharpshooter: 0/5", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 5},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 25, "col": 6, "rotate": 90},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 25, "col": 7, "rotate": 180},
-        {"title": "Cheaper Arrow Storm Ability", "desc": "Reduce the Mana cost of Arrow Storm Mana Cost: -5 AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 8},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 26, "col": 0, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 26, "col": 2, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 26, "col": 4, "rotate": 0},
-        {"title": "Call of the Hound Ability\nTrapper Archetype", "desc": "Arrow Shield summons a Hound that will attack and drag aggressive mobs towards your traps Total Damage: 40% (of DPS) - Neutral: 40% AP: 2 Req: Arrow Shield", "image": "../media/atree/node.png", "connector": false, "row": 26, "col": 7},
-        {"title": "Arrow Hurricane Ability\nBoltslinger Archetype", "desc": "Arrow Storm will shoot +2 stream of arrows Blocks: - Phantom Ray AP: 2 Min Boltslinger: 0/8", "image": "../media/atree/node.png", "connector": false, "row": 27, "col": 0},
-        {"image": "../media/atree/connect_t.png", "connector": true, "row": 27, "col": 1, "rotate": 180},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 27, "col": 2},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 27, "col": 3, "rotate": 90},
-        {"title": "Cheaper Arrow Shield Ability", "desc": "Reduce the Mana cost of Arrow Shield Mana Cost: -5 AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 27, "col": 4},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 27, "col": 5, "rotate": 270},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 27, "col": 7, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 28, "col": 1},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 28, "col": 4, "rotate": 0},
-        {"title": "Decimator Ability\nSharpshooter Archetype", "desc": "Phantom Ray will increase its damage by 10% everytime you do not miss with it (Max 50%) AP: 2 Req: Phantom Ray", "image": "../media/atree/node.png", "connector": false, "row": 28, "col": 5},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 28, "col": 6, "rotate": 90},
-        {"title": "Cheaper Escape Ability", "desc": "Reduce the Mana cost of Escape Mana Cost: -5 AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 28, "col": 7},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 28, "col": 8, "rotate": 270},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 29, "col": 1, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 29, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 29, "col": 7, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 29, "col": 8},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 30, "col": 0, "rotate": 180},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 30, "col": 1},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 30, "col": 2, "rotate": 270},
-        {"title": "Crepuscular Ray Ability\nSharpshooter Archetype", "desc": "If you have 5 Focus, casting Arrow Storm will make you levitate and shoot 20 homing arrows per second until you run out of Focus While in that state, you will lose 1 Focus per second Total Damage: 15% (of DPS per arrrow) - Neutral: 10% - Water: 5% AP: 2 Req: Arrow Storm Min Sharpshooter: 0/8", "image": "../media/atree/node.png", "connector": false, "row": 30, "col": 4},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 30, "col": 6, "rotate": 180},
-        {"title": "Grape Bomb Ability", "desc": "Arrow Bomb will throw 3 additional smaller bombs when exploding Total Damage: 40% (of DPS) - Neutral: 30% - Fire: 10% AoE: 2 Blocks (Circular) AP: 2", "image": "../media/atree/node.png", "connector": false, "row": 30, "col": 7},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 30, "col": 8, "rotate": 270},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 31, "col": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 31, "col": 2, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 31, "col": 4, "rotate": 0},
-        {"title": "Tangled Traps Ability\nTrapper Archetype", "desc": "Your Traps will be connected by a rope that deals damage to enemies every 0.2s Total Damage: 40% (of DPS) - Neutral: 20% - Air: 20% AP: 2", "image": "../media/atree/node.png", "connector": false, "row": 31, "col": 6},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 31, "col": 7, "rotate": 0},
-        {"title": "Stringer Patient Hunter Ability\nTrapper Archetype", "desc": "Add +80% Max Damage to Patient Hunter AP: 1", "image": "../media/atree/node.png", "connector": false, "row": 31, "col": 8},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 32, "col": 2, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 32, "col": 4, "rotate": 0},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 32, "col": 7, "rotate": 0},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 33, "col": 1, "rotate": 180},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 33, "col": 2},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 33, "col": 3, "rotate": 90},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 33, "col": 4},
-        {"image": "../media/atree/connect_angle.png", "connector": true, "row": 33, "col": 5, "rotate": 270},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 33, "col": 7, "rotate": 0},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 34, "col": 1},
-        {"title": "text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 34, "col": 5},
-        {"image": "../media/atree/connect_line.png", "connector": true, "row": 34, "col": 6, "rotate": 90},
-        {"title": "Minefield Ability\nTrapper Archetype", "desc": "Allow you to place +6 Traps, but with reduced damage and range Total Damage: -80% (of DPS) - Neutral: -80% AoE: -2 Blocks (Circular) AP: 2 Req: Basaltic Trap Min Trapper: 0/10", "image": "../media/atree/node.png", "connector": false, "row": 34, "col": 7},
+            {
+                "type": "replace_spell",
+                "name": "Twain's Arc",
+                "cost": 0,
+                "display_text": "Twain's Arc",
+                "base_spell": 5,
+                "spell_type": "damage",
+                "scaling": "melee",
+                "display": "Twain's Arc Damage",
+                "parts": [
+                    {
+                        "name": "Twain's Arc Damage",
+                        "type": "damage",
+                        "multipliers": [200, 0, 0, 0, 0, 0]
+                    }
+                ]
+            }
+            ]  
+            },
+        {
+            "display_name": "Fierce Stomp",
+            "desc": "When using Escape, hold shift to quickly drop down and deal damage.",
+            "archetype": "Boltslinger", 
+            "archetype_req": 0, 
+            "parents": ["Refined Gunpowder", "Traveler"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 27,
+            "col": 1
+            },
+            "properties": {
+            "aoe": 4
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 2, 
+                "target_part": "Fierce Stomp", 
+                "cost": 0,
+                "multipliers": [100, 0, 0, 0, 0, 0]
+            },
+            {
+                "type": "add_spell_prop",
+                "base_spell": 2,
+                "target_part": "Total Damage",
+                "cost": 0,
+                "hits": {
+                    "Fierce Stomp": 1
+                }
+            }
+            ]
+        },
+        {
+            "display_name": "Scorched Earth",
+            "desc": "Fire Creep become much stronger.",
+            "archetype": "Sharpshooter", 
+            "archetype_req": 0, 
+            "parents": ["Twain's Arc"], 
+            "dependencies": ["Fire Creep"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 27,
+            "col": 5
+            },
+            "properties": {
+            "duration": 2,
+            "aoe": 0.4
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Fire Creep",
+                "cost": 0,
+                "multipliers": [10, 0, 0, 0, 5, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "Leap",
+            "desc": "When you double tap jump, leap foward. (2s Cooldown)",
+            "archetype": "Boltslinger", 
+            "archetype_req": 5, 
+            "parents": ["Refined Gunpowder", "Homing Shots"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 28,
+            "col": 0
+            },
+            "properties": {
+        "cooldown": 2
+        },
+            "effects": [
+
+            ]
+            },
+        {
+            "display_name": "Shocking Bomb",
+            "desc": "Arrow Bomb will not be affected by gravity, and all damage conversions become Thunder.",
+            "archetype": "Sharpshooter", 
+            "archetype_req": 5, 
+            "parents": ["Twain's Arc", "Better Arrow Shield", "Homing Shots"], 
+            "dependencies": ["Arrow Bomb"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 29,
+            "col": 4
+            },
+            "properties": {
+            "gravity": 0
+            },
+            "effects": [
+            {
+                "type": "convert_spell_conv",
+                "target_part": "all",
+                "conversion": "thunder"
+            }
+            ]
+        },
+        {
+            "display_name": "Mana Trap",
+            "desc": "Your Traps will give you 4 Mana per second when you stay close to them.",
+            "archetype": "Trapper", 
+            "archetype_req": 5, 
+            "parents": ["More Traps", "Better Arrow Shield"], 
+            "dependencies": ["Fire Creep"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 29,
+            "col": 8
+            },
+            "properties": {
+            "range": 12,
+            "manaRegen": 4
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Basaltic Trap",
+                "cost": 10,
+                "multipliers": [0, 0, 0, 0, 0, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "Escape Artist",
+            "desc": "When casting Escape, release 100 arrows towards the ground.",
+            "archetype": "Boltslinger", 
+            "archetype_req": 0, 
+            "parents": ["Better Guardian Angels", "Leap"], 
+            "dependencies": [], 
+            "blockers": ["Grappling Hook"],
+            "cost": 2, 
+            "display": {
+            "row": 32,
+            "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 2, 
+                "target_part": "Escape Artist", 
+                "cost": 0,
+                "multipliers": [30, 0, 10, 0, 0, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "Initiator",
+            "desc": "If you do not damage an enemy for 5s or more, your next sucessful hit will deal +50% damage and add +1 Focus.",
+            "archetype": "Sharpshooter",
+            "archetype_req": 5, 
+            "parents": ["Shocking Bomb", "Better Arrow Shield"], 
+            "dependencies": ["Focus"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 32,
+            "col": 5
+            },
+            "properties": {
+            "focus": 1,
+            "timer": 5
+        },
+        "type": "stat_bonus",
+            "bonuses": [
+                { 
+                "type": "stat",
+                "name": "damPct",
+                "value": 50
+                }
+            ]
+        },
+        {
+            "display_name": "Call of the Hound",
+            "desc": "Arrow Shield summon a Hound that will attack and drag aggressive enemies towards your traps.",
+            "archetype": "Trapper",
+            "archetype_req": 0, 
+            "parents": ["Initiator", "Cheaper Arrow Storm"], 
+            "dependencies": ["Arrow Shield"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 33,
+            "col": 7
+            },
+            "properties": {
+        },
+        "effects": [
+            { 
+            "type": "add_spell_prop",
+            "base_spell": 4, 
+            "target_part": "Call of the Hound", 
+            "cost": 0,
+            "multipliers": [40, 0, 0, 0, 0, 0]
+            }
+        ]
+        },
+        {
+            "display_name": "Arrow Hurricane",
+            "desc": "Arrow Storm will shoot +2 stream of arrows.",
+            "archetype": "Boltslinger", 
+            "archetype_req": 8, 
+            "parents": ["Precise Shot", "Escape Artist"], 
+            "dependencies": [], 
+            "blockers": ["Phantom Ray"],
+            "cost": 2, 
+            "display": {
+            "row": 34,
+            "col": 0
+            },
+            "properties": {},
+        "effects": [
+            {
+                "type": "add_spell_prop",
+                "base_spell": 1, 
+                "target_part": "Total Damage", 
+                "cost": 0,
+                "hits": {
+                "Single Stream": 2 
+                }
+            }
+        ]
+        },
+        {
+            "display_name": "Geyser Stomp",
+            "desc": "Fierce Stomp will create geysers, dealing more damage and vertical knockback.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Shrapnel Bomb"], 
+            "dependencies": ["Fierce Stomp"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 38,
+            "col": 1
+            },
+            "properties": {
+            "aoe": 1
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 2, 
+                "target_part": "Fierce Stomp",
+                "cost": 0,
+                "multipliers": [0, 0, 0, 50, 0, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "Crepuscular Ray",
+            "desc": "If you have 5 Focus, casting Arrow Storm will make you levitate and shoot 20 homing arrows per second until you run out of Focus. While in that state, you will lose 1 Focus per second.",
+            "archetype": "Sharpshooter", 
+            "archetype_req": 10, 
+            "parents": ["Cheaper Arrow Shield"], 
+            "dependencies": ["Arrow Storm"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 38,
+            "col": 4
+            },
+            "properties": {
+        "focusReq": 5,
+        "focusRegen": -1
+        },
+            "effects": [
+            { 
+            "type": "replace_spell",
+            "name": "Crepuscular Ray",
+            "base_spell": 5,
+            "spell_type": "damage",
+            "scaling": "spell",
+            "display": "One Focus",
+            "cost": 0,
+
+            "parts": [
+                {  
+                    "name": "Single Arrow",
+                    "type": "damage",
+                    "multipliers": [10, 0, 0, 5, 0, 0]
+                },
+                {
+                    "name": "One Focus",
+                    "type": "total",
+                    "hits": {
+                        "Single Arrow": 20
+                    }
+                },
+                {  
+                    "name": "Total Damage",
+                    "type": "total",
+                    "hits": {
+                    "One Focus": 7 
+                    }
+                }
+                ]
+            }
+            ]
+        },
+        {
+            "display_name": "Grape Bomb",
+            "desc": "Arrow bomb will throw 3 additional smaller bombs when exploding.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Grappling Hook", "More Shields"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 38,
+            "col": 7
+            },
+            "properties": {
+            "miniBombs": 3,
+            "aoe": 2
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Grape Bomb", 
+                "cost": 0,
+                "multipliers": [30, 0, 0, 0, 10, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "Tangled Traps",
+            "desc": "Your Traps will be connected by a rope that deals damage to enemies every 0.2s.",
+            "archetype": "Trapper", 
+            "archetype_req": 0, 
+            "parents": ["Grape Bomb"], 
+            "dependencies": ["Basaltic Trap"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 39,
+            "col": 6
+            },
+            "properties": {
+            "attackSpeed": 0.2
+            },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Tangled Traps", 
+                "cost": 0,
+                "multipliers": [20, 0, 0, 0, 0, 20]
+            }
+            ]
+        },
+        {
+            "display_name": "Snow Storm",
+            "desc": "Enemies near you will be slowed down.",
+            "archetype": "",
+            "archetype_req": 0, 
+            "parents": ["Geyser Stomp", "More Focus"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 40,
+            "col": 4
+            },
+            "properties": {
+            "range": 2.5,
+            "slowness": 0.3
+            }
+        },
+        {
+            "display_name": "All-Seeing Panoptes",
+            "desc": "Your bows from Guardian Angels become all-seeing, increasing their range, damage and letting them shoot up to +5 times each.",
+            "archetype": "Boltslinger",
+            "archetype_req": 11, 
+            "parents": ["Snow Storm"], 
+            "dependencies": ["Guardian Angels"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+            "row": 41,
+            "col": 1
+            },
+            "properties": {
+            "range": 10,
+            "shots": 5
+        },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 4, 
+                "target_part": "Single Arrow", 
+                "cost": 0,
+                "multipliers": [0, 0, 0, 0, 20, 0]
+            },
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 4, 
+                "target_part": "Single Bow", 
+                "cost": 0,
+                "hits": {
+                    "Single Arrow": 5
+                }
+            }
+            ]
+        },
+        {
+            "display_name": "Minefield",
+            "desc": "Allow you to place +6 Traps, but with reduced damage and range.",
+            "archetype": "Trapper",
+            "archetype_req": 10, 
+            "parents": ["Grape Bomb", "Cheaper Arrow Bomb"], 
+            "dependencies": ["Basaltic Trap"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 41,
+                "col": 7
+                },
+            "properties": {
+                "aoe": -2,
+                "traps": 6
+            },
+            "effects": [
+                { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Basaltic Trap", 
+                "cost": 0,
+                "multipliers": [-80, 0, 0, 0, 0, 0]
+                }
+                ]
+                },
+        {
+            "display_name": "Bow Proficiency I",
+            "desc": "Improve your Main Attack's damage and range when using a bow.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Arrow Bomb"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 2,
+                "col": 4
+                },
+            "properties": {
+                "mainAtk_range": 6
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "mdPct",
+                            "value": 5
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "Cheaper Arrow Bomb",
+            "desc": "Reduce the Mana cost of Arrow Bomb.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Bow Proficiency I"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 2,
+                "col": 6
+                },
+            "properties": {
+                
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "cost": -10
+                }
+            ]  
+        },
+        {
+            "display_name": "Cheaper Arrow Storm",
+            "desc": "Reduce the Mana cost of Arrow Storm.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Grappling Hook", "Windstorm", "Focus"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 21,
+                "col": 3
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "cost": -5
+                }
+            ]  
+        },
+        {
+            "display_name": "Cheaper Escape",
+            "desc": "Reduce the Mana cost of Escape.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Arrow Storm", "Arrow Shield"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 9,
+                "col": 4
+                },
+            "properties": {
+                
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "cost": -5
+                }
+            ]  
+        },
+        {
+            "display_name": "Earth Mastery",
+            "desc": "Increases your base damage from all Earth attacks",
+            "archetype": "Trapper", 
+            "archetype_req": 0, 
+            "parents": ["Arrow Shield"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 13,
+                "col": 8
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "eDamPct",
+                            "value": 20
+                        },
+                        {
+                            "type": "stat",
+                            "name": "eDam",
+                            "value": [2, 4]
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "Thunder Mastery",
+            "desc": "Increases your base damage from all Thunder attacks",
+            "archetype": "Boltslinger", 
+            "archetype_req": 0, 
+            "parents": ["Arrow Storm", "Fire Mastery"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 13,
+                "col": 2
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "tDamPct",
+                            "value": 10
+                        },
+                        {
+                            "type": "stat",
+                            "name": "tDam",
+                            "value": [1, 8]
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "Water Mastery",
+            "desc": "Increases your base damage from all Water attacks",
+            "archetype": "Sharpshooter", 
+            "archetype_req": 0, 
+            "parents": ["Cheaper Escape", "Thunder Mastery", "Fire Mastery"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 14,
+                "col": 4
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "wDamPct",
+                            "value": 15
+                        },
+                        {
+                            "type": "stat",
+                            "name": "wDam",
+                            "value": [2, 4]
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "Air Mastery",
+            "desc": "Increases base damage from all Air attacks",
+            "archetype": "Battle Monk", 
+            "archetype_req": 0, 
+            "parents": ["Arrow Storm"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 13,
+                "col": 0
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "aDamPct",
+                            "value": 15
+                        },
+                        {
+                            "type": "stat",
+                            "name": "aDam",
+                            "value": [3, 4]
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "Fire Mastery",
+            "desc": "Increases base damage from all Earth attacks",
+            "archetype": "Sharpshooter", 
+            "archetype_req": 0, 
+            "parents": ["Thunder Mastery", "Arrow Shield"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 13,
+                "col": 6
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "fDamPct",
+                            "value": 15
+                        },
+                        {
+                            "type": "stat",
+                            "name": "fDam",
+                            "value": [3, 5]
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "More Shields",
+            "desc": "Give +2 charges to Arrow Shield.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Grappling Hook", "Basaltic Trap"], 
+            "dependencies": ["Arrow Shield"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 21,
+                "col": 7
+                },
+            "properties": {
+                "shieldCharges": 2
+            }
+        },
+        {
+            "display_name": "Stormy Feet",
+            "desc": "Windy Feet will last longer and add more speed.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Windstorm"], 
+            "dependencies": ["Windy Feet"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 23,
+            "col": 1
+            },
+            "properties": {
+            "duration": 60
+            },
+            "effects": [
+            { 
+            "type": "stat_bonus",
+            "bonuses": [
+                { 
+                "type": "stat",
+                "name": "spdPct",
+                "value": 20
+                }
+                ]
+            }
+            ]
+        },
+        {
+            "display_name": "Refined Gunpowder",
+            "desc": "Increase the damage of Arrow Bomb.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Windstorm"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 26,
+            "col": 0
+            },
+            "properties": {},
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Arrow Bomb", 
+                "cost": 0,
+                "multipliers": [50, 0, 0, 0, 0, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "More Traps",
+            "desc": "Increase the maximum amount of active Traps you can have by +2.",
+            "archetype": "Trapper",
+            "archetype_req": 10, 
+            "parents": ["Bouncing Bomb"], 
+            "dependencies": ["Basaltic Trap"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 27,
+                "col": 8
+                },
+            "properties": {
+                "traps": 2
+            }
+        },
+        {
+            "display_name": "Better Arrow Shield",
+            "desc": "Arrow Shield will gain additional area of effect, knockback and damage.",
+            "archetype": "Sharpshooter", 
+            "archetype_req": 0, 
+            "parents": ["Mana Trap", "Shocking Bomb", "Twain's Arc"], 
+            "dependencies": ["Arrow Shield"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 29,
+            "col": 6
+            },
+            "properties": {
+            "aoe": 1
+        },
+            "effects": [
+            { 
+                "type": "add_spell_prop",
+                "base_spell": 3, 
+                "target_part": "Arrow Shield",
+                "multipliers": [40, 0, 0, 0, 0, 0]
+            }
+            ]
+        },
+        {
+            "display_name": "Better Leap",
+            "desc": "Reduce leap's cooldown by 1s.",
+            "archetype": "Boltslinger",
+            "archetype_req": 0, 
+            "parents": ["Leap", "Homing Shots"], 
+            "dependencies": ["Leap"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 30,
+                "col": 1
+                },
+            "properties": {
+                "cooldown": -1
+            }
+        },
+        {
+            "display_name": "Better Guardian Angels",
+            "desc": "Your Guardian Angels can shoot +4 arrows before disappearing.",
+            "archetype": "Boltslinger",
+            "archetype_req": 0, 
+            "parents": ["Escape Artist", "Homing Shots"], 
+            "dependencies": ["Guardian Angels"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+            "row": 32,
+            "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Single Bow",
+                    "cost": 0,
+                    "hits": {
+                        "Single Arrow": 4
+                    }
+                }
+            ]
+        },
+        {
+            "display_name": "Cheaper Arrow Storm (2)",
+            "desc": "Reduce the Mana cost of Arrow Storm.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Initiator", "Mana Trap"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 32,
+                "col": 8
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "cost": -5
+                }
+            ]  
+        },
+        {
+            "display_name": "Precise Shot",
+            "desc": "+30% Critical Hit Damage",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Arrow Bomb"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 34,
+                "col": 2
+                },
+            "properties": {
+                "mainAtk_range": 6
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "mdCritPct",
+                            "value": 30
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "Cheaper Arrow Shield (2)",
+            "desc": "Reduce the Mana cost of Arrow Shield.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Precise Shot", "Initiator"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 34,
+                "col": 4
+                },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "cost": -5
+                }
+            ]  
+        },
+        {
+            "display_name": "Rocket Jump",
+            "desc": "Arrow Bomb's self-damage will knockback you farther away.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Cheaper Arrow Storm", "Initiator"], 
+            "dependencies": ["Arrow Bomb"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 34,
+                "col": 6
+                },
+            "properties": {
+            }
+        },
+        {
+            "display_name": "Cheaper Escape (2)",
+            "desc": "Reduce the Mana cost of Escape.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Arrow Storm", "Arrow Shield"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 35,
+                "col": 7
+                },
+            "properties": {
+                
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "cost": -5
+                }
+            ]  
+        },
+        {
+            "display_name": "Stronger Hook",
+            "desc": "Increase your Grappling Hook's range, speed and strength.",
+            "archetype": "Trapper", 
+            "archetype_req": 5, 
+            "parents": ["Cheaper Escape"], 
+            "dependencies": ["Grappling Hook"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 36,
+                "col": 8
+                },
+            "properties": {
+            "range": 8
+            }
+        },
+        {
+            "display_name": "Cheaper Arrow Bomb (2)",
+            "desc": "Reduce the Mana cost of Arrow Bomb.",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["More Focus (2)", "Minefield"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 41,
+                "col": 5
+                },
+            "properties": {
+                
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "cost": -5
+                }
+            ]  
+        },
+        {
+            "display_name": "Bouncing Bomb",
+            "desc": "Arrow Bomb will bounce once when hitting a block or enemy",
+            "archetype": "",
+            "archetype_req": 0,
+            "parents": ["More Shields"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 20,
+                "col": 7
+            },
+            "properties": {
+
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Total Damage",
+                    "cost": 0,
+                    "hits": {
+                        "Arrow Bomb": 2
+                    }
+                }
+            ]
+        },
+        {
+            "display_name": "Homing Shots",
+            "desc": "Your Main Attack arrows will follow nearby enemies and not be affected by gravity",
+            "archetype": "",
+            "archetype_req": 0,
+            "parents": ["Leap", "Shocking Bomb"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 23,
+                "col": 2
+            },
+            "properties": {
+
+            },
+            "effects": [
+
+            ]
+        },
+        {
+            "display_name": "Shrapnel Bomb",
+            "desc": "Arrow Bomb's explosion will fling 15 shrapnel, dealing damage in a large area",
+            "archetype": "Boltslinger",
+            "archetype_req": 8,
+            "parents": ["Arrow Hurricane", "Precise Shot"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 27,
+                "col": 1 
+            },
+            "properties": {
+
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Shrapnel Bomb",
+                    "cost": 0,
+                    "multipliers": [40, 0, 0, 0, 20, 0]
+                }
+            ]
+        },
+        {
+            "display_name": "Elusive",
+            "desc": "If you do not get hit for 8+ seconds, become immune to self-damage and remove Arrow Storm's recoil. (Dodging counts as not getting hit)",
+            "archetype": "Boltslinger",
+            "archetype_req": 0,
+            "parents": ["Geyser Stomp"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 30,
+                "col": 0
+            },
+            "properties": {
+
+            },
+            "effects": [
+
+            ]
+        },
+        {
+            "display_name": "Double Shots",
+            "desc": "Double Main Attack arrows, but they deal -30% damage per arrow (harder to hit far enemies)",
+            "archetype": "Boltslinger",
+            "archetype_req": 0,
+            "parents": ["Escape"],
+            "dependencies": [],
+            "blockers": ["Power Shots"],
+            "cost": 1,
+            "display": {
+                "row": 7,
+                "col": 2
+            },
+            "properties": {
+                "arrow": 2
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 0,
+                    "target_part": "Melee Damage",
+                    "cost": 0,
+                    "multipliers": 0.7
+                }
+            ]
+        },
+        {
+            "display_name": "Triple Shots",
+            "desc": "Triple Main Attack arrows, but they deal -20% damage per arrow",
+            "archetype": "Boltslinger",
+            "archetype_req": 0,
+            "parents": ["Arrow Rain", "Frenzy"],
+            "dependencies": ["Double Shots"],
+            "blockers": [],
+            "cost": 1,
+            "display": {
+                "row": 14,
+                "col": 0
+            },
+            "properties": {
+                "arrow": 2
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 0,
+                    "target_part": "Melee Damage",
+                    "cost": 0,
+                    "multipliers": 0.7
+                }
+            ]
+        },
+        {
+            "display_name": "Power Shots",
+            "desc": "Main Attack arrows have increased speed and knockback",
+            "archetype": "Sharpshooter",
+            "archetype_req": 0,
+            "parents": ["Escape"],
+            "dependencies": [],
+            "blockers": ["Double Shots"],
+            "cost": 1,
+            "display": {
+                "row": 7,
+                "col": 6
+            },
+            "properties": {
+
+            },
+            "effects": [
+
+            ]
+        },
+        {
+            "display_name": "Focus",
+            "desc": "When hitting an aggressive mob 5+ blocks away, gain +1 Focus (Max 3). Resets if you miss once",
+            "archetype": "Sharpshooter",
+            "archetype_req": 2,
+            "parents": ["Phantom Ray"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 15,
+                "col": 4
+            },
+            "properties": {
+
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Focus",
+                    "output": {
+                        "type": "stat",
+                        "abil_name": "Focus",
+                        "name": "dmgPct"
+                    },
+                    "scaling": [35],
+                    "max": 3
+                }
+            ]
+        },
+        {
+            "display_name": "More Focus",
+            "desc": "Add +2 max Focus",
+            "archetype": "Sharpshooter",
+            "archetype_req": 0,
+            "parents": ["Cheaper Arrow Storm", "Grappling Hook"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 1,
+            "display": {
+                "row": 18,
+                "col": 4
+            },
+            "properties": {
+
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Focus",
+                    "output": {
+                        "type": "stat",
+                        "abil_name": "Focus",
+                        "name": "dmgPct"
+                    },
+                    "scaling": [35],
+                    "max": 5
+                }
+            ]
+        },
+        {
+            "display_name": "More Focus (2)",
+            "desc": "Add +2 max Focus",
+            "archetype": "Sharpshooter",
+            "archetype_req": 0,
+            "parents": ["Crepuscular Ray"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 1,
+            "display": {
+                "row": 32,
+                "col": 4
+            },
+            "properties": {
+
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Focus",
+                    "output": {
+                        "type": "stat",
+                        "abil_name": "Focus",
+                        "name": "dmgPct"
+                    },
+                    "scaling": [35],
+                    "max": 7
+                }
+            ]
+        },
+        {
+            "display_name": "Traveler",
+            "desc": "For every 1% Walk Speed you have from items, gain +1 Raw Spell Damage (Max 100)",
+            "archetype": "",
+            "archetype_req": 0,
+            "parents": ["Refined Gunpowder", "Twain's Arc"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 1,
+            "display": {
+                "row": 20,
+                "col": 2
+            },
+            "properties": {
+
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": false,
+                    "inputs": [
+                        {
+                            "type": "stat",
+                            "name": "spd"
+                        }
+                    ],
+                    "output": {
+                        "type": "stat",
+                        "name": "sdRaw"
+                    },
+                    "scaling": [1],
+                    "max": 100
+                }
+            ]
+        },
+        {
+            "display_name": "Patient Hunter",
+            "desc": "Your Traps will deal +20% more damage for every second they are active (Max +80%)",
+            "archetype": "Trapper",
+            "archetype_req": 0,
+            "parents": ["More Shields"],
+            "dependencies": ["Basaltic Trap"],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 17,
+                "col": 8
+            },
+            "properties": {
+                "max": 80
+            },
+            "effects": [
+
+            ]
+        },
+        {
+            "display_name": "Stronger Patient Hunter",
+            "desc": "Add +80% Max Damage to Patient Hunter",
+            "archetype": "Trapper",
+            "archetype_req": 0,
+            "parents": ["Grape Bomb"],
+            "dependencies": ["Patient Hunter"],
+            "blockers": [],
+            "cost": 1,
+            "display": {
+                "row": 31,
+                "col": 8
+            },
+            "properties": {
+                "max": 80
+            },
+            "effects": [
+
+            ]
+        },
+        {
+            "display_name": "Frenzy",
+            "desc": "Every time you hit an enemy, briefly gain +6% Walk Speed (Max 200%). Decay -40% of the bonus every second",
+            "archetype": "Boltslinger",
+            "archetype_req": 0,
+            "parents": ["Triple Shots", "Nimble String"],
+            "dependencies": [],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 14,
+                "col": 2
+            },
+            "properties": {
+
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Hits dealt",
+                    "output": {
+                        "type": "stat",
+                        "name": "spd"
+                    },
+                    "scaling": [6],
+                    "max": 200
+                }
+            ]
+        },
+        {
+            "display_name": "Phantom Ray",
+            "desc": "Condense Arrow Storm into a single ray that damages enemies 10 times per second",
+            "archetype": "Sharpshooter",
+            "archetype_req": 0,
+            "parents": ["Water Mastery", "Fire Creep"],
+            "dependencies": ["Arrow Storm"],
+            "blockers": ["Windstorm", "Nimble String", "Arrow Hurricane"],
+            "cost": 2,
+            "display": {
+                "row": 16,
+                "col": 4
+            },
+            "properties": {
+            },
+            "effects": [
+                { 
+                    "type": "replace_spell",
+                    "name": "Phantom Ray",
+                    "cost": 40,
+                    "display_text": "Max Damage", 
+                    "base_spell": 1, 
+                    "spell_type": "damage", 
+                    "scaling": "spell",
+                    "display": "Total Damage", 
+                    "parts": [
+                    {  
+                        "name": "Single Arrow",
+                        "type": "damage",
+                        "multipliers": [25, 0, 5, 0, 0, 0]
+                    },
+                    {  
+                        "name": "Total Damage",
+                        "type": "total",
+                        "hits": {
+                        "Single Arrow": 16
+                        }
+                    }
+                    ]
+                }
+            ]
+        },
+        {
+            "display_name": "Arrow Rain",
+            "desc": "When Arrow Shield loses its last charge, unleash 200 arrows raining down on enemies",
+            "archetype": "Trapper",
+            "archetype_req": 0,
+            "parents": ["Nimble String", "Air Mastery"],
+            "dependencies": ["Arrow Shield"],
+            "blockers": [],
+            "cost": 2,
+            "display": {
+                "row": 15,
+                "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Arrow Rain",
+                    "cost": 0,
+                    "multipliers": [120, 0, 0, 0, 0, 80]
+                }
+            ]
+        }
     ],
+
     "Assassin": [
         {"title": "Spin Attack", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 0, "col": 4},
         {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 1, "col": 4},
@@ -350,76 +2158,2013 @@ const atrees =
         {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 33, "col": 8},
     ],
     "Warrior": [
-        {"row": 0, "col": 4, "name": "Bash", "desc": "Violently bash the ground, dealing high damage in a large area"},
-        {"row": 2, "col": 2, "name": "Cheaper Bash", "desc": "Reduce the Mana cost of Bash"},
-        {"row": 2, "col": 4, "name": "Spear Proficiency 1", "desc": "Improve your Main Attack's damage and range w/ spear"},
-        {"row": 4, "col": 4, "name": "Double Bash", "desc": "Bash will hit a second time at a farther range"},
-        {"row": 6, "col": 2, "name": "Heavy Impact", "desc": "After using Charge, violently crash down into the ground and deal damage. (Does not work if Flying Kick is unlocked)"},
-        {"row": 6, "col": 4, "name": "Charge", "desc": "Charge forward at high speed (hold shift to cancel)"},
-        {"row": 6, "col": 6, "name": "Tougher Skin", "desc": "Harden your skin and become permanently +5% more resistant. For every 1% or 1 Raw Heath Regen you have from items, gain +10 Health (Max 100)"},
-        {"row": 7, "col": 0, "name": "Vehement", "desc": "For every 1% or 1 Raw Main Attack Damage you have from items, gain +2% Walk Speed (Max 20%). Damage Bonus: +5 (Raw)"},
-        {"row": 8, "col": 2, "name": "Uppercut", "desc": "Rocket enemies in the air and deal massive damage"},
-        {"row": 8, "col": 4, "name": "Cheaper Charge", "desc": "Reduce the Mana cost of Charge"},
-        {"row": 8, "col": 6, "name": "War Scream", "desc": "Emit a terrorizing roar that deals damage, pull nearby enemies, and add damage resistance to yourself and allies"},
-        {"row": 10, "col": 0, "name": "Earth Mastery", "desc": "Increases base damage from all Earth attacks"},
-        {"row": 10, "col": 2, "name": "Thunder Mastery", "desc": "Increases base damage from all Thunder attacks"},
-        {"row": 10, "col": 6, "name": "Air Mastery", "desc": "Increases base damage from all Air attacks"},
-        {"row": 10, "col": 8, "name": "Fire Mastery", "desc": "Increases base damage from all Fire attacks"},
-        {"row": 11, "col": 4, "name": "Water Mastery", "desc": "Increases base damage from all Water attacks"},
-        {"row": 12, "col": 0, "name": "Quadruple Bash", "desc": "Bash will hit 4 times at an even larger range"},
-        {"row": 12, "col": 2, "name": "Fireworks", "desc": "Mobs hit by Uppercut will explode mid-air and receive additional damage"},
-        {"row": 12, "col": 6, "name": "Flyby Jab", "desc": "Damage enemies in your way when using Charge"},
-        {"row": 12, "col": 8, "name": "Flaming Uppercut", "desc": "Uppercut will light mobs on fire, dealing damage every 0.6 seconds"},
-        {"row": 13, "col": 4, "name": "Half-Moon Swipe", "desc": "Uppercut will deal a footsweep attack at a longer and wider angle. All elemental conversions become Water"},
-        {"row": 13, "col": 7, "name": "Iron Lungs", "desc": "War scream deals more damage"},
-        {"row": 15, "col": 2, "name": "Generalist", "desc": "After casting 3 different spells in a row, your next spell will cost 5 mana"},
-        {"row": 15, "col": 4, "name": "Counter", "desc": "When dodging a nearby enemy attack, get 30% chance to instantly attack back"},
-        {"row": 15, "col": 7, "name": "Mantle of the Bovemists", "desc": "When casting War Scream, create a holy shield around you that reduces all incoming damage by 70% for 3 hits (20s cooldown)"},
-        {"row": 16, "col": 1, "name": "Bak'al's Grasp", "desc": "After casting war Scream, become Corrupted (15s Cooldown). You cannot heal while in that state. While Corrupted, every 2% of Health you lose will add +4 Raw Damage to your attacks (Max 120)."},
-        {"row": 17, "col": 0, "name": "Spear Proficiency 2", "desc": "Improve your Main Attack's damage and range w/ spear"},
-        {"row": 17, "col": 3, "name": "Cheaper Uppercut", "desc": "Reduce the Mana Cost of Uppercut"},
-        {"row": 17, "col": 5, "name": "Aerodynamics", "desc": "During Charge, you can steer and change direction"},
-        {"row": 17, "col": 7, "name": "Provoke", "desc": "Mobs damaged by War Scream will target only you for at least 5s. Reduce the Mana cost of War Scream."},
-        {"row": 18, "col": 2, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 18, "col": 6, "name": "Air Shout", "desc": "War Scream will fire a projectile that can go through walls and deal damage multiple times."},
-        {"row": 20, "col": 0, "name": "Enraged Blow", "desc": "While Corriupted, every 1% of Health you lose will increase your damage by +2% (Max 200%)"},
-        {"row": 20, "col": 3, "name": "Flying Kick", "desc": "While using Charge, mobs hit will halt your momentum and get knocked back"},
-        {"row": 20, "col": 6, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 20, "col": 8, "name": "Manachism", "desc": "If you receive a hit that's less than 5% of your max HP, gain 10 mana (1s Cooldown)"},
-        {"row": 22, "col": 0, "name": "Boiling Blood", "desc": "Bash leaves a trail of boiling blood behind its first explosion, slowing down and damaging enemies above it every 0.4 seconds"},
-        {"row": 22, "col": 2, "name": "Ragnarokkr", "desc": "War Scream becomes deafening, increasing its range and giving damage bonus to players"},
-        {"row": 22, "col": 4, "name": "Ambidextrous", "desc": "Increase your change to attack with Counter by 30%"},
-        {"row": 22, "col": 6, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 22, "col": 8, "name": "Stronger Bash", "desc": "Increase the damage of Bash"},
-        {"row": 23, "col": 1, "name": "Massacre", "desc": "While Corrupted, if your effective attack speed is Slow or lower, hitting an enemy with your Main Attack will add +1% to your Corrupted bar"},
-        {"row": 23, "col": 5, "name": "Collide", "desc": "Mobs thrown into walls from Flying Kick will explode and receive additonal damage"},
-        {"row": 23, "col": 7, "name": "Rejuvenating Skin", "desc": "Regain back 30% of the damage you take as healing over 30s"},
-        {"row": 24, "col": 2, "name": "Comet", "desc": "After being hit by Fireworks, enemies will crash into the ground and receive more damage"},
-        {"row": 26, "col": 0, "name": "Uncontainable Corruption", "desc": "Reduce the cooldown of Bak'al's Grasp by -5s, and increase the raw damage gained for every 2% of health lost by +1"},
-        {"row": 26, "col": 2, "name": "Radiant Devotee", "desc": "For every 4% Reflection you have from items, gain +1/5s Mana Regen (Max 10/5s)"},
-        {"row": 26, "col": 4, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 26, "col": 7, "name": "Mythril Skin", "desc": "Gain +5% Base Resistance and become immune to knockback"},
-        {"row": 27, "col": 1, "name": "Armour Breaker", "desc": "While Corrupted, losing 30% Health will make your next Uppercut destroy enemies' defense, rendering them weaker to damage"},
-        {"row": 27, "col": 3, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 27, "col": 6, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 27, "col": 8, "name": "Sparking Hope", "desc": "Everytime you heal 5% of your max health, deal damage to all nearby enemies"},
-        {"row": 28, "col": 0, "name": "Massive Bash", "desc": "While Corrupted, every 3% Health you lose will add +1 AoE to Bash (Max 10)"},
-        {"row": 28, "col": 2, "name": "Tempest", "desc": "War Scream will ripple the ground and deal damage 3 times in a large area"},
-        {"row": 28, "col": 4, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 29, "col": 3, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 29, "col": 5, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 29, "col": 7, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 31, "col": 0, "name": "Cheaper War Scream", "desc": "Reduce the Mana cost of War Scream"},
-        {"row": 31, "col": 4, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 32, "col": 1, "name": "Blood KO", "desc": "Gonna have to rewrite this one chief"},
-        {"row": 32, "col": 3, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 32, "col": 5, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 32, "col": 7, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 34, "col": 1, "name": "Blood Pact", "desc": "If you do not have enough mana to cast a spell, spend health instead (1% health per mana)"},
-        {"row": 34, "col": 4, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 34, "col": 6, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 34, "col": 8, "name": "TEXT", "desc": "IDFK MMMM"},
-        {"row": 35, "col": 0, "name": "TEXT", "desc": "IDFK MMMM"}
+        {
+            "display_name": "Bash",
+            "desc": "Violently bash the ground, dealing high damage in a large area",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": [], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 0,
+                "col": 4
+            },
+            "properties": {
+                "aoe": 4,
+                "range": 3
+            },
+            "effects": [
+                {
+                    "type": "replace_spell",
+                    "name": "Bash",
+                    "cost": 45,
+                    "display_text": "Total Damage Average",
+                    "base_spell": 1,
+                    "spell_type": "damage",
+                    "scaling": "spell",
+                    "display": "Total Damage",
+                    "parts": [
+                        {
+                            "name": "Single Hit",
+                            "type": "damage",
+                            "multipliers": [130, 20, 0, 0, 0, 0]
+                        },
+                        {
+                            "name": "Total Damage",
+                            "type": "total",
+                            "hits": {
+                                "Single Hit": 1
+                            }
+                        }
+                    ]
+                }
+            ]  
+        },
+        {
+            "display_name": "Spear Proficiency 1",
+            "desc": "Improve your Main Attack's damage and range w/ spear",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Bash"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 2,
+                "col": 4
+            },
+            "properties": {
+                "melee_range": 1
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "mdPct",
+                            "value": 5
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Cheaper Bash",
+            "desc": "Reduce the Mana cost of Bash",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Spear Proficiency 1"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 2,
+                "col": 2
+            },
+            "properties": {
+                
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "cost": -10
+                }
+            ]  
+        },
+        {
+            "display_name": "Double Bash",
+            "desc": "Bash will hit a second time at a farther range",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Spear Proficiency 1"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 4,
+                "col": 4
+            },
+            "properties": {
+                "range": 3
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "target_part": "Total Damage",
+                    "cost": 0,
+                    "hits": {
+                        "name": "Single Hit",
+                        "value": 1
+                    }
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "target_part": "Single Hit",
+                    "cost": 0,
+                    "multipliers": [-50, 0, 0, 0, 0, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Charge",
+            "desc": "Charge forward at high speed (hold shift to cancel)",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Double Bash"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 6,
+                "col": 4
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "replace_spell",
+                    "name": "Charge",
+                    "cost": 25,
+                    "display_text": "Total Damage Average",
+                    "base_spell": 2,
+                    "spell_type": "damage",
+                    "scaling": "spell",
+                    "display": "Total Damage",
+                    "parts": [
+                        {
+                            "name": "None",
+                            "type": "damage",
+                            "multipliers": [0, 0, 0, 0, 0, 0]
+                        },
+                        {
+                            "name": "Total Damage",
+                            "type": "total",
+                            "hits": {
+                                "None": 0
+                            }
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Heavy Impact",
+            "desc": "After using Charge, violently crash down into the ground and deal damage",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Charge"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 6,
+                "col": 2
+            },
+            "properties": {
+                "aoe": 4
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "target_part": "Heavy Impact",
+                    "cost": 0,
+                    "multipliers": [100, 0, 0, 0, 0, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Vehement",
+            "desc": "For every 1% or 1 Raw Main Attack Damage you have from items, gain +2% Walk Speed (Max 20%)",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Heavy Impact"], 
+            "dependencies": [], 
+            "blockers": ["Tougher Skin"],
+            "cost": 1, 
+            "display": {
+                "row": 7,
+                "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": false,
+                    "inputs": [
+                        {
+                            "type": "stat",
+                            "name": "mdPct"
+                        },
+                        {
+                            "type": "stat",
+                            "name": "mdRaw"
+                        }
+                    ],
+                    "output": {
+                        "type": "stat",
+                        "name": "spd"
+                    },
+                    "scaling": [1, 1],
+                    "max": 20
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Tougher Skin",
+            "desc": "Harden your skin and become permanently +5% more resistant\nFor every 1% or 1 Raw Heath Regen you have from items, gain +10 Health (Max 100)",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Charge"], 
+            "dependencies": [], 
+            "blockers": ["Vehement"],
+            "cost": 1, 
+            "display": {
+                "row": 6,
+                "col": 6
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "baseResist",
+                            "value": "5"
+                        }
+                    ]
+                },
+                {
+                    "type": "stat_scaling",
+                    "slider": false,
+                    "inputs": [
+                        {
+                            "type": "stat",
+                            "name": "hprRaw"
+                        },
+                        {
+                            "type": "stat",
+                            "name": "hprPct"
+                        }
+                    ],
+                    "output": {
+                        "type": "stat",
+                        "name": "hpBonus"
+                    },
+                    "scaling": [10, 10],
+                    "max": 100
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Uppercut",
+            "desc": "Rocket enemies in the air and deal massive damage",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Vehement"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 8,
+                "col": 2
+            },
+            "properties": {
+                "aoe": 3,
+                "range": 5
+            },
+            "effects": [
+                {
+                    "type": "replace_spell",
+                    "name": "Uppercut",
+                    "cost": 45,
+                    "display_text": "Total Damage Average",
+                    "base_spell": 3,
+                    "spell_type": "damage",
+                    "scaling": "spell",
+                    "display": "total",
+                    "parts": [
+                        {
+                            "name": "Uppercut",
+                            "type": "damage",
+                            "multipliers": [150, 50, 50, 0, 0, 0]
+                        },
+                        {
+                            "name": "Total Damage",
+                            "type": "total",
+                            "hits": {
+                                "Uppercut": 1
+                            }
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Cheaper Charge",
+            "desc": "Reduce the Mana cost of Charge",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Uppercut", "War Scream"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 8,
+                "col": 4
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "cost": -5
+                }
+            ]  
+        },
+
+        {
+            "display_name": "War Scream",
+            "desc": "Emit a terrorizing roar that deals damage, pull nearby enemies, and add damage resistance to yourself and allies",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Tougher Skin"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 8,
+                "col": 6
+            },
+            "properties": {
+                "duration": 30,
+                "aoe": 12,
+                "defense_bonus": 10
+            },
+            "effects": [
+                {
+                    "type": "replace_spell",
+                    "name": "War Scream",
+                    "cost": 35,
+                    "display_text": "War Scream",
+                    "base_spell": 4,
+                    "spell_type": "damage",
+                    "scaling": "spell",
+                    "display": "Total Damage Average",
+                    "parts": [
+                        {
+                            "name": "War Scream",
+                            "type": "damage",
+                            "multipliers": [50, 0, 0, 0, 50, 0]
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Earth Mastery",
+            "desc": "Increases base damage from all Earth attacks",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Uppercut"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 10,
+                "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "eDamPct",
+                            "value": 20
+                        },
+                        {
+                            "type": "stat",
+                            "name": "eDam",
+                            "value": [2, 4]
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Thunder Mastery",
+            "desc": "Increases base damage from all Thunder attacks",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Uppercut", "Air Mastery"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 10,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "tDamPct",
+                            "value": 10
+                        },
+                        {
+                            "type": "stat",
+                            "name": "tDam",
+                            "value": [1, 8]
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Water Mastery",
+            "desc": "Increases base damage from all Water attacks",
+            "archetype": "Battle Monk", 
+            "archetype_req": 0, 
+            "parents": ["Cheaper Charge", "Thunder Mastery", "Air Mastery"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 11,
+                "col": 4
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "wDamPct",
+                            "value": 15
+                        },
+                        {
+                            "type": "stat",
+                            "name": "wDam",
+                            "value": [2, 4]
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Air Mastery",
+            "desc": "Increases base damage from all Air attacks",
+            "archetype": "Battle Monk", 
+            "archetype_req": 0, 
+            "parents": ["War Scream", "Thunder Mastery"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 10,
+                "col": 6
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "aDamPct",
+                            "value": 15
+                        },
+                        {
+                            "type": "stat",
+                            "name": "aDam",
+                            "value": [3, 4]
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Fire Mastery",
+            "desc": "Increases base damage from all Earth attacks",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["War Scream"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 10,
+                "col": 8
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "fDamPct",
+                            "value": 15
+                        },
+                        {
+                            "type": "stat",
+                            "name": "fDam",
+                            "value": [3, 5]
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Quadruple Bash",
+            "desc": "Bash will hit 4 times at an even larger range",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Earth Mastery", "Fireworks"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 12,
+                "col": 0
+            },
+            "properties": {
+                "range": 6
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "target_part": "Total Damage",
+                    "cost": 0,
+                    "hits": {
+                        "Single Hit": 2
+                    }         
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "target_part": "Single Hit",
+                    "cost": 0,
+                    "multipliers": [-20, 0, 0, 0, 0, 0] 
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Fireworks",
+            "desc": "Mobs hit by Uppercut will explode mid-air and receive additional damage",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Thunder Mastery", "Quadruple Bash"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 12,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Fireworks",
+                    "cost": 0,
+                    "multipliers": [80, 0, 20, 0, 0, 0]
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Total Damage",
+                    "cost": 0,
+                    "hits": {
+                        "Fireworks": 1
+                    }
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Half-Moon Swipe",
+            "desc": "Uppercut will deal a footsweep attack at a longer and wider angle. All elemental conversions become Water",
+            "archetype": "Battle Monk", 
+            "archetype_req": 1, 
+            "parents": ["Water Mastery"], 
+            "dependencies": ["Uppercut"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 13,
+                "col": 4
+            },
+            "properties": {
+                "range": 4
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Uppercut",
+                    "cost": -10,
+                    "multipliers": [-70, 0, 0, 0, 0, 0]
+                },
+                {
+                    "type": "convert_spell_conv",
+                    "target_part": "all",
+                    "conversion": "water"
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Flyby Jab",
+            "desc": "Damage enemies in your way when using Charge",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Air Mastery", "Flaming Uppercut"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 12,
+                "col": 6
+            },
+            "properties": {
+                "aoe": 2
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "target_part": "Flyby Jab",
+                    "cost": 0,
+                    "multipliers": [20, 0, 0, 0, 0, 40]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Flaming Uppercut",
+            "desc": "Uppercut will light mobs on fire, dealing damage every 0.6 seconds",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Fire Mastery", "Flyby Jab"], 
+            "dependencies": ["Uppercut"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 12,
+                "col": 8
+            },
+            "properties": {
+                "duration": 3,
+                "tick": 0.6
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Flaming Uppercut",
+                    "cost": 0,
+                    "multipliers": [0, 0, 0, 0, 50, 0]
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Flaming Uppercut Total Damage",
+                    "cost": 0,
+                    "hits": {
+                        "Flaming Uppercut": 5
+                    }
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Total Damage",
+                    "cost": 0,
+                    "hits": {
+                        "Flaming Uppercut": 5
+                    }
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Iron Lungs",
+            "desc": "War Scream deals more damage",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Flyby Jab", "Flaming Uppercut"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 13,
+                "col": 7
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "War Scream",
+                    "cost": 0,
+                    "multipliers": [30, 0, 0, 0, 0, 30]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Generalist",
+            "desc": "After casting 3 different spells in a row, your next spell will cost 5 mana",
+            "archetype": "Battle Monk", 
+            "archetype_req": 3, 
+            "parents": ["Counter"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 15,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Counter",
+            "desc": "When dodging a nearby enemy attack, get 30% chance to instantly attack back",
+            "archetype": "Battle Monk", 
+            "archetype_req": 0, 
+            "parents": ["Half-Moon Swipe"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 15,
+                "col": 4
+            },
+            "properties": {
+                "chance": 30
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 5,
+                    "target_part": "Counter",
+                    "cost": 0,
+                    "multipliers": [60, 0, 20, 0, 0, 20]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Mantle of the Bovemists",
+            "desc": "When casting War Scream, create a holy shield around you that reduces all incoming damage by 70% for 3 hits (20s cooldown)",
+            "archetype": "Paladin", 
+            "archetype_req": 3, 
+            "parents": ["Iron Lungs"], 
+            "dependencies": ["War Scream"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 15,
+                "col": 7
+            },
+            "properties": {
+                "mantle_charge": 3
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Bak'al's Grasp",
+            "desc": "After casting War Scream, become Corrupted (15s Cooldown). You cannot heal while in that state\n\nWhile Corrupted, every 2% of Health you lose will add +4 Raw Damage to your attacks (Max 120)",
+            "archetype": "Fallen", 
+            "archetype_req": 2, 
+            "parents": ["Quadruple Bash", "Fireworks"], 
+            "dependencies": ["War Scream"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 16,
+                "col": 1
+            },
+            "properties": {
+                "cooldown": 15
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Corrupted",
+                    "output": {
+                        "type": "stat",
+                        "name": "raw" 
+                    },
+                    "scaling": [4],
+                    "slider_step": 2,
+                    "max": 120
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Spear Proficiency 2",
+            "desc": "Improve your Main Attack's damage and range w/ spear",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Bak'al's Grasp", "Cheaper Uppercut"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 17,
+                "col": 0
+            },
+            "properties": {
+                "melee_range": 1
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "mdPct",
+                            "value": 5
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Cheaper Uppercut",
+            "desc": "Reduce the Mana Cost of Uppercut",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Spear Proficiency 2", "Aerodynamics", "Counter"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 17,
+                "col": 3
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "cost": -5
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Aerodynamics",
+            "desc": "During Charge, you can steer and change direction",
+            "archetype": "Battle Monk", 
+            "archetype_req": 0, 
+            "parents": ["Cheaper Uppercut", "Provoke"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 17,
+                "col": 5
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Provoke",
+            "desc": "Mobs damaged by War Scream will target only you for at least 5s \n\nReduce the Mana cost of War Scream",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Aerodynamics", "Mantle of the Bovemists"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 17,
+                "col": 7
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "cost": -5
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Precise Strikes",
+            "desc": "+30% Critical Hit Damage",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Cheaper Uppercut", "Spear Proficiency 2"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 18,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "critDmg",
+                            "value": 30
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Air Shout",
+            "desc": "War Scream will fire a projectile that can go through walls and deal damage multiple times",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Aerodynamics", "Provoke"], 
+            "dependencies": ["War Scream"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 18,
+                "col": 6
+            },
+            "properties": {
+                
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Air Shout",
+                    "cost": 0,
+                    "multipliers": [20, 0, 0, 0, 0, 5]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Enraged Blow",
+            "desc": "While Corriupted, every 1% of Health you lose will increase your damage by +2% (Max 200%)",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Spear Proficiency 2"], 
+            "dependencies": ["Bak'al's Grasp"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 20,
+                "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": false,
+                    "inputs": [
+                        {
+                            "type": "stat",
+                            "name": "hpBonus"
+                        }
+                    ],
+                    "output": {
+                        "type": "stat",
+                        "name": "dmgPct" 
+                    },
+                    "scaling": [2],
+                    "max": 200
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Flying Kick",
+            "desc": "When using Charge, mobs hit will halt your momentum and get knocked back",
+            "archetype": "Battle Monk", 
+            "archetype_req": 1, 
+            "parents": ["Cheaper Uppercut", "Stronger Mantle"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 20,
+                "col": 3
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "target_part": "Flying Kick",
+                    "cost": 0,
+                    "multipliers": [120, 0, 0, 10, 0, 20]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Stronger Mantle",
+            "desc": "Add +2 additional charges to Mantle of the Bovemists",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Manachism", "Flying Kick"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 20,
+                "col": 6
+            },
+            "properties": {
+                "mantle_charge": 2
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Manachism",
+            "desc": "If you receive a hit that's less than 5% of your max HP, gain 10 Mana (1s Cooldown)",
+            "archetype": "Paladin", 
+            "archetype_req": 3, 
+            "parents": ["Stronger Mantle", "Provoke"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 20,
+                "col": 8
+            },
+            "properties": {
+                "cooldown": 1
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Boiling Blood",
+            "desc": "Bash leaves a trail of boiling blood behind its first explosion, slowing down and damaging enemies above it every 0.4 seconds",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Enraged Blow", "Ragnarokkr"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 22,
+                "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "target_part": "Boiling Blood",
+                    "cost": 0,
+                    "multipliers": [25, 0, 0, 0, 5, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Ragnarokkr",
+            "desc": "War Scream become deafening, increasing its range and giving damage bonus to players",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Boiling Blood", "Flying Kick"], 
+            "dependencies": ["War Scream"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 22,
+                "col": 2
+            },
+            "properties": {
+                "damage_bonus": 30,
+                "aoe": 2
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "cost": 10
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Ambidextrous",
+            "desc": "Increase your chance to attack with Counter by +30%",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Flying Kick", "Stronger Mantle", "Burning Heart"], 
+            "dependencies": ["Counter"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 22,
+                "col": 4
+            },
+            "properties": {
+                "chance": 30
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Burning Heart",
+            "desc": "For every 100 Health Bonus you have from item IDs, gain +2% Fire Damage (Max 100%)",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Ambidextrous", "Stronger Bash"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 22,
+                "col": 6
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": false,
+                    "inputs": [
+                        {
+                            "type": "stat",
+                            "name": "hpBonus"
+                        }
+                    ],
+                    "output": {
+                        "type": "stat",
+                        "name": "fDamPct"
+                    },
+                    "scaling": [2],
+                    "max": 100,
+                    "slider_step": 100
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Stronger Bash",
+            "desc": "Increase the damage of Bash",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Burning Heart", "Manachism"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 22,
+                "col": 8
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "target_part": "Single Hit",
+                    "cost": 0,
+                    "multipliers": [30, 0, 0, 0, 0, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Intoxicating Blood",
+            "desc": "After leaving Corrupted, gain 2% of the health lost back for each enemy killed while Corrupted",
+            "archetype": "Fallen", 
+            "archetype_req": 5, 
+            "parents": ["Ragnarokkr", "Boiling Blood"], 
+            "dependencies": ["Bak'al's Grasp"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 23,
+                "col": 1
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Comet",
+            "desc": "After being hit by Fireworks, enemies will crash into the ground and receive more damage",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Ragnarokkr"], 
+            "dependencies": ["Fireworks"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 24,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Comet",
+                    "cost": 0,
+                    "multipliers": [80, 20, 0, 0, 0, 0]
+                },
+                {
+                    "type":"add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Total Damage",
+                    "cost": 0, 
+                    "hits": {
+                        "Comet": 1
+                    }
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Collide",
+            "desc": "Mobs thrown into walls from Flying Kick will explode and receive additonal damage",
+            "archetype": "Battle Monk", 
+            "archetype_req": 4, 
+            "parents": ["Ambidextrous", "Burning Heart"], 
+            "dependencies": ["Flying Kick"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 23,
+                "col": 5
+            },
+            "properties": {
+                "aoe": 4
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "target_part": "Collide",
+                    "cost": 0,
+                    "multipliers": [100, 0, 0, 0, 50, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Rejuvenating Skin",
+            "desc": "Regain back 30% of the damage you take as healing over 30s",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Burning Heart", "Stronger Bash"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 23,
+                "col": 7
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Uncontainable Corruption",
+            "desc": "Reduce the cooldown of Bak'al's Grasp by -5s, and increase the raw damage gained for every 2% of health lost by +1",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Boiling Blood", "Radiant Devotee"], 
+            "dependencies": ["Bak'al's Grasp"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 26,
+                "col": 0
+            },
+            "properties": {
+                "cooldown": -5
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Corrupted",
+                    "output": {
+                        "type": "stat",
+                        "name": "raw" 
+                    },
+                    "scaling": [1],
+                    "slider_step": 2,
+                    "max": 50
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Radiant Devotee",
+            "desc": "For every 4% Reflection you have from items, gain +1/5s Mana Regen (Max 10/5s)",
+            "archetype": "Battle Monk", 
+            "archetype_req": 1, 
+            "parents": ["Whirlwind Strike", "Uncontainable Corruption"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 26,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "inputs": [
+                        {
+                            "type": "stat",
+                            "name": "ref"
+                        }
+                    ],
+                    "output": {
+                        "type": "stat",
+                        "name": "mr"
+                    },
+                    "scaling": [1],
+                    "max": 10,
+                    "slider_step": 4
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Whirlwind Strike",
+            "desc": "Uppercut will create a strong gust of air, launching you upward with enemies (Hold shift to stay grounded)",
+            "archetype": "Battle Monk", 
+            "archetype_req": 5, 
+            "parents": ["Ambidextrous", "Radiant Devotee"], 
+            "dependencies": ["Uppercut"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 26,
+                "col": 4
+            },
+            "properties": {
+                "range": 2 
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Uppercut",
+                    "cost": 0,
+                    "multipliers": [0, 0, 0, 0, 0, 50]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Mythril Skin",
+            "desc": "Gain +5% Base Resistance and become immune to knockback",
+            "archetype": "Paladin", 
+            "archetype_req": 6, 
+            "parents": ["Rejuvenating Skin"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 26,
+                "col": 7
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "baseResist",
+                            "value": 5
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Armour Breaker",
+            "desc": "While Corrupted, losing 30% Health will make your next Uppercut destroy enemies' defense, rendering them weaker to damage",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Uncontainable Corruption", "Radiant Devotee"], 
+            "dependencies": ["Bak'al's Grasp"], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 27,
+                "col": 1
+            },
+            "properties": {
+                "duration": 5
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Shield Strike",
+            "desc": "When your Mantle of the Bovemist loses all charges, deal damage around you for each Mantle individually lost",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Mythril Skin", "Sparkling Hope"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 27,
+                "col": 6
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 5,
+                    "target_part": "Shield Strike",
+                    "cost": 0,
+                    "multipliers": [60, 0, 20, 0, 0, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Sparkling Hope",
+            "desc": "Everytime you heal 5% of your max health, deal damage to all nearby enemies",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Mythril Skin"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 27,
+                "col": 8
+            },
+            "properties": {
+                "aoe": 6
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 5,
+                    "target_part": "Sparkling Hope",
+                    "cost": 0,
+                    "multipliers": [10, 0, 5, 0, 0, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Massive Bash",
+            "desc": "While Corrupted, every 3% Health you lose will add +1 AoE to Bash (Max 10)",
+            "archetype": "Fallen", 
+            "archetype_req": 8, 
+            "parents": ["Tempest", "Uncontainable Corruption"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 28,
+                "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Corrupted",
+                    "output": {
+                        "type": "stat",
+                        "name": "bashAoE" 
+                    },
+                    "scaling": [1],
+                    "max": 10,
+                    "slider_step": 3
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Tempest",
+            "desc": "War Scream will ripple the ground and deal damage 3 times in a large area",
+            "archetype": "Battle Monk", 
+            "archetype_req": 0, 
+            "parents": ["Massive Bash", "Spirit of the Rabbit"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 28,
+                "col": 2
+            },
+            "properties": {
+                "aoe": 16
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Tempest",
+                    "cost": "0",
+                    "multipliers": [30, 10, 0, 0, 0, 10]
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Tempest Total Damage",
+                    "cost": "0",
+                    "hits": {
+                        "Tempest": 3
+                    }
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Total Damage",
+                    "cost": "0",
+                    "hits": {
+                        "Tempest": 3
+                    }
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Spirit of the Rabbit",
+            "desc": "Reduce the Mana cost of Charge and increase your Walk Speed by +20%",
+            "archetype": "Battle Monk", 
+            "archetype_req": 5, 
+            "parents": ["Tempest", "Whirlwind Strike"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 28,
+                "col": 4
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 2,
+                    "cost": -5
+                },
+                {
+                    "type": "raw_stat",
+                    "bonuses": [
+                        {
+                            "type": "stat",
+                            "name": "spd",
+                            "value": 20
+                        }
+                    ]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Massacre",
+            "desc": "While Corrupted, if your effective attack speed is Slow or lower, hitting an enemy with your Main Attack will add +1% to your Corrupted bar",
+            "archetype": "Fallen", 
+            "archetype_req": 5, 
+            "parents": ["Tempest", "Massive Bash"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 29,
+                "col": 1
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Axe Kick",
+            "desc": "Increase the damage of Uppercut, but also increase its mana cost",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Tempest", "Spirit of the Rabbit"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 29,
+                "col": 3
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "target_part": "Uppercut",
+                    "cost": 10,
+                    "multipliers": [100, 0, 0, 0, 0, 0]
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Radiance",
+            "desc": "Bash will buff your allies' positive IDs. (15s Cooldown)",
+            "archetype": "Paladin", 
+            "archetype_req": 2, 
+            "parents": ["Spirit of the Rabbit", "Cheaper Bash 2"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 29,
+                "col": 5
+            },
+            "properties": {
+                "cooldown": 15
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Cheaper Bash 2",
+            "desc": "Reduce the Mana cost of Bash",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Radiance", "Shield Strike", "Sparkling Hope"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 29,
+                "col": 7
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 1,
+                    "cost": -5
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Cheaper War Scream",
+            "desc": "Reduce the Mana cost of War Scream",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Massive Bash"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 31,
+                "col": 0
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "cost": -5
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Discombobulate",
+            "desc": "Every time you hit an enemy, briefly increase your elemental damage dealt to them by +2 (Additive, Max +50). This bonus decays -5 every second",
+            "archetype": "Battle Monk", 
+            "archetype_req": 12, 
+            "parents": ["Thunderclap"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 31,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "stat_scaling",
+                    "slider": true,
+                    "slider_name": "Hits dealt",
+                    "output": {
+                        "type": "stat",
+                        "name": "rainrawButDifferent" 
+                    },
+                    "scaling": [2],
+                    "max": 50
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Thunderclap",
+            "desc": "Bash will cast at the player's position and gain additional AoE.\n\n All elemental conversions become Thunder",
+            "archetype": "Battle Monk", 
+            "archetype_req": 8, 
+            "parents": ["Spirit of the Rabbit"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 31,
+                "col": 4
+            },
+            "properties": {
+                "aoe": 2
+            },
+            "effects": [
+                {
+                    "type": "convert_spell_conv",
+                    "target_part": "all",
+                    "conversion": "thunder"
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Cyclone",
+            "desc": "After casting War Scream, envelop yourself with a vortex that damages nearby enemies every 0.5s",
+            "archetype": "Battle Monk", 
+            "archetype_req": 0, 
+            "parents": ["Thunderclap"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 32,
+                "col": 5
+            },
+            "properties": {
+                "aoe": 4,
+                "duration": 20
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Cyclone",
+                    "cost": 0,
+                    "multipliers": [10, 0, 0, 0, 5, 10]
+                },
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 4,
+                    "target_part": "Cyclone Total Damage",
+                    "cost": 0,
+                    "hits": {
+                        "Cyclone": 40
+                    }
+                    
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Second Chance",
+            "desc": "When you receive a fatal blow, survive and regain 30% of your Health (10m Cooldown)",
+            "archetype": "Paladin", 
+            "archetype_req": 12, 
+            "parents": ["Cheaper Bash 2"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 32,
+                "col": 7
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Blood Pact",
+            "desc": "If you do not have enough mana to cast a spell, spend health instead (1% health per mana)",
+            "archetype": "", 
+            "archetype_req": 10, 
+            "parents": ["Cheaper War Scream"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 34,
+                "col": 1
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Haemorrhage",
+            "desc": "Reduce Blood Pact's health cost. (0.5% health per mana)",
+            "archetype": "Fallen", 
+            "archetype_req": 0, 
+            "parents": ["Blood Pact"], 
+            "dependencies": ["Blood Pact"], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 35,
+                "col": 2
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Brink of Madness",
+            "desc": "If your health is 25% full or less, gain +40% Resistance",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Blood Pact", "Cheaper Uppercut 2"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 35,
+                "col": 4
+            },
+            "properties": {
+            },
+            "effects": [
+                
+            ]  
+        },
+
+        {
+            "display_name": "Cheaper Uppercut 2",
+            "desc": "Reduce the Mana cost of Uppercut",
+            "archetype": "", 
+            "archetype_req": 0, 
+            "parents": ["Second Chance", "Brink of Madness"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 1, 
+            "display": {
+                "row": 35,
+                "col": 6
+            },
+            "properties": {
+            },
+            "effects": [
+                {
+                    "type": "add_spell_prop",
+                    "base_spell": 3,
+                    "cost": -5
+                }
+            ]  
+        },
+
+        {
+            "display_name": "Martyr",
+            "desc": "When you receive a fatal blow, all nearby allies become invincible",
+            "archetype": "Paladin", 
+            "archetype_req": 0, 
+            "parents": ["Second Chance"], 
+            "dependencies": [], 
+            "blockers": [],
+            "cost": 2, 
+            "display": {
+                "row": 35,
+                "col": 8
+            },
+            "properties": {
+                "duration": 3,
+                "aoe": 12
+            },
+            "effects": [
+                
+            ]  
+        }
     ],
     "Mage": [],
     "Shaman": []