Merge pull request #344 from Buurazu/master
Void stat increase preview 1.0 + misc
This commit is contained in:
7 files changed
+234
-274
No files matched your search
@@ -496,7 +496,7 @@ EID.descriptions[languageCode].collectibles={
|
||||
{"474", "Tonsil", "Blocks enemy projectiles"},
|
||||
{"475", "Plan C", "!!! SINGLE USE !!!#Deals 9,999,999 damage to all enemies and kills you 3 seconds later"},
|
||||
{"476", "D1", "Duplicates 1 random pickup in the current room"},
|
||||
{"477", "Void", "!!! When used, consume any pedestal items in the room#Active item: Its effect will be added to Void's effect (Stacking the effects)#↑ Passive item: Small stat upgrade to a random stat"},
|
||||
{"477", "Void", "!!! When used, consumes all pedestal items in the room#Active item: Its effect activates, and will activate every future use of Void#↑ Passive item: Small stat upgrade to two random stats"},
|
||||
{"478", "Pause", "Freezes all enemies in the room until you start shooting again#Touching a frozen enemy will hurt you#Enemies unfreeze after 30 seconds"},
|
||||
{"479", "Smelter", "Consumes your trinket and gives you the effect permanently#More trinkets appear"},
|
||||
{"480", "Compost", "Converts pickups into blue flies or spiders#Doubles your current blue flies/spiders#Spawns 1 blue fly or spider when you don't have any"},
|
||||
@@ -870,6 +870,9 @@ EID.descriptions[languageCode].transformations={
|
||||
|
||||
---------- MISC ----------
|
||||
|
||||
EID.descriptions[languageCode].VoidText = "If absorbed, gain:"
|
||||
EID.descriptions[languageCode].VoidNames = {"Speed", "Tears", "Damage", "Range", "Shot Speed", "Luck"}
|
||||
|
||||
EID.descriptions[languageCode].MCM = {
|
||||
DemoObjectName = "Demo Object Name",
|
||||
DemoObjectTransformation = "Demo Transformation",
|
||||
|
||||
@@ -188,6 +188,7 @@ local repCollectibles={
|
||||
[472] = {"472", "King Baby", "Other familiars follow it and shoot automatically at enemies#Stops moving when you are shooting#Will teleport back to you when you stop shooting"}, -- King Baby
|
||||
[474] = {"474", "Broken Glass Cannon", "Turns into Glass Cannon when used"}, -- Broken Glass Cannon
|
||||
[476] = {"476", "D1", "Duplicates 1 random pickup in the current room#Duplicated pickups may not be identical to the original"}, -- D1
|
||||
[477] = {"477", "Void", "!!! When used, consumes all pedestal items in the room#Active item: Its effect will activate every future use of Void#↑ Passive item: Small stat upgrade to two random stats"},
|
||||
[489] = {"489", "D Infinity", "Acts as any die item except for {{Collectible723}}Spindown Dice#Change the current die with the drop key#Charge time varies based on the current die and updates when used"}, -- D Infinity
|
||||
[491] = {"491", "Acid Baby", "Drops a random pill every 7 rooms#Using a pill poisons all enemies in the room"}, -- Acid Baby
|
||||
[493] = {"493", "Adrenaline", "↑ Damage up for every empty Red Heart container#Follows a formula, some examples are:#+0.3 at 1#+0.92 at 2#+1.76 at 3#+2.79 at 4#+3.98 at 5"}, -- Adrenaline
|
||||
@@ -1011,6 +1012,9 @@ EID.descriptions[languageCode].GlitchedItemText = {
|
||||
|
||||
---------- Misc. Text ----------
|
||||
|
||||
-- Void stat names: Replace "Tears" with "Fire Rate"
|
||||
EID.descriptions[languageCode].VoidNames[2] = EID.descriptions[languageCode].GlitchedItemText[1]
|
||||
|
||||
EID.descriptions[languageCode].spindownError = "Item disappears"
|
||||
|
||||
EID.descriptions[languageCode].CraftingBagContent = "Bag:"
|
||||
@@ -1030,7 +1034,7 @@ EID.descriptions[languageCode].BlankCardCharge = "Blank Card charge:"
|
||||
EID.descriptions[languageCode].BlankCardQCard = "Teleport to I Am Error Room#Blank Card and ?-Card will be destroyed"
|
||||
EID.descriptions[languageCode].ClearRuneCharge = "Clear Rune charge:"
|
||||
EID.descriptions[languageCode].PlaceboCharge = "Placebo charge:"
|
||||
EID.descriptions[languageCode].FlipItemToggleInfo = "(Hold {{ButtonSelect}} to show description)"
|
||||
EID.descriptions[languageCode].FlipItemToggleInfo = "(Hold {{ButtonSelect}} (Map) to show description)"
|
||||
|
||||
|
||||
EID.descriptions[languageCode].FalsePHDHeart = "Spawns 1 Black Heart"
|
||||
|
||||
+10
-4
@@ -30,9 +30,9 @@ EID.UserConfig = {
|
||||
-- Change the size of the info boxes. Range: [0,...,1]
|
||||
-- Default = 1
|
||||
["Scale"] = 1,
|
||||
-- Press or hold the key to change scale.
|
||||
-- Default = Keyboard.KEY_F5
|
||||
["ScaleKey"] = Keyboard.KEY_F5,
|
||||
-- Press or hold the key to change scale. Keyboard.KEY_F5 is recommended
|
||||
-- Default = none
|
||||
["ScaleKey"] = -1,
|
||||
-- Set the background transparency. Range: [0,...,1]
|
||||
-- Default = 0.75
|
||||
["Transparency"] = 0.75,
|
||||
@@ -226,6 +226,11 @@ EID.UserConfig = {
|
||||
-- REPENTANCE ONLY!!!
|
||||
-- Default = true
|
||||
["DisplayCraneInfo"] = true,
|
||||
|
||||
---------- Void Stat Increases ----------
|
||||
-- Toggle display of what stats will increase on Void absorption
|
||||
-- Default = false
|
||||
["DisplayVoidStatInfo"] = false,
|
||||
|
||||
---------- Bag of Crafting ------------
|
||||
|
||||
@@ -347,7 +352,7 @@ EID.DefaultConfig = {
|
||||
["FontType"] = "default",
|
||||
["TextboxWidth"] = 130,
|
||||
["Scale"] = 1,
|
||||
["ScaleKey"] = Keyboard.KEY_F5,
|
||||
["ScaleKey"] = -1,
|
||||
["Transparency"] = 0.75,
|
||||
["HUDOffset"] = 10,
|
||||
["XPosition"] = 60,
|
||||
@@ -396,6 +401,7 @@ EID.DefaultConfig = {
|
||||
["DisplayDiceInfo"] = true,
|
||||
["DisplayBagOfCrafting"] = "always",
|
||||
["DisplayCraneInfo"] = true,
|
||||
["DisplayVoidStatInfo"] = false,
|
||||
["BagOfCraftingResults"] = 7,
|
||||
["BagOfCraftingCombinationMax"] = 12,
|
||||
["BagOfCraftingRandomResults"] = 400,
|
||||
|
||||
+113
-35
@@ -1,6 +1,107 @@
|
||||
if REPENTANCE then
|
||||
local game = Game()
|
||||
local game = Game()
|
||||
|
||||
-- Afterbirth+ modifiers
|
||||
local collectiblesToCheck = { CollectibleType.COLLECTIBLE_VOID, }
|
||||
-- Repentance modifiers
|
||||
if REPENTANCE then collectiblesToCheck = { CollectibleType.COLLECTIBLE_VOID,
|
||||
CollectibleType.COLLECTIBLE_BINGE_EATER, CollectibleType.COLLECTIBLE_BOOK_OF_VIRTUES, CollectibleType.COLLECTIBLE_SPINDOWN_DICE,
|
||||
CollectibleType.COLLECTIBLE_TAROT_CLOTH, CollectibleType.COLLECTIBLE_MOMS_BOX,
|
||||
CollectibleType.COLLECTIBLE_BLANK_CARD, CollectibleType.COLLECTIBLE_CLEAR_RUNE, CollectibleType.COLLECTIBLE_PLACEBO,
|
||||
CollectibleType.COLLECTIBLE_FALSE_PHD, CollectibleType.COLLECTIBLE_ABYSS, CollectibleType.COLLECTIBLE_FLIP,
|
||||
} end
|
||||
local collectiblesOwned = {}
|
||||
local blackRuneOwned = false
|
||||
local lastCheck = 0
|
||||
|
||||
local function CheckPlayersCollectibles()
|
||||
-- recheck the players' owned collectibles periodically, not every frame
|
||||
if EID.GameUpdateCount >= lastCheck + 15 then
|
||||
lastCheck = EID.GameUpdateCount
|
||||
local numPlayers = game:GetNumPlayers()
|
||||
local players = {}; for i = 0, numPlayers - 1 do players[i] = Isaac.GetPlayer(i) end
|
||||
for _,v in ipairs(collectiblesToCheck) do
|
||||
collectiblesOwned[v] = false
|
||||
for i = 0, numPlayers - 1 do
|
||||
if players[i]:HasCollectible(v) then
|
||||
collectiblesOwned[v] = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
blackRuneOwned = false
|
||||
for i = 0, numPlayers - 1 do
|
||||
for j = 0, 1 do
|
||||
if players[i]:GetCard(j) == Card.RUNE_BLACK then
|
||||
blackRuneOwned = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- Birthright Book of Belial
|
||||
-- Could this be changed to just checking for having Collectible 59? (Check interaction with Clicker etc)
|
||||
if REPENTANCE then
|
||||
collectiblesOwned[59] = false
|
||||
for i = 0, numPlayers - 1 do
|
||||
local playerType = players[i]:GetPlayerType()
|
||||
if (playerType == PlayerType.PLAYER_JUDAS or playerType == PlayerType.PLAYER_BLACKJUDAS) and players[i]:HasCollectible(CollectibleType.COLLECTIBLE_BIRTHRIGHT) then
|
||||
collectiblesOwned[59] = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Handle Void (the only modifier that is applied to AB+ at the moment)
|
||||
-- Speed, Tears, Damage, Range, Shot Speed, Luck
|
||||
local voidIntro = EID:getDescriptionEntry("VoidText")
|
||||
local voidNames = EID:getDescriptionEntry("VoidNames")
|
||||
local voidStatUps = { 0.2, 0.5, 1, 0.5, 0.2, 1 }
|
||||
if REPENTANCE then voidStatUps[4] = 1.5 end
|
||||
|
||||
local function VoidCallback(descObj)
|
||||
if EID.itemConfig:GetCollectible(descObj.ObjSubType).Type ~= 3 then
|
||||
EID:appendToDescription(descObj, "#{{Collectible477}} " .. voidIntro .. "#")
|
||||
for i,v in ipairs(EID.VoidStatIncreases) do
|
||||
if v > 0 then
|
||||
EID:appendToDescription(descObj, "{{Collectible477}} +" .. v*voidStatUps[i] .. " " .. voidNames[i] .. "#")
|
||||
end
|
||||
end
|
||||
end
|
||||
return descObj
|
||||
end
|
||||
local function BlackRuneCallback(descObj)
|
||||
EID:appendToDescription(descObj, "#{{Card41}} " .. voidIntro .. "#")
|
||||
for i,v in ipairs(EID.BlackRuneStatIncreases) do
|
||||
if v > 0 then
|
||||
EID:appendToDescription(descObj, "{{Card41}} +" .. v*voidStatUps[i] .. " " .. voidNames[i] .. "#")
|
||||
end
|
||||
end
|
||||
return descObj
|
||||
end
|
||||
|
||||
local function EIDConditionsAB(descObj)
|
||||
-- currently, only pickup descriptions have modifiers
|
||||
if descObj.ObjType ~= 5 then return false end
|
||||
|
||||
CheckPlayersCollectibles()
|
||||
|
||||
local callbacks = {}
|
||||
|
||||
-- Collectible Pedestal Callbacks
|
||||
if descObj.ObjVariant == PickupVariant.PICKUP_COLLECTIBLE then
|
||||
if EID.Config["DisplayVoidStatInfo"] then
|
||||
if collectiblesOwned[477] then table.insert(callbacks, VoidCallback) end
|
||||
if blackRuneOwned then table.insert(callbacks, BlackRuneCallback) end
|
||||
end
|
||||
end
|
||||
|
||||
return callbacks
|
||||
end
|
||||
EID:addDescriptionModifier("EID Afterbirth+", EIDConditionsAB, nil)
|
||||
|
||||
|
||||
if REPENTANCE then
|
||||
-- Handle Birthright
|
||||
local function BirthrightCallback(descObj)
|
||||
descObj.Description = ""
|
||||
@@ -50,6 +151,7 @@ if REPENTANCE then
|
||||
return descObj
|
||||
end
|
||||
|
||||
local inSpindownPreview = false
|
||||
-- Handle Spindown Dice description addition
|
||||
local function SpindownDiceCallback(descObj)
|
||||
EID:appendToDescription(descObj, "#{{Collectible723}} :")
|
||||
@@ -63,6 +165,12 @@ if REPENTANCE then
|
||||
end
|
||||
refID = spinnedID
|
||||
if refID > 0 and refID < 4294960000 then
|
||||
if i == 1 and Input.IsActionPressed(ButtonAction.ACTION_MAP, EID.player.ControllerIndex) then
|
||||
inSpindownPreview = true
|
||||
local descEntry = EID:getDescriptionObj(5, 100, refID)
|
||||
inSpindownPreview = false
|
||||
return descEntry
|
||||
end
|
||||
EID:appendToDescription(descObj, "{{Collectible"..refID.."}}")
|
||||
if EID.itemUnlockStates[refID] == false then EID:appendToDescription(descObj, "?") end
|
||||
if i ~= EID.Config["SpindownDiceResults"] then
|
||||
@@ -77,6 +185,7 @@ if REPENTANCE then
|
||||
if hasCarBattery then
|
||||
EID:appendToDescription(descObj, " (Results with {{Collectible356}})")
|
||||
end
|
||||
EID:appendToDescription(descObj, "#{{Blank}} ".. EID:getDescriptionEntry("FlipItemToggleInfo"))
|
||||
return descObj
|
||||
end
|
||||
|
||||
@@ -267,42 +376,11 @@ if REPENTANCE then
|
||||
-- This one-condition setup fixes that and can only help performance
|
||||
-- It also allows us to pick the order that modifiers are appended to descriptions (stats/effects first, then reroll/flip/recharge info)
|
||||
|
||||
local collectiblesToCheck = { CollectibleType.COLLECTIBLE_BINGE_EATER, CollectibleType.COLLECTIBLE_BOOK_OF_VIRTUES,
|
||||
CollectibleType.COLLECTIBLE_SPINDOWN_DICE, CollectibleType.COLLECTIBLE_VOID,
|
||||
CollectibleType.COLLECTIBLE_TAROT_CLOTH, CollectibleType.COLLECTIBLE_MOMS_BOX,
|
||||
CollectibleType.COLLECTIBLE_BLANK_CARD, CollectibleType.COLLECTIBLE_CLEAR_RUNE, CollectibleType.COLLECTIBLE_PLACEBO,
|
||||
CollectibleType.COLLECTIBLE_FALSE_PHD, CollectibleType.COLLECTIBLE_ABYSS, CollectibleType.COLLECTIBLE_FLIP,
|
||||
}
|
||||
local collectiblesOwned = {}
|
||||
|
||||
local function EIDConditions(descObj)
|
||||
-- currently, only pickup descriptions have modifiers
|
||||
if descObj.ObjType ~= 5 then return false end
|
||||
|
||||
-- recheck the players' owned collectibles periodically, not every frame
|
||||
if game:GetFrameCount() % 10 == 0 then
|
||||
local numPlayers = game:GetNumPlayers()
|
||||
local players = {}; for i = 0, numPlayers - 1 do players[i] = Isaac.GetPlayer(i) end
|
||||
for _,v in ipairs(collectiblesToCheck) do
|
||||
collectiblesOwned[v] = false
|
||||
for i = 0, numPlayers - 1 do
|
||||
if players[i]:HasCollectible(v) then
|
||||
collectiblesOwned[v] = true
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
-- Birthright Book of Belial
|
||||
collectiblesOwned[59] = false
|
||||
for i = 0, numPlayers - 1 do
|
||||
local playerType = players[i]:GetPlayerType()
|
||||
if (playerType == PlayerType.PLAYER_JUDAS or playerType == PlayerType.PLAYER_BLACKJUDAS) and players[i]:HasCollectible(CollectibleType.COLLECTIBLE_BIRTHRIGHT) then
|
||||
collectiblesOwned[59] = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
CheckPlayersCollectibles()
|
||||
|
||||
local callbacks = {}
|
||||
|
||||
@@ -317,7 +395,7 @@ if REPENTANCE then
|
||||
if collectiblesOwned[584] then table.insert(callbacks, BookOfVirtuesCallback) end
|
||||
if collectiblesOwned[706] then table.insert(callbacks, AbyssCallback) end
|
||||
|
||||
if collectiblesOwned[723] or (EID.absorbedSpindown and collectiblesOwned[477]) then table.insert(callbacks, SpindownDiceCallback) end
|
||||
if (collectiblesOwned[723] or (EID.absorbedSpindown and collectiblesOwned[477])) and not inSpindownPreview then table.insert(callbacks, SpindownDiceCallback) end
|
||||
if collectiblesOwned[711] and EID:getEntityData(descObj.Entity, "EID_FlipItemID") then table.insert(callbacks, FlipCallback) end
|
||||
-- Card / Rune Callbacks
|
||||
elseif descObj.ObjVariant == PickupVariant.PICKUP_TAROTCARD then
|
||||
|
||||
+2
-2
@@ -127,10 +127,10 @@ local function CheckLogForItems(_)
|
||||
numEffects = numEffects - 1
|
||||
eidDesc = eidDesc .. parseEffectLine(line)
|
||||
if numEffects == 0 then
|
||||
-- Glowing Hour Glass type effects seem to cause the game to reload all items, check if our desc is equal to the first one
|
||||
eidDesc = EID:CheckGlitchedItemConfig(maxNumber - spawnedItems) .. eidDesc
|
||||
-- Glowing Hour Glass type effects cause the game to reload all items, check if our desc is equal to the first one
|
||||
if (descOne == eidDesc) then spawnedItems = 1 end
|
||||
|
||||
eidDesc = EID:CheckGlitchedItemConfig(maxNumber - spawnedItems) .. eidDesc
|
||||
EID:addCollectible(maxNumber - spawnedItems, eidDesc)
|
||||
if spawnedItems == 1 then descOne = eidDesc end
|
||||
end
|
||||
|
||||
@@ -628,16 +628,7 @@ end
|
||||
local isMirrorRoom = false
|
||||
local isDeathCertRoom = false
|
||||
if REPENTANCE then
|
||||
function EID:onNewRoom()
|
||||
isMirrorRoom = game:GetLevel():GetCurrentRoom():IsMirrorWorld()
|
||||
|
||||
local level = game:GetLevel()
|
||||
local id = level:GetCurrentRoomIndex()
|
||||
isDeathCertRoom = (id >=0 and GetPtrHash(level:GetRoomByIdx(id)) == GetPtrHash(level:GetRoomByIdx(id, 2)))
|
||||
|
||||
-- Handle Flip Item
|
||||
initialItemNext = false
|
||||
flipItemNext = false
|
||||
function EID:AssignFlipItems()
|
||||
EID.flipMaxIndex = -1
|
||||
local curRoomIndex = game:GetLevel():GetCurrentRoomIndex()
|
||||
if EID.flipItemPositions[curRoomIndex] then
|
||||
@@ -651,6 +642,18 @@ if REPENTANCE then
|
||||
end
|
||||
end
|
||||
end
|
||||
function EID:onNewRoom()
|
||||
isMirrorRoom = game:GetLevel():GetCurrentRoom():IsMirrorWorld()
|
||||
|
||||
local level = game:GetLevel()
|
||||
local id = level:GetCurrentRoomIndex()
|
||||
isDeathCertRoom = (id >=0 and GetPtrHash(level:GetRoomByIdx(id)) == GetPtrHash(level:GetRoomByIdx(id, 2)))
|
||||
|
||||
-- Handle Flip Item
|
||||
initialItemNext = false
|
||||
flipItemNext = false
|
||||
EID:AssignFlipItems()
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_POST_NEW_ROOM, EID.onNewRoom)
|
||||
end
|
||||
---------------------------------------------------------------------------
|
||||
@@ -815,14 +818,47 @@ end
|
||||
-- Runs 30 times a second; doesn't update while paused
|
||||
|
||||
local collSpawned = false
|
||||
|
||||
EID.VoidStatIncreases = {}
|
||||
EID.BlackRuneStatIncreases = {}
|
||||
local function VoidRNGNext(num)
|
||||
num = num ~ ((num >> 5) & 4294967295)
|
||||
num = num ~ ((num << 9) & 4294967295)
|
||||
num = num ~ ((num >> 7) & 4294967295)
|
||||
return num >> 0;
|
||||
end
|
||||
local function GetTwoIncreases(rng, tbl)
|
||||
local statTable = {1,2,3,4,5,6}
|
||||
-- perform 5 random swaps of our stat table
|
||||
for i = 6, 2, -1 do
|
||||
rng = VoidRNGNext(rng)
|
||||
local result = (rng % i) + 1
|
||||
local temp = statTable[i]
|
||||
statTable[i] = statTable[result]
|
||||
statTable[result] = temp
|
||||
end
|
||||
-- the first two entries in the stat table get increased
|
||||
tbl[statTable[1]] = tbl[statTable[1]] + 1
|
||||
tbl[statTable[2]] = tbl[statTable[2]] + 1
|
||||
return rng
|
||||
end
|
||||
|
||||
function EID:onGameUpdate()
|
||||
EID.GameUpdateCount = EID.GameUpdateCount + 1
|
||||
|
||||
-- Fix Overlapping Pedestals if a collectible spawned this frame (needed for Mega Chest)
|
||||
if collSpawned then
|
||||
collSpawned = false
|
||||
local numVoidable = 0
|
||||
local numBlackRunable = 0
|
||||
-- THIS INCLUDES UNPURCHASED SHOP ITEMS??? and both choice items also, which is OK for AB+ but not for Rep!
|
||||
local curPositions = {}
|
||||
for _, entity in ipairs(Isaac.FindByType(5, 100, -1, true, false)) do
|
||||
if entity.SubType > 0 then
|
||||
numBlackRunable = numBlackRunable + 1
|
||||
if EID.itemConfig:GetCollectible(entity.SubType).Type ~= 3 then numVoidable = numVoidable + 1 end
|
||||
end
|
||||
|
||||
-- Fix Overlapping Pedestals if a collectible spawned this frame (needed for Mega Chest)
|
||||
local pos = entity.Position
|
||||
for _, otherPos in ipairs(curPositions) do
|
||||
if pos:Distance(otherPos[2]) == 0 then
|
||||
@@ -832,6 +868,26 @@ function EID:onGameUpdate()
|
||||
end
|
||||
table.insert(curPositions, {entity, entity.Position})
|
||||
end
|
||||
|
||||
-- Recalculate our total Void stat-ups if a collectible spawned this frame
|
||||
-- THIS COULD APPLY TO BLACK RUNE AS WELL
|
||||
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_VOID) then
|
||||
local curRoomIndex = game:GetLevel():GetCurrentRoomIndex()
|
||||
local increases = {0, 0, 0, 0, 0, 0}
|
||||
local runeIncreases = {0, 0, 0, 0, 0, 0}
|
||||
--CHANGE THIS TO THE PLAYER THAT HAS VOID
|
||||
local startRNG = Isaac.GetPlayer(0):GetCollectibleRNG(CollectibleType.COLLECTIBLE_VOID):GetSeed()
|
||||
local runeRNG = Isaac.GetPlayer(0):GetCardRNG(Card.RUNE_BLACK):GetSeed()
|
||||
-- in Repentance, an additional RNG call is done before the 5 for stat ups
|
||||
if REPENTANCE then startRNG = VoidRNGNext(startRNG) end
|
||||
for pedestals = 1, 1 do
|
||||
startRNG = GetTwoIncreases(startRNG, increases)
|
||||
runeRNG = GetTwoIncreases(runeRNG, runeIncreases)
|
||||
break -- only doing 1 preview for now
|
||||
end
|
||||
EID.VoidStatIncreases = increases
|
||||
EID.BlackRuneStatIncreases = runeIncreases
|
||||
end
|
||||
end
|
||||
|
||||
-- Remove Crane Game item data if it's giving the prize out
|
||||
@@ -862,7 +918,8 @@ local function attemptPathfind(entity)
|
||||
pathsChecked[entity.InitSeed] = true
|
||||
return true
|
||||
end
|
||||
if EID.GameUpdateCount - lastPathfindFrame < 10 then return false end
|
||||
-- Don't reattempt pathfinding more than 3 times a second, unless this is a new entity
|
||||
if pathsChecked[entity.InitSeed] == false and EID.GameUpdateCount - lastPathfindFrame < 10 then return false end
|
||||
|
||||
-- Spawn a custom NPC entity to attempt a pathfind to the target pickup, then remove it afterwards
|
||||
pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354)
|
||||
@@ -1234,6 +1291,7 @@ if EID.MCMLoaded or REPENTANCE then
|
||||
for k, _ in pairs(configIgnoreList) do
|
||||
savedEIDConfig[k] = nil
|
||||
end
|
||||
EID:AssignFlipItems()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
+30
-219
@@ -115,27 +115,28 @@ function EID:buildColorArray()
|
||||
table.sort(colorNameArray)
|
||||
end
|
||||
|
||||
function EID:AddBooleanSetting(category, optionName, displayText, onText, offText, infoText)
|
||||
if (type(infoText) == "string") then infoText = {infoText} end
|
||||
function EID:AddBooleanSetting(category, optionName, displayText, params)
|
||||
if type(params) ~= "table" then params = {} end
|
||||
if params.repOnly and not REPENTANCE then return end
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
category,
|
||||
"EID", category,
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
CurrentSetting = params.currentSettingFunc or function()
|
||||
return EID.Config[optionName]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = offText
|
||||
Display = params.displayFunc or function()
|
||||
if params.displayingTab then EID.MCMCompat_isDisplayingEIDTab = params.displayingTab end
|
||||
local onOff = params.offText or "False"
|
||||
if EID.Config[optionName] then
|
||||
onOff = onText
|
||||
onOff = params.onText or "True"
|
||||
end
|
||||
return displayText .. ": " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
OnChange = params.onChangeFunc or function(currentBool)
|
||||
EID.Config[optionName] = currentBool
|
||||
end,
|
||||
Info = infoText
|
||||
Info = params.infoText or {}
|
||||
}
|
||||
)
|
||||
end
|
||||
@@ -579,190 +580,21 @@ if MCMLoaded then
|
||||
|
||||
---------------------------------------------------------------------------
|
||||
---------------------------------Display-----------------------------------
|
||||
|
||||
------------Collectibles--------------
|
||||
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplayItemInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
EID.MCMCompat_isDisplayingEIDTab = "";
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplayItemInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Collectible Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplayItemInfo"] = currentBool
|
||||
end
|
||||
}
|
||||
)
|
||||
------------Trinkets--------------
|
||||
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplayTrinketInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplayTrinketInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Trinket Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplayTrinketInfo"] = currentBool
|
||||
end
|
||||
}
|
||||
)
|
||||
------------CARDS--------------
|
||||
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplayCardInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplayCardInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Card Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplayCardInfo"] = currentBool
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
------------PILLS--------------
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplayPillInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplayPillInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Pill Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplayPillInfo"] = currentBool
|
||||
end
|
||||
}
|
||||
)
|
||||
if REPENTANCE then
|
||||
------------Glitched Items--------------
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplayGlitchedItemInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplayGlitchedItemInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Glitched Item Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplayGlitchedItemInfo"] = currentBool
|
||||
end,
|
||||
Info = {"Note: The --luadebug launch option is required for more detailed glitched item descriptions"}
|
||||
}
|
||||
)
|
||||
end
|
||||
--------Sacrifice Room---------
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplaySacrificeInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplaySacrificeInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Sacrifice Room Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplaySacrificeInfo"] = currentBool
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
--------Dice Room---------
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplayDiceInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplayDiceInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Dice Room Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplayDiceInfo"] = currentBool
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
-- Simple toggles of what descriptions the user wants displayed
|
||||
EID:AddBooleanSetting("Display", "DisplayItemInfo", "Collectible Infos", {displayingTab = ""})
|
||||
EID:AddBooleanSetting("Display", "DisplayTrinketInfo", "Trinket Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayCardInfo", "Card Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayPillInfo", "Pill Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayGlitchedItemInfo", "Glitched Item Infos", {repOnly = true,
|
||||
infoText = "Note: The --luadebug launch option is required for more detailed glitched item descriptions; this can be dangerous!"})
|
||||
EID:AddBooleanSetting("Display", "DisplaySacrificeInfo", "Sacrifice Room Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayDiceInfo", "Dice Room Infos")
|
||||
EID:AddBooleanSetting("Display", "DisplayCraneInfo", "Crane Game Infos", {repOnly = true})
|
||||
EID:AddBooleanSetting("Display", "DisplayVoidStatInfo", "Void Stat Increase Infos")
|
||||
|
||||
local diceSteps = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
|
||||
if REPENTANCE then
|
||||
|
||||
--------Crane Game---------
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["DisplayCraneInfo"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["DisplayCraneInfo"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Crane Game Infos: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["DisplayCraneInfo"] = currentBool
|
||||
end
|
||||
}
|
||||
)
|
||||
|
||||
MCM.AddSpace("EID", "Display")
|
||||
|
||||
@@ -788,27 +620,8 @@ if MCMLoaded then
|
||||
--
|
||||
|
||||
-- Spindown Dice skip locked items
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Display",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.BOOLEAN,
|
||||
CurrentSetting = function()
|
||||
return EID.Config["SpindownDiceSkipLocked"]
|
||||
end,
|
||||
Display = function()
|
||||
local onOff = "False"
|
||||
if EID.Config["SpindownDiceSkipLocked"] then
|
||||
onOff = "True"
|
||||
end
|
||||
return "Skip Locked Items: " .. onOff
|
||||
end,
|
||||
OnChange = function(currentBool)
|
||||
EID.Config["SpindownDiceSkipLocked"] = currentBool
|
||||
end,
|
||||
Info = {"Skip locked items in the preview just as the dice will; the method to check for unlock status is not perfect, though"}
|
||||
}
|
||||
)
|
||||
EID:AddBooleanSetting("Display", "SpindownDiceSkipLocked", "Skip Locked Items",
|
||||
{repOnly = true, infoText = "Skip locked items in the preview just as the dice will; the method to check for unlock status is not perfect, though"})
|
||||
end
|
||||
|
||||
--------Obstruction---------
|
||||
@@ -1369,15 +1182,13 @@ if MCMLoaded then
|
||||
}
|
||||
)
|
||||
-- Bag of Crafting Hide in Battle
|
||||
EID:AddBooleanSetting("Crafting",
|
||||
"BagOfCraftingHideInBattle",
|
||||
"Hide in Battle", "Yes", "No",
|
||||
"Hides the recipe list when in a fight")
|
||||
EID:AddBooleanSetting("Crafting", "BagOfCraftingHideInBattle", "Hide in Battle",
|
||||
{onText = "Yes", offText = "No",
|
||||
infoText = "Hides the recipe list when in a fight"})
|
||||
-- Bag of Crafting 8 icons toggle
|
||||
EID:AddBooleanSetting("Crafting",
|
||||
"BagOfCraftingDisplayIcons",
|
||||
"Show Recipes/Best Bag as", "8 Icons", "Groups",
|
||||
"Choose if you want recipes (and the Best Quality bag in No Recipes Mode) shown as 8 icons, or as grouped ingredients")
|
||||
EID:AddBooleanSetting("Crafting", "BagOfCraftingDisplayIcons", "Show Recipes/Best Bag as",
|
||||
{onText = "8 Icons", offText = "Groups",
|
||||
infoText = "Choose if you want recipes (and the Best Quality bag in No Recipes Mode) shown as 8 icons, or as grouped ingredients"})
|
||||
|
||||
MCM.AddSpace("EID", "Crafting")
|
||||
MCM.AddText("EID", "Crafting", function() return "Recipe List Options" end)
|
||||
|
||||
Reference in new issue
Block a user