From ac429ebfd0ebb3502b9829a1236048911c9f6442 Mon Sep 17 00:00:00 2001 From: cn Date: Fri, 18 Apr 2025 17:24:04 +0200 Subject: [PATCH 1/3] Added skill part "Cast" for Hydrosphere, for when the Hydrosphere is continuously recast. Adjusted skill part names for Frozen, Shocked and Frozen & Shocked for clarity. --- src/Data/Skills/act_int.lua | 28 +++++++++++++++++----------- src/Export/Skills/act_int.txt | 28 +++++++++++++++++----------- 2 files changed, 34 insertions(+), 22 deletions(-) diff --git a/src/Data/Skills/act_int.lua b/src/Data/Skills/act_int.lua index a0a9c265a5..6ace5a95bd 100644 --- a/src/Data/Skills/act_int.lua +++ b/src/Data/Skills/act_int.lua @@ -8643,25 +8643,31 @@ skills["Hydrosphere"] = { statDescriptionScope = "skill_stat_descriptions", castTime = 0.6, parts = { - { - name = "Frozen", - }, - { - name = "Shocked", - }, - { - name = "Frozen & Shocked", - } + { + name = "Frozen (Autopulse)", + }, + { + name = "Shocked (Autopulse)", + }, + { + name = "Frozen & Shocked (Autopulse)", + }, + { + name = "Cast", + } }, preDamageFunc = function(activeSkill, output) - activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) - end, + if activeSkill.skillPart == 1 or activeSkill.skillPart == 2 or activeSkill.skillPart == 3 then + activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) + end + end, statMap = { ["skill_physical_damage_%_to_convert_to_cold"] = { mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 1 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 2 }), mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 4 }), }, ["water_sphere_cold_lightning_exposure_%"] = { mod("ColdExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff" } ), diff --git a/src/Export/Skills/act_int.txt b/src/Export/Skills/act_int.txt index f84fe4ec75..3be45eb8ad 100644 --- a/src/Export/Skills/act_int.txt +++ b/src/Export/Skills/act_int.txt @@ -1753,25 +1753,31 @@ local skills, mod, flag, skill = ... #skill Hydrosphere #flags spell duration area parts = { - { - name = "Frozen", - }, - { - name = "Shocked", - }, - { - name = "Frozen & Shocked", - } + { + name = "Frozen (Autopulse)", + }, + { + name = "Shocked (Autopulse)", + }, + { + name = "Frozen & Shocked (Autopulse)", + }, + { + name = "Cast", + } }, preDamageFunc = function(activeSkill, output) - activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) - end, + if activeSkill.skillPart == 1 or activeSkill.skillPart == 2 or activeSkill.skillPart == 3 then + activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) + end + end, statMap = { ["skill_physical_damage_%_to_convert_to_cold"] = { mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 1 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 2 }), mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 4 }), }, ["water_sphere_cold_lightning_exposure_%"] = { mod("ColdExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff" } ), From a8499e0dfb6fdf9c2db3563f37047736041f913a Mon Sep 17 00:00:00 2001 From: cn Date: Fri, 18 Apr 2025 17:56:09 +0200 Subject: [PATCH 2/3] Split "Cast" further into Frozen, Shocked and Frozen Shocked skill parts since the damage pulse from casting actually also converts depending on the ailment of the sphere. --- src/Data/Skills/act_int.lua | 21 +++++++++++++++++---- src/Export/Skills/act_int.txt | 21 +++++++++++++++++---- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/src/Data/Skills/act_int.lua b/src/Data/Skills/act_int.lua index 6ace5a95bd..0809635d5d 100644 --- a/src/Data/Skills/act_int.lua +++ b/src/Data/Skills/act_int.lua @@ -8644,16 +8644,25 @@ skills["Hydrosphere"] = { castTime = 0.6, parts = { { - name = "Frozen (Autopulse)", + name = "Autopulse (Frozen)", }, { - name = "Shocked (Autopulse)", + name = "Autopulse (Shocked)", }, { - name = "Frozen & Shocked (Autopulse)", + name = "Autopulse (Frozen & Shocked)", }, { - name = "Cast", + name = "Cast (No Ailment)", + }, + { + name = "Cast (Frozen)", + }, + { + name = "Cast (Shocked)", + }, + { + name = "Cast (Frozen & Shocked)", } }, preDamageFunc = function(activeSkill, output) @@ -8668,6 +8677,10 @@ skills["Hydrosphere"] = { mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 4 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 5 }), + mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 6 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), + mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), }, ["water_sphere_cold_lightning_exposure_%"] = { mod("ColdExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff" } ), diff --git a/src/Export/Skills/act_int.txt b/src/Export/Skills/act_int.txt index 3be45eb8ad..4c7892e77d 100644 --- a/src/Export/Skills/act_int.txt +++ b/src/Export/Skills/act_int.txt @@ -1754,16 +1754,25 @@ local skills, mod, flag, skill = ... #flags spell duration area parts = { { - name = "Frozen (Autopulse)", + name = "Autopulse (Frozen)", }, { - name = "Shocked (Autopulse)", + name = "Autopulse (Shocked)", }, { - name = "Frozen & Shocked (Autopulse)", + name = "Autopulse (Frozen & Shocked)", }, { - name = "Cast", + name = "Cast (No Ailment)", + }, + { + name = "Cast (Frozen)", + }, + { + name = "Cast (Shocked)", + }, + { + name = "Cast (Frozen & Shocked)", } }, preDamageFunc = function(activeSkill, output) @@ -1778,6 +1787,10 @@ local skills, mod, flag, skill = ... mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 3 }), mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 4 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 5 }), + mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 6 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), + mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), }, ["water_sphere_cold_lightning_exposure_%"] = { mod("ColdExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff" } ), From cecace0d42c827bcddbd678843c6b40e0a9a4ce7 Mon Sep 17 00:00:00 2001 From: LocalIdentity Date: Fri, 6 Jun 2025 22:49:34 +1000 Subject: [PATCH 3/3] Fix not using tabs --- src/Data/Skills/act_int.lua | 52 +++++++++++++++++------------------ src/Export/Skills/act_int.txt | 52 +++++++++++++++++------------------ 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/src/Data/Skills/act_int.lua b/src/Data/Skills/act_int.lua index 0809635d5d..ab45f8decc 100644 --- a/src/Data/Skills/act_int.lua +++ b/src/Data/Skills/act_int.lua @@ -8644,32 +8644,32 @@ skills["Hydrosphere"] = { castTime = 0.6, parts = { { - name = "Autopulse (Frozen)", - }, - { - name = "Autopulse (Shocked)", - }, - { - name = "Autopulse (Frozen & Shocked)", - }, - { - name = "Cast (No Ailment)", - }, - { - name = "Cast (Frozen)", - }, - { - name = "Cast (Shocked)", - }, - { - name = "Cast (Frozen & Shocked)", - } + name = "Autopulse (Frozen)", + }, + { + name = "Autopulse (Shocked)", + }, + { + name = "Autopulse (Frozen & Shocked)", + }, + { + name = "Cast (No Ailment)", + }, + { + name = "Cast (Frozen)", + }, + { + name = "Cast (Shocked)", + }, + { + name = "Cast (Frozen & Shocked)", + } }, preDamageFunc = function(activeSkill, output) - if activeSkill.skillPart == 1 or activeSkill.skillPart == 2 or activeSkill.skillPart == 3 then - activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) - end - end, + if activeSkill.skillPart == 1 or activeSkill.skillPart == 2 or activeSkill.skillPart == 3 then + activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) + end + end, statMap = { ["skill_physical_damage_%_to_convert_to_cold"] = { mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 1 }), @@ -8679,8 +8679,8 @@ skills["Hydrosphere"] = { mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 4 }), mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 5 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 6 }), - mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), - mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), + mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), }, ["water_sphere_cold_lightning_exposure_%"] = { mod("ColdExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff" } ), diff --git a/src/Export/Skills/act_int.txt b/src/Export/Skills/act_int.txt index 4c7892e77d..dd09dacbc2 100644 --- a/src/Export/Skills/act_int.txt +++ b/src/Export/Skills/act_int.txt @@ -1754,32 +1754,32 @@ local skills, mod, flag, skill = ... #flags spell duration area parts = { { - name = "Autopulse (Frozen)", - }, - { - name = "Autopulse (Shocked)", - }, - { - name = "Autopulse (Frozen & Shocked)", - }, - { - name = "Cast (No Ailment)", - }, - { - name = "Cast (Frozen)", - }, - { - name = "Cast (Shocked)", - }, - { - name = "Cast (Frozen & Shocked)", - } + name = "Autopulse (Frozen)", + }, + { + name = "Autopulse (Shocked)", + }, + { + name = "Autopulse (Frozen & Shocked)", + }, + { + name = "Cast (No Ailment)", + }, + { + name = "Cast (Frozen)", + }, + { + name = "Cast (Shocked)", + }, + { + name = "Cast (Frozen & Shocked)", + } }, preDamageFunc = function(activeSkill, output) - if activeSkill.skillPart == 1 or activeSkill.skillPart == 2 or activeSkill.skillPart == 3 then - activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) - end - end, + if activeSkill.skillPart == 1 or activeSkill.skillPart == 2 or activeSkill.skillPart == 3 then + activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100) + end + end, statMap = { ["skill_physical_damage_%_to_convert_to_cold"] = { mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 1 }), @@ -1789,8 +1789,8 @@ local skills, mod, flag, skill = ... mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 4 }), mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 5 }), mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 6 }), - mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), - mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), + mod("SkillPhysicalDamageConvertToCold", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), + mod("SkillPhysicalDamageConvertToLightning", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 7 }), }, ["water_sphere_cold_lightning_exposure_%"] = { mod("ColdExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff" } ),