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/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 bf3b128e..541e53a6 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 @@ -894,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() @@ -912,23 +904,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 - --- 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 @@ -948,12 +923,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() @@ -1241,7 +1226,6 @@ if EID.MCMLoaded or REPENTANCE then ["FlipItemPositions"] = true, ["AbsorbedItems"] = true, ["CollectedItems"] = true, - ["AchievementsEnabled"] = true, } -------------------------------- --------Handle Savadata--------- @@ -1290,10 +1274,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 @@ -1326,11 +1306,6 @@ if EID.MCMLoaded or REPENTANCE then end end end - - -- Check and set if achievements are enabled - if not isSave then - EID.achievementsEnabled = game:GetItemPool():RemoveTrinket(achievementTrinket) - end end EID:AddCallback(ModCallbacks.MC_POST_GAME_STARTED, OnGameStart) @@ -1354,7 +1329,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() 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 e3dabb80..00000000 Binary files a/resources/gfx/eid_blank.png and /dev/null differ