forked from cgullsHadesMods/HellModeToggle
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHellModeToggle.lua
More file actions
59 lines (49 loc) · 2.16 KB
/
Copy pathHellModeToggle.lua
File metadata and controls
59 lines (49 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
--[[
HellModeToggle
Author:
cgull (Discord: cgull#4469)
Provides functionality for other mods to toggle hell mode
]]
ModUtil.Mod.Register("HellModeToggle")
local config = {
Enabled = true,
}
HellModeToggle.config = config
function HellModeToggle.ToggleHellMode()
if HellModeToggle.config.Enabled then
local currentHellModeState = GameState.Flags.HardMode
-- adjusting game properties to match
if currentHellModeState then
-- turn off Personal Liability pact option
GameState.MetaUpgrades["NoInvulnerabilityShrineUpgrade"] = nil
-- adjust bounties
for weaponName, weaponRecords in pairs(GameState.RecordClearedShrineThreshold) do
for roomName, roomWeaponRecord in pairs(weaponRecords) do
GameState.RecordClearedShrineThreshold[weaponName][roomName] = roomWeaponRecord - 5
end
end
GameState.Flags.HardMode = false
else
-- turn on forced Hell Mode pact options
for upgradeName, amount in pairs( HeroData.DefaultHero.HardModeForcedMetaUpgrades ) do
local upgradeData = MetaUpgradeData[upgradeName]
if GameState.MetaUpgrades[upgradeName] ~= nil then
while GameState.MetaUpgrades[upgradeName] < amount do
IncrementTableValue(GameState.MetaUpgrades, upgradeName)
ApplyMetaUpgrade( upgradeData, true, GameState.MetaUpgrades[upgradeName] <= 0, true )
end
end
end
GameState.MetaUpgrades["NoInvulnerabilityShrineUpgrade"] = 1
-- adjust bounties
for weaponName, weaponRecords in pairs(GameState.RecordClearedShrineThreshold) do
for roomName, roomWeaponRecord in pairs(weaponRecords) do
GameState.RecordClearedShrineThreshold[weaponName][roomName] = roomWeaponRecord + 5
end
end
GameState.Flags.HardMode = true
end
GameState.SpentShrinePointsCache = GetTotalSpentShrinePoints()
UpdateActiveShrinePoints()
end
end