From bcbe7b6ccd8dbf0a4e24bbe8c6321ea86ee56436 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Sun, 19 Jan 2025 09:22:50 +1100 Subject: [PATCH] Fix Explosion damage for Frozen Locus and Shattering Palm The skills deal attack damage are not attacks that take stats from your weapon Herald of Thunder's bolt is also like this --- src/Data/Skills/act_dex.lua | 3 +- src/Data/Skills/act_int.lua | 94 ++++++++++++++++++--------------- src/Data/Skills/sup_int.lua | 3 +- src/Export/Scripts/skills.lua | 3 +- src/Export/Skills/act_dex.txt | 2 +- src/Export/Skills/act_int.txt | 12 ++++- src/Export/Skills/sup_int.txt | 1 + src/Modules/CalcActiveSkill.lua | 2 +- 8 files changed, 70 insertions(+), 50 deletions(-) diff --git a/src/Data/Skills/act_dex.lua b/src/Data/Skills/act_dex.lua index dfd553564..f7c2e4444 100644 --- a/src/Data/Skills/act_dex.lua +++ b/src/Data/Skills/act_dex.lua @@ -1471,7 +1471,8 @@ skills["HeraldOfThunderPlayer"] = { incrementalEffectiveness = 0.054999999701977, statDescriptionScope = "herald_of_thunder_statset_1", baseFlags = { - attack = true, + nonWeaponAttack = true, + hit = true, }, constantStats = { { "active_skill_base_physical_damage_%_to_convert_to_lightning", 100 }, diff --git a/src/Data/Skills/act_int.lua b/src/Data/Skills/act_int.lua index f9dc1edf8..5ca08b953 100644 --- a/src/Data/Skills/act_int.lua +++ b/src/Data/Skills/act_int.lua @@ -8413,9 +8413,18 @@ skills["FrozenLocusExplodePlayer"] = { incrementalEffectiveness = 0.034650001674891, damageIncrementalEffectiveness = 0.012719999998808, statDescriptionScope = "ice_ambush_explode", + statMap = { + ["main_hand_weapon_minimum_cold_damage"] = { + mod("ColdMin", "BASE", nil), + }, + ["main_hand_weapon_maximum_cold_damage"] = { + mod("ColdMax", "BASE", nil), + }, + }, baseFlags = { - attack = true, area = true, + nonWeaponAttack = true, + hit = true, }, constantStats = { { "active_skill_base_area_of_effect_radius", 20 }, @@ -13403,46 +13412,46 @@ skills["ShatteringPalmExplosionPlayer"] = { { "additional_base_critical_strike_chance", 10 }, }, levels = { - [1] = { levelRequirement = 0, }, - [2] = { levelRequirement = 0, }, - [3] = { levelRequirement = 0, }, - [4] = { levelRequirement = 0, }, - [5] = { levelRequirement = 0, }, - [6] = { levelRequirement = 0, }, - [7] = { levelRequirement = 0, }, - [8] = { levelRequirement = 0, }, - [9] = { levelRequirement = 0, }, - [10] = { levelRequirement = 0, }, - [11] = { levelRequirement = 0, }, - [12] = { levelRequirement = 0, }, - [13] = { levelRequirement = 0, }, - [14] = { levelRequirement = 0, }, - [15] = { levelRequirement = 0, }, - [16] = { levelRequirement = 0, }, - [17] = { levelRequirement = 0, }, - [18] = { levelRequirement = 0, }, - [19] = { levelRequirement = 0, }, - [20] = { levelRequirement = 0, }, - [21] = { levelRequirement = 0, }, - [22] = { levelRequirement = 0, }, - [23] = { levelRequirement = 0, }, - [24] = { levelRequirement = 0, }, - [25] = { levelRequirement = 0, }, - [26] = { levelRequirement = 0, }, - [27] = { levelRequirement = 0, }, - [28] = { levelRequirement = 0, }, - [29] = { levelRequirement = 0, }, - [30] = { levelRequirement = 0, }, - [31] = { levelRequirement = 0, }, - [32] = { levelRequirement = 0, }, - [33] = { levelRequirement = 0, }, - [34] = { levelRequirement = 0, }, - [35] = { levelRequirement = 0, }, - [36] = { levelRequirement = 0, }, - [37] = { levelRequirement = 0, }, - [38] = { levelRequirement = 0, }, - [39] = { levelRequirement = 0, }, - [40] = { levelRequirement = 0, }, + [1] = { baseMultiplier = 1.3, levelRequirement = 0, }, + [2] = { baseMultiplier = 1.43, levelRequirement = 0, }, + [3] = { baseMultiplier = 1.57, levelRequirement = 0, }, + [4] = { baseMultiplier = 1.71, levelRequirement = 0, }, + [5] = { baseMultiplier = 1.85, levelRequirement = 0, }, + [6] = { baseMultiplier = 1.99, levelRequirement = 0, }, + [7] = { baseMultiplier = 2.13, levelRequirement = 0, }, + [8] = { baseMultiplier = 2.26, levelRequirement = 0, }, + [9] = { baseMultiplier = 2.37, levelRequirement = 0, }, + [10] = { baseMultiplier = 2.49, levelRequirement = 0, }, + [11] = { baseMultiplier = 2.61, levelRequirement = 0, }, + [12] = { baseMultiplier = 2.74, levelRequirement = 0, }, + [13] = { baseMultiplier = 2.88, levelRequirement = 0, }, + [14] = { baseMultiplier = 3.03, levelRequirement = 0, }, + [15] = { baseMultiplier = 3.18, levelRequirement = 0, }, + [16] = { baseMultiplier = 3.34, levelRequirement = 0, }, + [17] = { baseMultiplier = 3.5, levelRequirement = 0, }, + [18] = { baseMultiplier = 3.68, levelRequirement = 0, }, + [19] = { baseMultiplier = 3.86, levelRequirement = 0, }, + [20] = { baseMultiplier = 4.05, levelRequirement = 0, }, + [21] = { baseMultiplier = 4.26, levelRequirement = 0, }, + [22] = { baseMultiplier = 4.47, levelRequirement = 0, }, + [23] = { baseMultiplier = 4.69, levelRequirement = 0, }, + [24] = { baseMultiplier = 4.93, levelRequirement = 0, }, + [25] = { baseMultiplier = 5.17, levelRequirement = 0, }, + [26] = { baseMultiplier = 5.43, levelRequirement = 0, }, + [27] = { baseMultiplier = 5.71, levelRequirement = 0, }, + [28] = { baseMultiplier = 5.99, levelRequirement = 0, }, + [29] = { baseMultiplier = 6.29, levelRequirement = 0, }, + [30] = { baseMultiplier = 6.6, levelRequirement = 0, }, + [31] = { baseMultiplier = 6.93, levelRequirement = 0, }, + [32] = { baseMultiplier = 7.28, levelRequirement = 0, }, + [33] = { baseMultiplier = 7.65, levelRequirement = 0, }, + [34] = { baseMultiplier = 8.03, levelRequirement = 0, }, + [35] = { baseMultiplier = 8.43, levelRequirement = 0, }, + [36] = { baseMultiplier = 8.85, levelRequirement = 0, }, + [37] = { baseMultiplier = 9.29, levelRequirement = 0, }, + [38] = { baseMultiplier = 9.76, levelRequirement = 0, }, + [39] = { baseMultiplier = 10.25, levelRequirement = 0, }, + [40] = { baseMultiplier = 10.76, levelRequirement = 0, }, }, statSets = { [1] = { @@ -13452,8 +13461,9 @@ skills["ShatteringPalmExplosionPlayer"] = { damageIncrementalEffectiveness = 0.012719999998808, statDescriptionScope = "triggered_freezing_word_explosion", baseFlags = { - attack = true, area = true, + nonWeaponAttack = true, + hit = true, }, constantStats = { { "active_skill_base_area_of_effect_radius", 16 }, diff --git a/src/Data/Skills/sup_int.lua b/src/Data/Skills/sup_int.lua index 35f1cff0c..e692d3168 100644 --- a/src/Data/Skills/sup_int.lua +++ b/src/Data/Skills/sup_int.lua @@ -1104,7 +1104,8 @@ skills["SupportElementalDischargePlayer"] = { }, }, } -}skills["TriggeredElementalDischargePlayer"] = { +} +skills["TriggeredElementalDischargePlayer"] = { name = "Elemental Discharge", hidden = true, skillTypes = { [SkillType.Spell] = true, [SkillType.Damage] = true, [SkillType.SkillGrantedBySupport] = true, [SkillType.Triggerable] = true, [SkillType.Cooldown] = true, [SkillType.Triggered] = true, }, diff --git a/src/Export/Scripts/skills.lua b/src/Export/Scripts/skills.lua index 4bfde49b2..de24179e8 100644 --- a/src/Export/Scripts/skills.lua +++ b/src/Export/Scripts/skills.lua @@ -331,8 +331,7 @@ directiveTable.skill = function(state, args, out) end local nextGemLevelReqValue = 0 local perLevel = dat("GrantedEffectsPerLevel"):GetRowList("GrantedEffect", granted) - local grantedEffectStatSet = dat("GrantedEffectStatSets"):GetRow("Id", grantedId) - local statsPerLevel = dat("GrantedEffectStatSetsPerLevel"):GetRowList("GrantedEffectStatSets", grantedEffectStatSet) + local statsPerLevel = dat("GrantedEffectStatSetsPerLevel"):GetRowList("GrantedEffect", granted) local gemLevelProgression = nil if skillGem and not state.noGem then gemLevelProgression = dat("ItemExperiencePerLevel"):GetRowList("ItemExperienceType", skillGem.GemLevelProgression) diff --git a/src/Export/Skills/act_dex.txt b/src/Export/Skills/act_dex.txt index 2245ec0ab..c675794d5 100644 --- a/src/Export/Skills/act_dex.txt +++ b/src/Export/Skills/act_dex.txt @@ -149,7 +149,7 @@ statMap = { }, #mods #set HeraldOfThunderOnKillPlayer -#flags attack +#flags nonWeaponAttack hit #mods #skillEnd diff --git a/src/Export/Skills/act_int.txt b/src/Export/Skills/act_int.txt index cd6796533..55e157449 100644 --- a/src/Export/Skills/act_int.txt +++ b/src/Export/Skills/act_int.txt @@ -557,7 +557,15 @@ statMap = { #skill FrozenLocusExplodePlayer #startSets #set FrozenLocusExplodePlayer -#flags attack area +#flags area nonWeaponAttack hit +statMap = { + ["main_hand_weapon_minimum_cold_damage"] = { + mod("ColdMin", "BASE", nil), + }, + ["main_hand_weapon_maximum_cold_damage"] = { + mod("ColdMax", "BASE", nil), + }, +}, #mods #skillEnd @@ -877,7 +885,7 @@ statMap = { #skill ShatteringPalmExplosionPlayer #startSets #set TriggeredFreezingWordExplosionPlayer -#flags attack area +#flags area nonWeaponAttack hit #mods #skillEnd diff --git a/src/Export/Skills/sup_int.txt b/src/Export/Skills/sup_int.txt index 7bbdd457b..6f189be07 100644 --- a/src/Export/Skills/sup_int.txt +++ b/src/Export/Skills/sup_int.txt @@ -276,6 +276,7 @@ statMap = { #set SupportElementalDischargePlayer #mods #skillEnd + #skill TriggeredElementalDischargePlayer #startSets #set TriggeredElementalDischargePlayer diff --git a/src/Modules/CalcActiveSkill.lua b/src/Modules/CalcActiveSkill.lua index a2bd3467e..c44f0945b 100644 --- a/src/Modules/CalcActiveSkill.lua +++ b/src/Modules/CalcActiveSkill.lua @@ -355,7 +355,7 @@ function calcs.buildActiveSkillModList(env, activeSkill) if skillFlags.hit then skillModFlags = bor(skillModFlags, ModFlag.Hit) end - if skillFlags.attack then + if skillFlags.attack or skillFlags.nonWeaponAttack then skillModFlags = bor(skillModFlags, ModFlag.Attack) else skillModFlags = bor(skillModFlags, ModFlag.Cast)