Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c9fbf5d587 | ||
|
|
da9338ef54 | ||
|
|
51d0ef2e1b | ||
|
|
99bd3c7379 | ||
|
|
9102104be8 | ||
|
|
33121b3d84 | ||
|
|
c62d814da4 | ||
|
|
55b38e2c74 | ||
|
|
61b5aaa3c7 | ||
|
|
5894fc8232 |
No files matched your search
@@ -1088,6 +1088,11 @@ EID.descriptions[languageCode].poopSpells = {
|
||||
{"Explosive Diarrhea", "Isaac quickly spawns 5 lit bombs"},
|
||||
}
|
||||
|
||||
EID.descriptions[languageCode].itemPoolFor = "Pool for Item:"
|
||||
EID.descriptions[languageCode].itemPoolNames = {
|
||||
[0] = "Treasure", "Shop", "Boss", "Devil", "Angel", "Secret", "Library", "Shell Game", "Golden Chest", "Red Chest", "Beggar", "Demon Beggar", "Curse", "Key Master", "Battery Bum", "Mom's Chest", "Greed Treasure", "Greed Boss", "Greed Shop", "Greed Devil", "Greed Angel", "Greed Curse", "Greed Secret", "Crane Game", "Ultra Secret", "Bomb Bum", "Planetarium", "Old Chest", "Baby Shop", "Wooden Chest", "Rotten Beggar",
|
||||
}
|
||||
|
||||
EID.descriptions[languageCode].VoidShopText = "If absorbed right after pickup, gain:"
|
||||
EID.descriptions[languageCode].VoidOptionText = " will be absorbed instead"
|
||||
EID.descriptions[languageCode].VoidNames[2] = "{1} Fire Rate up"
|
||||
|
||||
@@ -1163,6 +1163,11 @@ EID.descriptions[languageCode].poopSpells = {
|
||||
{"폭탄 설사", "캐릭터의 위치에 점화된 폭탄 5개를 생성합니다."},
|
||||
}
|
||||
|
||||
EID.descriptions[languageCode].itemPoolFor = "획득 시 배열:"
|
||||
EID.descriptions[languageCode].itemPoolNames = {
|
||||
[0] = "보물방", "상점", "보스방", "악마방", "천사방", "비밀방", "책방", "야바위꾼", "황금상자", "빨간상자", "거지", "악마거지", "저주방", "열쇠거지", "배터리거지", "엄마상자", "그리드-보물방", "그리드-보스방", "그리드-상점", "그리드-악마방", "그리드-천사방", "그리드-저주방", "그리드-비밀방", "크레인 게임", "특급비밀방", "폭탄거지", "천체관", "낡은상자", "패밀리어 상점", "나무상자", "썩은거지",
|
||||
}
|
||||
|
||||
EID.descriptions[languageCode].VoidShopText = "아이템을 드는 도중 흡수 시 이하 능력치 증가:"
|
||||
EID.descriptions[languageCode].VoidOptionText = " 아이템이 대신 흡수됨"
|
||||
EID.descriptions[languageCode].VoidNames[2] = "연사(상한) {1}"
|
||||
|
||||
+24
-8
@@ -1714,6 +1714,7 @@ function EID:evaluateTransformationProgress(transformation)
|
||||
local eType, eVariant, eSubType = entityString:match("([^.]+).([^.]+).([^.]+)")
|
||||
if tonumber(eType) == EntityType.ENTITY_PICKUP then
|
||||
if tonumber(eVariant) == PickupVariant.PICKUP_COLLECTIBLE then
|
||||
local currentCount = EID.TransformationProgress[i][transformation]
|
||||
if activesTable[tostring(eSubType)] then
|
||||
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + activesTable[tostring(eSubType)]
|
||||
else
|
||||
@@ -1728,6 +1729,10 @@ function EID:evaluateTransformationProgress(transformation)
|
||||
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] - 1
|
||||
end
|
||||
end
|
||||
-- In AB+, only one copy of a given collectible is counted for trans
|
||||
if not EID.isRepentance and EID.TransformationProgress[i][transformation] > currentCount + 1 then
|
||||
EID.TransformationProgress[i][transformation] = currentCount + 1
|
||||
end
|
||||
elseif tonumber(eVariant) == PickupVariant.PICKUP_TRINKET and player:HasTrinket(eSubType) then
|
||||
EID.TransformationProgress[i][transformation] = EID.TransformationProgress[i][transformation] + player:GetTrinketMultiplier(eSubType)
|
||||
elseif tonumber(eVariant) == PickupVariant.PICKUP_PILL then
|
||||
@@ -1787,14 +1792,14 @@ function EID:evaluateQueuedItems()
|
||||
|
||||
if not player.QueuedItem.Touched and player.QueuedItem.Item then
|
||||
EID.PlayerItemInteractions[i].LastTouch = game:GetFrameCount()
|
||||
|
||||
local itemIDStr = tostring(player.QueuedItem.Item.ID)
|
||||
-- Add touched active items to our transformation progress table
|
||||
if player.QueuedItem.Item.Type == ItemType.ITEM_ACTIVE then
|
||||
local itemID = tostring(player.QueuedItem.Item.ID)
|
||||
-- A new active item was touched; initiate its touch count to 0 for all players
|
||||
-- (Fixes co-op bugs, compared to only initiating it for the toucher)
|
||||
for j = 0, game:GetNumPlayers() - 1 do
|
||||
EID.PlayerItemInteractions[j].actives[itemID] = EID.PlayerItemInteractions[j].actives[itemID] or 0
|
||||
EID.PlayerItemInteractions[j].altActives[itemID] = EID.PlayerItemInteractions[j].altActives[itemID] or 0
|
||||
EID.PlayerItemInteractions[j].actives[itemIDStr] = EID.PlayerItemInteractions[j].actives[itemIDStr] or 0
|
||||
EID.PlayerItemInteractions[j].altActives[itemIDStr] = EID.PlayerItemInteractions[j].altActives[itemIDStr] or 0
|
||||
end
|
||||
|
||||
-- Dead Tainted Lazarus exceptions
|
||||
@@ -1803,8 +1808,12 @@ function EID:evaluateQueuedItems()
|
||||
activesTable = EID.PlayerItemInteractions[i].altActives or activesTable
|
||||
end
|
||||
EID.ForceRefreshCache = true
|
||||
activesTable[itemID] = activesTable[itemID] + 1
|
||||
activesTable[itemIDStr] = activesTable[itemIDStr] + 1
|
||||
elseif player.QueuedItem.Item.Type ~= ItemType.ITEM_TRINKET then
|
||||
-- In AB+, Halo of Flies is counted as an active item due to inaccuracy with GetCollectibleNum
|
||||
if (not EID.isRepentance and itemIDStr == "10") then
|
||||
EID.PlayerItemInteractions[i].actives[itemIDStr] = EID.PlayerItemInteractions[i].actives[itemIDStr] + 1
|
||||
end
|
||||
-- Put non-active item pickups into the recent item list, for printing in the Item Reminder
|
||||
table.insert(EID.RecentlyTouchedItems[i], player.QueuedItem.Item.ID)
|
||||
if (#EID.RecentlyTouchedItems[i] > 8) then table.remove(EID.RecentlyTouchedItems[i], 1) end
|
||||
@@ -1819,6 +1828,10 @@ function EID:InitItemInteractionIfAbsent(playerID)
|
||||
if not EID.PlayerItemInteractions[playerID] then
|
||||
EID.PlayerItemInteractions[playerID] = { LastTouch = 0, actives = {}, altActives = {},
|
||||
pickupHistory = {}, altPickupHistory = {}, rerollItems = {} }
|
||||
-- in AB+, initiate Halo of Flies as an active item (collectible ID 10 is used for ALL Pretty Flies)
|
||||
if not EID.isRepentance then
|
||||
EID.PlayerItemInteractions[playerID].actives["10"] = 0
|
||||
end
|
||||
end
|
||||
EID.RecentlyTouchedItems[playerID] = EID.RecentlyTouchedItems[playerID] or {}
|
||||
end
|
||||
@@ -1867,8 +1880,11 @@ end
|
||||
|
||||
-- Add pickup usage to history of pickups used by the player
|
||||
function EID:AddPickupToHistory(pickupType, effectID, player, useFlags, pillColorID)
|
||||
-- don't add mimiced or noannouncer cards/pills to history
|
||||
if EID.isRepentance and (useFlags & UseFlag.USE_MIMIC == UseFlag.USE_MIMIC or useFlags & UseFlag.USE_NOANNOUNCER == UseFlag.USE_NOANNOUNCER) then return end
|
||||
-- don't add mimiced or noannouncer cards/pills to Echo Chamber history
|
||||
local allowEchoChamber = true
|
||||
if EID.isRepentance and (useFlags & UseFlag.USE_MIMIC == UseFlag.USE_MIMIC or useFlags & UseFlag.USE_NOANNOUNCER == UseFlag.USE_NOANNOUNCER) then
|
||||
allowEchoChamber = false
|
||||
end
|
||||
local playerID = EID:getPlayerID(player)
|
||||
EID:InitItemInteractionIfAbsent(playerID)
|
||||
|
||||
@@ -1879,7 +1895,7 @@ function EID:AddPickupToHistory(pickupType, effectID, player, useFlags, pillColo
|
||||
end
|
||||
|
||||
-- pickupType = ["pill","card"], pillColorID, effectID, hadEchoChamberWhenUsed
|
||||
table.insert(historyTable, 1, {pickupType, pillColorID, effectID, EID.isRepentance and player:HasCollectible(700)})
|
||||
table.insert(historyTable, 1, {pickupType, pillColorID, effectID, EID.isRepentance and player:HasCollectible(700) and allowEchoChamber})
|
||||
end
|
||||
|
||||
-- Render a sprite of an entity
|
||||
|
||||
@@ -530,6 +530,9 @@ local function GameStartCrafting()
|
||||
-- Check for modded items past the known max item ID on game start (can also support game updates)
|
||||
-- Only works if the new items are at Weight 1.0 in their item pools, but better than nothing
|
||||
if EID.Config["BagOfCraftingModdedRecipes"] and EID.itemConfig:GetCollectible(EID.XMLMaxItemID+1) ~= nil and not moddedCrafting then
|
||||
-- Save last pool
|
||||
local itemPool = game:GetItemPool()
|
||||
local lastPool = itemPool:GetLastPool()
|
||||
-- Items past max ID detected
|
||||
CraftingMaxItemID = EID.XMLMaxItemID -- XMLMaxItemID is never modified
|
||||
-- Add new item qualities
|
||||
@@ -540,7 +543,6 @@ local function GameStartCrafting()
|
||||
CraftingItemAllowed[coll.ID] = true
|
||||
coll = EID.itemConfig:GetCollectible(CraftingMaxItemID+1)
|
||||
end
|
||||
local itemPool = game:GetItemPool()
|
||||
-- Add new items to the crafting item pools, assuming Weight 1.0
|
||||
for poolNum,_ in pairs(poolToIcon) do
|
||||
for i=1,EID.XMLMaxItemID do itemPool:AddRoomBlacklist(i) end
|
||||
@@ -553,6 +555,9 @@ local function GameStartCrafting()
|
||||
itemPool:AddRoomBlacklist(collID)
|
||||
collID = itemPool:GetCollectible(poolNum, false, 1, 25)
|
||||
end
|
||||
|
||||
-- Do getCollectible again to revert last pool
|
||||
itemPool:GetCollectible(lastPool, false, 1, 25)
|
||||
|
||||
itemPool:ResetRoomBlacklist()
|
||||
end
|
||||
|
||||
@@ -186,6 +186,17 @@ EID.UserConfig = {
|
||||
-- REPENTANCE ONLY!!!
|
||||
-- Default = true
|
||||
["ShowQuality"] = true,
|
||||
-- Enables or disables collectible's item pool when collected after item name
|
||||
-- REPENTANCE ONLY!!!
|
||||
-- Default = false
|
||||
["ShowItemPoolIcon"] = false,
|
||||
-- Enables or disables collectible's item pool name when collected below item name
|
||||
-- REPENTANCE ONLY!!!
|
||||
-- Default = false
|
||||
["ShowItemPoolText"] = false,
|
||||
-- Set the item pool for collectible text color
|
||||
-- Default = "ColorSilver"
|
||||
["ItemPoolTextColor"] = "ColorSilver",
|
||||
-- Set the mod indicator display
|
||||
-- Default = "Both"
|
||||
["ModIndicatorDisplay"] = "None",
|
||||
@@ -514,6 +525,9 @@ EID.DefaultConfig = {
|
||||
["DisplayTrinketInfo"] = true,
|
||||
["ItemNameColor"] = "ColorEIDObjName",
|
||||
["ShowQuality"] = true,
|
||||
["ShowItemPoolIcon"] = false,
|
||||
["ShowItemPoolText"] = false,
|
||||
["ItemPoolTextColor"] = "ColorSilver",
|
||||
["ModIndicatorDisplay"] = "None",
|
||||
["ModIndicatorTextColor"] = "ColorLightOrange",
|
||||
["ShowObjectID"] = false,
|
||||
|
||||
@@ -571,6 +571,39 @@ EID.InlineIcons = {
|
||||
["SatanSmall"] = {"Boss", 18, 12, 9, 0, 1},
|
||||
["HushSmall"] = {"Boss", 19, 11, 9, 0, 1},
|
||||
|
||||
-- ItemPoolTypes
|
||||
["ItemPoolTreasure"] = {"ItemPools", 0, 11, 11, 0, 0},
|
||||
["ItemPoolShop"] = {"ItemPools", 1, 11, 11, 0, 0},
|
||||
["ItemPoolBoss"] = {"ItemPools", 2, 11, 11, 0, 0},
|
||||
["ItemPoolDevil"] = {"ItemPools", 3, 11, 11, 0, 0},
|
||||
["ItemPoolAngel"] = {"ItemPools", 4, 11, 11, 0, 0},
|
||||
["ItemPoolSecret"] = {"ItemPools", 5, 11, 11, 0, 0},
|
||||
["ItemPoolLibrary"] = {"ItemPools", 6, 11, 11, 0, 0},
|
||||
["ItemPoolShellGame"] = {"ItemPools", 7, 11, 11, 0, 0},
|
||||
["ItemPoolGoldenChest"] = {"ItemPools", 8, 11, 11, 0, 0},
|
||||
["ItemPoolRedChest"] = {"ItemPools", 9, 11, 11, 0, 0},
|
||||
["ItemPoolBeggar"] = {"ItemPools", 10, 11, 11, 0, 0},
|
||||
["ItemPoolDemonBeggar"] = {"ItemPools", 11, 11, 11, 0, 0},
|
||||
["ItemPoolCurse"] = {"ItemPools", 12, 11, 11, 0, 0},
|
||||
["ItemPoolKeyMaster"] = {"ItemPools", 13, 11, 11, 0, 0},
|
||||
["ItemPoolBombBum"] = {"ItemPools", 14, 11, 11, 0, 0},
|
||||
["ItemPoolMomsChest"] = {"ItemPools", 15, 11, 11, 0, 0},
|
||||
["ItemPoolGreedTreasure"] = {"ItemPools", 16, 11, 11, 0, 0},
|
||||
["ItemPoolGreedShop"] = {"ItemPools", 17, 11, 11, 0, 0},
|
||||
["ItemPoolGreedBoss"] = {"ItemPools", 18, 11, 11, 0, 0},
|
||||
["ItemPoolGreedDevil"] = {"ItemPools", 19, 11, 11, 0, 0},
|
||||
["ItemPoolGreedAngel"] = {"ItemPools", 20, 11, 11, 0, 0},
|
||||
["ItemPoolGreedCurse"] = {"ItemPools", 21, 11, 11, 0, 0},
|
||||
["ItemPoolGreedSecret"] = {"ItemPools", 22, 11, 11, 0, 0},
|
||||
["ItemPoolCraneGame"] = {"ItemPools", 23, 11, 11, 0, 0},
|
||||
["ItemPoolUltraSecret"] = {"ItemPools", 24, 11, 11, 0, 0},
|
||||
["ItemPoolBatteryBum"] = {"ItemPools", 25, 11, 11, 0, 0},
|
||||
["ItemPoolPlanetarium"] = {"ItemPools", 26, 11, 11, 0, 0},
|
||||
["ItemPoolOldChest"] = {"ItemPools", 27, 11, 11, 0, 0},
|
||||
["ItemPoolBabyShop"] = {"ItemPools", 28, 11, 11, 0, 0},
|
||||
["ItemPoolWoodenChest"] = {"ItemPools", 29, 11, 11, 0, 0},
|
||||
["ItemPoolRottenBeggar"] = {"ItemPools", 30, 11, 11, 0, 0},
|
||||
|
||||
-- Misc
|
||||
["HardMode"] = {"Misc", 0, 16, 12, 0, -2},
|
||||
["GreedMode"] = {"Misc", 1, 16, 12, 0, -2},
|
||||
@@ -847,3 +880,4 @@ EID.TransformationData = {
|
||||
|
||||
EID.RoomShapeToMarkup = { "{{Room}}", "{{RoomSmallHorizontal}}", "{{RoomSmallVertical}}", "{{RoomLongVertical}}", "{{RoomLongThinVertical}}","{{RoomLongHorizontal}}", "{{RoomLongThinHorizontal}}", "{{RoomXL}}", "{{RoomLTopLeft}}", "{{RoomL}}", "{{RoomLBottomLeft}}", "{{RoomLBottomRight}}" }
|
||||
EID.RoomTypeToMarkup = { "{{Room}}", "{{Shop}}", "{{ErrorRoom}}", "{{TreasureRoom}}", "{{BossRoom}}", "{{MiniBoss}}", "{{SecretRoom}}", "{{SuperSecretRoom}}", "{{ArcadeRoom}}", "{{CursedRoom}}", "{{ChallengeRoom}}", "{{Library}}", "{{SacrificeRoom}}", "{{DevilRoom}}", "{{AngelRoom}}", "{{LadderRoom}}", "{{Room}}" --[[boss rush]], "{{IsaacsRoom}}", "{{BarrenRoom}}", "{{ChestRoom}}", "{{DiceRoom}}", "{{Shop}}", "{{Room}}", --[[Black Market / Greed Exit]] "{{Planetarium}}", "{{Teleporter}}","{{Teleporter}}", "{{Room}}", "{{Room}}" --[[Blue Key rooms]], "{{UltraSecretRoom}}" }
|
||||
EID.ItemPoolTypeToMarkup = { [0] = "{{ItemPoolTreasure}}", "{{ItemPoolShop}}", "{{ItemPoolBoss}}", "{{ItemPoolDevil}}", "{{ItemPoolAngel}}", "{{ItemPoolSecret}}", "{{ItemPoolLibrary}}", "{{ItemPoolShellGame}}", "{{ItemPoolGoldenChest}}", "{{ItemPoolRedChest}}", "{{ItemPoolBeggar}}", "{{ItemPoolDemonBeggar}}", "{{ItemPoolCurse}}", "{{ItemPoolKeyMaster}}", "{{ItemPoolBombBum}}", "{{ItemPoolMomsChest}}", "{{ItemPoolGreedTreasure}}", "{{ItemPoolGreedShop}}", "{{ItemPoolGreedBoss}}", "{{ItemPoolGreedDevil}}", "{{ItemPoolGreedAngel}}", "{{ItemPoolGreedCurse}}", "{{ItemPoolGreedSecret}}", "{{ItemPoolCraneGame}}", "{{ItemPoolUltraSecret}}", "{{ItemPoolBatteryBum}}", "{{ItemPoolPlanetarium}}", "{{ItemPoolOldChest}}", "{{ItemPoolBabyShop}}", "{{ItemPoolWoodenChest}}", "{{ItemPoolRottenBeggar}}"}
|
||||
+7
-2
@@ -84,15 +84,20 @@ function EID:getHoldMapDescription(player, checkingTwin)
|
||||
end
|
||||
if pickupHistory then
|
||||
local pickupNames = ""
|
||||
for i = 1, math.min(3, #pickupHistory) do
|
||||
if pickupHistory[i][4] then -- Echo chamber was owned before this card/pill was used
|
||||
local pickupsToPrint = 3
|
||||
for i = 1, #pickupHistory do
|
||||
if pickupHistory[i][4] then -- Echo chamber was owned before this card/pill was used and it's not a mimic usage
|
||||
if pickupHistory[i][1] == "pill" then
|
||||
local name = EID:getPillName(pickupHistory[i][3], false)
|
||||
if (pickupHistory[i][2] == 14) then name = EID:getPillName(9999, false) end
|
||||
pickupNames = pickupNames .. "{{Pill" .. pickupHistory[i][2] .. "}} " .. name .. "#"
|
||||
pickupsToPrint = pickupsToPrint - 1
|
||||
else
|
||||
local name = EID:getObjectName(5, 300, pickupHistory[i][3])
|
||||
pickupNames = pickupNames .. "{{Card" .. pickupHistory[i][3] .. "}} " .. name .. "#"
|
||||
pickupsToPrint = pickupsToPrint - 1
|
||||
end
|
||||
if (pickupsToPrint == 0) then break end
|
||||
end
|
||||
end
|
||||
if pickupNames ~= "" then
|
||||
|
||||
+29
-1
@@ -558,6 +558,8 @@ if MCMLoaded then
|
||||
EID:AddBooleanSetting("Visuals", "TransformationIcons", "Display Transformation Icon")
|
||||
EID:AddBooleanSetting("Visuals", "TransformationProgress", "Display Transformation Progress")
|
||||
EID:AddBooleanSetting("Visuals", "ShowQuality", "Display Quality Info", {repOnly = true})
|
||||
EID:AddBooleanSetting("Visuals", "ShowItemPoolIcon", "Display Item Pool Icon", {repOnly = true, infoText = "Displays collectible's item pool icon that is expected for full reroll effects."})
|
||||
EID:AddBooleanSetting("Visuals", "ShowItemPoolText", "Display Item Pool Name", {repOnly = true, infoText = "Displays collectible's item pool name that is expected for full reroll effects."})
|
||||
EID:AddBooleanSetting("Visuals", "ShowObjectID", "Display Object ID")
|
||||
|
||||
-------Mod indicator for modded items---------
|
||||
@@ -929,7 +931,7 @@ if MCMLoaded then
|
||||
Minimum = 0,
|
||||
Maximum = 1000,
|
||||
Display = function()
|
||||
if EID.Config["ModIndicatorTextColor"] == nil then EID.Config["TextColor"] = EID.DefaultConfig["ModIndicatorTextColor"] end
|
||||
if EID.Config["ModIndicatorTextColor"] == nil then EID.Config["ModIndicatorTextColor"] = EID.DefaultConfig["ModIndicatorTextColor"] end
|
||||
return "Mod Indicator: " .. string.gsub(EID.Config["ModIndicatorTextColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ModIndicatorTextColor"]).."/"..#colorNameArray..")"
|
||||
end,
|
||||
OnChange = function(currentNum)
|
||||
@@ -941,6 +943,32 @@ if MCMLoaded then
|
||||
Info = {"Changes the color of mod indicator texts (as long as they are enabled)."}
|
||||
}
|
||||
)
|
||||
-- Last Pool indicator Color (REPENTANCE ONLY)
|
||||
if EID.isRepentance then
|
||||
MCM.AddSetting(
|
||||
"EID",
|
||||
"Colors",
|
||||
{
|
||||
Type = ModConfigMenu.OptionType.NUMBER,
|
||||
CurrentSetting = function()
|
||||
return AnIndexOf(colorNameArray, EID.Config["ItemPoolTextColor"])
|
||||
end,
|
||||
Minimum = 0,
|
||||
Maximum = 1000,
|
||||
Display = function()
|
||||
if EID.Config["ItemPoolTextColor"] == nil then EID.Config["ItemPoolTextColor"] = EID.DefaultConfig["ItemPoolTextColor"] end
|
||||
return "Mod Indicator: " .. string.gsub(EID.Config["ItemPoolTextColor"], "Color", "").. " ("..AnIndexOf(colorNameArray, EID.Config["ItemPoolTextColor"]).."/"..#colorNameArray..")"
|
||||
end,
|
||||
OnChange = function(currentNum)
|
||||
EID.MCM_OptionChanged = true
|
||||
if currentNum == 0 then currentNum = #colorNameArray end
|
||||
if currentNum > #colorNameArray then currentNum = 1 end
|
||||
EID.Config["ItemPoolTextColor"] = colorNameArray[currentNum]
|
||||
end,
|
||||
Info = {"Changes the color of last item pool indicator texts (as long as they are enabled)."}
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
if MCM.i18n == "Chinese" then
|
||||
require("eid_mcm_cn")
|
||||
|
||||
+16
-1
@@ -229,6 +229,19 @@ end
|
||||
|
||||
|
||||
if EID.isRepentance then
|
||||
-- Handle Last Pool
|
||||
local function LastPoolCallback(descObj)
|
||||
local itemConfig = EID.itemConfig:GetCollectible(descObj.ObjSubType)
|
||||
if itemConfig:IsCollectible() and not itemConfig:HasTags(ItemConfig.TAG_QUEST) then
|
||||
local lastPool = game:GetItemPool():GetLastPool()
|
||||
local poolName = ""
|
||||
local poolDescPrepend = EID:getDescriptionEntry("itemPoolFor")
|
||||
local poolDescTable = EID:getDescriptionEntry("itemPoolNames")
|
||||
poolName = "{{"..EID.Config["ItemPoolTextColor"].."}}"..poolDescPrepend..""..(EID.ItemPoolTypeToMarkup[lastPool] or "{{ItemPoolTreasure}}")..poolDescTable[lastPool] .. "{{CR}}#"
|
||||
descObj.Description = poolName .. descObj.Description
|
||||
end
|
||||
return descObj
|
||||
end
|
||||
-- Handle Birthright
|
||||
local function BirthrightCallback(descObj)
|
||||
descObj.Description = ""
|
||||
@@ -561,7 +574,8 @@ if EID.isRepentance then
|
||||
local j = 1
|
||||
while (j <= #pickupHistory) do
|
||||
local entry = pickupHistory[j]
|
||||
if entry[1] == "pill" then
|
||||
-- ignore the pill if the pill color is Golden
|
||||
if entry[1] == "pill" and entry[2] ~= 14 then
|
||||
lastUsedPill = entry[3]
|
||||
break
|
||||
end
|
||||
@@ -675,6 +689,7 @@ if EID.isRepentance then
|
||||
-- Using magic numbers here in case it's slightly faster, and because the callback names give context
|
||||
-- Check Birthright first because it overwrites the description instead of appending to it
|
||||
if descObj.ObjSubType == 619 then table.insert(callbacks, BirthrightCallback) end
|
||||
if not EID.InsideItemReminder and EID.Config["ShowItemPoolText"] then table.insert(callbacks, LastPoolCallback) end
|
||||
if descObj.ObjSubType == 644 then table.insert(callbacks, ConsolationPrizeCallback) end
|
||||
|
||||
if EID.collectiblesOwned[664] then table.insert(callbacks, BingeEaterCallback) end
|
||||
|
||||
@@ -10,8 +10,8 @@ EID.isRepentance = REPENTANCE -- REPENTANCE variable can be altered by any mod,
|
||||
require("eid_config")
|
||||
EID.Config = EID.UserConfig
|
||||
EID.Config.Version = "3.2" -- note: changing this will reset everyone's settings to default!
|
||||
EID.ModVersion = 4.55
|
||||
EID.ModVersionCommit = "7a74260"
|
||||
EID.ModVersion = 4.56
|
||||
EID.ModVersionCommit = "da9338e"
|
||||
EID.DefaultConfig.Version = EID.Config.Version
|
||||
EID.isHidden = false
|
||||
EID.player = nil -- The primary Player Entity of Player 1
|
||||
@@ -622,6 +622,16 @@ function EID:printDescription(desc, cachedID)
|
||||
if EID.Config["ShowQuality"] and desc.Quality then
|
||||
curName = curName.." - {{Quality"..desc.Quality.."}}"
|
||||
end
|
||||
-- Display Last Pool for Collectible for full reroll effects
|
||||
if EID.isRepentance and EID.Config["ShowItemPoolIcon"] and (desc.ObjType == 5 and desc.ObjVariant == 100) then
|
||||
local itemConfig = EID.itemConfig:GetCollectible(desc.ObjSubType)
|
||||
if itemConfig:IsCollectible() and not itemConfig:HasTags(ItemConfig.TAG_QUEST) then
|
||||
if not EID.Config["ShowQuality"] then
|
||||
curName = curName.." - "
|
||||
end
|
||||
curName = curName..""..(EID.ItemPoolTypeToMarkup[game:GetItemPool():GetLastPool()] or "{{ItemPoolTreasure}}")
|
||||
end
|
||||
end
|
||||
-- Display the mod this item is from
|
||||
if desc.ModName then
|
||||
curName = curName .. EID:getModNameString(desc)
|
||||
@@ -982,6 +992,7 @@ end
|
||||
|
||||
local collSpawned = false
|
||||
EID.RecheckVoid = false
|
||||
EID.ShouldCheckWisp = false
|
||||
|
||||
function EID:onGameUpdate()
|
||||
EID.GameUpdateCount = EID.GameUpdateCount + 1
|
||||
@@ -1008,8 +1019,23 @@ function EID:onGameUpdate()
|
||||
EID.RecheckVoid = true
|
||||
end
|
||||
|
||||
-- Remove Crane Game item data if it's giving the prize out
|
||||
if EID.isRepentance and EID.GameUpdateCount % 10 == 0 then
|
||||
-- Check wisp for adding reminder when using lemegeton
|
||||
if EID.ShouldCheckWisp then
|
||||
for _, wisp in ipairs(Isaac.FindByType(3, 237, -1, true, false)) do
|
||||
if wisp.FrameCount < 10 then
|
||||
local player = wisp:ToFamiliar() and wisp:ToFamiliar().Player
|
||||
if player then
|
||||
local playerID = EID:getPlayerID(player)
|
||||
EID:InitItemInteractionIfAbsent(playerID)
|
||||
table.insert(EID.RecentlyTouchedItems[playerID], wisp.SubType)
|
||||
if (#EID.RecentlyTouchedItems[playerID] > 8) then table.remove(EID.RecentlyTouchedItems[playerID], 1) end
|
||||
end
|
||||
end
|
||||
end
|
||||
EID.ShouldCheckWisp = false
|
||||
end
|
||||
-- Remove Crane Game item data if it's giving the prize out
|
||||
for _, crane in ipairs(Isaac.FindByType(6, 16, -1, true, false)) do
|
||||
if EID.CraneItemType[tostring(crane.InitSeed)] then
|
||||
if crane:GetSprite():IsPlaying("Prize") then
|
||||
@@ -1573,19 +1599,26 @@ if EID.isRepentance then
|
||||
CheckAllActiveItemProgress()
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_USE_ITEM, OnUseGenesis, CollectibleType.COLLECTIBLE_GENESIS)
|
||||
|
||||
local function OnUseLemegeton(_, _, player, _, _, _)
|
||||
EID.ShouldCheckWisp = true
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_PRE_USE_ITEM, OnUseLemegeton, CollectibleType.COLLECTIBLE_LEMEGETON)
|
||||
|
||||
end
|
||||
|
||||
function EID:OnUsePill(pillEffectID, player, useFlags)
|
||||
player = player or EID.player --AB+ doesn't receive player in callback arguments!
|
||||
-- get the pill color by checking the player's pocket (not accurate for Temperance? and such, but useFlags will help us ignore those)
|
||||
-- get the pill color by checking the player's pocket
|
||||
local pillColor = EID.PlayerHeldPill[EID:getPlayerID(player)]
|
||||
if pillColor == 0 then return end -- ignore if no pill found in pocket
|
||||
EID:AddPickupToHistory("pill", pillEffectID+1, player, useFlags, pillColor) -- Echo Chamber tracking
|
||||
-- add the pill used to our history for Echo Chamber / Vurp! / transformation progress
|
||||
EID:AddPickupToHistory("pill", pillEffectID+1, player, useFlags, pillColor)
|
||||
EID.ForceRefreshCache = true -- for transformation progress update
|
||||
|
||||
-- for tracking used pills, ignore gold pills and noannouncer flag pills
|
||||
-- (not using a bitmask, because Placebo is mimic+noannouncer, and we want to count those)
|
||||
if EID.isRepentance and (pillColor % PillColor.PILL_GIANT_FLAG == PillColor.PILL_GOLD or useFlags == UseFlag.USE_NOANNOUNCER) then return end
|
||||
EID.UsedPillColors[tostring(pillColor)] = true
|
||||
|
||||
end
|
||||
EID:AddCallback(ModCallbacks.MC_USE_PILL, EID.OnUsePill)
|
||||
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ You are currently looking at the version for Afterbirth+ and Repentance.
|
||||
[img]https://i.imgur.com/jrdGbna.png[/img]
|
||||
[url=https://github.com/wofsauge/External-Item-Descriptions/blob/master/CREDITS.md]Check out the credits here[/url]
|
||||
</description>
|
||||
<version>4.55</version>
|
||||
<version>4.56</version>
|
||||
<visibility>Public</visibility>
|
||||
<tag id="Lua"/>
|
||||
<tag id="Items"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<AnimatedActor>
|
||||
<Info CreatedBy="Unknown" CreatedOn="6/5/2022 1:39:49 AM" Version="187" Fps="30"/>
|
||||
<Info CreatedBy="Unknown" CreatedOn="2023-03-22 23:21:04" Version="188" Fps="30"/>
|
||||
<Content>
|
||||
<Spritesheets>
|
||||
<Spritesheet Path="eid_inline_icons.png" Id="0"/>
|
||||
@@ -643,5 +643,48 @@
|
||||
<NullAnimations/>
|
||||
<Triggers/>
|
||||
</Animation>
|
||||
<Animation Name="ItemPools" FrameNum="31" Loop="true">
|
||||
<RootAnimation>
|
||||
<Frame XPosition="0" YPosition="0" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
</RootAnimation>
|
||||
<LayerAnimations>
|
||||
<LayerAnimation LayerId="0" Visible="true">
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="242" YCrop="286" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="242" YCrop="297" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="242" YCrop="308" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="165" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="176" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="187" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="198" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="209" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="220" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
<Frame XPosition="0" YPosition="0" XPivot="0" YPivot="0" XCrop="231" YCrop="319" Width="11" Height="11" XScale="100" YScale="100" Delay="1" Visible="true" RedTint="255" GreenTint="255" BlueTint="255" AlphaTint="255" RedOffset="0" GreenOffset="0" BlueOffset="0" Rotation="0" Interpolated="false"/>
|
||||
</LayerAnimation>
|
||||
<LayerAnimation LayerId="1" Visible="true"/>
|
||||
</LayerAnimations>
|
||||
<NullAnimations/>
|
||||
<Triggers/>
|
||||
</Animation>
|
||||
</Animations>
|
||||
</AnimatedActor>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 36 KiB |
Reference in new issue
Block a user