From 9054ee28301629601246ad5ada92f022ab6df6fa Mon Sep 17 00:00:00 2001 From: Xheepey87 <40490528+Xheepey87@users.noreply.github.com> Date: Fri, 21 Jan 2022 08:37:57 +0800 Subject: [PATCH 01/26] Update zh_cn.lua --- descriptions/rep/zh_cn.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/descriptions/rep/zh_cn.lua b/descriptions/rep/zh_cn.lua index 92028c20..521b2965 100644 --- a/descriptions/rep/zh_cn.lua +++ b/descriptions/rep/zh_cn.lua @@ -244,7 +244,7 @@ local repCollectibles={ [591] = {"591", "金星", "↑ +1心之容器#治疗1红心#近距离内的敌人受到魅惑"}, -- Venus [592] = {"592", "地球", "↑ +1.0伤害#眼泪变为石头#每颗伤害不定#可摧毁障碍物#击退增强"}, -- Terra [593] = {"593", "火星", "双击移动方向键进行冲锋#冲锋时无敌,造成角色伤害x4的伤害#3秒冷却时间"}, -- Mars - [594] = {"594", "木星", "↑ +2心之容器#治疗半红心#↓ -0.3移速#不移动时累积至多0.5移速#移动时向后释放毒气#角色免疫中毒伤害"}, -- Jupiter + [594] = {"594", "木星", "↑ +2心之容器#治疗半红心#↓ -0.3移速#角色免疫中毒伤害#不移动时累积至多0.5移速#移动时向后释放毒气"}, -- Jupiter [595] = {"595", "土星", "生成1个轨道#进入房间时生成7颗眼泪在轨道上环绕#轨道有几率捕获敌人的弹幕"}, -- Saturnus [596] = {"596", "天王星", "发射冰冻眼泪,对敌人造成减速效果,击杀时使敌人冻结#冻结的敌人可以推开,撞碎时向四周发射6个冰锥"}, -- Uranus [597] = {"597", "海王星", "不发射眼泪时积攒眼泪,最多持续3秒##发射时射出大量眼泪#发射时积攒的眼泪逐渐减少"}, -- Neptunus @@ -970,13 +970,13 @@ EID.descriptions[languageCode].GlitchedItemText = { -- Attribute triggers chain = "然后:{{CR}}", active = "使用时:#", - pickup_collected = "捡到掉落物时:#", --chance to? + pickup_collected = "捡到掉落物时:#", enemy_kill = "击杀时,几率:#", - damage_taken = "受伤时:#", --chance to? + damage_taken = "受伤时:#", entity_spawned = "当生成{T1}时:#", tear_fire = "角色发射眼泪时,几率:#", enemy_hit = "击中敌人时,几率:#", - room_clear = "清理房间后:#", --chance to? + room_clear = "清理房间后:#", -- Attribute effects area_damage = "在角色周围造成{1}伤害", From 0e0187c47b5484a61789e572de33ec4c1542350b Mon Sep 17 00:00:00 2001 From: Xheepey87 <40490528+Xheepey87@users.noreply.github.com> Date: Fri, 21 Jan 2022 08:38:43 +0800 Subject: [PATCH 02/26] zh_cn : sync --- descriptions/rep/zh_cn.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/descriptions/rep/zh_cn.lua b/descriptions/rep/zh_cn.lua index 521b2965..5a68a5c8 100644 --- a/descriptions/rep/zh_cn.lua +++ b/descriptions/rep/zh_cn.lua @@ -2,7 +2,7 @@ ----- Basic Chinese descriptions --- -------------------------------------- --- Last Sync Revise: 2022.01.19 +-- Last Sync Revise: 2022.01.21 -- Last Full Check: N/A -- I will have a full check someday else. -- FORMAT: Item ID | Name | Description From a15018a13491b50118f0c6f2f78d086286cc0405 Mon Sep 17 00:00:00 2001 From: Xheepey87 <40490528+Xheepey87@users.noreply.github.com> Date: Fri, 21 Jan 2022 13:49:14 +0800 Subject: [PATCH 03/26] Fixed the description of Magic Skin and Everything Jar --- descriptions/rep/zh_cn.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/descriptions/rep/zh_cn.lua b/descriptions/rep/zh_cn.lua index 5a68a5c8..2886a3a6 100644 --- a/descriptions/rep/zh_cn.lua +++ b/descriptions/rep/zh_cn.lua @@ -292,7 +292,7 @@ local repCollectibles={ [639] = {"639", "难吃的心", "使用时获得1腐心"}, -- Yuck Heart [640] = {"640", "灵魂之瓮", "喷射火焰#敌人死亡时获得充能"}, -- Urn of Souls [641] = {"641", "血田", "战斗时,在身体后方生成一串眼泪#眼泪造成3.5伤害"}, -- Akeldama - [642] = {"642", "玄奇驴皮", "将1心之容器或2魂心变为1碎心#从当前房间道具池中生成1个道具#使用次数越多,若不再持有,则后续生成的道具被玄奇驴皮替换的几率越大#如果当前层的底座道具有玄奇驴皮则降低该几率#{{Warning}}游魂:一次性#{{Warning}}"}, -- Magic Skin + [642] = {"642", "玄奇驴皮", "将1心之容器或2魂心变为1碎心#从当前房间道具池中生成1个道具#使用次数越多,若不再持有,则后续生成的道具被玄奇驴皮替换的几率越大#如果当前层的底座道具有玄奇驴皮则降低该几率#{{Warning}} 游魂:一次性"}, -- Magic Skin [643] = {"643", "终末天启", "获得飞行能力和2魂心#连续发射眼泪2.5秒可蓄力发射神圣光线"}, -- Revelation [644] = {"644", "安慰奖", "提升最低的属性#根据持有数量最少的掉落物,生成3硬币,1钥匙或1炸弹"}, -- Consolation Prize [645] = {"645", "小畸胎瘤", "畸胎瘤环绕物#阻挡弹幕#造成接触伤害#被击中3次时分裂成小畸胎瘤#小畸胎瘤被摧毁时产生蓝蜘蛛#被完全摧毁后5秒复活"}, -- Tinytoma @@ -370,7 +370,7 @@ local repCollectibles={ [717] = {"717", "店主的亲友", "岩石和障碍物在被摧毁时生成2只蓝蜘蛛#岩石在有敌人的房间中偶尔会产生蓝蜘蛛"}, -- Keeper's Kin [718] = {"718", "", "<道具不存在>"}, -- Keepers Robe (Cut item) [719] = {"719", "店主的盒子", "生成1个商店出售的物品或掉落物"}, -- Keeper's Box - [720] = {"720", "百宝罐", "使用时生成掉落物,使用时的充能不同,效果不同#满充能时具有强力随机效果#充能:1:Poop 2:{{Coin}} 3:{{Bomb}} 4:{{Key}} 5:{{Heart}} 6:{{Pill}} 7:{{Card}} 8:{{SoulHeart}} 9:{{GoldenHeart}} 10:{{GoldenKey}} 11:{{GoldenBomb}}"}, -- Everything Jar + [720] = {"720", "百宝罐", "使用时生成掉落物,使用时的充能不同,效果不同#满充能时具有强力随机效果#充能:1:便便 2:{{Coin}} 3:{{Bomb}} 4:{{Key}} 5:{{Heart}} 6:{{Pill}} 7:{{Card}} 8:{{SoulHeart}} 9:{{GoldenHeart}} 10:{{GoldenKey}} 11:{{GoldenBomb}}"}, -- Everything Jar [721] = {"721", "错误技", "使未来获得的所有物品混乱#其效果完全随机"}, -- TMTRAINER [722] = {"722", "孤魂铁索", "禁锢离角色最近的敌人5秒"}, -- Anima Sola [723] = {"723", "计数二十面骰", "将房间内所有道具转变为内部ID减1的道具"}, -- Spindown Dice @@ -1019,7 +1019,7 @@ EID.descriptions[languageCode].CraftingHideKey = "隐藏:" EID.descriptions[languageCode].CraftingPreviewKey = "预览:" EID.descriptions[languageCode].CraftingPreviewBackup = "!!! 如果该道具锁定,则会变为" -EID.descriptions[languageCode].CraftingResults = "(滚动:按住 {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}},锁定:{{ButtonX}},刷新:{{ButtonB}}),重置袋:按住 {{ButtonRB}}" +EID.descriptions[languageCode].CraftingResults = "(滚动:按住 {{CONFIG_BoC_Toggle}} + {{ButtonY}} {{ButtonA}},锁定:{{ButtonX}},刷新:{{ButtonB}},重置袋:按住 {{ButtonRB}})" EID.descriptions[languageCode].BlankCardCharge = "空白卡牌充能:" EID.descriptions[languageCode].BlankCardQCard = "传送至错误房#空白卡牌和?卡牌会被摧毁" From 4e7c3cc99e4ed0f878f0c8e991e669620ec64eab Mon Sep 17 00:00:00 2001 From: Buurazu Date: Fri, 21 Jan 2022 16:48:19 -0500 Subject: [PATCH 04/26] fix puberty markup icon --- descriptions/ab+/en_us.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/descriptions/ab+/en_us.lua b/descriptions/ab+/en_us.lua index e058cda6..f5f98c1e 100644 --- a/descriptions/ab+/en_us.lua +++ b/descriptions/ab+/en_us.lua @@ -777,7 +777,7 @@ EID.descriptions[languageCode].pills={ {"6", "Health Down", "↓ Health down"}, {"7", "Health Up", "↑ Health up"}, {"8", "I Found Pills", "No effect"}, - {"9", "Puberty", "Eating 3 will give you the {{}} Adult transformation (+1 Red Heart)"}, + {"9", "Puberty", "No effect#Eating 3 will give you the Adult transformation (+1 Red Heart)"}, {"10", "Pretty Fly", "Adds 1 fly orbital"}, {"11", "Range Down", "↓ -2 Range down"}, {"12", "Range Up", "↑ +2.5 Range up"}, From 6617748ac1ea66e930d317acb1ad94a565cf840b Mon Sep 17 00:00:00 2001 From: Buurazu Date: Fri, 21 Jan 2022 19:36:06 -0500 Subject: [PATCH 05/26] Fix Knife Piece 1 + Flip, change pathfinder entity --- main.lua | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/main.lua b/main.lua index 022fa646..0c56640e 100644 --- a/main.lua +++ b/main.lua @@ -290,12 +290,15 @@ if REPENTANCE then flipItemNext = false if entityType == 5 and (variant == 100 or variant == 150) then lastGetItemResult = {nil, Isaac.GetFrameCount(), gridIndex, nil} - initialItemNext = true + -- Pedestals in need of a random item will call GET_COLLECTIBLE; fixed pedestals (Knife Piece 1) will not + if subtype == 0 then initialItemNext = true + else lastGetItemResult[1] = subtype end end end EID:AddCallback(ModCallbacks.MC_PRE_ROOM_ENTITY_SPAWN, EID.preRoomEntitySpawn) function EID:postPickupInit(entity) + initialItemNext = false flipItemNext = true lastGetItemResult[4] = entity.InitSeed @@ -787,16 +790,6 @@ function EID:setPlayer() end end -if REPENTANCE then - function EID:removeWrongGuppyEyeInfo(effectEntity) - if EID.pathCheckerEntity ~= nil and effectEntity.Parent ~= nil then - if GetPtrHash(effectEntity.Parent) == GetPtrHash(EID.pathCheckerEntity) then - effectEntity:Remove() - end - end - end - EID:AddCallback(ModCallbacks.MC_POST_EFFECT_UPDATE, EID.removeWrongGuppyEyeInfo, EffectVariant.PICKUP_GHOST) -end --------------------------------------------------------------------------- ---------------------------On Update Function------------------------------ @@ -844,9 +837,8 @@ function EID:onGameUpdate() return end if EID.pathCheckerEntity == nil then - EID.pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player ,0 , 4354) -- Spawns the EID Helper entity with seed that doesnt spawn rewards - -- Spawns an Ultra Greed Door and makes it invisible and intangible (not fully tested yet) - --EID.pathCheckerEntity = game:Spawn(294, 0, EID.player.Position, nullVector, EID.player, 0, 0) + -- Spawns an Ultra Greed Door and makes it invisible and intangible to act as a Pathfinding NPC that can't be rerolled and has no AI + EID.pathCheckerEntity = game:Spawn(294, 0, EID.player.Position, nullVector, EID.player, 0, 0) EID.pathCheckerEntity:ClearEntityFlags(EntityFlag.FLAG_APPEAR) EID.pathCheckerEntity:AddEntityFlags (EntityFlag.FLAG_PERSISTENT | EntityFlag.FLAG_NO_STATUS_EFFECTS | EntityFlag.FLAG_NO_SPRITE_UPDATE | EntityFlag.FLAG_HIDE_HP_BAR | EntityFlag.FLAG_NO_DEATH_TRIGGER | EntityFlag.FLAG_FRIENDLY) if REPENTANCE then EID.pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end From a1bb206ac29f9a17c251fba546bc9ea650cfa232 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Fri, 21 Jan 2022 19:36:15 -0500 Subject: [PATCH 06/26] Delete content directory --- content/entities2.xml | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 content/entities2.xml diff --git a/content/entities2.xml b/content/entities2.xml deleted file mode 100644 index 36b384a6..00000000 --- a/content/entities2.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file From c1279363a24fee77c110fe37f5fd426e1d134e25 Mon Sep 17 00:00:00 2001 From: Xheepey87 <40490528+Xheepey87@users.noreply.github.com> Date: Sat, 22 Jan 2022 10:59:58 +0800 Subject: [PATCH 07/26] zh_cn : updated the descriptions of Mr. Boom and Empty Heart --- descriptions/rep/zh_cn.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/descriptions/rep/zh_cn.lua b/descriptions/rep/zh_cn.lua index 2886a3a6..d77edeaa 100644 --- a/descriptions/rep/zh_cn.lua +++ b/descriptions/rep/zh_cn.lua @@ -2,7 +2,7 @@ ----- Basic Chinese descriptions --- -------------------------------------- --- Last Sync Revise: 2022.01.21 +-- Last Sync Revise: 2022.01.22 -- Last Full Check: N/A -- I will have a full check someday else. -- FORMAT: Item ID | Name | Description @@ -29,6 +29,7 @@ local repCollectibles={ [29] = {"29", "老妈的内裤", "↑ +1.5射程#生成3-6只蓝苍蝇"}, -- Moms Underwear [30] = {"30", "老妈的高跟鞋", "↑ +1.5射程#能对敌人造成12接触伤害"}, -- Mom's Heels [31] = {"31", "老妈的口红", "↑ +2.25射程#生成1随机心"}, -- Mom's Lipstick + [37] = {"37", "炸弹先生", "在角色下方放置1个大炸弹,造成185伤害"}, -- Mr. Boom [40] = {"40", "神风!", "在角色位置造成1次大爆炸#造成185伤害"}, -- Kamikaze! [42] = {"42", "鲍勃的烂头", "可投掷的有毒炸弹#造成185+角色伤害#产生毒气"}, -- Bob's Rotten Head [44] = {"44", "传送!", "将角色传送到除错误房外的房间#向所需方向移动可稍微影响传送方向"}, -- Teleport @@ -326,7 +327,7 @@ local repCollectibles={ [673] = {"673", "赎罪", "进入恶魔房间但不捡任何物品时,下一层+1魂心,+1伤害"}, -- Redemption [674] = {"674", "灵魂枷锁", "死亡时,灵魂被锁链束缚在尸体上,可以继续战斗,血量为半个魂心#10 秒后复活#此效果捡起魂心后才能再次发动"}, -- Spirit Shackles [675] = {"675", "碎裂的宝珠", "受伤时,显示本层1个随机房间#并打开此房间需要钥匙的门#可以打开超级撒但房间#可显示终极隐藏房间"}, -- Cracked Orb - [676] = {"676", "空虚之心", "在开始新一层时,若拥有空的心之容器,获得1个空的心之容器#骨心不计"}, -- Empty Heart + [676] = {"676", "空虚之心", "在开始新一层时,若只有1红心或更少,获得1空的心之容器#对无法获得红心的角色无效"}, -- Empty Heart [677] = {"677", "灵魂出窍", "受伤时,暂停时间3秒#此时间内变为幽灵#幽灵具有飞行和幽灵眼泪,且免疫一次伤害"}, -- Astral Projection [678] = {"678", "剖腹产", "获得短延迟蓄力攻击,发射婴儿样式的跟踪幽灵眼泪"}, -- C Section [679] = {"679", "亚巴顿宝宝", "发射迷你{{Collectible399}}虚空之口进行攻击的跟班"}, -- Lil Abaddon @@ -1032,7 +1033,7 @@ EID.descriptions[languageCode].FalsePHDDamage = "+0.6伤害" EID.descriptions[languageCode].FalsePHDHorseDamage = "+1.2伤害" EID.descriptions[languageCode].AchievementWarningTitle = "{{ColorYellow}}!!! 警告 !!!" -EID.descriptions[languageCode].AchievementWarningText = "成就已禁用!#为了启用进度和成就,你需要击败老妈(深牢II)而不开启任何模组#(如果你打过了,那么这条警告的出现是bug,无视就好)#(这条警告可以在设置中禁用)" +EID.descriptions[languageCode].AchievementWarningText = "成就已禁用!#为了启用进度和成就,你需要击败老妈(深牢II)而不开启任何模组#(如果你打过了,那么这条警告的出现是bug,无视就好)#(这条警告可在设置中禁用)" EID.descriptions[languageCode].OldGameVersionWarningText = "你的忏悔版本不是最新的!#只有官方最新版才支持这一功能#(这条警告可以在设置中禁用)" From e4a0759bf07d8f13828b803a821d656cf0f41819 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 02:11:10 -0500 Subject: [PATCH 08/26] Save successful pathfinds --- main.lua | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/main.lua b/main.lua index 0c56640e..02733316 100644 --- a/main.lua +++ b/main.lua @@ -162,20 +162,18 @@ function EID:onNewFloor() end EID:AddCallback(ModCallbacks.MC_POST_NEW_LEVEL, EID.onNewFloor) -if EID.Config["DisplaySacrificeInfo"] then - function EID:onSacrificeDamage(_, _, flags, source) - if game:GetRoom():GetType() == RoomType.ROOM_SACRIFICE and source.Type == 0 and flags & DamageFlag.DAMAGE_SPIKES == DamageFlag.DAMAGE_SPIKES then - local curRoomIndex = game:GetLevel():GetCurrentRoomIndex() - if EID.sacrificeCounter[curRoomIndex] == nil then - EID.sacrificeCounter[curRoomIndex] = 1 - end - if EID.sacrificeCounter[curRoomIndex] < 12 then - EID.sacrificeCounter[curRoomIndex] = EID.sacrificeCounter[curRoomIndex] + 1 - end +function EID:onSacrificeDamage(_, _, flags, source) + if EID.Config["DisplaySacrificeInfo"] and game:GetRoom():GetType() == RoomType.ROOM_SACRIFICE and source.Type == 0 and flags & DamageFlag.DAMAGE_SPIKES == DamageFlag.DAMAGE_SPIKES then + local curRoomIndex = game:GetLevel():GetCurrentRoomIndex() + if EID.sacrificeCounter[curRoomIndex] == nil then + EID.sacrificeCounter[curRoomIndex] = 1 + end + if EID.sacrificeCounter[curRoomIndex] < 12 then + EID.sacrificeCounter[curRoomIndex] = EID.sacrificeCounter[curRoomIndex] + 1 end end - EID:AddCallback(ModCallbacks.MC_ENTITY_TAKE_DMG, EID.onSacrificeDamage, EntityType.ENTITY_PLAYER) end +EID:AddCallback(ModCallbacks.MC_ENTITY_TAKE_DMG, EID.onSacrificeDamage, EntityType.ENTITY_PLAYER) --------------------------------------------------------------------------- ------------------------Handle ALT FLOOR CHOICE---------------------------- @@ -576,7 +574,6 @@ function EID:printDescription(desc) end end EID:printBulletPoints(desc.Description, renderPos) - end function EID:printBulletPoints(description, renderPos) @@ -827,7 +824,7 @@ function EID:onGameUpdate() end if not EID.Config["DisplayObstructedCardInfo"] or not EID.Config["DisplayObstructedPillInfo"] or not EID.Config["DisplayObstructedSoulstoneInfo"] then - if EID.lastDescriptionEntity == nil or (EID.Config["DisableObstructionOnFlight"] and EID.player.CanFly) then + if EID.lastDescriptionEntity == nil or EID.lastDescriptionEntity:GetData()["EID_Pathfound"] or (EID.Config["DisableObstructionOnFlight"] and EID.player.CanFly) then if EID.pathCheckerEntity ~= nil then EID.pathCheckerEntity:Remove() EID.pathCheckerEntity = nil @@ -851,6 +848,7 @@ function EID:onGameUpdate() EID.pathCheckerEntity.Position = EID.player.Position EID.hasValidWalkingpath = EID.pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(EID.lastDescriptionEntity.Position, false) EID.pathfindingTo = EID.lastDescriptionEntity + EID.lastDescriptionEntity:GetData()["EID_Pathfound"] = EID.hasValidWalkingpath end end @@ -863,6 +861,7 @@ function EID:updatePathfinding() EID.pathCheckerEntity.Position = EID.player.Position EID.hasValidWalkingpath = EID.pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(EID.lastDescriptionEntity.Position, false) EID.pathfindingTo = EID.lastDescriptionEntity + EID.lastDescriptionEntity:GetData()["EID_Pathfound"] = EID.hasValidWalkingpath end local hasShownAchievementWarning = false From 2e7118cbda07e16c7377653e4be91d781b3df9dd Mon Sep 17 00:00:00 2001 From: kohashiwakaba Date: Sat, 22 Jan 2022 16:44:19 +0900 Subject: [PATCH 09/26] ko_kr : fixed some errors from Blood of Martyr, Missing Page --- descriptions/ab+/ko_kr.lua | 2 +- descriptions/rep/ko_kr.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/descriptions/ab+/ko_kr.lua b/descriptions/ab+/ko_kr.lua index 548d0fbc..35c04346 100644 --- a/descriptions/ab+/ko_kr.lua +++ b/descriptions/ab+/ko_kr.lua @@ -39,7 +39,7 @@ EID.descriptions[languageCode].collectibles={ {"4", "크리켓의 머리", "↑ {{Damage}}공격력 +0.5#↑ {{Damage}}공격력 배율 x1.5"}, -- Cricket's Head {"5", "나의 모습", "↑ {{Range}}사거리 +1.5#↑ {{Shotspeed}}탄속 +0.6#공격이 캐릭터가 있는 방향으로 되돌아옵니다."}, -- My Reflection {"6", "오줌싸개", "↑ {{Tears}}연사 +1.5#↓ {{Range}}사거리 -15.78"}, -- Number One - {"7", "순교자의 피", "↑ {{Damage}}공격력 +1#{{Collectible35}}Necronomicon, 혹은 {{Card14}}The Death 효과가 발동 중인 경우 {{Damage}}공격력 배율 x1.5"}, -- Blood of the Martyr + {"7", "순교자의 피", "↑ {{Damage}}공격력 +1#{{Collectible34}}Book of the Belial, 혹은 {{Card16}}The Devil 효과가 발동 중인 경우 {{Damage}}공격력 배율 x1.5"}, -- Blood of the Martyr {"8", "보비", "공격하는 방향으로 공격력 3.5의 눈물을 발사합니다."}, -- Brother Bobby {"9", "스카톨", "파리류 적들이 공격하지 않거나 약해집니다."}, -- Skatole {"10", "파리떼", "캐릭터 주변을 돌며 적의 탄환을 막아주는 2마리의 파리 배리어를 얻습니다."}, -- Halo of Flies diff --git a/descriptions/rep/ko_kr.lua b/descriptions/rep/ko_kr.lua index 7cc01e25..1462f4d0 100644 --- a/descriptions/rep/ko_kr.lua +++ b/descriptions/rep/ko_kr.lua @@ -743,7 +743,7 @@ local repTrinkets={ [33] = {"33", "탯줄", "빨간하트가 1칸 이하일 때 {{Collectible100}}Little Steven을 소환합니다.#피격 시 확률적으로 그 방에서 {{Collectible318}}Gemini 패밀리어를 소환합니다."}, -- Umbilical Cord [34] = {"34", "아이의 심장", "방 클리어 보상이 10% 확률로 하트로 바뀝니다.#상자에서 빨간하트가 드랍될 확률이 증가합니다."}, -- Child's Heart [39] = {"39", "암", "↑ {{Tears}}연사 +1"}, -- Cancer - [48] = {"48", "찢어진 페이지", "피격 시 5%의 확률로 방 안의 모든 적에게 80의 피해를 줍니다.#!!! {{Luck}}행운 수치 비례#↑ 블랙하트와 {{Collectible35}}Necronomicon, {{Card14}}The Death의 공격력이 2 +40"}, -- A Missing Page + [48] = {"48", "찢어진 페이지", "피격 시 5%의 확률로 방 안의 모든 적에게 80의 피해를 줍니다.#!!! {{Luck}}행운 수치 비례#↑ 블랙하트와 {{Collectible35}}Necronomicon, {{Card14}}The Death의 공격력 +40"}, -- A Missing Page [49] = {"49", "피 묻은 동전", "동전 획득 시 25% 확률로 빨간하트를 반칸 드랍합니다."}, -- Bloody Penny [50] = {"50", "타버린 동전", "동전 획득 시 25% 확률로 폭탄을 하나 드랍합니다."}, -- Burnt Penny [51] = {"51", "납작한 동전", "동전 획득 시 25% 확률로 열쇠를 하나 드랍합니다."}, -- Flat Penny From 400069db57e250593e1d1c87d7d8dd2113c884ec Mon Sep 17 00:00:00 2001 From: kohashiwakaba Date: Sat, 22 Jan 2022 21:04:18 +0900 Subject: [PATCH 10/26] ko_kr : added missing tear height --- descriptions/ab+/ko_kr.lua | 66 +++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/descriptions/ab+/ko_kr.lua b/descriptions/ab+/ko_kr.lua index 35c04346..00e4bc95 100644 --- a/descriptions/ab+/ko_kr.lua +++ b/descriptions/ab+/ko_kr.lua @@ -37,16 +37,16 @@ EID.descriptions[languageCode].collectibles={ {"2", "내면의 눈", "↓ {{Tears}}공격 딜레이 x2.1+3#공격이 3발로 나갑니다."}, -- The Inner Eye {"3", "초능력자", "공격에 유도 효과가 생깁니다."}, -- Spoon Bender {"4", "크리켓의 머리", "↑ {{Damage}}공격력 +0.5#↑ {{Damage}}공격력 배율 x1.5"}, -- Cricket's Head - {"5", "나의 모습", "↑ {{Range}}사거리 +1.5#↑ {{Shotspeed}}탄속 +0.6#공격이 캐릭터가 있는 방향으로 되돌아옵니다."}, -- My Reflection - {"6", "오줌싸개", "↑ {{Tears}}연사 +1.5#↓ {{Range}}사거리 -15.78"}, -- Number One + {"5", "나의 모습", "↑ {{Range}}사거리 +1.5#↑ 눈물 높이 +1#↑ {{Shotspeed}}탄속 +0.6#공격이 캐릭터가 있는 방향으로 되돌아옵니다."}, -- My Reflection + {"6", "오줌싸개", "↑ {{Tears}}연사 +1.5#↓ {{Range}}사거리 -17.62#↑ 눈물 높이 +0.76"}, -- Number One {"7", "순교자의 피", "↑ {{Damage}}공격력 +1#{{Collectible34}}Book of the Belial, 혹은 {{Card16}}The Devil 효과가 발동 중인 경우 {{Damage}}공격력 배율 x1.5"}, -- Blood of the Martyr {"8", "보비", "공격하는 방향으로 공격력 3.5의 눈물을 발사합니다."}, -- Brother Bobby {"9", "스카톨", "파리류 적들이 공격하지 않거나 약해집니다."}, -- Skatole {"10", "파리떼", "캐릭터 주변을 돌며 적의 탄환을 막아주는 2마리의 파리 배리어를 얻습니다."}, -- Halo of Flies {"11", "", "↑ 목숨 +1#사망 시 전 방에서 체력이 꽉 찬 상태로 부활합니다."}, -- 1up! - {"12", "마법의 버섯", "↑ 최대 체력 +1#체력을 모두 회복합니다.#↑ {{Damage}}공격력 +0.5#↑ {{Damage}}공격력 배율 x1.5#↑ {{Range}}사거리 +5.25#↑ {{Speed}}이동속도 +0.3#캐릭터의 크기가 커집니다."}, -- Magic Mushroom + {"12", "마법의 버섯", "↑ 최대 체력 +1#체력을 모두 회복합니다.#↑ {{Damage}}공격력 +0.5#↑ {{Damage}}공격력 배율 x1.5#↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5#↑ {{Speed}}이동속도 +0.3#캐릭터의 크기가 커집니다."}, -- Magic Mushroom {"13", "바이러스", "↓ {{Speed}}이동속도 -0.1#적에게 접촉시 적에게 12의 피해를 주고 적을 중독시킵니다.#중독된 적이 죽을시 20% 확률로 블랙하트가 드랍됩니다."}, -- The Virus - {"14", "불량 스테로이드", "↑ {{Range}}사거리 +5.25#↑ {{Speed}}이동속도 +0.6"}, -- Roid Rage + {"14", "불량 스테로이드", "↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5#↑ {{Speed}}이동속도 +0.6"}, -- Roid Rage {"15", "♡", "↑ 최대 체력 +1 #체력을 모두 회복합니다."}, -- <3 {"16", "생간", "↑ 최대 체력 +2#체력을 모두 회복합니다."}, -- Raw Liver {"17", "해골 열쇠", "↑ 열쇠 +99"}, -- Skeleton Key @@ -61,9 +61,9 @@ EID.descriptions[languageCode].collectibles={ {"26", "썩은 고기", "↑ 최대 체력 +1"}, -- Rotten Meat {"27", "나무 숟가락", "↑ {{Speed}}이동속도 +0.3"}, -- Wooden Spoon {"28", "벨트", "↑ {{Speed}}이동속도 +0.3"}, -- The Belt - {"29", "엄마의 속옷", "↑ {{Range}}사거리 +5.25"}, -- Mom's Underwear - {"30", "엄마의 하이힐", "↑ {{Range}}사거리 +5.25"}, -- Mom's Heels - {"31", "엄마의 립스틱", "↑ {{Range}}사거리 +5.25"}, -- Mom's Lipstick + {"29", "엄마의 속옷", "↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5"}, -- Mom's Underwear + {"30", "엄마의 하이힐", "↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5"}, -- Mom's Heels + {"31", "엄마의 립스틱", "↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5"}, -- Mom's Lipstick {"32", "철제 옷걸이", "↑ {{Tears}}연사 +0.7"}, -- Wire Coat Hanger {"33", "성경", "사용 시 그 방에서 비행 능력을 얻습니다.#Mom/Mom's Heart/It Lives 보스에게 사용 시 보스를 즉사시킵니다.#!!! Satan 보스에게 사용 시 캐릭터가 즉사합니다."}, -- The Bible {"34", "벨리알의 책", "사용 시 그 방에서 {{Damage}}공격력 +2 증가하며 {{Collectible7}}Blood of the Martyr 소지 시 {{Damage}}공격력 배율 x1.5 추가 적용#소지중일 때 {{DevilChance}} 악마방 확률 +12.5%"}, -- The Book of Belial @@ -133,7 +133,7 @@ EID.descriptions[languageCode].collectibles={ {"98", "성유물", "방 5~6개 클리어 시 소울하트를 하나 드랍합니다. "}, -- The Relic {"99", "리틀 기쉬", "공격하는 방향으로 공격력 3.5의 적을 둔화시키는 눈물을 발사합니다."}, -- Little Gish {"100", "리틀 스티븐", "공격하는 방향으로 공격력 3.5의 유도 눈물을 발사합니다."}, -- Little Steven - {"101", "광륜", "↑ 최대 체력 +1#↑ {{Damage}}공격력 +0.3#↑ {{Tears}}연사 +0.2#↑ {{Range}}사거리 +0.25#↑ {{Speed}}이동속도 +0.3"}, -- The Halo + {"101", "광륜", "↑ 최대 체력 +1#↑ {{Damage}}공격력 +0.3#↑ {{Tears}}연사 +0.2#↑ {{Range}}사거리 +0.25#↑ 눈물 높이 +0.5#↑ {{Speed}}이동속도 +0.3"}, -- The Halo {"102", "엄마의 약병", "사용 시 알약을 하나 드랍합니다."}, -- Mom's Bottle of Pills {"103", "감기", "25%의 확률로 적을 중독시키는 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례: 행운 12 이상일 때 100% 확률"}, -- The Common Cold {"104", "기생충", "눈물이 무언가에 부딪힐 때마다 양옆으로 갈라집니다.#갈라진 눈물의 공격력은 갈라지기 이전의 절반입니다."}, -- The Parasite @@ -142,7 +142,7 @@ EID.descriptions[languageCode].collectibles={ {"107", "핑킹 가위", "사용 시 그 방에서 비행 능력을 얻으며 몸이 분리됩니다.#분리된 몸은 적을 따라다니며 접촉한 적에게 초당 82.5의 피해를 입힙니다."}, -- The Pinking Shears {"108", "제병", "캐릭터가 받는 모든 피해가 체력 반칸으로 고정됩니다."}, -- The Wafer {"109", "돈 = 힘", "동전 1개당 {{Damage}}공격력 +0.04#{{Blank}} (최대 +3.96)"}, -- Money = Power - {"110", "엄마의 콘텍트렌즈", "↑ {{Range}}사거리 +0.25#20%의 확률로 적을 멈추게 만드는 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례: 행운 20 이상일 때 50% 확률"}, -- Mom's Contacts + {"110", "엄마의 콘텍트렌즈", "↑ {{Range}}사거리 +0.25#↑ 눈물 높이 +0.5#20%의 확률로 적을 멈추게 만드는 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례: 행운 20 이상일 때 50% 확률"}, -- Mom's Contacts {"111", "콩", "사용 시 독방귀를 뀝니다."}, -- The Bean {"112", "수호천사", "캐릭터 주위를 돌며 적의 탄환을 막아줍니다. #캐릭터 주변을 도는 패밀리어들의 속도가 2배로 증가합니다."}, -- Guardian Angel {"113", "악마 아기", "적이 있는 방향으로 공격력 3의 빠른 눈물을 자동으로 발사합니다."}, -- Demon Baby @@ -153,7 +153,7 @@ EID.descriptions[languageCode].collectibles={ {"118", "유황", "공격이 충전형 혈사포 공격으로 변경됩니다.#혈사포는 다단히트로 최대 13번의 피해를 입힙니다."}, -- Brimstone {"119", "혈액 팩", "↑ 최대 체력 +1#↑ 빨간하트 +4#↑ {{Speed}}이동속도 +0.3"}, -- Blood Bag {"120", "이상한 버섯", "↓ {{Damage}}공격력 x0.9 -0.4#↑ {{Tears}}연사 +1.7#↑ {{Speed}}이동속도 +0.3#캐릭터의 머리가 작아집니다."}, -- Odd Mushroom - {"121", "이상한 버섯", "↑ 빈 최대 체력 +1#↑ {{Damage}}공격력 +0.3#↑ {{Range}}사거리 +0.25#↓ {{Speed}}이동속도 -0.1#캐릭터의 머리가 커집니다."}, -- Odd Mushroom + {"121", "이상한 버섯", "↑ 빈 최대 체력 +1#↑ {{Damage}}공격력 +0.3#↑ {{Range}}사거리 +0.25#↑ 눈물 높이 +0.5#↓ {{Speed}}이동속도 -0.1#캐릭터의 머리가 커집니다."}, -- Odd Mushroom {"122", "바빌론의 창녀", "!!! 빨간하트가 반칸 이하일 때: # {{Damage}}공격력 +1.5, {{Speed}}이동속도 +0.3"}, -- Whore of Babylon {"123", "몬스터 도감", "사용 시 그 방에서 랜덤한 패밀리어를 하나 소환합니다."}, -- Monster Manual {"124", "사해사본", "사용 시 랜덤한 액티브 아이템의 효과를 발동합니다."}, -- Dead Sea Scrolls @@ -214,14 +214,14 @@ EID.descriptions[languageCode].collectibles={ {"179", "운명", "↑ 이터널하트 +1#비행 능력을 얻습니다."}, -- Fate {"180", "검은 콩", "피격 시 독방귀를 뀝니다."}, -- The Black Bean {"181", "하얀 조랑말", "소지중일 때 비행 능력을 얻습니다.# {{Speed}}이동속도가 1.5 이상으로 고정됩니다.#사용 시 바라보는 방향으로 돌진하여 접촉한 적에게 40의 피해를 입히고 5개의 빛줄기를 소환합니다."}, -- White Pony - {"182", "성스러운 심장", "↑ 최대 체력 +1#체력을 모두 회복합니다.#↑ {{Damage}}공격력 +1#↑ {{Damage}}공격력 배율 x2.3#↓ {{Tears}}연사 -0.4#↑ {{Range}}사거리 +0.38#↓ {{Shotspeed}}탄속 -0.25#공격에 유도 효과가 생깁니다.#폭탄에 유도 효과가 생깁니다."}, -- Sacred Heart + {"182", "성스러운 심장", "↑ 최대 체력 +1#체력을 모두 회복합니다.#↑ {{Damage}}공격력 +1#↑ {{Damage}}공격력 배율 x2.3#↓ {{Tears}}연사 -0.4#↑ {{Range}}사거리 +0.38#↑ 눈물 높이 +0.75#↓ {{Shotspeed}}탄속 -0.25#공격에 유도 효과가 생깁니다.#폭탄에 유도 효과가 생깁니다."}, -- Sacred Heart {"183", "이쑤시개", "↑ {{Tears}}연사 +0.7#↑ {{Shotspeed}}탄속 +0.16"}, -- Tooth Picks {"184", "신성한 성배", "↑ 최대 체력 +1#비행 능력을 얻습니다."}, -- Holy Grail {"185", "죽은 비둘기", "비행 능력을 얻습니다.#공격이 장애물을 관통합니다."}, -- Dead Dove {"186", "피의 권리", "사용 시 체력을 1칸 깎고 방 안의 모든 적에게 40의 피해를 줍니다."}, -- Blood Rights {"187", "구피의 털뭉치", "캐릭터 주위에서 움직이며 접촉한 적에게 초당 성장단계x2 +3의 피해를 입힙니다.#단계는 적을 처치할수록 증가합니다."}, -- Guppy's Hairball {"188", "아벨", "캐릭터의 반대로 움직이며 캐릭터가 있는 방향으로 공격력 3.5의 눈물을 발사합니다."}, -- Abel - {"189", "슈미보 광팬", "↑ 최대 체력 +1#체력을 모두 회복합니다.#↑ {{Damage}}공격력 +0.3#↑ {{Tears}}연사 +0.2#↑ {{Range}}사거리 +0.5#↑ {{Speed}}이동속도 +0.2"}, -- SMB Super Fan + {"189", "슈미보 광팬", "↑ 최대 체력 +1#체력을 모두 회복합니다.#↑ {{Damage}}공격력 +0.3#↑ {{Tears}}연사 +0.2#↑ {{Range}}사거리 +0.5#↑ 눈물 높이 +1#↑ {{Speed}}이동속도 +0.2"}, -- SMB Super Fan {"190", "폭탄마", "↑ 폭탄 +99"}, -- Pyro {"191", "3달러 지폐", "3초마다 두 종류의 랜덤한 눈물 효과가 적용됩니다."}, -- 3 Dollar Bill {"192", "천재반을 위한 텔레파시법", "사용 시 그 방에서 공격이 적에게 유도됩니다."}, -- Telepathy For Dummies @@ -229,7 +229,7 @@ EID.descriptions[languageCode].collectibles={ {"194", "마법의 8번 공", "↑ {{Shotspeed}}탄속 +0.16#카드를 하나 드랍합니다."}, -- Magic 8 Ball {"195", "엄마의 동전 지갑", "알약을 4개 드랍합니다."}, -- Mom's Coin Purse {"196", "쥐어짜기 장난감", "↑ {{Tears}}연사 +0.4#소울하트를 2개 드랍합니다."}, -- Squeezy - {"197", "예수 주스", "↑ {{Damage}}공격력 +0.5#↑ {{Range}}사거리 +0.25"}, -- Jesus Juice + {"197", "예수 주스", "↑ {{Damage}}공격력 +0.5#↑ {{Range}}사거리 +0.25#↑ 눈물 높이 +0.5"}, -- Jesus Juice {"198", "상자", "모든 종류의 픽업 아이템을 하나씩 드랍합니다."}, -- Box {"199", "엄마의 열쇠", "↑ 열쇠 +2#상자를 열 때 드랍되는 픽업 아이템의 수가 증가합니다."}, -- Mom's Key {"200", "엄마의 아이섀도우", "10%의 확률로 적을 매혹시키는 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례"}, -- Mom's Eyeshadow @@ -265,7 +265,7 @@ EID.descriptions[languageCode].collectibles={ {"230", "아바돈", "최대 체력이 모두 제거됩니다.#↑ 블랙하트 +6#↑ {{Damage}}공격력 +1.5#↑ {{Speed}}이동속도 +0.2#12.5%의 확률로 적을 도망가게 하는 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례"}, -- Abaddon {"231", "타르 덩어리", "캐릭터가 지나간 자리에 검은 장판이 생기며 닿은 적은 느려집니다.#10%의 확률로 적을 둔화시키는 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례: 행운 18 이상일 때 100% 확률"}, -- Ball of Tar {"232", "스톱워치", "↑ {{Speed}}이동속도 +0.3#피격 시 방 안의 모든 적들을 영구적으로 둔화시킵니다."}, -- Stop Watch - {"233", "소행성", "공격이 장애물을 관통합니다.#공격이 캐릭터 주위를 돌면서 발사됩니다."}, -- Tiny Planet + {"233", "소행성", "↑ 눈물 높이 +7#공격이 장애물을 관통합니다.#공격이 캐릭터 주위를 돌면서 발사됩니다."}, -- Tiny Planet {"234", "감염 2", "적 처치 시 파란 아군 거미를 소환합니다."}, -- Infestation 2 {"235", "", ""}, -- {"236", "대장균", "적에게 접촉 시 접촉한 적을 똥으로 만듭니다."}, -- E. Coli @@ -363,21 +363,21 @@ EID.descriptions[languageCode].collectibles={ {"328", "반전사진", "피격 시 빨간하트가 반칸 이하일 때 방 안의 모든 적에게 40의 피해를 줍니다.#Dark Room 스테이지 입장에 필요한 아이템입니다."}, -- The Negative {"329", "루도비코 요법", "공격이 공격키로 조종 가능한 원격 원 공격으로 변경됩니다."}, -- The Ludovico Technique {"330", "두유", "↓ {{Damage}}공격력 배율 x0.2#↑ {{Tears}}연사 배율 x4 +2"}, -- Soy Milk - {"331", "신", "↑ {{Damage}}공격력 +0.5#↓ {{Tears}}연사 -0.3#↑ {{Range}}사거리 +1.2#↓ {{Shotspeed}}탄속 -0.3#공격이 적에게 유도됩니다.#눈물에 후광이 생기며 후광에 닿은 적은 초당 공격력의 129%의 피해를 입습니다."}, -- Godhead + {"331", "신", "↑ {{Damage}}공격력 +0.5#↓ {{Tears}}연사 -0.3#↑ {{Range}}사거리 +1.2#↑ 눈물 높이 +0.8#↓ {{Shotspeed}}탄속 -0.3#공격이 적에게 유도됩니다.#눈물에 후광이 생기며 후광에 닿은 적은 초당 공격력의 129%의 피해를 입습니다."}, -- Godhead {"332", "나사로의 붕대", "↑ 목숨 +1#사망 시 즉시 Lazarus2 캐릭터#{{Blank}} (체력 1, {{Damage}}공격력 배율 x1.2, Anemic)로 부활합니다."}, -- Lazarus' Rags {"333", "정신", "맵에 스테이지 구조, 특수방 위치, 비밀방 위치가 표시됩니다."}, -- The Mind {"334", "육체", "↑ 최대 체력 +3"}, -- The Body {"335", "영혼", "↑ 소울하트 +2#적의 탄환이 캐릭터를 피해갑니다."}, -- The Soul - {"336", "죽은 양파", "↑ {{Range}}사거리 +0.25#↓ {{Shotspeed}}탄속 -0.4#공격이 적과 장애물을 관통합니다."}, -- Dead Onion + {"336", "죽은 양파", "↑ {{Range}}사거리 +0.25#↓ 눈물 높이 -0.5#↓ {{Shotspeed}}탄속 -0.4#공격이 적과 장애물을 관통합니다."}, -- Dead Onion {"337", "부서진 시계", "4번째 방마다 방 안의 모든 적이 빨라지거나 느려집니다."}, -- Broken Watch {"338", "부메랑", "사용 후 공격하는 방향으로 부메랑을 던지며 맞은 적에게 공격력 x2의 피해를 입히고 2초간 멈추게 만듭니다."}, -- The Boomerang - {"339", "안전핀", "↑ 블랙하트 +1#↑ {{Range}}사거리 +5.25#↑ {{Shotspeed}}탄속 +0.16"}, -- Safety Pin + {"339", "안전핀", "↑ 블랙하트 +1#↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5#↑ {{Shotspeed}}탄속 +0.16"}, -- Safety Pin {"340", "카페인 정", "↑ {{Speed}}이동속도 +0.3#알약을 1개 드랍합니다.#캐릭터의 크기가 작아집니다."}, -- Caffeine Pill {"341", "찢어진 사진", "↑ {{Tears}}연사 +0.7#↑ {{Shotspeed}}탄속 +0.16"}, -- Torn Photo {"342", "파란 환각버섯", "↑ 최대 체력 +1#↑ {{Tears}}연사 +0.7#↓ {{Shotspeed}}탄속 -0.16"}, -- Blue Cap {"343", "현관 열쇠", "↑ 소울하트 +1#↑ {{Luck}}행운 +1#열쇠를 2개 드랍합니다."}, -- Latch Key {"344", "종이 성냥", "↑ 블랙하트 +1#폭탄을 2~3개 드랍합니다."}, -- Match Book - {"345", "합성 스테로이드", "↑ {{Damage}}공격력 +1#↑ {{Range}}사거리 +5.25"}, -- Synthoil + {"345", "합성 스테로이드", "↑ {{Damage}}공격력 +1#↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5"}, -- Synthoil {"346", "과자", "↑ 최대 체력 +1"}, -- A Snack {"347", "복시", "!!! 일회용#사용 시 방 안의 모든 아이템과 픽업 아이템을 두배로 복사합니다."}, -- Diplopia {"348", "위약", "사용 시 현재 소지중인 알약의 효과를 발동합니다."}, -- Placebo @@ -387,7 +387,7 @@ EID.descriptions[languageCode].collectibles={ {"352", "유리 대포", "사용 시 전체 체력이 0.5칸이 되며 장애물을 관통하는 (공격력+1) x10의 눈물을 발사합니다."}, -- Glass Cannon {"353", "봄버맨", "↑ 폭탄 +5#폭탄의 범위가 십자방향으로 두칸 증가합니다."}, -- Bomber Boy {"354", "식품 완구", "↑ 최대 체력 +1#장신구를 하나 드랍합니다."}, -- Crack Jacks - {"355", "엄마의 진주목걸이", "↑ {{Range}}사거리 +1.25#↑ {{Luck}}행운 +1"}, -- Mom's Pearls + {"355", "엄마의 진주목걸이", "↑ {{Range}}사거리 +1.25#↑ 눈물 높이 +0.5#↑ {{Luck}}행운 +1"}, -- Mom's Pearls {"356", "자동차 건전지", "액티브 아이템 사용 시 효과가 두번 발동됩니다."}, -- Car Battery {"357", "친구 상자", "사용 시 그 방에서 소지중인 패밀리어를 복사합니다.#패밀리어가 없다면 그 방에서 {{Collectible113}}Demon Baby 패밀리어를 소환합니다."}, -- Box of Friends {"358", "법사", "공격이 2발로 나가며 각각 대각선으로 나갑니다.#공격이 장애물을 관통합니다."}, -- The Wiz @@ -401,8 +401,8 @@ EID.descriptions[languageCode].collectibles={ {"366", "분산형 폭탄", "↑ 폭탄 +5#폭탄이 터지면 작은 폭탄 2~4개가 나와 한번 더 폭발합니다."}, -- Scatter Bombs {"367", "끈끈이 폭탄", "↑ 폭탄 +5#폭탄이 적에게 접촉 시 달라붙으며 달라붙은 상태에서 폭발 시 파란 아군 거미 2~5마리를 소환합니다."}, -- Sticky Bombs {"368", "유루증", "눈물을 한 방향으로만 발사 시 {{Tears}}연사가 지속적으로 증가합니다."}, -- Epiphora - {"369", "연속체", "↑ {{Range}}사거리 +2.25#공격이 장애물을 관통합니다.#공격이 벽 바깥으로 나갈시 반대편 벽으로 이어서 발사됩니다."}, -- Continuum - {"370", "돌리 씨", "↑ {{Tears}}연사 +0.7#↑ {{Range}}사거리 +5.25#빨간하트, 소울하트, 블랙하트 중 3개를 랜덤하게 드랍합니다."}, -- Mr. Dolly + {"369", "연속체", "↑ {{Range}}사거리 +2.25#↑ 눈물 높이 +1.5#공격이 장애물을 관통합니다.#공격이 벽 바깥으로 나갈시 반대편 벽으로 이어서 발사됩니다."}, -- Continuum + {"370", "돌리 씨", "↑ {{Tears}}연사 +0.7#↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5#빨간하트, 소울하트, 블랙하트 중 3개를 랜덤하게 드랍합니다."}, -- Mr. Dolly {"371", "바벨탑의 저주", "피격 시 방 안에 트롤폭탄 6개를 생성합니다."}, -- Curse of the Tower {"372", "충전지 아기", "방안에 적이 있을 때 랜덤으로 배터리를 드랍하거나, 액티브 아이템의 충전량을 한칸 채워주거나, 모든 적을 2초간 석화 상태로 만듭니다."}, -- Charged Baby {"373", "명사수의 눈", "눈물이 적에게 명중할 때마다 {{Damage}}공격력이 +25%씩 최대 2배까지 증가합니다.#눈물이 빗나갈 시 일정 확률로 공격력 증가치가 초기화 됩니다."}, -- Dead Eye @@ -426,7 +426,7 @@ EID.descriptions[languageCode].collectibles={ {"391", "배신", "피격 시 방 안의 모든 적을 5초간 매혹시킵니다."}, -- Betrayal {"392", "황도궁", "스테이지마다 랜덤한 별자리 아이템의 효과를 가집니다."}, -- Zodiac {"393", "독뱀의 키스", "확률적으로 적을 중독시키는 공격이 나갑니다.#중독된 적이 죽을때 20% 확률로 블랙하트가 드랍됩니다."}, -- Serpent's Kiss - {"394", "조준", "↑ {{Tears}}연사 +0.7#↑ {{Range}}사거리 +3.15#조준점을 조종할 수 있으며 자동으로 조준점이 있는 방향을 향해 눈물을 발사합니다."}, -- Marked + {"394", "조준", "↑ {{Tears}}연사 +0.7#↑ {{Range}}사거리 +3.15#↑ 눈물 높이 +0.3#조준점을 조종할 수 있으며 자동으로 조준점이 있는 방향을 향해 눈물을 발사합니다."}, -- Marked {"395", "기계 X", "공격이 충전형 레이저 고리 공격으로 변경됩니다.#레이저는 사거리 제한이 없으며 적과 장애물을 관통합니다."}, -- Tech X {"396", "심실 절단기", "사용 시 파란 포탈을 생성하고, 다음 사용 시 주황 포탈을 생성합니다.#각 포탈로 입장하면 다른쪽 포탈로 나올 수 있습니다."}, -- Ventricle Razor {"397", "조종 광선", "↑ {{Tears}}연사 +0.5#↑ {{Range}}사거리 +5.25#↑ {{Shotspeed}}탄속 +0.16#눈물이 캐릭터가 바라보는 방향의 일직선으로만 나갑니다."}, -- Tractor Beam @@ -439,7 +439,7 @@ EID.descriptions[languageCode].collectibles={ {"404", "방귀쟁이 아기", "캐릭터를 따라다니며 적의 탄환을 막아줍니다.#탄환을 막을 시 10% 확률로 랜덤한 효과의 방귀를 뀝니다."}, -- Farting Baby {"405", "게임 버그", "대각선으로 돌아다니며 접촉한 적에게 랜덤한 상태이상을 부여합니다."}, -- GB Bug {"406", "8면 주사위", "사용 시 {{Damage}}공격력, {{Tears}}연사, {{Range}}사거리, {{Speed}}이동속도 배율을 랜덤으로 바꿉니다."}, -- D8 - {"407", "순도", "캐릭터 머리에 오라가 생기며 오라 색에 따라 특정 능력치가 증가합니다.#피격시 비활성화되며 방 이동시 다른 색으로 변합니다.#{{ColorRed}}빨강:{{CR}} {{Damage}}공격력 +4.0#{{ColorCyan}}파랑:{{CR}} {{Tears}}연사 +1.2#{{ColorOrange}}주황:{{CR}} {{Range}}사거리 +7.5#{{ColorYellow}}노랑:{{CR}} {{Speed}}이동속도 +0.5"}, -- Purity + {"407", "순도", "캐릭터 머리에 오라가 생기며 오라 색에 따라 특정 능력치가 증가합니다.#피격시 비활성화되며 방 이동시 다른 색으로 변합니다.#{{ColorRed}}빨강:{{CR}} {{Damage}}공격력 +4.0#{{ColorCyan}}파랑:{{CR}} {{Tears}}연사 +1.2#{{ColorOrange}}주황:{{CR}} {{Range}}사거리 +7.5, 눈물 높이 +1#{{ColorYellow}}노랑:{{CR}} {{Speed}}이동속도 +0.5"}, -- Purity {"408", "마법 단검", "피격 시 캐릭터 주위에 검은 고리가 둘러져 접촉한 적에게 현재 공격력만큼의 피해를 줍니다.#고리로 적 처치 시 15% 확률로 블랙하트를 드랍합니다."}, -- Athame {"409", "빈 그릇", "↑ 블랙하트 +2#빨간하트가 없을 때 비행 능력을 얻으며 40초마다 10초간 무적 상태가 됩니다."}, -- Empty Vessel {"410", "악마의 눈", "공격 시 확률적으로 푸른 눈을 발사하며 눈은 날아가면서 캐릭터가 공격하는 방향으로 캐릭터의 눈물 효과와 같은 눈물을 발사합니다."}, -- Evil Eye @@ -447,7 +447,7 @@ EID.descriptions[languageCode].collectibles={ {"412", "몽마의 자식들", "일정 횟수만큼 피격받을 시 악마류 패밀리어를 영구적으로 소환합니다.#{{Blank}} (최대 4마리)"}, -- Cambion Conception {"413", "원죄없는 잉태", "일정 개수만큼 하트 픽업 획득 시 천사류 패밀리어를 영구적으로 소환합니다.#{{Blank}} (최대 5마리)"}, -- Immaculate Conception {"414", "더 많은 선택권", "{{TreasureRoom}}보물방 아이템이 2개가 나오며 하나를 선택하면 나머지는 사라집니다."}, -- More Options - {"415", "빛의 왕관", "↑ 소울하트 +2#최대 체력이 모두 차있거나 빨간하트가 없을 때 {{Damage}}공격력이 2배 증가합니다.#피격 시 그 방에서만 비활성화됩니다."}, -- Crown Of Light + {"415", "빛의 왕관", "↑ 소울하트 +2#최대 체력이 모두 차있거나 빨간하트가 없을 때:#↑ {{Damage}}공격력 배율 x2#↑ {{Range}}사거리 +5.25#↑ 눈물 높이 +0.5#↓ {{Shotspeed}}탄속 -0.3#피격 시 그 방에서 비활성화됩니다."}, -- Crown Of Light {"416", "넓은 가방", "카드 또는 알약을 2개 들 수 있습니다."}, -- Deep Pockets {"417", "서큐버스", "오라를 가지고 대각선으로 이동하며 오라 안에 들어온 적에게 초당 공격력의 129%의 피해를 입히고, 캐릭터가 들어오면 {{Damage}}공격력을 x1.5 증가시켜줍니다."}, -- Succubus {"418", "과일 케이크", "눈물을 발사할 때마다 눈물의 효과가 바뀝니다."}, -- Fruit Cake @@ -474,7 +474,7 @@ EID.descriptions[languageCode].collectibles={ {"439", "엄마의 상자", "사용 시 랜덤한 장신구를 하나 드랍합니다.#소지중일 때 {{Luck}}행운이 1 증가하며 들고있는 장신구의 효과가 2배 증가합니다."}, -- Mom's Box {"440", "신장 결석", "↓ {{Range}}사거리 -15#↓ {{Speed}}최대 이동속도 -0.2#공격중에 때때로 충전이 진행되고 충전이 끝났을 때 공격키를 떼면 {{Tears}}연사가 최대가 되며 눈물을 한번에 발사합니다."}, -- Kidney Stone {"441", "메가 블래스트", "사용 시 15초 동안 공격력 x5의 대형 혈사포를 발사합니다."}, -- Mega Blast - {"442", "암흑 왕자의 왕관", "빨간하트가 1칸일 때 {{Tears}}연사 +0.7, {{Range}}사거리 +1.5, {{Shotspeed}}탄속 +0.2"}, -- Dark Princes Crown + {"442", "암흑 왕자의 왕관", "빨간하트가 1칸일 때 {{Tears}}연사 +0.7, {{Range}}사거리 +1.5, 눈물 높이 +1, {{Shotspeed}}탄속 +0.2"}, -- Dark Princes Crown {"443", "사과!", "↑ {{Tears}}연사 +0.3#일정 확률로 공격력 x4의 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례: 행운 14 이상일 때 100% 확률"}, -- Apple! {"444", "연필", "눈물을 15번 발사할 때마다 공격력 x2의 눈물 다발이 나갑니다."}, -- Lead Pencil {"445", "개 이빨", "↑ {{Damage}}공격력 +0.3#↑ {{Speed}}이동속도 +0.1#방에 {{SecretRoom}}{{SuperSecretRoom}}비밀방이나 {{LadderRoom}}사다리방이 연결되어 있을 경우 개 울음소리가 납니다."}, -- Dog Tooth @@ -485,16 +485,16 @@ EID.descriptions[languageCode].collectibles={ {"450", "탐욕의 눈", "눈물을 20번 발사할 때마다 동전을 1개 소모하고 적을 멈추게 만드는 눈물을 발사합니다.#멈춘 적 처치 시 동전을 1~4개 드랍합니다."}, -- Eye of Greed {"451", "타로 천", "카드 또는 룬을 하나 드랍합니다.#카드 또는 룬 사용 시 효과가 두번 발동합니다."}, -- Tarot Cloth {"452", "정맥류", "피격 시 캐릭터 기준 10방향으로 공격력 +25의 눈물을 발사합니다."}, -- Varicose Veins - {"453", "복합 골절", "↑ {{Range}}사거리 +1.5#눈물이 무언가에 부딪힐 때 1~3갈래로 갈라집니다."}, -- Compound Fracture + {"453", "복합 골절", "↑ {{Range}}사거리 +1.5#↑ 눈물 높이 +1#눈물이 무언가에 부딪힐 때 1~3갈래로 갈라집니다."}, -- Compound Fracture {"454", "다지증", "카드 또는 알약을 하나 드랍합니다.#카드 또는 알약을 2개 들 수 있습니다."}, -- Polydactyly - {"455", "아빠의 잃어버린 동전", "↑ {{Range}}사거리 +1.5#행운 동전을 하나 드랍합니다."}, -- Dad's Lost Coin + {"455", "아빠의 잃어버린 동전", "↑ {{Range}}사거리 +1.5#↑ 눈물 높이 +1#행운 동전을 하나 드랍합니다."}, -- Dad's Lost Coin {"456", "곰팡이 핀 빵", "↑ 최대 체력 +1"}, -- Moldy Bread {"457", "콘헤드", "↑ 소울하트 +1#피격 시 20% 확률로 피해를 무시합니다."}, -- Cone Head {"458", "배꼽", "장신구를 하나 드랍합니다.#장신구를 두개 들 수 있습니다."}, -- Belly Button {"459", "축농증", "확률적으로 접착 눈물이 나가며 접착 눈물이 적에게 붙을 시 60초동안 지속 피해를 입힙니다."}, -- Sinus Infection {"460", "녹내장", "확률적으로 적을 혼란하게 하는 공격이 나갑니다.#화면이 조금 어두워집니다."}, -- Glaucoma {"461", "기생자", "확률적으로 알주머니 눈물이 나가며 알주머니가 적에게 명중 시 파란 아군 거미 또는 파리를 소환합니다."}, -- Parasitoid - {"462", "벨리알의 눈", "↑ {{Range}}사거리 +1.5#눈물이 적을 관통하며 관통한 눈물은 적에게 유도되고 공격력이 2배 증가합니다."}, -- Eye of Belial + {"462", "벨리알의 눈", "↑ {{Range}}사거리 +1.5#↑ 눈물 높이 +1#눈물이 적을 관통하며 관통한 눈물은 적에게 유도되고 공격력이 2배 증가합니다."}, -- Eye of Belial {"463", "황산", "↑ {{Damage}}공격력 +0.3#확률적으로 오브젝트를 부수는 눈물이 나갑니다."}, -- Sulfuric Acid {"464", "균형의 문장", "↑ 소울하트 +2#소지중인 픽업 아이템의 개수에 따라 챔피언 적이 드랍하는 보상이 달라집니다."}, -- Glyph of Balance {"465", "아날로그 스틱", "↑ {{Tears}}연사 +0.3#공격을 360도로 발사할 수 있습니다."}, -- Analog Stick @@ -512,7 +512,7 @@ EID.descriptions[languageCode].collectibles={ {"477", "공허", "사용 시 방 안의 아이템을 흡수합니다.#액티브 흡수 시 아이템을 사용할 때마다 흡수한 액티브의 효과가 발동됩니다.#패시브 흡수 시 랜덤한 능력치가 2개 증가합니다."}, -- Void {"478", "일시정지", "사용 시 방 안의 모든 적의 움직임이 30초간 멈춥니다.#공격키를 누르면 효과가 풀립니다."}, -- Pause {"479", "용광로", "사용 시 소지중인 장신구를 흡수해 효과를 영구적으로 얻습니다."}, -- Smelter - {"480", "퇴비", "사용 시 방 안의 픽업 아이템을 흡수하고 흡수한 개수만큼 파란 아군 파리 및 거미를 소환합니다."}, -- Compost + {"480", "퇴비", "사용 시 방 안의 픽업 아이템을 흡수하고 흡수한 개수만큼 파란 아군 파리 및 거미를 소환하며 현재 소지 중인 파란 아군 파리 및 거미를 2배로 늘립니다.#파란 아군 파리 및 거미가 하나도 없을 경우 둘 중 한마리를 소환합니다."}, -- Compost {"481", "데이터마이너", "사용 시 그 방에서 능력치가 랜덤으로 증가하거나 감소하며 눈물에 랜덤한 효과가 부여됩니다."}, -- Dataminer {"482", "클리커", "사용 시 가장 최근에 획득한 패시브 아이템을 제거하고 캐릭터를 랜덤하게 바꿉니다."}, -- Clicker {"483", "맘마 메가!", "!!! 일회용#사용 시 그 스테이지에서 방 입장 시 방 안의 모든 적에게 200의 폭발 피해를 입힙니다.#사용 후 {{BossRoom}}보스방을 처음 입장한 경우에 한해 보스러시/Blue Womb으로 향하는 문이 열립니다."}, -- Mama Mega! @@ -653,8 +653,8 @@ EID.descriptions[languageCode].trinkets={ {"62", "빛나는 돌", "10초마다 색돌이나 {{LadderRoom}}사다리방이 있는 돌이 빛납니다."}, -- Shiny Rock {"63", "안전 가위", "트롤폭탄을 폭탄 픽업으로 바꿉니다.#슈퍼 트롤폭탄을 1+1 폭탄 픽업으로 바꿉니다."}, -- Safety Scissors {"64", "무지개 벌레", "3초마다 랜덤한 벌레 장신구 효과가 발동됩니다."}, -- Rainbow Worm - {"65", "테이프 벌레", "↑ {{Range}}사거리 x2"}, -- Tape Worm - {"66", "게으른 벌레", "↑ {{Range}}사거리 +4.0#↓ {{Shotspeed}}탄속 -0.4"}, -- Lazy Worm + {"65", "테이프 벌레", "↑ {{Range}}사거리 x2#↓ 눈물 높이 배율 x0.5"}, -- Tape Worm + {"66", "게으른 벌레", "↑ {{Range}}사거리 +4.0#↑ 눈물 높이 +2#↓ {{Shotspeed}}탄속 -0.4"}, -- Lazy Worm {"67", "금이 간 주사위", "피격 시 확률적으로 {{Collectible105}}방 안의 아이템, {{Collectible166}}픽업 아이템, {{Collectible386}}오브젝트 또는 {{Collectible406}}능력치 배율을 바꿉니다."}, -- Cracked Dice {"68", "네오디뮴 자석", "적과 픽업 아이템이 캐릭터에게 끌려옵니다."}, -- Super Magnet {"69", "흐려진 즉석사진", "때때로 방 안의 모든 적들이 혼란에 걸립니다."}, -- Faded Polaroid @@ -684,7 +684,7 @@ EID.descriptions[languageCode].trinkets={ {"93", "다 쓴 기저귀", "방 입장 시 확률적으로 파리류 적들이 공격하지 않거나 약해집니다."}, -- Used Diaper {"94", "생선 꼬리", "아군 파란 파리 또는 거미의 소환량이 2배 증가합니다."}, -- Fish Tail {"95", "검은 이빨", "3%의 확률로 공격력 2배의 적을 중독시키는 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례"}, -- Black Tooth - {"96", "우주뱀 벌레", "↑ {{Range}}사거리 +4#눈물이 거대한 나선을 그리며 날아갑니다.#공격이 장애물을 관통합니다."}, -- Ouroboros Worm + {"96", "우주뱀 벌레", "↑ {{Range}}사거리 +4#↑ 눈물 높이 +2#눈물이 거대한 나선을 그리며 날아갑니다.#공격이 장애물을 관통합니다."}, -- Ouroboros Worm {"97", "편도선", "12~20회 피격 시 {{Collectible474}}Tonsil을 획득합니다.#Tonsil은 캐릭터를 따라다니며 적의 탄환을 막아줍니다."}, -- Tonsil {"98", "콧물딱지", "확률적으로 유도되는 접착 눈물이 나가며 접착 눈물이 적에게 붙을 시 60초동안 지속 피해를 입힙니다."}, -- Nose Goblin {"99", "탱탱볼", "공격이 무언가에 부딪힐 때 반대 각도로 튕겨져 나갑니다."}, -- Super Ball @@ -732,7 +732,7 @@ EID.descriptions[languageCode].cards={ {"9", "VIII - 정의", "하트, 동전, 폭탄, 열쇠를 하나씩 드랍합니다."}, -- VIII - Justice {"10", "IX - 은둔자", "{{Shop}}상점으로 순간이동합니다."}, -- IX - The Hermit {"11", "X - 운명의 수레바퀴", "도박기계를 생성합니다."}, -- X - Wheel of Fortune - {"12", "XI - 힘", "그 방에서 최대 체력 +1, {{Damage}}공격력 +0.3, {{Damage}}공격력 배율 +50%, {{Range}}사거리 +5.25, {{Speed}}이동속도 +0.3"}, -- XI - Strength + {"12", "XI - 힘", "그 방에서 최대 체력 +1, {{Damage}}공격력 +0.3, {{Damage}}공격력 배율 +50%, {{Range}}사거리 +5.25, 눈물 높이 +0.5, {{Speed}}이동속도 +0.3"}, -- XI - Strength {"13", "XII - 매달린 남자", "그 방에서 비행 능력을 얻습니다."}, -- XII - The Hanged Man {"14", "XIII - 죽음", "방 안의 모든 적에게 40의 피해를 줍니다."}, -- XIII - Death {"15", "XIV - 절제", "헌혈기계를 생성합니다."}, -- XIV - Temperance From 4ee7f4fbd036eac5165f2dc65a0e826e29001df9 Mon Sep 17 00:00:00 2001 From: kohashiwakaba Date: Sat, 22 Jan 2022 21:21:15 +0900 Subject: [PATCH 11/26] ko_kr : updated sac rooms, and card/pills --- descriptions/ab+/ko_kr.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/descriptions/ab+/ko_kr.lua b/descriptions/ab+/ko_kr.lua index 00e4bc95..a671ca5e 100644 --- a/descriptions/ab+/ko_kr.lua +++ b/descriptions/ab+/ko_kr.lua @@ -724,24 +724,24 @@ EID.descriptions[languageCode].cards={ {"1", "0 - 바보", "스테이지의 첫 방으로 순간이동합니다."}, -- 0 - The Fool {"2", "I - 마법사", "그 방에서 공격이 적에게 유도됩니다."}, -- I - The Magician {"3", "II - 여교황", "엄마발이 랜덤한 적에게 떨어져 300의 피해를 입힙니다."}, -- II - The High Priestess - {"4", "III - 여제", "그 방에서 {{Damage}}공격력 +1.5, {{Speed}}이동속도 +0.3"}, -- III - The Empress + {"4", "III - 여제", "그 방에서 {{Damage}}공격력 +2.35, {{Speed}}이동속도 +0.3"}, -- III - The Empress {"5", "IV - 황제", "{{BossRoom}}보스방으로 순간이동합니다."}, -- IV - The Emperor {"6", "V - 교황", "소울하트를 2개 드랍합니다."}, -- V - The Hierophant {"7", "VI - 연인", "빨간하트를 2개 드랍합니다."}, -- VI - The Lovers {"8", "VII - 전차", "6초간 무적 상태가 되며 접촉한 적에게 40의 피해를 입힙니다."}, -- VII - The Chariot {"9", "VIII - 정의", "하트, 동전, 폭탄, 열쇠를 하나씩 드랍합니다."}, -- VIII - Justice {"10", "IX - 은둔자", "{{Shop}}상점으로 순간이동합니다."}, -- IX - The Hermit - {"11", "X - 운명의 수레바퀴", "도박기계를 생성합니다."}, -- X - Wheel of Fortune + {"11", "X - 운명의 수레바퀴", "도박기계, 혹은 운세기계를 생성합니다."}, -- X - Wheel of Fortune {"12", "XI - 힘", "그 방에서 최대 체력 +1, {{Damage}}공격력 +0.3, {{Damage}}공격력 배율 +50%, {{Range}}사거리 +5.25, 눈물 높이 +0.5, {{Speed}}이동속도 +0.3"}, -- XI - Strength {"13", "XII - 매달린 남자", "그 방에서 비행 능력을 얻습니다."}, -- XII - The Hanged Man {"14", "XIII - 죽음", "방 안의 모든 적에게 40의 피해를 줍니다."}, -- XIII - Death - {"15", "XIV - 절제", "헌혈기계를 생성합니다."}, -- XIV - Temperance + {"15", "XIV - 절제", "헌혈기계를 생성합니다.#Greed 모드에서는 악마거지를 소환합니다."}, -- XIV - Temperance {"16", "XV - 악마", "그 방에서 {{Damage}}공격력 +2"}, -- XV - The Devil {"17", "XVI - 탑", "방 안에 트롤폭탄을 6개 생성합니다."}, -- XVI - The Tower {"18", "XVII - 별", "{{TreasureRoom}}보물방으로 순간이동합니다."}, -- XVII - The Stars {"19", "XVIII - 달", "{{SecretRoom}}비밀방으로 순간이동합니다."}, -- XVIII - The Moon {"20", "XIX - 해", "맵에 스테이지 구조와 특수방 위치를 표시하며 방 안의 모든 적에게 100의 피해를 주고 체력을 모두 회복합니다."}, -- XIX - The Sun - {"21", "XX - 심판", "거지를 소환합니다."}, -- XX - Judgement + {"21", "XX - 심판", "랜덤 거지를 소환합니다."}, -- XX - Judgement {"22", "XXI - 세계", "맵에 스테이지 구조와 특수방 위치를 표시합니다."}, -- XXI - The World {"23", "클로버 2", "소지 중인 폭탄 x2"}, -- 2 of Clubs {"24", "다이아 2", "소지 중인 동전 x2"}, -- 2 of Diamonds @@ -825,7 +825,7 @@ EID.descriptions[languageCode].pills={ {"41", "완전 지루해...", "방 안의 모든 적들이 영구적으로 느려집니다."}, -- I'm Drowsy... {"42", "완전 신나!!!", "방 안의 모든 적들이 빨라집니다."}, -- I'm Excited!!! {"43", "꿀꺽!", "소지중인 장신구를 흡수해 효과를 영구적으로 얻습니다."}, -- Gulp! - {"44", "퉤엣!", "바라보는 방향으로 폭발하는 독성 눈물을 발사합니다."}, -- Horf! + {"44", "퉤엣!", "바라보는 방향으로 {{Collectible149}}폭발하는 독성 눈물을 발사합니다."}, -- Horf! {"45", "햇살 위를 걷는 기분이야!", "6초간 공격불능 무적 상태가 됩니다."}, -- Feels like I'm walking on sunshine! {"46", "끄어억!", "마지막으로 사용한 알약을 드랍합니다."}, -- Vurp! } @@ -834,14 +834,14 @@ EID.descriptions[languageCode].pills={ EID.descriptions[languageCode].sacrificeHeader = "희생 보상" EID.descriptions[languageCode].sacrifice={ - {"1", "희생 1회", "[50%] 동전 1개"}, - {"2", "희생 2회", "[50%] 동전 1개"}, + {"1", "희생 1회", "[50%] 동전 1개#[100%] 1분 이내로 스테이지 보스 클리어 시 폭탄 1개"}, + {"2", "희생 2회", "[50%] 동전 1개#[100%] 1분 이내로 스테이지 보스 클리어 시 폭탄 1개"}, {"3", "희생 3회", "[67%] {{AngelChance}}천사방 확률 +15%"}, {"4", "희생 4회", "[50%] 상자 1개"}, {"5", "희생 5회", "[67%] {{AngelChance}}천사방 확률 +50%#[33%] 동전 3개"}, {"6", "희생 6회", "[67%] 상자 1개#[33%] {{AngelRoom}}천사방/{{DevilRoom}}악마방으로 순간이동"}, {"7", "희생 7회", "[67%] 소울하트 1개#[33%] {{AngelRoom}}천사방 아이템 1개"}, - {"8", "희생 8회", "[100%] 트롤폭탄 6개"}, + {"8", "희생 8회", "[100%] 트롤폭탄 7개"}, {"9", "희생 9회", "[100%] 천사 Uriel 보스 소환"}, {"10", "희생 10회", "[50%] 소울하트 7개#[50%] 동전 30개"}, {"11", "희생 11회", "[100%] 천사 Gabriel 보스 소환"}, From dcb6a7e5495f1f1987b234518620191f7bc79aa5 Mon Sep 17 00:00:00 2001 From: kohashiwakaba Date: Sun, 23 Jan 2022 01:37:31 +0900 Subject: [PATCH 12/26] ko_kr : Added more information for Teleport 2.0 --- descriptions/ab+/ko_kr.lua | 2 +- descriptions/rep/ko_kr.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/descriptions/ab+/ko_kr.lua b/descriptions/ab+/ko_kr.lua index a671ca5e..44a1d4a0 100644 --- a/descriptions/ab+/ko_kr.lua +++ b/descriptions/ab+/ko_kr.lua @@ -87,7 +87,7 @@ EID.descriptions[languageCode].collectibles={ {"52", "태아 박사", "↓ {{Tears}}공격 딜레이 x2.5#공격이 폭탄 발사 공격으로 변경됩니다.#폭탄 공격력: x5 +30"}, -- Dr. Fetus {"53", "자석", "픽업 아이템이 캐릭터에게 끌려옵니다."}, -- Magneto {"54", "보물 지도", "맵에 스테이지 구조를 표시합니다."}, -- Treasure Map - {"55", "엄마의 눈알", "50%의 확률로 캐릭터의 뒤에서 공격이 나갑니다."}, -- Mom's Eye + {"55", "엄마의 눈알", "50%의 확률로 캐릭터의 뒤에서 공격이 나갑니다.#!!! {{Luck}}행운 수치 비례: 행운 2 이상일 때 100% 확률"}, -- Mom's Eye {"56", "레몬빛 실수", "사용 시 캐릭터의 주위에 노란 장판이 생성되며 장판에 닿은 적은 초당 66의 피해를 입습니다."}, -- Lemon Mishap {"57", "짝사랑", "캐릭터 주위를 돌며 접촉하는 적에게 초당 75의 피해를 입힙니다."}, -- Distant Admiration {"58", "그림자의 책", "사용 시 10초간 무적 상태가 됩니다."}, -- Book of Shadows diff --git a/descriptions/rep/ko_kr.lua b/descriptions/rep/ko_kr.lua index 1462f4d0..b27481c1 100644 --- a/descriptions/rep/ko_kr.lua +++ b/descriptions/rep/ko_kr.lua @@ -192,7 +192,7 @@ local repCollectibles={ [415] = {"415", "빛의 왕관", "↑ 소울하트 +2#!!! 최대 체력이 모두 차있거나 빨간하트가 없을 때:#↑ {{Damage}}공격력 배율 x2#↑ {{Range}}사거리 +1.5#↓ {{Shotspeed}}}탄속 -0.3#피격 시 그 방에서만 비활성화됩니다."}, -- Crown Of Light [416] = {"416", "넓은 가방", "동전의 최대 소지 가능 개수가 999로 증가합니다.#방 클리어 시 보상이 드랍되지 않으면 동전을 1~3개 드랍합니다."}, -- Deep Pockets [417] = {"417", "서큐버스", "오라를 가지고 대각선으로 이동하며 오라 안에 들어온 적에게 프레임당 2.5의 피해를 입히고 캐릭터가 들어오면 {{Damage}}공격력을 x1.5 증가시켜줍니다."}, -- Succubus - [419] = {"419", "순간이동 2.0", "사용 시 클리어하지 않은 방들 중 하나로 정해진 우선순위에 따라서 순간이동합니다.#!!! 순서: {{Room}}>{{BossRoom}}>{{SuperSecretRoom}}>{{Shop}}>{{TreasureRoom}}>{{SacrificeRoom}}> {{DiceRoom}}>{{Library}}>{{CursedRoom}}>{{MiniBoss}}>{{ChallengeRoom}}>{{IsaacsRoom}}> {{ArcadeRoom}}>{{ChestRoom}}>{{Planetarium}}>{{SecretRoom}}>{{DevilRoom}}{{AngelRoom}}> 오류방"}, -- Teleport 2.0 + [419] = {"419", "순간이동 2.0", "사용 시 클리어하지 않은 방들 중 하나로 정해진 우선순위에 따라서 순간이동합니다.#!!! 순서: {{Room}}>{{BossRoom}}>{{SuperSecretRoom}}>{{Shop}}>{{TreasureRoom}}>{{SacrificeRoom}}> {{DiceRoom}}>{{Library}}>{{CursedRoom}}>{{MiniBoss}}>{{ChallengeRoom}}>{{IsaacsRoom}}> {{ArcadeRoom}}>{{ChestRoom}}>{{Planetarium}}>{{SecretRoom}}>{{DevilRoom}}{{AngelRoom}}> 오류방#Mausoleum/Gehenna II의 엄마 심장 처치 후 사용 시 위의 순서를 무시하고 무조건 오류방으로 텔레포트합니다."}, -- Teleport 2.0 [421] = {"421", "강낭콩", "사용 시 매혹 방귀를 뀝니다."}, -- Kidney Bean [426] = {"426", "집착하는 추종자", "캐릭터가 지나간 길을 1초 후 따라가며 접촉한 적에게 초당 30의 피해를 입힙니다."}, -- Obsessed Fan [427] = {"427", "마인크래프터", "사용 시 이동식 TNT를 생성합니다.#충전되지 않았을때 사용 시 생성한 TNT를 폭파합니다."}, -- Mine Crafter From e8307cfa7e5e773996740942c2962f795a098cec Mon Sep 17 00:00:00 2001 From: kohashiwakaba Date: Sun, 23 Jan 2022 01:40:25 +0900 Subject: [PATCH 13/26] Added Broken Shovel description --- eid_api.lua | 1 + main.lua | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/eid_api.lua b/eid_api.lua index 745c134f..4459bba3 100644 --- a/eid_api.lua +++ b/eid_api.lua @@ -509,6 +509,7 @@ function EID:hasDescription(entity) end if entity.Type == EntityType.ENTITY_PICKUP then isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_COLLECTIBLE and EID.Config["DisplayItemInfo"]) + isAllowed = isAllowed or (entity.Variant == 110 and entity:GetSprite():IsPlaying("Idle") and EID.Config["DisplayItemInfo"]) isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_TRINKET and EID.Config["DisplayTrinketInfo"]) isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_TAROTCARD and EID.Config["DisplayCardInfo"]) isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_PILL and EID.Config["DisplayPillInfo"]) diff --git a/main.lua b/main.lua index 022fa646..1ea56a85 100644 --- a/main.lua +++ b/main.lua @@ -1088,7 +1088,11 @@ local function onRender(t) if EID.pathfindingTo and EID.pathfindingTo.Index ~= closest.Index then EID:updatePathfinding() end - if closest.Variant == PickupVariant.PICKUP_TRINKET then + if closest.Variant == 110 then + --Handle Broken Shovel + local descriptionObj = EID:getDescriptionObj(5, 100, 550, closest) + EID:printDescription(descriptionObj) + elseif closest.Variant == PickupVariant.PICKUP_TRINKET then --Handle Trinkets local descriptionObj = EID:getDescriptionObjByEntity(closest) EID:printDescription(descriptionObj) From e8bfefa9d6f736b87be603ebe140a2863db8d44a Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Sat, 22 Jan 2022 18:58:51 +0100 Subject: [PATCH 14/26] Added MCM Option to reset Config back to default values --- eid_api.lua | 2 +- mod_config_menu.lua | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/eid_api.lua b/eid_api.lua index 4459bba3..abdb26ea 100644 --- a/eid_api.lua +++ b/eid_api.lua @@ -509,7 +509,7 @@ function EID:hasDescription(entity) end if entity.Type == EntityType.ENTITY_PICKUP then isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_COLLECTIBLE and EID.Config["DisplayItemInfo"]) - isAllowed = isAllowed or (entity.Variant == 110 and entity:GetSprite():IsPlaying("Idle") and EID.Config["DisplayItemInfo"]) + isAllowed = isAllowed or (entity.Variant == 110 and entity:GetSprite():IsPlaying("Idle") and EID.Config["DisplayItemInfo"]) -- Broken Shovel isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_TRINKET and EID.Config["DisplayTrinketInfo"]) isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_TAROTCARD and EID.Config["DisplayCardInfo"]) isAllowed = isAllowed or (entity.Variant == PickupVariant.PICKUP_PILL and EID.Config["DisplayPillInfo"]) diff --git a/mod_config_menu.lua b/mod_config_menu.lua index 048783ca..fda987c6 100644 --- a/mod_config_menu.lua +++ b/mod_config_menu.lua @@ -561,6 +561,21 @@ if MCMLoaded then } ) + --------Reset to default + MCM.AddSpace("EID", "General") + + MCM.AddSetting( + "EID", + "General", + { + Type = ModConfigMenu.OptionType.BOOLEAN, + CurrentSetting = function() return true end, + Display = function() return "<---- RESET CONFIG TO DEFAULT ---->" end, + OnChange = function(currentBool) EID.Config = EID.DefaultConfig end, + Info = {"Press this reset the config back to its default values"} + } + ) + --------------------------------------------------------------------------- ---------------------------------Display----------------------------------- From a015513a07d6daff0fd6f73dc545e28148d3b9be Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 14:05:59 -0500 Subject: [PATCH 15/26] revert pathchecker --- main.lua | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/main.lua b/main.lua index aee11650..ea15e3e4 100644 --- a/main.lua +++ b/main.lua @@ -787,6 +787,17 @@ function EID:setPlayer() end end +-- is this needed if pathchecker uses a no reward seed? +if REPENTANCE then + function EID:removeWrongGuppyEyeInfo(effectEntity) + if EID.pathCheckerEntity ~= nil and effectEntity.Parent ~= nil then + if GetPtrHash(effectEntity.Parent) == GetPtrHash(EID.pathCheckerEntity) then + effectEntity:Remove() + end + end + end + EID:AddCallback(ModCallbacks.MC_POST_EFFECT_UPDATE, EID.removeWrongGuppyEyeInfo, EffectVariant.PICKUP_GHOST) +end --------------------------------------------------------------------------- ---------------------------On Update Function------------------------------ @@ -834,8 +845,8 @@ function EID:onGameUpdate() return end if EID.pathCheckerEntity == nil then - -- Spawns an Ultra Greed Door and makes it invisible and intangible to act as a Pathfinding NPC that can't be rerolled and has no AI - EID.pathCheckerEntity = game:Spawn(294, 0, EID.player.Position, nullVector, EID.player, 0, 0) + -- Spawns the EID Helper entity with seed that doesnt spawn rewards + EID.pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354) EID.pathCheckerEntity:ClearEntityFlags(EntityFlag.FLAG_APPEAR) EID.pathCheckerEntity:AddEntityFlags (EntityFlag.FLAG_PERSISTENT | EntityFlag.FLAG_NO_STATUS_EFFECTS | EntityFlag.FLAG_NO_SPRITE_UPDATE | EntityFlag.FLAG_HIDE_HP_BAR | EntityFlag.FLAG_NO_DEATH_TRIGGER | EntityFlag.FLAG_FRIENDLY) if REPENTANCE then EID.pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end From 16f28fb0efca6fa537253329c7d6719d6604500b Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 14:06:14 -0500 Subject: [PATCH 16/26] revert pathchecker --- content/entities2.xml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 content/entities2.xml diff --git a/content/entities2.xml b/content/entities2.xml new file mode 100644 index 00000000..c6d93d77 --- /dev/null +++ b/content/entities2.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file From e639d5987fad6a89e3bd0ca7ea8e7cb9cd500dd3 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 16:28:29 -0500 Subject: [PATCH 17/26] Pathfinding overhaul --- main.lua | 89 ++++++++++++++++++++++++++------------------------------ 1 file changed, 41 insertions(+), 48 deletions(-) diff --git a/main.lua b/main.lua index ea15e3e4..ae6083db 100644 --- a/main.lua +++ b/main.lua @@ -30,6 +30,9 @@ EID.itemUnlockStates = {} EID.CraneItemType = {} EID.absorbedSpindown = false +EID.GameUpdateCount = 0 +EID.GameRenderCount = 0 + -- Sprite inits EID.IconSprite = Sprite() EID.IconSprite:Load("gfx/eid_transform_icons.anm2", true) @@ -804,10 +807,10 @@ end EID.lastDescriptionEntity = nil EID.lastDist = 0 EID.pathCheckerEntity = nil -EID.hasValidWalkingpath = true -EID.pathfindingTo = nil function EID:onGameUpdate() + -- Increases by 30 per second; doesn't update while paused + EID.GameUpdateCount = EID.GameUpdateCount + 1 EID:setPlayer() --Fix Overlapping Pedestals @@ -824,7 +827,8 @@ function EID:onGameUpdate() table.insert(curPositions, {entity, entity.Position}) end - if REPENTANCE and EID.CraneItemType ~= nil then + -- this could run less frequently, probably does have to be in update though + if REPENTANCE then 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 @@ -833,46 +837,33 @@ function EID:onGameUpdate() end end end - - if not EID.Config["DisplayObstructedCardInfo"] or not EID.Config["DisplayObstructedPillInfo"] or not EID.Config["DisplayObstructedSoulstoneInfo"] then - if EID.lastDescriptionEntity == nil or EID.lastDescriptionEntity:GetData()["EID_Pathfound"] or (EID.Config["DisableObstructionOnFlight"] and EID.player.CanFly) then - if EID.pathCheckerEntity ~= nil then - EID.pathCheckerEntity:Remove() - EID.pathCheckerEntity = nil - EID.hasValidWalkingpath = true - end - EID.pathfindingTo = EID.lastDescriptionEntity - return - end - if EID.pathCheckerEntity == nil then - -- Spawns the EID Helper entity with seed that doesnt spawn rewards - EID.pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354) - EID.pathCheckerEntity:ClearEntityFlags(EntityFlag.FLAG_APPEAR) - EID.pathCheckerEntity:AddEntityFlags (EntityFlag.FLAG_PERSISTENT | EntityFlag.FLAG_NO_STATUS_EFFECTS | EntityFlag.FLAG_NO_SPRITE_UPDATE | EntityFlag.FLAG_HIDE_HP_BAR | EntityFlag.FLAG_NO_DEATH_TRIGGER | EntityFlag.FLAG_FRIENDLY) - if REPENTANCE then EID.pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end - EID.pathCheckerEntity.EntityCollisionClass = EntityCollisionClass.ENTCOLL_NONE - EID.pathCheckerEntity.Visible = false - EID.hasValidWalkingpath = false - elseif not EID.pathCheckerEntity:Exists() then - EID.pathCheckerEntity = nil - else - EID.pathCheckerEntity.Position = EID.player.Position - EID.hasValidWalkingpath = EID.pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(EID.lastDescriptionEntity.Position, false) - EID.pathfindingTo = EID.lastDescriptionEntity - EID.lastDescriptionEntity:GetData()["EID_Pathfound"] = EID.hasValidWalkingpath - end - end - end EID:AddCallback(ModCallbacks.MC_POST_UPDATE, EID.onGameUpdate) --- this can be called when moving between two different pickups -function EID:updatePathfinding() - if not EID.pathCheckerEntity or not EID.lastDescriptionEntity then return end - EID.pathCheckerEntity.Position = EID.player.Position - EID.hasValidWalkingpath = EID.pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(EID.lastDescriptionEntity.Position, false) - EID.pathfindingTo = EID.lastDescriptionEntity - EID.lastDescriptionEntity:GetData()["EID_Pathfound"] = EID.hasValidWalkingpath +local lastPathfindCheck = { -1, -1 } +local function attemptPathfind(entity) + if (EID.Config["DisableObstructionOnFlight"] and EID.player.CanFly) then + entity:GetData()["EID_Pathfound"] = true + return true + end + if entity.Index == lastPathfindCheck[1] and EID.GameUpdateCount - lastPathfindCheck[2] < 30 then return false end + + -- Spawn a custom NPC entity to attempt a pathfind to the target pickup, then remove it afterwards + EID.pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354) + EID.pathCheckerEntity:ClearEntityFlags(EntityFlag.FLAG_APPEAR) + -- Not sure how much of this flagging is needed now that the entity is immediately removed afterwards + EID.pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_PERSISTENT | EntityFlag.FLAG_NO_STATUS_EFFECTS | EntityFlag.FLAG_NO_SPRITE_UPDATE | EntityFlag.FLAG_HIDE_HP_BAR | EntityFlag.FLAG_NO_DEATH_TRIGGER | EntityFlag.FLAG_FRIENDLY) + if REPENTANCE then EID.pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end + EID.pathCheckerEntity.EntityCollisionClass = EntityCollisionClass.ENTCOLL_NONE + EID.pathCheckerEntity.Visible = false -- it's invisible anyway? + + EID.pathCheckerEntity.Position = EID.player.Position -- not needed, it spawned at our position? + local success = EID.pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(entity.Position, false) + entity:GetData()["EID_Pathfound"] = success + EID.pathCheckerEntity:Remove() + EID.pathCheckerEntity = nil + lastPathfindCheck = { entity.Index, EID.GameUpdateCount } + return success end local hasShownAchievementWarning = false @@ -922,6 +913,9 @@ end local searchPartitions = EntityPartition.FAMILIAR + EntityPartition.ENEMY + EntityPartition.PICKUP + EntityPartition.PLAYER local function onRender(t) + -- Increases by 60 per second, ignores pauses + EID.GameRenderCount = EID.GameRenderCount + 1 + EID.isDisplaying = false EID:setPlayer() @@ -1088,8 +1082,6 @@ local function onRender(t) end end - if EID.pathfindingTo and EID.pathfindingTo.Index ~= closest.Index then EID:updatePathfinding() end - if closest.Variant == 110 then --Handle Broken Shovel local descriptionObj = EID:getDescriptionObj(5, 100, 550, closest) @@ -1112,8 +1104,7 @@ local function onRender(t) elseif closest.Variant == PickupVariant.PICKUP_TAROTCARD then --Handle Cards & Runes - if (not EID.Config["DisplayObstructedCardInfo"] or not EID.Config["DisplayObstructedSoulstoneInfo"]) and - (closest.FrameCount < 3 or EID.pathfindingTo == nil) then + if (not EID.Config["DisplayObstructedCardInfo"] or not EID.Config["DisplayObstructedSoulstoneInfo"]) and closest.FrameCount < 3 then -- small delay when having obstruction enabled & entering the room to prevent spoilers return end @@ -1121,7 +1112,9 @@ local function onRender(t) local isSoulstone = closest.SubType >= 81 and closest.SubType <= 97 local hideinShop = closest:ToPickup():IsShopItem() and ((not isSoulstone and not EID.Config["DisplayCardInfoShop"]) or (isSoulstone and not EID.Config["DisplaySoulstoneInfoShop"])) local isOptionsSpawn = REPENTANCE and not EID.Config["DisplayCardInfoOptions?"] and closest:ToPickup().OptionsPickupIndex > 0 - local obstructed = ((not isSoulstone and not EID.Config["DisplayObstructedCardInfo"]) or (not EID.Config["DisplayObstructedSoulstoneInfo"] and isSoulstone)) and not EID.hasValidWalkingpath + local obstructed = ((not isSoulstone and not EID.Config["DisplayObstructedCardInfo"]) or + (not EID.Config["DisplayObstructedSoulstoneInfo"] and isSoulstone)) and + (not EID:getEntityData(closest,"EID_Pathfound") and not attemptPathfind(closest)) if isOptionsSpawn or hideinShop or obstructed or (REPENTANCE and game.Challenge == Challenge.CHALLENGE_CANTRIPPED) then EID:renderQuestionMark() return @@ -1132,15 +1125,15 @@ local function onRender(t) elseif closest.Variant == PickupVariant.PICKUP_PILL then --Handle Pills - if not EID.Config["DisplayObstructedPillInfo"] and - (closest.FrameCount < 3 or EID.pathfindingTo == nil) then + if not EID.Config["DisplayObstructedPillInfo"] and closest.FrameCount < 3 then -- small delay when having obstruction enabled & entering the room to prevent spoilers return end if EID:getEntityData(closest, "EID_DontHide") ~= true then local hideinShop = closest:ToPickup():IsShopItem() and not EID.Config["DisplayPillInfoShop"] local isOptionsSpawn = REPENTANCE and not EID.Config["DisplayPillInfoOptions?"] and closest:ToPickup().OptionsPickupIndex > 0 - local obstructed = not EID.Config["DisplayObstructedPillInfo"] and not EID.hasValidWalkingpath + local obstructed = not EID.Config["DisplayObstructedPillInfo"] and + (not EID:getEntityData(closest,"EID_Pathfound") and not attemptPathfind(closest)) if isOptionsSpawn or hideinShop or obstructed then EID:renderQuestionMark() return From 14d8167d01c53acb4e382b05b85d5da225f89001 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 17:00:03 -0500 Subject: [PATCH 18/26] use two vars instead of a table --- main.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/main.lua b/main.lua index ae6083db..ad4e9a08 100644 --- a/main.lua +++ b/main.lua @@ -790,7 +790,7 @@ function EID:setPlayer() end end --- is this needed if pathchecker uses a no reward seed? +-- is this needed if pathchecker uses a no reward seed? (and isn't even present for a render?) if REPENTANCE then function EID:removeWrongGuppyEyeInfo(effectEntity) if EID.pathCheckerEntity ~= nil and effectEntity.Parent ~= nil then @@ -840,13 +840,14 @@ function EID:onGameUpdate() end EID:AddCallback(ModCallbacks.MC_POST_UPDATE, EID.onGameUpdate) -local lastPathfindCheck = { -1, -1 } +local lastPathfindIndex = -1 +local lastPathfindFrame = -1 local function attemptPathfind(entity) if (EID.Config["DisableObstructionOnFlight"] and EID.player.CanFly) then entity:GetData()["EID_Pathfound"] = true return true end - if entity.Index == lastPathfindCheck[1] and EID.GameUpdateCount - lastPathfindCheck[2] < 30 then return false end + if entity.Index == lastPathfindIndex and EID.GameUpdateCount - lastPathfindFrame < 30 then return false end -- Spawn a custom NPC entity to attempt a pathfind to the target pickup, then remove it afterwards EID.pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354) @@ -860,9 +861,8 @@ local function attemptPathfind(entity) EID.pathCheckerEntity.Position = EID.player.Position -- not needed, it spawned at our position? local success = EID.pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(entity.Position, false) entity:GetData()["EID_Pathfound"] = success - EID.pathCheckerEntity:Remove() - EID.pathCheckerEntity = nil - lastPathfindCheck = { entity.Index, EID.GameUpdateCount } + EID.pathCheckerEntity:Remove(); EID.pathCheckerEntity = nil + lastPathfindIndex = entity.Index; lastPathfindFrame = EID.GameUpdateCount return success end From 82f1cc5238fbb4351f2ee41cee6149609a7ee2c5 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 20:18:39 -0500 Subject: [PATCH 19/26] Reorganize a bit, reduce pedestal overlap checks --- main.lua | 82 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/main.lua b/main.lua index ad4e9a08..6aa70667 100644 --- a/main.lua +++ b/main.lua @@ -298,7 +298,7 @@ if REPENTANCE then end EID:AddCallback(ModCallbacks.MC_PRE_ROOM_ENTITY_SPAWN, EID.preRoomEntitySpawn) - function EID:postPickupInit(entity) + function EID:postPickupInitFlip(entity) initialItemNext = false flipItemNext = true lastGetItemResult[4] = entity.InitSeed @@ -324,7 +324,7 @@ if REPENTANCE then entity:GetData()["EID_FlipItemID"] = flipEntry[1] end end - EID:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, EID.postPickupInit, PickupVariant.PICKUP_COLLECTIBLE) + EID:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, EID.postPickupInitFlip, PickupVariant.PICKUP_COLLECTIBLE) function EID:CheckPedestalIndex(entity) -- Only pedestals with indexes that were present at room load can be flip pedestals @@ -790,45 +790,33 @@ function EID:setPlayer() end end --- is this needed if pathchecker uses a no reward seed? (and isn't even present for a render?) -if REPENTANCE then - function EID:removeWrongGuppyEyeInfo(effectEntity) - if EID.pathCheckerEntity ~= nil and effectEntity.Parent ~= nil then - if GetPtrHash(effectEntity.Parent) == GetPtrHash(EID.pathCheckerEntity) then - effectEntity:Remove() - end - end - end - EID:AddCallback(ModCallbacks.MC_POST_EFFECT_UPDATE, EID.removeWrongGuppyEyeInfo, EffectVariant.PICKUP_GHOST) -end --------------------------------------------------------------------------- ---------------------------On Update Function------------------------------ +-- Runs 30 times a second; doesn't update while paused -EID.lastDescriptionEntity = nil -EID.lastDist = 0 -EID.pathCheckerEntity = nil - +local collSpawned = false function EID:onGameUpdate() - -- Increases by 30 per second; doesn't update while paused EID.GameUpdateCount = EID.GameUpdateCount + 1 - EID:setPlayer() - --Fix Overlapping Pedestals - -- PERFORMANCENOTE move this to a post pickup init or something - local curPositions = {} - for _, entity in ipairs(Isaac.FindByType(5, 100, -1, true, false)) do - local pos = entity.Position - for _, otherPos in ipairs(curPositions) do - if pos:Distance(otherPos[2]) == 0 then - entity:GetData()["EID_RenderOffset"] = Vector(10,0) - otherPos[1]:GetData()["EID_RenderOffset"] = Vector(-10,0) + -- Fix Overlapping Pedestals if a collectible spawned this frame (needed for Mega Chest) + if collSpawned then + collSpawned = false + local curPositions = {} + for _, entity in ipairs(Isaac.FindByType(5, 100, -1, true, false)) do + local pos = entity.Position + for _, otherPos in ipairs(curPositions) do + if pos:Distance(otherPos[2]) == 0 then + print("yo " .. EID.GameUpdateCount .. " found overlap " .. entity.SubType .. "," .. otherPos[1].SubType) + entity:GetData()["EID_RenderOffset"] = Vector(10,0) + otherPos[1]:GetData()["EID_RenderOffset"] = Vector(-10,0) + end end + table.insert(curPositions, {entity, entity.Position}) end - table.insert(curPositions, {entity, entity.Position}) end - -- this could run less frequently, probably does have to be in update though - if REPENTANCE then + -- Remove Crane Game item data if it's giving the prize out + if REPENTANCE and EID.GameUpdateCount % 15 == 0 then 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 @@ -840,6 +828,14 @@ function EID:onGameUpdate() end EID:AddCallback(ModCallbacks.MC_POST_UPDATE, EID.onGameUpdate) +-- Wait until all collectibles spawning this frame have spawned before checking if there's an overlap +function EID:CollectibleSpawnedThisFrame(entity) + collSpawned = true +end +EID:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, EID.CollectibleSpawnedThisFrame, PickupVariant.PICKUP_COLLECTIBLE) + +-- Pathchecking +local pathCheckerEntity = nil local lastPathfindIndex = -1 local lastPathfindFrame = -1 local function attemptPathfind(entity) @@ -850,18 +846,18 @@ local function attemptPathfind(entity) if entity.Index == lastPathfindIndex and EID.GameUpdateCount - lastPathfindFrame < 30 then return false end -- Spawn a custom NPC entity to attempt a pathfind to the target pickup, then remove it afterwards - EID.pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354) - EID.pathCheckerEntity:ClearEntityFlags(EntityFlag.FLAG_APPEAR) + pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354) + pathCheckerEntity:ClearEntityFlags(EntityFlag.FLAG_APPEAR) -- Not sure how much of this flagging is needed now that the entity is immediately removed afterwards - EID.pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_PERSISTENT | EntityFlag.FLAG_NO_STATUS_EFFECTS | EntityFlag.FLAG_NO_SPRITE_UPDATE | EntityFlag.FLAG_HIDE_HP_BAR | EntityFlag.FLAG_NO_DEATH_TRIGGER | EntityFlag.FLAG_FRIENDLY) - if REPENTANCE then EID.pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end - EID.pathCheckerEntity.EntityCollisionClass = EntityCollisionClass.ENTCOLL_NONE - EID.pathCheckerEntity.Visible = false -- it's invisible anyway? + pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_PERSISTENT | EntityFlag.FLAG_NO_STATUS_EFFECTS | EntityFlag.FLAG_NO_SPRITE_UPDATE | EntityFlag.FLAG_HIDE_HP_BAR | EntityFlag.FLAG_NO_DEATH_TRIGGER | EntityFlag.FLAG_FRIENDLY) + if REPENTANCE then pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end + pathCheckerEntity.EntityCollisionClass = EntityCollisionClass.ENTCOLL_NONE + pathCheckerEntity.Visible = false -- it's invisible anyway? - EID.pathCheckerEntity.Position = EID.player.Position -- not needed, it spawned at our position? - local success = EID.pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(entity.Position, false) + pathCheckerEntity.Position = EID.player.Position -- not needed, it spawned at our position? + local success = pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(entity.Position, false) entity:GetData()["EID_Pathfound"] = success - EID.pathCheckerEntity:Remove(); EID.pathCheckerEntity = nil + pathCheckerEntity:Remove(); pathCheckerEntity = nil lastPathfindIndex = entity.Index; lastPathfindFrame = EID.GameUpdateCount return success end @@ -878,14 +874,15 @@ local function renderAchievementInfo() demoDescObj.Description = EID:getDescriptionEntry("OldGameVersionWarningText") or "" EID:displayPermanentText(demoDescObj) hasShownAchievementWarning = true + -- Bag of Crafting modded items check elseif EID.player:HasCollectible(710) and EID:DetectModdedItems() and EID.Config.DisplayBagOfCrafting ~= "never" and (EID.Config.BagOfCraftingDisplayMode == "Recipe List" or EID.Config.BagOfCraftingDisplayMode == "Preview Only") then local demoDescObj = EID:getDescriptionObj(-999, -1, 1) demoDescObj.Name = EID:getDescriptionEntry("AchievementWarningTitle") or "" demoDescObj.Description = EID:getDescriptionEntry("ModdedRecipesWarningText") or "" EID:displayPermanentText(demoDescObj) hasShownAchievementWarning = true + -- Achievements Locked Check (do we have Cube of Meat or Book of Revelations unlocked?) else - -- Achievements Locked Check (do we have Cube of Meat or Book of Revelations unlocked?) local characterID = EID.player:GetPlayerType() --ID 21 = Tainted Isaac. Tainted characters have definitely beaten Mom! (Fixes Tainted Lost's item pools ruining this check) if characterID < 21 and game.Challenge == 0 and not EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_TMTRAINER) then @@ -912,6 +909,9 @@ end ---------------------------On Render Function------------------------------ local searchPartitions = EntityPartition.FAMILIAR + EntityPartition.ENEMY + EntityPartition.PICKUP + EntityPartition.PLAYER +EID.lastDescriptionEntity = nil +EID.lastDist = 0 + local function onRender(t) -- Increases by 60 per second, ignores pauses EID.GameRenderCount = EID.GameRenderCount + 1 From 640c59be0feec50c0032b00627b942ebe780f6fe Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 20:24:25 -0500 Subject: [PATCH 20/26] reduce frame delay between pathfinds --- main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.lua b/main.lua index 6aa70667..36d5ff5e 100644 --- a/main.lua +++ b/main.lua @@ -843,7 +843,7 @@ local function attemptPathfind(entity) entity:GetData()["EID_Pathfound"] = true return true end - if entity.Index == lastPathfindIndex and EID.GameUpdateCount - lastPathfindFrame < 30 then return false end + if entity.Index == lastPathfindIndex 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) From 161ece450332dc8b64384f6e9144ed134bda6bd1 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sat, 22 Jan 2022 21:29:22 -0500 Subject: [PATCH 21/26] Switch to an InitSeed table for checked paths --- main.lua | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/main.lua b/main.lua index 36d5ff5e..7d9394d2 100644 --- a/main.lua +++ b/main.lua @@ -29,6 +29,7 @@ EID.itemConfig = Isaac.GetItemConfig() EID.itemUnlockStates = {} EID.CraneItemType = {} EID.absorbedSpindown = false +local pathsChecked = {} EID.GameUpdateCount = 0 EID.GameRenderCount = 0 @@ -155,6 +156,7 @@ end --------------------------------------------------------------------------- -------------Handle Sacrifice Room & Resetting Floor Trackers-------------- function EID:onNewFloor() + pathsChecked = {} EID.sacrificeCounter = {} if REPENTANCE then EID.bagOfCraftingRoomQueries = {} @@ -806,7 +808,6 @@ function EID:onGameUpdate() local pos = entity.Position for _, otherPos in ipairs(curPositions) do if pos:Distance(otherPos[2]) == 0 then - print("yo " .. EID.GameUpdateCount .. " found overlap " .. entity.SubType .. "," .. otherPos[1].SubType) entity:GetData()["EID_RenderOffset"] = Vector(10,0) otherPos[1]:GetData()["EID_RenderOffset"] = Vector(-10,0) end @@ -838,9 +839,10 @@ EID:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, EID.CollectibleSpawnedThisFram local pathCheckerEntity = nil local lastPathfindIndex = -1 local lastPathfindFrame = -1 + local function attemptPathfind(entity) if (EID.Config["DisableObstructionOnFlight"] and EID.player.CanFly) then - entity:GetData()["EID_Pathfound"] = true + pathsChecked[entity.InitSeed] = true return true end if entity.Index == lastPathfindIndex and EID.GameUpdateCount - lastPathfindFrame < 10 then return false end @@ -850,13 +852,13 @@ local function attemptPathfind(entity) pathCheckerEntity:ClearEntityFlags(EntityFlag.FLAG_APPEAR) -- Not sure how much of this flagging is needed now that the entity is immediately removed afterwards pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_PERSISTENT | EntityFlag.FLAG_NO_STATUS_EFFECTS | EntityFlag.FLAG_NO_SPRITE_UPDATE | EntityFlag.FLAG_HIDE_HP_BAR | EntityFlag.FLAG_NO_DEATH_TRIGGER | EntityFlag.FLAG_FRIENDLY) - if REPENTANCE then pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end + if REPENTANCE then pathCheckerEntity:AddEntityFlags(EntityFlag.FLAG_NO_QUERY) end -- can it even be queried in this brief time? pathCheckerEntity.EntityCollisionClass = EntityCollisionClass.ENTCOLL_NONE pathCheckerEntity.Visible = false -- it's invisible anyway? - pathCheckerEntity.Position = EID.player.Position -- not needed, it spawned at our position? + local success = pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(entity.Position, false) - entity:GetData()["EID_Pathfound"] = success + pathsChecked[entity.InitSeed] = success pathCheckerEntity:Remove(); pathCheckerEntity = nil lastPathfindIndex = entity.Index; lastPathfindFrame = EID.GameUpdateCount return success @@ -1114,7 +1116,7 @@ local function onRender(t) local isOptionsSpawn = REPENTANCE and not EID.Config["DisplayCardInfoOptions?"] and closest:ToPickup().OptionsPickupIndex > 0 local obstructed = ((not isSoulstone and not EID.Config["DisplayObstructedCardInfo"]) or (not EID.Config["DisplayObstructedSoulstoneInfo"] and isSoulstone)) and - (not EID:getEntityData(closest,"EID_Pathfound") and not attemptPathfind(closest)) + (not pathsChecked[closest.InitSeed] and not attemptPathfind(closest)) if isOptionsSpawn or hideinShop or obstructed or (REPENTANCE and game.Challenge == Challenge.CHALLENGE_CANTRIPPED) then EID:renderQuestionMark() return @@ -1133,7 +1135,7 @@ local function onRender(t) local hideinShop = closest:ToPickup():IsShopItem() and not EID.Config["DisplayPillInfoShop"] local isOptionsSpawn = REPENTANCE and not EID.Config["DisplayPillInfoOptions?"] and closest:ToPickup().OptionsPickupIndex > 0 local obstructed = not EID.Config["DisplayObstructedPillInfo"] and - (not EID:getEntityData(closest,"EID_Pathfound") and not attemptPathfind(closest)) + (not pathsChecked[closest.InitSeed] and not attemptPathfind(closest)) if isOptionsSpawn or hideinShop or obstructed then EID:renderQuestionMark() return From 34ea5395eb7c2d6d38fcf0b4a0dfd6ada855d645 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sun, 23 Jan 2022 01:08:06 -0500 Subject: [PATCH 22/26] Reduce millisecond length of IsAltChoice --- main.lua | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/main.lua b/main.lua index 7d9394d2..d1e5a9e5 100644 --- a/main.lua +++ b/main.lua @@ -30,6 +30,7 @@ EID.itemUnlockStates = {} EID.CraneItemType = {} EID.absorbedSpindown = false local pathsChecked = {} +local altPathItemChecked = {} EID.GameUpdateCount = 0 EID.GameRenderCount = 0 @@ -163,6 +164,7 @@ function EID:onNewFloor() EID.bagOfCraftingFloorQuery = {} EID.CraneItemType = {} EID.flipItemPositions = {} + altPathItemChecked = {} end end EID:AddCallback(ModCallbacks.MC_POST_NEW_LEVEL, EID.onNewFloor) @@ -190,18 +192,14 @@ questionMarkSprite:LoadGraphics() function EID:IsAltChoice(pickup) -- do not run this while Curse of the Blind is active, since this function is really just a "is collectible pedestal a red question mark" check - if EID:hasCurseBlind() then + if not REPENTANCE or EID:hasCurseBlind() then return false end - if pickup:GetData() == nil then - return false + if altPathItemChecked[pickup.InitSeed] ~= nil then + return altPathItemChecked[pickup.InitSeed] end - if EID:getEntityData(pickup, "EID_IsAltChoice") ~= nil then - return EID:getEntityData(pickup, "EID_IsAltChoice") - end - - if not REPENTANCE or game:GetRoom():GetType() ~= RoomType.ROOM_TREASURE then - pickup:GetData()["EID_IsAltChoice"] = false + if game:GetRoom():GetType() ~= RoomType.ROOM_TREASURE then + altPathItemChecked[pickup.InitSeed] = false return false end @@ -209,35 +207,35 @@ function EID:IsAltChoice(pickup) local name = entitySprite:GetAnimation() if name ~= "Idle" and name ~= "ShopIdle" then - -- Collectible can be ignored. its definetly not hidden - pickup:GetData()["EID_IsAltChoice"] = false + -- Collectible can be ignored. It's definitely not hidden + altPathItemChecked[pickup.InitSeed] = false return false end questionMarkSprite:SetFrame(name,entitySprite:GetFrame()) -- check some point in entitySprite - for i = -70,0,2 do + for i = -50,20,3 do local qcolor = questionMarkSprite:GetTexel(Vector(0,i),nullVector,1,1) local ecolor = entitySprite:GetTexel(Vector(0,i),nullVector,1,1) if qcolor.Red ~= ecolor.Red or qcolor.Green ~= ecolor.Green or qcolor.Blue ~= ecolor.Blue then -- it is not same with question mark sprite - pickup:GetData()["EID_IsAltChoice"] = false + altPathItemChecked[pickup.InitSeed] = false return false end end - + --this may be a question mark, however, we will check it again to ensure it - for j = -3,3,2 do - for i = -71,0,2 do + for j = -1,1,1 do + for i = -71,0,3 do local qcolor = questionMarkSprite:GetTexel(Vector(j,i),nullVector,1,1) local ecolor = entitySprite:GetTexel(Vector(j,i),nullVector,1,1) if qcolor.Red ~= ecolor.Red or qcolor.Green ~= ecolor.Green or qcolor.Blue ~= ecolor.Blue then - pickup:GetData()["EID_IsAltChoice"] = false + altPathItemChecked[pickup.InitSeed] = false return false end end end - pickup:GetData()["EID_IsAltChoice"] = true + altPathItemChecked[pickup.InitSeed] = true return true end From 2381835798171ceb25761e4fca83903e7f1aef58 Mon Sep 17 00:00:00 2001 From: Buurazu Date: Sun, 23 Jan 2022 03:28:07 -0500 Subject: [PATCH 23/26] Cache our formatted lines to avoid calling fitTextToWidth --- main.lua | 48 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/main.lua b/main.lua index d1e5a9e5..70dbe254 100644 --- a/main.lua +++ b/main.lua @@ -441,6 +441,10 @@ end --------------------------------------------------------------------------- ---------------------------Printing Functions------------------------------ +local previousFormattedLines = {} +local previousBulletpoints = {} +local previousDesc = "" + function EID:printDescription(desc) local textScale = Vector(EID.Scale, EID.Scale) local renderPos = EID:getTextPosition() @@ -576,6 +580,11 @@ function EID:printDescription(desc) end end end + if previousDesc ~= desc.Description then + previousFormattedLines = {} + previousBulletpoints = {} + previousDesc = desc.Description + end EID:printBulletPoints(desc.Description, renderPos) end @@ -583,25 +592,32 @@ function EID:printBulletPoints(description, renderPos) local textboxWidth = tonumber(EID.Config["TextboxWidth"]) local textScale = Vector(EID.Scale, EID.Scale) description = EID:replaceShortMarkupStrings(description) - for line in string.gmatch(description, "([^#]+)") do - local formatedLines = EID:fitTextToWidth(line, textboxWidth, EID.BreakUtf8CharsLanguage[EID.Config["Language"]]) - local textColor = EID:getTextColor() - for i, lineToPrint in ipairs(formatedLines) do - -- render bulletpoint - if i == 1 then - local bpIcon = EID:handleBulletpointIcon(lineToPrint) - if EID:getIcon(bpIcon) ~= EID.InlineIcons["ERROR"] then - lineToPrint = string.gsub(lineToPrint, bpIcon .. " ", "", 1) - textColor = EID:renderString(bpIcon, renderPos + Vector(-3 * EID.Scale, 0), textScale , textColor) - else - textColor = EID:renderString(bpIcon, renderPos, textScale , textColor) - end - EID.LastRenderCallColor = EID:copyKColor(textColor) -- Save line start Color for eventual Color Reset call + if #previousFormattedLines == 0 then + for line in string.gmatch(description, "([^#]+)") do + previousBulletpoints[#previousFormattedLines+1] = true + for _,v in ipairs(EID:fitTextToWidth(line, textboxWidth, EID.BreakUtf8CharsLanguage[EID.Config["Language"]])) do + table.insert(previousFormattedLines, v) end - textColor = EID:renderString(lineToPrint, renderPos + Vector(12 * EID.Scale, 0), textScale, textColor) - renderPos.Y = renderPos.Y + EID.lineHeight * EID.Scale end end + + local textColor = EID:getTextColor() + for i, lineToPrint in ipairs(previousFormattedLines) do + -- render bulletpoint + if previousBulletpoints[i] then + textColor = EID:getTextColor() + local bpIcon = EID:handleBulletpointIcon(lineToPrint) + if EID:getIcon(bpIcon) ~= EID.InlineIcons["ERROR"] then + lineToPrint = string.gsub(lineToPrint, bpIcon .. " ", "", 1) + textColor = EID:renderString(bpIcon, renderPos + Vector(-3 * EID.Scale, 0), textScale , textColor) + else + textColor = EID:renderString(bpIcon, renderPos, textScale , textColor) + end + EID.LastRenderCallColor = EID:copyKColor(textColor) -- Save line start Color for eventual Color Reset call + end + textColor = EID:renderString(lineToPrint, renderPos + Vector(12 * EID.Scale, 0), textScale, textColor) + renderPos.Y = renderPos.Y + EID.lineHeight * EID.Scale + end end --------------------------------------------------------------------------- ----------------------------Handle New Room-------------------------------- From fc05ea0907155d060bcef359f08b5e700072e7ea Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Sun, 23 Jan 2022 22:52:39 +0100 Subject: [PATCH 24/26] Added description cache clear when changing Textbox width via MCM --- main.lua | 8 ++++++-- mod_config_menu.lua | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/main.lua b/main.lua index 70dbe254..cad1af82 100644 --- a/main.lua +++ b/main.lua @@ -581,13 +581,17 @@ function EID:printDescription(desc) end end if previousDesc ~= desc.Description then - previousFormattedLines = {} - previousBulletpoints = {} + EID:clearDescriptionCache() previousDesc = desc.Description end EID:printBulletPoints(desc.Description, renderPos) end +function EID:clearDescriptionCache() + previousFormattedLines = {} + previousBulletpoints = {} +end + function EID:printBulletPoints(description, renderPos) local textboxWidth = tonumber(EID.Config["TextboxWidth"]) local textScale = Vector(EID.Scale, EID.Scale) diff --git a/mod_config_menu.lua b/mod_config_menu.lua index fda987c6..be873c43 100644 --- a/mod_config_menu.lua +++ b/mod_config_menu.lua @@ -350,6 +350,7 @@ if MCMLoaded then end, OnChange = function(currentNum) EID.Config["TextboxWidth"] = currentNum + EID:clearDescriptionCache() end, Info = {"Default = 130, varies per language","Width of the EID textbox, in pixels"} } From 1089acba89645057a0f88d85033ac3657bb1b71a Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Sun, 23 Jan 2022 22:53:50 +0100 Subject: [PATCH 25/26] Fixed pathfinding checker not working correctly --- main.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main.lua b/main.lua index cad1af82..403914d6 100644 --- a/main.lua +++ b/main.lua @@ -855,7 +855,6 @@ EID:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, EID.CollectibleSpawnedThisFram -- Pathchecking local pathCheckerEntity = nil -local lastPathfindIndex = -1 local lastPathfindFrame = -1 local function attemptPathfind(entity) @@ -863,7 +862,7 @@ local function attemptPathfind(entity) pathsChecked[entity.InitSeed] = true return true end - if entity.Index == lastPathfindIndex and EID.GameUpdateCount - lastPathfindFrame < 10 then return false end + if 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) @@ -877,8 +876,9 @@ local function attemptPathfind(entity) local success = pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(entity.Position, false) pathsChecked[entity.InitSeed] = success - pathCheckerEntity:Remove(); pathCheckerEntity = nil - lastPathfindIndex = entity.Index; lastPathfindFrame = EID.GameUpdateCount + pathCheckerEntity:Remove() + pathCheckerEntity = nil + lastPathfindFrame = EID.GameUpdateCount return success end From 451d0ddafd55c31dcb8850d0ee4bbc84d65df572 Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Sun, 23 Jan 2022 23:01:20 +0100 Subject: [PATCH 26/26] Update Workshop Mod --- main.lua | 2 +- metadata.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main.lua b/main.lua index 403914d6..ad75fd8e 100644 --- a/main.lua +++ b/main.lua @@ -9,7 +9,7 @@ local game = Game() 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.13" +EID.ModVersion = "4.14" EID.DefaultConfig.Version = EID.Config.Version EID.isHidden = false EID.player = nil diff --git a/metadata.xml b/metadata.xml index 8e15b625..9e734ef1 100644 --- a/metadata.xml +++ b/metadata.xml @@ -103,7 +103,7 @@ https://moddingofisaac.com/mod/1079/external-item-descriptions - Jake for the sweet [b]German[/b] language pack - Blackcreamtea and 미카 for the awesome [b]Korean[/b] language pack - [url=https://steamcommunity.com/id/whytefang/]adc[/url] for creating an awesome new Languagepack and providing ideas for new functionalities - 4.13 + 4.14 Public