From baa22cb137b0c057ee31f19ad93d05dbcbc70890 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Tue, 18 Aug 2026 16:40:43 +1000 Subject: [PATCH 1/2] Add support for Chain Hook of Angling Adds support for Chain Hook of Angling and fixes the export of the Fishing road weapon type as it was not correct before and missing from some skills --- src/Data/Gems.lua | 18 ++++++++++ src/Data/Skills/act_dex.lua | 1 + src/Data/Skills/act_str.lua | 68 +++++++++++++++++++++++++++++++++++ src/Data/Skills/glove.lua | 16 +++++++++ src/Data/Skills/sup_str.lua | 2 ++ src/Export/Scripts/skills.lua | 2 +- src/Export/Skills/act_str.txt | 5 +++ 7 files changed, 111 insertions(+), 1 deletion(-) diff --git a/src/Data/Gems.lua b/src/Data/Gems.lua index 0bbd661beaa..c24f4a51bbc 100644 --- a/src/Data/Gems.lua +++ b/src/Data/Gems.lua @@ -10314,6 +10314,24 @@ return { reqInt = 0, naturalMaxLevel = 20, }, + ["Metadata/Items/Gems/SkillGemChainHookAltX"] = { + name = "Chain Hook of Angling", + baseTypeName = "Chain Hook of Angling", + gameId = "Metadata/Items/Gems/SkillGemChainHook", + variantId = "ChainHookAltX", + grantedEffectId = "ChainHookAltX", + tags = { + strength = true, + grants_active_skill = true, + attack = true, + melee = true, + }, + tagString = "Attack, Melee", + reqStr = 100, + reqDex = 0, + reqInt = 0, + naturalMaxLevel = 20, + }, ["Metadata/Items/Gems/SkillGemChainHookAltY"] = { name = "Chain Hook of Trarthus", baseTypeName = "Chain Hook of Trarthus", diff --git a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua index 34fd516c8ab..6b80b3bed95 100644 --- a/src/Data/Skills/act_dex.lua +++ b/src/Data/Skills/act_dex.lua @@ -290,6 +290,7 @@ skills["AnimateWeaponAltX"] = { weaponTypes = { ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, diff --git a/src/Data/Skills/act_str.lua b/src/Data/Skills/act_str.lua index 923c11b59de..779f268e7ce 100644 --- a/src/Data/Skills/act_str.lua +++ b/src/Data/Skills/act_str.lua @@ -1692,6 +1692,74 @@ skills["ChainHook"] = { [40] = { attackSpeedMultiplier = 20, baseMultiplier = 7.654, damageEffectiveness = 7.654, levelRequirement = 100, cost = { Mana = 10, }, }, }, } +skills["ChainHookAltX"] = { + name = "Chain Hook of Angling", + baseTypeName = "Chain Hook of Angling", + color = 1, + description = "Cast your fishing rod towards a number of enemies in front of you. Non-unique enemies far away from you are pulled towards you.", + skillTypes = { [SkillType.Attack] = true, [SkillType.Damage] = true, [SkillType.Melee] = true, [SkillType.Multistrikeable] = true, }, + weaponTypes = { + ["Fishing Rod"] = true, + }, + statDescriptionScope = "skill_stat_descriptions", + castTime = 1, + baseFlags = { + attack = true, + melee = true, + area = true, + }, + baseMods = { + skill("radius", 24), + }, + qualityStats = { + { "chain_hook_range_+%", 2 }, + }, + stats = { + "chain_grab_number_of_targets", + }, + levels = { + [1] = { 3, baseMultiplier = 1.711, damageEffectiveness = 1.711, levelRequirement = 12, statInterpolation = { 1, }, cost = { Mana = 6, }, }, + [2] = { 3, baseMultiplier = 1.788, damageEffectiveness = 1.788, levelRequirement = 15, statInterpolation = { 1, }, cost = { Mana = 6, }, }, + [3] = { 3, baseMultiplier = 1.871, damageEffectiveness = 1.871, levelRequirement = 19, statInterpolation = { 1, }, cost = { Mana = 7, }, }, + [4] = { 3, baseMultiplier = 1.959, damageEffectiveness = 1.959, levelRequirement = 23, statInterpolation = { 1, }, cost = { Mana = 7, }, }, + [5] = { 4, baseMultiplier = 2.05, damageEffectiveness = 2.05, levelRequirement = 27, statInterpolation = { 1, }, cost = { Mana = 7, }, }, + [6] = { 4, baseMultiplier = 2.146, damageEffectiveness = 2.146, levelRequirement = 31, statInterpolation = { 1, }, cost = { Mana = 8, }, }, + [7] = { 4, baseMultiplier = 2.246, damageEffectiveness = 2.246, levelRequirement = 35, statInterpolation = { 1, }, cost = { Mana = 8, }, }, + [8] = { 4, baseMultiplier = 2.346, damageEffectiveness = 2.346, levelRequirement = 38, statInterpolation = { 1, }, cost = { Mana = 8, }, }, + [9] = { 5, baseMultiplier = 2.451, damageEffectiveness = 2.451, levelRequirement = 41, statInterpolation = { 1, }, cost = { Mana = 8, }, }, + [10] = { 5, baseMultiplier = 2.561, damageEffectiveness = 2.561, levelRequirement = 44, statInterpolation = { 1, }, cost = { Mana = 8, }, }, + [11] = { 5, baseMultiplier = 2.675, damageEffectiveness = 2.675, levelRequirement = 47, statInterpolation = { 1, }, cost = { Mana = 9, }, }, + [12] = { 5, baseMultiplier = 2.794, damageEffectiveness = 2.794, levelRequirement = 50, statInterpolation = { 1, }, cost = { Mana = 9, }, }, + [13] = { 6, baseMultiplier = 2.918, damageEffectiveness = 2.918, levelRequirement = 53, statInterpolation = { 1, }, cost = { Mana = 9, }, }, + [14] = { 6, baseMultiplier = 3.049, damageEffectiveness = 3.049, levelRequirement = 56, statInterpolation = { 1, }, cost = { Mana = 9, }, }, + [15] = { 6, baseMultiplier = 3.185, damageEffectiveness = 3.185, levelRequirement = 59, statInterpolation = { 1, }, cost = { Mana = 9, }, }, + [16] = { 6, baseMultiplier = 3.325, damageEffectiveness = 3.325, levelRequirement = 62, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [17] = { 7, baseMultiplier = 3.468, damageEffectiveness = 3.468, levelRequirement = 64, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [18] = { 7, baseMultiplier = 3.616, damageEffectiveness = 3.616, levelRequirement = 66, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [19] = { 7, baseMultiplier = 3.771, damageEffectiveness = 3.771, levelRequirement = 68, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [20] = { 7, baseMultiplier = 3.931, damageEffectiveness = 3.931, levelRequirement = 70, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [21] = { 8, baseMultiplier = 4.099, damageEffectiveness = 4.099, levelRequirement = 72, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [22] = { 8, baseMultiplier = 4.273, damageEffectiveness = 4.273, levelRequirement = 74, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [23] = { 8, baseMultiplier = 4.456, damageEffectiveness = 4.456, levelRequirement = 76, statInterpolation = { 1, }, cost = { Mana = 10, }, }, + [24] = { 8, baseMultiplier = 4.646, damageEffectiveness = 4.646, levelRequirement = 78, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [25] = { 9, baseMultiplier = 4.845, damageEffectiveness = 4.845, levelRequirement = 80, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [26] = { 9, baseMultiplier = 5.051, damageEffectiveness = 5.051, levelRequirement = 82, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [27] = { 9, baseMultiplier = 5.266, damageEffectiveness = 5.266, levelRequirement = 84, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [28] = { 9, baseMultiplier = 5.49, damageEffectiveness = 5.49, levelRequirement = 86, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [29] = { 10, baseMultiplier = 5.725, damageEffectiveness = 5.725, levelRequirement = 88, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [30] = { 10, baseMultiplier = 5.968, damageEffectiveness = 5.968, levelRequirement = 90, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [31] = { 10, baseMultiplier = 6.334, damageEffectiveness = 6.334, levelRequirement = 91, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [32] = { 10, baseMultiplier = 6.469, damageEffectiveness = 6.469, levelRequirement = 92, statInterpolation = { 1, }, cost = { Mana = 11, }, }, + [33] = { 10, baseMultiplier = 6.607, damageEffectiveness = 6.607, levelRequirement = 93, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + [34] = { 10, baseMultiplier = 6.746, damageEffectiveness = 6.746, levelRequirement = 94, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + [35] = { 10, baseMultiplier = 6.89, damageEffectiveness = 6.89, levelRequirement = 95, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + [36] = { 11, baseMultiplier = 7.037, damageEffectiveness = 7.037, levelRequirement = 96, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + [37] = { 11, baseMultiplier = 7.186, damageEffectiveness = 7.186, levelRequirement = 97, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + [38] = { 11, baseMultiplier = 7.339, damageEffectiveness = 7.339, levelRequirement = 98, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + [39] = { 11, baseMultiplier = 7.494, damageEffectiveness = 7.494, levelRequirement = 99, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + [40] = { 11, baseMultiplier = 7.654, damageEffectiveness = 7.654, levelRequirement = 100, statInterpolation = { 1, }, cost = { Mana = 12, }, }, + }, +} skills["ChainHookAltY"] = { name = "Chain Hook of Trarthus", baseTypeName = "Chain Hook of Trarthus", diff --git a/src/Data/Skills/glove.lua b/src/Data/Skills/glove.lua index ba2a5c45db0..bbc144a89c4 100644 --- a/src/Data/Skills/glove.lua +++ b/src/Data/Skills/glove.lua @@ -540,6 +540,7 @@ skills["EnchantmentOfFuryOnHit"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -589,6 +590,7 @@ skills["EnchantmentOfFuryOnHit2"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -638,6 +640,7 @@ skills["EnchantmentOfFuryOnHit3"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -687,6 +690,7 @@ skills["EnchantmentOfFuryOnHit4"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -889,6 +893,7 @@ skills["EnchantmentOfIreWhenHit"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -937,6 +942,7 @@ skills["EnchantmentOfIreWhenHit2"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -985,6 +991,7 @@ skills["EnchantmentOfIreWhenHit3"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -1033,6 +1040,7 @@ skills["EnchantmentOfIreWhenHit4"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -1344,6 +1352,7 @@ skills["EnchantmentOfSpiteWhenHit"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -1393,6 +1402,7 @@ skills["EnchantmentOfSpiteWhenHit2"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -1442,6 +1452,7 @@ skills["EnchantmentOfSpiteWhenHit3"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -1491,6 +1502,7 @@ skills["EnchantmentOfSpiteWhenHit4"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -1951,6 +1963,7 @@ skills["EnchantmentOfWarOnKill"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -1992,6 +2005,7 @@ skills["EnchantmentOfWarOnKill2"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -2033,6 +2047,7 @@ skills["EnchantmentOfWarOnKill3"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, @@ -2074,6 +2089,7 @@ skills["EnchantmentOfWarOnKill4"] = { ["Bow"] = true, ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, ["One Handed Sword"] = true, diff --git a/src/Data/Skills/sup_str.lua b/src/Data/Skills/sup_str.lua index b384dda0813..bc5b39abeb0 100644 --- a/src/Data/Skills/sup_str.lua +++ b/src/Data/Skills/sup_str.lua @@ -1606,6 +1606,7 @@ skills["SupportCrystalfall"] = { weaponTypes = { ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["None"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, @@ -1658,6 +1659,7 @@ skills["TriggeredSupportCrystalfall"] = { weaponTypes = { ["Claw"] = true, ["Dagger"] = true, + ["Fishing Rod"] = true, ["None"] = true, ["One Handed Axe"] = true, ["One Handed Mace"] = true, diff --git a/src/Export/Scripts/skills.lua b/src/Export/Scripts/skills.lua index ea65f7dfe36..8a7e6b89952 100644 --- a/src/Export/Scripts/skills.lua +++ b/src/Export/Scripts/skills.lua @@ -21,7 +21,7 @@ local weaponClassMap = { ["One Hand Axe"] = "One Handed Axe", ["One Hand Mace"] = "One Handed Mace", ["Bow"] = "Bow", - ["Fishing Rod"] = "Fishing Rod", + ["FishingRod"] = "Fishing Rod", ["Staff"] = "Staff", ["Two Hand Sword"] = "Two Handed Sword", ["Two Hand Axe"] = "Two Handed Axe", diff --git a/src/Export/Skills/act_str.txt b/src/Export/Skills/act_str.txt index 221322df25c..ca04012dd31 100644 --- a/src/Export/Skills/act_str.txt +++ b/src/Export/Skills/act_str.txt @@ -334,6 +334,11 @@ return function(skills, mod, flag, skill) #baseMod skill("radius", 24) #mods +#skill ChainHookAltX +#flags attack melee area +#baseMod skill("radius", 24) +#mods + #skill ChainHookAltY #flags attack melee area statMap = { From 32eb33012aa3bfb963ca90172a6870ead6c220ec Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Tue, 18 Aug 2026 16:42:49 +1000 Subject: [PATCH 2/2] Remove area tags --- src/Data/Skills/act_str.lua | 4 ---- src/Export/Skills/act_str.txt | 3 +-- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/Data/Skills/act_str.lua b/src/Data/Skills/act_str.lua index 779f268e7ce..e473181912a 100644 --- a/src/Data/Skills/act_str.lua +++ b/src/Data/Skills/act_str.lua @@ -1706,10 +1706,6 @@ skills["ChainHookAltX"] = { baseFlags = { attack = true, melee = true, - area = true, - }, - baseMods = { - skill("radius", 24), }, qualityStats = { { "chain_hook_range_+%", 2 }, diff --git a/src/Export/Skills/act_str.txt b/src/Export/Skills/act_str.txt index ca04012dd31..c66910c0d0f 100644 --- a/src/Export/Skills/act_str.txt +++ b/src/Export/Skills/act_str.txt @@ -335,8 +335,7 @@ return function(skills, mod, flag, skill) #mods #skill ChainHookAltX -#flags attack melee area -#baseMod skill("radius", 24) +#flags attack melee #mods #skill ChainHookAltY