Add support for self cast Hydrosphere DPS (#8598)

* 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.

* 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.

* Fix not using tabs

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
This commit is contained in:
Cedric
2025-06-06 14:50:17 +02:00
committed by GitHub
parent 93ca7a07d1
commit 291ab00c0e
2 changed files with 58 additions and 20 deletions

View File

@@ -8643,18 +8643,32 @@ skills["Hydrosphere"] = {
statDescriptionScope = "skill_stat_descriptions",
castTime = 0.6,
parts = {
{
name = "Frozen",
},
{
name = "Shocked",
},
{
name = "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)
activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100)
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"] = {
@@ -8662,6 +8676,11 @@ skills["Hydrosphere"] = {
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 }),
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" } ),

View File

@@ -1753,18 +1753,32 @@ local skills, mod, flag, skill = ...
#skill Hydrosphere
#flags spell duration area
parts = {
{
name = "Frozen",
},
{
name = "Shocked",
},
{
name = "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)
activeSkill.skillData.hitTimeOverride = activeSkill.skillData.repeatFrequency / (1 + activeSkill.skillModList:Sum("INC", activeSkill.skillCfg, "HydroSphereFrequency") / 100)
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"] = {
@@ -1772,6 +1786,11 @@ local skills, mod, flag, skill = ...
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 }),
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" } ),