-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.lua
More file actions
249 lines (236 loc) · 19.6 KB
/
main.lua
File metadata and controls
249 lines (236 loc) · 19.6 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
-- Imports
-- external libraries
local isc = require("TheSaint.lib.isaacscript-common")
include("TheSaint.lib.throwableitemlib").Init()
include("TheSaint.lib.status_effect_library")
-- other
local stats = include("TheSaint.stats")
local utils = include("TheSaint.utils")
local enums = require("TheSaint.Enums")
--- Obtained by using the `upgradeMod` function
--- @class ModUpgraded : ModReference
--- @field AddCallbackCustom function
--- @field AddPriorityCallbackCustom function
--- @field RemoveCallbackCustom function
--- @field logUsedFeatures function
--- @field registerCharacterHealthConversion function @ must upgrade mod with `ISCFeature.CHARACTER_HEALTH_CONVERSION`
--- @field registerCharacterStats function @ must upgrade mod with `ISCFeature.CHARACTER_STATS`
--- @field getCollectibleItemPoolType function @ must upgrade mod with `ISCFeature.COLLECTIBLE_ITEM_POOL_TYPE`
--- @field setConditionalHotkey function @ must upgrade mod with `ISCFeature.CUSTOM_HOTKEYS`
--- @field setHotkey function @ must upgrade mod with `ISCFeature.CUSTOM_HOTKEYS`
--- @field unsetConditionalHotkey function @ must upgrade mod with `ISCFeature.CUSTOM_HOTKEYS`
--- @field unsetHotkey function @ must upgrade mod with `ISCFeature.CUSTOM_HOTKEYS`
--- @field registerCustomItemPool function @ must upgrade mod with `ISCFeature.CUSTOM_ITEM_POOLS`
--- @field getCustomItemPoolCollectible function @ must upgrade mod with `ISCFeature.CUSTOM_ITEM_POOLS`
--- @field registerCustomPickup function @ must upgrade mod with `ISCFeature.CUSTOM_PICKUPS`
--- @field setCustomStage function @ must upgrade mod with `ISCFeature.CUSTOM_STAGES`
--- @field disableCustomStage function @ must upgrade mod with `ISCFeature.CUSTOM_STAGES`
--- @field registerCustomTrapdoorDestination function @ must upgrade mod with `ISCFeature.CUSTOM_TRAPDOORS`
--- @field spawnCustomTrapdoor function @ must upgrade mod with `ISCFeature.CUSTOM_TRAPDOORS`
--- @field setPlayerDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setTearDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setFamiliarDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setBombDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setPickupDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setSlotDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setLaserDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setKnifeDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setProjectileDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setEffectDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setNPCDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setRockDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setPitDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setSpikesDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setTNTDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setPoopDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setDoorDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field setPressurePlateDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field togglePlayerDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleTearDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleFamiliarDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleBombDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field togglePickupDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleSlotDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleLaserDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleKnifeDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleProjectileDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleEffectDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleNPCDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleRockDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field togglePitDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleSpikesDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleTNTDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field togglePoopDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field toggleDoorDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field togglePressurePlateDisplay function @ must upgrade mod with `ISCFeature.DEBUG_DISPLAY`
--- @field deployJSONRoom function @ must upgrade mod with `ISCFeature.DEPLOY_JSON_ROOM`
--- @field enableAllSound function @ must upgrade mod with `ISCFeature.DISABLE_ALL_SOUND`
--- @field disableAllSound function @ must upgrade mod with `ISCFeature.DISABLE_ALL_SOUND`
--- @field areInputsEnabled function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field enableAllInputs function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field disableInputs function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field disableAllInputs function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field enableAllInputsExceptFor function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field disableAllInputsExceptFor function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field disableMovementInputs function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field disableShootingInputs function @ must upgrade mod with `ISCFeature.DISABLE_INPUTS`
--- @field getEdenStartingActiveCollectible function @ must upgrade mod with `ISCFeature.EDEN_STARTING_STATS`
--- @field getEdenStartingCollectibles function @ must upgrade mod with `ISCFeature.EDEN_STARTING_STATS`
--- @field getEdenStartingHealth function @ must upgrade mod with `ISCFeature.EDEN_STARTING_STATS`
--- @field getEdenStartingPassiveCollectible function @ must upgrade mod with `ISCFeature.EDEN_STARTING_STATS`
--- @field getEdenStartingStat function @ must upgrade mod with `ISCFeature.EDEN_STARTING_STATS`
--- @field getEdenStartingStats function @ must upgrade mod with `ISCFeature.EDEN_STARTING_STATS`
--- @field addConsoleCommand function @ must upgrade mod with `ISCFeature.EXTRA_CONSOLE_COMMANDS`
--- @field removeConsoleCommand function @ must upgrade mod with `ISCFeature.EXTRA_CONSOLE_COMMANDS`
--- @field removeAllConsoleCommands function @ must upgrade mod with `ISCFeature.EXTRA_CONSOLE_COMMANDS`
--- @field removeFadeIn function @ must upgrade mod with `ISCFeature.FADE_IN_REMOVER`
--- @field restoreFadeIn function @ must upgrade mod with `ISCFeature.FADE_IN_REMOVER`
--- @field enableFastReset function @ must upgrade mod with `ISCFeature.FAST_RESET`
--- @field disableFastReset function @ must upgrade mod with `ISCFeature.FAST_RESET`
--- @field hasFlyingTemporaryEffect function @ must upgrade mod with `ISCFeature.FLYING_DETECTION`
--- @field forgottenSwitch function @ must upgrade mod with `ISCFeature.FORGOTTEN_SWITCH`
--- @field getCollectiblesInItemPool function @ must upgrade mod with `ISCFeature.ITEM_POOL_DETECTION`
--- @field isCollectibleInItemPool function @ must upgrade mod with `ISCFeature.ITEM_POOL_DETECTION`
--- @field isCollectibleUnlocked function @ must upgrade mod with `ISCFeature.ITEM_POOL_DETECTION`
--- @field getFirstModdedCollectibleType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getLastCollectibleType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumCollectibleTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumModdedCollectibleTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getFirstModdedTrinketType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getLastTrinketType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumTrinketTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumModdedTrinketTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getFirstModdedCardType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getLastCardType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumCardTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumModdedCardTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getFirstModdedPillEffect function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getLastPillEffect function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumPillEffects function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getNumModdedPillEffects function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_DETECTION`
--- @field getCollectibleTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCollectibleTypeSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedCollectibleTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedCollectibleTypesSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPlayerCollectibleMap function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getTrinketTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getTrinketTypesSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedTrinketTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedTrinketTypesSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCardTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCardTypesSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedCardTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedCardTypesSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPillEffects function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPillEffectsSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedPillEffects function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getModdedPillEffectsSet function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCollectibleTypesWithCacheFlag function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getTrinketsTypesWithCacheFlag function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPlayerCollectiblesWithCacheFlag function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPlayerTrinketsWithCacheFlag function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getFlyingCollectibleTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getFlyingTrinketTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCollectibleTypesWithTag function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPlayerCollectiblesWithTag function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCollectibleTypesFortransformation function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPlayerCollectiblesForTransformation function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getEdenActiveCollectibleTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getEdenPassiveCollectibleTypes function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getRandomEdenActiveCollectibleType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getRandomEdenPassiveCollectibleType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCollectibleTypesOfQuality function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getPlayerCollectiblesOfQuality function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getCardTypesOfType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getRandomCardTypeOfType function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getRandomCard function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field getRandomRune function @ must upgrade mod with `ISCFeature.MODDED_ELEMENT_SETS`
--- @field setFamiliarNoSirenSteal function @ must upgrade mod with `ISCFeature.NO_SIREN_STEAL`
--- @field isPaused function @ must upgrade mod with `ISCFeature.PAUSE`
--- @field pause function @ must upgrade mod with `ISCFeature.PAUSE`
--- @field unpause function @ must upgrade mod with `ISCFeature.PAUSE`
--- @field removePersistentEntity function @ must upgrade mod with `ISCFeature.PERSISTENT_ENTITIES`
--- @field spawnPersistentEntity function @ must upgrade mod with `ISCFeature.PERSISTENT_ENTITIES`
--- @field getPickupIndex function @ must upgrade mod with `ISCFeature.PICKUP_INDEX_CREATION`
--- @field getPlayerCollectibleTypes function @ must upgrade mod with `ISCFeature.PLAYER_COLLECTIBLE_TRACKING`
--- @field getPlayerLastPassiveCollectibleType function @ must upgrade mod with `ISCFeature.PLAYER_COLLECTIBLE_TRACKING`
--- @field isPlayerUsingPony function @ must upgrade mod with `ISCFeature.PONY_DETECTION`
--- @field anyPlayerUsingPony function @ must upgrade mod with `ISCFeature.PONY_DETECTION`
--- @field pressInput function @ must upgrade mod with `ISCFeature.PRESS_INPUT`
--- @field preventChildEntities function @ must upgrade mod with `ISCFeature.PREVENT_CHILD_ENTITIES`
--- @field preventGridEntityRespawn function @ must upgrade mod with `ISCFeature.PREVENT_GRID_ENTITY_RESPAWN`
--- @field onRerun function @ must upgrade mod with `ISCFeature.RERUN_DETECTION`
--- @field getRoomClearGameFrame function @ must upgrade mod with `ISCFeature.ROOM_CLEAR_FRAME`
--- @field getRoomClearRenderFrame function @ must upgrade mod with `ISCFeature.ROOM_CLEAR_FRAME`
--- @field getRoomClearRoomFrame function @ must upgrade mod with `ISCFeature.ROOM_CLEAR_FRAME`
--- @field deleteLastRoomDescription function @ must upgrade mod with `ISCFeature.ROOM_HISTORY`
--- @field getNumRoomsEntered function @ must upgrade mod with `ISCFeature.ROOM_HISTORY`
--- @field getRoomHistory function @ must upgrade mod with `ISCFeature.ROOM_HISTORY`
--- @field getPreviousRoomDescription function @ must upgrade mod with `ISCFeature.ROOM_HISTORY`
--- @field getLatestRoomDescription function @ must upgrade mod with `ISCFeature.ROOM_HISTORY`
--- @field inFirstRoom function @ must upgrade mod with `ISCFeature.ROOM_HISTORY`
--- @field isLeavingRoom function @ must upgrade mod with `ISCFeature.ROOM_HISTORY`
--- @field restartNextRenderFrame function @ must upgrade mod with `ISCFeature.RUN_IN_N_FRAMES`
--- @field runInNGameFrames function @ must upgrade mod with `ISCFeature.RUN_IN_N_FRAMES`
--- @field runInNRenderFrames function @ must upgrade mod with `ISCFeature.RUN_IN_N_FRAMES`
--- @field runNextGameFrame function @ must upgrade mod with `ISCFeature.RUN_IN_N_FRAMES`
--- @field runNextRenderFrame function @ must upgrade mod with `ISCFeature.RUN_IN_N_FRAMES`
--- @field setIntervalGameFrames function @ must upgrade mod with `ISCFeature.RUN_IN_N_FRAMES`
--- @field setIntervalRenderFrames function @ must upgrade mod with `ISCFeature.RUN_IN_N_FRAMES`
--- @field runNextRoom function @ must upgrade mod with `ISCFeature.RUN_NEXT_ROOM`
--- @field runNextRun function @ must upgrade mod with `ISCFeature.RUN_NEXT_RUN`
--- @field saveDataManager function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerLoad function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerSave function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerSetGlobal function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerRegisterClass function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerRemove function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerReset function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerInMenu function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field saveDataManagerLogSubscribers function @ must upgrade mod with `ISCFeature.SAVE_DATA_MANAGER`
--- @field spawnRockAltReward function @ must upgrade mod with `ISCFeature.SPAWN_ALT_ROCK_REWARDS`
--- @field spawnRockAltRewardUrn function @ must upgrade mod with `ISCFeature.SPAWN_ALT_ROCK_REWARDS`
--- @field spawnRockAltRewardMushroom function @ must upgrade mod with `ISCFeature.SPAWN_ALT_ROCK_REWARDS`
--- @field spawnRockAltRewardSkull function @ must upgrade mod with `ISCFeature.SPAWN_ALT_ROCK_REWARDS`
--- @field spawnRockAltRewardPolyp function @ must upgrade mod with `ISCFeature.SPAWN_ALT_ROCK_REWARDS`
--- @field spawnRockAltRewardBucketDownpour function @ must upgrade mod with `ISCFeature.SPAWN_ALT_ROCK_REWARDS`
--- @field spawnRockAltRewardBucketDross function @ must upgrade mod with `ISCFeature.SPAWN_ALT_ROCK_REWARDS`
--- @field getNextStageTypeWithHistory function @ must upgrade mod with `ISCFeature.STAGE_HISTORY`
--- @field getNextStageWithHistory function @ must upgrade mod with `ISCFeature.STAGE_HISTORY`
--- @field getStageHistory function @ must upgrade mod with `ISCFeature.STAGE_HISTORY`
--- @field hasVisitedStage function @ must upgrade mod with `ISCFeature.STAGE_HISTORY`
--- @field startAmbush function @ must upgrade mod with `ISCFeature.START_AMBUSH`
--- @field getTaintedLazarusSubPlayer function @ must upgrade mod with `ISCFeature.TAINTED_LAZARUS_PLAYERS`
--- @field canRunUnlockAchievements function @ must upgrade mod with `ISCFeature.UNLOCK_ACHIEVEMENTS_DETECTION`
-- Init
--- @type ModReference
local TheSaintVanilla = RegisterMod(stats.ModName, 1)
local features = {
isc.ISCFeature.SAVE_DATA_MANAGER,
isc.ISCFeature.EXTRA_CONSOLE_COMMANDS,
isc.ISCFeature.UNLOCK_ACHIEVEMENTS_DETECTION,
isc.ISCFeature.PLAYER_COLLECTIBLE_TRACKING,
isc.ISCFeature.TAINTED_LAZARUS_PLAYERS,
isc.ISCFeature.PICKUP_INDEX_CREATION,
}
--- @type ModUpgraded
local TheSaint = isc:upgradeMod(TheSaintVanilla, features)
-- Global for exposing certain functions as external API calls
TheSaintAPI = {}
--- Custom commands
local function thesaint_help()
utils:PrintWithHeader("list of commands (all commands and their parameters are case-insensitive, unless stated otherwise):")
utils:PrintWithHeader("- 'thesaint_help': shows this list")
utils:PrintWithHeader("- 'thesaint_reloadbooks': reloads the cache of 'book'-items for 'Almanach'")
utils:PrintWithHeader("- 'thesaint_marks': check progress for this mod's characters' completion marks")
end
TheSaint:addConsoleCommand("thesaint_help", thesaint_help)
-- class registration
require("TheSaint.classes.PlayerLoadout").register(TheSaint)
-- feature initialization
local imports = require("TheSaint.imports")
if (type(imports) == "table") then
imports:LoadFeatures(TheSaint)
end
utils:PrintWithHeader("Type 'thesaint_help' for a list of commands")
Isaac.RunCallback("TheSaint_POST_LOAD")