Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit a449985
Author: Nostrademous <nostrademous@hotmail.com>
Date:   Sat Aug 13 23:32:53 2022 -0400

    Add support for negative levels to gems (PathOfBuildingCommunity#4756)

commit fa4aa64
Author: Nostrademous <nostrademous@hotmail.com>
Date:   Sat Aug 13 23:25:51 2022 -0400

    Fix Thrusting swords were not a base subType (PathOfBuildingCommunity#4720)

    * Fix: Thrusting should be a base subType

    * Same changes but with less diff

    Co-authored-by: Wires77 <Wires77@users.noreply.github.com>

commit 9eddc38
Author: Tomas Slusny <slusnucky@gmail.com>
Date:   Sun Aug 14 05:11:25 2022 +0200

    Fix crash when deleting the current skill set (PathOfBuildingCommunity#4772)

    When removing it from table this causes crash when rebuilding skill set
    dropdown.

    Closes PathOfBuildingCommunity#4771

    Signed-off-by: Tomas Slusny <ts6234@intl.att.com>

    Signed-off-by: Tomas Slusny <ts6234@intl.att.com>
    Co-authored-by: Tomas Slusny <ts6234@intl.att.com>

commit f8298d7
Author: Lexy <learn2draw@live.nl>
Date:   Sun Aug 14 04:41:45 2022 +0200

    [Kalandra] Update Bitterdream (PathOfBuildingCommunity#4702)

    * update bitterdream

    * Remove legacy bitterdream variants

commit bc0da55
Author: Paliak <91493239+Paliak@users.noreply.github.com>
Date:   Sun Aug 14 04:38:17 2022 +0200

    FEAT: Add parsing for triple damage mods (PathOfBuildingCommunity#4727)

commit 37e8867
Author: Nostrademous <nostrademous@hotmail.com>
Date:   Sat Aug 13 22:37:51 2022 -0400

    [Kalandra] Add support for counting Mastery Type allocations (PathOfBuildingCommunity#4746)

    * Feat: Add support for counting Mastery Type allocations

    * added support for on kill portion of ascendancy node

    * Fix spacing

commit f61b17a
Author: Nightblade <Nightblade@users.noreply.github.com>
Date:   Sun Aug 14 12:36:57 2022 +1000

    [Kalandra] Update Ngamahu's Sign (PathOfBuildingCommunity#4755)

    * Update ring.lua

    Ngamahu's Sign - Perfect
    (My first one someone check it please!)

    * remove {variant:1,2,3} not needed

commit 14151f8
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 12:34:18 2022 +1000

    [Kalandra] Add new uniques (PathOfBuildingCommunity#4774)

    * add new uniques

    * Add new Grand Spectrum Jewels

    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 2dd0cde
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 11:15:06 2022 +1000

    Update replica bitterdream(PathOfBuildingCommunity#4775)

commit 9b9c49f
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 11:12:56 2022 +1000

    Add support for Arrow Dancing (PathOfBuildingCommunity#4779)

commit f468faa
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 11:06:59 2022 +1000

    [Kalandra] Update batch 4 of uniques. (PathOfBuildingCommunity#4757)

    * update uniques

    * added movement on throwing a trap.

    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 54d1740
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 10:57:50 2022 +1000

    Update sources of longer obtainable uniques (PathOfBuildingCommunity#4748)

    * No longer obtainable

    * Cameria's Avarice now obtainable from vendor recipe.

commit 0961142
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 10:54:36 2022 +1000

    update uniques (PathOfBuildingCommunity#4754)

commit 3052165
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 10:49:46 2022 +1000

    [Kalandra] Update batch 2 of uniques. (PathOfBuildingCommunity#4751)

    * set2 update uniques.

    * Fix bug with wording.

    * Change to use PercentStat

    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit fe51e95
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 10:43:59 2022 +1000

    Update Manastorm and Kongming's Stratagem to new bases (PathOfBuildingCommunity#4783)

commit 456c70d
Author: LocalIdentity <localidentity2@gmail.com>
Date:   Sun Aug 14 10:25:33 2022 +1000

    Fix Suppression mastery

commit 49dd720
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 10:20:12 2022 +1000

    [Kalandra] Update batch 1 of uniques. (PathOfBuildingCommunity#4747)

    * update

    * Update ModParser.lua

    * Update boots.lua

    * Update ModParser.lua

    * support

    * Remove Covered in Ash mod parsing

    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 54c24b5
Author: QuickStick <31533893+QuickStick123@users.noreply.github.com>
Date:   Sun Aug 14 09:53:41 2022 +1000

    Add support for minions have Unholy Might (PathOfBuildingCommunity#4780)

commit c65c194
Author: Lexy <learn2draw@live.nl>
Date:   Sun Aug 14 01:23:47 2022 +0200

    Update brittle values (PathOfBuildingCommunity#4696)

commit 6cc2124
Author: Lexy <learn2draw@live.nl>
Date:   Sat Aug 13 23:14:54 2022 +0200

    Update ward recharge speed (PathOfBuildingCommunity#4697)

commit dd240b9
Author: Nightblade <Nightblade@users.noreply.github.com>
Date:   Sat Aug 13 11:58:36 2022 +1000

    Update ring.lua (PathOfBuildingCommunity#4773)

    spelling

commit 1fa9ab4
Author: LocalIdentity <localidentity2@gmail.com>
Date:   Sat Aug 13 11:18:25 2022 +1000

    Compact parsing of weapon types for multistrike

commit c1903af
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 02:53:33 2022 +0200

    Fix: Multistrike damage calculation with skills which have bow and melee Tag (PathOfBuildingCommunity#4740)

    * wording of blood of karui fixed

    * undo messy work

    * damage and atk increase only applies to melee weapons and unarmed

    * added less attack damage modifier to also apply to bows

    * adding ModFlag.Attack Condition with bit.bor

    * Add lines to export files

    Co-authored-by: Sinured <githubmm@use.startmail.com>
    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 5d94436
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 01:51:28 2022 +0200

    Fix: Blood of the Karui Life recovered and wording  (PathOfBuildingCommunity#4729)

    * wording of blood of karui fixed

    * Fix: increased life recovered of current version

    * changed wording for Blood of the karui and Lavianga's Spirit

    * fixed order and wording

    * Capitalised Flask Effect

    Co-authored-by: Sinured <githubmm@use.startmail.com>

commit e5ddd8e
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 01:47:56 2022 +0200

    [Kalandra] Batch of uniques update. All missing starting with S (PathOfBuildingCommunity#4753)

    * all missing uniques starting with S

    * minions deal no non damage & minions convert phys to xyz

    * testcommit to check busted

    * Fix mod parsing format

    Co-authored-by: Sinured <githubmm@use.startmail.com>
    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 701e719
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 01:22:08 2022 +0200

    Batch of uniques update. All missingfrom D to L (PathOfBuildingCommunity#4769)

    Co-authored-by: Sinured <githubmm@use.startmail.com>

commit f17690d
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 00:52:07 2022 +0200

    [Kalandra] Lifetap & Blessing interaction (PathOfBuildingCommunity#4752)

    * wording of blood of karui fixed

    * undo messy work

    * lifetap cant support skills with blessing tag

    * testcommit to check busted

    Co-authored-by: Sinured <githubmm@use.startmail.com>

commit d7d91f9
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 00:49:26 2022 +0200

    [Kalandra]Batch of uniques update. All missing starting with R (PathOfBuildingCommunity#4760)

    * item variants for R added

    * implements Ralakesh's Impatience unique affix

    * Add parsing for always Freeze, Shock and Ignite

    Co-authored-by: Sinured <githubmm@use.startmail.com>
    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 0bfc259
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 00:28:25 2022 +0200

    uniques variants added (PathOfBuildingCommunity#4763)

    Co-authored-by: Sinured <githubmm@use.startmail.com>

commit 4c8127c
Author: Sinured <100538010+Sinured@users.noreply.github.com>
Date:   Sat Aug 13 00:14:26 2022 +0200

    [Kalandra] Batch of unique update. All remaining from M to O (PathOfBuildingCommunity#4767)

    * adds remaining unique batch from M to O

    * Fix Ondar's Clasp variant

    Co-authored-by: Sinured <githubmm@use.startmail.com>
    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit c855506
Author: Regisle <49933620+Regisle@users.noreply.github.com>
Date:   Sat Aug 13 07:31:06 2022 +0930

    Add 3.19 Tree (PathOfBuildingCommunity#4744)

    * add Initial support for adding non-Tree nodes to Tree (Nine lives)

    * update positions and add other dummy nodes

    * separate stats and reminder text and add new nodes

    * rest of nodes

    * Fix comma

    * fix spelling of sapped

    * update spec.lua for passiveSkills

    * remove unrelated spec

    * update file to hardcode group and node IDs, and correct ascendency

    * update to new tree

    * add initial 3_19 tree

    * spelling fix

    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 78d1390
Author: Nostrademous <nostrademous@hotmail.com>
Date:   Fri Aug 12 13:47:50 2022 -0400

    Fix: when upconverting between trees, if a Mastery lost a mod from its pool that was allocated it would error (PathOfBuildingCommunity#4765)

commit c819a68
Author: Regisle <49933620+Regisle@users.noreply.github.com>
Date:   Sat Aug 13 01:24:04 2022 +0930

    Update fix_ascendancy_positions.py to support new extra tree nodes (PathOfBuildingCommunity#4357)

    * add Initial support for adding non-Tree nodes to Tree (Nine lives)

    * update positions and add other dummy nodes

    * separate stats and reminder text and add new nodes

    * rest of nodes

    * Fix comma

    * fix spelling of sapped

    * update spec.lua for passiveSkills

    * remove unrelated spec

    * update file to hardcode group and node IDs, and correct ascendency

    * update to new tree

    * spelling fix

    Co-authored-by: LocalIdentity <localidentity2@gmail.com>

commit 872d4e2
Author: Regisle <49933620+Regisle@users.noreply.github.com>
Date:   Fri Aug 12 18:42:10 2022 +0930

    Jugg armour applies to ele damage (PathOfBuildingCommunity#4673)

    * Add support for % of armour applies to elemental damage

    * add mod parser change

    * cap percent of armour

    * fix merge conflict

    * add breakdown and fix phys not apply

    * add to main breakdown
  • Loading branch information
QuickStick123 committed Aug 14, 2022
1 parent 89e6af6 commit 1d7c641
Show file tree
Hide file tree
Showing 45 changed files with 130,274 additions and 495 deletions.
49 changes: 48 additions & 1 deletion fix_ascendancy_positions.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
logging.basicConfig(level=logging.INFO)


@dataclasses.dataclass(frozen=True, slots=True)
@dataclasses.dataclass(frozen=True) #, slots=True) #, slots breaks becouse its already defined?
class Point2D:
"""Two-dimensional point. Supports subtracting points."""
x: int
Expand Down Expand Up @@ -40,6 +40,42 @@ def __sub__(self, other: Point2D) -> Point2D:
"Saboteur": Point2D(10200, -2200),
"Ascendant": Point2D(-7800, 7200),
}
EXTRA_NODES = {
"Necromancer": [{"Node": {"name": "Nine Lives", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/Int.png", "isNotable": True, "skill" : 27602},
"offset": Point2D(-1500, -1000)}],
"Guardian": [{"Node": {"name": "Searing Purity", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/StrInt.png", "isNotable": True, "skill" : 57568},
"offset": Point2D(-1000, 1500)}],
"Berserker": [{"Node": {"name": "Indomitable Resolve", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/Str.png", "isNotable": True, "skill" : 52435},
"offset": Point2D(-1000, 0)}],
"Ascendant": [{"Node": {"name": "Unleashed Potential", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/SkillPoint.png", "skill" : 19355},
"offset": Point2D(-1000, 1000)}],
"Champion": [{"Node": {"name": "Fatal Flourish", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/StrDex.png", "isNotable": True, "skill" : 42469},
"offset": Point2D(0, 1000)}],
"Raider": [{"Node": {"name": "Fury of Nature", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/Dex.png", "isNotable": True, "skill" : 18054},
"offset": Point2D(1000, -1500)}],
"Saboteur": [{"Node": {"name": "Harness the Void", "icon": "Art/2DArt/SkillIcons/passives/Ascendants/DexInt.png", "isNotable": True, "skill" : 57331},
"offset": Point2D(1000, -1500)}],
}
EXTRA_NODE_IDS = { #these can be any value but for now they are hardcoded to what random numbers generated last time for consistancy, the "hash" value is what we should probs use though as its the value in the ggpk
"Nine Lives": {"NodeID": 33600, "GroupID" : 44472},
"Searing Purity": {"NodeID": 22278, "GroupID" : 50933},
"Soul Drinker": {"NodeID": 19264, "GroupID" : 37841, "hash" : 45999},
"Harness the Void": {"GroupID" : 37841},
"Fury of Nature": {"NodeID": 62630, "GroupID" : 56600},
"Fatal Flourish": {"NodeID": 11264, "GroupID" : 63033},
"Indomitable Resolve": {"NodeID": 15386, "GroupID" : 25519},
"Unleashed Potential": {"NodeID": 55193, "GroupID" : 60495},
}
EXTRA_NODES_STATS = { # these should not be hardcoded here, but should by inserted later via the exporter from the ggpk (they are AsendencySpecialEdlritch in PassiveSkills.dat, though reminder text seems to be missing)
"Nine Lives": {"stats": ["25% of Damage taken Recouped as Life, Mana and Energy Shield", "Recoup Effects instead occur over 3 seconds"], "reminderText": ["(Only Damage from Hits can be Recouped, over 4 seconds following the Hit)"]},
"Searing Purity": {"stats": ["45% of Chaos Damage taken as Fire Damage", "45% of Chaos Damage taken as Lightning Damage"], "reminderText": []},
"Soul Drinker": {"stats": ["2% of Damage Leeched as Energy Shield", "20% increased Attack and Cast Speed while Leeching Energy Shield", "Energy Shield Leech effects are not removed when Energy Shield is Filled"], "reminderText": ["(Leeched Energy Shield is recovered over time. Multiple Leeches can occur simultaneously, up to a maximum rate)"]},
"Harness the Void": {"stats": ["27% chance to gain 25% of Non-Chaos Damage with Hits as Extra Chaos Damage", "13% chance to gain 50% of Non-Chaos Damage with Hits as Extra Chaos Damage", "7% chance to gain 100% of Non-Chaos Damage with Hits as Extra Chaos Damage"], "reminderText": []},
"Fury of Nature" : {"stats": ["Non-Damaging Elemental Ailments you inflict spread to nearby enemies in a radius of 20", "Non-Damaging Elemental Ailments you inflict have 100% more Effect"], "reminderText": ["(Elemental Ailments are Ignited, Scorched, Chilled, Frozen, Brittled, Shocked, and Sapped)"]},
"Fatal Flourish": {"stats": ["Final Repeat of Attack Skills deals 60% more Damage", "Non-Travel Attack Skills Repeat an additional Time"], "reminderText": []},
"Indomitable Resolve": {"stats": ["Deal 10% less Damage", "Take 25% less Damage"], "reminderText": []},
"Unleashed Potential" : {"stats": ["400% increased Endurance, Frenzy and Power Charge Duration", "25% chance to gain a Power, Frenzy or Endurance Charge on Kill", "+1 to Maximum Endurance Charges", "+1 to Maximum Frenzy Charges", "+1 to Maximum Power Charges"], "reminderText": []},
}


def fix_ascendancy_positions(path: os.PathLike) -> None:
Expand Down Expand Up @@ -70,6 +106,17 @@ def fix_ascendancy_positions(path: os.PathLike) -> None:
offset = NODE_GROUPS[ascendancy] - ascendancy_starting_point[ascendancy]
group["x"] += offset.x
group["y"] += offset.y
for ascendancy in EXTRA_NODES:
for node in EXTRA_NODES[ascendancy]:
if str(EXTRA_NODE_IDS[node["Node"]["name"]]["GroupID"]) in data["groups"]: #using hardcoded value from last time, can use another method instead, like just grabbing the next avalible value
print("GroupID already taken")
return
node["Node"]["group"] = EXTRA_NODE_IDS[node["Node"]["name"]]["GroupID"]
data["groups"][node["Node"]["group"]] = {"x": NODE_GROUPS[ascendancy].x + node["offset"].x, "y": NODE_GROUPS[ascendancy].y + node["offset"].y, "orbits": [0], "nodes": [node["Node"]["skill"]]}
data["nodes"][node["Node"]["skill"]] = node["Node"] | {"ascendancyName": ascendancy, "orbit": 0, "orbitIndex": 0, "out": [], "in": [], "stats": [], "reminderText": []}
if node["Node"]["name"] in EXTRA_NODES_STATS:
data["nodes"][node["Node"]["skill"]]["stats"] = EXTRA_NODES_STATS[node["Node"]["name"]]["stats"]
data["nodes"][node["Node"]["skill"]]["reminderText"] = EXTRA_NODES_STATS[node["Node"]["name"]]["reminderText"]
with open(path, "w", encoding="utf-8") as o:
json.dump(data, o, indent=4)

Expand Down
25 changes: 20 additions & 5 deletions src/Classes/PassiveSpec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,10 @@ function PassiveSpecClass:AllocateMasteryEffects(masteryEffects)
self.tree:ProcessStats(self.allocNodes[id])
self.masterySelections[id] = effectId
self.allocatedMasteryCount = self.allocatedMasteryCount + 1
if not self.allocatedMasteryTypes[self.allocNodes[id].name] then
self.allocatedMasteryTypes[self.allocNodes[id].name] = true
self.allocatedMasteryTypeCount = self.allocatedMasteryTypeCount + 1
end
end
end

Expand Down Expand Up @@ -849,14 +853,25 @@ function PassiveSpecClass:BuildAllDependsAndPaths()
-- Add selected mastery effect mods to mastery nodes
self.allocatedMasteryCount = 0
self.allocatedNotableCount = 0
self.allocatedMasteryTypes = { }
self.allocatedMasteryTypeCount = 0
for id, node in pairs(self.nodes) do
if node.type == "Mastery" and self.masterySelections[id] then
local effect = self.tree.masteryEffects[self.masterySelections[id]]
node.sd = effect.sd
node.allMasteryOptions = false
node.reminderText = { "Tip: Right click to select a different effect" }
self.tree:ProcessStats(node)
self.allocatedMasteryCount = self.allocatedMasteryCount + 1
if effect then
node.sd = effect.sd
node.allMasteryOptions = false
node.reminderText = { "Tip: Right click to select a different effect" }
self.tree:ProcessStats(node)
self.allocatedMasteryCount = self.allocatedMasteryCount + 1
if not self.allocatedMasteryTypes[node.name] then
self.allocatedMasteryTypes[node.name] = true
self.allocatedMasteryTypeCount = self.allocatedMasteryTypeCount + 1
end
else
self.nodes[id].alloc = false
self.allocNodes[id] = nil
end
elseif node.type == "Mastery" then
self:AddMasteryEffectOptionsToNode(node)
elseif node.type == "Notable" and node.alloc then
Expand Down
17 changes: 17 additions & 0 deletions src/Classes/PassiveTree.lua
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,20 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
self.orbitAnglesByOrbit[orbit] = self:CalcOrbitAngles(skillsInOrbit)
end

if versionNum >= 3.19 then
local treeTextOLD
local treeFileOLD = io.open("TreeData/".. "3_18" .."/tree.lua", "r")
if treeFileOLD then
treeTextOLD = treeFileOLD:read("*a")
treeFileOLD:close()
end
local temp = {}
for k, v in pairs(assert(loadstring(treeTextOLD))()) do
temp[k] = v
end
self.assets = temp.assets
self.skillSprites = self.sprites
end
ConPrintf("Loading passive tree assets...")
for name, data in pairs(self.assets) do
self:LoadImage(name..".png", cdnRoot..(data[0.3835] or data[1]), data, not name:match("[OL][ri][bn][ie][tC]") and "ASYNC" or nil)--, not name:match("[OL][ri][bn][ie][tC]") and "MIPMAP" or nil)
Expand All @@ -137,6 +151,9 @@ local PassiveTreeClass = newClass("PassiveTree", function(self, treeVersion)
local spriteSheets = { }
for type, data in pairs(self.skillSprites) do
local maxZoom = data[#data]
if versionNum >= 3.19 then
maxZoom = data[0.3835] or data[1]
end
local sheet = spriteSheets[maxZoom.filename]
if not sheet then
sheet = { }
Expand Down
4 changes: 2 additions & 2 deletions src/Classes/SkillSetListControl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ function SkillSetListClass:OnSelDelete(index, skillSetId)
if #self.list > 1 then
main:OpenConfirmPopup("Delete Item Set", "Are you sure you want to delete '"..(skillSet.title or "Default").."'?", "Delete", function()
t_remove(self.list, index)
t_remove(self.skillsTab.skillSets, skillSetId)
self.skillsTab.skillSets[skillSetId] = nil
self.selIndex = nil
self.selValue = nil
if skillSetId == self.skillsTab.activeSkillSetId then
Expand All @@ -115,4 +115,4 @@ function SkillSetListClass:OnSelKeyDown(index, skillSetId, key)
if key == "F2" then
self:RenameSet(skillSetId)
end
end
end

0 comments on commit 1d7c641

Please sign in to comment.