Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 27 additions & 7 deletions src/Data/Skills/act_int.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4701,7 +4701,7 @@ skills["FrostGlobe"] = {
castTime = 0.5,
statMap = {
["frost_globe_additional_spell_base_critical_strike_chance_per_stage"] = {
mod("CritChance", "BASE", nil, ModFlag.Spell, 0, { type = "Multiplier", var = "FrostShieldStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
mod("CritChance", "BASE", nil, ModFlag.Spell, 0, { type = "Multiplier", var = "FrostShieldStage", limitVar = "FrostShieldMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
div = 100,
},
["energy_shield_lost_per_minute"] = {
Expand All @@ -4715,7 +4715,10 @@ skills["FrostGlobe"] = {
mod("FrostGlobeDamageMitigation", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "EnemyInFrostGlobe", neg = true }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
},
["frost_globe_health_per_stage"] = {
mod("FrostGlobeHealth", "BASE", nil, 0, 0, { type = "Multiplier", var = "FrostShieldStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
mod("FrostGlobeHealth", "BASE", nil, 0, 0, { type = "Multiplier", var = "FrostShieldStage", limitVar = "FrostShieldMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
},
["frost_globe_max_stages"] = {
mod("Multiplier:FrostShieldMaxStages", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
},
},
baseFlags = {
Expand Down Expand Up @@ -8308,6 +8311,15 @@ skills["FireBeam"] = {
skillTypes = { [SkillType.Spell] = true, [SkillType.Totemable] = true, [SkillType.DamageOverTime] = true, [SkillType.Fire] = true, [SkillType.CausesBurning] = true, [SkillType.Duration] = true, [SkillType.Channel] = true, [SkillType.DegenOnlySpellDamage] = true, },
statDescriptionScope = "debuff_skill_stat_descriptions",
castTime = 0.25,
parts = {
{
name = "Manual Stages",
stages = true,
},
{
name = "Maximum Sustainable Stages",
},
},
statMap = {
["base_fire_damage_resistance_%"] = {
mod("FireExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff", effectName = "Fire Exposure", effectCond = "ScorchingRayMaxStages" }),
Expand All @@ -8317,7 +8329,7 @@ skills["FireBeam"] = {
base = 100
},
["display_max_fire_beam_stacks"] = {
mod("Multiplier:ScorchingRayMaxStages", "BASE", nil),
mod("Multiplier:ScorchingRayMaxStages", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 1 }),
},
},
baseFlags = {
Expand Down Expand Up @@ -8502,19 +8514,27 @@ skills["CircleOfPower"] = {
mod("ManaCost", "INC", nil, 0, 0, { type = "MultiplierThreshold", var = "SigilOfPowerStage", threshold = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_min_added_lightning_per_stage"] = {
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_max_added_lightning_per_stage"] = {
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_enemy_damage_+%_final_at_max_stages"] = {
mod("Damage", "MORE", nil, 0, 0, { type = "MultiplierThreshold", actor = "enemy", var = "SigilOfPowerStage", thresholdVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Debuff", effectName = "Sigil of Power" }),
},
["spell_damage_+%"] = {
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["base_chance_to_shock_%_from_skill"] = {
mod("EnemyShockChance", "BASE", nil, 0, 0, { type = "MultiplierThreshold", var = "SigilOfPowerStage", threshold = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_max_stages"] = {
mod("Multiplier:SigilOfPowerMaxStages", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
},
["quality_display_circle_of_power_is_gem"] = {
},
},
baseFlags = {
spell = true,
Expand Down
34 changes: 27 additions & 7 deletions src/Export/Skills/act_int.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1053,7 +1053,7 @@ local skills, mod, flag, skill = ...
#flags spell area duration
statMap = {
["frost_globe_additional_spell_base_critical_strike_chance_per_stage"] = {
mod("CritChance", "BASE", nil, ModFlag.Spell, 0, { type = "Multiplier", var = "FrostShieldStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
mod("CritChance", "BASE", nil, ModFlag.Spell, 0, { type = "Multiplier", var = "FrostShieldStage", limitVar = "FrostShieldMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
div = 100,
},
["energy_shield_lost_per_minute"] = {
Expand All @@ -1067,7 +1067,10 @@ local skills, mod, flag, skill = ...
mod("FrostGlobeDamageMitigation", "BASE", nil, 0, 0, { type = "ActorCondition", actor = "enemy", var = "EnemyInFrostGlobe", neg = true }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
},
["frost_globe_health_per_stage"] = {
mod("FrostGlobeHealth", "BASE", nil, 0, 0, { type = "Multiplier", var = "FrostShieldStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
mod("FrostGlobeHealth", "BASE", nil, 0, 0, { type = "Multiplier", var = "FrostShieldStage", limitVar = "FrostShieldMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Frost Shield" }),
},
["frost_globe_max_stages"] = {
mod("Multiplier:FrostShieldMaxStages", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
},
},
#baseMod skill("radius", 22)
Expand Down Expand Up @@ -1714,6 +1717,15 @@ local skills, mod, flag, skill = ...

#skill FireBeam
#flags spell duration
parts = {
{
name = "Manual Stages",
stages = true,
},
{
name = "Maximum Sustainable Stages",
},
},
statMap = {
["base_fire_damage_resistance_%"] = {
mod("FireExposure", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Debuff", effectName = "Fire Exposure", effectCond = "ScorchingRayMaxStages" }),
Expand All @@ -1723,7 +1735,7 @@ local skills, mod, flag, skill = ...
base = 100
},
["display_max_fire_beam_stacks"] = {
mod("Multiplier:ScorchingRayMaxStages", "BASE", nil),
mod("Multiplier:ScorchingRayMaxStages", "BASE", nil, 0, 0, { type = "SkillPart", skillPart = 1 }),
},
},
#baseMod mod("Condition:ScorchingRayMaxStages", "FLAG", true, 0, 0, { type = "MultiplierThreshold", var = "ScorchingRayStageAfterFirst", threshold = 7 })
Expand Down Expand Up @@ -1757,19 +1769,27 @@ local skills, mod, flag, skill = ...
mod("ManaCost", "INC", nil, 0, 0, { type = "MultiplierThreshold", var = "SigilOfPowerStage", threshold = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_min_added_lightning_per_stage"] = {
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMin", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_max_added_lightning_per_stage"] = {
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limit = 4 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
mod("LightningMax", "BASE", nil, 0, 0, { type = "Multiplier", actor = "parent", var = "SigilOfPowerStage", limitVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_enemy_damage_+%_final_at_max_stages"] = {
mod("Damage", "MORE", nil, 0, 0, { type = "MultiplierThreshold", actor = "enemy", var = "SigilOfPowerStage", thresholdVar = "SigilOfPowerMaxStages" }, { type = "GlobalEffect", effectType = "Debuff", effectName = "Sigil of Power" }),
},
["spell_damage_+%"] = {
mod("Damage", "INC", nil, ModFlag.Spell, 0, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["base_chance_to_shock_%_from_skill"] = {
mod("EnemyShockChance", "BASE", nil, 0, 0, { type = "MultiplierThreshold", var = "SigilOfPowerStage", threshold = 1 }, { type = "GlobalEffect", effectType = "Buff", effectName = "Sigil of Power" }),
},
["circle_of_power_max_stages"] = {
mod("Multiplier:SigilOfPowerMaxStages", "BASE", nil, 0, 0, { type = "GlobalEffect", effectType = "Buff" }),
},
["quality_display_circle_of_power_is_gem"] = {
},
},
#baseMod skill("radius", 30)
#baseMod skill("buffAllies", true)
Expand Down
4 changes: 0 additions & 4 deletions src/Modules/CalcPerform.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2311,10 +2311,6 @@ function calcs.perform(env, avoidCache)
local maximum = m_min((m_floor(rate * duration) - 1), 7)
activeSkill.skillModList:NewMod("Multiplier:ScorchingRayMaxStages", "BASE", maximum, "Base")
activeSkill.skillModList:NewMod("Multiplier:ScorchingRayStageAfterFirst", "BASE", maximum, "Base")
if maximum >= 7 then
activeSkill.skillModList:NewMod("Condition:ScorchingRayMaxStages", "FLAG", true, "Config")
enemyDB:NewMod("FireResist", "BASE", -25, "Scorching Ray", { type = "GlobalEffect", effectType = "Debuff" } )
end
end
end

Expand Down
4 changes: 0 additions & 4 deletions src/Modules/ConfigOptions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,6 @@ return {
{ var = "flameWallAddedDamage", type = "check", label = "Projectile Travelled through Flame Wall?", ifSkill = "Flame Wall", apply = function(val, modList, enemyModList)
modList:NewMod("Condition:FlameWallAddedDamage", "FLAG", true, "Config")
end },
{ label = "Frostbolt:", ifSkill = "Frostbolt" },
{ var = "frostboltExposure", type = "check", label = "Can you apply Exposure?", ifSkill = "Frostbolt", apply = function(val, modList, enemyModList)
modList:NewMod("ColdExposureChance", "BASE", 20, "Config")
end },
{ label = "Frost Shield:", ifSkill = "Frost Shield" },
{ var = "frostShieldStages", type = "count", label = "Stages:", ifSkill = "Frost Shield", apply = function(val, modList, enemyModList)
modList:NewMod("Multiplier:FrostShieldStage", "BASE", val, "Config")
Expand Down
16 changes: 8 additions & 8 deletions src/Modules/StatDescriber.lua
Original file line number Diff line number Diff line change
Expand Up @@ -63,20 +63,20 @@ local function applySpecial(val, spec)
val[spec.v].min = val[spec.v].min / 15
val[spec.v].max = val[spec.v].max / 15
elseif spec.k == "divide_by_five" then
val[spec.v].min = round(val[spec.v].min / 5, 1)
val[spec.v].max = round(val[spec.v].max / 5, 1)
val[spec.v].min = val[spec.v].min / 5
val[spec.v].max = val[spec.v].max / 5
val[spec.v].fmt = "g"
elseif spec.k == "divide_by_six" then
val[spec.v].min = round(val[spec.v].min / 6, 1)
val[spec.v].max = round(val[spec.v].max / 6, 1)
val[spec.v].min = val[spec.v].min / 6
val[spec.v].max = val[spec.v].max / 6
val[spec.v].fmt = "g"
elseif spec.k == "divide_by_twelve" then
val[spec.v].min = round(val[spec.v].min / 12, 1)
val[spec.v].max = round(val[spec.v].max / 12, 1)
val[spec.v].min = val[spec.v].min / 12
val[spec.v].max = val[spec.v].max / 12
val[spec.v].fmt = "g"
elseif spec.k == "divide_by_one_hundred" then
val[spec.v].min = round(val[spec.v].min / 100, 1)
val[spec.v].max = round(val[spec.v].max / 100, 1)
val[spec.v].min = val[spec.v].min / 100
val[spec.v].max = val[spec.v].max / 100
val[spec.v].fmt = "g"
elseif spec.k == "divide_by_one_hundred_2dp_if_required" or spec.k == "divide_by_one_hundred_2dp" then
val[spec.v].min = round(val[spec.v].min / 100, 2)
Expand Down