@@ -1798,16 +1798,27 @@ skills["BonestormPlayer"] = {
17981798 [39] = { critChance = 15, levelRequirement = 90, cost = { ManaPerMinute = 20158, }, },
17991799 [40] = { critChance = 15, levelRequirement = 90, cost = { ManaPerMinute = 21924, }, },
18001800 },
1801+ preDamageFunc = function(activeSkill, output)
1802+ activeSkill.skillData.hitTimeMultiplier = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:BonestormStage")
1803+ activeSkill.skillData.channelTimeMultiplier = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:BonestormStage")
1804+ activeSkill.skillData.dpsMultiplier = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:BonestormStage")
1805+ end,
18011806 statSets = {
18021807 [1] = {
18031808 label = "Projectile",
18041809 baseEffectiveness = 1.4199999570847,
18051810 incrementalEffectiveness = 0.12999999523163,
18061811 damageIncrementalEffectiveness = 0.0068999999202788,
18071812 statDescriptionScope = "bone_spike_statset_0",
1813+ statMap = {
1814+ ["base_number_of_allowed_bone_storm_projectiles"] = {
1815+ mod("Multiplier:BonestormMaxStages", "BASE", nil),
1816+ },
1817+ },
18081818 baseFlags = {
18091819 spell = true,
18101820 projectile = true,
1821+ channelRelease = true,
18111822 },
18121823 constantStats = {
18131824 { "base_number_of_projectiles", 1 },
@@ -1886,10 +1897,22 @@ skills["BonestormPlayer"] = {
18861897 incrementalEffectiveness = 0.12999999523163,
18871898 damageIncrementalEffectiveness = 0.0068999999202788,
18881899 statDescriptionScope = "bone_spike_statset_1",
1900+ statMap = {
1901+ ["bone_spear_power_charged_aoe_+%_final_per_additional_power_charge"] = {
1902+ mod("AreaOfEffect", "MORE", nil, 0, 0, { type = "Multiplier", var = "RemovablePowerCharge" }),
1903+ },
1904+ ["bone_spear_power_charged_aoe_+"] = {
1905+ skill("radiusExtra", nil, { type = "MultiplierThreshold", var = "RemovablePowerCharge", threshold = 1 }),
1906+ },
1907+ ["base_number_of_allowed_bone_storm_projectiles"] = {
1908+ mod("Multiplier:BonestormMaxStages", "BASE", nil),
1909+ },
1910+ },
18891911 baseFlags = {
18901912 spell = true,
18911913 area = true,
18921914 projectile = true,
1915+ channelRelease = true,
18931916 },
18941917 constantStats = {
18951918 { "movement_speed_+%_final_while_performing_action", -70 },
@@ -8080,16 +8103,31 @@ skills["FlameblastPlayer"] = {
80808103 [39] = { critChance = 8, storedUses = 1, levelRequirement = 90, cooldown = 15, cost = { ManaPerMinute = 19137, }, },
80818104 [40] = { critChance = 8, storedUses = 1, levelRequirement = 90, cooldown = 15, cost = { ManaPerMinute = 20814, }, },
80828105 },
8106+ preDamageFunc = function(activeSkill, output)
8107+ activeSkill.skillData.channelTimeMultiplier = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:FlameblastStage")
8108+ end,
80838109 statSets = {
80848110 [1] = {
80858111 label = "Flameblast",
80868112 baseEffectiveness = 2.2999999523163,
80878113 incrementalEffectiveness = 0.12999999523163,
80888114 damageIncrementalEffectiveness = 0.0096000004559755,
80898115 statDescriptionScope = "skill_stat_descriptions",
8116+ statMap = {
8117+ ["charged_blast_spell_damage_+%_final_per_stack"] = {
8118+ mod("Damage", "MORE", nil, ModFlag.Spell, 0, { type = "Multiplier", var = "FlameblastStage" }),
8119+ },
8120+ ["vaal_flameblast_radius_+_per_stage"] = {
8121+ skill("radiusExtra", nil, { type = "Multiplier", var = "FlameblastStage" }),
8122+ },
8123+ ["flameblast_maximum_stages"] = {
8124+ mod("Multiplier:FlameblastMaxStages", "BASE", nil),
8125+ },
8126+ },
80908127 baseFlags = {
80918128 spell = true,
80928129 area = true,
8130+ channelRelease = true,
80938131 },
80948132 constantStats = {
80958133 { "charged_blast_spell_damage_+%_final_per_stack", 75 },
@@ -10292,6 +10330,7 @@ skills["GatheringStormPlayer"] = {
1029210330 },
1029310331 preDamageFunc = function(activeSkill, output)
1029410332 activeSkill.skillData.hitTimeMultiplier = activeSkill.skillData.channelPercentOfAttackTime
10333+ activeSkill.skillData.channelTimeMultiplier = activeSkill.skillData.channelPercentOfAttackTime
1029510334 end,
1029610335 statSets = {
1029710336 [1] = {
@@ -13371,17 +13410,33 @@ skills["IncineratePlayer"] = {
1337113410 [39] = { critChance = 6, levelRequirement = 90, },
1337213411 [40] = { critChance = 6, levelRequirement = 90, },
1337313412 },
13413+ preDamageFunc = function(activeSkill, output)
13414+ activeSkill.skillData.channelTimeMultiplier = activeSkill.skillModList:Sum("BASE", activeSkill.skillCfg, "Multiplier:IncinerateStage")
13415+ end,
1337413416 statSets = {
1337513417 [1] = {
1337613418 label = "Incinerate",
1337713419 baseEffectiveness = 3.9000000953674,
1337813420 incrementalEffectiveness = 0.12999999523163,
1337913421 damageIncrementalEffectiveness = 0.0096000004559755,
1338013422 statDescriptionScope = "incinerate_player_statset_0",
13423+ statMap = {
13424+ ["incinerate_damage_+%_final_per_stage"] = {
13425+ mod("Damage", "MORE", nil, 0, 0, { type = "Multiplier", var = "IncinerateStage" }),
13426+ },
13427+ ["incinerate_maximum_stages"] = {
13428+ mod("Multiplier:IncinerateMaxStages", "BASE", nil),
13429+ },
13430+ ["incinerate_gain_stage_every_x_ms"] = {
13431+ skill("channelTimeOverride", nil),
13432+ div = 1000,
13433+ },
13434+ },
1338113435 baseFlags = {
1338213436 spell = true,
1338313437 area = true,
1338413438 duration = true,
13439+ channelRelease = true,
1338513440 },
1338613441 constantStats = {
1338713442 { "incinerate_cone_angle", 20 },
0 commit comments