From 65c2d397549858ff5cf32c068bda8257dff5c1ad Mon Sep 17 00:00:00 2001 From: ferricles Date: Mon, 27 Jun 2022 00:09:49 -0700 Subject: [PATCH 1/7] atree ID rework started --- js/atree-ids.json | 137 - py_script/atree-generateID.py | 4 +- py_script/atree-ids.json | 146 + py_script/atree-parse.json | 4967 +++++++++++++++++ .../textures}/items/boots/boots--chain.png | Bin .../textures}/items/boots/boots--diamond.png | Bin .../textures}/items/boots/boots--golden.png | Bin .../textures}/items/boots/boots--iron.png | Bin .../textures}/items/boots/boots--leather.png | Bin .../textures}/items/bow/bow--air1.png | Bin .../textures}/items/bow/bow--air2.png | Bin .../textures}/items/bow/bow--air3.png | Bin .../textures}/items/bow/bow--default1.png | Bin .../textures}/items/bow/bow--default2.png | Bin .../textures}/items/bow/bow--earth1.png | Bin .../textures}/items/bow/bow--earth2.png | Bin .../textures}/items/bow/bow--earth3.png | Bin .../textures}/items/bow/bow--fire1.png | Bin .../textures}/items/bow/bow--fire2.png | Bin .../textures}/items/bow/bow--fire3.png | Bin .../textures}/items/bow/bow--generic1.png | Bin .../textures}/items/bow/bow--generic2.png | Bin .../textures}/items/bow/bow--generic3.png | Bin .../textures}/items/bow/bow--thunder1.png | Bin .../textures}/items/bow/bow--thunder2.png | Bin .../textures}/items/bow/bow--thunder3.png | Bin .../textures}/items/bow/bow--water1.png | Bin .../textures}/items/bow/bow--water2.png | Bin .../textures}/items/bow/bow--water3.png | Bin .../items/chestplate/chestplate--chain.png | Bin .../items/chestplate/chestplate--diamond.png | Bin .../items/chestplate/chestplate--golden.png | Bin .../items/chestplate/chestplate--iron.png | Bin .../items/chestplate/chestplate--leather.png | Bin .../textures}/items/dagger/dagger--air1.png | Bin .../textures}/items/dagger/dagger--air2.png | Bin .../textures}/items/dagger/dagger--air3.png | Bin .../items/dagger/dagger--default1.png | Bin .../items/dagger/dagger--default2.png | Bin .../textures}/items/dagger/dagger--earth1.png | Bin .../textures}/items/dagger/dagger--earth2.png | Bin .../textures}/items/dagger/dagger--earth3.png | Bin .../textures}/items/dagger/dagger--fire1.png | Bin .../textures}/items/dagger/dagger--fire2.png | Bin .../textures}/items/dagger/dagger--fire3.png | Bin .../items/dagger/dagger--generic1.png | Bin .../items/dagger/dagger--generic2.png | Bin .../items/dagger/dagger--generic3.png | Bin .../items/dagger/dagger--thunder1.png | Bin .../items/dagger/dagger--thunder2.png | Bin .../items/dagger/dagger--thunder3.png | Bin .../textures}/items/dagger/dagger--water1.png | Bin .../textures}/items/dagger/dagger--water2.png | Bin .../textures}/items/dagger/dagger--water3.png | Bin .../textures}/items/helmet/helmet--chain.png | Bin .../items/helmet/helmet--diamond.png | Bin .../textures}/items/helmet/helmet--golden.png | Bin .../textures}/items/helmet/helmet--iron.png | Bin .../items/helmet/helmet--leather.png | Bin .../items/leggings/leggings--chain.png | Bin .../items/leggings/leggings--diamond.png | Bin .../items/leggings/leggings--golden.png | Bin .../items/leggings/leggings--iron.png | Bin .../items/leggings/leggings--leather.png | Bin .../textures}/items/relik/relik--air1.png | Bin .../textures}/items/relik/relik--air2.png | Bin .../textures}/items/relik/relik--air3.png | Bin .../textures}/items/relik/relik--default1.png | Bin .../textures}/items/relik/relik--default2.png | Bin .../textures}/items/relik/relik--earth1.png | Bin .../textures}/items/relik/relik--earth2.png | Bin .../textures}/items/relik/relik--earth3.png | Bin .../textures}/items/relik/relik--fire1.png | Bin .../textures}/items/relik/relik--fire2.png | Bin .../textures}/items/relik/relik--fire3.png | Bin .../textures}/items/relik/relik--generic1.png | Bin .../textures}/items/relik/relik--generic2.png | Bin .../textures}/items/relik/relik--generic3.png | 2 +- .../textures}/items/relik/relik--thunder1.png | Bin .../textures}/items/relik/relik--thunder2.png | Bin .../textures}/items/relik/relik--thunder3.png | Bin .../textures}/items/relik/relik--water1.png | 2 +- .../textures}/items/relik/relik--water2.png | 2 +- .../textures}/items/relik/relik--water3.png | 2 +- .../textures}/items/spear/spear--air1.png | Bin .../textures}/items/spear/spear--air2.png | Bin .../textures}/items/spear/spear--air3.png | Bin .../textures}/items/spear/spear--default1.png | Bin .../textures}/items/spear/spear--default2.png | Bin .../textures}/items/spear/spear--earth1.png | Bin .../textures}/items/spear/spear--earth2.png | Bin .../textures}/items/spear/spear--earth3.png | Bin .../textures}/items/spear/spear--fire1.png | Bin .../textures}/items/spear/spear--fire2.png | Bin .../textures}/items/spear/spear--fire3.png | Bin .../textures}/items/spear/spear--generic1.png | Bin .../textures}/items/spear/spear--generic2.png | Bin .../textures}/items/spear/spear--generic3.png | Bin .../textures}/items/spear/spear--thunder1.png | Bin .../textures}/items/spear/spear--thunder2.png | Bin .../textures}/items/spear/spear--thunder3.png | Bin .../textures}/items/spear/spear--water1.png | Bin .../textures}/items/spear/spear--water2.png | Bin .../textures}/items/spear/spear--water3.png | Bin .../textures}/items/wand/wand--air1.png | Bin .../textures}/items/wand/wand--air2.png | Bin .../textures}/items/wand/wand--air3.png | Bin .../textures}/items/wand/wand--default1.png | Bin .../textures}/items/wand/wand--default2.png | Bin .../textures}/items/wand/wand--earth1.png | Bin .../textures}/items/wand/wand--earth2.png | Bin .../textures}/items/wand/wand--earth3.png | Bin .../textures}/items/wand/wand--fire1.png | Bin .../textures}/items/wand/wand--fire2.png | Bin .../textures}/items/wand/wand--fire3.png | Bin .../textures}/items/wand/wand--generic1.png | Bin .../textures}/items/wand/wand--generic2.png | Bin .../textures}/items/wand/wand--generic3.png | 2 +- .../textures}/items/wand/wand--thunder1.png | Bin .../textures}/items/wand/wand--thunder2.png | Bin .../textures}/items/wand/wand--thunder3.png | Bin .../textures}/items/wand/wand--water1.png | Bin .../textures}/items/wand/wand--water2.png | Bin .../textures}/items/wand/wand--water3.png | Bin .../textures}/powder/dye_powder_cyan.png | Bin .../textures}/powder/dye_powder_gray.png | Bin .../textures}/powder/dye_powder_green.png | Bin .../powder/dye_powder_light_blue.png | Bin .../textures}/powder/dye_powder_lime.png | Bin .../textures}/powder/dye_powder_orange.png | Bin .../textures}/powder/dye_powder_pink.png | Bin .../textures}/powder/dye_powder_red.png | Bin .../textures}/powder/dye_powder_silver.png | Bin .../textures}/powder/dye_powder_yellow.png | Bin 134 files changed, 5121 insertions(+), 143 deletions(-) delete mode 100644 js/atree-ids.json create mode 100644 py_script/atree-ids.json create mode 100644 py_script/atree-parse.json rename {textures => py_script/textures}/items/boots/boots--chain.png (100%) rename {textures => py_script/textures}/items/boots/boots--diamond.png (100%) rename {textures => py_script/textures}/items/boots/boots--golden.png (100%) rename {textures => py_script/textures}/items/boots/boots--iron.png (100%) rename {textures => py_script/textures}/items/boots/boots--leather.png (100%) rename {textures => py_script/textures}/items/bow/bow--air1.png (100%) rename {textures => py_script/textures}/items/bow/bow--air2.png (100%) rename {textures => py_script/textures}/items/bow/bow--air3.png (100%) rename {textures => py_script/textures}/items/bow/bow--default1.png (100%) rename {textures => py_script/textures}/items/bow/bow--default2.png (100%) rename {textures => py_script/textures}/items/bow/bow--earth1.png (100%) rename {textures => py_script/textures}/items/bow/bow--earth2.png (100%) rename {textures => py_script/textures}/items/bow/bow--earth3.png (100%) rename {textures => py_script/textures}/items/bow/bow--fire1.png (100%) rename {textures => py_script/textures}/items/bow/bow--fire2.png (100%) rename {textures => py_script/textures}/items/bow/bow--fire3.png (100%) rename {textures => py_script/textures}/items/bow/bow--generic1.png (100%) rename {textures => py_script/textures}/items/bow/bow--generic2.png (100%) rename {textures => py_script/textures}/items/bow/bow--generic3.png (100%) rename {textures => py_script/textures}/items/bow/bow--thunder1.png (100%) rename {textures => py_script/textures}/items/bow/bow--thunder2.png (100%) rename {textures => py_script/textures}/items/bow/bow--thunder3.png (100%) rename {textures => py_script/textures}/items/bow/bow--water1.png (100%) rename {textures => py_script/textures}/items/bow/bow--water2.png (100%) rename {textures => py_script/textures}/items/bow/bow--water3.png (100%) rename {textures => py_script/textures}/items/chestplate/chestplate--chain.png (100%) rename {textures => py_script/textures}/items/chestplate/chestplate--diamond.png (100%) rename {textures => py_script/textures}/items/chestplate/chestplate--golden.png (100%) rename {textures => py_script/textures}/items/chestplate/chestplate--iron.png (100%) rename {textures => py_script/textures}/items/chestplate/chestplate--leather.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--air1.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--air2.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--air3.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--default1.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--default2.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--earth1.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--earth2.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--earth3.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--fire1.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--fire2.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--fire3.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--generic1.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--generic2.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--generic3.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--thunder1.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--thunder2.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--thunder3.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--water1.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--water2.png (100%) rename {textures => py_script/textures}/items/dagger/dagger--water3.png (100%) rename {textures => py_script/textures}/items/helmet/helmet--chain.png (100%) rename {textures => py_script/textures}/items/helmet/helmet--diamond.png (100%) rename {textures => py_script/textures}/items/helmet/helmet--golden.png (100%) rename {textures => py_script/textures}/items/helmet/helmet--iron.png (100%) rename {textures => py_script/textures}/items/helmet/helmet--leather.png (100%) rename {textures => py_script/textures}/items/leggings/leggings--chain.png (100%) rename {textures => py_script/textures}/items/leggings/leggings--diamond.png (100%) rename {textures => py_script/textures}/items/leggings/leggings--golden.png (100%) rename {textures => py_script/textures}/items/leggings/leggings--iron.png (100%) rename {textures => py_script/textures}/items/leggings/leggings--leather.png (100%) rename {textures => py_script/textures}/items/relik/relik--air1.png (100%) rename {textures => py_script/textures}/items/relik/relik--air2.png (100%) rename {textures => py_script/textures}/items/relik/relik--air3.png (100%) rename {textures => py_script/textures}/items/relik/relik--default1.png (100%) rename {textures => py_script/textures}/items/relik/relik--default2.png (100%) rename {textures => py_script/textures}/items/relik/relik--earth1.png (100%) rename {textures => py_script/textures}/items/relik/relik--earth2.png (100%) rename {textures => py_script/textures}/items/relik/relik--earth3.png (100%) rename {textures => py_script/textures}/items/relik/relik--fire1.png (100%) rename {textures => py_script/textures}/items/relik/relik--fire2.png (100%) rename {textures => py_script/textures}/items/relik/relik--fire3.png (100%) rename {textures => py_script/textures}/items/relik/relik--generic1.png (100%) rename {textures => py_script/textures}/items/relik/relik--generic2.png (100%) rename {textures => py_script/textures}/items/relik/relik--generic3.png (99%) rename {textures => py_script/textures}/items/relik/relik--thunder1.png (100%) rename {textures => py_script/textures}/items/relik/relik--thunder2.png (100%) rename {textures => py_script/textures}/items/relik/relik--thunder3.png (100%) rename {textures => py_script/textures}/items/relik/relik--water1.png (99%) rename {textures => py_script/textures}/items/relik/relik--water2.png (99%) rename {textures => py_script/textures}/items/relik/relik--water3.png (99%) rename {textures => py_script/textures}/items/spear/spear--air1.png (100%) rename {textures => py_script/textures}/items/spear/spear--air2.png (100%) rename {textures => py_script/textures}/items/spear/spear--air3.png (100%) rename {textures => py_script/textures}/items/spear/spear--default1.png (100%) rename {textures => py_script/textures}/items/spear/spear--default2.png (100%) rename {textures => py_script/textures}/items/spear/spear--earth1.png (100%) rename {textures => py_script/textures}/items/spear/spear--earth2.png (100%) rename {textures => py_script/textures}/items/spear/spear--earth3.png (100%) rename {textures => py_script/textures}/items/spear/spear--fire1.png (100%) rename {textures => py_script/textures}/items/spear/spear--fire2.png (100%) rename {textures => py_script/textures}/items/spear/spear--fire3.png (100%) rename {textures => py_script/textures}/items/spear/spear--generic1.png (100%) rename {textures => py_script/textures}/items/spear/spear--generic2.png (100%) rename {textures => py_script/textures}/items/spear/spear--generic3.png (100%) rename {textures => py_script/textures}/items/spear/spear--thunder1.png (100%) rename {textures => py_script/textures}/items/spear/spear--thunder2.png (100%) rename {textures => py_script/textures}/items/spear/spear--thunder3.png (100%) rename {textures => py_script/textures}/items/spear/spear--water1.png (100%) rename {textures => py_script/textures}/items/spear/spear--water2.png (100%) rename {textures => py_script/textures}/items/spear/spear--water3.png (100%) rename {textures => py_script/textures}/items/wand/wand--air1.png (100%) rename {textures => py_script/textures}/items/wand/wand--air2.png (100%) rename {textures => py_script/textures}/items/wand/wand--air3.png (100%) rename {textures => py_script/textures}/items/wand/wand--default1.png (100%) rename {textures => py_script/textures}/items/wand/wand--default2.png (100%) rename {textures => py_script/textures}/items/wand/wand--earth1.png (100%) rename {textures => py_script/textures}/items/wand/wand--earth2.png (100%) rename {textures => py_script/textures}/items/wand/wand--earth3.png (100%) rename {textures => py_script/textures}/items/wand/wand--fire1.png (100%) rename {textures => py_script/textures}/items/wand/wand--fire2.png (100%) rename {textures => py_script/textures}/items/wand/wand--fire3.png (100%) rename {textures => py_script/textures}/items/wand/wand--generic1.png (100%) rename {textures => py_script/textures}/items/wand/wand--generic2.png (100%) rename {textures => py_script/textures}/items/wand/wand--generic3.png (99%) rename {textures => py_script/textures}/items/wand/wand--thunder1.png (100%) rename {textures => py_script/textures}/items/wand/wand--thunder2.png (100%) rename {textures => py_script/textures}/items/wand/wand--thunder3.png (100%) rename {textures => py_script/textures}/items/wand/wand--water1.png (100%) rename {textures => py_script/textures}/items/wand/wand--water2.png (100%) rename {textures => py_script/textures}/items/wand/wand--water3.png (100%) rename {textures => py_script/textures}/powder/dye_powder_cyan.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_gray.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_green.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_light_blue.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_lime.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_orange.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_pink.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_red.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_silver.png (100%) mode change 100755 => 100644 rename {textures => py_script/textures}/powder/dye_powder_yellow.png (100%) mode change 100755 => 100644 diff --git a/js/atree-ids.json b/js/atree-ids.json deleted file mode 100644 index d04db13..0000000 --- a/js/atree-ids.json +++ /dev/null @@ -1,137 +0,0 @@ -{ - "Arrow Shield": 0, - "Escape": 1, - "Arrow Bomb": 2, - "Heart Shatter": 3, - "Fire Creep": 4, - "Bryophyte Roots": 5, - "Nimble String": 6, - "Arrow Storm": 7, - "Guardian Angels": 8, - "Windy Feet": 9, - "Basaltic Trap": 10, - "Windstorm": 11, - "Grappling Hook": 12, - "Implosion": 13, - "Twain's Arc": 14, - "Fierce Stomp": 15, - "Scorched Earth": 16, - "Leap": 17, - "Shocking Bomb": 18, - "Mana Trap": 19, - "Escape Artist": 20, - "Initiator": 21, - "Call of the Hound": 22, - "Arrow Hurricane": 23, - "Geyser Stomp": 24, - "Crepuscular Ray": 25, - "Grape Bomb": 26, - "Tangled Traps": 27, - "Snow Storm": 28, - "All-Seeing Panoptes": 29, - "Minefield": 30, - "Bow Proficiency I": 31, - "Cheaper Arrow Bomb": 32, - "Cheaper Arrow Storm": 33, - "Cheaper Escape": 34, - "Earth Mastery": 82, - "Thunder Mastery": 83, - "Water Mastery": 84, - "Air Mastery": 85, - "Fire Mastery": 86, - "More Shields": 40, - "Stormy Feet": 41, - "Refined Gunpowder": 42, - "More Traps": 43, - "Better Arrow Shield": 44, - "Better Leap": 45, - "Better Guardian Angels": 46, - "Cheaper Arrow Storm (2)": 47, - "Precise Shot": 48, - "Cheaper Arrow Shield": 49, - "Rocket Jump": 50, - "Cheaper Escape (2)": 51, - "Stronger Hook": 52, - "Cheaper Arrow Bomb (2)": 53, - "Bouncing Bomb": 54, - "Homing Shots": 55, - "Shrapnel Bomb": 56, - "Elusive": 57, - "Double Shots": 58, - "Triple Shots": 59, - "Power Shots": 60, - "Focus": 61, - "More Focus": 62, - "More Focus (2)": 63, - "Traveler": 64, - "Patient Hunter": 65, - "Stronger Patient Hunter": 66, - "Frenzy": 67, - "Phantom Ray": 68, - "Arrow Rain": 69, - "Decimator": 70, - "Bash": 71, - "Spear Proficiency 1": 72, - "Cheaper Bash": 73, - "Double Bash": 74, - "Charge": 75, - "Heavy Impact": 76, - "Vehement": 77, - "Tougher Skin": 78, - "Uppercut": 79, - "Cheaper Charge": 80, - "War Scream": 81, - "Quadruple Bash": 87, - "Fireworks": 88, - "Half-Moon Swipe": 89, - "Flyby Jab": 90, - "Flaming Uppercut": 91, - "Iron Lungs": 92, - "Generalist": 93, - "Counter": 94, - "Mantle of the Bovemists": 95, - "Bak'al's Grasp": 96, - "Spear Proficiency 2": 97, - "Cheaper Uppercut": 98, - "Aerodynamics": 99, - "Provoke": 100, - "Precise Strikes": 101, - "Air Shout": 102, - "Enraged Blow": 103, - "Flying Kick": 104, - "Stronger Mantle": 105, - "Manachism": 106, - "Boiling Blood": 107, - "Ragnarokkr": 108, - "Ambidextrous": 109, - "Burning Heart": 110, - "Stronger Bash": 111, - "Intoxicating Blood": 112, - "Comet": 113, - "Collide": 114, - "Rejuvenating Skin": 115, - "Uncontainable Corruption": 116, - "Radiant Devotee": 117, - "Whirlwind Strike": 118, - "Mythril Skin": 119, - "Armour Breaker": 120, - "Shield Strike": 121, - "Sparkling Hope": 122, - "Massive Bash": 123, - "Tempest": 124, - "Spirit of the Rabbit": 125, - "Massacre": 126, - "Axe Kick": 127, - "Radiance": 128, - "Cheaper Bash 2": 129, - "Cheaper War Scream": 130, - "Discombobulate": 131, - "Thunderclap": 132, - "Cyclone": 133, - "Second Chance": 134, - "Blood Pact": 135, - "Haemorrhage": 136, - "Brink of Madness": 137, - "Cheaper Uppercut 2": 138, - "Martyr": 139 -} \ No newline at end of file diff --git a/py_script/atree-generateID.py b/py_script/atree-generateID.py index 4355e72..4657cf1 100644 --- a/py_script/atree-generateID.py +++ b/py_script/atree-generateID.py @@ -11,6 +11,8 @@ abilDict = {} with open("atree-parse.json") as f: data = json.loads(f.read()) for classType, info in data.items(): + #reset IDs for every class and start at 1 + id = 1 for abil in info: abilDict[abil["display_name"]] = id id += 1 @@ -32,4 +34,4 @@ with open("atree-parse.json") as f: data[classType] = info with open('atree-constants-id.json', 'w', encoding='utf-8') as abil_dest: - json.dump(data, abil_dest, ensure_ascii=False, indent=4) + json.dump(data, abil_dest, ensure_ascii=False, indent=4) \ No newline at end of file diff --git a/py_script/atree-ids.json b/py_script/atree-ids.json new file mode 100644 index 0000000..16db827 --- /dev/null +++ b/py_script/atree-ids.json @@ -0,0 +1,146 @@ +{ + "Archer": { + "Arrow Shield": 1, + "Escape": 2, + "Arrow Bomb": 3, + "Heart Shatter": 4, + "Fire Creep": 5, + "Bryophyte Roots": 6, + "Nimble String": 7, + "Arrow Storm": 8, + "Guardian Angels": 9, + "Windy Feet": 10, + "Basaltic Trap": 11, + "Windstorm": 12, + "Grappling Hook": 13, + "Implosion": 14, + "Twain's Arc": 15, + "Fierce Stomp": 16, + "Scorched Earth": 17, + "Leap": 18, + "Shocking Bomb": 19, + "Mana Trap": 20, + "Escape Artist": 21, + "Initiator": 22, + "Call of the Hound": 23, + "Arrow Hurricane": 24, + "Geyser Stomp": 25, + "Crepuscular Ray": 26, + "Grape Bomb": 27, + "Tangled Traps": 28, + "Snow Storm": 29, + "All-Seeing Panoptes": 30, + "Minefield": 31, + "Bow Proficiency I": 32, + "Cheaper Arrow Bomb": 33, + "Cheaper Arrow Storm": 34, + "Cheaper Escape": 35, + "Earth Mastery": 36, + "Thunder Mastery": 37, + "Water Mastery": 38, + "Air Mastery": 39, + "Fire Mastery": 40, + "More Shields": 41, + "Stormy Feet": 42, + "Refined Gunpowder": 43, + "More Traps": 44, + "Better Arrow Shield": 45, + "Better Leap": 46, + "Better Guardian Angels": 47, + "Cheaper Arrow Storm (2)": 48, + "Precise Shot": 49, + "Cheaper Arrow Shield": 50, + "Rocket Jump": 51, + "Cheaper Escape (2)": 52, + "Stronger Hook": 53, + "Cheaper Arrow Bomb (2)": 54, + "Bouncing Bomb": 55, + "Homing Shots": 56, + "Shrapnel Bomb": 57, + "Elusive": 58, + "Double Shots": 59, + "Triple Shots": 60, + "Power Shots": 61, + "Focus": 62, + "More Focus": 63, + "More Focus (2)": 64, + "Traveler": 65, + "Patient Hunter": 66, + "Stronger Patient Hunter": 67, + "Frenzy": 68, + "Phantom Ray": 69, + "Arrow Rain": 70, + "Decimator": 71 + }, + "Warrior": { + "Bash": 1, + "Spear Proficiency 1": 2, + "Cheaper Bash": 3, + "Double Bash": 4, + "Charge": 5, + "Heavy Impact": 6, + "Vehement": 7, + "Tougher Skin": 8, + "Uppercut": 9, + "Cheaper Charge": 10, + "War Scream": 11, + "Earth Mastery": 12, + "Thunder Mastery": 13, + "Water Mastery": 14, + "Air Mastery": 15, + "Fire Mastery": 16, + "Quadruple Bash": 17, + "Fireworks": 18, + "Half-Moon Swipe": 19, + "Flyby Jab": 20, + "Flaming Uppercut": 21, + "Iron Lungs": 22, + "Generalist": 23, + "Counter": 24, + "Mantle of the Bovemists": 25, + "Bak'al's Grasp": 26, + "Spear Proficiency 2": 27, + "Cheaper Uppercut": 28, + "Aerodynamics": 29, + "Provoke": 30, + "Precise Strikes": 31, + "Air Shout": 32, + "Enraged Blow": 33, + "Flying Kick": 34, + "Stronger Mantle": 35, + "Manachism": 36, + "Boiling Blood": 37, + "Ragnarokkr": 38, + "Ambidextrous": 39, + "Burning Heart": 40, + "Stronger Bash": 41, + "Intoxicating Blood": 42, + "Comet": 43, + "Collide": 44, + "Rejuvenating Skin": 45, + "Uncontainable Corruption": 46, + "Radiant Devotee": 47, + "Whirlwind Strike": 48, + "Mythril Skin": 49, + "Armour Breaker": 50, + "Shield Strike": 51, + "Sparkling Hope": 52, + "Massive Bash": 53, + "Tempest": 54, + "Spirit of the Rabbit": 55, + "Massacre": 56, + "Axe Kick": 57, + "Radiance": 58, + "Cheaper Bash 2": 59, + "Cheaper War Scream": 60, + "Discombobulate": 61, + "Thunderclap": 62, + "Cyclone": 63, + "Second Chance": 64, + "Blood Pact": 65, + "Haemorrhage": 66, + "Brink of Madness": 67, + "Cheaper Uppercut 2": 68, + "Martyr": 69 + } +} \ No newline at end of file diff --git a/py_script/atree-parse.json b/py_script/atree-parse.json new file mode 100644 index 0000000..7eabec7 --- /dev/null +++ b/py_script/atree-parse.json @@ -0,0 +1,4967 @@ +{ + "Archer": [ + { + "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": [ + 60, + 34 + ], + "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 + } + } + ] + } + ], + "id": 0 + }, + { + "display_name": "Escape", + "desc": "Throw yourself backward to avoid danger. (Hold shift while escaping to cancel)", + "archetype": "", + "archetype_req": 0, + "parents": [ + 3 + ], + "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 + } + } + ] + } + ], + "id": 1 + }, + { + "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 + } + } + ] + } + ], + "id": 2 + }, + { + "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": [ + 31 + ], + "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 + ] + }, + {} + ], + "id": 3 + }, + { + "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": [ + 68, + 86, + 5 + ], + "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 + } + } + ], + "id": 4 + }, + { + "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": [ + 4, + 82 + ], + "dependencies": [ + 7 + ], + "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 + ] + } + ], + "id": 5 + }, + { + "display_name": "Nimble String", + "desc": "Arrow Storm throw out +8 arrows per stream and shoot twice as fast.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 83, + 69 + ], + "dependencies": [ + 7 + ], + "blockers": [ + 68 + ], + "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 + } + } + ], + "id": 6 + }, + { + "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": [ + 58, + 34 + ], + "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 + } + } + ] + } + ], + "id": 7 + }, + { + "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": [ + 59, + 67 + ], + "dependencies": [ + 0 + ], + "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 + } + } + ] + } + ], + "id": 8 + }, + { + "display_name": "Windy Feet", + "base_abil": "Escape", + "desc": "When casting Escape, give speed to yourself and nearby allies.", + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": [ + 7 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 10, + "col": 1 + }, + "properties": { + "aoe": 8, + "duration": 120 + }, + "type": "stat_bonus", + "bonuses": [ + { + "type": "stat", + "name": "spd", + "value": 20 + } + ], + "id": 9 + }, + { + "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": [ + 5 + ], + "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 + ] + } + ], + "id": 10 + }, + { + "display_name": "Windstorm", + "desc": "Arrow Storm shoot +1 stream of arrows, effectively doubling its damage.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 8, + 33 + ], + "dependencies": [], + "blockers": [ + 68 + ], + "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 + } + } + ], + "id": 11 + }, + { + "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": [ + 61, + 40, + 33 + ], + "dependencies": [], + "blockers": [ + 20 + ], + "cost": 2, + "display": { + "row": 21, + "col": 5 + }, + "properties": { + "range": 20 + }, + "effects": [], + "id": 12 + }, + { + "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": [ + 12, + 40 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 22, + "col": 6 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Arrow Bomb", + "cost": 0, + "multipliers": [ + 40, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "id": 13 + }, + { + "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": [ + 62, + 64 + ], + "dependencies": [ + 61 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 25, + "col": 4 + }, + "properties": { + "range": 64, + "focusReq": 2 + }, + "effects": [ + { + "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 + ] + } + ] + } + ], + "id": 14 + }, + { + "display_name": "Fierce Stomp", + "desc": "When using Escape, hold shift to quickly drop down and deal damage.", + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": [ + 42, + 64 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 26, + "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 + } + } + ], + "id": 15 + }, + { + "display_name": "Scorched Earth", + "desc": "Fire Creep become much stronger.", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 14 + ], + "dependencies": [ + 4 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 26, + "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 + ] + } + ], + "id": 16 + }, + { + "display_name": "Leap", + "desc": "When you double tap jump, leap foward. (2s Cooldown)", + "archetype": "Boltslinger", + "archetype_req": 5, + "parents": [ + 42, + 55 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 28, + "col": 0 + }, + "properties": { + "cooldown": 2 + }, + "effects": [], + "id": 17 + }, + { + "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": [ + 14, + 44, + 55 + ], + "dependencies": [ + 2 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 28, + "col": 4 + }, + "properties": { + "gravity": 0 + }, + "effects": [ + { + "type": "convert_spell_conv", + "target_part": "all", + "conversion": "thunder" + } + ], + "id": 18 + }, + { + "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": [ + 43, + 44 + ], + "dependencies": [ + 4 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 28, + "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 + ] + } + ], + "id": 19 + }, + { + "display_name": "Escape Artist", + "desc": "When casting Escape, release 100 arrows towards the ground.", + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": [ + 46, + 17 + ], + "dependencies": [], + "blockers": [ + 12 + ], + "cost": 2, + "display": { + "row": 31, + "col": 0 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "target_part": "Escape Artist", + "cost": 0, + "multipliers": [ + 30, + 0, + 10, + 0, + 0, + 0 + ] + } + ], + "id": 20 + }, + { + "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": [ + 18, + 44, + 47 + ], + "dependencies": [ + 61 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 31, + "col": 5 + }, + "properties": { + "focus": 1, + "timer": 5 + }, + "type": "stat_bonus", + "bonuses": [ + { + "type": "stat", + "name": "damPct", + "value": 50 + } + ], + "id": 21 + }, + { + "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": [ + 21, + 47 + ], + "dependencies": [ + 0 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 32, + "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 + ] + } + ], + "id": 22 + }, + { + "display_name": "Arrow Hurricane", + "desc": "Arrow Storm will shoot +2 stream of arrows.", + "archetype": "Boltslinger", + "archetype_req": 8, + "parents": [ + 48, + 20 + ], + "dependencies": [], + "blockers": [ + 68 + ], + "cost": 2, + "display": { + "row": 33, + "col": 0 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "target_part": "Total Damage", + "cost": 0, + "hits": { + "Single Stream": 2 + } + } + ], + "id": 23 + }, + { + "display_name": "Geyser Stomp", + "desc": "Fierce Stomp will create geysers, dealing more damage and vertical knockback.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 56 + ], + "dependencies": [ + 15 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 37, + "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 + ] + } + ], + "id": 24 + }, + { + "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": [ + 49 + ], + "dependencies": [ + 7 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 37, + "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 + } + } + ] + } + ], + "id": 25 + }, + { + "display_name": "Grape Bomb", + "desc": "Arrow bomb will throw 3 additional smaller bombs when exploding.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 51 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 37, + "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 + ] + } + ], + "id": 26 + }, + { + "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": [ + 26 + ], + "dependencies": [ + 10 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 38, + "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 + ] + } + ], + "id": 27 + }, + { + "display_name": "Snow Storm", + "desc": "Enemies near you will be slowed down.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 24, + 63 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 39, + "col": 2 + }, + "properties": { + "range": 2.5, + "slowness": 0.3 + }, + "id": 28 + }, + { + "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": [ + 28 + ], + "dependencies": [ + 8 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 40, + "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 + } + } + ], + "id": 29 + }, + { + "display_name": "Minefield", + "desc": "Allow you to place +6 Traps, but with reduced damage and range.", + "archetype": "Trapper", + "archetype_req": 10, + "parents": [ + 26, + 53 + ], + "dependencies": [ + 10 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 40, + "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 + ] + } + ], + "id": 30 + }, + { + "display_name": "Bow Proficiency I", + "desc": "Improve your Main Attack's damage and range when using a bow.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 2 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 2, + "col": 4 + }, + "properties": { + "mainAtk_range": 6 + }, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "mdPct", + "value": 5 + } + ] + } + ], + "id": 31 + }, + { + "display_name": "Cheaper Arrow Bomb", + "desc": "Reduce the Mana cost of Arrow Bomb.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 31 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 2, + "col": 6 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "cost": -10 + } + ], + "id": 32 + }, + { + "display_name": "Cheaper Arrow Storm", + "desc": "Reduce the Mana cost of Arrow Storm.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 12, + 11, + 61 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 21, + "col": 3 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "cost": -5 + } + ], + "id": 33 + }, + { + "display_name": "Cheaper Escape", + "desc": "Reduce the Mana cost of Escape.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 7, + 0 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 9, + "col": 4 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "cost": -5 + } + ], + "id": 34 + }, + { + "display_name": "Earth Mastery", + "desc": "Increases your base damage from all Earth attacks", + "archetype": "Trapper", + "archetype_req": 0, + "parents": [ + 0 + ], + "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 + ] + } + ] + } + ], + "id": 82 + }, + { + "display_name": "Thunder Mastery", + "desc": "Increases your base damage from all Thunder attacks", + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": [ + 7, + 86, + 34 + ], + "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 + ] + } + ] + } + ], + "id": 83 + }, + { + "display_name": "Water Mastery", + "desc": "Increases your base damage from all Water attacks", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 34, + 83, + 86 + ], + "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 + ] + } + ] + } + ], + "id": 84 + }, + { + "display_name": "Air Mastery", + "desc": "Increases base damage from all Air attacks", + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": [ + 7 + ], + "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 + ] + } + ] + } + ], + "id": 85 + }, + { + "display_name": "Fire Mastery", + "desc": "Increases base damage from all Earth attacks", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 83, + 0, + 34 + ], + "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 + ] + } + ] + } + ], + "id": 86 + }, + { + "display_name": "More Shields", + "desc": "Give +2 charges to Arrow Shield.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 12, + 10 + ], + "dependencies": [ + 0 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 21, + "col": 7 + }, + "properties": { + "shieldCharges": 2 + }, + "id": 40 + }, + { + "display_name": "Stormy Feet", + "desc": "Windy Feet will last longer and add more speed.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 11 + ], + "dependencies": [ + 9 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 23, + "col": 1 + }, + "properties": { + "duration": 60 + }, + "effects": [ + { + "type": "stat_bonus", + "bonuses": [ + { + "type": "stat", + "name": "spdPct", + "value": 20 + } + ] + } + ], + "id": 41 + }, + { + "display_name": "Refined Gunpowder", + "desc": "Increase the damage of Arrow Bomb.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 11 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 25, + "col": 0 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Arrow Bomb", + "cost": 0, + "multipliers": [ + 50, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "id": 42 + }, + { + "display_name": "More Traps", + "desc": "Increase the maximum amount of active Traps you can have by +2.", + "archetype": "Trapper", + "archetype_req": 10, + "parents": [ + 54 + ], + "dependencies": [ + 10 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 26, + "col": 8 + }, + "properties": { + "traps": 2 + }, + "id": 43 + }, + { + "display_name": "Better Arrow Shield", + "desc": "Arrow Shield will gain additional area of effect, knockback and damage.", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 19, + 18, + 14 + ], + "dependencies": [ + 0 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 28, + "col": 6 + }, + "properties": { + "aoe": 1 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Arrow Shield", + "multipliers": [ + 40, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "id": 44 + }, + { + "display_name": "Better Leap", + "desc": "Reduce leap's cooldown by 1s.", + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": [ + 17, + 55 + ], + "dependencies": [ + 17 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 29, + "col": 1 + }, + "properties": { + "cooldown": -1 + }, + "id": 45 + }, + { + "display_name": "Better Guardian Angels", + "desc": "Your Guardian Angels can shoot +4 arrows before disappearing.", + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": [ + 20, + 55 + ], + "dependencies": [ + 8 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 31, + "col": 2 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 4, + "target_part": "Single Bow", + "cost": 0, + "hits": { + "Single Arrow": 4 + } + } + ], + "id": 46 + }, + { + "display_name": "Cheaper Arrow Storm (2)", + "desc": "Reduce the Mana cost of Arrow Storm.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 21, + 19 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 31, + "col": 8 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "cost": -5 + } + ], + "id": 47 + }, + { + "display_name": "Precise Shot", + "desc": "+30% Critical Hit Damage", + "archetype": "", + "archetype_req": 0, + "parents": [ + 46, + 49, + 23 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 33, + "col": 2 + }, + "properties": { + "mainAtk_range": 6 + }, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "mdCritPct", + "value": 30 + } + ] + } + ], + "id": 48 + }, + { + "display_name": "Cheaper Arrow Shield", + "desc": "Reduce the Mana cost of Arrow Shield.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 48, + 21 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 33, + "col": 4 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 4, + "cost": -5 + } + ], + "id": 49 + }, + { + "display_name": "Rocket Jump", + "desc": "Arrow Bomb's self-damage will knockback you farther away.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 47, + 21 + ], + "dependencies": [ + 2 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 33, + "col": 6 + }, + "properties": {}, + "id": 50 + }, + { + "display_name": "Cheaper Escape (2)", + "desc": "Reduce the Mana cost of Escape.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 22, + 70 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 34, + "col": 7 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "cost": -5 + } + ], + "id": 51 + }, + { + "display_name": "Stronger Hook", + "desc": "Increase your Grappling Hook's range, speed and strength.", + "archetype": "Trapper", + "archetype_req": 5, + "parents": [ + 51 + ], + "dependencies": [ + 12 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 35, + "col": 8 + }, + "properties": { + "range": 8 + }, + "id": 52 + }, + { + "display_name": "Cheaper Arrow Bomb (2)", + "desc": "Reduce the Mana cost of Arrow Bomb.", + "archetype": "", + "archetype_req": 0, + "parents": [ + 63, + 30 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 40, + "col": 5 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "cost": -5 + } + ], + "id": 53 + }, + { + "display_name": "Bouncing Bomb", + "desc": "Arrow Bomb will bounce once when hitting a block or enemy", + "archetype": "", + "archetype_req": 0, + "parents": [ + 40 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 25, + "col": 7 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Total Damage", + "cost": 0, + "hits": { + "Arrow Bomb": 2 + } + } + ], + "id": 54 + }, + { + "display_name": "Homing Shots", + "desc": "Your Main Attack arrows will follow nearby enemies and not be affected by gravity", + "archetype": "", + "archetype_req": 0, + "parents": [ + 17, + 18 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 28, + "col": 2 + }, + "properties": {}, + "effects": [], + "id": 55 + }, + { + "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": [ + 23, + 48 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 34, + "col": 1 + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Shrapnel Bomb", + "cost": 0, + "multipliers": [ + 40, + 0, + 0, + 0, + 20, + 0 + ] + } + ], + "id": 56 + }, + { + "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": [ + 24 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 38, + "col": 0 + }, + "properties": {}, + "effects": [], + "id": 57 + }, + { + "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": [ + 1 + ], + "dependencies": [], + "blockers": [ + 60 + ], + "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 + } + ], + "id": 58 + }, + { + "display_name": "Triple Shots", + "desc": "Triple Main Attack arrows, but they deal -20% damage per arrow", + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": [ + 69, + 67 + ], + "dependencies": [ + 58 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 17, + "col": 0 + }, + "properties": { + "arrow": 2 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 0, + "target_part": "Melee Damage", + "cost": 0, + "multipliers": 0.7 + } + ], + "id": 59 + }, + { + "display_name": "Power Shots", + "desc": "Main Attack arrows have increased speed and knockback", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 1 + ], + "dependencies": [], + "blockers": [ + 58 + ], + "cost": 1, + "display": { + "row": 7, + "col": 6 + }, + "properties": {}, + "effects": [], + "id": 60 + }, + { + "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": [ + 68 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 19, + "col": 4 + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Focus", + "output": { + "type": "stat", + "abil_name": "Focus", + "name": "dmgPct" + }, + "scaling": [ + 35 + ], + "max": 3 + } + ], + "id": 61 + }, + { + "display_name": "More Focus", + "desc": "Add +2 max Focus", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 33, + 12 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 22, + "col": 4 + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Focus", + "output": { + "type": "stat", + "abil_name": "Focus", + "name": "dmgPct" + }, + "scaling": [ + 35 + ], + "max": 5 + } + ], + "id": 62 + }, + { + "display_name": "More Focus (2)", + "desc": "Add +2 max Focus", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 25, + 28 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 39, + "col": 4 + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Focus", + "output": { + "type": "stat", + "abil_name": "Focus", + "name": "dmgPct" + }, + "scaling": [ + 35 + ], + "max": 7 + } + ], + "id": 63 + }, + { + "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": [ + 42, + 14 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 25, + "col": 2 + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": false, + "inputs": [ + { + "type": "stat", + "name": "spd" + } + ], + "output": { + "type": "stat", + "name": "sdRaw" + }, + "scaling": [ + 1 + ], + "max": 100 + } + ], + "id": 64 + }, + { + "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": [ + 40 + ], + "dependencies": [ + 10 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 22, + "col": 8 + }, + "properties": { + "max": 80 + }, + "effects": [], + "id": 65 + }, + { + "display_name": "Stronger Patient Hunter", + "desc": "Add +80% Max Damage to Patient Hunter", + "archetype": "Trapper", + "archetype_req": 0, + "parents": [ + 26 + ], + "dependencies": [ + 65 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 38, + "col": 8 + }, + "properties": { + "max": 80 + }, + "effects": [], + "id": 66 + }, + { + "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": [ + 59, + 6 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 17, + "col": 2 + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Hits dealt", + "output": { + "type": "stat", + "name": "spd" + }, + "scaling": [ + 6 + ], + "max": 200 + } + ], + "id": 67 + }, + { + "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": [ + 84, + 4 + ], + "dependencies": [ + 7 + ], + "blockers": [ + 11, + 6, + 23 + ], + "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 + } + } + ] + } + ], + "id": 68 + }, + { + "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": [ + 6, + 85 + ], + "dependencies": [ + 0 + ], + "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 + ] + } + ], + "id": 69 + }, + { + "display_name": "Decimator", + "desc": "Phantom Ray will increase its damage by 10% everytime you do not miss with it (Max 50%)", + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": [ + 49 + ], + "dependencies": [ + 68 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 34, + "col": 5 + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Phantom Ray hits", + "output": { + "type": "stat", + "name": "PhRayDmg" + }, + "scaling": 10, + "max": 50 + } + ], + "id": 70 + } + ], + "Warrior": [ + { + "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, + "icon": "node_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 + } + } + ] + } + ], + "id": 71 + }, + { + "display_name": "Spear Proficiency 1", + "desc": "Improve your Main Attack's damage and range w/ spear", + "archetype": "", + "archetype_req": 0, + "parents": [ + 71 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 2, + "col": 4, + "icon": "node_0" + }, + "properties": { + "melee_range": 1 + }, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "mdPct", + "value": 5 + } + ] + } + ], + "id": 72 + }, + { + "display_name": "Cheaper Bash", + "desc": "Reduce the Mana cost of Bash", + "archetype": "", + "archetype_req": 0, + "parents": [ + 72 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 2, + "col": 2, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "cost": -10 + } + ], + "id": 73 + }, + { + "display_name": "Double Bash", + "desc": "Bash will hit a second time at a farther range", + "archetype": "", + "archetype_req": 0, + "parents": [ + 72 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 4, + "col": 4, + "icon": "node_1" + }, + "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 + ] + } + ], + "id": 74 + }, + { + "display_name": "Charge", + "desc": "Charge forward at high speed (hold shift to cancel)", + "archetype": "", + "archetype_req": 0, + "parents": [ + 74 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 6, + "col": 4, + "icon": "node_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 + } + } + ] + } + ], + "id": 75 + }, + { + "display_name": "Heavy Impact", + "desc": "After using Charge, violently crash down into the ground and deal damage", + "archetype": "", + "archetype_req": 0, + "parents": [ + 79 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 9, + "col": 1, + "icon": "node_1" + }, + "properties": { + "aoe": 4 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "target_part": "Heavy Impact", + "cost": 0, + "multipliers": [ + 100, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "id": 76 + }, + { + "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": [ + 75 + ], + "dependencies": [], + "blockers": [ + 78 + ], + "cost": 1, + "display": { + "row": 6, + "col": 2, + "icon": "node_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 + } + ], + "id": 77 + }, + { + "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": [ + 75 + ], + "dependencies": [], + "blockers": [ + 77 + ], + "cost": 1, + "display": { + "row": 6, + "col": 6, + "icon": "node_0" + }, + "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 + } + ], + "id": 78 + }, + { + "display_name": "Uppercut", + "desc": "Rocket enemies in the air and deal massive damage", + "archetype": "", + "archetype_req": 0, + "parents": [ + 77 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 8, + "col": 2, + "icon": "node_4" + }, + "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 + } + } + ] + } + ], + "id": 79 + }, + { + "display_name": "Cheaper Charge", + "desc": "Reduce the Mana cost of Charge", + "archetype": "", + "archetype_req": 0, + "parents": [ + 79, + 81 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 8, + "col": 4, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "cost": -5 + } + ], + "id": 80 + }, + { + "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": [ + 78 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 8, + "col": 6, + "icon": "node_4" + }, + "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 + ] + } + ] + } + ], + "id": 81 + }, + { + "display_name": "Earth Mastery", + "desc": "Increases base damage from all Earth attacks", + "archetype": "Fallen", + "archetype_req": 0, + "parents": [ + 79 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 10, + "col": 0, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "eDamPct", + "value": 20 + }, + { + "type": "stat", + "name": "eDam", + "value": [ + 2, + 4 + ] + } + ] + } + ], + "id": 82 + }, + { + "display_name": "Thunder Mastery", + "desc": "Increases base damage from all Thunder attacks", + "archetype": "Fallen", + "archetype_req": 0, + "parents": [ + 79, + 85, + 80 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 10, + "col": 2, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "tDamPct", + "value": 10 + }, + { + "type": "stat", + "name": "tDam", + "value": [ + 1, + 8 + ] + } + ] + } + ], + "id": 83 + }, + { + "display_name": "Water Mastery", + "desc": "Increases base damage from all Water attacks", + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": [ + 80, + 83, + 85 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 11, + "col": 4, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "wDamPct", + "value": 15 + }, + { + "type": "stat", + "name": "wDam", + "value": [ + 2, + 4 + ] + } + ] + } + ], + "id": 84 + }, + { + "display_name": "Air Mastery", + "desc": "Increases base damage from all Air attacks", + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": [ + 81, + 83, + 80 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 10, + "col": 6, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "aDamPct", + "value": 15 + }, + { + "type": "stat", + "name": "aDam", + "value": [ + 3, + 4 + ] + } + ] + } + ], + "id": 85 + }, + { + "display_name": "Fire Mastery", + "desc": "Increases base damage from all Earth attacks", + "archetype": "Paladin", + "archetype_req": 0, + "parents": [ + 81 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 10, + "col": 8, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "fDamPct", + "value": 15 + }, + { + "type": "stat", + "name": "fDam", + "value": [ + 3, + 5 + ] + } + ] + } + ], + "id": 86 + }, + { + "display_name": "Quadruple Bash", + "desc": "Bash will hit 4 times at an even larger range", + "archetype": "Fallen", + "archetype_req": 0, + "parents": [ + 82, + 88 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 12, + "col": 0, + "icon": "node_1" + }, + "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 + ] + } + ], + "id": 87 + }, + { + "display_name": "Fireworks", + "desc": "Mobs hit by Uppercut will explode mid-air and receive additional damage", + "archetype": "Fallen", + "archetype_req": 0, + "parents": [ + 83, + 87 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 12, + "col": 2, + "icon": "node_1" + }, + "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 + } + } + ], + "id": 88 + }, + { + "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": [ + 84 + ], + "dependencies": [ + 79 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 13, + "col": 4, + "icon": "node_1" + }, + "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" + } + ], + "id": 89 + }, + { + "display_name": "Flyby Jab", + "desc": "Damage enemies in your way when using Charge", + "archetype": "", + "archetype_req": 0, + "parents": [ + 85, + 91 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 12, + "col": 6, + "icon": "node_1" + }, + "properties": { + "aoe": 2 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "target_part": "Flyby Jab", + "cost": 0, + "multipliers": [ + 20, + 0, + 0, + 0, + 0, + 40 + ] + } + ], + "id": 90 + }, + { + "display_name": "Flaming Uppercut", + "desc": "Uppercut will light mobs on fire, dealing damage every 0.6 seconds", + "archetype": "Paladin", + "archetype_req": 0, + "parents": [ + 86, + 90 + ], + "dependencies": [ + 79 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 12, + "col": 8, + "icon": "node_1" + }, + "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 + } + } + ], + "id": 91 + }, + { + "display_name": "Iron Lungs", + "desc": "War Scream deals more damage", + "archetype": "", + "archetype_req": 0, + "parents": [ + 90, + 91 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 13, + "col": 7, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 4, + "target_part": "War Scream", + "cost": 0, + "multipliers": [ + 30, + 0, + 0, + 0, + 0, + 30 + ] + } + ], + "id": 92 + }, + { + "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": [ + 94 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 15, + "col": 2, + "icon": "node_3" + }, + "properties": {}, + "effects": [], + "id": 93 + }, + { + "display_name": "Counter", + "desc": "When dodging a nearby enemy attack, get 30% chance to instantly attack back", + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": [ + 89 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 15, + "col": 4, + "icon": "node_1" + }, + "properties": { + "chance": 30 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 5, + "target_part": "Counter", + "cost": 0, + "multipliers": [ + 60, + 0, + 20, + 0, + 0, + 20 + ] + } + ], + "id": 94 + }, + { + "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": [ + 92 + ], + "dependencies": [ + 81 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 15, + "col": 7, + "icon": "node_3" + }, + "properties": { + "mantle_charge": 3 + }, + "effects": [], + "id": 95 + }, + { + "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": [ + 87, + 88 + ], + "dependencies": [ + 81 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 16, + "col": 1, + "icon": "node_3" + }, + "properties": { + "cooldown": 15 + }, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Corrupted", + "output": { + "type": "stat", + "name": "raw" + }, + "scaling": [ + 4 + ], + "slider_step": 2, + "max": 120 + } + ], + "id": 96 + }, + { + "display_name": "Spear Proficiency 2", + "desc": "Improve your Main Attack's damage and range w/ spear", + "archetype": "", + "archetype_req": 0, + "parents": [ + 96, + 98 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 17, + "col": 0, + "icon": "node_0" + }, + "properties": { + "melee_range": 1 + }, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "mdPct", + "value": 5 + } + ] + } + ], + "id": 97 + }, + { + "display_name": "Cheaper Uppercut", + "desc": "Reduce the Mana Cost of Uppercut", + "archetype": "", + "archetype_req": 0, + "parents": [ + 97, + 99, + 94 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 17, + "col": 3, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "cost": -5 + } + ], + "id": 98 + }, + { + "display_name": "Aerodynamics", + "desc": "During Charge, you can steer and change direction", + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": [ + 98, + 100 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 17, + "col": 5, + "icon": "node_1" + }, + "properties": {}, + "effects": [], + "id": 99 + }, + { + "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": [ + 99, + 95 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 17, + "col": 7, + "icon": "node_1" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 4, + "cost": -5 + } + ], + "id": 100 + }, + { + "display_name": "Precise Strikes", + "desc": "+30% Critical Hit Damage", + "archetype": "", + "archetype_req": 0, + "parents": [ + 98, + 97 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 18, + "col": 2, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "critDmg", + "value": 30 + } + ] + } + ], + "id": 101 + }, + { + "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": [ + 99, + 100 + ], + "dependencies": [ + 81 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 18, + "col": 6, + "icon": "node_1" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 4, + "target_part": "Air Shout", + "cost": 0, + "multipliers": [ + 20, + 0, + 0, + 0, + 0, + 5 + ] + } + ], + "id": 102 + }, + { + "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": [ + 97 + ], + "dependencies": [ + 96 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 20, + "col": 0, + "icon": "node_2" + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": false, + "inputs": [ + { + "type": "stat", + "name": "hpBonus" + } + ], + "output": { + "type": "stat", + "name": "dmgPct" + }, + "scaling": [ + 2 + ], + "max": 200 + } + ], + "id": 103 + }, + { + "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": [ + 98, + 105 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 20, + "col": 3, + "icon": "node_1" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "target_part": "Flying Kick", + "cost": 0, + "multipliers": [ + 120, + 0, + 0, + 10, + 0, + 20 + ] + } + ], + "id": 104 + }, + { + "display_name": "Stronger Mantle", + "desc": "Add +2 additional charges to Mantle of the Bovemists", + "archetype": "Paladin", + "archetype_req": 0, + "parents": [ + 106, + 104 + ], + "dependencies": [ + 95 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 20, + "col": 6, + "icon": "node_0" + }, + "properties": { + "mantle_charge": 2 + }, + "effects": [], + "id": 105 + }, + { + "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": [ + 105, + 100 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 20, + "col": 8, + "icon": "node_2" + }, + "properties": { + "cooldown": 1 + }, + "effects": [], + "id": 106 + }, + { + "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": [ + 103, + 108 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 22, + "col": 0, + "icon": "node_1" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "target_part": "Boiling Blood", + "cost": 0, + "multipliers": [ + 25, + 0, + 0, + 0, + 5, + 0 + ] + } + ], + "id": 107 + }, + { + "display_name": "Ragnarokkr", + "desc": "War Scream become deafening, increasing its range and giving damage bonus to players", + "archetype": "Fallen", + "archetype_req": 0, + "parents": [ + 107, + 104 + ], + "dependencies": [ + 81 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 22, + "col": 2, + "icon": "node_2" + }, + "properties": { + "damage_bonus": 30, + "aoe": 2 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 4, + "cost": 10 + } + ], + "id": 108 + }, + { + "display_name": "Ambidextrous", + "desc": "Increase your chance to attack with Counter by +30%", + "archetype": "", + "archetype_req": 0, + "parents": [ + 104, + 105, + 110 + ], + "dependencies": [ + 94 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 22, + "col": 4, + "icon": "node_0" + }, + "properties": { + "chance": 30 + }, + "effects": [], + "id": 109 + }, + { + "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": [ + 109, + 111 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 22, + "col": 6, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": false, + "inputs": [ + { + "type": "stat", + "name": "hpBonus" + } + ], + "output": { + "type": "stat", + "name": "fDamPct" + }, + "scaling": [ + 2 + ], + "max": 100, + "slider_step": 100 + } + ], + "id": 110 + }, + { + "display_name": "Stronger Bash", + "desc": "Increase the damage of Bash", + "archetype": "", + "archetype_req": 0, + "parents": [ + 110, + 106 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 22, + "col": 8, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "target_part": "Single Hit", + "cost": 0, + "multipliers": [ + 30, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "id": 111 + }, + { + "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": [ + 108, + 107 + ], + "dependencies": [ + 96 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 23, + "col": 1, + "icon": "node_1" + }, + "properties": {}, + "effects": [], + "id": 112 + }, + { + "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": [ + 108 + ], + "dependencies": [ + 88 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 24, + "col": 2, + "icon": "node_1" + }, + "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 + } + } + ], + "id": 113 + }, + { + "display_name": "Collide", + "desc": "Mobs thrown into walls from Flying Kick will explode and receive additonal damage", + "archetype": "Battle Monk", + "archetype_req": 4, + "parents": [ + 109, + 110 + ], + "dependencies": [ + 104 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 23, + "col": 5, + "icon": "node_1" + }, + "properties": { + "aoe": 4 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "target_part": "Collide", + "cost": 0, + "multipliers": [ + 100, + 0, + 0, + 0, + 50, + 0 + ] + } + ], + "id": 114 + }, + { + "display_name": "Rejuvenating Skin", + "desc": "Regain back 30% of the damage you take as healing over 30s", + "archetype": "Paladin", + "archetype_req": 0, + "parents": [ + 110, + 111 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 23, + "col": 7, + "icon": "node_3" + }, + "properties": {}, + "effects": [], + "id": 115 + }, + { + "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": [ + 107, + 117 + ], + "dependencies": [ + 96 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 26, + "col": 0, + "icon": "node_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 + } + ], + "id": 116 + }, + { + "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": [ + 118, + 116 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 26, + "col": 2, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "inputs": [ + { + "type": "stat", + "name": "ref" + } + ], + "output": { + "type": "stat", + "name": "mr" + }, + "scaling": [ + 1 + ], + "max": 10, + "slider_step": 4 + } + ], + "id": 117 + }, + { + "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": [ + 109, + 117 + ], + "dependencies": [ + 79 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 26, + "col": 4, + "icon": "node_1" + }, + "properties": { + "range": 2 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Uppercut", + "cost": 0, + "multipliers": [ + 0, + 0, + 0, + 0, + 0, + 50 + ] + } + ], + "id": 118 + }, + { + "display_name": "Mythril Skin", + "desc": "Gain +5% Base Resistance and become immune to knockback", + "archetype": "Paladin", + "archetype_req": 6, + "parents": [ + 115 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 26, + "col": 7, + "icon": "node_1" + }, + "properties": {}, + "effects": [ + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "baseResist", + "value": 5 + } + ] + } + ], + "id": 119 + }, + { + "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": [ + 116, + 117 + ], + "dependencies": [ + 96 + ], + "blockers": [], + "cost": 2, + "display": { + "row": 27, + "col": 1, + "icon": "node_2" + }, + "properties": { + "duration": 5 + }, + "effects": [], + "id": 120 + }, + { + "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": [ + 119, + 122 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 27, + "col": 6, + "icon": "node_1" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 5, + "target_part": "Shield Strike", + "cost": 0, + "multipliers": [ + 60, + 0, + 20, + 0, + 0, + 0 + ] + } + ], + "id": 121 + }, + { + "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": [ + 119 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 27, + "col": 8, + "icon": "node_2" + }, + "properties": { + "aoe": 6 + }, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 5, + "target_part": "Sparkling Hope", + "cost": 0, + "multipliers": [ + 10, + 0, + 5, + 0, + 0, + 0 + ] + } + ], + "id": 122 + }, + { + "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": [ + 124, + 116 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 28, + "col": 0, + "icon": "node_2" + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Corrupted", + "output": { + "type": "stat", + "name": "bashAoE" + }, + "scaling": [ + 1 + ], + "max": 10, + "slider_step": 3 + } + ], + "id": 123 + }, + { + "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": [ + 123, + 125 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 28, + "col": 2, + "icon": "node_1" + }, + "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 + } + } + ], + "id": 124 + }, + { + "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": [ + 124, + 118 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 28, + "col": 4, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 2, + "cost": -5 + }, + { + "type": "raw_stat", + "bonuses": [ + { + "type": "stat", + "name": "spd", + "value": 20 + } + ] + } + ], + "id": 125 + }, + { + "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": [ + 124, + 123 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 29, + "col": 1, + "icon": "node_1" + }, + "properties": {}, + "effects": [], + "id": 126 + }, + { + "display_name": "Axe Kick", + "desc": "Increase the damage of Uppercut, but also increase its mana cost", + "archetype": "", + "archetype_req": 0, + "parents": [ + 124, + 125 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 29, + "col": 3, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Uppercut", + "cost": 10, + "multipliers": [ + 100, + 0, + 0, + 0, + 0, + 0 + ] + } + ], + "id": 127 + }, + { + "display_name": "Radiance", + "desc": "Bash will buff your allies' positive IDs. (15s Cooldown)", + "archetype": "Paladin", + "archetype_req": 2, + "parents": [ + 125, + 129 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 29, + "col": 5, + "icon": "node_2" + }, + "properties": { + "cooldown": 15 + }, + "effects": [], + "id": 128 + }, + { + "display_name": "Cheaper Bash 2", + "desc": "Reduce the Mana cost of Bash", + "archetype": "", + "archetype_req": 0, + "parents": [ + 128, + 121, + 122 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 29, + "col": 7, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "cost": -5 + } + ], + "id": 129 + }, + { + "display_name": "Cheaper War Scream", + "desc": "Reduce the Mana cost of War Scream", + "archetype": "", + "archetype_req": 0, + "parents": [ + 123 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 31, + "col": 0, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 4, + "cost": -5 + } + ], + "id": 130 + }, + { + "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": [ + 133 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 31, + "col": 2, + "icon": "node_3" + }, + "properties": {}, + "effects": [ + { + "type": "stat_scaling", + "slider": true, + "slider_name": "Hits dealt", + "output": { + "type": "stat", + "name": "rainrawButDifferent" + }, + "scaling": [ + 2 + ], + "max": 50 + } + ], + "id": 131 + }, + { + "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": [ + 133 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 32, + "col": 5, + "icon": "node_1" + }, + "properties": {}, + "effects": [ + { + "type": "convert_spell_conv", + "target_part": "all", + "conversion": "thunder" + }, + { + "type": "raw_stat", + "bonuses": [ + { + "type": "prop", + "abil_name": "Bash", + "name": "aoe", + "value": 3 + } + ] + } + ], + "id": 132 + }, + { + "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": [ + 125 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 31, + "col": 4, + "icon": "node_1" + }, + "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 + } + } + ], + "id": 133 + }, + { + "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": [ + 129 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 32, + "col": 7, + "icon": "node_3" + }, + "properties": {}, + "effects": [], + "id": 134 + }, + { + "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": [ + 130 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 34, + "col": 1, + "icon": "node_3" + }, + "properties": {}, + "effects": [], + "id": 135 + }, + { + "display_name": "Haemorrhage", + "desc": "Reduce Blood Pact's health cost. (0.5% health per mana)", + "archetype": "Fallen", + "archetype_req": 0, + "parents": [ + 135 + ], + "dependencies": [ + 135 + ], + "blockers": [], + "cost": 1, + "display": { + "row": 35, + "col": 2, + "icon": "node_1" + }, + "properties": {}, + "effects": [], + "id": 136 + }, + { + "display_name": "Brink of Madness", + "desc": "If your health is 25% full or less, gain +40% Resistance", + "archetype": "", + "archetype_req": 0, + "parents": [ + 135, + 138 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 35, + "col": 4, + "icon": "node_2" + }, + "properties": {}, + "effects": [], + "id": 137 + }, + { + "display_name": "Cheaper Uppercut 2", + "desc": "Reduce the Mana cost of Uppercut", + "archetype": "", + "archetype_req": 0, + "parents": [ + 134, + 137 + ], + "dependencies": [], + "blockers": [], + "cost": 1, + "display": { + "row": 35, + "col": 6, + "icon": "node_0" + }, + "properties": {}, + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 3, + "cost": -5 + } + ], + "id": 138 + }, + { + "display_name": "Martyr", + "desc": "When you receive a fatal blow, all nearby allies become invincible", + "archetype": "Paladin", + "archetype_req": 0, + "parents": [ + 134 + ], + "dependencies": [], + "blockers": [], + "cost": 2, + "display": { + "row": 35, + "col": 8, + "icon": "node_1" + }, + "properties": { + "duration": 3, + "aoe": 12 + }, + "effects": [], + "id": 139 + } + ] +} \ No newline at end of file diff --git a/textures/items/boots/boots--chain.png b/py_script/textures/items/boots/boots--chain.png similarity index 100% rename from textures/items/boots/boots--chain.png rename to py_script/textures/items/boots/boots--chain.png diff --git a/textures/items/boots/boots--diamond.png b/py_script/textures/items/boots/boots--diamond.png similarity index 100% rename from textures/items/boots/boots--diamond.png rename to py_script/textures/items/boots/boots--diamond.png diff --git a/textures/items/boots/boots--golden.png b/py_script/textures/items/boots/boots--golden.png similarity index 100% rename from textures/items/boots/boots--golden.png rename to py_script/textures/items/boots/boots--golden.png diff --git a/textures/items/boots/boots--iron.png b/py_script/textures/items/boots/boots--iron.png similarity index 100% rename from textures/items/boots/boots--iron.png rename to py_script/textures/items/boots/boots--iron.png diff --git a/textures/items/boots/boots--leather.png b/py_script/textures/items/boots/boots--leather.png similarity index 100% rename from textures/items/boots/boots--leather.png rename to py_script/textures/items/boots/boots--leather.png diff --git a/textures/items/bow/bow--air1.png b/py_script/textures/items/bow/bow--air1.png similarity index 100% rename from textures/items/bow/bow--air1.png rename to py_script/textures/items/bow/bow--air1.png diff --git a/textures/items/bow/bow--air2.png b/py_script/textures/items/bow/bow--air2.png similarity index 100% rename from textures/items/bow/bow--air2.png rename to py_script/textures/items/bow/bow--air2.png diff --git a/textures/items/bow/bow--air3.png b/py_script/textures/items/bow/bow--air3.png similarity index 100% rename from textures/items/bow/bow--air3.png rename to py_script/textures/items/bow/bow--air3.png diff --git a/textures/items/bow/bow--default1.png b/py_script/textures/items/bow/bow--default1.png similarity index 100% rename from textures/items/bow/bow--default1.png rename to py_script/textures/items/bow/bow--default1.png diff --git a/textures/items/bow/bow--default2.png b/py_script/textures/items/bow/bow--default2.png similarity index 100% rename from textures/items/bow/bow--default2.png rename to py_script/textures/items/bow/bow--default2.png diff --git a/textures/items/bow/bow--earth1.png b/py_script/textures/items/bow/bow--earth1.png similarity index 100% rename from textures/items/bow/bow--earth1.png rename to py_script/textures/items/bow/bow--earth1.png diff --git a/textures/items/bow/bow--earth2.png b/py_script/textures/items/bow/bow--earth2.png similarity index 100% rename from textures/items/bow/bow--earth2.png rename to py_script/textures/items/bow/bow--earth2.png diff --git a/textures/items/bow/bow--earth3.png b/py_script/textures/items/bow/bow--earth3.png similarity index 100% rename from textures/items/bow/bow--earth3.png rename to py_script/textures/items/bow/bow--earth3.png diff --git a/textures/items/bow/bow--fire1.png b/py_script/textures/items/bow/bow--fire1.png similarity index 100% rename from textures/items/bow/bow--fire1.png rename to py_script/textures/items/bow/bow--fire1.png diff --git a/textures/items/bow/bow--fire2.png b/py_script/textures/items/bow/bow--fire2.png similarity index 100% rename from textures/items/bow/bow--fire2.png rename to py_script/textures/items/bow/bow--fire2.png diff --git a/textures/items/bow/bow--fire3.png b/py_script/textures/items/bow/bow--fire3.png similarity index 100% rename from textures/items/bow/bow--fire3.png rename to py_script/textures/items/bow/bow--fire3.png diff --git a/textures/items/bow/bow--generic1.png b/py_script/textures/items/bow/bow--generic1.png similarity index 100% rename from textures/items/bow/bow--generic1.png rename to py_script/textures/items/bow/bow--generic1.png diff --git a/textures/items/bow/bow--generic2.png b/py_script/textures/items/bow/bow--generic2.png similarity index 100% rename from textures/items/bow/bow--generic2.png rename to py_script/textures/items/bow/bow--generic2.png diff --git a/textures/items/bow/bow--generic3.png b/py_script/textures/items/bow/bow--generic3.png similarity index 100% rename from textures/items/bow/bow--generic3.png rename to py_script/textures/items/bow/bow--generic3.png diff --git a/textures/items/bow/bow--thunder1.png b/py_script/textures/items/bow/bow--thunder1.png similarity index 100% rename from textures/items/bow/bow--thunder1.png rename to py_script/textures/items/bow/bow--thunder1.png diff --git a/textures/items/bow/bow--thunder2.png b/py_script/textures/items/bow/bow--thunder2.png similarity index 100% rename from textures/items/bow/bow--thunder2.png rename to py_script/textures/items/bow/bow--thunder2.png diff --git a/textures/items/bow/bow--thunder3.png b/py_script/textures/items/bow/bow--thunder3.png similarity index 100% rename from textures/items/bow/bow--thunder3.png rename to py_script/textures/items/bow/bow--thunder3.png diff --git a/textures/items/bow/bow--water1.png b/py_script/textures/items/bow/bow--water1.png similarity index 100% rename from textures/items/bow/bow--water1.png rename to py_script/textures/items/bow/bow--water1.png diff --git a/textures/items/bow/bow--water2.png b/py_script/textures/items/bow/bow--water2.png similarity index 100% rename from textures/items/bow/bow--water2.png rename to py_script/textures/items/bow/bow--water2.png diff --git a/textures/items/bow/bow--water3.png b/py_script/textures/items/bow/bow--water3.png similarity index 100% rename from textures/items/bow/bow--water3.png rename to py_script/textures/items/bow/bow--water3.png diff --git a/textures/items/chestplate/chestplate--chain.png b/py_script/textures/items/chestplate/chestplate--chain.png similarity index 100% rename from textures/items/chestplate/chestplate--chain.png rename to py_script/textures/items/chestplate/chestplate--chain.png diff --git a/textures/items/chestplate/chestplate--diamond.png b/py_script/textures/items/chestplate/chestplate--diamond.png similarity index 100% rename from textures/items/chestplate/chestplate--diamond.png rename to py_script/textures/items/chestplate/chestplate--diamond.png diff --git a/textures/items/chestplate/chestplate--golden.png b/py_script/textures/items/chestplate/chestplate--golden.png similarity index 100% rename from textures/items/chestplate/chestplate--golden.png rename to py_script/textures/items/chestplate/chestplate--golden.png diff --git a/textures/items/chestplate/chestplate--iron.png b/py_script/textures/items/chestplate/chestplate--iron.png similarity index 100% rename from textures/items/chestplate/chestplate--iron.png rename to py_script/textures/items/chestplate/chestplate--iron.png diff --git a/textures/items/chestplate/chestplate--leather.png b/py_script/textures/items/chestplate/chestplate--leather.png similarity index 100% rename from textures/items/chestplate/chestplate--leather.png rename to py_script/textures/items/chestplate/chestplate--leather.png diff --git a/textures/items/dagger/dagger--air1.png b/py_script/textures/items/dagger/dagger--air1.png similarity index 100% rename from textures/items/dagger/dagger--air1.png rename to py_script/textures/items/dagger/dagger--air1.png diff --git a/textures/items/dagger/dagger--air2.png b/py_script/textures/items/dagger/dagger--air2.png similarity index 100% rename from textures/items/dagger/dagger--air2.png rename to py_script/textures/items/dagger/dagger--air2.png diff --git a/textures/items/dagger/dagger--air3.png b/py_script/textures/items/dagger/dagger--air3.png similarity index 100% rename from textures/items/dagger/dagger--air3.png rename to py_script/textures/items/dagger/dagger--air3.png diff --git a/textures/items/dagger/dagger--default1.png b/py_script/textures/items/dagger/dagger--default1.png similarity index 100% rename from textures/items/dagger/dagger--default1.png rename to py_script/textures/items/dagger/dagger--default1.png diff --git a/textures/items/dagger/dagger--default2.png b/py_script/textures/items/dagger/dagger--default2.png similarity index 100% rename from textures/items/dagger/dagger--default2.png rename to py_script/textures/items/dagger/dagger--default2.png diff --git a/textures/items/dagger/dagger--earth1.png b/py_script/textures/items/dagger/dagger--earth1.png similarity index 100% rename from textures/items/dagger/dagger--earth1.png rename to py_script/textures/items/dagger/dagger--earth1.png diff --git a/textures/items/dagger/dagger--earth2.png b/py_script/textures/items/dagger/dagger--earth2.png similarity index 100% rename from textures/items/dagger/dagger--earth2.png rename to py_script/textures/items/dagger/dagger--earth2.png diff --git a/textures/items/dagger/dagger--earth3.png b/py_script/textures/items/dagger/dagger--earth3.png similarity index 100% rename from textures/items/dagger/dagger--earth3.png rename to py_script/textures/items/dagger/dagger--earth3.png diff --git a/textures/items/dagger/dagger--fire1.png b/py_script/textures/items/dagger/dagger--fire1.png similarity index 100% rename from textures/items/dagger/dagger--fire1.png rename to py_script/textures/items/dagger/dagger--fire1.png diff --git a/textures/items/dagger/dagger--fire2.png b/py_script/textures/items/dagger/dagger--fire2.png similarity index 100% rename from textures/items/dagger/dagger--fire2.png rename to py_script/textures/items/dagger/dagger--fire2.png diff --git a/textures/items/dagger/dagger--fire3.png b/py_script/textures/items/dagger/dagger--fire3.png similarity index 100% rename from textures/items/dagger/dagger--fire3.png rename to py_script/textures/items/dagger/dagger--fire3.png diff --git a/textures/items/dagger/dagger--generic1.png b/py_script/textures/items/dagger/dagger--generic1.png similarity index 100% rename from textures/items/dagger/dagger--generic1.png rename to py_script/textures/items/dagger/dagger--generic1.png diff --git a/textures/items/dagger/dagger--generic2.png b/py_script/textures/items/dagger/dagger--generic2.png similarity index 100% rename from textures/items/dagger/dagger--generic2.png rename to py_script/textures/items/dagger/dagger--generic2.png diff --git a/textures/items/dagger/dagger--generic3.png b/py_script/textures/items/dagger/dagger--generic3.png similarity index 100% rename from textures/items/dagger/dagger--generic3.png rename to py_script/textures/items/dagger/dagger--generic3.png diff --git a/textures/items/dagger/dagger--thunder1.png b/py_script/textures/items/dagger/dagger--thunder1.png similarity index 100% rename from textures/items/dagger/dagger--thunder1.png rename to py_script/textures/items/dagger/dagger--thunder1.png diff --git a/textures/items/dagger/dagger--thunder2.png b/py_script/textures/items/dagger/dagger--thunder2.png similarity index 100% rename from textures/items/dagger/dagger--thunder2.png rename to py_script/textures/items/dagger/dagger--thunder2.png diff --git a/textures/items/dagger/dagger--thunder3.png b/py_script/textures/items/dagger/dagger--thunder3.png similarity index 100% rename from textures/items/dagger/dagger--thunder3.png rename to py_script/textures/items/dagger/dagger--thunder3.png diff --git a/textures/items/dagger/dagger--water1.png b/py_script/textures/items/dagger/dagger--water1.png similarity index 100% rename from textures/items/dagger/dagger--water1.png rename to py_script/textures/items/dagger/dagger--water1.png diff --git a/textures/items/dagger/dagger--water2.png b/py_script/textures/items/dagger/dagger--water2.png similarity index 100% rename from textures/items/dagger/dagger--water2.png rename to py_script/textures/items/dagger/dagger--water2.png diff --git a/textures/items/dagger/dagger--water3.png b/py_script/textures/items/dagger/dagger--water3.png similarity index 100% rename from textures/items/dagger/dagger--water3.png rename to py_script/textures/items/dagger/dagger--water3.png diff --git a/textures/items/helmet/helmet--chain.png b/py_script/textures/items/helmet/helmet--chain.png similarity index 100% rename from textures/items/helmet/helmet--chain.png rename to py_script/textures/items/helmet/helmet--chain.png diff --git a/textures/items/helmet/helmet--diamond.png b/py_script/textures/items/helmet/helmet--diamond.png similarity index 100% rename from textures/items/helmet/helmet--diamond.png rename to py_script/textures/items/helmet/helmet--diamond.png diff --git a/textures/items/helmet/helmet--golden.png b/py_script/textures/items/helmet/helmet--golden.png similarity index 100% rename from textures/items/helmet/helmet--golden.png rename to py_script/textures/items/helmet/helmet--golden.png diff --git a/textures/items/helmet/helmet--iron.png b/py_script/textures/items/helmet/helmet--iron.png similarity index 100% rename from textures/items/helmet/helmet--iron.png rename to py_script/textures/items/helmet/helmet--iron.png diff --git a/textures/items/helmet/helmet--leather.png b/py_script/textures/items/helmet/helmet--leather.png similarity index 100% rename from textures/items/helmet/helmet--leather.png rename to py_script/textures/items/helmet/helmet--leather.png diff --git a/textures/items/leggings/leggings--chain.png b/py_script/textures/items/leggings/leggings--chain.png similarity index 100% rename from textures/items/leggings/leggings--chain.png rename to py_script/textures/items/leggings/leggings--chain.png diff --git a/textures/items/leggings/leggings--diamond.png b/py_script/textures/items/leggings/leggings--diamond.png similarity index 100% rename from textures/items/leggings/leggings--diamond.png rename to py_script/textures/items/leggings/leggings--diamond.png diff --git a/textures/items/leggings/leggings--golden.png b/py_script/textures/items/leggings/leggings--golden.png similarity index 100% rename from textures/items/leggings/leggings--golden.png rename to py_script/textures/items/leggings/leggings--golden.png diff --git a/textures/items/leggings/leggings--iron.png b/py_script/textures/items/leggings/leggings--iron.png similarity index 100% rename from textures/items/leggings/leggings--iron.png rename to py_script/textures/items/leggings/leggings--iron.png diff --git a/textures/items/leggings/leggings--leather.png b/py_script/textures/items/leggings/leggings--leather.png similarity index 100% rename from textures/items/leggings/leggings--leather.png rename to py_script/textures/items/leggings/leggings--leather.png diff --git a/textures/items/relik/relik--air1.png b/py_script/textures/items/relik/relik--air1.png similarity index 100% rename from textures/items/relik/relik--air1.png rename to py_script/textures/items/relik/relik--air1.png diff --git a/textures/items/relik/relik--air2.png b/py_script/textures/items/relik/relik--air2.png similarity index 100% rename from textures/items/relik/relik--air2.png rename to py_script/textures/items/relik/relik--air2.png diff --git a/textures/items/relik/relik--air3.png b/py_script/textures/items/relik/relik--air3.png similarity index 100% rename from textures/items/relik/relik--air3.png rename to py_script/textures/items/relik/relik--air3.png diff --git a/textures/items/relik/relik--default1.png b/py_script/textures/items/relik/relik--default1.png similarity index 100% rename from textures/items/relik/relik--default1.png rename to py_script/textures/items/relik/relik--default1.png diff --git a/textures/items/relik/relik--default2.png b/py_script/textures/items/relik/relik--default2.png similarity index 100% rename from textures/items/relik/relik--default2.png rename to py_script/textures/items/relik/relik--default2.png diff --git a/textures/items/relik/relik--earth1.png b/py_script/textures/items/relik/relik--earth1.png similarity index 100% rename from textures/items/relik/relik--earth1.png rename to py_script/textures/items/relik/relik--earth1.png diff --git a/textures/items/relik/relik--earth2.png b/py_script/textures/items/relik/relik--earth2.png similarity index 100% rename from textures/items/relik/relik--earth2.png rename to py_script/textures/items/relik/relik--earth2.png diff --git a/textures/items/relik/relik--earth3.png b/py_script/textures/items/relik/relik--earth3.png similarity index 100% rename from textures/items/relik/relik--earth3.png rename to py_script/textures/items/relik/relik--earth3.png diff --git a/textures/items/relik/relik--fire1.png b/py_script/textures/items/relik/relik--fire1.png similarity index 100% rename from textures/items/relik/relik--fire1.png rename to py_script/textures/items/relik/relik--fire1.png diff --git a/textures/items/relik/relik--fire2.png b/py_script/textures/items/relik/relik--fire2.png similarity index 100% rename from textures/items/relik/relik--fire2.png rename to py_script/textures/items/relik/relik--fire2.png diff --git a/textures/items/relik/relik--fire3.png b/py_script/textures/items/relik/relik--fire3.png similarity index 100% rename from textures/items/relik/relik--fire3.png rename to py_script/textures/items/relik/relik--fire3.png diff --git a/textures/items/relik/relik--generic1.png b/py_script/textures/items/relik/relik--generic1.png similarity index 100% rename from textures/items/relik/relik--generic1.png rename to py_script/textures/items/relik/relik--generic1.png diff --git a/textures/items/relik/relik--generic2.png b/py_script/textures/items/relik/relik--generic2.png similarity index 100% rename from textures/items/relik/relik--generic2.png rename to py_script/textures/items/relik/relik--generic2.png diff --git a/textures/items/relik/relik--generic3.png b/py_script/textures/items/relik/relik--generic3.png similarity index 99% rename from textures/items/relik/relik--generic3.png rename to py_script/textures/items/relik/relik--generic3.png index fe68d65..a4530e4 100644 --- a/textures/items/relik/relik--generic3.png +++ b/py_script/textures/items/relik/relik--generic3.png @@ -2,7 +2,7 @@ - 404 Not Found +<title> 404 Not Found
diff --git a/textures/items/relik/relik--thunder1.png b/py_script/textures/items/relik/relik--thunder1.png similarity index 100% rename from textures/items/relik/relik--thunder1.png rename to py_script/textures/items/relik/relik--thunder1.png diff --git a/textures/items/relik/relik--thunder2.png b/py_script/textures/items/relik/relik--thunder2.png similarity index 100% rename from textures/items/relik/relik--thunder2.png rename to py_script/textures/items/relik/relik--thunder2.png diff --git a/textures/items/relik/relik--thunder3.png b/py_script/textures/items/relik/relik--thunder3.png similarity index 100% rename from textures/items/relik/relik--thunder3.png rename to py_script/textures/items/relik/relik--thunder3.png diff --git a/textures/items/relik/relik--water1.png b/py_script/textures/items/relik/relik--water1.png similarity index 99% rename from textures/items/relik/relik--water1.png rename to py_script/textures/items/relik/relik--water1.png index fe68d65..a4530e4 100644 --- a/textures/items/relik/relik--water1.png +++ b/py_script/textures/items/relik/relik--water1.png @@ -2,7 +2,7 @@ - 404 Not Found +<title> 404 Not Found
diff --git a/textures/items/relik/relik--water2.png b/py_script/textures/items/relik/relik--water2.png similarity index 99% rename from textures/items/relik/relik--water2.png rename to py_script/textures/items/relik/relik--water2.png index fe68d65..a4530e4 100644 --- a/textures/items/relik/relik--water2.png +++ b/py_script/textures/items/relik/relik--water2.png @@ -2,7 +2,7 @@ - 404 Not Found +<title> 404 Not Found
diff --git a/textures/items/relik/relik--water3.png b/py_script/textures/items/relik/relik--water3.png similarity index 99% rename from textures/items/relik/relik--water3.png rename to py_script/textures/items/relik/relik--water3.png index fe68d65..a4530e4 100644 --- a/textures/items/relik/relik--water3.png +++ b/py_script/textures/items/relik/relik--water3.png @@ -2,7 +2,7 @@ - 404 Not Found +<title> 404 Not Found
diff --git a/textures/items/spear/spear--air1.png b/py_script/textures/items/spear/spear--air1.png similarity index 100% rename from textures/items/spear/spear--air1.png rename to py_script/textures/items/spear/spear--air1.png diff --git a/textures/items/spear/spear--air2.png b/py_script/textures/items/spear/spear--air2.png similarity index 100% rename from textures/items/spear/spear--air2.png rename to py_script/textures/items/spear/spear--air2.png diff --git a/textures/items/spear/spear--air3.png b/py_script/textures/items/spear/spear--air3.png similarity index 100% rename from textures/items/spear/spear--air3.png rename to py_script/textures/items/spear/spear--air3.png diff --git a/textures/items/spear/spear--default1.png b/py_script/textures/items/spear/spear--default1.png similarity index 100% rename from textures/items/spear/spear--default1.png rename to py_script/textures/items/spear/spear--default1.png diff --git a/textures/items/spear/spear--default2.png b/py_script/textures/items/spear/spear--default2.png similarity index 100% rename from textures/items/spear/spear--default2.png rename to py_script/textures/items/spear/spear--default2.png diff --git a/textures/items/spear/spear--earth1.png b/py_script/textures/items/spear/spear--earth1.png similarity index 100% rename from textures/items/spear/spear--earth1.png rename to py_script/textures/items/spear/spear--earth1.png diff --git a/textures/items/spear/spear--earth2.png b/py_script/textures/items/spear/spear--earth2.png similarity index 100% rename from textures/items/spear/spear--earth2.png rename to py_script/textures/items/spear/spear--earth2.png diff --git a/textures/items/spear/spear--earth3.png b/py_script/textures/items/spear/spear--earth3.png similarity index 100% rename from textures/items/spear/spear--earth3.png rename to py_script/textures/items/spear/spear--earth3.png diff --git a/textures/items/spear/spear--fire1.png b/py_script/textures/items/spear/spear--fire1.png similarity index 100% rename from textures/items/spear/spear--fire1.png rename to py_script/textures/items/spear/spear--fire1.png diff --git a/textures/items/spear/spear--fire2.png b/py_script/textures/items/spear/spear--fire2.png similarity index 100% rename from textures/items/spear/spear--fire2.png rename to py_script/textures/items/spear/spear--fire2.png diff --git a/textures/items/spear/spear--fire3.png b/py_script/textures/items/spear/spear--fire3.png similarity index 100% rename from textures/items/spear/spear--fire3.png rename to py_script/textures/items/spear/spear--fire3.png diff --git a/textures/items/spear/spear--generic1.png b/py_script/textures/items/spear/spear--generic1.png similarity index 100% rename from textures/items/spear/spear--generic1.png rename to py_script/textures/items/spear/spear--generic1.png diff --git a/textures/items/spear/spear--generic2.png b/py_script/textures/items/spear/spear--generic2.png similarity index 100% rename from textures/items/spear/spear--generic2.png rename to py_script/textures/items/spear/spear--generic2.png diff --git a/textures/items/spear/spear--generic3.png b/py_script/textures/items/spear/spear--generic3.png similarity index 100% rename from textures/items/spear/spear--generic3.png rename to py_script/textures/items/spear/spear--generic3.png diff --git a/textures/items/spear/spear--thunder1.png b/py_script/textures/items/spear/spear--thunder1.png similarity index 100% rename from textures/items/spear/spear--thunder1.png rename to py_script/textures/items/spear/spear--thunder1.png diff --git a/textures/items/spear/spear--thunder2.png b/py_script/textures/items/spear/spear--thunder2.png similarity index 100% rename from textures/items/spear/spear--thunder2.png rename to py_script/textures/items/spear/spear--thunder2.png diff --git a/textures/items/spear/spear--thunder3.png b/py_script/textures/items/spear/spear--thunder3.png similarity index 100% rename from textures/items/spear/spear--thunder3.png rename to py_script/textures/items/spear/spear--thunder3.png diff --git a/textures/items/spear/spear--water1.png b/py_script/textures/items/spear/spear--water1.png similarity index 100% rename from textures/items/spear/spear--water1.png rename to py_script/textures/items/spear/spear--water1.png diff --git a/textures/items/spear/spear--water2.png b/py_script/textures/items/spear/spear--water2.png similarity index 100% rename from textures/items/spear/spear--water2.png rename to py_script/textures/items/spear/spear--water2.png diff --git a/textures/items/spear/spear--water3.png b/py_script/textures/items/spear/spear--water3.png similarity index 100% rename from textures/items/spear/spear--water3.png rename to py_script/textures/items/spear/spear--water3.png diff --git a/textures/items/wand/wand--air1.png b/py_script/textures/items/wand/wand--air1.png similarity index 100% rename from textures/items/wand/wand--air1.png rename to py_script/textures/items/wand/wand--air1.png diff --git a/textures/items/wand/wand--air2.png b/py_script/textures/items/wand/wand--air2.png similarity index 100% rename from textures/items/wand/wand--air2.png rename to py_script/textures/items/wand/wand--air2.png diff --git a/textures/items/wand/wand--air3.png b/py_script/textures/items/wand/wand--air3.png similarity index 100% rename from textures/items/wand/wand--air3.png rename to py_script/textures/items/wand/wand--air3.png diff --git a/textures/items/wand/wand--default1.png b/py_script/textures/items/wand/wand--default1.png similarity index 100% rename from textures/items/wand/wand--default1.png rename to py_script/textures/items/wand/wand--default1.png diff --git a/textures/items/wand/wand--default2.png b/py_script/textures/items/wand/wand--default2.png similarity index 100% rename from textures/items/wand/wand--default2.png rename to py_script/textures/items/wand/wand--default2.png diff --git a/textures/items/wand/wand--earth1.png b/py_script/textures/items/wand/wand--earth1.png similarity index 100% rename from textures/items/wand/wand--earth1.png rename to py_script/textures/items/wand/wand--earth1.png diff --git a/textures/items/wand/wand--earth2.png b/py_script/textures/items/wand/wand--earth2.png similarity index 100% rename from textures/items/wand/wand--earth2.png rename to py_script/textures/items/wand/wand--earth2.png diff --git a/textures/items/wand/wand--earth3.png b/py_script/textures/items/wand/wand--earth3.png similarity index 100% rename from textures/items/wand/wand--earth3.png rename to py_script/textures/items/wand/wand--earth3.png diff --git a/textures/items/wand/wand--fire1.png b/py_script/textures/items/wand/wand--fire1.png similarity index 100% rename from textures/items/wand/wand--fire1.png rename to py_script/textures/items/wand/wand--fire1.png diff --git a/textures/items/wand/wand--fire2.png b/py_script/textures/items/wand/wand--fire2.png similarity index 100% rename from textures/items/wand/wand--fire2.png rename to py_script/textures/items/wand/wand--fire2.png diff --git a/textures/items/wand/wand--fire3.png b/py_script/textures/items/wand/wand--fire3.png similarity index 100% rename from textures/items/wand/wand--fire3.png rename to py_script/textures/items/wand/wand--fire3.png diff --git a/textures/items/wand/wand--generic1.png b/py_script/textures/items/wand/wand--generic1.png similarity index 100% rename from textures/items/wand/wand--generic1.png rename to py_script/textures/items/wand/wand--generic1.png diff --git a/textures/items/wand/wand--generic2.png b/py_script/textures/items/wand/wand--generic2.png similarity index 100% rename from textures/items/wand/wand--generic2.png rename to py_script/textures/items/wand/wand--generic2.png diff --git a/textures/items/wand/wand--generic3.png b/py_script/textures/items/wand/wand--generic3.png similarity index 99% rename from textures/items/wand/wand--generic3.png rename to py_script/textures/items/wand/wand--generic3.png index fe68d65..a4530e4 100644 --- a/textures/items/wand/wand--generic3.png +++ b/py_script/textures/items/wand/wand--generic3.png @@ -2,7 +2,7 @@ - 404 Not Found +<title> 404 Not Found
diff --git a/textures/items/wand/wand--thunder1.png b/py_script/textures/items/wand/wand--thunder1.png similarity index 100% rename from textures/items/wand/wand--thunder1.png rename to py_script/textures/items/wand/wand--thunder1.png diff --git a/textures/items/wand/wand--thunder2.png b/py_script/textures/items/wand/wand--thunder2.png similarity index 100% rename from textures/items/wand/wand--thunder2.png rename to py_script/textures/items/wand/wand--thunder2.png diff --git a/textures/items/wand/wand--thunder3.png b/py_script/textures/items/wand/wand--thunder3.png similarity index 100% rename from textures/items/wand/wand--thunder3.png rename to py_script/textures/items/wand/wand--thunder3.png diff --git a/textures/items/wand/wand--water1.png b/py_script/textures/items/wand/wand--water1.png similarity index 100% rename from textures/items/wand/wand--water1.png rename to py_script/textures/items/wand/wand--water1.png diff --git a/textures/items/wand/wand--water2.png b/py_script/textures/items/wand/wand--water2.png similarity index 100% rename from textures/items/wand/wand--water2.png rename to py_script/textures/items/wand/wand--water2.png diff --git a/textures/items/wand/wand--water3.png b/py_script/textures/items/wand/wand--water3.png similarity index 100% rename from textures/items/wand/wand--water3.png rename to py_script/textures/items/wand/wand--water3.png diff --git a/textures/powder/dye_powder_cyan.png b/py_script/textures/powder/dye_powder_cyan.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_cyan.png rename to py_script/textures/powder/dye_powder_cyan.png diff --git a/textures/powder/dye_powder_gray.png b/py_script/textures/powder/dye_powder_gray.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_gray.png rename to py_script/textures/powder/dye_powder_gray.png diff --git a/textures/powder/dye_powder_green.png b/py_script/textures/powder/dye_powder_green.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_green.png rename to py_script/textures/powder/dye_powder_green.png diff --git a/textures/powder/dye_powder_light_blue.png b/py_script/textures/powder/dye_powder_light_blue.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_light_blue.png rename to py_script/textures/powder/dye_powder_light_blue.png diff --git a/textures/powder/dye_powder_lime.png b/py_script/textures/powder/dye_powder_lime.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_lime.png rename to py_script/textures/powder/dye_powder_lime.png diff --git a/textures/powder/dye_powder_orange.png b/py_script/textures/powder/dye_powder_orange.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_orange.png rename to py_script/textures/powder/dye_powder_orange.png diff --git a/textures/powder/dye_powder_pink.png b/py_script/textures/powder/dye_powder_pink.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_pink.png rename to py_script/textures/powder/dye_powder_pink.png diff --git a/textures/powder/dye_powder_red.png b/py_script/textures/powder/dye_powder_red.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_red.png rename to py_script/textures/powder/dye_powder_red.png diff --git a/textures/powder/dye_powder_silver.png b/py_script/textures/powder/dye_powder_silver.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_silver.png rename to py_script/textures/powder/dye_powder_silver.png diff --git a/textures/powder/dye_powder_yellow.png b/py_script/textures/powder/dye_powder_yellow.png old mode 100755 new mode 100644 similarity index 100% rename from textures/powder/dye_powder_yellow.png rename to py_script/textures/powder/dye_powder_yellow.png From b36b16c49d750d69c18817a68e22e719b773f6b2 Mon Sep 17 00:00:00 2001 From: reschan Date: Mon, 27 Jun 2022 16:23:22 +0700 Subject: [PATCH 2/7] fix: separate atree ids for each class --- js/atree_constants.js | 442 +++++++++++++++++----------------- js/atree_constants_min.js | 2 +- js/atree_ids.json | 146 +++++++++++ py_script/atree-convertID.py | 29 +++ py_script/atree-generateID.py | 32 ++- 5 files changed, 412 insertions(+), 239 deletions(-) create mode 100644 js/atree_ids.json create mode 100644 py_script/atree-convertID.py diff --git a/js/atree_constants.js b/js/atree_constants.js index 2f01e7e..48fd997 100644 --- a/js/atree_constants.js +++ b/js/atree_constants.js @@ -202,7 +202,7 @@ const atrees = { "archetype_req": 0, "parents": [ 68, - 86, + 39, 5 ], "dependencies": [], @@ -250,7 +250,7 @@ const atrees = { "archetype_req": 1, "parents": [ 4, - 82 + 35 ], "dependencies": [ 7 @@ -290,7 +290,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 83, + 36, 69 ], "dependencies": [ @@ -435,12 +435,12 @@ const atrees = { "name": "Single Arrow", "type": "damage", "multipliers": [ - 40, + 30, 0, 0, 0, 0, - 20 + 10 ] }, { @@ -1434,7 +1434,7 @@ const atrees = { ] } ], - "id": 82 + "id": 35 }, { "display_name": "Thunder Mastery", @@ -1443,7 +1443,7 @@ const atrees = { "archetype_req": 0, "parents": [ 7, - 86, + 39, 34 ], "dependencies": [], @@ -1474,7 +1474,7 @@ const atrees = { ] } ], - "id": 83 + "id": 36 }, { "display_name": "Water Mastery", @@ -1483,8 +1483,8 @@ const atrees = { "archetype_req": 0, "parents": [ 34, - 83, - 86 + 36, + 39 ], "dependencies": [], "blockers": [], @@ -1514,7 +1514,7 @@ const atrees = { ] } ], - "id": 84 + "id": 37 }, { "display_name": "Air Mastery", @@ -1552,7 +1552,7 @@ const atrees = { ] } ], - "id": 85 + "id": 38 }, { "display_name": "Fire Mastery", @@ -1560,7 +1560,7 @@ const atrees = { "archetype": "Sharpshooter", "archetype_req": 0, "parents": [ - 83, + 36, 0, 34 ], @@ -1592,7 +1592,7 @@ const atrees = { ] } ], - "id": 86 + "id": 39 }, { "display_name": "More Shields", @@ -2196,7 +2196,7 @@ const atrees = { "name": "damMult" }, "scaling": [ - 35 + 3 ], "max": 3 } @@ -2398,7 +2398,7 @@ const atrees = { "archetype": "Sharpshooter", "archetype_req": 0, "parents": [ - 84, + 37, 4 ], "dependencies": [ @@ -2457,7 +2457,7 @@ const atrees = { "archetype_req": 0, "parents": [ 6, - 85 + 38 ], "dependencies": [ 0 @@ -2573,7 +2573,7 @@ const atrees = { ] } ], - "id": 71 + "id": 0 }, { "display_name": "Spear Proficiency 1", @@ -2581,7 +2581,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 71 + 0 ], "dependencies": [], "blockers": [], @@ -2606,7 +2606,7 @@ const atrees = { ] } ], - "id": 72 + "id": 1 }, { "display_name": "Cheaper Bash", @@ -2614,7 +2614,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 72 + 1 ], "dependencies": [], "blockers": [], @@ -2632,7 +2632,7 @@ const atrees = { "cost": -10 } ], - "id": 73 + "id": 2 }, { "display_name": "Double Bash", @@ -2640,7 +2640,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 72 + 1 ], "dependencies": [], "blockers": [], @@ -2679,7 +2679,7 @@ const atrees = { ] } ], - "id": 74 + "id": 3 }, { "display_name": "Charge", @@ -2687,7 +2687,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 74 + 3 ], "dependencies": [], "blockers": [], @@ -2731,7 +2731,7 @@ const atrees = { ] } ], - "id": 75 + "id": 4 }, { "display_name": "Heavy Impact", @@ -2739,7 +2739,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 79 + 8 ], "dependencies": [], "blockers": [], @@ -2768,7 +2768,7 @@ const atrees = { ] } ], - "id": 76 + "id": 5 }, { "display_name": "Vehement", @@ -2776,11 +2776,11 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 75 + 4 ], "dependencies": [], "blockers": [ - 78 + 7 ], "cost": 1, "display": { @@ -2814,7 +2814,7 @@ const atrees = { "max": 20 } ], - "id": 77 + "id": 6 }, { "display_name": "Tougher Skin", @@ -2822,11 +2822,11 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 75 + 4 ], "dependencies": [], "blockers": [ - 77 + 6 ], "cost": 1, "display": { @@ -2870,7 +2870,7 @@ const atrees = { "max": 100 } ], - "id": 78 + "id": 7 }, { "display_name": "Uppercut", @@ -2878,7 +2878,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 77 + 6 ], "dependencies": [], "blockers": [], @@ -2925,7 +2925,7 @@ const atrees = { ] } ], - "id": 79 + "id": 8 }, { "display_name": "Cheaper Charge", @@ -2933,8 +2933,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 79, - 81 + 8, + 10 ], "dependencies": [], "blockers": [], @@ -2952,7 +2952,7 @@ const atrees = { "cost": -5 } ], - "id": 80 + "id": 9 }, { "display_name": "War Scream", @@ -2960,7 +2960,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 78 + 7 ], "dependencies": [], "blockers": [], @@ -3001,7 +3001,7 @@ const atrees = { ] } ], - "id": 81 + "id": 10 }, { "display_name": "Earth Mastery", @@ -3009,7 +3009,7 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 79 + 8 ], "dependencies": [], "blockers": [], @@ -3040,7 +3040,7 @@ const atrees = { ] } ], - "id": 82 + "id": 11 }, { "display_name": "Thunder Mastery", @@ -3048,9 +3048,9 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 79, - 85, - 80 + 8, + 14, + 9 ], "dependencies": [], "blockers": [], @@ -3081,7 +3081,7 @@ const atrees = { ] } ], - "id": 83 + "id": 12 }, { "display_name": "Water Mastery", @@ -3089,9 +3089,9 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 0, "parents": [ - 80, - 83, - 85 + 9, + 12, + 14 ], "dependencies": [], "blockers": [], @@ -3122,7 +3122,7 @@ const atrees = { ] } ], - "id": 84 + "id": 13 }, { "display_name": "Air Mastery", @@ -3130,9 +3130,9 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 0, "parents": [ - 81, - 83, - 80 + 10, + 12, + 9 ], "dependencies": [], "blockers": [], @@ -3163,7 +3163,7 @@ const atrees = { ] } ], - "id": 85 + "id": 14 }, { "display_name": "Fire Mastery", @@ -3171,7 +3171,7 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 81 + 10 ], "dependencies": [], "blockers": [], @@ -3202,7 +3202,7 @@ const atrees = { ] } ], - "id": 86 + "id": 15 }, { "display_name": "Quadruple Bash", @@ -3210,8 +3210,8 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 82, - 88 + 11, + 17 ], "dependencies": [], "blockers": [], @@ -3249,7 +3249,7 @@ const atrees = { ] } ], - "id": 87 + "id": 16 }, { "display_name": "Fireworks", @@ -3257,8 +3257,8 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 83, - 87 + 12, + 16 ], "dependencies": [], "blockers": [], @@ -3294,7 +3294,7 @@ const atrees = { } } ], - "id": 88 + "id": 17 }, { "display_name": "Half-Moon Swipe", @@ -3302,10 +3302,10 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 1, "parents": [ - 84 + 13 ], "dependencies": [ - 79 + 8 ], "blockers": [], "cost": 2, @@ -3338,7 +3338,7 @@ const atrees = { "conversion": "water" } ], - "id": 89 + "id": 18 }, { "display_name": "Flyby Jab", @@ -3346,8 +3346,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 85, - 91 + 14, + 20 ], "dependencies": [], "blockers": [], @@ -3376,7 +3376,7 @@ const atrees = { ] } ], - "id": 90 + "id": 19 }, { "display_name": "Flaming Uppercut", @@ -3384,11 +3384,11 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 86, - 90 + 15, + 19 ], "dependencies": [ - 79 + 8 ], "blockers": [], "cost": 2, @@ -3435,7 +3435,7 @@ const atrees = { } } ], - "id": 91 + "id": 20 }, { "display_name": "Iron Lungs", @@ -3443,8 +3443,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 90, - 91 + 19, + 20 ], "dependencies": [], "blockers": [], @@ -3471,7 +3471,7 @@ const atrees = { ] } ], - "id": 92 + "id": 21 }, { "display_name": "Generalist", @@ -3479,7 +3479,7 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 3, "parents": [ - 94 + 23 ], "dependencies": [], "blockers": [], @@ -3491,7 +3491,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 93 + "id": 22 }, { "display_name": "Counter", @@ -3499,7 +3499,7 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 0, "parents": [ - 89 + 18 ], "dependencies": [], "blockers": [], @@ -3528,7 +3528,7 @@ const atrees = { ] } ], - "id": 94 + "id": 23 }, { "display_name": "Mantle of the Bovemists", @@ -3536,10 +3536,10 @@ const atrees = { "archetype": "Paladin", "archetype_req": 3, "parents": [ - 92 + 21 ], "dependencies": [ - 81 + 10 ], "blockers": [], "cost": 2, @@ -3552,7 +3552,7 @@ const atrees = { "mantle_charge": 3 }, "effects": [], - "id": 95 + "id": 24 }, { "display_name": "Bak'al's Grasp", @@ -3560,11 +3560,11 @@ const atrees = { "archetype": "Fallen", "archetype_req": 2, "parents": [ - 87, - 88 + 16, + 17 ], "dependencies": [ - 81 + 10 ], "blockers": [], "cost": 2, @@ -3592,7 +3592,7 @@ const atrees = { "max": 120 } ], - "id": 96 + "id": 25 }, { "display_name": "Spear Proficiency 2", @@ -3600,8 +3600,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 96, - 98 + 25, + 27 ], "dependencies": [], "blockers": [], @@ -3626,7 +3626,7 @@ const atrees = { ] } ], - "id": 97 + "id": 26 }, { "display_name": "Cheaper Uppercut", @@ -3634,9 +3634,9 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 97, - 99, - 94 + 26, + 28, + 23 ], "dependencies": [], "blockers": [], @@ -3654,7 +3654,7 @@ const atrees = { "cost": -5 } ], - "id": 98 + "id": 27 }, { "display_name": "Aerodynamics", @@ -3662,8 +3662,8 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 0, "parents": [ - 98, - 100 + 27, + 29 ], "dependencies": [], "blockers": [], @@ -3675,7 +3675,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 99 + "id": 28 }, { "display_name": "Provoke", @@ -3683,8 +3683,8 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 99, - 95 + 28, + 24 ], "dependencies": [], "blockers": [], @@ -3702,7 +3702,7 @@ const atrees = { "cost": -5 } ], - "id": 100 + "id": 29 }, { "display_name": "Precise Strikes", @@ -3710,8 +3710,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 98, - 97 + 27, + 26 ], "dependencies": [], "blockers": [], @@ -3734,7 +3734,7 @@ const atrees = { ] } ], - "id": 101 + "id": 30 }, { "display_name": "Air Shout", @@ -3742,11 +3742,11 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 99, - 100 + 28, + 29 ], "dependencies": [ - 81 + 10 ], "blockers": [], "cost": 2, @@ -3772,7 +3772,7 @@ const atrees = { ] } ], - "id": 102 + "id": 31 }, { "display_name": "Enraged Blow", @@ -3780,10 +3780,10 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 97 + 26 ], "dependencies": [ - 96 + 25 ], "blockers": [], "cost": 2, @@ -3813,7 +3813,7 @@ const atrees = { "max": 300 } ], - "id": 103 + "id": 32 }, { "display_name": "Flying Kick", @@ -3821,8 +3821,8 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 1, "parents": [ - 98, - 105 + 27, + 34 ], "dependencies": [], "blockers": [], @@ -3849,7 +3849,7 @@ const atrees = { ] } ], - "id": 104 + "id": 33 }, { "display_name": "Stronger Mantle", @@ -3857,11 +3857,11 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 106, - 104 + 35, + 33 ], "dependencies": [ - 95 + 24 ], "blockers": [], "cost": 1, @@ -3874,7 +3874,7 @@ const atrees = { "mantle_charge": 2 }, "effects": [], - "id": 105 + "id": 34 }, { "display_name": "Manachism", @@ -3882,8 +3882,8 @@ const atrees = { "archetype": "Paladin", "archetype_req": 3, "parents": [ - 105, - 100 + 34, + 29 ], "dependencies": [], "blockers": [], @@ -3897,7 +3897,7 @@ const atrees = { "cooldown": 1 }, "effects": [], - "id": 106 + "id": 35 }, { "display_name": "Boiling Blood", @@ -3905,8 +3905,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 103, - 108 + 32, + 37 ], "dependencies": [], "blockers": [], @@ -3933,7 +3933,7 @@ const atrees = { ] } ], - "id": 107 + "id": 36 }, { "display_name": "Ragnarokkr", @@ -3941,11 +3941,11 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 107, - 104 + 36, + 33 ], "dependencies": [ - 81 + 10 ], "blockers": [], "cost": 2, @@ -3965,7 +3965,7 @@ const atrees = { "cost": 10 } ], - "id": 108 + "id": 37 }, { "display_name": "Ambidextrous", @@ -3973,12 +3973,12 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 104, - 105, - 110 + 33, + 34, + 39 ], "dependencies": [ - 94 + 23 ], "blockers": [], "cost": 1, @@ -3991,7 +3991,7 @@ const atrees = { "chance": 30 }, "effects": [], - "id": 109 + "id": 38 }, { "display_name": "Burning Heart", @@ -3999,8 +3999,8 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 109, - 111 + 38, + 40 ], "dependencies": [], "blockers": [], @@ -4032,7 +4032,7 @@ const atrees = { "slider_step": 100 } ], - "id": 110 + "id": 39 }, { "display_name": "Stronger Bash", @@ -4040,8 +4040,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 110, - 106 + 39, + 35 ], "dependencies": [], "blockers": [], @@ -4068,7 +4068,7 @@ const atrees = { ] } ], - "id": 111 + "id": 40 }, { "display_name": "Intoxicating Blood", @@ -4076,11 +4076,11 @@ const atrees = { "archetype": "Fallen", "archetype_req": 5, "parents": [ - 108, - 107 + 37, + 36 ], "dependencies": [ - 96 + 25 ], "blockers": [], "cost": 2, @@ -4091,7 +4091,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 112 + "id": 41 }, { "display_name": "Comet", @@ -4099,10 +4099,10 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 108 + 37 ], "dependencies": [ - 88 + 17 ], "blockers": [], "cost": 2, @@ -4137,7 +4137,7 @@ const atrees = { } } ], - "id": 113 + "id": 42 }, { "display_name": "Collide", @@ -4145,11 +4145,11 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 4, "parents": [ - 109, - 110 + 38, + 39 ], "dependencies": [ - 104 + 33 ], "blockers": [], "cost": 2, @@ -4177,7 +4177,7 @@ const atrees = { ] } ], - "id": 114 + "id": 43 }, { "display_name": "Rejuvenating Skin", @@ -4185,8 +4185,8 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 110, - 111 + 39, + 40 ], "dependencies": [], "blockers": [], @@ -4198,7 +4198,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 115 + "id": 44 }, { "display_name": "Uncontainable Corruption", @@ -4206,11 +4206,11 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 107, - 117 + 36, + 46 ], "dependencies": [ - 96 + 25 ], "blockers": [], "cost": 1, @@ -4238,7 +4238,7 @@ const atrees = { "max": 50 } ], - "id": 116 + "id": 45 }, { "display_name": "Radiant Devotee", @@ -4246,8 +4246,8 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 1, "parents": [ - 118, - 116 + 47, + 45 ], "dependencies": [], "blockers": [], @@ -4278,7 +4278,7 @@ const atrees = { "slider_step": 4 } ], - "id": 117 + "id": 46 }, { "display_name": "Whirlwind Strike", @@ -4286,11 +4286,11 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 5, "parents": [ - 109, - 117 + 38, + 46 ], "dependencies": [ - 79 + 8 ], "blockers": [], "cost": 2, @@ -4318,7 +4318,7 @@ const atrees = { ] } ], - "id": 118 + "id": 47 }, { "display_name": "Mythril Skin", @@ -4326,7 +4326,7 @@ const atrees = { "archetype": "Paladin", "archetype_req": 6, "parents": [ - 115 + 44 ], "dependencies": [], "blockers": [], @@ -4349,7 +4349,7 @@ const atrees = { ] } ], - "id": 119 + "id": 48 }, { "display_name": "Armour Breaker", @@ -4357,11 +4357,11 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 116, - 117 + 45, + 46 ], "dependencies": [ - 96 + 25 ], "blockers": [], "cost": 2, @@ -4374,7 +4374,7 @@ const atrees = { "duration": 5 }, "effects": [], - "id": 120 + "id": 49 }, { "display_name": "Shield Strike", @@ -4382,8 +4382,8 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 119, - 122 + 48, + 51 ], "dependencies": [], "blockers": [], @@ -4410,7 +4410,7 @@ const atrees = { ] } ], - "id": 121 + "id": 50 }, { "display_name": "Sparkling Hope", @@ -4418,7 +4418,7 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 119 + 48 ], "dependencies": [], "blockers": [], @@ -4447,7 +4447,7 @@ const atrees = { ] } ], - "id": 122 + "id": 51 }, { "display_name": "Massive Bash", @@ -4455,8 +4455,8 @@ const atrees = { "archetype": "Fallen", "archetype_req": 8, "parents": [ - 124, - 116 + 53, + 45 ], "dependencies": [], "blockers": [], @@ -4483,7 +4483,7 @@ const atrees = { "slider_step": 3 } ], - "id": 123 + "id": 52 }, { "display_name": "Tempest", @@ -4491,8 +4491,8 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 0, "parents": [ - 123, - 125 + 52, + 54 ], "dependencies": [], "blockers": [], @@ -4539,7 +4539,7 @@ const atrees = { } } ], - "id": 124 + "id": 53 }, { "display_name": "Spirit of the Rabbit", @@ -4547,8 +4547,8 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 5, "parents": [ - 124, - 118 + 53, + 47 ], "dependencies": [], "blockers": [], @@ -4576,7 +4576,7 @@ const atrees = { ] } ], - "id": 125 + "id": 54 }, { "display_name": "Massacre", @@ -4584,8 +4584,8 @@ const atrees = { "archetype": "Fallen", "archetype_req": 5, "parents": [ - 124, - 123 + 53, + 52 ], "dependencies": [], "blockers": [], @@ -4597,7 +4597,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 126 + "id": 55 }, { "display_name": "Axe Kick", @@ -4605,8 +4605,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 124, - 125 + 53, + 54 ], "dependencies": [], "blockers": [], @@ -4633,7 +4633,7 @@ const atrees = { ] } ], - "id": 127 + "id": 56 }, { "display_name": "Radiance", @@ -4641,8 +4641,8 @@ const atrees = { "archetype": "Paladin", "archetype_req": 2, "parents": [ - 125, - 129 + 54, + 58 ], "dependencies": [], "blockers": [], @@ -4656,7 +4656,7 @@ const atrees = { "cooldown": 15 }, "effects": [], - "id": 128 + "id": 57 }, { "display_name": "Cheaper Bash 2", @@ -4664,9 +4664,9 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 128, - 121, - 122 + 57, + 50, + 51 ], "dependencies": [], "blockers": [], @@ -4684,7 +4684,7 @@ const atrees = { "cost": -5 } ], - "id": 129 + "id": 58 }, { "display_name": "Cheaper War Scream", @@ -4692,7 +4692,7 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 123 + 52 ], "dependencies": [], "blockers": [], @@ -4710,15 +4710,15 @@ const atrees = { "cost": -5 } ], - "id": 130 + "id": 59 }, { "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, + "archetype_req": 11, "parents": [ - 133 + 62 ], "dependencies": [], "blockers": [], @@ -4744,7 +4744,7 @@ const atrees = { "max": 50 } ], - "id": 131 + "id": 60 }, { "display_name": "Thunderclap", @@ -4752,7 +4752,7 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 8, "parents": [ - 133 + 62 ], "dependencies": [], "blockers": [], @@ -4781,7 +4781,7 @@ const atrees = { ] } ], - "id": 132 + "id": 61 }, { "display_name": "Cyclone", @@ -4789,7 +4789,7 @@ const atrees = { "archetype": "Battle Monk", "archetype_req": 0, "parents": [ - 125 + 54 ], "dependencies": [], "blockers": [], @@ -4828,7 +4828,7 @@ const atrees = { } } ], - "id": 133 + "id": 62 }, { "display_name": "Second Chance", @@ -4836,7 +4836,7 @@ const atrees = { "archetype": "Paladin", "archetype_req": 12, "parents": [ - 129 + 58 ], "dependencies": [], "blockers": [], @@ -4848,7 +4848,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 134 + "id": 63 }, { "display_name": "Blood Pact", @@ -4856,7 +4856,7 @@ const atrees = { "archetype": "", "archetype_req": 10, "parents": [ - 130 + 59 ], "dependencies": [], "blockers": [], @@ -4868,7 +4868,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 135 + "id": 64 }, { "display_name": "Haemorrhage", @@ -4876,10 +4876,10 @@ const atrees = { "archetype": "Fallen", "archetype_req": 0, "parents": [ - 135 + 64 ], "dependencies": [ - 135 + 64 ], "blockers": [], "cost": 1, @@ -4890,7 +4890,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 136 + "id": 65 }, { "display_name": "Brink of Madness", @@ -4898,8 +4898,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 135, - 138 + 64, + 67 ], "dependencies": [], "blockers": [], @@ -4911,7 +4911,7 @@ const atrees = { }, "properties": {}, "effects": [], - "id": 137 + "id": 66 }, { "display_name": "Cheaper Uppercut 2", @@ -4919,8 +4919,8 @@ const atrees = { "archetype": "", "archetype_req": 0, "parents": [ - 134, - 137 + 63, + 66 ], "dependencies": [], "blockers": [], @@ -4938,7 +4938,7 @@ const atrees = { "cost": -5 } ], - "id": 138 + "id": 67 }, { "display_name": "Martyr", @@ -4946,7 +4946,7 @@ const atrees = { "archetype": "Paladin", "archetype_req": 0, "parents": [ - 134 + 63 ], "dependencies": [], "blockers": [], @@ -4961,7 +4961,7 @@ const atrees = { "aoe": 12 }, "effects": [], - "id": 139 + "id": 68 } ] -} +} \ No newline at end of file diff --git a/js/atree_constants_min.js b/js/atree_constants_min.js index ac8955c..52d1082 100644 --- a/js/atree_constants_min.js +++ b/js/atree_constants_min.js @@ -1 +1 @@ -const atrees={Archer:[{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:[60,34],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}}]}],id:0},{display_name:"Escape",desc:"Throw yourself backward to avoid danger. (Hold shift while escaping to cancel)",archetype:"",archetype_req:0,parents:[3],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}}]}],id:1},{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}}]}],id:2},{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:[31],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]},{}],id:3},{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:[68,86,5],dependencies:[],blockers:[],cost:2,display:{row:16,col:6},properties:{aoe:.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}}],id:4},{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:[4,82],dependencies:[7],blockers:[],cost:2,display:{row:16,col:8},properties:{aoe:2,duration:5,slowness:.4},effects:[{type:"add_spell_prop",base_spell:1,target_part:"Bryophyte Roots",cost:0,multipliers:[40,20,0,0,0,0]}],id:5},{display_name:"Nimble String",desc:"Arrow Storm throw out +8 arrows per stream and shoot twice as fast.",archetype:"",archetype_req:0,parents:[83,69],dependencies:[7],blockers:[68],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}}],id:6},{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:[58,34],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}}]}],id:7},{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:[59,67],dependencies:[0],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}}]}],id:8},{display_name:"Windy Feet",base_abil:"Escape",desc:"When casting Escape, give speed to yourself and nearby allies.",archetype:"",archetype_req:0,parents:[7],dependencies:[],blockers:[],cost:1,display:{row:10,col:1},properties:{aoe:8,duration:120},type:"stat_bonus",bonuses:[{type:"stat",name:"spd",value:20}],id:9},{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:[5],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]}],id:10},{display_name:"Windstorm",desc:"Arrow Storm shoot +1 stream of arrows, effectively doubling its damage.",archetype:"",archetype_req:0,parents:[8,33],dependencies:[],blockers:[68],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}}],id:11},{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:[61,40,33],dependencies:[],blockers:[20],cost:2,display:{row:21,col:5},properties:{range:20},effects:[],id:12},{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:[12,40],dependencies:[],blockers:[],cost:2,display:{row:22,col:6},properties:{},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Arrow Bomb",cost:0,multipliers:[40,0,0,0,0,0]}],id:13},{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:[62,64],dependencies:[61],blockers:[],cost:2,display:{row:25,col:4},properties:{range:64,focusReq:2},effects:[{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]}]}],id:14},{display_name:"Fierce Stomp",desc:"When using Escape, hold shift to quickly drop down and deal damage.",archetype:"Boltslinger",archetype_req:0,parents:[42,64],dependencies:[],blockers:[],cost:2,display:{row:26,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}}],id:15},{display_name:"Scorched Earth",desc:"Fire Creep become much stronger.",archetype:"Sharpshooter",archetype_req:0,parents:[14],dependencies:[4],blockers:[],cost:1,display:{row:26,col:5},properties:{duration:2,aoe:.4},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Fire Creep",cost:0,multipliers:[10,0,0,0,5,0]}],id:16},{display_name:"Leap",desc:"When you double tap jump, leap foward. (2s Cooldown)",archetype:"Boltslinger",archetype_req:5,parents:[42,55],dependencies:[],blockers:[],cost:2,display:{row:28,col:0},properties:{cooldown:2},effects:[],id:17},{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:[14,44,55],dependencies:[2],blockers:[],cost:2,display:{row:28,col:4},properties:{gravity:0},effects:[{type:"convert_spell_conv",target_part:"all",conversion:"thunder"}],id:18},{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:[43,44],dependencies:[4],blockers:[],cost:2,display:{row:28,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]}],id:19},{display_name:"Escape Artist",desc:"When casting Escape, release 100 arrows towards the ground.",archetype:"Boltslinger",archetype_req:0,parents:[46,17],dependencies:[],blockers:[12],cost:2,display:{row:31,col:0},properties:{},effects:[{type:"add_spell_prop",base_spell:2,target_part:"Escape Artist",cost:0,multipliers:[30,0,10,0,0,0]}],id:20},{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:[18,44,47],dependencies:[61],blockers:[],cost:2,display:{row:31,col:5},properties:{focus:1,timer:5},type:"stat_bonus",bonuses:[{type:"stat",name:"damPct",value:50}],id:21},{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:[21,47],dependencies:[0],blockers:[],cost:2,display:{row:32,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]}],id:22},{display_name:"Arrow Hurricane",desc:"Arrow Storm will shoot +2 stream of arrows.",archetype:"Boltslinger",archetype_req:8,parents:[48,20],dependencies:[],blockers:[68],cost:2,display:{row:33,col:0},properties:{},effects:[{type:"add_spell_prop",base_spell:1,target_part:"Total Damage",cost:0,hits:{"Single Stream":2}}],id:23},{display_name:"Geyser Stomp",desc:"Fierce Stomp will create geysers, dealing more damage and vertical knockback.",archetype:"",archetype_req:0,parents:[56],dependencies:[15],blockers:[],cost:2,display:{row:37,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]}],id:24},{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:[49],dependencies:[7],blockers:[],cost:2,display:{row:37,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}}]}],id:25},{display_name:"Grape Bomb",desc:"Arrow bomb will throw 3 additional smaller bombs when exploding.",archetype:"",archetype_req:0,parents:[51],dependencies:[],blockers:[],cost:2,display:{row:37,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]}],id:26},{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:[26],dependencies:[10],blockers:[],cost:2,display:{row:38,col:6},properties:{attackSpeed:.2},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Tangled Traps",cost:0,multipliers:[20,0,0,0,0,20]}],id:27},{display_name:"Snow Storm",desc:"Enemies near you will be slowed down.",archetype:"",archetype_req:0,parents:[24,63],dependencies:[],blockers:[],cost:2,display:{row:39,col:2},properties:{range:2.5,slowness:.3},id:28},{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:[28],dependencies:[8],blockers:[],cost:2,display:{row:40,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}}],id:29},{display_name:"Minefield",desc:"Allow you to place +6 Traps, but with reduced damage and range.",archetype:"Trapper",archetype_req:10,parents:[26,53],dependencies:[10],blockers:[],cost:2,display:{row:40,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]}],id:30},{display_name:"Bow Proficiency I",desc:"Improve your Main Attack's damage and range when using a bow.",archetype:"",archetype_req:0,parents:[2],dependencies:[],blockers:[],cost:1,display:{row:2,col:4},properties:{mainAtk_range:6},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"mdPct",value:5}]}],id:31},{display_name:"Cheaper Arrow Bomb",desc:"Reduce the Mana cost of Arrow Bomb.",archetype:"",archetype_req:0,parents:[31],dependencies:[],blockers:[],cost:1,display:{row:2,col:6},properties:{},effects:[{type:"add_spell_prop",base_spell:3,cost:-10}],id:32},{display_name:"Cheaper Arrow Storm",desc:"Reduce the Mana cost of Arrow Storm.",archetype:"",archetype_req:0,parents:[12,11,61],dependencies:[],blockers:[],cost:1,display:{row:21,col:3},properties:{},effects:[{type:"add_spell_prop",base_spell:1,cost:-5}],id:33},{display_name:"Cheaper Escape",desc:"Reduce the Mana cost of Escape.",archetype:"",archetype_req:0,parents:[7,0],dependencies:[],blockers:[],cost:1,display:{row:9,col:4},properties:{},effects:[{type:"add_spell_prop",base_spell:2,cost:-5}],id:34},{display_name:"Earth Mastery",desc:"Increases your base damage from all Earth attacks",archetype:"Trapper",archetype_req:0,parents:[0],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]}]}],id:82},{display_name:"Thunder Mastery",desc:"Increases your base damage from all Thunder attacks",archetype:"Boltslinger",archetype_req:0,parents:[7,86,34],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]}]}],id:83},{display_name:"Water Mastery",desc:"Increases your base damage from all Water attacks",archetype:"Sharpshooter",archetype_req:0,parents:[34,83,86],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]}]}],id:84},{display_name:"Air Mastery",desc:"Increases base damage from all Air attacks",archetype:"Battle Monk",archetype_req:0,parents:[7],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]}]}],id:85},{display_name:"Fire Mastery",desc:"Increases base damage from all Earth attacks",archetype:"Sharpshooter",archetype_req:0,parents:[83,0,34],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]}]}],id:86},{display_name:"More Shields",desc:"Give +2 charges to Arrow Shield.",archetype:"",archetype_req:0,parents:[12,10],dependencies:[0],blockers:[],cost:1,display:{row:21,col:7},properties:{shieldCharges:2},id:40},{display_name:"Stormy Feet",desc:"Windy Feet will last longer and add more speed.",archetype:"",archetype_req:0,parents:[11],dependencies:[9],blockers:[],cost:1,display:{row:23,col:1},properties:{duration:60},effects:[{type:"stat_bonus",bonuses:[{type:"stat",name:"spdPct",value:20}]}],id:41},{display_name:"Refined Gunpowder",desc:"Increase the damage of Arrow Bomb.",archetype:"",archetype_req:0,parents:[11],dependencies:[],blockers:[],cost:1,display:{row:25,col:0},properties:{},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Arrow Bomb",cost:0,multipliers:[50,0,0,0,0,0]}],id:42},{display_name:"More Traps",desc:"Increase the maximum amount of active Traps you can have by +2.",archetype:"Trapper",archetype_req:10,parents:[54],dependencies:[10],blockers:[],cost:1,display:{row:26,col:8},properties:{traps:2},id:43},{display_name:"Better Arrow Shield",desc:"Arrow Shield will gain additional area of effect, knockback and damage.",archetype:"Sharpshooter",archetype_req:0,parents:[19,18,14],dependencies:[0],blockers:[],cost:1,display:{row:28,col:6},properties:{aoe:1},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Arrow Shield",multipliers:[40,0,0,0,0,0]}],id:44},{display_name:"Better Leap",desc:"Reduce leap's cooldown by 1s.",archetype:"Boltslinger",archetype_req:0,parents:[17,55],dependencies:[17],blockers:[],cost:1,display:{row:29,col:1},properties:{cooldown:-1},id:45},{display_name:"Better Guardian Angels",desc:"Your Guardian Angels can shoot +4 arrows before disappearing.",archetype:"Boltslinger",archetype_req:0,parents:[20,55],dependencies:[8],blockers:[],cost:1,display:{row:31,col:2},properties:{},effects:[{type:"add_spell_prop",base_spell:4,target_part:"Single Bow",cost:0,hits:{"Single Arrow":4}}],id:46},{display_name:"Cheaper Arrow Storm (2)",desc:"Reduce the Mana cost of Arrow Storm.",archetype:"",archetype_req:0,parents:[21,19],dependencies:[],blockers:[],cost:1,display:{row:31,col:8},properties:{},effects:[{type:"add_spell_prop",base_spell:1,cost:-5}],id:47},{display_name:"Precise Shot",desc:"+30% Critical Hit Damage",archetype:"",archetype_req:0,parents:[46,49,23],dependencies:[],blockers:[],cost:1,display:{row:33,col:2},properties:{mainAtk_range:6},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"mdCritPct",value:30}]}],id:48},{display_name:"Cheaper Arrow Shield",desc:"Reduce the Mana cost of Arrow Shield.",archetype:"",archetype_req:0,parents:[48,21],dependencies:[],blockers:[],cost:1,display:{row:33,col:4},properties:{},effects:[{type:"add_spell_prop",base_spell:4,cost:-5}],id:49},{display_name:"Rocket Jump",desc:"Arrow Bomb's self-damage will knockback you farther away.",archetype:"",archetype_req:0,parents:[47,21],dependencies:[2],blockers:[],cost:1,display:{row:33,col:6},properties:{},id:50},{display_name:"Cheaper Escape (2)",desc:"Reduce the Mana cost of Escape.",archetype:"",archetype_req:0,parents:[22,70],dependencies:[],blockers:[],cost:1,display:{row:34,col:7},properties:{},effects:[{type:"add_spell_prop",base_spell:2,cost:-5}],id:51},{display_name:"Stronger Hook",desc:"Increase your Grappling Hook's range, speed and strength.",archetype:"Trapper",archetype_req:5,parents:[51],dependencies:[12],blockers:[],cost:1,display:{row:35,col:8},properties:{range:8},id:52},{display_name:"Cheaper Arrow Bomb (2)",desc:"Reduce the Mana cost of Arrow Bomb.",archetype:"",archetype_req:0,parents:[63,30],dependencies:[],blockers:[],cost:1,display:{row:40,col:5},properties:{},effects:[{type:"add_spell_prop",base_spell:3,cost:-5}],id:53},{display_name:"Bouncing Bomb",desc:"Arrow Bomb will bounce once when hitting a block or enemy",archetype:"",archetype_req:0,parents:[40],dependencies:[],blockers:[],cost:2,display:{row:25,col:7},properties:{},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Total Damage",cost:0,hits:{"Arrow Bomb":2}}],id:54},{display_name:"Homing Shots",desc:"Your Main Attack arrows will follow nearby enemies and not be affected by gravity",archetype:"",archetype_req:0,parents:[17,18],dependencies:[],blockers:[],cost:2,display:{row:28,col:2},properties:{},effects:[],id:55},{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:[23,48],dependencies:[],blockers:[],cost:2,display:{row:34,col:1},properties:{},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Shrapnel Bomb",cost:0,multipliers:[40,0,0,0,20,0]}],id:56},{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:[24],dependencies:[],blockers:[],cost:2,display:{row:38,col:0},properties:{},effects:[],id:57},{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:[1],dependencies:[],blockers:[60],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:.7}],id:58},{display_name:"Triple Shots",desc:"Triple Main Attack arrows, but they deal -20% damage per arrow",archetype:"Boltslinger",archetype_req:0,parents:[69,67],dependencies:[58],blockers:[],cost:1,display:{row:17,col:0},properties:{arrow:2},effects:[{type:"add_spell_prop",base_spell:0,target_part:"Melee Damage",cost:0,multipliers:.7}],id:59},{display_name:"Power Shots",desc:"Main Attack arrows have increased speed and knockback",archetype:"Sharpshooter",archetype_req:0,parents:[1],dependencies:[],blockers:[58],cost:1,display:{row:7,col:6},properties:{},effects:[],id:60},{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:[68],dependencies:[],blockers:[],cost:2,display:{row:19,col:4},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Focus",output:{type:"stat",abil_name:"Focus",name:"damMult"},scaling:[35],max:3}],id:61},{display_name:"More Focus",desc:"Add +2 max Focus",archetype:"Sharpshooter",archetype_req:0,parents:[33,12],dependencies:[],blockers:[],cost:1,display:{row:22,col:4},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Focus",output:{type:"stat",abil_name:"Focus",name:"damMult"},scaling:[35],max:5}],id:62},{display_name:"More Focus (2)",desc:"Add +2 max Focus",archetype:"Sharpshooter",archetype_req:0,parents:[25,28],dependencies:[],blockers:[],cost:1,display:{row:39,col:4},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Focus",output:{type:"stat",abil_name:"Focus",name:"damMult"},scaling:[35],max:7}],id:63},{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:[42,14],dependencies:[],blockers:[],cost:1,display:{row:25,col:2},properties:{},effects:[{type:"stat_scaling",slider:!1,inputs:[{type:"stat",name:"spd"}],output:{type:"stat",name:"sdRaw"},scaling:[1],max:100}],id:64},{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:[40],dependencies:[10],blockers:[],cost:2,display:{row:22,col:8},properties:{max:80},effects:[],id:65},{display_name:"Stronger Patient Hunter",desc:"Add +80% Max Damage to Patient Hunter",archetype:"Trapper",archetype_req:0,parents:[26],dependencies:[65],blockers:[],cost:1,display:{row:38,col:8},properties:{max:80},effects:[],id:66},{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:[59,6],dependencies:[],blockers:[],cost:2,display:{row:17,col:2},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Hits dealt",output:{type:"stat",name:"spd"},scaling:[6],max:200}],id:67},{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:[84,4],dependencies:[7],blockers:[11,6,23],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}}]}],id:68},{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:[6,85],dependencies:[0],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]}],id:69},{display_name:"Decimator",desc:"Phantom Ray will increase its damage by 10% everytime you do not miss with it (Max 50%)",archetype:"Sharpshooter",archetype_req:0,parents:[49],dependencies:[68],blockers:[],cost:1,display:{row:34,col:5},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Phantom Ray hits",output:{type:"stat",name:"PhRayDmg"},scaling:10,max:50}],id:70}],Warrior:[{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,icon:"node_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}}]}],id:71},{display_name:"Spear Proficiency 1",desc:"Improve your Main Attack's damage and range w/ spear",archetype:"",archetype_req:0,parents:[71],dependencies:[],blockers:[],cost:1,display:{row:2,col:4,icon:"node_0"},properties:{melee_range:1},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"mdPct",value:5}]}],id:72},{display_name:"Cheaper Bash",desc:"Reduce the Mana cost of Bash",archetype:"",archetype_req:0,parents:[72],dependencies:[],blockers:[],cost:1,display:{row:2,col:2,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:1,cost:-10}],id:73},{display_name:"Double Bash",desc:"Bash will hit a second time at a farther range",archetype:"",archetype_req:0,parents:[72],dependencies:[],blockers:[],cost:1,display:{row:4,col:4,icon:"node_1"},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]}],id:74},{display_name:"Charge",desc:"Charge forward at high speed (hold shift to cancel)",archetype:"",archetype_req:0,parents:[74],dependencies:[],blockers:[],cost:1,display:{row:6,col:4,icon:"node_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}}]}],id:75},{display_name:"Heavy Impact",desc:"After using Charge, violently crash down into the ground and deal damage",archetype:"",archetype_req:0,parents:[79],dependencies:[],blockers:[],cost:1,display:{row:9,col:1,icon:"node_1"},properties:{aoe:4},effects:[{type:"add_spell_prop",base_spell:2,target_part:"Heavy Impact",cost:0,multipliers:[100,0,0,0,0,0]}],id:76},{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:[75],dependencies:[],blockers:[78],cost:1,display:{row:6,col:2,icon:"node_0"},properties:{},effects:[{type:"stat_scaling",slider:!1,inputs:[{type:"stat",name:"mdPct"},{type:"stat",name:"mdRaw"}],output:{type:"stat",name:"spd"},scaling:[1,1],max:20}],id:77},{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:[75],dependencies:[],blockers:[77],cost:1,display:{row:6,col:6,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"baseResist",value:"5"}]},{type:"stat_scaling",slider:!1,inputs:[{type:"stat",name:"hprRaw"},{type:"stat",name:"hprPct"}],output:{type:"stat",name:"hpBonus"},scaling:[10,10],max:100}],id:78},{display_name:"Uppercut",desc:"Rocket enemies in the air and deal massive damage",archetype:"",archetype_req:0,parents:[77],dependencies:[],blockers:[],cost:1,display:{row:8,col:2,icon:"node_4"},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}}]}],id:79},{display_name:"Cheaper Charge",desc:"Reduce the Mana cost of Charge",archetype:"",archetype_req:0,parents:[79,81],dependencies:[],blockers:[],cost:1,display:{row:8,col:4,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:2,cost:-5}],id:80},{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:[78],dependencies:[],blockers:[],cost:1,display:{row:8,col:6,icon:"node_4"},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]}]}],id:81},{display_name:"Earth Mastery",desc:"Increases base damage from all Earth attacks",archetype:"Fallen",archetype_req:0,parents:[79],dependencies:[],blockers:[],cost:1,display:{row:10,col:0,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"eDamPct",value:20},{type:"stat",name:"eDam",value:[2,4]}]}],id:82},{display_name:"Thunder Mastery",desc:"Increases base damage from all Thunder attacks",archetype:"Fallen",archetype_req:0,parents:[79,85,80],dependencies:[],blockers:[],cost:1,display:{row:10,col:2,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"tDamPct",value:10},{type:"stat",name:"tDam",value:[1,8]}]}],id:83},{display_name:"Water Mastery",desc:"Increases base damage from all Water attacks",archetype:"Battle Monk",archetype_req:0,parents:[80,83,85],dependencies:[],blockers:[],cost:1,display:{row:11,col:4,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"wDamPct",value:15},{type:"stat",name:"wDam",value:[2,4]}]}],id:84},{display_name:"Air Mastery",desc:"Increases base damage from all Air attacks",archetype:"Battle Monk",archetype_req:0,parents:[81,83,80],dependencies:[],blockers:[],cost:1,display:{row:10,col:6,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"aDamPct",value:15},{type:"stat",name:"aDam",value:[3,4]}]}],id:85},{display_name:"Fire Mastery",desc:"Increases base damage from all Earth attacks",archetype:"Paladin",archetype_req:0,parents:[81],dependencies:[],blockers:[],cost:1,display:{row:10,col:8,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"fDamPct",value:15},{type:"stat",name:"fDam",value:[3,5]}]}],id:86},{display_name:"Quadruple Bash",desc:"Bash will hit 4 times at an even larger range",archetype:"Fallen",archetype_req:0,parents:[82,88],dependencies:[],blockers:[],cost:2,display:{row:12,col:0,icon:"node_1"},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]}],id:87},{display_name:"Fireworks",desc:"Mobs hit by Uppercut will explode mid-air and receive additional damage",archetype:"Fallen",archetype_req:0,parents:[83,87],dependencies:[],blockers:[],cost:2,display:{row:12,col:2,icon:"node_1"},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}}],id:88},{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:[84],dependencies:[79],blockers:[],cost:2,display:{row:13,col:4,icon:"node_1"},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"}],id:89},{display_name:"Flyby Jab",desc:"Damage enemies in your way when using Charge",archetype:"",archetype_req:0,parents:[85,91],dependencies:[],blockers:[],cost:2,display:{row:12,col:6,icon:"node_1"},properties:{aoe:2},effects:[{type:"add_spell_prop",base_spell:2,target_part:"Flyby Jab",cost:0,multipliers:[20,0,0,0,0,40]}],id:90},{display_name:"Flaming Uppercut",desc:"Uppercut will light mobs on fire, dealing damage every 0.6 seconds",archetype:"Paladin",archetype_req:0,parents:[86,90],dependencies:[79],blockers:[],cost:2,display:{row:12,col:8,icon:"node_1"},properties:{duration:3,tick:.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}}],id:91},{display_name:"Iron Lungs",desc:"War Scream deals more damage",archetype:"",archetype_req:0,parents:[90,91],dependencies:[],blockers:[],cost:1,display:{row:13,col:7,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:4,target_part:"War Scream",cost:0,multipliers:[30,0,0,0,0,30]}],id:92},{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:[94],dependencies:[],blockers:[],cost:2,display:{row:15,col:2,icon:"node_3"},properties:{},effects:[],id:93},{display_name:"Counter",desc:"When dodging a nearby enemy attack, get 30% chance to instantly attack back",archetype:"Battle Monk",archetype_req:0,parents:[89],dependencies:[],blockers:[],cost:2,display:{row:15,col:4,icon:"node_1"},properties:{chance:30},effects:[{type:"add_spell_prop",base_spell:5,target_part:"Counter",cost:0,multipliers:[60,0,20,0,0,20]}],id:94},{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:[92],dependencies:[81],blockers:[],cost:2,display:{row:15,col:7,icon:"node_3"},properties:{mantle_charge:3},effects:[],id:95},{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:[87,88],dependencies:[81],blockers:[],cost:2,display:{row:16,col:1,icon:"node_3"},properties:{cooldown:15},effects:[{type:"stat_scaling",slider:!0,slider_name:"Corrupted",output:{type:"stat",name:"raw"},scaling:[4],slider_step:2,max:120}],id:96},{display_name:"Spear Proficiency 2",desc:"Improve your Main Attack's damage and range w/ spear",archetype:"",archetype_req:0,parents:[96,98],dependencies:[],blockers:[],cost:1,display:{row:17,col:0,icon:"node_0"},properties:{melee_range:1},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"mdPct",value:5}]}],id:97},{display_name:"Cheaper Uppercut",desc:"Reduce the Mana Cost of Uppercut",archetype:"",archetype_req:0,parents:[97,99,94],dependencies:[],blockers:[],cost:1,display:{row:17,col:3,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:3,cost:-5}],id:98},{display_name:"Aerodynamics",desc:"During Charge, you can steer and change direction",archetype:"Battle Monk",archetype_req:0,parents:[98,100],dependencies:[],blockers:[],cost:2,display:{row:17,col:5,icon:"node_1"},properties:{},effects:[],id:99},{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:[99,95],dependencies:[],blockers:[],cost:1,display:{row:17,col:7,icon:"node_1"},properties:{},effects:[{type:"add_spell_prop",base_spell:4,cost:-5}],id:100},{display_name:"Precise Strikes",desc:"+30% Critical Hit Damage",archetype:"",archetype_req:0,parents:[98,97],dependencies:[],blockers:[],cost:1,display:{row:18,col:2,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"critDmg",value:30}]}],id:101},{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:[99,100],dependencies:[81],blockers:[],cost:2,display:{row:18,col:6,icon:"node_1"},properties:{},effects:[{type:"add_spell_prop",base_spell:4,target_part:"Air Shout",cost:0,multipliers:[20,0,0,0,0,5]}],id:102},{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:[97],dependencies:[96],blockers:[],cost:2,display:{row:20,col:0,icon:"node_2"},properties:{},effects:[{type:"stat_scaling",slider:!1,inputs:[{type:"stat",name:"hpBonus"}],output:{type:"stat",name:"damMult"},scaling:[3],max:300}],id:103},{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:[98,105],dependencies:[],blockers:[],cost:2,display:{row:20,col:3,icon:"node_1"},properties:{},effects:[{type:"add_spell_prop",base_spell:2,target_part:"Flying Kick",cost:0,multipliers:[120,0,0,10,0,20]}],id:104},{display_name:"Stronger Mantle",desc:"Add +2 additional charges to Mantle of the Bovemists",archetype:"Paladin",archetype_req:0,parents:[106,104],dependencies:[95],blockers:[],cost:1,display:{row:20,col:6,icon:"node_0"},properties:{mantle_charge:2},effects:[],id:105},{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:[105,100],dependencies:[],blockers:[],cost:2,display:{row:20,col:8,icon:"node_2"},properties:{cooldown:1},effects:[],id:106},{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:[103,108],dependencies:[],blockers:[],cost:2,display:{row:22,col:0,icon:"node_1"},properties:{},effects:[{type:"add_spell_prop",base_spell:1,target_part:"Boiling Blood",cost:0,multipliers:[25,0,0,0,5,0]}],id:107},{display_name:"Ragnarokkr",desc:"War Scream become deafening, increasing its range and giving damage bonus to players",archetype:"Fallen",archetype_req:0,parents:[107,104],dependencies:[81],blockers:[],cost:2,display:{row:22,col:2,icon:"node_2"},properties:{damage_bonus:30,aoe:2},effects:[{type:"add_spell_prop",base_spell:4,cost:10}],id:108},{display_name:"Ambidextrous",desc:"Increase your chance to attack with Counter by +30%",archetype:"",archetype_req:0,parents:[104,105,110],dependencies:[94],blockers:[],cost:1,display:{row:22,col:4,icon:"node_0"},properties:{chance:30},effects:[],id:109},{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:[109,111],dependencies:[],blockers:[],cost:1,display:{row:22,col:6,icon:"node_0"},properties:{},effects:[{type:"stat_scaling",slider:!1,inputs:[{type:"stat",name:"hpBonus"}],output:{type:"stat",name:"fDamPct"},scaling:[2],max:100,slider_step:100}],id:110},{display_name:"Stronger Bash",desc:"Increase the damage of Bash",archetype:"",archetype_req:0,parents:[110,106],dependencies:[],blockers:[],cost:1,display:{row:22,col:8,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:1,target_part:"Single Hit",cost:0,multipliers:[30,0,0,0,0,0]}],id:111},{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:[108,107],dependencies:[96],blockers:[],cost:2,display:{row:23,col:1,icon:"node_1"},properties:{},effects:[],id:112},{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:[108],dependencies:[88],blockers:[],cost:2,display:{row:24,col:2,icon:"node_1"},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}}],id:113},{display_name:"Collide",desc:"Mobs thrown into walls from Flying Kick will explode and receive additonal damage",archetype:"Battle Monk",archetype_req:4,parents:[109,110],dependencies:[104],blockers:[],cost:2,display:{row:23,col:5,icon:"node_1"},properties:{aoe:4},effects:[{type:"add_spell_prop",base_spell:2,target_part:"Collide",cost:0,multipliers:[100,0,0,0,50,0]}],id:114},{display_name:"Rejuvenating Skin",desc:"Regain back 30% of the damage you take as healing over 30s",archetype:"Paladin",archetype_req:0,parents:[110,111],dependencies:[],blockers:[],cost:2,display:{row:23,col:7,icon:"node_3"},properties:{},effects:[],id:115},{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:[107,117],dependencies:[96],blockers:[],cost:1,display:{row:26,col:0,icon:"node_0"},properties:{cooldown:-5},effects:[{type:"stat_scaling",slider:!0,slider_name:"Corrupted",output:{type:"stat",name:"raw"},scaling:[1],slider_step:2,max:50}],id:116},{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:[118,116],dependencies:[],blockers:[],cost:1,display:{row:26,col:2,icon:"node_0"},properties:{},effects:[{type:"stat_scaling",inputs:[{type:"stat",name:"ref"}],output:{type:"stat",name:"mr"},scaling:[1],max:10,slider_step:4}],id:117},{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:[109,117],dependencies:[79],blockers:[],cost:2,display:{row:26,col:4,icon:"node_1"},properties:{range:2},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Uppercut",cost:0,multipliers:[0,0,0,0,0,50]}],id:118},{display_name:"Mythril Skin",desc:"Gain +5% Base Resistance and become immune to knockback",archetype:"Paladin",archetype_req:6,parents:[115],dependencies:[],blockers:[],cost:2,display:{row:26,col:7,icon:"node_1"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"baseResist",value:5}]}],id:119},{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:[116,117],dependencies:[96],blockers:[],cost:2,display:{row:27,col:1,icon:"node_2"},properties:{duration:5},effects:[],id:120},{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:[119,122],dependencies:[],blockers:[],cost:2,display:{row:27,col:6,icon:"node_1"},properties:{},effects:[{type:"add_spell_prop",base_spell:5,target_part:"Shield Strike",cost:0,multipliers:[60,0,20,0,0,0]}],id:121},{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:[119],dependencies:[],blockers:[],cost:2,display:{row:27,col:8,icon:"node_2"},properties:{aoe:6},effects:[{type:"add_spell_prop",base_spell:5,target_part:"Sparkling Hope",cost:0,multipliers:[10,0,5,0,0,0]}],id:122},{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:[124,116],dependencies:[],blockers:[],cost:2,display:{row:28,col:0,icon:"node_2"},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Corrupted",output:{type:"stat",name:"bashAoE"},scaling:[1],max:10,slider_step:3}],id:123},{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:[123,125],dependencies:[],blockers:[],cost:2,display:{row:28,col:2,icon:"node_1"},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}}],id:124},{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:[124,118],dependencies:[],blockers:[],cost:1,display:{row:28,col:4,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:2,cost:-5},{type:"raw_stat",bonuses:[{type:"stat",name:"spd",value:20}]}],id:125},{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:[124,123],dependencies:[],blockers:[],cost:2,display:{row:29,col:1,icon:"node_1"},properties:{},effects:[],id:126},{display_name:"Axe Kick",desc:"Increase the damage of Uppercut, but also increase its mana cost",archetype:"",archetype_req:0,parents:[124,125],dependencies:[],blockers:[],cost:1,display:{row:29,col:3,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:3,target_part:"Uppercut",cost:10,multipliers:[100,0,0,0,0,0]}],id:127},{display_name:"Radiance",desc:"Bash will buff your allies' positive IDs. (15s Cooldown)",archetype:"Paladin",archetype_req:2,parents:[125,129],dependencies:[],blockers:[],cost:2,display:{row:29,col:5,icon:"node_2"},properties:{cooldown:15},effects:[],id:128},{display_name:"Cheaper Bash 2",desc:"Reduce the Mana cost of Bash",archetype:"",archetype_req:0,parents:[128,121,122],dependencies:[],blockers:[],cost:1,display:{row:29,col:7,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:1,cost:-5}],id:129},{display_name:"Cheaper War Scream",desc:"Reduce the Mana cost of War Scream",archetype:"",archetype_req:0,parents:[123],dependencies:[],blockers:[],cost:1,display:{row:31,col:0,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:4,cost:-5}],id:130},{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:[133],dependencies:[],blockers:[],cost:2,display:{row:31,col:2,icon:"node_3"},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Hits dealt",output:{type:"stat",name:"rainrawButDifferent"},scaling:[2],max:50}],id:131},{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:[133],dependencies:[],blockers:[],cost:2,display:{row:32,col:5,icon:"node_1"},properties:{},effects:[{type:"convert_spell_conv",target_part:"all",conversion:"thunder"},{type:"raw_stat",bonuses:[{type:"prop",abil_name:"Bash",name:"aoe",value:3}]}],id:132},{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:[125],dependencies:[],blockers:[],cost:1,display:{row:31,col:4,icon:"node_1"},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}}],id:133},{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:[129],dependencies:[],blockers:[],cost:2,display:{row:32,col:7,icon:"node_3"},properties:{},effects:[],id:134},{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:[130],dependencies:[],blockers:[],cost:2,display:{row:34,col:1,icon:"node_3"},properties:{},effects:[],id:135},{display_name:"Haemorrhage",desc:"Reduce Blood Pact's health cost. (0.5% health per mana)",archetype:"Fallen",archetype_req:0,parents:[135],dependencies:[135],blockers:[],cost:1,display:{row:35,col:2,icon:"node_1"},properties:{},effects:[],id:136},{display_name:"Brink of Madness",desc:"If your health is 25% full or less, gain +40% Resistance",archetype:"",archetype_req:0,parents:[135,138],dependencies:[],blockers:[],cost:2,display:{row:35,col:4,icon:"node_2"},properties:{},effects:[],id:137},{display_name:"Cheaper Uppercut 2",desc:"Reduce the Mana cost of Uppercut",archetype:"",archetype_req:0,parents:[134,137],dependencies:[],blockers:[],cost:1,display:{row:35,col:6,icon:"node_0"},properties:{},effects:[{type:"add_spell_prop",base_spell:3,cost:-5}],id:138},{display_name:"Martyr",desc:"When you receive a fatal blow, all nearby allies become invincible",archetype:"Paladin",archetype_req:0,parents:[134],dependencies:[],blockers:[],cost:2,display:{row:35,col:8,icon:"node_1"},properties:{duration:3,aoe:12},effects:[],id:139}]} \ No newline at end of file +const atrees={"Archer":[{"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":[60,34],"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}}]}],"id":0},{"display_name":"Escape","desc":"Throw yourself backward to avoid danger. (Hold shift while escaping to cancel)","archetype":"","archetype_req":0,"parents":[3],"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}}]}],"id":1},{"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}}]}],"id":2},{"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":[31],"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]},{}],"id":3},{"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":[68,39,5],"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}}],"id":4},{"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":[4,35],"dependencies":[7],"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]}],"id":5},{"display_name":"Nimble String","desc":"Arrow Storm throw out +8 arrows per stream and shoot twice as fast.","archetype":"","archetype_req":0,"parents":[36,69],"dependencies":[7],"blockers":[68],"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}}],"id":6},{"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":[58,34],"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}}]}],"id":7},{"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":[59,67],"dependencies":[0],"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":[30,0,0,0,0,10]},{"name":"Single Bow","type":"total","hits":{"Single Arrow":8}},{"name":"Total Damage","type":"total","hits":{"Single Bow":2}}]}],"id":8},{"display_name":"Windy Feet","base_abil":"Escape","desc":"When casting Escape, give speed to yourself and nearby allies.","archetype":"","archetype_req":0,"parents":[7],"dependencies":[],"blockers":[],"cost":1,"display":{"row":10,"col":1},"properties":{"aoe":8,"duration":120},"type":"stat_bonus","bonuses":[{"type":"stat","name":"spd","value":20}],"id":9},{"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":[5],"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]}],"id":10},{"display_name":"Windstorm","desc":"Arrow Storm shoot +1 stream of arrows, effectively doubling its damage.","archetype":"","archetype_req":0,"parents":[8,33],"dependencies":[],"blockers":[68],"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}}],"id":11},{"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":[61,40,33],"dependencies":[],"blockers":[20],"cost":2,"display":{"row":21,"col":5},"properties":{"range":20},"effects":[],"id":12},{"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":[12,40],"dependencies":[],"blockers":[],"cost":2,"display":{"row":22,"col":6},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"target_part":"Arrow Bomb","cost":0,"multipliers":[40,0,0,0,0,0]}],"id":13},{"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":[62,64],"dependencies":[61],"blockers":[],"cost":2,"display":{"row":25,"col":4},"properties":{"range":64,"focusReq":2},"effects":[{"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]}]}],"id":14},{"display_name":"Fierce Stomp","desc":"When using Escape, hold shift to quickly drop down and deal damage.","archetype":"Boltslinger","archetype_req":0,"parents":[42,64],"dependencies":[],"blockers":[],"cost":2,"display":{"row":26,"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}}],"id":15},{"display_name":"Scorched Earth","desc":"Fire Creep become much stronger.","archetype":"Sharpshooter","archetype_req":0,"parents":[14],"dependencies":[4],"blockers":[],"cost":1,"display":{"row":26,"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]}],"id":16},{"display_name":"Leap","desc":"When you double tap jump, leap foward. (2s Cooldown)","archetype":"Boltslinger","archetype_req":5,"parents":[42,55],"dependencies":[],"blockers":[],"cost":2,"display":{"row":28,"col":0},"properties":{"cooldown":2},"effects":[],"id":17},{"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":[14,44,55],"dependencies":[2],"blockers":[],"cost":2,"display":{"row":28,"col":4},"properties":{"gravity":0},"effects":[{"type":"convert_spell_conv","target_part":"all","conversion":"thunder"}],"id":18},{"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":[43,44],"dependencies":[4],"blockers":[],"cost":2,"display":{"row":28,"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]}],"id":19},{"display_name":"Escape Artist","desc":"When casting Escape, release 100 arrows towards the ground.","archetype":"Boltslinger","archetype_req":0,"parents":[46,17],"dependencies":[],"blockers":[12],"cost":2,"display":{"row":31,"col":0},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":2,"target_part":"Escape Artist","cost":0,"multipliers":[30,0,10,0,0,0]}],"id":20},{"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":[18,44,47],"dependencies":[61],"blockers":[],"cost":2,"display":{"row":31,"col":5},"properties":{"focus":1,"timer":5},"type":"stat_bonus","bonuses":[{"type":"stat","name":"damPct","value":50}],"id":21},{"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":[21,47],"dependencies":[0],"blockers":[],"cost":2,"display":{"row":32,"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]}],"id":22},{"display_name":"Arrow Hurricane","desc":"Arrow Storm will shoot +2 stream of arrows.","archetype":"Boltslinger","archetype_req":8,"parents":[48,20],"dependencies":[],"blockers":[68],"cost":2,"display":{"row":33,"col":0},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":1,"target_part":"Total Damage","cost":0,"hits":{"Single Stream":2}}],"id":23},{"display_name":"Geyser Stomp","desc":"Fierce Stomp will create geysers, dealing more damage and vertical knockback.","archetype":"","archetype_req":0,"parents":[56],"dependencies":[15],"blockers":[],"cost":2,"display":{"row":37,"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]}],"id":24},{"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":[49],"dependencies":[7],"blockers":[],"cost":2,"display":{"row":37,"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}}]}],"id":25},{"display_name":"Grape Bomb","desc":"Arrow bomb will throw 3 additional smaller bombs when exploding.","archetype":"","archetype_req":0,"parents":[51],"dependencies":[],"blockers":[],"cost":2,"display":{"row":37,"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]}],"id":26},{"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":[26],"dependencies":[10],"blockers":[],"cost":2,"display":{"row":38,"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]}],"id":27},{"display_name":"Snow Storm","desc":"Enemies near you will be slowed down.","archetype":"","archetype_req":0,"parents":[24,63],"dependencies":[],"blockers":[],"cost":2,"display":{"row":39,"col":2},"properties":{"range":2.5,"slowness":0.3},"id":28},{"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":[28],"dependencies":[8],"blockers":[],"cost":2,"display":{"row":40,"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}}],"id":29},{"display_name":"Minefield","desc":"Allow you to place +6 Traps, but with reduced damage and range.","archetype":"Trapper","archetype_req":10,"parents":[26,53],"dependencies":[10],"blockers":[],"cost":2,"display":{"row":40,"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]}],"id":30},{"display_name":"Bow Proficiency I","desc":"Improve your Main Attack's damage and range when using a bow.","archetype":"","archetype_req":0,"parents":[2],"dependencies":[],"blockers":[],"cost":1,"display":{"row":2,"col":4},"properties":{"mainAtk_range":6},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"mdPct","value":5}]}],"id":31},{"display_name":"Cheaper Arrow Bomb","desc":"Reduce the Mana cost of Arrow Bomb.","archetype":"","archetype_req":0,"parents":[31],"dependencies":[],"blockers":[],"cost":1,"display":{"row":2,"col":6},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"cost":-10}],"id":32},{"display_name":"Cheaper Arrow Storm","desc":"Reduce the Mana cost of Arrow Storm.","archetype":"","archetype_req":0,"parents":[12,11,61],"dependencies":[],"blockers":[],"cost":1,"display":{"row":21,"col":3},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":1,"cost":-5}],"id":33},{"display_name":"Cheaper Escape","desc":"Reduce the Mana cost of Escape.","archetype":"","archetype_req":0,"parents":[7,0],"dependencies":[],"blockers":[],"cost":1,"display":{"row":9,"col":4},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":2,"cost":-5}],"id":34},{"display_name":"Earth Mastery","desc":"Increases your base damage from all Earth attacks","archetype":"Trapper","archetype_req":0,"parents":[0],"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]}]}],"id":35},{"display_name":"Thunder Mastery","desc":"Increases your base damage from all Thunder attacks","archetype":"Boltslinger","archetype_req":0,"parents":[7,39,34],"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]}]}],"id":36},{"display_name":"Water Mastery","desc":"Increases your base damage from all Water attacks","archetype":"Sharpshooter","archetype_req":0,"parents":[34,36,39],"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]}]}],"id":37},{"display_name":"Air Mastery","desc":"Increases base damage from all Air attacks","archetype":"Battle Monk","archetype_req":0,"parents":[7],"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]}]}],"id":38},{"display_name":"Fire Mastery","desc":"Increases base damage from all Earth attacks","archetype":"Sharpshooter","archetype_req":0,"parents":[36,0,34],"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]}]}],"id":39},{"display_name":"More Shields","desc":"Give +2 charges to Arrow Shield.","archetype":"","archetype_req":0,"parents":[12,10],"dependencies":[0],"blockers":[],"cost":1,"display":{"row":21,"col":7},"properties":{"shieldCharges":2},"id":40},{"display_name":"Stormy Feet","desc":"Windy Feet will last longer and add more speed.","archetype":"","archetype_req":0,"parents":[11],"dependencies":[9],"blockers":[],"cost":1,"display":{"row":23,"col":1},"properties":{"duration":60},"effects":[{"type":"stat_bonus","bonuses":[{"type":"stat","name":"spdPct","value":20}]}],"id":41},{"display_name":"Refined Gunpowder","desc":"Increase the damage of Arrow Bomb.","archetype":"","archetype_req":0,"parents":[11],"dependencies":[],"blockers":[],"cost":1,"display":{"row":25,"col":0},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"target_part":"Arrow Bomb","cost":0,"multipliers":[50,0,0,0,0,0]}],"id":42},{"display_name":"More Traps","desc":"Increase the maximum amount of active Traps you can have by +2.","archetype":"Trapper","archetype_req":10,"parents":[54],"dependencies":[10],"blockers":[],"cost":1,"display":{"row":26,"col":8},"properties":{"traps":2},"id":43},{"display_name":"Better Arrow Shield","desc":"Arrow Shield will gain additional area of effect, knockback and damage.","archetype":"Sharpshooter","archetype_req":0,"parents":[19,18,14],"dependencies":[0],"blockers":[],"cost":1,"display":{"row":28,"col":6},"properties":{"aoe":1},"effects":[{"type":"add_spell_prop","base_spell":3,"target_part":"Arrow Shield","multipliers":[40,0,0,0,0,0]}],"id":44},{"display_name":"Better Leap","desc":"Reduce leap's cooldown by 1s.","archetype":"Boltslinger","archetype_req":0,"parents":[17,55],"dependencies":[17],"blockers":[],"cost":1,"display":{"row":29,"col":1},"properties":{"cooldown":-1},"id":45},{"display_name":"Better Guardian Angels","desc":"Your Guardian Angels can shoot +4 arrows before disappearing.","archetype":"Boltslinger","archetype_req":0,"parents":[20,55],"dependencies":[8],"blockers":[],"cost":1,"display":{"row":31,"col":2},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":4,"target_part":"Single Bow","cost":0,"hits":{"Single Arrow":4}}],"id":46},{"display_name":"Cheaper Arrow Storm (2)","desc":"Reduce the Mana cost of Arrow Storm.","archetype":"","archetype_req":0,"parents":[21,19],"dependencies":[],"blockers":[],"cost":1,"display":{"row":31,"col":8},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":1,"cost":-5}],"id":47},{"display_name":"Precise Shot","desc":"+30% Critical Hit Damage","archetype":"","archetype_req":0,"parents":[46,49,23],"dependencies":[],"blockers":[],"cost":1,"display":{"row":33,"col":2},"properties":{"mainAtk_range":6},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"mdCritPct","value":30}]}],"id":48},{"display_name":"Cheaper Arrow Shield","desc":"Reduce the Mana cost of Arrow Shield.","archetype":"","archetype_req":0,"parents":[48,21],"dependencies":[],"blockers":[],"cost":1,"display":{"row":33,"col":4},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":4,"cost":-5}],"id":49},{"display_name":"Rocket Jump","desc":"Arrow Bomb's self-damage will knockback you farther away.","archetype":"","archetype_req":0,"parents":[47,21],"dependencies":[2],"blockers":[],"cost":1,"display":{"row":33,"col":6},"properties":{},"id":50},{"display_name":"Cheaper Escape (2)","desc":"Reduce the Mana cost of Escape.","archetype":"","archetype_req":0,"parents":[22,70],"dependencies":[],"blockers":[],"cost":1,"display":{"row":34,"col":7},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":2,"cost":-5}],"id":51},{"display_name":"Stronger Hook","desc":"Increase your Grappling Hook's range, speed and strength.","archetype":"Trapper","archetype_req":5,"parents":[51],"dependencies":[12],"blockers":[],"cost":1,"display":{"row":35,"col":8},"properties":{"range":8},"id":52},{"display_name":"Cheaper Arrow Bomb (2)","desc":"Reduce the Mana cost of Arrow Bomb.","archetype":"","archetype_req":0,"parents":[63,30],"dependencies":[],"blockers":[],"cost":1,"display":{"row":40,"col":5},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"cost":-5}],"id":53},{"display_name":"Bouncing Bomb","desc":"Arrow Bomb will bounce once when hitting a block or enemy","archetype":"","archetype_req":0,"parents":[40],"dependencies":[],"blockers":[],"cost":2,"display":{"row":25,"col":7},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"target_part":"Total Damage","cost":0,"hits":{"Arrow Bomb":2}}],"id":54},{"display_name":"Homing Shots","desc":"Your Main Attack arrows will follow nearby enemies and not be affected by gravity","archetype":"","archetype_req":0,"parents":[17,18],"dependencies":[],"blockers":[],"cost":2,"display":{"row":28,"col":2},"properties":{},"effects":[],"id":55},{"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":[23,48],"dependencies":[],"blockers":[],"cost":2,"display":{"row":34,"col":1},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"target_part":"Shrapnel Bomb","cost":0,"multipliers":[40,0,0,0,20,0]}],"id":56},{"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":[24],"dependencies":[],"blockers":[],"cost":2,"display":{"row":38,"col":0},"properties":{},"effects":[],"id":57},{"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":[1],"dependencies":[],"blockers":[60],"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}],"id":58},{"display_name":"Triple Shots","desc":"Triple Main Attack arrows, but they deal -20% damage per arrow","archetype":"Boltslinger","archetype_req":0,"parents":[69,67],"dependencies":[58],"blockers":[],"cost":1,"display":{"row":17,"col":0},"properties":{"arrow":2},"effects":[{"type":"add_spell_prop","base_spell":0,"target_part":"Melee Damage","cost":0,"multipliers":0.7}],"id":59},{"display_name":"Power Shots","desc":"Main Attack arrows have increased speed and knockback","archetype":"Sharpshooter","archetype_req":0,"parents":[1],"dependencies":[],"blockers":[58],"cost":1,"display":{"row":7,"col":6},"properties":{},"effects":[],"id":60},{"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":[68],"dependencies":[],"blockers":[],"cost":2,"display":{"row":19,"col":4},"properties":{},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Focus","output":{"type":"stat","abil_name":"Focus","name":"damMult"},"scaling":[3],"max":3}],"id":61},{"display_name":"More Focus","desc":"Add +2 max Focus","archetype":"Sharpshooter","archetype_req":0,"parents":[33,12],"dependencies":[],"blockers":[],"cost":1,"display":{"row":22,"col":4},"properties":{},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Focus","output":{"type":"stat","abil_name":"Focus","name":"damMult"},"scaling":[35],"max":5}],"id":62},{"display_name":"More Focus (2)","desc":"Add +2 max Focus","archetype":"Sharpshooter","archetype_req":0,"parents":[25,28],"dependencies":[],"blockers":[],"cost":1,"display":{"row":39,"col":4},"properties":{},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Focus","output":{"type":"stat","abil_name":"Focus","name":"damMult"},"scaling":[35],"max":7}],"id":63},{"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":[42,14],"dependencies":[],"blockers":[],"cost":1,"display":{"row":25,"col":2},"properties":{},"effects":[{"type":"stat_scaling","slider":!1,"inputs":[{"type":"stat","name":"spd"}],"output":{"type":"stat","name":"sdRaw"},"scaling":[1],"max":100}],"id":64},{"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":[40],"dependencies":[10],"blockers":[],"cost":2,"display":{"row":22,"col":8},"properties":{"max":80},"effects":[],"id":65},{"display_name":"Stronger Patient Hunter","desc":"Add +80% Max Damage to Patient Hunter","archetype":"Trapper","archetype_req":0,"parents":[26],"dependencies":[65],"blockers":[],"cost":1,"display":{"row":38,"col":8},"properties":{"max":80},"effects":[],"id":66},{"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":[59,6],"dependencies":[],"blockers":[],"cost":2,"display":{"row":17,"col":2},"properties":{},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Hits dealt","output":{"type":"stat","name":"spd"},"scaling":[6],"max":200}],"id":67},{"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":[37,4],"dependencies":[7],"blockers":[11,6,23],"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}}]}],"id":68},{"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":[6,38],"dependencies":[0],"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]}],"id":69},{"display_name":"Decimator","desc":"Phantom Ray will increase its damage by 10% everytime you do not miss with it (Max 50%)","archetype":"Sharpshooter","archetype_req":0,"parents":[49],"dependencies":[68],"blockers":[],"cost":1,"display":{"row":34,"col":5},"properties":{},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Phantom Ray hits","output":{"type":"stat","name":"PhRayDmg"},"scaling":10,"max":50}],"id":70}],"Warrior":[{"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,"icon":"node_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}}]}],"id":0},{"display_name":"Spear Proficiency 1","desc":"Improve your Main Attack's damage and range w/ spear","archetype":"","archetype_req":0,"parents":[0],"dependencies":[],"blockers":[],"cost":1,"display":{"row":2,"col":4,"icon":"node_0"},"properties":{"melee_range":1},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"mdPct","value":5}]}],"id":1},{"display_name":"Cheaper Bash","desc":"Reduce the Mana cost of Bash","archetype":"","archetype_req":0,"parents":[1],"dependencies":[],"blockers":[],"cost":1,"display":{"row":2,"col":2,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":1,"cost":-10}],"id":2},{"display_name":"Double Bash","desc":"Bash will hit a second time at a farther range","archetype":"","archetype_req":0,"parents":[1],"dependencies":[],"blockers":[],"cost":1,"display":{"row":4,"col":4,"icon":"node_1"},"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]}],"id":3},{"display_name":"Charge","desc":"Charge forward at high speed (hold shift to cancel)","archetype":"","archetype_req":0,"parents":[3],"dependencies":[],"blockers":[],"cost":1,"display":{"row":6,"col":4,"icon":"node_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}}]}],"id":4},{"display_name":"Heavy Impact","desc":"After using Charge, violently crash down into the ground and deal damage","archetype":"","archetype_req":0,"parents":[8],"dependencies":[],"blockers":[],"cost":1,"display":{"row":9,"col":1,"icon":"node_1"},"properties":{"aoe":4},"effects":[{"type":"add_spell_prop","base_spell":2,"target_part":"Heavy Impact","cost":0,"multipliers":[100,0,0,0,0,0]}],"id":5},{"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":[4],"dependencies":[],"blockers":[7],"cost":1,"display":{"row":6,"col":2,"icon":"node_0"},"properties":{},"effects":[{"type":"stat_scaling","slider":!1,"inputs":[{"type":"stat","name":"mdPct"},{"type":"stat","name":"mdRaw"}],"output":{"type":"stat","name":"spd"},"scaling":[1,1],"max":20}],"id":6},{"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":[4],"dependencies":[],"blockers":[6],"cost":1,"display":{"row":6,"col":6,"icon":"node_0"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"baseResist","value":"5"}]},{"type":"stat_scaling","slider":!1,"inputs":[{"type":"stat","name":"hprRaw"},{"type":"stat","name":"hprPct"}],"output":{"type":"stat","name":"hpBonus"},"scaling":[10,10],"max":100}],"id":7},{"display_name":"Uppercut","desc":"Rocket enemies in the air and deal massive damage","archetype":"","archetype_req":0,"parents":[6],"dependencies":[],"blockers":[],"cost":1,"display":{"row":8,"col":2,"icon":"node_4"},"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}}]}],"id":8},{"display_name":"Cheaper Charge","desc":"Reduce the Mana cost of Charge","archetype":"","archetype_req":0,"parents":[8,10],"dependencies":[],"blockers":[],"cost":1,"display":{"row":8,"col":4,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":2,"cost":-5}],"id":9},{"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":[7],"dependencies":[],"blockers":[],"cost":1,"display":{"row":8,"col":6,"icon":"node_4"},"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]}]}],"id":10},{"display_name":"Earth Mastery","desc":"Increases base damage from all Earth attacks","archetype":"Fallen","archetype_req":0,"parents":[8],"dependencies":[],"blockers":[],"cost":1,"display":{"row":10,"col":0,"icon":"node_0"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"eDamPct","value":20},{"type":"stat","name":"eDam","value":[2,4]}]}],"id":11},{"display_name":"Thunder Mastery","desc":"Increases base damage from all Thunder attacks","archetype":"Fallen","archetype_req":0,"parents":[8,14,9],"dependencies":[],"blockers":[],"cost":1,"display":{"row":10,"col":2,"icon":"node_0"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"tDamPct","value":10},{"type":"stat","name":"tDam","value":[1,8]}]}],"id":12},{"display_name":"Water Mastery","desc":"Increases base damage from all Water attacks","archetype":"Battle Monk","archetype_req":0,"parents":[9,12,14],"dependencies":[],"blockers":[],"cost":1,"display":{"row":11,"col":4,"icon":"node_0"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"wDamPct","value":15},{"type":"stat","name":"wDam","value":[2,4]}]}],"id":13},{"display_name":"Air Mastery","desc":"Increases base damage from all Air attacks","archetype":"Battle Monk","archetype_req":0,"parents":[10,12,9],"dependencies":[],"blockers":[],"cost":1,"display":{"row":10,"col":6,"icon":"node_0"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"aDamPct","value":15},{"type":"stat","name":"aDam","value":[3,4]}]}],"id":14},{"display_name":"Fire Mastery","desc":"Increases base damage from all Earth attacks","archetype":"Paladin","archetype_req":0,"parents":[10],"dependencies":[],"blockers":[],"cost":1,"display":{"row":10,"col":8,"icon":"node_0"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"fDamPct","value":15},{"type":"stat","name":"fDam","value":[3,5]}]}],"id":15},{"display_name":"Quadruple Bash","desc":"Bash will hit 4 times at an even larger range","archetype":"Fallen","archetype_req":0,"parents":[11,17],"dependencies":[],"blockers":[],"cost":2,"display":{"row":12,"col":0,"icon":"node_1"},"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]}],"id":16},{"display_name":"Fireworks","desc":"Mobs hit by Uppercut will explode mid-air and receive additional damage","archetype":"Fallen","archetype_req":0,"parents":[12,16],"dependencies":[],"blockers":[],"cost":2,"display":{"row":12,"col":2,"icon":"node_1"},"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}}],"id":17},{"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":[13],"dependencies":[8],"blockers":[],"cost":2,"display":{"row":13,"col":4,"icon":"node_1"},"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"}],"id":18},{"display_name":"Flyby Jab","desc":"Damage enemies in your way when using Charge","archetype":"","archetype_req":0,"parents":[14,20],"dependencies":[],"blockers":[],"cost":2,"display":{"row":12,"col":6,"icon":"node_1"},"properties":{"aoe":2},"effects":[{"type":"add_spell_prop","base_spell":2,"target_part":"Flyby Jab","cost":0,"multipliers":[20,0,0,0,0,40]}],"id":19},{"display_name":"Flaming Uppercut","desc":"Uppercut will light mobs on fire, dealing damage every 0.6 seconds","archetype":"Paladin","archetype_req":0,"parents":[15,19],"dependencies":[8],"blockers":[],"cost":2,"display":{"row":12,"col":8,"icon":"node_1"},"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}}],"id":20},{"display_name":"Iron Lungs","desc":"War Scream deals more damage","archetype":"","archetype_req":0,"parents":[19,20],"dependencies":[],"blockers":[],"cost":1,"display":{"row":13,"col":7,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":4,"target_part":"War Scream","cost":0,"multipliers":[30,0,0,0,0,30]}],"id":21},{"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":[23],"dependencies":[],"blockers":[],"cost":2,"display":{"row":15,"col":2,"icon":"node_3"},"properties":{},"effects":[],"id":22},{"display_name":"Counter","desc":"When dodging a nearby enemy attack, get 30% chance to instantly attack back","archetype":"Battle Monk","archetype_req":0,"parents":[18],"dependencies":[],"blockers":[],"cost":2,"display":{"row":15,"col":4,"icon":"node_1"},"properties":{"chance":30},"effects":[{"type":"add_spell_prop","base_spell":5,"target_part":"Counter","cost":0,"multipliers":[60,0,20,0,0,20]}],"id":23},{"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":[21],"dependencies":[10],"blockers":[],"cost":2,"display":{"row":15,"col":7,"icon":"node_3"},"properties":{"mantle_charge":3},"effects":[],"id":24},{"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":[16,17],"dependencies":[10],"blockers":[],"cost":2,"display":{"row":16,"col":1,"icon":"node_3"},"properties":{"cooldown":15},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Corrupted","output":{"type":"stat","name":"raw"},"scaling":[4],"slider_step":2,"max":120}],"id":25},{"display_name":"Spear Proficiency 2","desc":"Improve your Main Attack's damage and range w/ spear","archetype":"","archetype_req":0,"parents":[25,27],"dependencies":[],"blockers":[],"cost":1,"display":{"row":17,"col":0,"icon":"node_0"},"properties":{"melee_range":1},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"mdPct","value":5}]}],"id":26},{"display_name":"Cheaper Uppercut","desc":"Reduce the Mana Cost of Uppercut","archetype":"","archetype_req":0,"parents":[26,28,23],"dependencies":[],"blockers":[],"cost":1,"display":{"row":17,"col":3,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"cost":-5}],"id":27},{"display_name":"Aerodynamics","desc":"During Charge, you can steer and change direction","archetype":"Battle Monk","archetype_req":0,"parents":[27,29],"dependencies":[],"blockers":[],"cost":2,"display":{"row":17,"col":5,"icon":"node_1"},"properties":{},"effects":[],"id":28},{"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":[28,24],"dependencies":[],"blockers":[],"cost":1,"display":{"row":17,"col":7,"icon":"node_1"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":4,"cost":-5}],"id":29},{"display_name":"Precise Strikes","desc":"+30% Critical Hit Damage","archetype":"","archetype_req":0,"parents":[27,26],"dependencies":[],"blockers":[],"cost":1,"display":{"row":18,"col":2,"icon":"node_0"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"critDmg","value":30}]}],"id":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":[28,29],"dependencies":[10],"blockers":[],"cost":2,"display":{"row":18,"col":6,"icon":"node_1"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":4,"target_part":"Air Shout","cost":0,"multipliers":[20,0,0,0,0,5]}],"id":31},{"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":[26],"dependencies":[25],"blockers":[],"cost":2,"display":{"row":20,"col":0,"icon":"node_2"},"properties":{},"effects":[{"type":"stat_scaling","slider":!1,"inputs":[{"type":"stat","name":"hpBonus"}],"output":{"type":"stat","name":"damMult"},"scaling":[3],"max":300}],"id":32},{"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":[27,34],"dependencies":[],"blockers":[],"cost":2,"display":{"row":20,"col":3,"icon":"node_1"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":2,"target_part":"Flying Kick","cost":0,"multipliers":[120,0,0,10,0,20]}],"id":33},{"display_name":"Stronger Mantle","desc":"Add +2 additional charges to Mantle of the Bovemists","archetype":"Paladin","archetype_req":0,"parents":[35,33],"dependencies":[24],"blockers":[],"cost":1,"display":{"row":20,"col":6,"icon":"node_0"},"properties":{"mantle_charge":2},"effects":[],"id":34},{"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":[34,29],"dependencies":[],"blockers":[],"cost":2,"display":{"row":20,"col":8,"icon":"node_2"},"properties":{"cooldown":1},"effects":[],"id":35},{"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":[32,37],"dependencies":[],"blockers":[],"cost":2,"display":{"row":22,"col":0,"icon":"node_1"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":1,"target_part":"Boiling Blood","cost":0,"multipliers":[25,0,0,0,5,0]}],"id":36},{"display_name":"Ragnarokkr","desc":"War Scream become deafening, increasing its range and giving damage bonus to players","archetype":"Fallen","archetype_req":0,"parents":[36,33],"dependencies":[10],"blockers":[],"cost":2,"display":{"row":22,"col":2,"icon":"node_2"},"properties":{"damage_bonus":30,"aoe":2},"effects":[{"type":"add_spell_prop","base_spell":4,"cost":10}],"id":37},{"display_name":"Ambidextrous","desc":"Increase your chance to attack with Counter by +30%","archetype":"","archetype_req":0,"parents":[33,34,39],"dependencies":[23],"blockers":[],"cost":1,"display":{"row":22,"col":4,"icon":"node_0"},"properties":{"chance":30},"effects":[],"id":38},{"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":[38,40],"dependencies":[],"blockers":[],"cost":1,"display":{"row":22,"col":6,"icon":"node_0"},"properties":{},"effects":[{"type":"stat_scaling","slider":!1,"inputs":[{"type":"stat","name":"hpBonus"}],"output":{"type":"stat","name":"fDamPct"},"scaling":[2],"max":100,"slider_step":100}],"id":39},{"display_name":"Stronger Bash","desc":"Increase the damage of Bash","archetype":"","archetype_req":0,"parents":[39,35],"dependencies":[],"blockers":[],"cost":1,"display":{"row":22,"col":8,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":1,"target_part":"Single Hit","cost":0,"multipliers":[30,0,0,0,0,0]}],"id":40},{"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":[37,36],"dependencies":[25],"blockers":[],"cost":2,"display":{"row":23,"col":1,"icon":"node_1"},"properties":{},"effects":[],"id":41},{"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":[37],"dependencies":[17],"blockers":[],"cost":2,"display":{"row":24,"col":2,"icon":"node_1"},"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}}],"id":42},{"display_name":"Collide","desc":"Mobs thrown into walls from Flying Kick will explode and receive additonal damage","archetype":"Battle Monk","archetype_req":4,"parents":[38,39],"dependencies":[33],"blockers":[],"cost":2,"display":{"row":23,"col":5,"icon":"node_1"},"properties":{"aoe":4},"effects":[{"type":"add_spell_prop","base_spell":2,"target_part":"Collide","cost":0,"multipliers":[100,0,0,0,50,0]}],"id":43},{"display_name":"Rejuvenating Skin","desc":"Regain back 30% of the damage you take as healing over 30s","archetype":"Paladin","archetype_req":0,"parents":[39,40],"dependencies":[],"blockers":[],"cost":2,"display":{"row":23,"col":7,"icon":"node_3"},"properties":{},"effects":[],"id":44},{"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":[36,46],"dependencies":[25],"blockers":[],"cost":1,"display":{"row":26,"col":0,"icon":"node_0"},"properties":{"cooldown":-5},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Corrupted","output":{"type":"stat","name":"raw"},"scaling":[1],"slider_step":2,"max":50}],"id":45},{"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":[47,45],"dependencies":[],"blockers":[],"cost":1,"display":{"row":26,"col":2,"icon":"node_0"},"properties":{},"effects":[{"type":"stat_scaling","inputs":[{"type":"stat","name":"ref"}],"output":{"type":"stat","name":"mr"},"scaling":[1],"max":10,"slider_step":4}],"id":46},{"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":[38,46],"dependencies":[8],"blockers":[],"cost":2,"display":{"row":26,"col":4,"icon":"node_1"},"properties":{"range":2},"effects":[{"type":"add_spell_prop","base_spell":3,"target_part":"Uppercut","cost":0,"multipliers":[0,0,0,0,0,50]}],"id":47},{"display_name":"Mythril Skin","desc":"Gain +5% Base Resistance and become immune to knockback","archetype":"Paladin","archetype_req":6,"parents":[44],"dependencies":[],"blockers":[],"cost":2,"display":{"row":26,"col":7,"icon":"node_1"},"properties":{},"effects":[{"type":"raw_stat","bonuses":[{"type":"stat","name":"baseResist","value":5}]}],"id":48},{"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":[45,46],"dependencies":[25],"blockers":[],"cost":2,"display":{"row":27,"col":1,"icon":"node_2"},"properties":{"duration":5},"effects":[],"id":49},{"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":[48,51],"dependencies":[],"blockers":[],"cost":2,"display":{"row":27,"col":6,"icon":"node_1"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":5,"target_part":"Shield Strike","cost":0,"multipliers":[60,0,20,0,0,0]}],"id":50},{"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":[48],"dependencies":[],"blockers":[],"cost":2,"display":{"row":27,"col":8,"icon":"node_2"},"properties":{"aoe":6},"effects":[{"type":"add_spell_prop","base_spell":5,"target_part":"Sparkling Hope","cost":0,"multipliers":[10,0,5,0,0,0]}],"id":51},{"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":[53,45],"dependencies":[],"blockers":[],"cost":2,"display":{"row":28,"col":0,"icon":"node_2"},"properties":{},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Corrupted","output":{"type":"stat","name":"bashAoE"},"scaling":[1],"max":10,"slider_step":3}],"id":52},{"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":[52,54],"dependencies":[],"blockers":[],"cost":2,"display":{"row":28,"col":2,"icon":"node_1"},"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}}],"id":53},{"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":[53,47],"dependencies":[],"blockers":[],"cost":1,"display":{"row":28,"col":4,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":2,"cost":-5},{"type":"raw_stat","bonuses":[{"type":"stat","name":"spd","value":20}]}],"id":54},{"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":[53,52],"dependencies":[],"blockers":[],"cost":2,"display":{"row":29,"col":1,"icon":"node_1"},"properties":{},"effects":[],"id":55},{"display_name":"Axe Kick","desc":"Increase the damage of Uppercut, but also increase its mana cost","archetype":"","archetype_req":0,"parents":[53,54],"dependencies":[],"blockers":[],"cost":1,"display":{"row":29,"col":3,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"target_part":"Uppercut","cost":10,"multipliers":[100,0,0,0,0,0]}],"id":56},{"display_name":"Radiance","desc":"Bash will buff your allies' positive IDs. (15s Cooldown)","archetype":"Paladin","archetype_req":2,"parents":[54,58],"dependencies":[],"blockers":[],"cost":2,"display":{"row":29,"col":5,"icon":"node_2"},"properties":{"cooldown":15},"effects":[],"id":57},{"display_name":"Cheaper Bash 2","desc":"Reduce the Mana cost of Bash","archetype":"","archetype_req":0,"parents":[57,50,51],"dependencies":[],"blockers":[],"cost":1,"display":{"row":29,"col":7,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":1,"cost":-5}],"id":58},{"display_name":"Cheaper War Scream","desc":"Reduce the Mana cost of War Scream","archetype":"","archetype_req":0,"parents":[52],"dependencies":[],"blockers":[],"cost":1,"display":{"row":31,"col":0,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":4,"cost":-5}],"id":59},{"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":11,"parents":[62],"dependencies":[],"blockers":[],"cost":2,"display":{"row":31,"col":2,"icon":"node_3"},"properties":{},"effects":[{"type":"stat_scaling","slider":!0,"slider_name":"Hits dealt","output":{"type":"stat","name":"rainrawButDifferent"},"scaling":[2],"max":50}],"id":60},{"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":[62],"dependencies":[],"blockers":[],"cost":2,"display":{"row":32,"col":5,"icon":"node_1"},"properties":{},"effects":[{"type":"convert_spell_conv","target_part":"all","conversion":"thunder"},{"type":"raw_stat","bonuses":[{"type":"prop","abil_name":"Bash","name":"aoe","value":3}]}],"id":61},{"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":[54],"dependencies":[],"blockers":[],"cost":1,"display":{"row":31,"col":4,"icon":"node_1"},"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}}],"id":62},{"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":[58],"dependencies":[],"blockers":[],"cost":2,"display":{"row":32,"col":7,"icon":"node_3"},"properties":{},"effects":[],"id":63},{"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":[59],"dependencies":[],"blockers":[],"cost":2,"display":{"row":34,"col":1,"icon":"node_3"},"properties":{},"effects":[],"id":64},{"display_name":"Haemorrhage","desc":"Reduce Blood Pact's health cost. (0.5% health per mana)","archetype":"Fallen","archetype_req":0,"parents":[64],"dependencies":[64],"blockers":[],"cost":1,"display":{"row":35,"col":2,"icon":"node_1"},"properties":{},"effects":[],"id":65},{"display_name":"Brink of Madness","desc":"If your health is 25% full or less, gain +40% Resistance","archetype":"","archetype_req":0,"parents":[64,67],"dependencies":[],"blockers":[],"cost":2,"display":{"row":35,"col":4,"icon":"node_2"},"properties":{},"effects":[],"id":66},{"display_name":"Cheaper Uppercut 2","desc":"Reduce the Mana cost of Uppercut","archetype":"","archetype_req":0,"parents":[63,66],"dependencies":[],"blockers":[],"cost":1,"display":{"row":35,"col":6,"icon":"node_0"},"properties":{},"effects":[{"type":"add_spell_prop","base_spell":3,"cost":-5}],"id":67},{"display_name":"Martyr","desc":"When you receive a fatal blow, all nearby allies become invincible","archetype":"Paladin","archetype_req":0,"parents":[63],"dependencies":[],"blockers":[],"cost":2,"display":{"row":35,"col":8,"icon":"node_1"},"properties":{"duration":3,"aoe":12},"effects":[],"id":68}]} \ No newline at end of file diff --git a/js/atree_ids.json b/js/atree_ids.json new file mode 100644 index 0000000..a7cd98e --- /dev/null +++ b/js/atree_ids.json @@ -0,0 +1,146 @@ +{ + "Archer": { + "Arrow Shield": 0, + "Escape": 1, + "Arrow Bomb": 2, + "Heart Shatter": 3, + "Fire Creep": 4, + "Bryophyte Roots": 5, + "Nimble String": 6, + "Arrow Storm": 7, + "Guardian Angels": 8, + "Windy Feet": 9, + "Basaltic Trap": 10, + "Windstorm": 11, + "Grappling Hook": 12, + "Implosion": 13, + "Twain's Arc": 14, + "Fierce Stomp": 15, + "Scorched Earth": 16, + "Leap": 17, + "Shocking Bomb": 18, + "Mana Trap": 19, + "Escape Artist": 20, + "Initiator": 21, + "Call of the Hound": 22, + "Arrow Hurricane": 23, + "Geyser Stomp": 24, + "Crepuscular Ray": 25, + "Grape Bomb": 26, + "Tangled Traps": 27, + "Snow Storm": 28, + "All-Seeing Panoptes": 29, + "Minefield": 30, + "Bow Proficiency I": 31, + "Cheaper Arrow Bomb": 32, + "Cheaper Arrow Storm": 33, + "Cheaper Escape": 34, + "Earth Mastery": 35, + "Thunder Mastery": 36, + "Water Mastery": 37, + "Air Mastery": 38, + "Fire Mastery": 39, + "More Shields": 40, + "Stormy Feet": 41, + "Refined Gunpowder": 42, + "More Traps": 43, + "Better Arrow Shield": 44, + "Better Leap": 45, + "Better Guardian Angels": 46, + "Cheaper Arrow Storm (2)": 47, + "Precise Shot": 48, + "Cheaper Arrow Shield": 49, + "Rocket Jump": 50, + "Cheaper Escape (2)": 51, + "Stronger Hook": 52, + "Cheaper Arrow Bomb (2)": 53, + "Bouncing Bomb": 54, + "Homing Shots": 55, + "Shrapnel Bomb": 56, + "Elusive": 57, + "Double Shots": 58, + "Triple Shots": 59, + "Power Shots": 60, + "Focus": 61, + "More Focus": 62, + "More Focus (2)": 63, + "Traveler": 64, + "Patient Hunter": 65, + "Stronger Patient Hunter": 66, + "Frenzy": 67, + "Phantom Ray": 68, + "Arrow Rain": 69, + "Decimator": 70 + }, + "Warrior": { + "Bash": 0, + "Spear Proficiency 1": 1, + "Cheaper Bash": 2, + "Double Bash": 3, + "Charge": 4, + "Heavy Impact": 5, + "Vehement": 6, + "Tougher Skin": 7, + "Uppercut": 8, + "Cheaper Charge": 9, + "War Scream": 10, + "Earth Mastery": 11, + "Thunder Mastery": 12, + "Water Mastery": 13, + "Air Mastery": 14, + "Fire Mastery": 15, + "Quadruple Bash": 16, + "Fireworks": 17, + "Half-Moon Swipe": 18, + "Flyby Jab": 19, + "Flaming Uppercut": 20, + "Iron Lungs": 21, + "Generalist": 22, + "Counter": 23, + "Mantle of the Bovemists": 24, + "Bak'al's Grasp": 25, + "Spear Proficiency 2": 26, + "Cheaper Uppercut": 27, + "Aerodynamics": 28, + "Provoke": 29, + "Precise Strikes": 30, + "Air Shout": 31, + "Enraged Blow": 32, + "Flying Kick": 33, + "Stronger Mantle": 34, + "Manachism": 35, + "Boiling Blood": 36, + "Ragnarokkr": 37, + "Ambidextrous": 38, + "Burning Heart": 39, + "Stronger Bash": 40, + "Intoxicating Blood": 41, + "Comet": 42, + "Collide": 43, + "Rejuvenating Skin": 44, + "Uncontainable Corruption": 45, + "Radiant Devotee": 46, + "Whirlwind Strike": 47, + "Mythril Skin": 48, + "Armour Breaker": 49, + "Shield Strike": 50, + "Sparkling Hope": 51, + "Massive Bash": 52, + "Tempest": 53, + "Spirit of the Rabbit": 54, + "Massacre": 55, + "Axe Kick": 56, + "Radiance": 57, + "Cheaper Bash 2": 58, + "Cheaper War Scream": 59, + "Discombobulate": 60, + "Thunderclap": 61, + "Cyclone": 62, + "Second Chance": 63, + "Blood Pact": 64, + "Haemorrhage": 65, + "Brink of Madness": 66, + "Cheaper Uppercut 2": 67, + "Martyr": 68 + } +} \ No newline at end of file diff --git a/py_script/atree-convertID.py b/py_script/atree-convertID.py new file mode 100644 index 0000000..74c40dd --- /dev/null +++ b/py_script/atree-convertID.py @@ -0,0 +1,29 @@ +""" +Generate a JSON Ability Tree [atree_constants_idfied.json] with: + - All references replaced by numerical IDs +given a JSON Ability Tree with reference as string AND a JSON Ability Names to IDs. +""" +import json + +# Ability names to IDs data +with open("atree_ids.json") as f: + id_data = json.loads(f.read()) + +# Ability tree data with reference as string +with open("atree_constants.json") as f: + atree_data = json.loads(f.read()) + +for _class, info in atree_data.items(): + for abil in range(len(info)): + info[abil]["id"] = id_data[_class][info[abil]["display_name"]] + for ref in range(len(info[abil]["parents"])): + info[abil]["parents"][ref] = id_data[_class][info[abil]["parents"][ref]] + + for ref in range(len(info[abil]["dependencies"])): + info[abil]["dependencies"][ref] = id_data[_class][info[abil]["dependencies"][ref]] + + for ref in range(len(info[abil]["blockers"])): + info[abil]["blockers"][ref] = id_data[_class][info[abil]["blockers"][ref]] + +with open('atree_constants_idfied.json', 'w', encoding='utf-8') as abil_dest: + json.dump(atree_data, abil_dest, ensure_ascii=False, indent=4) \ No newline at end of file diff --git a/py_script/atree-generateID.py b/py_script/atree-generateID.py index 4657cf1..d8d6419 100644 --- a/py_script/atree-generateID.py +++ b/py_script/atree-generateID.py @@ -1,37 +1,35 @@ """ -Generate a JSON Ability Tree with: +Generate a JSON Ability Tree [atree_constants_id.json] with: - All references replaced by numerical IDs - - Extra JSON File with Original name as key and Assigned IDs as value. -given a JSON Ability Tree. + - Extra JSON File with Class: [Original name as key and Assigned IDs as value]. +given a JSON Ability Tree with reference as string. """ import json -id = 0 abilDict = {} -with open("atree-parse.json") as f: +with open("atree_constants.json") as f: data = json.loads(f.read()) for classType, info in data.items(): - #reset IDs for every class and start at 1 - id = 1 + _id = 0 + abilDict[classType] = {} for abil in info: - abilDict[abil["display_name"]] = id - id += 1 + abilDict[classType][abil["display_name"]] = _id + _id += 1 - with open("atree-ids.json", "w", encoding='utf-8') as id_dest: + with open("atree_ids.json", "w", encoding='utf-8') as id_dest: json.dump(abilDict, id_dest, ensure_ascii=False, indent=4) for classType, info in data.items(): for abil in range(len(info)): - info[abil]["id"] = abilDict[info[abil]["display_name"]] + info[abil]["id"] = abilDict[classType][info[abil]["display_name"]] for ref in range(len(info[abil]["parents"])): - info[abil]["parents"][ref] = abilDict[info[abil]["parents"][ref]] + info[abil]["parents"][ref] = abilDict[classType][info[abil]["parents"][ref]] for ref in range(len(info[abil]["dependencies"])): - info[abil]["dependencies"][ref] = abilDict[info[abil]["dependencies"][ref]] + info[abil]["dependencies"][ref] = abilDict[classType][info[abil]["dependencies"][ref]] for ref in range(len(info[abil]["blockers"])): - info[abil]["blockers"][ref] = abilDict[info[abil]["blockers"][ref]] - data[classType] = info + info[abil]["blockers"][ref] = abilDict[classType][info[abil]["blockers"][ref]] - with open('atree-constants-id.json', 'w', encoding='utf-8') as abil_dest: - json.dump(data, abil_dest, ensure_ascii=False, indent=4) \ No newline at end of file + with open('atree_constants_id.json', 'w', encoding='utf-8') as abil_dest: + json.dump(data, abil_dest, ensure_ascii=False, indent=4) From ebcdbc14fc19c4a70419bf75de7c3fb54219d1b9 Mon Sep 17 00:00:00 2001 From: reschan Date: Mon, 27 Jun 2022 16:53:18 +0700 Subject: [PATCH 3/7] remove redundant atree data files --- js/atree_constants.js | 4063 +++++++++++----------------- js/atree_constants_old.js | 171 -- js/atree_constants_str_old.js | 4160 ----------------------------- js/atree_constants_str_old_min.js | 1 - 4 files changed, 1592 insertions(+), 6803 deletions(-) delete mode 100644 js/atree_constants_old.js delete mode 100644 js/atree_constants_str_old.js delete mode 100644 js/atree_constants_str_old_min.js diff --git a/js/atree_constants.js b/js/atree_constants.js index 48fd997..cbd42b1 100644 --- a/js/atree_constants.js +++ b/js/atree_constants.js @@ -5,10 +5,7 @@ const atrees = { "desc": "Create a shield around you that deal damage and knockback mobs when triggered. (2 Charges)", "archetype": "", "archetype_req": 0, - "parents": [ - 60, - 34 - ], + "parents": ["Power Shots", "Cheaper Escape"], "dependencies": [], "blockers": [], "cost": 1, @@ -33,14 +30,7 @@ const atrees = { { "name": "Shield Damage", "type": "damage", - "multipliers": [ - 90, - 0, - 0, - 0, - 0, - 10 - ] + "multipliers": [90, 0, 0, 0, 0, 10] }, { "name": "Total Damage", @@ -51,1258 +41,955 @@ const atrees = { } ] } - ], - "id": 0 + ] }, + { "display_name": "Escape", "desc": "Throw yourself backward to avoid danger. (Hold shift while escaping to cancel)", - "archetype": "", - "archetype_req": 0, - "parents": [ - 3 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Heart Shatter"], "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 7, - "col": 4 + "row": 7, + "col": 4 }, "properties": { - "aoe": 0, - "range": 0 + "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] + }, { - "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 - } - } - ] + "name": "Total Damage", + "type": "total", + "hits": { + "None": 0 + } } - ], - "id": 1 + ] + } + ] }, { "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": [], + "archetype": "", + "archetype_req": 0, + "parents": [], "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 0, - "col": 4 + "row": 0, + "col": 4 }, "properties": { - "aoe": 4.5, - "range": 26 + "aoe": 4.5, + "range": 26 }, "effects": [ - { - "type": "replace_spell", + { + "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", - "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 - } - } - ] + "type": "damage", + "multipliers": [160, 0, 0, 0, 20, 0] + }, + { + "name": "Total Damage", + "type": "total", + "hits": { + "Arrow Bomb": 1 + } } - ], - "id": 2 + ] + } + ] }, { "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": [ - 31 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Bow Proficiency I"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 4, - "col": 4 + "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 - ] - }, - {} - ], - "id": 3 + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Arrow Bomb", + "cost": 0, + "multipliers": [100, 0, 0, 0, 0, 0] + }, + { + + } + ] }, { "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": [ - 68, - 39, - 5 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Phantom Ray", "Fire Mastery", "Bryophyte Roots"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 16, - "col": 6 + "row": 16, + "col": 6 }, - "properties": { - "aoe": 0.8, - "duration": 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 - } + { + "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 } - ], - "id": 4 + } + ] }, { "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": [ - 4, - 35 - ], - "dependencies": [ - 7 - ], + "archetype": "Trapper", + "archetype_req": 1, + "parents": ["Fire Creep", "Earth Mastery"], + "dependencies": ["Arrow Storm"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 16, - "col": 8 + "row": 16, + "col": 8 }, "properties": { - "aoe": 2, - "duration": 5, - "slowness": 0.4 - }, + "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 - ] - } - ], - "id": 5 + { + "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": [ - 36, - 69 - ], - "dependencies": [ - 7 - ], - "blockers": [ - 68 - ], - "cost": 2, + "archetype": "", + "archetype_req": 0, + "parents": ["Thunder Mastery", "Arrow Rain"], + "dependencies": ["Arrow Storm"], + "blockers": ["Phantom Ray"], + "cost": 2, "display": { - "row": 15, - "col": 2 + "row": 15, + "col": 2 }, "properties": { - "shootspeed": 2 - }, + "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 - } + { + "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 } - ], - "id": 6 + } + ] }, { "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": [ - 58, - 34 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Double Shots", "Cheaper Escape"], "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 9, - "col": 2 + "row": 9, + "col": 2 }, "properties": { - "aoe": 0, - "range": 16 + "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 - } - } - ] + { + "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 + } } - ], - "id": 7 + ] + } + ] }, { "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": [ - 59, - 67 - ], - "dependencies": [ - 0 - ], + "archetype_req": 3, + "parents": ["Triple Shots", "Frenzy"], + "dependencies": ["Arrow Shield"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 19, - "col": 1 + "row": 19, + "col": 1 }, "properties": { - "range": 4, - "duration": 60, - "shots": 8, - "count": 2 - }, + "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": [ - 30, - 0, - 0, - 0, - 0, - 10 - ] - }, - { - "name": "Single Bow", - "type": "total", - "hits": { - "Single Arrow": 8 - } - }, - { - "name": "Total Damage", - "type": "total", - "hits": { - "Single Bow": 2 - } + { + "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": [30, 0, 0, 0, 0, 10] + }, + { + "name": "Single Bow", + "type": "total", + "hits": { + "Single Arrow": 8 } - ] - } - ], - "id": 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": "", - "archetype_req": 0, - "parents": [ - 7 - ], - "dependencies": [], + "archetype_req": 0, + "parents": ["Arrow Storm"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 10, - "col": 1 + "row": 10, + "col": 1 }, "properties": { - "aoe": 8, - "duration": 120 - }, + "aoe": 8, + "duration": 120 + }, "type": "stat_bonus", "bonuses": [ - { - "type": "stat", - "name": "spd", - "value": 20 + { + "type": "stat", + "name": "spd", + "value": 20 } - ], - "id": 9 + ] }, { "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": [ - 5 - ], - "dependencies": [], + "archetype_req": 2, + "parents": ["Bryophyte Roots"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 19, - "col": 8 + "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 - ] - } - ], - "id": 10 + "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": [ - 8, - 33 - ], - "dependencies": [], - "blockers": [ - 68 - ], - "cost": 2, + "archetype": "", + "archetype_req": 0, + "parents": ["Guardian Angels", "Cheaper Arrow Storm"], + "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 - } + { + "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 } - ], - "id": 11 - }, + } + ] + }, { "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": [ - 61, - 40, - 33 - ], - "dependencies": [], - "blockers": [ - 20 - ], - "cost": 2, + "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": [], - "id": 12 - }, + "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": [ - 12, - 40 - ], - "dependencies": [], + "archetype": "Trapper", + "archetype_req": 0, + "parents": ["Grappling Hook", "More Shields"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 22, "col": 6 - }, + }, "properties": {}, "effects": [ - { - "type": "add_spell_prop", - "base_spell": 3, - "target_part": "Arrow Bomb", - "cost": 0, - "multipliers": [ - 40, - 0, - 0, - 0, - 0, - 0 - ] + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Arrow Bomb", + "cost": 0, + "multipliers": [40, 0, 0, 0, 0, 0] } - ], - "id": 13 - }, + ] + }, { "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": [ - 62, - 64 - ], - "dependencies": [ - 61 - ], + "archetype": "Sharpshooter", + "archetype_req": 4, + "parents": ["More Focus", "Traveler"], + "dependencies": ["Focus"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 25, "col": 4 - }, + }, "properties": { - "range": 64, - "focusReq": 2 - }, - "effects": [ - { - "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 - ] - } - ] - } - ], - "id": 14 + "range": 64, + "focusReq": 2 }, + "effects": [ + + { + "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": [ - 42, - 64 - ], - "dependencies": [], + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": ["Refined Gunpowder", "Traveler"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 26, - "col": 1 + "row": 26, + "col": 1 }, "properties": { - "aoe": 4 + "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 - } + { + "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 } - ], - "id": 15 + } + ] }, { "display_name": "Scorched Earth", "desc": "Fire Creep become much stronger.", - "archetype": "Sharpshooter", - "archetype_req": 0, - "parents": [ - 14 - ], - "dependencies": [ - 4 - ], + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": ["Twain's Arc"], + "dependencies": ["Fire Creep"], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 26, - "col": 5 + "row": 26 , + "col": 5 }, "properties": { - "duration": 2, - "aoe": 0.4 + "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 - ] - } - ], - "id": 16 + { + "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": [ - 42, - 55 - ], - "dependencies": [], + "archetype": "Boltslinger", + "archetype_req": 5, + "parents": ["Refined Gunpowder", "Homing Shots"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 28, - "col": 0 + "row": 28, + "col": 0 }, "properties": { - "cooldown": 2 - }, - "effects": [], - "id": 17 + "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": [ - 14, - 44, - 55 - ], - "dependencies": [ - 2 - ], + "archetype": "Sharpshooter", + "archetype_req": 5, + "parents": ["Twain's Arc", "Better Arrow Shield", "Homing Shots"], + "dependencies": ["Arrow Bomb"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 28, - "col": 4 + "row": 28, + "col": 4 }, "properties": { - "gravity": 0 + "gravity": 0 }, "effects": [ - { - "type": "convert_spell_conv", - "target_part": "all", - "conversion": "thunder" - } - ], - "id": 18 + { + "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": [ - 43, - 44 - ], - "dependencies": [ - 4 - ], + "archetype": "Trapper", + "archetype_req": 5, + "parents": ["More Traps", "Better Arrow Shield"], + "dependencies": ["Fire Creep"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 28, - "col": 8 + "row": 28, + "col": 8 }, "properties": { - "range": 12, - "manaRegen": 4 + "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 - ] - } - ], - "id": 19 + { + "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": [ - 46, - 17 - ], - "dependencies": [], - "blockers": [ - 12 - ], - "cost": 2, + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": ["Better Guardian Angels", "Leap"], + "dependencies": [], + "blockers": ["Grappling Hook"], + "cost": 2, "display": { - "row": 31, - "col": 0 + "row": 31, + "col": 0 + }, + "properties": { }, - "properties": {}, "effects": [ - { - "type": "add_spell_prop", - "base_spell": 2, - "target_part": "Escape Artist", - "cost": 0, - "multipliers": [ - 30, - 0, - 10, - 0, - 0, - 0 - ] - } - ], - "id": 20 + { + "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": [ - 18, - 44, - 47 - ], - "dependencies": [ - 61 - ], + "archetype_req": 5, + "parents": ["Shocking Bomb", "Better Arrow Shield", "Cheaper Arrow Storm (2)"], + "dependencies": ["Focus"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 31, - "col": 5 + "row": 31, + "col": 5 }, "properties": { - "focus": 1, - "timer": 5 - }, - "type": "stat_bonus", + "focus": 1, + "timer": 5 + }, + "type": "stat_bonus", "bonuses": [ - { - "type": "stat", - "name": "damPct", - "value": 50 + { + "type": "stat", + "name": "damPct", + "value": 50 } - ], - "id": 21 + ] }, { "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": [ - 21, - 47 - ], - "dependencies": [ - 0 - ], + "archetype_req": 0, + "parents": ["Initiator", "Cheaper Arrow Storm (2)"], + "dependencies": ["Arrow Shield"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 32, - "col": 7 + "row": 32, + "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 - ] - } - ], - "id": 22 + "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": [ - 48, - 20 - ], - "dependencies": [], - "blockers": [ - 68 - ], - "cost": 2, + "archetype": "Boltslinger", + "archetype_req": 8, + "parents": ["Precise Shot", "Escape Artist"], + "dependencies": [], + "blockers": ["Phantom Ray"], + "cost": 2, "display": { - "row": 33, - "col": 0 + "row": 33, + "col": 0 }, "properties": {}, - "effects": [ - { - "type": "add_spell_prop", - "base_spell": 1, - "target_part": "Total Damage", - "cost": 0, - "hits": { - "Single Stream": 2 - } + "effects": [ + { + "type": "add_spell_prop", + "base_spell": 1, + "target_part": "Total Damage", + "cost": 0, + "hits": { + "Single Stream": 2 } - ], - "id": 23 + } + ] }, { "display_name": "Geyser Stomp", "desc": "Fierce Stomp will create geysers, dealing more damage and vertical knockback.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 56 - ], - "dependencies": [ - 15 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Shrapnel Bomb"], + "dependencies": ["Fierce Stomp"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 37, - "col": 1 + "row": 37, + "col": 1 }, "properties": { - "aoe": 1 + "aoe": 1 }, "effects": [ - { - "type": "add_spell_prop", - "base_spell": 2, - "target_part": "Fierce Stomp", - "cost": 0, - "multipliers": [ - 0, - 0, - 0, - 50, - 0, - 0 - ] - } - ], - "id": 24 + { + "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": [ - 49 - ], - "dependencies": [ - 7 - ], + "archetype": "Sharpshooter", + "archetype_req": 10, + "parents": ["Cheaper Arrow Shield"], + "dependencies": ["Arrow Storm"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 37, - "col": 4 + "row": 37, + "col": 4 }, "properties": { - "focusReq": 5, - "focusRegen": -1 - }, + "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] + }, { - "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 - } - } - ] + "name": "One Focus", + "type": "total", + "hits": { + "Single Arrow": 20 + } + }, + { + "name": "Total Damage", + "type": "total", + "hits": { + "One Focus": 7 + } } - ], - "id": 25 + ] + } + ] }, { "display_name": "Grape Bomb", "desc": "Arrow bomb will throw 3 additional smaller bombs when exploding.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 51 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Cheaper Escape (2)"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 37, - "col": 7 + "row": 37, + "col": 7 }, "properties": { - "miniBombs": 3, - "aoe": 2 + "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 - ] - } - ], - "id": 26 + { + "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": [ - 26 - ], - "dependencies": [ - 10 - ], + "archetype": "Trapper", + "archetype_req": 0, + "parents": ["Grape Bomb"], + "dependencies": ["Basaltic Trap"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 38, - "col": 6 + "row": 38, + "col": 6 }, "properties": { - "attackSpeed": 0.2 + "attackSpeed": 0.2 }, "effects": [ - { - "type": "add_spell_prop", - "base_spell": 3, - "target_part": "Tangled Traps", - "cost": 0, - "multipliers": [ - 20, - 0, - 0, - 0, - 0, - 20 - ] - } - ], - "id": 27 + { + "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": [ - 24, - 63 - ], - "dependencies": [], + "archetype_req": 0, + "parents": ["Geyser Stomp", "More Focus (2)"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 39, - "col": 2 + "row": 39, + "col": 2 }, "properties": { - "range": 2.5, - "slowness": 0.3 - }, - "id": 28 + "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": [ - 28 - ], - "dependencies": [ - 8 - ], + "archetype_req": 11, + "parents": ["Snow Storm"], + "dependencies": ["Guardian Angels"], "blockers": [], - "cost": 2, + "cost": 2, "display": { - "row": 40, - "col": 1 + "row": 40, + "col": 1 }, "properties": { - "range": 10, - "shots": 5 - }, + "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 - } + { + "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 } - ], - "id": 29 + } + ] }, { "display_name": "Minefield", "desc": "Allow you to place +6 Traps, but with reduced damage and range.", "archetype": "Trapper", - "archetype_req": 10, - "parents": [ - 26, - 53 - ], - "dependencies": [ - 10 - ], + "archetype_req": 10, + "parents": ["Grape Bomb", "Cheaper Arrow Bomb (2)"], + "dependencies": ["Basaltic Trap"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 40, "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 - ] + { + "type": "add_spell_prop", + "base_spell": 3, + "target_part": "Basaltic Trap", + "cost": 0, + "multipliers": [-80, 0, 0, 0, 0, 0] } - ], - "id": 30 - }, + ] + }, { "display_name": "Bow Proficiency I", "desc": "Improve your Main Attack's damage and range when using a bow.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 2 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Arrow Bomb"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 2, "col": 4 - }, + }, "properties": { "mainAtk_range": 6 }, @@ -1317,103 +1004,94 @@ const atrees = { } ] } - ], - "id": 31 + ] }, { "display_name": "Cheaper Arrow Bomb", "desc": "Reduce the Mana cost of Arrow Bomb.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 31 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Bow Proficiency I"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 2, "col": 6 + }, + "properties": { + }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 3, "cost": -10 } - ], - "id": 32 + ] }, { "display_name": "Cheaper Arrow Storm", "desc": "Reduce the Mana cost of Arrow Storm.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 12, - 11, - 61 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Grappling Hook", "Windstorm", "Focus"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 21, "col": 3 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 1, "cost": -5 } - ], - "id": 33 + ] }, { "display_name": "Cheaper Escape", "desc": "Reduce the Mana cost of Escape.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 7, - 0 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Arrow Storm", "Arrow Shield"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 9, "col": 4 + }, + "properties": { + }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 2, "cost": -5 } - ], - "id": 34 + ] }, { "display_name": "Earth Mastery", "desc": "Increases your base damage from all Earth attacks", - "archetype": "Trapper", - "archetype_req": 0, - "parents": [ - 0 - ], - "dependencies": [], + "archetype": "Trapper", + "archetype_req": 0, + "parents": ["Arrow Shield"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 13, "col": 8 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "raw_stat", @@ -1426,34 +1104,27 @@ const atrees = { { "type": "stat", "name": "eDam", - "value": [ - 2, - 4 - ] + "value": [2, 4] } ] } - ], - "id": 35 + ] }, { "display_name": "Thunder Mastery", "desc": "Increases your base damage from all Thunder attacks", - "archetype": "Boltslinger", - "archetype_req": 0, - "parents": [ - 7, - 39, - 34 - ], - "dependencies": [], + "archetype": "Boltslinger", + "archetype_req": 0, + "parents": ["Arrow Storm", "Fire Mastery", "Cheaper Escape"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 13, "col": 2 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "raw_stat", @@ -1466,34 +1137,27 @@ const atrees = { { "type": "stat", "name": "tDam", - "value": [ - 1, - 8 - ] + "value": [1, 8] } ] } - ], - "id": 36 + ] }, { "display_name": "Water Mastery", "desc": "Increases your base damage from all Water attacks", - "archetype": "Sharpshooter", - "archetype_req": 0, - "parents": [ - 34, - 36, - 39 - ], - "dependencies": [], + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": ["Cheaper Escape", "Thunder Mastery", "Fire Mastery"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 14, "col": 4 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "raw_stat", @@ -1506,32 +1170,27 @@ const atrees = { { "type": "stat", "name": "wDam", - "value": [ - 2, - 4 - ] + "value": [2, 4] } ] } - ], - "id": 37 + ] }, { "display_name": "Air Mastery", "desc": "Increases base damage from all Air attacks", - "archetype": "Battle Monk", - "archetype_req": 0, - "parents": [ - 7 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": ["Arrow Storm"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 13, "col": 0 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "raw_stat", @@ -1544,34 +1203,27 @@ const atrees = { { "type": "stat", "name": "aDam", - "value": [ - 3, - 4 - ] + "value": [3, 4] } ] } - ], - "id": 38 + ] }, { "display_name": "Fire Mastery", "desc": "Increases base damage from all Earth attacks", - "archetype": "Sharpshooter", - "archetype_req": 0, - "parents": [ - 36, - 0, - 34 - ], - "dependencies": [], + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": ["Thunder Mastery", "Arrow Shield", "Cheaper Escape"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 13, "col": 6 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "raw_stat", @@ -1584,210 +1236,156 @@ const atrees = { { "type": "stat", "name": "fDam", - "value": [ - 3, - 5 - ] + "value": [3, 5] } ] } - ], - "id": 39 + ] }, { "display_name": "More Shields", "desc": "Give +2 charges to Arrow Shield.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 12, - 10 - ], - "dependencies": [ - 0 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Grappling Hook", "Basaltic Trap"], + "dependencies": ["Arrow Shield"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 21, "col": 7 - }, + }, "properties": { "shieldCharges": 2 - }, - "id": 40 + } }, { "display_name": "Stormy Feet", "desc": "Windy Feet will last longer and add more speed.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 11 - ], - "dependencies": [ - 9 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Windstorm"], + "dependencies": ["Windy Feet"], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 23, - "col": 1 + "row": 23, + "col": 1 }, "properties": { - "duration": 60 + "duration": 60 }, "effects": [ - { - "type": "stat_bonus", - "bonuses": [ - { - "type": "stat", - "name": "spdPct", - "value": 20 - } - ] + { + "type": "stat_bonus", + "bonuses": [ + { + "type": "stat", + "name": "spdPct", + "value": 20 } - ], - "id": 41 + ] + } + ] }, { "display_name": "Refined Gunpowder", "desc": "Increase the damage of Arrow Bomb.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 11 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Windstorm"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 25, - "col": 0 + "row": 25, + "col": 0 }, "properties": {}, "effects": [ - { - "type": "add_spell_prop", - "base_spell": 3, - "target_part": "Arrow Bomb", - "cost": 0, - "multipliers": [ - 50, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "id": 42 + { + "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": [ - 54 - ], - "dependencies": [ - 10 - ], + "archetype_req": 10, + "parents": ["Bouncing Bomb"], + "dependencies": ["Basaltic Trap"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 26, "col": 8 - }, + }, "properties": { "traps": 2 - }, - "id": 43 + } }, { "display_name": "Better Arrow Shield", "desc": "Arrow Shield will gain additional area of effect, knockback and damage.", - "archetype": "Sharpshooter", - "archetype_req": 0, - "parents": [ - 19, - 18, - 14 - ], - "dependencies": [ - 0 - ], + "archetype": "Sharpshooter", + "archetype_req": 0, + "parents": ["Mana Trap", "Shocking Bomb", "Twain's Arc"], + "dependencies": ["Arrow Shield"], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 28, - "col": 6 + "row": 28, + "col": 6 }, "properties": { - "aoe": 1 - }, + "aoe": 1 + }, "effects": [ - { - "type": "add_spell_prop", - "base_spell": 3, - "target_part": "Arrow Shield", - "multipliers": [ - 40, - 0, - 0, - 0, - 0, - 0 - ] - } - ], - "id": 44 + { + "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": [ - 17, - 55 - ], - "dependencies": [ - 17 - ], + "archetype_req": 0, + "parents": ["Leap", "Homing Shots"], + "dependencies": ["Leap"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 29, "col": 1 - }, + }, "properties": { "cooldown": -1 - }, - "id": 45 + } }, { "display_name": "Better Guardian Angels", "desc": "Your Guardian Angels can shoot +4 arrows before disappearing.", "archetype": "Boltslinger", - "archetype_req": 0, - "parents": [ - 20, - 55 - ], - "dependencies": [ - 8 - ], + "archetype_req": 0, + "parents": ["Escape Artist", "Homing Shots"], + "dependencies": ["Guardian Angels"], "blockers": [], - "cost": 1, + "cost": 1, "display": { - "row": 31, - "col": 2 + "row": 31, + "col": 2 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "add_spell_prop", @@ -1798,52 +1396,44 @@ const atrees = { "Single Arrow": 4 } } - ], - "id": 46 + ] }, { "display_name": "Cheaper Arrow Storm (2)", "desc": "Reduce the Mana cost of Arrow Storm.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 21, - 19 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Initiator", "Mana Trap"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 31, "col": 8 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 1, "cost": -5 } - ], - "id": 47 + ] }, { "display_name": "Precise Shot", "desc": "+30% Critical Hit Damage", - "archetype": "", - "archetype_req": 0, - "parents": [ - 46, - 49, - 23 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Better Guardian Angels", "Cheaper Arrow Shield", "Arrow Hurricane"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 33, "col": 2 - }, + }, "properties": { "mainAtk_range": 6 }, @@ -1858,138 +1448,118 @@ const atrees = { } ] } - ], - "id": 48 + ] }, { "display_name": "Cheaper Arrow Shield", "desc": "Reduce the Mana cost of Arrow Shield.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 48, - 21 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Precise Shot", "Initiator"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 33, "col": 4 + }, + "properties": { }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 4, "cost": -5 } - ], - "id": 49 + ] }, { "display_name": "Rocket Jump", "desc": "Arrow Bomb's self-damage will knockback you farther away.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 47, - 21 - ], - "dependencies": [ - 2 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Cheaper Arrow Storm (2)", "Initiator"], + "dependencies": ["Arrow Bomb"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 33, "col": 6 - }, - "properties": {}, - "id": 50 + }, + "properties": { + } }, { "display_name": "Cheaper Escape (2)", "desc": "Reduce the Mana cost of Escape.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 22, - 70 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Call of the Hound", "Decimator"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 34, "col": 7 + }, + "properties": { + }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 2, "cost": -5 } - ], - "id": 51 + ] }, { "display_name": "Stronger Hook", "desc": "Increase your Grappling Hook's range, speed and strength.", - "archetype": "Trapper", - "archetype_req": 5, - "parents": [ - 51 - ], - "dependencies": [ - 12 - ], + "archetype": "Trapper", + "archetype_req": 5, + "parents": ["Cheaper Escape (2)"], + "dependencies": ["Grappling Hook"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 35, "col": 8 - }, + }, "properties": { - "range": 8 - }, - "id": 52 + "range": 8 + } }, { "display_name": "Cheaper Arrow Bomb (2)", "desc": "Reduce the Mana cost of Arrow Bomb.", - "archetype": "", - "archetype_req": 0, - "parents": [ - 63, - 30 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["More Focus (2)", "Minefield"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 40, "col": 5 + }, + "properties": { + }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 3, "cost": -5 } - ], - "id": 53 + ] }, { "display_name": "Bouncing Bomb", "desc": "Arrow Bomb will bounce once when hitting a block or enemy", "archetype": "", "archetype_req": 0, - "parents": [ - 40 - ], + "parents": ["More Shields"], "dependencies": [], "blockers": [], "cost": 2, @@ -1997,7 +1567,9 @@ const atrees = { "row": 25, "col": 7 }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "add_spell_prop", @@ -2008,18 +1580,14 @@ const atrees = { "Arrow Bomb": 2 } } - ], - "id": 54 + ] }, { "display_name": "Homing Shots", "desc": "Your Main Attack arrows will follow nearby enemies and not be affected by gravity", "archetype": "", "archetype_req": 0, - "parents": [ - 17, - 18 - ], + "parents": ["Leap", "Shocking Bomb"], "dependencies": [], "blockers": [], "cost": 2, @@ -2027,53 +1595,45 @@ const atrees = { "row": 28, "col": 2 }, - "properties": {}, - "effects": [], - "id": 55 + "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": [ - 23, - 48 - ], + "parents": ["Arrow Hurricane", "Precise Shot"], "dependencies": [], "blockers": [], "cost": 2, "display": { "row": 34, - "col": 1 + "col": 1 + }, + "properties": { + }, - "properties": {}, "effects": [ { "type": "add_spell_prop", "base_spell": 3, "target_part": "Shrapnel Bomb", "cost": 0, - "multipliers": [ - 40, - 0, - 0, - 0, - 20, - 0 - ] + "multipliers": [40, 0, 0, 0, 20, 0] } - ], - "id": 56 + ] }, { "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": [ - 24 - ], + "parents": ["Geyser Stomp"], "dependencies": [], "blockers": [], "cost": 2, @@ -2081,22 +1641,21 @@ const atrees = { "row": 38, "col": 0 }, - "properties": {}, - "effects": [], - "id": 57 + "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": [ - 1 - ], + "parents": ["Escape"], "dependencies": [], - "blockers": [ - 60 - ], + "blockers": ["Power Shots"], "cost": 1, "display": { "row": 7, @@ -2113,21 +1672,15 @@ const atrees = { "cost": 0, "multipliers": 0.7 } - ], - "id": 58 + ] }, { "display_name": "Triple Shots", "desc": "Triple Main Attack arrows, but they deal -20% damage per arrow", "archetype": "Boltslinger", "archetype_req": 0, - "parents": [ - 69, - 67 - ], - "dependencies": [ - 58 - ], + "parents": ["Arrow Rain", "Frenzy"], + "dependencies": ["Double Shots"], "blockers": [], "cost": 1, "display": { @@ -2145,38 +1698,34 @@ const atrees = { "cost": 0, "multipliers": 0.7 } - ], - "id": 59 + ] }, { "display_name": "Power Shots", "desc": "Main Attack arrows have increased speed and knockback", "archetype": "Sharpshooter", "archetype_req": 0, - "parents": [ - 1 - ], + "parents": ["Escape"], "dependencies": [], - "blockers": [ - 58 - ], + "blockers": ["Double Shots"], "cost": 1, "display": { "row": 7, "col": 6 }, - "properties": {}, - "effects": [], - "id": 60 + "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": [ - 68 - ], + "parents": ["Phantom Ray"], "dependencies": [], "blockers": [], "cost": 2, @@ -2184,7 +1733,9 @@ const atrees = { "row": 19, "col": 4 }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "stat_scaling", @@ -2195,23 +1746,17 @@ const atrees = { "abil_name": "Focus", "name": "damMult" }, - "scaling": [ - 3 - ], + "scaling": [3], "max": 3 } - ], - "id": 61 + ] }, { "display_name": "More Focus", "desc": "Add +2 max Focus", "archetype": "Sharpshooter", "archetype_req": 0, - "parents": [ - 33, - 12 - ], + "parents": ["Cheaper Arrow Storm", "Grappling Hook"], "dependencies": [], "blockers": [], "cost": 1, @@ -2219,7 +1764,9 @@ const atrees = { "row": 22, "col": 4 }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "stat_scaling", @@ -2230,23 +1777,17 @@ const atrees = { "abil_name": "Focus", "name": "damMult" }, - "scaling": [ - 35 - ], + "scaling": [35], "max": 5 } - ], - "id": 62 + ] }, { "display_name": "More Focus (2)", "desc": "Add +2 max Focus", "archetype": "Sharpshooter", "archetype_req": 0, - "parents": [ - 25, - 28 - ], + "parents": ["Crepuscular Ray", "Snow Storm"], "dependencies": [], "blockers": [], "cost": 1, @@ -2254,7 +1795,9 @@ const atrees = { "row": 39, "col": 4 }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "stat_scaling", @@ -2265,23 +1808,17 @@ const atrees = { "abil_name": "Focus", "name": "damMult" }, - "scaling": [ - 35 - ], + "scaling": [35], "max": 7 } - ], - "id": 63 + ] }, { "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": [ - 42, - 14 - ], + "parents": ["Refined Gunpowder", "Twain's Arc"], "dependencies": [], "blockers": [], "cost": 1, @@ -2289,7 +1826,9 @@ const atrees = { "row": 25, "col": 2 }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "stat_scaling", @@ -2304,25 +1843,18 @@ const atrees = { "type": "stat", "name": "sdRaw" }, - "scaling": [ - 1 - ], + "scaling": [1], "max": 100 } - ], - "id": 64 + ] }, { "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": [ - 40 - ], - "dependencies": [ - 10 - ], + "parents": ["More Shields"], + "dependencies": ["Basaltic Trap"], "blockers": [], "cost": 2, "display": { @@ -2332,20 +1864,17 @@ const atrees = { "properties": { "max": 80 }, - "effects": [], - "id": 65 + "effects": [ + + ] }, { "display_name": "Stronger Patient Hunter", "desc": "Add +80% Max Damage to Patient Hunter", "archetype": "Trapper", "archetype_req": 0, - "parents": [ - 26 - ], - "dependencies": [ - 65 - ], + "parents": ["Grape Bomb"], + "dependencies": ["Patient Hunter"], "blockers": [], "cost": 1, "display": { @@ -2355,18 +1884,16 @@ const atrees = { "properties": { "max": 80 }, - "effects": [], - "id": 66 + "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": [ - 59, - 6 - ], + "parents": ["Triple Shots", "Nimble String"], "dependencies": [], "blockers": [], "cost": 2, @@ -2374,7 +1901,9 @@ const atrees = { "row": 17, "col": 2 }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "stat_scaling", @@ -2384,127 +1913,93 @@ const atrees = { "type": "stat", "name": "spd" }, - "scaling": [ - 6 - ], + "scaling": [6], "max": 200 } - ], - "id": 67 + ] }, { "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": [ - 37, - 4 - ], - "dependencies": [ - 7 - ], - "blockers": [ - 11, - 6, - 23 - ], + "parents": ["Water Mastery", "Fire Creep"], + "dependencies": ["Arrow Storm"], + "blockers": ["Windstorm", "Nimble String", "Arrow Hurricane"], "cost": 2, "display": { "row": 16, "col": 4 }, - "properties": {}, + "properties": { + }, "effects": [ - { + { "type": "replace_spell", "name": "Phantom Ray", "cost": 40, - "display_text": "Max Damage", - "base_spell": 1, - "spell_type": "damage", + "display_text": "Max Damage", + "base_spell": 1, + "spell_type": "damage", "scaling": "spell", - "display": "Total Damage", + "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 - } + { + "name": "Single Arrow", + "type": "damage", + "multipliers": [25, 0, 5, 0, 0, 0] + }, + { + "name": "Total Damage", + "type": "total", + "hits": { + "Single Arrow": 16 } + } ] } - ], - "id": 68 + ] }, { "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": [ - 6, - 38 - ], - "dependencies": [ - 0 - ], + "parents": ["Nimble String", "Air Mastery"], + "dependencies": ["Arrow Shield"], "blockers": [], "cost": 2, "display": { "row": 15, "col": 0 }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 4, "target_part": "Arrow Rain", "cost": 0, - "multipliers": [ - 120, - 0, - 0, - 0, - 0, - 80 - ] + "multipliers": [120, 0, 0, 0, 0, 80] } - ], - "id": 69 + ] }, { "display_name": "Decimator", "desc": "Phantom Ray will increase its damage by 10% everytime you do not miss with it (Max 50%)", "archetype": "Sharpshooter", "archetype_req": 0, - "parents": [ - 49 - ], - "dependencies": [ - 68 - ], + "parents": ["Cheaper Arrow Shield"], + "dependencies": ["Phantom Ray"], "blockers": [], "cost": 1, "display": { "row": 34, "col": 5 }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "stat_scaling", @@ -2517,20 +2012,19 @@ const atrees = { "scaling": 10, "max": 50 } - ], - "id": 70 + ] } ], "Warrior": [ { "display_name": "Bash", "desc": "Violently bash the ground, dealing high damage in a large area", - "archetype": "", - "archetype_req": 0, - "parents": [], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": [], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 0, "col": 4, @@ -2554,14 +2048,7 @@ const atrees = { { "name": "Single Hit", "type": "damage", - "multipliers": [ - 130, - 20, - 0, - 0, - 0, - 0 - ] + "multipliers": [130, 20, 0, 0, 0, 0] }, { "name": "Total Damage", @@ -2572,20 +2059,17 @@ const atrees = { } ] } - ], - "id": 0 + ] }, { "display_name": "Spear Proficiency 1", "desc": "Improve your Main Attack's damage and range w/ spear", - "archetype": "", - "archetype_req": 0, - "parents": [ - 0 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Bash"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 2, "col": 4, @@ -2605,46 +2089,43 @@ const atrees = { } ] } - ], - "id": 1 + ] }, + { "display_name": "Cheaper Bash", "desc": "Reduce the Mana cost of Bash", - "archetype": "", - "archetype_req": 0, - "parents": [ - 1 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Spear Proficiency 1"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 2, "col": 2, "icon": "node_0" }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "add_spell_prop", "base_spell": 1, "cost": -10 } - ], - "id": 2 + ] }, { "display_name": "Double Bash", "desc": "Bash will hit a second time at a farther range", - "archetype": "", - "archetype_req": 0, - "parents": [ - 1 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Spear Proficiency 1"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 4, "col": 4, @@ -2669,35 +2150,27 @@ const atrees = { "base_spell": 1, "target_part": "Single Hit", "cost": 0, - "multipliers": [ - -50, - 0, - 0, - 0, - 0, - 0 - ] + "multipliers": [-50, 0, 0, 0, 0, 0] } - ], - "id": 3 + ] }, + { "display_name": "Charge", "desc": "Charge forward at high speed (hold shift to cancel)", - "archetype": "", - "archetype_req": 0, - "parents": [ - 3 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Double Bash"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 6, "col": 4, "icon": "node_4" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "replace_spell", @@ -2712,14 +2185,7 @@ const atrees = { { "name": "None", "type": "damage", - "multipliers": [ - 0, - 0, - 0, - 0, - 0, - 0 - ] + "multipliers": [0, 0, 0, 0, 0, 0] }, { "name": "Total Damage", @@ -2730,20 +2196,18 @@ const atrees = { } ] } - ], - "id": 4 + ] }, + { "display_name": "Heavy Impact", "desc": "After using Charge, violently crash down into the ground and deal damage", - "archetype": "", - "archetype_req": 0, - "parents": [ - 8 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Uppercut"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 9, "col": 1, @@ -2758,37 +2222,27 @@ const atrees = { "base_spell": 2, "target_part": "Heavy Impact", "cost": 0, - "multipliers": [ - 100, - 0, - 0, - 0, - 0, - 0 - ] + "multipliers": [100, 0, 0, 0, 0, 0] } - ], - "id": 5 + ] }, + { "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": [ - 4 - ], - "dependencies": [], - "blockers": [ - 7 - ], - "cost": 1, + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Charge"], + "dependencies": [], + "blockers": ["Tougher Skin"], + "cost": 1, "display": { "row": 6, "col": 2, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "stat_scaling", @@ -2807,34 +2261,28 @@ const atrees = { "type": "stat", "name": "spd" }, - "scaling": [ - 1, - 1 - ], + "scaling": [1, 1], "max": 20 } - ], - "id": 6 + ] }, + { "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": [ - 4 - ], - "dependencies": [], - "blockers": [ - 6 - ], - "cost": 1, + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Charge"], + "dependencies": [], + "blockers": ["Vehement"], + "cost": 1, "display": { "row": 6, "col": 6, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -2863,26 +2311,21 @@ const atrees = { "type": "stat", "name": "hpBonus" }, - "scaling": [ - 10, - 10 - ], + "scaling": [10, 10], "max": 100 } - ], - "id": 7 + ] }, + { "display_name": "Uppercut", "desc": "Rocket enemies in the air and deal massive damage", - "archetype": "", - "archetype_req": 0, - "parents": [ - 6 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Vehement"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 8, "col": 2, @@ -2906,14 +2349,7 @@ const atrees = { { "name": "Uppercut", "type": "damage", - "multipliers": [ - 150, - 50, - 50, - 0, - 0, - 0 - ] + "multipliers": [150, 50, 50, 0, 0, 0] }, { "name": "Total Damage", @@ -2924,47 +2360,43 @@ const atrees = { } ] } - ], - "id": 8 + ] }, + { "display_name": "Cheaper Charge", "desc": "Reduce the Mana cost of Charge", - "archetype": "", - "archetype_req": 0, - "parents": [ - 8, - 10 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Uppercut", "War Scream"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 8, "col": 4, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 2, "cost": -5 } - ], - "id": 9 + ] }, + { "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": [ - 7 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Tougher Skin"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 8, "col": 6, @@ -2989,37 +2421,29 @@ const atrees = { { "name": "War Scream", "type": "damage", - "multipliers": [ - 50, - 0, - 0, - 0, - 50, - 0 - ] + "multipliers": [50, 0, 0, 0, 50, 0] } ] } - ], - "id": 10 + ] }, + { "display_name": "Earth Mastery", "desc": "Increases base damage from all Earth attacks", - "archetype": "Fallen", - "archetype_req": 0, - "parents": [ - 8 - ], - "dependencies": [], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Uppercut"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 10, "col": 0, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -3032,35 +2456,29 @@ const atrees = { { "type": "stat", "name": "eDam", - "value": [ - 2, - 4 - ] + "value": [2, 4] } ] } - ], - "id": 11 + ] }, + { "display_name": "Thunder Mastery", "desc": "Increases base damage from all Thunder attacks", - "archetype": "Fallen", - "archetype_req": 0, - "parents": [ - 8, - 14, - 9 - ], - "dependencies": [], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Uppercut", "Air Mastery", "Cheaper Charge"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 10, "col": 2, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -3073,35 +2491,29 @@ const atrees = { { "type": "stat", "name": "tDam", - "value": [ - 1, - 8 - ] + "value": [1, 8] } ] } - ], - "id": 12 + ] }, + { "display_name": "Water Mastery", "desc": "Increases base damage from all Water attacks", - "archetype": "Battle Monk", - "archetype_req": 0, - "parents": [ - 9, - 12, - 14 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": ["Cheaper Charge", "Thunder Mastery", "Air Mastery"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 11, "col": 4, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -3114,35 +2526,29 @@ const atrees = { { "type": "stat", "name": "wDam", - "value": [ - 2, - 4 - ] + "value": [2, 4] } ] } - ], - "id": 13 + ] }, + { "display_name": "Air Mastery", "desc": "Increases base damage from all Air attacks", - "archetype": "Battle Monk", - "archetype_req": 0, - "parents": [ - 10, - 12, - 9 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": ["War Scream", "Thunder Mastery", "Cheaper Charge"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 10, "col": 6, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -3155,33 +2561,29 @@ const atrees = { { "type": "stat", "name": "aDam", - "value": [ - 3, - 4 - ] + "value": [3, 4] } ] } - ], - "id": 14 + ] }, + { "display_name": "Fire Mastery", "desc": "Increases base damage from all Earth attacks", - "archetype": "Paladin", - "archetype_req": 0, - "parents": [ - 10 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["War Scream"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 10, "col": 8, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -3194,28 +2596,22 @@ const atrees = { { "type": "stat", "name": "fDam", - "value": [ - 3, - 5 - ] + "value": [3, 5] } ] } - ], - "id": 15 + ] }, + { "display_name": "Quadruple Bash", "desc": "Bash will hit 4 times at an even larger range", - "archetype": "Fallen", - "archetype_req": 0, - "parents": [ - 11, - 17 - ], - "dependencies": [], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Earth Mastery", "Fireworks"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 12, "col": 0, @@ -3232,57 +2628,41 @@ const atrees = { "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 - ] + "multipliers": [-20, 0, 0, 0, 0, 0] } - ], - "id": 16 + ] }, + { "display_name": "Fireworks", "desc": "Mobs hit by Uppercut will explode mid-air and receive additional damage", - "archetype": "Fallen", - "archetype_req": 0, - "parents": [ - 12, - 16 - ], - "dependencies": [], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Thunder Mastery", "Quadruple Bash"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 12, "col": 2, "icon": "node_1" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 3, "target_part": "Fireworks", "cost": 0, - "multipliers": [ - 80, - 0, - 20, - 0, - 0, - 0 - ] + "multipliers": [80, 0, 20, 0, 0, 0] }, { "type": "add_spell_prop", @@ -3293,22 +2673,18 @@ const atrees = { "Fireworks": 1 } } - ], - "id": 17 + ] }, + { "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": [ - 13 - ], - "dependencies": [ - 8 - ], + "archetype": "Battle Monk", + "archetype_req": 1, + "parents": ["Water Mastery"], + "dependencies": ["Uppercut"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 13, "col": 4, @@ -3323,35 +2699,25 @@ const atrees = { "base_spell": 3, "target_part": "Uppercut", "cost": -10, - "multipliers": [ - -70, - 0, - 0, - 0, - 0, - 0 - ] + "multipliers": [-70, 0, 0, 0, 0, 0] }, { "type": "convert_spell_conv", "target_part": "all", "conversion": "water" } - ], - "id": 18 + ] }, + { "display_name": "Flyby Jab", "desc": "Damage enemies in your way when using Charge", - "archetype": "", - "archetype_req": 0, - "parents": [ - 14, - 20 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Air Mastery", "Flaming Uppercut"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 12, "col": 6, @@ -3366,32 +2732,20 @@ const atrees = { "base_spell": 2, "target_part": "Flyby Jab", "cost": 0, - "multipliers": [ - 20, - 0, - 0, - 0, - 0, - 40 - ] + "multipliers": [20, 0, 0, 0, 0, 40] } - ], - "id": 19 + ] }, + { "display_name": "Flaming Uppercut", "desc": "Uppercut will light mobs on fire, dealing damage every 0.6 seconds", - "archetype": "Paladin", - "archetype_req": 0, - "parents": [ - 15, - 19 - ], - "dependencies": [ - 8 - ], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Fire Mastery", "Flyby Jab"], + "dependencies": ["Uppercut"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 12, "col": 8, @@ -3407,14 +2761,7 @@ const atrees = { "base_spell": 3, "target_part": "Flaming Uppercut", "cost": 0, - "multipliers": [ - 0, - 0, - 0, - 0, - 50, - 0 - ] + "multipliers": [0, 0, 0, 0, 50, 0] }, { "type": "add_spell_prop", @@ -3434,76 +2781,66 @@ const atrees = { "Flaming Uppercut": 5 } } - ], - "id": 20 + ] }, + { "display_name": "Iron Lungs", "desc": "War Scream deals more damage", - "archetype": "", - "archetype_req": 0, - "parents": [ - 19, - 20 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Flyby Jab", "Flaming Uppercut"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 13, "col": 7, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 4, "target_part": "War Scream", "cost": 0, - "multipliers": [ - 30, - 0, - 0, - 0, - 0, - 30 - ] + "multipliers": [30, 0, 0, 0, 0, 30] } - ], - "id": 21 + ] }, + { "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": [ - 23 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 3, + "parents": ["Counter"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 15, "col": 2, "icon": "node_3" }, - "properties": {}, - "effects": [], - "id": 22 + "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": [ - 18 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": ["Half-Moon Swipe"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 15, "col": 4, @@ -3518,31 +2855,20 @@ const atrees = { "base_spell": 5, "target_part": "Counter", "cost": 0, - "multipliers": [ - 60, - 0, - 20, - 0, - 0, - 20 - ] + "multipliers": [60, 0, 20, 0, 0, 20] } - ], - "id": 23 + ] }, + { "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": [ - 21 - ], - "dependencies": [ - 10 - ], + "archetype": "Paladin", + "archetype_req": 3, + "parents": ["Iron Lungs"], + "dependencies": ["War Scream"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 15, "col": 7, @@ -3551,23 +2877,20 @@ const atrees = { "properties": { "mantle_charge": 3 }, - "effects": [], - "id": 24 + "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": [ - 16, - 17 - ], - "dependencies": [ - 10 - ], + "archetype": "Fallen", + "archetype_req": 2, + "parents": ["Quadruple Bash", "Fireworks"], + "dependencies": ["War Scream"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 16, "col": 1, @@ -3583,29 +2906,24 @@ const atrees = { "slider_name": "Corrupted", "output": { "type": "stat", - "name": "raw" + "name": "raw" }, - "scaling": [ - 4 - ], + "scaling": [4], "slider_step": 2, "max": 120 } - ], - "id": 25 + ] }, + { "display_name": "Spear Proficiency 2", "desc": "Improve your Main Attack's damage and range w/ spear", - "archetype": "", - "archetype_req": 0, - "parents": [ - 25, - 27 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Bak'al's Grasp", "Cheaper Uppercut"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 17, "col": 0, @@ -3625,103 +2943,96 @@ const atrees = { } ] } - ], - "id": 26 + ] }, + { "display_name": "Cheaper Uppercut", "desc": "Reduce the Mana Cost of Uppercut", - "archetype": "", - "archetype_req": 0, - "parents": [ - 26, - 28, - 23 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Spear Proficiency 2", "Aerodynamics", "Counter"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 17, "col": 3, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 3, "cost": -5 } - ], - "id": 27 + ] }, + { "display_name": "Aerodynamics", "desc": "During Charge, you can steer and change direction", - "archetype": "Battle Monk", - "archetype_req": 0, - "parents": [ - 27, - 29 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": ["Cheaper Uppercut", "Provoke"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 17, "col": 5, "icon": "node_1" }, - "properties": {}, - "effects": [], - "id": 28 + "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": [ - 28, - 24 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Aerodynamics", "Mantle of the Bovemists"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 17, "col": 7, "icon": "node_1" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 4, "cost": -5 } - ], - "id": 29 + ] }, + { "display_name": "Precise Strikes", "desc": "+30% Critical Hit Damage", - "archetype": "", - "archetype_req": 0, - "parents": [ - 27, - 26 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Cheaper Uppercut", "Spear Proficiency 2"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 18, "col": 2, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -3733,66 +3044,53 @@ const atrees = { } ] } - ], - "id": 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": [ - 28, - 29 - ], - "dependencies": [ - 10 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Aerodynamics", "Provoke"], + "dependencies": ["War Scream"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 18, "col": 6, "icon": "node_1" }, - "properties": {}, + "properties": { + + }, "effects": [ { "type": "add_spell_prop", "base_spell": 4, "target_part": "Air Shout", "cost": 0, - "multipliers": [ - 20, - 0, - 0, - 0, - 0, - 5 - ] + "multipliers": [20, 0, 0, 0, 0, 5] } - ], - "id": 31 + ] }, + { "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": [ - 26 - ], - "dependencies": [ - 25 - ], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Spear Proficiency 2"], + "dependencies": ["Bak'al's Grasp"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 20, "col": 0, "icon": "node_2" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "stat_scaling", @@ -3805,66 +3103,50 @@ const atrees = { ], "output": { "type": "stat", - "name": "damMult" + "name": "damMult" }, - "scaling": [ - 3 - ], + "scaling": [3], "max": 300 } - ], - "id": 32 + ] }, + { "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": [ - 27, - 34 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 1, + "parents": ["Cheaper Uppercut", "Stronger Mantle"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 20, "col": 3, "icon": "node_1" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 2, "target_part": "Flying Kick", "cost": 0, - "multipliers": [ - 120, - 0, - 0, - 10, - 0, - 20 - ] + "multipliers": [120, 0, 0, 10, 0, 20] } - ], - "id": 33 + ] }, + { "display_name": "Stronger Mantle", "desc": "Add +2 additional charges to Mantle of the Bovemists", - "archetype": "Paladin", - "archetype_req": 0, - "parents": [ - 35, - 33 - ], - "dependencies": [ - 24 - ], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Manachism", "Flying Kick"], + "dependencies": ["Mantle of the Bovemists"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 20, "col": 6, @@ -3873,21 +3155,20 @@ const atrees = { "properties": { "mantle_charge": 2 }, - "effects": [], - "id": 34 + "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": [ - 34, - 29 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 3, + "parents": ["Stronger Mantle", "Provoke"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 20, "col": 8, @@ -3896,59 +3177,47 @@ const atrees = { "properties": { "cooldown": 1 }, - "effects": [], - "id": 35 + "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": [ - 32, - 37 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Enraged Blow", "Ragnarokkr"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 22, "col": 0, "icon": "node_1" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 1, "target_part": "Boiling Blood", "cost": 0, - "multipliers": [ - 25, - 0, - 0, - 0, - 5, - 0 - ] + "multipliers": [25, 0, 0, 0, 5, 0] } - ], - "id": 36 + ] }, + { "display_name": "Ragnarokkr", "desc": "War Scream become deafening, increasing its range and giving damage bonus to players", - "archetype": "Fallen", - "archetype_req": 0, - "parents": [ - 36, - 33 - ], - "dependencies": [ - 10 - ], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Boiling Blood", "Flying Kick"], + "dependencies": ["War Scream"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 22, "col": 2, @@ -3964,24 +3233,18 @@ const atrees = { "base_spell": 4, "cost": 10 } - ], - "id": 37 + ] }, + { "display_name": "Ambidextrous", "desc": "Increase your chance to attack with Counter by +30%", - "archetype": "", - "archetype_req": 0, - "parents": [ - 33, - 34, - 39 - ], - "dependencies": [ - 23 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Flying Kick", "Stronger Mantle", "Burning Heart"], + "dependencies": ["Counter"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 22, "col": 4, @@ -3990,27 +3253,27 @@ const atrees = { "properties": { "chance": 30 }, - "effects": [], - "id": 38 + "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": [ - 38, - 40 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Ambidextrous", "Stronger Bash"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 22, "col": 6, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "stat_scaling", @@ -4025,134 +3288,106 @@ const atrees = { "type": "stat", "name": "fDamPct" }, - "scaling": [ - 2 - ], + "scaling": [2], "max": 100, "slider_step": 100 } - ], - "id": 39 + ] }, + { "display_name": "Stronger Bash", "desc": "Increase the damage of Bash", - "archetype": "", - "archetype_req": 0, - "parents": [ - 39, - 35 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Burning Heart", "Manachism"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 22, "col": 8, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 1, "target_part": "Single Hit", "cost": 0, - "multipliers": [ - 30, - 0, - 0, - 0, - 0, - 0 - ] + "multipliers": [30, 0, 0, 0, 0, 0] } - ], - "id": 40 + ] }, + { "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": [ - 37, - 36 - ], - "dependencies": [ - 25 - ], + "archetype": "Fallen", + "archetype_req": 5, + "parents": ["Ragnarokkr", "Boiling Blood"], + "dependencies": ["Bak'al's Grasp"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 23, "col": 1, "icon": "node_1" }, - "properties": {}, - "effects": [], - "id": 41 + "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": [ - 37 - ], - "dependencies": [ - 17 - ], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Ragnarokkr"], + "dependencies": ["Fireworks"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 24, "col": 2, "icon": "node_1" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 3, "target_part": "Comet", "cost": 0, - "multipliers": [ - 80, - 20, - 0, - 0, - 0, - 0 - ] + "multipliers": [80, 20, 0, 0, 0, 0] }, { - "type": "add_spell_prop", + "type":"add_spell_prop", "base_spell": 3, "target_part": "Total Damage", - "cost": 0, + "cost": 0, "hits": { "Comet": 1 } } - ], - "id": 42 + ] }, + { "display_name": "Collide", "desc": "Mobs thrown into walls from Flying Kick will explode and receive additonal damage", - "archetype": "Battle Monk", - "archetype_req": 4, - "parents": [ - 38, - 39 - ], - "dependencies": [ - 33 - ], + "archetype": "Battle Monk", + "archetype_req": 4, + "parents": ["Ambidextrous", "Burning Heart"], + "dependencies": ["Flying Kick"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 23, "col": 5, @@ -4167,53 +3402,41 @@ const atrees = { "base_spell": 2, "target_part": "Collide", "cost": 0, - "multipliers": [ - 100, - 0, - 0, - 0, - 50, - 0 - ] + "multipliers": [100, 0, 0, 0, 50, 0] } - ], - "id": 43 + ] }, + { "display_name": "Rejuvenating Skin", "desc": "Regain back 30% of the damage you take as healing over 30s", - "archetype": "Paladin", - "archetype_req": 0, - "parents": [ - 39, - 40 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Burning Heart", "Stronger Bash"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 23, "col": 7, "icon": "node_3" }, - "properties": {}, - "effects": [], - "id": 44 + "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": [ - 36, - 46 - ], - "dependencies": [ - 25 - ], + "archetype": "", + "archetype_req": 0, + "parents": ["Boiling Blood", "Radiant Devotee"], + "dependencies": ["Bak'al's Grasp"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 26, "col": 0, @@ -4229,35 +3452,31 @@ const atrees = { "slider_name": "Corrupted", "output": { "type": "stat", - "name": "raw" + "name": "raw" }, - "scaling": [ - 1 - ], + "scaling": [1], "slider_step": 2, "max": 50 } - ], - "id": 45 + ] }, + { "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": [ - 47, - 45 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 1, + "parents": ["Whirlwind Strike", "Uncontainable Corruption"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 26, "col": 2, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "stat_scaling", @@ -4271,36 +3490,29 @@ const atrees = { "type": "stat", "name": "mr" }, - "scaling": [ - 1 - ], + "scaling": [1], "max": 10, "slider_step": 4 } - ], - "id": 46 + ] }, + { "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": [ - 38, - 46 - ], - "dependencies": [ - 8 - ], + "archetype": "Battle Monk", + "archetype_req": 5, + "parents": ["Ambidextrous", "Radiant Devotee"], + "dependencies": ["Uppercut"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 26, "col": 4, "icon": "node_1" }, "properties": { - "range": 2 + "range": 2 }, "effects": [ { @@ -4308,35 +3520,27 @@ const atrees = { "base_spell": 3, "target_part": "Uppercut", "cost": 0, - "multipliers": [ - 0, - 0, - 0, - 0, - 0, - 50 - ] + "multipliers": [0, 0, 0, 0, 0, 50] } - ], - "id": 47 + ] }, + { "display_name": "Mythril Skin", "desc": "Gain +5% Base Resistance and become immune to knockback", - "archetype": "Paladin", - "archetype_req": 6, - "parents": [ - 44 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 6, + "parents": ["Rejuvenating Skin"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 26, "col": 7, "icon": "node_1" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "raw_stat", @@ -4348,23 +3552,18 @@ const atrees = { } ] } - ], - "id": 48 + ] }, + { "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": [ - 45, - 46 - ], - "dependencies": [ - 25 - ], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Uncontainable Corruption", "Radiant Devotee"], + "dependencies": ["Bak'al's Grasp"], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 27, "col": 1, @@ -4373,56 +3572,47 @@ const atrees = { "properties": { "duration": 5 }, - "effects": [], - "id": 49 + "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": [ - 48, - 51 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Mythril Skin", "Sparkling Hope"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 27, "col": 6, "icon": "node_1" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 5, "target_part": "Shield Strike", "cost": 0, - "multipliers": [ - 60, - 0, - 20, - 0, - 0, - 0 - ] + "multipliers": [60, 0, 20, 0, 0, 0] } - ], - "id": 50 + ] }, + { "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": [ - 48 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Mythril Skin"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 27, "col": 8, @@ -4437,36 +3627,27 @@ const atrees = { "base_spell": 5, "target_part": "Sparkling Hope", "cost": 0, - "multipliers": [ - 10, - 0, - 5, - 0, - 0, - 0 - ] + "multipliers": [10, 0, 5, 0, 0, 0] } - ], - "id": 51 + ] }, + { "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": [ - 53, - 45 - ], - "dependencies": [], + "archetype": "Fallen", + "archetype_req": 8, + "parents": ["Tempest", "Uncontainable Corruption"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 28, "col": 0, "icon": "node_2" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "stat_scaling", @@ -4474,29 +3655,24 @@ const atrees = { "slider_name": "Corrupted", "output": { "type": "stat", - "name": "bashAoE" + "name": "bashAoE" }, - "scaling": [ - 1 - ], + "scaling": [1], "max": 10, "slider_step": 3 } - ], - "id": 52 + ] }, + { "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": [ - 52, - 54 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": ["Massive Bash", "Spirit of the Rabbit"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 28, "col": 2, @@ -4511,14 +3687,7 @@ const atrees = { "base_spell": 4, "target_part": "Tempest", "cost": "0", - "multipliers": [ - 30, - 10, - 0, - 0, - 0, - 10 - ] + "multipliers": [30, 10, 0, 0, 0, 10] }, { "type": "add_spell_prop", @@ -4538,27 +3707,25 @@ const atrees = { "Tempest": 3 } } - ], - "id": 53 + ] }, + { "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": [ - 53, - 47 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 5, + "parents": ["Tempest", "Whirlwind Strike"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 28, "col": 4, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", @@ -4575,78 +3742,66 @@ const atrees = { } ] } - ], - "id": 54 + ] }, + { "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": [ - 53, - 52 - ], - "dependencies": [], + "archetype": "Fallen", + "archetype_req": 5, + "parents": ["Tempest", "Massive Bash"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 29, "col": 1, "icon": "node_1" }, - "properties": {}, - "effects": [], - "id": 55 + "properties": { + }, + "effects": [ + + ] }, + { "display_name": "Axe Kick", "desc": "Increase the damage of Uppercut, but also increase its mana cost", - "archetype": "", - "archetype_req": 0, - "parents": [ - 53, - 54 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Tempest", "Spirit of the Rabbit"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 29, "col": 3, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 3, "target_part": "Uppercut", "cost": 10, - "multipliers": [ - 100, - 0, - 0, - 0, - 0, - 0 - ] + "multipliers": [100, 0, 0, 0, 0, 0] } - ], - "id": 56 + ] }, + { "display_name": "Radiance", "desc": "Bash will buff your allies' positive IDs. (15s Cooldown)", - "archetype": "Paladin", - "archetype_req": 2, - "parents": [ - 54, - 58 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 2, + "parents": ["Spirit of the Rabbit", "Cheaper Bash 2"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 29, "col": 5, @@ -4655,80 +3810,77 @@ const atrees = { "properties": { "cooldown": 15 }, - "effects": [], - "id": 57 + "effects": [ + + ] }, + { "display_name": "Cheaper Bash 2", "desc": "Reduce the Mana cost of Bash", - "archetype": "", - "archetype_req": 0, - "parents": [ - 57, - 50, - 51 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Radiance", "Shield Strike", "Sparkling Hope"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 29, "col": 7, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 1, "cost": -5 } - ], - "id": 58 + ] }, + { "display_name": "Cheaper War Scream", "desc": "Reduce the Mana cost of War Scream", - "archetype": "", - "archetype_req": 0, - "parents": [ - 52 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Massive Bash"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 31, "col": 0, "icon": "node_0" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "add_spell_prop", "base_spell": 4, "cost": -5 } - ], - "id": 59 + ] }, + { "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": 11, - "parents": [ - 62 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 11, + "parents": ["Cyclone"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 31, "col": 2, "icon": "node_3" }, - "properties": {}, + "properties": { + }, "effects": [ { "type": "stat_scaling", @@ -4736,27 +3888,23 @@ const atrees = { "slider_name": "Hits dealt", "output": { "type": "stat", - "name": "rainrawButDifferent" + "name": "rainrawButDifferent" }, - "scaling": [ - 2 - ], + "scaling": [2], "max": 50 } - ], - "id": 60 + ] }, + { "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": [ - 62 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 8, + "parents": ["Cyclone"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 32, "col": 5, @@ -4771,29 +3919,25 @@ const atrees = { }, { "type": "raw_stat", - "bonuses": [ - { - "type": "prop", - "abil_name": "Bash", - "name": "aoe", - "value": 3 - } - ] + "bonuses": [{ + "type": "prop", + "abil_name": "Bash", + "name": "aoe", + "value": 3 + }] } - ], - "id": 61 + ] }, + { "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": [ - 54 - ], - "dependencies": [], + "archetype": "Battle Monk", + "archetype_req": 0, + "parents": ["Spirit of the Rabbit"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 31, "col": 4, @@ -4809,14 +3953,7 @@ const atrees = { "base_spell": 4, "target_part": "Cyclone", "cost": 0, - "multipliers": [ - 10, - 0, - 0, - 0, - 5, - 10 - ] + "multipliers": [10, 0, 0, 0, 5, 10] }, { "type": "add_spell_prop", @@ -4826,105 +3963,92 @@ const atrees = { "hits": { "Cyclone": 40 } + } - ], - "id": 62 + ] }, + { "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": [ - 58 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 12, + "parents": ["Cheaper Bash 2"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 32, "col": 7, "icon": "node_3" }, "properties": {}, - "effects": [], - "id": 63 + "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": [ - 59 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 10, + "parents": ["Cheaper War Scream"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 34, "col": 1, "icon": "node_3" }, "properties": {}, - "effects": [], - "id": 64 + "effects": [] }, + { "display_name": "Haemorrhage", "desc": "Reduce Blood Pact's health cost. (0.5% health per mana)", - "archetype": "Fallen", - "archetype_req": 0, - "parents": [ - 64 - ], - "dependencies": [ - 64 - ], + "archetype": "Fallen", + "archetype_req": 0, + "parents": ["Blood Pact"], + "dependencies": ["Blood Pact"], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 35, "col": 2, "icon": "node_1" }, "properties": {}, - "effects": [], - "id": 65 + "effects": [] }, + { "display_name": "Brink of Madness", "desc": "If your health is 25% full or less, gain +40% Resistance", - "archetype": "", - "archetype_req": 0, - "parents": [ - 64, - 67 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Blood Pact", "Cheaper Uppercut 2"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 35, "col": 4, "icon": "node_2" }, "properties": {}, - "effects": [], - "id": 66 + "effects": [] }, + { "display_name": "Cheaper Uppercut 2", "desc": "Reduce the Mana cost of Uppercut", - "archetype": "", - "archetype_req": 0, - "parents": [ - 63, - 66 - ], - "dependencies": [], + "archetype": "", + "archetype_req": 0, + "parents": ["Second Chance", "Brink of Madness"], + "dependencies": [], "blockers": [], - "cost": 1, + "cost": 1, "display": { "row": 35, "col": 6, @@ -4937,20 +4061,18 @@ const atrees = { "base_spell": 3, "cost": -5 } - ], - "id": 67 + ] }, + { "display_name": "Martyr", "desc": "When you receive a fatal blow, all nearby allies become invincible", - "archetype": "Paladin", - "archetype_req": 0, - "parents": [ - 63 - ], - "dependencies": [], + "archetype": "Paladin", + "archetype_req": 0, + "parents": ["Second Chance"], + "dependencies": [], "blockers": [], - "cost": 2, + "cost": 2, "display": { "row": 35, "col": 8, @@ -4960,8 +4082,7 @@ const atrees = { "duration": 3, "aoe": 12 }, - "effects": [], - "id": 68 + "effects": [] } ] -} \ No newline at end of file +} diff --git a/js/atree_constants_old.js b/js/atree_constants_old.js deleted file mode 100644 index e325247..0000000 --- a/js/atree_constants_old.js +++ /dev/null @@ -1,171 +0,0 @@ -const atrees_old = { - "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}, - {"title": "Dagger Proficiency I", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 2, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 2, "col": 3}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 2, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 3, "col": 4}, - {"title": "Double Spin", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 4, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 5, "col": 4}, - {"title": "Dash", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 6, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 6, "col": 3}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 6, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 6, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 6, "col": 6}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 7, "col": 2}, - {"title": "Smoke Bomb", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 8, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 7, "col": 6}, - {"title": "Multihit", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 8, "col": 6}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 8, "col": 3}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 8, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 8, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 8, "col": 1}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 8, "col": 0}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 9, "col": 0}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 0}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 9, "col": 2}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 9, "col": 6}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 6}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 8, "col": 7}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 8, "col": 8}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 9, "col": 8}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 10, "col": 8}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 10, "col": 1}, - {"title": "Backstab", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 11, "col": 1}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 9, "col": 4}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 90, "row": 10, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 10, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 11, "col": 4}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 10, "col": 7}, - {"title": "Fatality", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 11, "col": 7}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 11, "col": 0}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 12, "col": 0}, - {"title": "Violent Vortex", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 13, "col": 0}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 11, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 12, "col": 2}, - {"title": "Vanish", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 13, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 12, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 13, "col": 3}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 13, "col": 4}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 13, "col": 6}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 14, "col": 2}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 15, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 14, "col": 4}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 15, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 12, "col": 7}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 13, "col": 7}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 14, "col": 7}, - {"title": "Lacerate", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 15, "col": 7}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 15, "col": 1}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 16, "col": 1}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 15, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 16, "col": 5}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 15, "col": 8}, - {"title": "Wall of Smoke", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 16, "col": 8}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 16, "col": 0}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 17, "col": 0}, - {"title": "Silent Killer", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 18, "col": 0}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 16, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 17, "col": 2}, - {"title": "Shadow Travel", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 18, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 17, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 18, "col": 5}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 17, "col": 8}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 18, "col": 8}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 18, "col": 4}, - {"title": "Exploding Clones", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 19, "col": 4}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 18, "col": 3}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 19, "col": 0}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 20, "col": 0}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 19, "col": 3}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 20, "col": 3}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 18, "col": 6}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 18, "col": 7}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 19, "col": 7}, - {"title": "Weightless", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 20, "col": 7}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 20, "col": 1}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 20, "col": 2}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 21, "col": 1}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 20, "col": 4}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 21, "col": 4}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 20, "col": 6}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 21, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 21, "col": 6}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 20, "col": 8}, - {"title": "Dancing Blade", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 21, "col": 8}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 21, "col": 0}, - {"title": "Spin Attack Damage", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 22, "col": 0}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 21, "col": 3}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 22, "col": 3}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 22, "col": 1}, - {"title": "Marked", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 1}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 22, "col": 4}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 23, "col": 5}, - {"title": "Shurikens", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 6}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 23, "col": 7}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 22, "col": 8}, - {"title": "Far Reach", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 23, "col": 8}, - {"title": "Stronger Multihit", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 24, "col": 5}, - {"title": "Psithurism", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 24, "col": 7}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 24, "col": 1}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 1}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 3}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 24, "col": 4}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 4}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 25, "col": 5}, - {"title": "Choke Bomb", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 6}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 25, "col": 7}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 25, "col": 8}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 26, "col": 5}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 25, "col": 0}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 26, "col": 0}, - {"title": "Death Magnet", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 27, "col": 0}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 25, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 26, "col": 2}, - {"title": "Cheaper Multihit", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 27, "col": 2}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 26, "col": 4}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 27, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 26, "col": 7}, - {"title": "Parry", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 27, "col": 7}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 27, "col": 1}, - {"title": "Fatal Spin", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 28, "col": 1}, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 27, "col": 3}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 28, "col": 3}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 27, "col": 6}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 28, "col": 6}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 27, "col": 8}, - {"title": "Wall Jump", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 28, "col": 8}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 28, "col": 0}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 29, "col": 0}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 29, "col": 1}, - {"title": "Harvester", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 30, "col": 1}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 28, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 29, "col": 4}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 30, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 28, "col": 7}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 29, "col": 7}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 30, "col": 7 }, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 30, "col": 2}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 31, "col": 2 }, - {"image": "../media/atree/connect_t.png", "connector": true, "rotate": 180, "row": 30, "col": 5}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 90, "row": 30, "col": 6}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 31, "col": 5}, - {"title": "Ricochet", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 31, "col": 8}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 31, "col": 1}, - {"title": "Satsujin", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 32, "col": 1}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 31, "col": 4}, - {"title": "Forbidden Art", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 32, "col": 4}, - {"image": "../media/atree/connect_line.png", "connector": true, "rotate": 0, "row": 31, "col": 7}, - {"title": "Jasmine Bloom", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 32, "col": 7}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 180, "row": 32, "col": 0}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 33, "col": 0}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 32, "col": 2}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 33, "col": 2}, - {"image": "../media/atree/connect_angle.png", "connector": true, "rotate": 270, "row": 32, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 33, "col": 5}, - {"title": "Text", "desc": "desc", "image": "../media/atree/node.png", "connector": false, "row": 33, "col": 8}, - ] -} \ No newline at end of file diff --git a/js/atree_constants_str_old.js b/js/atree_constants_str_old.js deleted file mode 100644 index b604ecc..0000000 --- a/js/atree_constants_str_old.js +++ /dev/null @@ -1,4160 +0,0 @@ -const atrees = -{ - "Archer": [ - { - "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] - }, - { - - } - ] - }, - { - "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": "", - "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", "Cheaper Arrow Storm"], - "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": 22, - "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", "Traveler"], - "dependencies": ["Focus"], - "blockers": [], - "cost": 2, - "display": { - "row": 25, - "col": 4 - }, - "properties": { - "range": 64, - "focusReq": 2 - }, - "effects": [ - - { - "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": 26, - "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": 26 , - "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": 28, - "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": 28, - "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": 31, - "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", "Cheaper Arrow Storm (2)"], - "dependencies": ["Focus"], - "blockers": [], - "cost": 2, - "display": { - "row": 31, - "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 (2)"], - "dependencies": ["Arrow Shield"], - "blockers": [], - "cost": 2, - "display": { - "row": 32, - "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": 33, - "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": 37, - "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": 37, - "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": ["Cheaper Escape (2)"], - "dependencies": [], - "blockers": [], - "cost": 2, - "display": { - "row": 37, - "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": 38, - "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 (2)"], - "dependencies": [], - "blockers": [], - "cost": 2, - "display": { - "row": 39, - "col": 2 - }, - "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": 40, - "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 (2)"], - "dependencies": ["Basaltic Trap"], - "blockers": [], - "cost": 2, - "display": { - "row": 40, - "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": 25, - "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": 26, - "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": 28, - "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": 29, - "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": 31, - "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": 31, - "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": ["Better Guardian Angels", "Cheaper Arrow Shield", "Arrow Hurricane"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 33, - "col": 2 - }, - "properties": { - "mainAtk_range": 6 - }, - "effects": [ - { - "type": "raw_stat", - "bonuses": [ - { - "type": "stat", - "name": "mdCritPct", - "value": 30 - } - ] - } - ] - }, - { - "display_name": "Cheaper Arrow Shield", - "desc": "Reduce the Mana cost of Arrow Shield.", - "archetype": "", - "archetype_req": 0, - "parents": ["Precise Shot", "Initiator"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 33, - "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 (2)", "Initiator"], - "dependencies": ["Arrow Bomb"], - "blockers": [], - "cost": 1, - "display": { - "row": 33, - "col": 6 - }, - "properties": { - } - }, - { - "display_name": "Cheaper Escape (2)", - "desc": "Reduce the Mana cost of Escape.", - "archetype": "", - "archetype_req": 0, - "parents": ["Call of the Hound", "Decimator"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 34, - "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 (2)"], - "dependencies": ["Grappling Hook"], - "blockers": [], - "cost": 1, - "display": { - "row": 35, - "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": 40, - "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": 25, - "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": 28, - "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": 34, - "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": 38, - "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": 17, - "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": 19, - "col": 4 - }, - "properties": { - - }, - "effects": [ - { - "type": "stat_scaling", - "slider": true, - "slider_name": "Focus", - "output": { - "type": "stat", - "abil_name": "Focus", - "name": "damMult" - }, - "scaling": [3], - "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": 22, - "col": 4 - }, - "properties": { - - }, - "effects": [ - { - "type": "stat_scaling", - "slider": true, - "slider_name": "Focus", - "output": { - "type": "stat", - "abil_name": "Focus", - "name": "damMult" - }, - "scaling": [35], - "max": 5 - } - ] - }, - { - "display_name": "More Focus (2)", - "desc": "Add +2 max Focus", - "archetype": "Sharpshooter", - "archetype_req": 0, - "parents": ["Crepuscular Ray", "Snow Storm"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 39, - "col": 4 - }, - "properties": { - - }, - "effects": [ - { - "type": "stat_scaling", - "slider": true, - "slider_name": "Focus", - "output": { - "type": "stat", - "abil_name": "Focus", - "name": "damMult" - }, - "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": 25, - "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": 22, - "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": 38, - "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": 17, - "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] - } - ] - }, - { - "display_name": "Decimator", - "desc": "Phantom Ray will increase its damage by 10% everytime you do not miss with it (Max 50%)", - "archetype": "Sharpshooter", - "archetype_req": 0, - "parents": ["Cheaper Arrow Shield"], - "dependencies": ["Phantom Ray"], - "blockers": [], - "cost": 1, - "display": { - "row": 34, - "col": 5 - }, - "properties": { - }, - "effects": [ - { - "type": "stat_scaling", - "slider": true, - "slider_name": "Phantom Ray hits", - "output": { - "type": "stat", - "name": "PhRayDmg" - }, - "scaling": 10, - "max": 50 - } - ] - } - ], - "Warrior": [ - { - "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, - "icon": "node_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, - "icon": "node_0" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_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": ["Uppercut"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 9, - "col": 1, - "icon": "node_1" - }, - "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": ["Charge"], - "dependencies": [], - "blockers": ["Tougher Skin"], - "cost": 1, - "display": { - "row": 6, - "col": 2, - "icon": "node_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, - "icon": "node_0" - }, - "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, - "icon": "node_4" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_4" - }, - "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, - "icon": "node_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", "Cheaper Charge"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 10, - "col": 2, - "icon": "node_0" - }, - "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, - "icon": "node_0" - }, - "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", "Cheaper Charge"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 10, - "col": 6, - "icon": "node_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": "Paladin", - "archetype_req": 0, - "parents": ["War Scream"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 10, - "col": 8, - "icon": "node_0" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_3" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_3" - }, - "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, - "icon": "node_3" - }, - "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, - "icon": "node_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, - "icon": "node_0" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_2" - }, - "properties": { - }, - "effects": [ - { - "type": "stat_scaling", - "slider": false, - "inputs": [ - { - "type": "stat", - "name": "hpBonus" - } - ], - "output": { - "type": "stat", - "name": "damMult" - }, - "scaling": [3], - "max": 300 - } - ] - }, - - { - "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, - "icon": "node_1" - }, - "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": ["Mantle of the Bovemists"], - "blockers": [], - "cost": 1, - "display": { - "row": 20, - "col": 6, - "icon": "node_0" - }, - "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, - "icon": "node_2" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_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, - "icon": "node_0" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_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, - "icon": "node_1" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_3" - }, - "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, - "icon": "node_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, - "icon": "node_0" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_2" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_2" - }, - "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, - "icon": "node_2" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_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, - "icon": "node_0" - }, - "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, - "icon": "node_2" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_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": 11, - "parents": ["Cyclone"], - "dependencies": [], - "blockers": [], - "cost": 2, - "display": { - "row": 31, - "col": 2, - "icon": "node_3" - }, - "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": ["Cyclone"], - "dependencies": [], - "blockers": [], - "cost": 2, - "display": { - "row": 32, - "col": 5, - "icon": "node_1" - }, - "properties": {}, - "effects": [ - { - "type": "convert_spell_conv", - "target_part": "all", - "conversion": "thunder" - }, - { - "type": "raw_stat", - "bonuses": [{ - "type": "prop", - "abil_name": "Bash", - "name": "aoe", - "value": 3 - }] - } - ] - }, - - { - "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": ["Spirit of the Rabbit"], - "dependencies": [], - "blockers": [], - "cost": 1, - "display": { - "row": 31, - "col": 4, - "icon": "node_1" - }, - "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, - "icon": "node_3" - }, - "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, - "icon": "node_3" - }, - "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, - "icon": "node_1" - }, - "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, - "icon": "node_2" - }, - "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, - "icon": "node_0" - }, - "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, - "icon": "node_1" - }, - "properties": { - "duration": 3, - "aoe": 12 - }, - "effects": [] - } - ], -} - -const atree_example = [ - { - "title": "skill", - "desc": "desc", - "image": "../media/atree/node.png", - "connector": false, - "row": 5, - "col": 3, - }, - { - "image": "../media/atree/connect_angle.png", - "connector": true, - "rotate": 270, - "row": 4, - "col": 3, - }, - { - "title": "skill2", - "desc": "desc", - "image": "../media/atree/node.png", - "connector": false, - "row": 0, - "col": 2 - }, - { - "image": "../media/atree/connect_line.png", - "connector": true, - "rotate": 0, - "row": 1, - "col": 2 - }, - { - "title": "skill3", - "desc": "desc", - "image": "../media/atree/node.png", - "connector": false, - "row": 2, - "col": 2 - }, - { - "image": "../media/atree/connect_line.png", - "connector": true, - "rotate": 90, - "row": 2, - "col": 3 - }, - { - "title": "skill4", - "desc": "desc", - "image": "../media/atree/node.png", - "connector": false, - "row": 2, - "col": 4 - }, - { - "image": "../media/atree/connect_line.png", - "connector": true, - "rotate": 0, - "row": 3, - "col": 2 - }, - { - "title": "skill5", - "desc": "desc", - "image": "../media/atree/node.png", - "connector": false, - "row": 4, - "col": 2 - }, -]; diff --git a/js/atree_constants_str_old_min.js b/js/atree_constants_str_old_min.js deleted file mode 100644 index 73d3e29..0000000 --- a/js/atree_constants_str_old_min.js +++ /dev/null @@ -1 +0,0 @@ -const atrees={Archer:[{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]},{}]},{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:.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:.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","Cheaper Arrow Storm"],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:22,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","Traveler"],dependencies:["Focus"],blockers:[],cost:2,display:{row:25,col:4},properties:{range:64,focusReq:2},effects:[{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:26,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:26,col:5},properties:{duration:2,aoe:.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:28,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:28,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:31,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","Cheaper Arrow Storm (2)"],dependencies:["Focus"],blockers:[],cost:2,display:{row:31,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 (2)"],dependencies:["Arrow Shield"],blockers:[],cost:2,display:{row:32,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:33,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:37,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:37,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:["Cheaper Escape (2)"],dependencies:[],blockers:[],cost:2,display:{row:37,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:38,col:6},properties:{attackSpeed:.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 (2)"],dependencies:[],blockers:[],cost:2,display:{row:39,col:2},properties:{range:2.5,slowness:.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:40,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 (2)"],dependencies:["Basaltic Trap"],blockers:[],cost:2,display:{row:40,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:25,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:26,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:28,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:29,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:31,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:31,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:["Better Guardian Angels","Cheaper Arrow Shield","Arrow Hurricane"],dependencies:[],blockers:[],cost:1,display:{row:33,col:2},properties:{mainAtk_range:6},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"mdCritPct",value:30}]}]},{display_name:"Cheaper Arrow Shield",desc:"Reduce the Mana cost of Arrow Shield.",archetype:"",archetype_req:0,parents:["Precise Shot","Initiator"],dependencies:[],blockers:[],cost:1,display:{row:33,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 (2)","Initiator"],dependencies:["Arrow Bomb"],blockers:[],cost:1,display:{row:33,col:6},properties:{}},{display_name:"Cheaper Escape (2)",desc:"Reduce the Mana cost of Escape.",archetype:"",archetype_req:0,parents:["Call of the Hound","Decimator"],dependencies:[],blockers:[],cost:1,display:{row:34,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 (2)"],dependencies:["Grappling Hook"],blockers:[],cost:1,display:{row:35,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:40,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:25,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:28,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:34,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:38,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:.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:17,col:0},properties:{arrow:2},effects:[{type:"add_spell_prop",base_spell:0,target_part:"Melee Damage",cost:0,multipliers:.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:19,col:4},properties:{},effects:[{type:"stat_scaling",slider:!0,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:22,col:4},properties:{},effects:[{type:"stat_scaling",slider:!0,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","Snow Storm"],dependencies:[],blockers:[],cost:1,display:{row:39,col:4},properties:{},effects:[{type:"stat_scaling",slider:!0,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:25,col:2},properties:{},effects:[{type:"stat_scaling",slider:!1,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:22,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:38,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:17,col:2},properties:{},effects:[{type:"stat_scaling",slider:!0,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]}]},{display_name:"Decimator",desc:"Phantom Ray will increase its damage by 10% everytime you do not miss with it (Max 50%)",archetype:"Sharpshooter",archetype_req:0,parents:["Cheaper Arrow Shield"],dependencies:["Phantom Ray"],blockers:[],cost:1,display:{row:34,col:5},properties:{},effects:[{type:"stat_scaling",slider:!0,slider_name:"Phantom Ray hits",output:{type:"stat",name:"PhRayDmg"},scaling:10,max:50}]}],Warrior:[{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,icon:"node_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,icon:"node_0"},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,icon:"node_0"},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,icon:"node_1"},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,icon:"node_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:["Uppercut"],dependencies:[],blockers:[],cost:1,display:{row:9,col:1,icon:"node_1"},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:["Charge"],dependencies:[],blockers:["Tougher Skin"],cost:1,display:{row:6,col:2,icon:"node_0"},properties:{},effects:[{type:"stat_scaling",slider:!1,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,icon:"node_0"},properties:{},effects:[{type:"raw_stat",bonuses:[{type:"stat",name:"baseResist",value:"5"}]},{type:"stat_scaling",slider:!1,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,icon:"node_4"},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,icon:"node_0"},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,icon:"node_4"},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,icon:"node_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,icon:"node_0"},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,icon:"node_0"},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,icon:"node_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:"Paladin",archetype_req:0,parents:["War Scream"],dependencies:[],blockers:[],cost:1,display:{row:10,col:8,icon:"node_0"},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,icon:"node_1"},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,icon:"node_1"},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,icon:"node_1"},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,icon:"node_1"},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,icon:"node_1"},properties:{duration:3,tick:.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,icon:"node_0"},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,icon:"node_3"},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,icon:"node_1"},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,icon:"node_3"},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,icon:"node_3"},properties:{cooldown:15},effects:[{type:"stat_scaling",slider:!0,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,icon:"node_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,icon:"node_0"},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,icon:"node_1"},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,icon:"node_1"},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,icon:"node_0"},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,icon:"node_1"},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,icon:"node_2"},properties:{},effects:[{type:"stat_scaling",slider:!1,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,icon:"node_1"},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:["Mantle of the Bovemists"],blockers:[],cost:1,display:{row:20,col:6,icon:"node_0"},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,icon:"node_2"},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,icon:"node_1"},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,icon:"node_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,icon:"node_0"},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,icon:"node_0"},properties:{},effects:[{type:"stat_scaling",slider:!1,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,icon:"node_0"},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,icon:"node_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,icon:"node_1"},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,icon:"node_1"},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,icon:"node_3"},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,icon:"node_0"},properties:{cooldown:-5},effects:[{type:"stat_scaling",slider:!0,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,icon:"node_0"},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,icon:"node_1"},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,icon:"node_1"},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,icon:"node_2"},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,icon:"node_1"},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,icon:"node_2"},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,icon:"node_2"},properties:{},effects:[{type:"stat_scaling",slider:!0,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,icon:"node_1"},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,icon:"node_0"},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,icon:"node_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,icon:"node_0"},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,icon:"node_2"},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,icon:"node_0"},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,icon:"node_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:["Cyclone"],dependencies:[],blockers:[],cost:2,display:{row:31,col:2,icon:"node_3"},properties:{},effects:[{type:"stat_scaling",slider:!0,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:["Cyclone"],dependencies:[],blockers:[],cost:2,display:{row:32,col:5,icon:"node_1"},properties:{},effects:[{type:"convert_spell_conv",target_part:"all",conversion:"thunder"},{type:"raw_stat",bonuses:[{type:"prop",abil_name:"Bash",name:"aoe",value:3}]}]},{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:["Spirit of the Rabbit"],dependencies:[],blockers:[],cost:1,display:{row:31,col:4,icon:"node_1"},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,icon:"node_3"},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,icon:"node_3"},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,icon:"node_1"},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,icon:"node_2"},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,icon:"node_0"},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,icon:"node_1"},properties:{duration:3,aoe:12},effects:[]}]},atree_example=[{title:"skill",desc:"desc",image:"../media/atree/node.png",connector:!1,row:5,col:3},{image:"../media/atree/connect_angle.png",connector:!0,rotate:270,row:4,col:3},{title:"skill2",desc:"desc",image:"../media/atree/node.png",connector:!1,row:0,col:2},{image:"../media/atree/connect_line.png",connector:!0,rotate:0,row:1,col:2},{title:"skill3",desc:"desc",image:"../media/atree/node.png",connector:!1,row:2,col:2},{image:"../media/atree/connect_line.png",connector:!0,rotate:90,row:2,col:3},{title:"skill4",desc:"desc",image:"../media/atree/node.png",connector:!1,row:2,col:4},{image:"../media/atree/connect_line.png",connector:!0,rotate:0,row:3,col:2},{title:"skill5",desc:"desc",image:"../media/atree/node.png",connector:!1,row:4,col:2},] \ No newline at end of file From 2db1a3a336af5bfa6a01fbf8dea149050f9180bd Mon Sep 17 00:00:00 2001 From: ferricles Date: Mon, 27 Jun 2022 16:49:21 -0700 Subject: [PATCH 4/7] quick documentation + refactoring to add new param for render_AT() --- js/atree.js | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/js/atree.js b/js/atree.js index 47e80b3..63c75be 100644 --- a/js/atree.js +++ b/js/atree.js @@ -61,7 +61,7 @@ const atree_render = new (class extends ComputeNode { } //for some reason we have to cast to string - if (atree) { render_AT(document.getElementById("atree-ui"), atree); } + if (atree) { render_AT(document.getElementById("atree-ui"), document.getElementById("atree-active"), atree); } if (document.getElementById("toggle-atree").classList.contains("toggleOn")) { toggle_tab('atree-dropdown'); @@ -101,10 +101,17 @@ function topological_sort_tree(tree, res, mark_state) { // } } -function render_AT(elem, tree) { + +/** The main function for rendering an ability tree. + * + * @param {Element} UI_elem - the DOM element to draw the atree within. + * @param {Element} list_elem - the DOM element to list selected abilities within. + * @param {*} tree - the ability tree to work with. + */ +function render_AT(UI_elem, list_elem, tree) { console.log("constructing ability tree UI"); - document.getElementById("atree-active").innerHTML = ""; //reset all atree actives - should be done in a more general way later - elem.innerHTML = ""; //reset the atree in the DOM + list_elem.innerHTML = ""; //reset all atree actives - should be done in a more general way later + UI_elem.innerHTML = ""; //reset the atree in the DOM // add in the "Active" title to atree let active_row = document.createElement("div"); @@ -144,7 +151,7 @@ function render_AT(elem, tree) { active_row.appendChild(active_word); active_row.appendChild(active_AP_container); - document.getElementById("atree-active").appendChild(active_row); + list_elem.appendChild(active_row); let atree_map = new Map(); let atree_connectors_map = new Map() @@ -173,18 +180,17 @@ function render_AT(elem, tree) { let row = document.createElement('div'); row.classList.add("row"); row.id = "atree-row-" + j; - //was causing atree rows to be 0 height // TODO: do this more dynamically - row.style.minHeight = elem.scrollWidth / 9 + "px"; - //row.style.minHeight = elem.getBoundingClientRect().width / 9 + "px"; + row.style.minHeight = UI_elem.scrollWidth / 9 + "px"; + //row.style.minHeight = UI_elem.getBoundingClientRect().width / 9 + "px"; for (let k = 0; k < 9; k++) { col = document.createElement('div'); col.classList.add('col', 'px-0'); - col.style.minHeight = elem.scrollWidth / 9 + "px"; + col.style.minHeight = UI_elem.scrollWidth / 9 + "px"; row.appendChild(col); } - elem.appendChild(row); + UI_elem.appendChild(row); } for (const _node of tree) { @@ -258,8 +264,7 @@ function render_AT(elem, tree) { let active_tooltip = document.createElement('div'); active_tooltip.classList.add("rounded-bottom", "dark-4", "border", "p-0", "mx-2", "my-4", "dark-shadow"); - //was causing active element boxes to be 0 width - active_tooltip.style.maxWidth = elem.getBoundingClientRect().width * .80 + "px"; + active_tooltip.style.maxWidth = UI_elem.getBoundingClientRect().width * .80 + "px"; active_tooltip.style.display = "none"; // tooltip text formatting @@ -288,7 +293,7 @@ function render_AT(elem, tree) { node_tooltip.style.zIndex = "100"; node_elem.appendChild(node_tooltip); - document.getElementById("atree-active").appendChild(active_tooltip); + list_elem.appendChild(active_tooltip); node_elem.addEventListener('click', function(e) { if (e.target !== this && e.target!== this.children[0]) {return;} From e427532424e1184c900e2fd4e7d5767c006ac69e Mon Sep 17 00:00:00 2001 From: aspiepuppy Date: Mon, 27 Jun 2022 22:41:56 -0500 Subject: [PATCH 5/7] wa --- js/atree_constants.js | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/js/atree_constants.js b/js/atree_constants.js index cbd42b1..00f0a5a 100644 --- a/js/atree_constants.js +++ b/js/atree_constants.js @@ -225,7 +225,7 @@ const atrees = { }, { "display_name": "Nimble String", - "desc": "Arrow Storm throw out +8 arrows per stream and shoot twice as fast.", + "desc": "Arrow Storm throw out +6 arrows per stream and shoot twice as fast.", "archetype": "", "archetype_req": 0, "parents": ["Thunder Mastery", "Arrow Rain"], @@ -253,14 +253,14 @@ const atrees = { "target_part": "Single Stream", "cost": 0, "hits": { - "Single Arrow": 8 + "Single Arrow": 6 } } ] }, { "display_name": "Arrow Storm", - "desc": "Shoot two stream of 8 arrows, dealing significant damage to close mobs and pushing them back.", + "desc": "Shoot one stream of 8 arrows, dealing significant damage to close mobs and pushing them back.", "archetype": "", "archetype_req": 0, "parents": ["Double Shots", "Cheaper Escape"], @@ -302,7 +302,7 @@ const atrees = { "name": "Total Damage", "type": "total", "hits": { - "Single Stream": 2 + "Single Stream": 1 } } ] @@ -436,7 +436,7 @@ const atrees = { "base_spell": 1, "target_part": "Single Arrow", "cost": 0, - "multipliers": [-11, 0, -7, 0, 0, 3] + "multipliers": [-10, 0, -2, 0, 0, 2] }, { "type": "add_spell_prop", @@ -444,7 +444,16 @@ const atrees = { "target_part": "Total Damage", "cost": 0, "hits": { - "Single Stream": 1 + "Single Stream": 1 + } + }, + { + "type": "add_spell_prop", + "base_spell": 1, + "target_part": "Single Stream", + "cost": 0, + "hits": { + "Single Arrow": 2 } } ] @@ -928,7 +937,7 @@ const atrees = { "col": 1 }, "properties": { - "range": 10, + "range": 8, "shots": 5 }, "effects": [ @@ -937,7 +946,7 @@ const atrees = { "base_spell": 4, "target_part": "Single Arrow", "cost": 0, - "multipliers": [0, 0, 0, 0, 20, 0] + "multipliers": [0, 0, 0, 0, 10, 0] }, { "type": "add_spell_prop", From 1a14f230f2e5fdbfc9d66bd7d5dea3ffe3e8dd62 Mon Sep 17 00:00:00 2001 From: aspiepuppy Date: Mon, 27 Jun 2022 22:42:19 -0500 Subject: [PATCH 6/7] wawa --- js/atree_constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/atree_constants.js b/js/atree_constants.js index 00f0a5a..dbdc33a 100644 --- a/js/atree_constants.js +++ b/js/atree_constants.js @@ -260,7 +260,7 @@ const atrees = { }, { "display_name": "Arrow Storm", - "desc": "Shoot one stream of 8 arrows, dealing significant damage to close mobs and pushing them back.", + "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"], From f23895ee48cdf4e703d856d5a855ceec7f0db0ab Mon Sep 17 00:00:00 2001 From: hppeng Date: Mon, 27 Jun 2022 22:16:23 -0700 Subject: [PATCH 7/7] Address PR comments --- js/damage_calc.js | 4 ++-- js/display.js | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/js/damage_calc.js b/js/damage_calc.js index 9a18fbd..95d5f92 100644 --- a/js/damage_calc.js +++ b/js/damage_calc.js @@ -240,7 +240,7 @@ spell_heal: { const default_spells = { wand: [{ - name: "Magic Strike", // TODO: name for melee attacks? + name: "Wand Melee", // TODO: name for melee attacks? display_text: "Mage basic attack", base_spell: 0, scaling: "melee", use_atkspd: false, @@ -282,7 +282,7 @@ const default_spells = { parts: [{ name: "Melee", multipliers: [100, 0, 0, 0, 0, 0] }] }], relik: [{ - name: "Spread Beam", // TODO: name for melee attacks? + name: "Relik Melee", // TODO: name for melee attacks? display_text: "Shaman basic attack", base_spell: 0, spell_type: "damage", diff --git a/js/display.js b/js/display.js index 6f01d41..c3e52e4 100644 --- a/js/display.js +++ b/js/display.js @@ -1640,18 +1640,18 @@ function displaySpellDamage(parent_elem, overallparent_elem, stats, spell, spell } for (let i = 0; i < spell_results.length; ++i) { - const damage_info = spell_results[i]; + const spell_info = spell_results[i]; let part_div = document.createElement("p"); parent_elem.append(part_div); let subtitle_elem = document.createElement("p"); - subtitle_elem.textContent = damage_info.name + subtitle_elem.textContent = spell_info.name part_div.append(subtitle_elem); - if (damage_info.type === "damage") { - let totalDamNormal = damage_info.normal_total; - let totalDamCrit = damage_info.crit_total; + if (spell_info.type === "damage") { + let totalDamNormal = spell_info.normal_total; + let totalDamCrit = spell_info.crit_total; let nonCritAverage = (totalDamNormal[0]+totalDamNormal[1])/2 || 0; let critAverage = (totalDamCrit[0]+totalDamCrit[1])/2 || 0; @@ -1663,8 +1663,8 @@ function displaySpellDamage(parent_elem, overallparent_elem, stats, spell, spell part_div.append(averageLabel); - if (damage_info.name === spell.display) { - _summary(damage_info.name+ " Average: ", averageDamage, "Damage"); + if (spell_info.name === spell.display) { + _summary(spell_info.name+ " Average: ", averageDamage, "Damage"); } function _damage_display(label_text, average, dmg_min, dmg_max) { @@ -1681,16 +1681,16 @@ function displaySpellDamage(parent_elem, overallparent_elem, stats, spell, spell } } } - _damage_display("Non-Crit Average: ", nonCritAverage, damage_info.normal_min, damage_info.normal_max); - _damage_display("Crit Average: ", critAverage, damage_info.crit_min, damage_info.crit_max); - } else if (damage_info.type === "heal") { - let heal_amount = damage_info.heal_amount; + _damage_display("Non-Crit Average: ", nonCritAverage, spell_info.normal_min, spell_info.normal_max); + _damage_display("Crit Average: ", critAverage, spell_info.crit_min, spell_info.crit_max); + } else if (spell_info.type === "heal") { + let heal_amount = spell_info.heal_amount; let healLabel = document.createElement("p"); healLabel.textContent = heal_amount; // healLabel.classList.add("damagep"); part_div.append(healLabel); - if (damage_info.name === spell.display) { - _summary(damage_info.name+ ": ", heal_amount, "Set"); + if (spell_info.name === spell.display) { + _summary(spell_info.name+ ": ", heal_amount, "Set"); } } }