diff --git a/js/atree.js b/js/atree.js index 91836d9..fb6b445 100644 --- a/js/atree.js +++ b/js/atree.js @@ -70,7 +70,7 @@ stat_scaling: { "slider_name": Optional[str], "slider_step": Optional[float], "inputs": Optional[list[scaling_target]], - "output": scaling_target, + "output": scaling_target | List[scaling_target], "scaling": list[float], "max": float } diff --git a/js/atree_constants.js b/js/atree_constants.js index 46997df..822bdeb 100644 --- a/js/atree_constants.js +++ b/js/atree_constants.js @@ -3453,7 +3453,6 @@ const atrees = { }, "scaling": [1], "max": 10, - "slider_step": 4 } ] }, @@ -3537,7 +3536,6 @@ const atrees = { ] }, - { "display_name": "Shield Strike", "desc": "When your Mantle of the Bovemist loses all charges, deal damage around you for each Mantle individually lost", @@ -3564,7 +3562,6 @@ const atrees = { } ] }, - { "display_name": "Sparkling Hope", "desc": "Everytime you heal 5% of your max health, deal damage to all nearby enemies", @@ -3587,18 +3584,16 @@ const atrees = { "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, - "base_abil": "Bak'al's Grasp", + "base_abil": "Bash", "parents": ["Tempest", "Uncontainable Corruption"], "dependencies": [], "blockers": [], @@ -3608,8 +3603,7 @@ const atrees = { "col": 0, "icon": "node_2" }, - "properties": { - }, + "properties": {}, "effects": [ { "type": "stat_scaling", @@ -3620,18 +3614,16 @@ const atrees = { "abil": "Bash", "name": "aoe" }, - "scaling": [1], + "scaling": [0.3333333333333333], "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, + "base_abil": "War Scream", "parents": ["Massive Bash", "Spirit of the Rabbit"], "dependencies": [], "blockers": [], @@ -3649,14 +3641,12 @@ const atrees = { "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 } @@ -3665,19 +3655,15 @@ const atrees = { "type": "add_spell_prop", "base_spell": 4, "target_part": "Total Damage", - "cost": "0", - "hits": { - "Tempest": 3 - } + "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, + "base_abil": "Charge", "parents": ["Tempest", "Whirlwind Strike"], "dependencies": [], "blockers": [], @@ -3697,22 +3683,15 @@ const atrees = { }, { "type": "raw_stat", - "bonuses": [ - { - "type": "stat", - "name": "spd", - "value": 20 - } - ] + "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, + "base_abil": 999, "parents": ["Tempest", "Massive Bash"], "dependencies": [], "blockers": [], @@ -3722,18 +3701,12 @@ const atrees = { "col": 1, "icon": "node_1" }, - "properties": { - }, - "effects": [ - - ] - }, - - { + "properties": {}, + "effects": [] + },{ "display_name": "Axe Kick", "desc": "Increase the damage of Uppercut, but also increase its mana cost", - "archetype": "", - "archetype_req": 0, + "base_abil": "Uppercut", "parents": ["Tempest", "Spirit of the Rabbit"], "dependencies": [], "blockers": [], @@ -3743,8 +3716,7 @@ const atrees = { "col": 3, "icon": "node_0" }, - "properties": { - }, + "properties": {}, "effects": [ { "type": "add_spell_prop", @@ -3754,13 +3726,12 @@ const atrees = { "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, + "base_abil": "Bash", "parents": ["Spirit of the Rabbit", "Cheaper Bash 2"], "dependencies": [], "blockers": [], @@ -3773,16 +3744,13 @@ const atrees = { "properties": { "cooldown": 15 }, - "effects": [ - - ] + "effects": [] }, { "display_name": "Cheaper Bash 2", "desc": "Reduce the Mana cost of Bash", - "archetype": "", - "archetype_req": 0, + "base_abil": "Bash", "parents": ["Radiance", "Shield Strike", "Sparkling Hope"], "dependencies": [], "blockers": [], @@ -3792,8 +3760,7 @@ const atrees = { "col": 7, "icon": "node_0" }, - "properties": { - }, + "properties": {}, "effects": [ { "type": "add_spell_prop", @@ -3806,8 +3773,7 @@ const atrees = { { "display_name": "Cheaper War Scream", "desc": "Reduce the Mana cost of War Scream", - "archetype": "", - "archetype_req": 0, + "base_abil": "War Scream", "parents": ["Massive Bash"], "dependencies": [], "blockers": [], @@ -3817,8 +3783,7 @@ const atrees = { "col": 0, "icon": "node_0" }, - "properties": { - }, + "properties": {}, "effects": [ { "type": "add_spell_prop", @@ -3849,10 +3814,13 @@ const atrees = { "type": "stat_scaling", "slider": true, "slider_name": "Hits dealt", - "output": { - "type": "stat", - "name": "rainrawButDifferent" - }, + "output": [ + { "type": "stat", "name": "eDamAddMin" }, { "type": "stat", "name": "eDamAddMax" }, + { "type": "stat", "name": "tDamAddMin" }, { "type": "stat", "name": "tDamAddMax" }, + { "type": "stat", "name": "wDamAddMin" }, { "type": "stat", "name": "wDamAddMax" }, + { "type": "stat", "name": "fDamAddMin" }, { "type": "stat", "name": "fDamAddMax" }, + { "type": "stat", "name": "aDamAddMin" }, { "type": "stat", "name": "aDamAddMax" } + ], "scaling": [2], "max": 50 } @@ -3915,14 +3883,12 @@ const atrees = { "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 } @@ -3951,7 +3917,7 @@ const atrees = { { "display_name": "Blood Pact", - "desc": "If you do not have enough mana to cast a spell, spend health instead (1% health per mana)", + "desc": "If you do not have enough mana to cast a spell, spend health instead (0.6% health per mana)", "archetype": "", "archetype_req": 10, "parents": ["Cheaper War Scream"], @@ -3963,15 +3929,18 @@ const atrees = { "col": 1, "icon": "node_3" }, - "properties": {}, + "properties": { + "health_cost": 0.6 + }, "effects": [] }, { "display_name": "Haemorrhage", - "desc": "Reduce Blood Pact's health cost. (0.5% health per mana)", + "desc": "Reduce Blood Pact's health cost. (0.3% health per mana)", "archetype": "Fallen", "archetype_req": 0, + "base_abil": "Blood Pact", "parents": ["Blood Pact"], "dependencies": ["Blood Pact"], "blockers": [], @@ -3982,14 +3951,15 @@ const atrees = { "icon": "node_1" }, "properties": {}, - "effects": [] + "effects": [{ + "type": "raw_stat", + "bonuses": [{ "type": "prop", "abil": "Blood Pact", "name": "health_cost", "value": -0.3}] + }] }, { "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": [], @@ -4006,8 +3976,7 @@ const atrees = { { "display_name": "Cheaper Uppercut 2", "desc": "Reduce the Mana cost of Uppercut", - "archetype": "", - "archetype_req": 0, + "base_abil": "Uppercut", "parents": ["Second Chance", "Brink of Madness"], "dependencies": [], "blockers": [], diff --git a/py_script/atree-convertID.py b/py_script/atree-convertID.py index c8ff4e5..fc76f7c 100644 --- a/py_script/atree-convertID.py +++ b/py_script/atree-convertID.py @@ -37,22 +37,27 @@ for _class, info in atree_data.items(): translate([abil], "base_abil") if "effects" not in info[abil]: + print("WARNING: abil missing 'effects' tag") print(info[abil]) info[abil]["effects"] = [] for effect in info[abil]["effects"]: if effect["type"] == "raw_stat": for bonus in effect["bonuses"]: - if "abil" in bonus: + if "abil" in bonus and bonus["abil"] in id_data[_class]: bonus["abil"] = id_data[_class][bonus["abil"]] elif effect["type"] == "stat_scaling": if "inputs" in effect: # Might not exist for sliders for _input in effect["inputs"]: - if "abil" in _input: + if "abil" in _input and _input["abil"] in id_data[_class]: _input["abil"] = id_data[_class][_input["abil"]] - - if "abil" in effect["output"]: - effect["output"]["abil"] = id_data[_class][effect["output"]["abil"]] + if isinstance(effect["output"], list): + for output in effect["outputs"]: + if "abil" in output and output["abil"] in id_data[_class]: + output["abil"] = id_data[_class][output["abil"]] + else: + if "abil" in effect["output"] and effect["output"]["abil"] in id_data[_class]: + effect["output"]["abil"] = id_data[_class][effect["output"]["abil"]] with open('atree_constants_idfied.json', 'w', encoding='utf-8') as abil_dest: