From b4d9b483ce95c9bbb3ea1f1260552ae749baa7fb Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Thu, 3 Feb 2022 21:54:03 +0100 Subject: [PATCH 1/4] Revert "Prevent achievement helper trinket from spawning" This reverts commit e85bb42510b1f8be0083d4c51501a0e5f683b459. --- main.lua | 8 -------- 1 file changed, 8 deletions(-) diff --git a/main.lua b/main.lua index bf3b128e..827f9ccf 100644 --- a/main.lua +++ b/main.lua @@ -921,14 +921,6 @@ if Encyclopedia then }) end --- if the helper trinket somehow does spawn, replace it with a random trinket from the pool -function EID:PreventHelperTrinketSpawn(entity) - if entity.SubType == achievementTrinket then - entity:Morph(entity.Type, entity.Variant, game:GetItemPool():GetTrinket()) - end -end -EID:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, EID.PreventHelperTrinketSpawn, PickupVariant.PICKUP_TRINKET) - local hasShownAchievementWarning = false local function renderAchievementInfo() if REPENTANCE and not EID.Config.DisableAchievementCheck and game:GetFrameCount() < 10*30 then From e58a775a0c60e3d51fba6af0856c98023a1ebfa9 Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Thu, 3 Feb 2022 21:54:56 +0100 Subject: [PATCH 2/4] Revert "Save achievementsEnabled status" This reverts commit d58068f66afdc6361c923b0e00dfbe98d06a7b9e. --- main.lua | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/main.lua b/main.lua index 827f9ccf..1bede250 100644 --- a/main.lua +++ b/main.lua @@ -1233,7 +1233,6 @@ if EID.MCMLoaded or REPENTANCE then ["FlipItemPositions"] = true, ["AbsorbedItems"] = true, ["CollectedItems"] = true, - ["AchievementsEnabled"] = true, } -------------------------------- --------Handle Savadata--------- @@ -1282,10 +1281,6 @@ if EID.MCMLoaded or REPENTANCE then end end - if isSave then - EID.achievementsEnabled = savedEIDConfig["AchievementsEnabled"] or true - end - -- Only copy Saved config entries that exist in the save if savedEIDConfig.Version == EID.Config.Version then local isDefaultConfig = true @@ -1320,9 +1315,7 @@ if EID.MCMLoaded or REPENTANCE then end -- Check and set if achievements are enabled - if not isSave then - EID.achievementsEnabled = game:GetItemPool():RemoveTrinket(achievementTrinket) - end + EID.achievementsEnabled = game:GetItemPool():RemoveTrinket(achievementTrinket) end EID:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, OnGameStart) @@ -1346,7 +1339,6 @@ if EID.MCMLoaded or REPENTANCE then EID.Config["FlipItemPositions"] = flipItemTable or {} end EID.Config["CollectedItems"] = EID.CollectedItems - EID.Config["AchievementsEnabled"] = EID.achievementsEnabled EID.SaveData(EID, json.encode(EID.Config)) EID:hidePermanentText() From 1d4aa873005d90bb535c046db8c49014366d5e58 Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Thu, 3 Feb 2022 21:57:19 +0100 Subject: [PATCH 3/4] Revert "Add full proof check for if achievements are enabled" This reverts commit 2f6b9872c79aec91199ffad8171ff57b8da0fa06. --- content/items.xml | 3 --- descriptions/rep/en_us.lua | 2 +- main.lua | 35 ++++++++++++++++------------------- 3 files changed, 17 insertions(+), 23 deletions(-) delete mode 100644 content/items.xml diff --git a/content/items.xml b/content/items.xml deleted file mode 100644 index 3ab41874..00000000 --- a/content/items.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/descriptions/rep/en_us.lua b/descriptions/rep/en_us.lua index f7a2fa19..a24d1062 100644 --- a/descriptions/rep/en_us.lua +++ b/descriptions/rep/en_us.lua @@ -1042,7 +1042,7 @@ EID.descriptions[languageCode].FalsePHDDamage = "+0.6 Damage up" EID.descriptions[languageCode].FalsePHDHorseDamage = "+1.2 Damage up" EID.descriptions[languageCode].AchievementWarningTitle = "{{ColorYellow}}!!! WARNING !!!" -EID.descriptions[languageCode].AchievementWarningText = "Achievements are disabled!#In order to enable progression and achievements, you first need to kill Mom (Depths II) without any mods enabled.#(This warning can be disabled in the config)" +EID.descriptions[languageCode].AchievementWarningText = "Achievements are disabled!#In order to enable progression and achievements, you first need to kill Mom (Depths II) without any mods enabled.#(If you've defeated Mom, this message is a bug and can be ignored)#(This warning can be disabled in the config)" EID.descriptions[languageCode].OldGameVersionWarningText = "Your version of Repentance is not up-to-date!#Only the newest version is officially supported#(This warning can be disabled in the config)" diff --git a/main.lua b/main.lua index 1bede250..36e44124 100644 --- a/main.lua +++ b/main.lua @@ -21,7 +21,6 @@ EID.UsedPosition = Vector(EID.Config["XPosition"], EID.Config["YPosition"]) EID.Scale = EID.Config["Size"] EID.isDisplaying = false EID.isDisplayingPermanent = false -EID.achievementsEnabled = false EID.permanentDisplayTextObj = nil EID.lastDescriptionEntity = nil EID.lineHeight = 11 @@ -912,15 +911,6 @@ local function attemptPathfind(entity) return success end -local achievementTrinket = Isaac.GetTrinketIdByName("EID Achievements Locked Check") --- hide helper trinket in Encyclopedia mod -if Encyclopedia then - Encyclopedia.AddTrinket({ - ID = achievementTrinket, - Hide = true, - }) -end - local hasShownAchievementWarning = false local function renderAchievementInfo() if REPENTANCE and not EID.Config.DisableAchievementCheck and game:GetFrameCount() < 10*30 then @@ -940,12 +930,22 @@ local function renderAchievementInfo() EID:displayPermanentText(demoDescObj) hasShownAchievementWarning = true -- Achievements Locked Check (do we have Cube of Meat or Book of Revelations unlocked?) - elseif not EID.achievementsEnabled then - local demoDescObj = EID:getDescriptionObj(-999, -1, 1) - demoDescObj.Name = EID:getDescriptionEntry("AchievementWarningTitle") or "" - demoDescObj.Description = EID:getDescriptionEntry("AchievementWarningText") or "" - EID:displayPermanentText(demoDescObj) - hasShownAchievementWarning = true + else + 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 + local hasBookOfRevelationsUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_BOOK_OF_REVELATIONS or CollectibleType.COLLECTIBLE_BOOK_REVELATIONS) + if not hasBookOfRevelationsUnlocked then + local hasCubeOfMeatUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_CUBE_OF_MEAT) + if not hasCubeOfMeatUnlocked then + local demoDescObj = EID:getDescriptionObj(-999, -1, 1) + demoDescObj.Name = EID:getDescriptionEntry("AchievementWarningTitle") or "" + demoDescObj.Description = EID:getDescriptionEntry("AchievementWarningText") or "" + EID:displayPermanentText(demoDescObj) + hasShownAchievementWarning = true + end + end + end end elseif hasShownAchievementWarning then EID:hidePermanentText() @@ -1313,9 +1313,6 @@ if EID.MCMLoaded or REPENTANCE then end end end - - -- Check and set if achievements are enabled - EID.achievementsEnabled = game:GetItemPool():RemoveTrinket(achievementTrinket) end EID:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, OnGameStart) From 9c99b2eecfe4a6a614e3fcc588462cab01f0f663 Mon Sep 17 00:00:00 2001 From: Wofsauge Date: Thu, 3 Feb 2022 22:39:24 +0100 Subject: [PATCH 4/4] Removed custom pathchecker entity since its not needed anymore --- content/entities2.xml | 5 ----- main.lua | 13 +++--------- resources/gfx/eid_blank.anm2 | 39 ----------------------------------- resources/gfx/eid_blank.png | Bin 24321 -> 0 bytes 4 files changed, 3 insertions(+), 54 deletions(-) delete mode 100644 content/entities2.xml delete mode 100644 resources/gfx/eid_blank.anm2 delete mode 100644 resources/gfx/eid_blank.png diff --git a/content/entities2.xml b/content/entities2.xml deleted file mode 100644 index c6d93d77..00000000 --- a/content/entities2.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/main.lua b/main.lua index 36e44124..541e53a6 100644 --- a/main.lua +++ b/main.lua @@ -893,16 +893,9 @@ local function attemptPathfind(entity) -- Don't reattempt pathfinding more than 3 times a second, unless this is a new entity if pathsChecked[entity.InitSeed] == false and EID.GameUpdateCount - lastPathfindFrame < 10 then return false end - -- Spawn a custom NPC entity to attempt a pathfind to the target pickup, then remove it afterwards - pathCheckerEntity = game:Spawn(17, 3169, EID.player.Position, nullVector, EID.player, 0, 4354) - 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 -- 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? - + -- Spawn a Shopkeeper entity to attempt a pathfind to the target pickup, then remove it afterwards + pathCheckerEntity = game:Spawn(17, 0, EID.player.Position, nullVector, EID.player, 0, 4354) + local success = pathCheckerEntity:ToNPC().Pathfinder:HasPathToPos(entity.Position, false) pathsChecked[entity.InitSeed] = success pathCheckerEntity:Remove() diff --git a/resources/gfx/eid_blank.anm2 b/resources/gfx/eid_blank.anm2 deleted file mode 100644 index 22ac7f41..00000000 --- a/resources/gfx/eid_blank.anm2 +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/resources/gfx/eid_blank.png b/resources/gfx/eid_blank.png deleted file mode 100644 index e3dabb805033746dce9942478b44a067958c467c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24321 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 DpZt32