Compare commits

...
14 Commits
Author SHA1 Message Date
github-actions[bot] c9fbf5d587 chore: release 4.56 2023-05-07 20:57:36 +00:00
wakaba (aka. 미카) da9338ef54 Add support for collectible's item pool (#561)
* getlastpool test

* update icons and config

* Don't show pool for quest items

* Fix modded recipes breaking game's last pool

* fix icon misalign

* Added text for Last Item Pool indicator
2023-05-07 16:58:43 +02:00
Buurazu 51d0ef2e1b Test for pill color to detect Golden 2023-05-06 19:09:44 -04:00
Buurazu 99bd3c7379 Test for pill color to determine Golden 2023-05-06 19:09:26 -04:00
Buurazu 9102104be8 improving pill usage tracking 2023-05-06 19:02:42 -04:00
Buurazu 33121b3d84 Improve Echo Chamber hold map desc 2023-05-06 18:58:51 -04:00
Buurazu c62d814da4 Don't allow Golden Pills to be seen by Vurp! 2023-05-06 18:58:23 -04:00
Buurazu 55b38e2c74 Improve pickup history tracking 2023-05-06 18:57:45 -04:00
Buurazu 61b5aaa3c7 Fix AB+ Halo of Flies / duplicate trans progress 2023-05-05 18:29:48 -04:00
wakaba (aka. 미카) 5894fc8232 Support Lemegeton Wisp for Item Reminder (#558)
* Support Lemegeton Wisp for Item Reminder

* only check once per use
2023-05-01 23:54:26 +02:00
github-actions[bot] b5ef70da20 chore: release 4.55 2023-04-02 15:34:48 +00:00
Wofsauge 7a74260e54 Fixed incompatibility with GoG Version 2023-04-02 17:32:05 +02:00
Wofsauge f3504dc7ac Fixed Linux incompatibility 2023-04-02 17:29:46 +02:00
Dong-Yiyuan 6bb0c1f56a zh_cn: general desc update (#556)
* zh_cn: fix mistake in t31, t35

* fix pill bombs are keys

* zh_cn: add the description of the tainted ???'s poop
2023-03-06 17:08:19 +01:00
15 changed files with 245 additions and 28 deletions

No files matched your search

+2 -2
View File
@@ -608,11 +608,11 @@ EID.descriptions[languageCode].trinkets={
{"28", "碎安卡十字", "{{Player4}} 22%几率以小蓝人重生"},
{"29", "鱼头", "受伤时生成蓝苍蝇"},
{"30", "角膜炎", "10%几率发射有毒眼泪#{{Luck}} 运气18:100%几率"},
{"31", "图钉", "{{Poison}} 10%几率发射穿透幽灵眼泪"},
{"31", "图钉", "{{Poison}} 10%几率发射穿透幽灵眼泪#{{Luck}} 运气18:100%几率"},
{"32", "裸盖蘑菇", "每个房间25%几率出现随机蘑菇效果#可能在地图上显示特殊房间"},
{"33", "脐带", "当受伤至半心时,在本房间获得#{{Collectible100}}小史蒂文"},
{"34", "小孩的心脏", "{{Heart}} 10%几率房间清理奖励为1随机心#几率在箱子,宝藏岩石,炸毁的机器中额外出现心"},
{"35", "弯羊角", "↑ {{Damage}} +2伤害"},
{"35", "弯羊角", "↑ {{Damage}} +2伤害修正"},
{"36", "生锈的钥匙", "{{Key}} 10%几率房间清理奖励为1钥匙#几率在箱子,宝藏岩石,炸毁的机器中额外出现钥匙"},
{"37", "山羊蹄", "↑ {{Speed}} +0.15移速"},
{"38", "妈妈的珍珠", "+10%随机心掉落为{{SoulHeart}}魂心,{{BlackHeart}}黑心,{{EmptyBoneHeart}}骨心的几率"}, -- base chance is 10%
+5
View File
@@ -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"
+5
View File
@@ -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}"
+16 -2
View File
@@ -227,7 +227,7 @@ local repCollectibles={
[523] = {"523", "搬家盒", "使用时储存所在房间的掉落物,最多10个#再次使用将储存物放回地上#可以在房间之间搬东西"}, -- Moving Box
[524] = {"524", "科技零", "眼泪以电弧连接#{{Damage}} 电弧造成每秒15次30%角色伤害"}, -- Technology Zero
[531] = {"531", "泪血症", "眼泪弧形前进,击中时眼泪分裂成更小的眼泪#↑ {{Damage}} +1伤害#↑ {{Damage}} +50%伤害倍率#↓ {{Tears}} 射速降低约2/3#↓ {{Range}} -20%射程修正"}, -- Haemolacria
[543] = {"543", "圣地大便", "受伤时生成白便便#在白便便的光环中:#↑ {{Damage}} +20%伤害倍率#↑ x250%射速修正#跟踪眼泪#50%几率阻挡伤害"}, -- Hallowed Ground
[543] = {"543", "圣地大便", "受伤时生成白便便#在白便便的光环中:#↑ {{Damage}} +20%伤害倍率#↑ {{Tears}} x250%射速修正#跟踪眼泪#50%几率阻挡伤害"}, -- Hallowed Ground
[549] = {"549", "脆骨症", "{{EmptyBoneHeart}} 以6骨心替换所有心之容器#失去骨心时:#向8个方向发射骨头眼泪#↑ {{Tears}} 永久+0.4射速修正"}, -- Brittle Bones
[552] = {"552", "妈妈的铲子", "生成通往下一层的活板门# 在有装饰(草、碎石、骷颅头等)的地板上使用则改为生成{{LadderRoom}}一个暗门#!!! 在\"暗室\"的土丘上使用铲子#!!! 解锁某个很酷的东西"}, -- Brittle Bones
[553] = {"553", "毛霉菌病", "25%几率发射粘性孢子眼泪#{{Luck}} 不受运气影响#孢子在命中后2.5秒爆炸,造成伤害,使附近敌人中毒,并释放更多孢子"}, -- Mucormycosis
@@ -912,7 +912,7 @@ EID.descriptions[languageCode].tarotClothBuffs = {
---------- Pills ----------
local repPills={
[4] = {"3", "", "交换炸弹和钥匙的数量#金炸弹和金钥匙也会交换"}, -- Bombs are Key
[4] = {"3", "炸弹变钥匙", "交换炸弹和钥匙的数量#金炸弹和金钥匙也会交换"}, -- Bombs are Key
[12] = {"11", "射程下降", "↓ {{Range}} -1.0射程"}, -- Range Down
[13] = {"12", "射程上升", "↑ {{Range}} +1.25射程"}, -- Range Up
[42] = {"41", "好困…", "使房间内所有敌人和角色减速"}, -- I'm Drowsy...
@@ -1034,6 +1034,20 @@ EID.descriptions[languageCode].GlitchedItemText = {
}
EID.descriptions[languageCode].poopSpells = {
{"大便", "可以生成掉落物的普通大便"},
{"玉米大便", "可生成蓝苍蝇的大便"},
{"燃烧大便", "可对接触的敌人造成伤害#被摧毁后留下一团火焰"},
{"石化大便", "投掷时可造成3次接触伤害#更难被摧毁"},
{"恶臭大便", "{{Poison}} 周围会生成毒气云的大便#{{Warning}} 毒气接触火会爆炸!"},
{"黑大便", "周围会生成减速水迹的大便#被摧毁时造成10点伤害并使所有敌人混乱"},
{"神圣大便", "{{Collectible543}} 投掷一个白便便#在白便便的光环中:#↑ {{Damage}} +20%伤害倍率#↑ {{Tears}} x250%射速修正#跟踪眼泪#50%几率阻挡伤害#"},
{"棕色水迹", "留下一道水迹#水迹对踩在上面的敌人造成接触伤害#角色站在水迹上时,会获得伤害和射速加成#当轨迹与其他大便接触时,会获得额外效果"},
{"屁", "{{Poison}} 推开周围的敌人,并生成一团毒气云#{{Warning}} 毒气接触火会爆炸!"},
{"大便炸弹", "普通的可投掷炸弹"},
{"爆炸性腹泻", "在角色位置生成5个激活的大便炸弹"},
}
---------- Misc. Text ----------
-- Void stat names: Replace "Tears" with "Fire Rate"
+25 -9
View File
@@ -307,7 +307,7 @@ end
-- Loads a given font from a given file path and use it to render text
function EID:loadFont(fontFileName)
EID.font:Load(fontFileName)
EID.font:Load(fontFileName, "") -- GoG Version of game somehow wants a string as the second argument
EID.font:SetMissingCharacter(2)
if not EID.font:IsLoaded() then
Isaac.DebugString("EID - ERROR: Could not load font from '" .. EID.modPath .. "resources/font/default.fnt" .. "'")
@@ -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
+6 -1
View File
@@ -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
+14
View File
@@ -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,
+34
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
+41 -8
View File
@@ -5,13 +5,13 @@ EID.Languages = {"en_us", "en_us_detailed", "fr", "pt", "pt_br", "ru", "spa", "i
EID.descriptions = {} -- Table that holds all translation strings
EID.enableDebug = false
local game = Game()
EID.isRepentance = getmetatable(Sprite) ~= nil and getmetatable(Sprite).__class ~= nil and getmetatable(Sprite).__class.GetAnimation ~= nil -- REPENTANCE variable can be altered by any mod, so we try alternative method and save the result
EID.isRepentance = REPENTANCE -- REPENTANCE variable can be altered by any mod, so we save the value before anyone can alter it
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.54
EID.ModVersionCommit = "5290f28"
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
View File
@@ -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.54</version>
<version>4.56</version>
<visibility>Public</visibility>
<tag id="Lua"/>
<tag id="Items"/>
+44 -1
View File
@@ -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