Skip to content

Commit 235d5fd

Browse files
authored
Fix modifers to Blashpemy Spirit reservation applying to supported curses (#1039)
* FIX: blashpemy base spirit reservation applying to supported curses * FIX: spelling
1 parent ad39926 commit 235d5fd

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

src/Data/Skills/act_int.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -866,7 +866,7 @@ skills["BlasphemyPlayer"] = {
866866
statDescriptionScope = "skill_stat_descriptions",
867867
statMap = {
868868
["blasphemy_base_spirit_reservation_per_socketed_curse"] = {
869-
mod("SkillData", "LIST", { key = "spiritReservationFlat", value = nil })
869+
mod("SkillData", "LIST", { key = "blasphemyReservationFlatSpirit", value = nil })
870870
},
871871
},
872872
baseFlags = {

src/Export/Skills/act_int.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ statMap = {
8080
#flags area
8181
statMap = {
8282
["blasphemy_base_spirit_reservation_per_socketed_curse"] = {
83-
mod("SkillData", "LIST", { key = "spiritReservationFlat", value = nil })
83+
mod("SkillData", "LIST", { key = "blasphemyReservationFlatSpirit", value = nil })
8484
},
8585
},
8686
#mods

src/Modules/CalcDefence.lua

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ function calcs.doActorLifeManaSpiritReservation(actor)
210210
if activeSkill.skillData[name.."ReservationFlatForced"] then
211211
values.reservedFlat = activeSkill.skillData[name.."ReservationFlatForced"]
212212
else
213-
local baseFlatVal = values.baseFlat
213+
local baseFlatVal = values.baseFlat * mult
214214
values.reservedFlat = 0
215215
if values.more > 0 and values.inc > -100 and baseFlatVal ~= 0 then
216216
values.reservedFlat = m_max(m_ceil(baseFlatVal * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 0), 0)
@@ -232,17 +232,19 @@ function calcs.doActorLifeManaSpiritReservation(actor)
232232
if activeSkill.skillTypes[SkillType.MultipleReservation] then
233233
local activeSkillCount, enabled = calcs.getActiveSkillCount(activeSkill)
234234
local minionFreeSpiritCount = skillModList:Sum("BASE", skillCfg, "MinionFreeSpiritCount")
235-
values.reservedFlat = values.reservedFlat * mult * m_max(activeSkillCount - minionFreeSpiritCount, 0)
235+
values.reservedFlat = values.reservedFlat * m_max(activeSkillCount - minionFreeSpiritCount, 0)
236236
end
237-
238-
if activeSkill.skillTypes[SkillType.IsBlasphemy] and activeSkill.activeEffect.srcInstance.supportEffect and activeSkill.activeEffect.srcInstance.supportEffect.isSupporting then
237+
if activeSkill.skillTypes[SkillType.IsBlasphemy] and activeSkill.activeEffect.srcInstance.supportEffect and activeSkill.activeEffect.srcInstance.supportEffect.isSupporting and activeSkill.skillData["blasphemyReservationFlat" .. name] then
239238
-- Sadly no better way to get key/val table element count in lua.
240239
local instances = 0
241240
for _ in pairs(activeSkill.activeEffect.srcInstance.supportEffect.isSupporting) do
242241
instances = instances + 1
243242
end
244-
values.reservedFlat = values.reservedFlat * instances * mult
245-
values.reservedPercent = values.reservedPercent * instances * mult
243+
244+
-- Extra reservation of blasphemy needs to be separated from the reservation caused by curses
245+
local blasphemyFlat = activeSkill.skillData["blasphemyReservationFlat" .. name]
246+
local blasphemyEffectiveFlat = m_max(m_ceil(blasphemyFlat * mult * (100 + values.inc) / 100 * values.more / (1 + values.efficiency / 100), 0), 0)
247+
values.reservedFlat = values.reservedFlat + blasphemyEffectiveFlat * instances
246248
end
247249
-- Blood Sacrament increases reservation per stage channelled
248250
if activeSkill.skillCfg.skillName == "Blood Sacrament" and activeSkill.activeStageCount then

0 commit comments

Comments
 (0)