From db628894fbd92107dda173a09a4c9853a5832729 Mon Sep 17 00:00:00 2001 From: Kongtiao Date: Tue, 19 May 2026 17:01:30 +0800 Subject: [PATCH 1/2] Update ConsistencyTracker.csproj for compilation --- ConsistencyTracker.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ConsistencyTracker.csproj b/ConsistencyTracker.csproj index 961488f..cf841ec 100644 --- a/ConsistencyTracker.csproj +++ b/ConsistencyTracker.csproj @@ -16,7 +16,7 @@ true $(CelestePrefix)\legacyRef - XNA + XNA FNA $(WINDIR)\Microsoft.NET\assembly\GAC_32\{0}\v4.0_4.0.0.0__842cf8be1de50553\{0}.dll From d6607c7059a74b149294b3627cdc4079e91dfb4e Mon Sep 17 00:00:00 2001 From: Kongtiao Date: Tue, 19 May 2026 17:48:18 +0800 Subject: [PATCH 2/2] Added a setting for tracking winged goldens --- ConsistencyTracker.cs | 5 +++-- ConsistencyTrackerSettings.cs | 10 ++++++++++ Dialog/English.txt | 1 + Models/PathInfo.cs | 3 +++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ConsistencyTracker.cs b/ConsistencyTracker.cs index dd972f0..78dc028 100644 --- a/ConsistencyTracker.cs +++ b/ConsistencyTracker.cs @@ -516,7 +516,7 @@ private void Strawberry_OnPlayer(On.Celeste.Strawberry.orig_OnPlayer orig, Straw LogVerbose($"Strawberry on player | self.Type: {self.GetType().Name}, self.Golden: {self.Golden}"); SetRoomCompleted(resetOnDeath: true); - if (self.Winged) { + if (self.Winged && !(CurrentChapterPath?.TrackWingedGolden ?? false)) { if(!IgnoreBerryCollects.Contains(self.ID)) IgnoreBerryCollects.Add(self.ID); LogVerbose($"Ignoring winged berry pickup."); @@ -574,7 +574,7 @@ private void On_Strawberry_OnCollect(On.Celeste.Strawberry.orig_OnCollect orig, break; } - if (self.Golden && !self.Winged && SettingsTrackGoldens && !IsInFgrMode) { // In fgr mode, goldens dont exist, so they cant mark the end of the challenge. + if (self.Golden && SettingsTrackGoldens && !IsInFgrMode) { // In fgr mode, goldens dont exist, so they cant mark the end of the challenge. Log($"Golden collected! GG :catpog:"); CurrentChapterStats.CollectedGolden(goldenType); SaveChapterStats(); @@ -772,6 +772,7 @@ private void Level_OnTransitionTo(Level level, LevelData levelDataNext, Vector2 private void Player_OnDie(Player player) { TouchedBerries.Clear(); + IgnoreBerryCollects.Clear(); Log($"Player died. (holdingGolden: {IsInGoldenRun})"); if (CurrentRoomCompletedResetOnDeath) { diff --git a/ConsistencyTrackerSettings.cs b/ConsistencyTrackerSettings.cs index 18d318a..1bab37e 100644 --- a/ConsistencyTrackerSettings.cs +++ b/ConsistencyTrackerSettings.cs @@ -346,6 +346,16 @@ public void CreateRecordPathEntry(TextMenu menu, bool inGame) { OnPressed = Mod.UngroupRoomsOnChapterPath, Disabled = !hasCurrentRoom }); + + bool? currentPathTrackWingedGoldens = Mod.CurrentChapterPath?.TrackWingedGolden; + subMenu.Add(new TextMenu.OnOff(Dialog.Clean("MODOPTION_CCT_PATH_MANAGEMENT_EDITING_TRACK_WINGED_GOLDEN"), currentPathTrackWingedGoldens ?? false) { + OnValueChange = v => { + if (Mod.CurrentChapterPath == null) return; + Mod.CurrentChapterPath.TrackWingedGolden = v; + Mod.SaveActivePath(); + }, + Disabled = !hasPath + }); bool? currentRoomIsTransition = Mod.CurrentChapterPath?.CurrentRoom?.IsNonGameplayRoom; List> RoomType = new List>() { diff --git a/Dialog/English.txt b/Dialog/English.txt index 35e81d5..7f83b27 100644 --- a/Dialog/English.txt +++ b/Dialog/English.txt @@ -88,6 +88,7 @@ MODOPTION_CCT_PATH_MANAGEMENT_EDITING_BROWSER= Open Path Edit Tool In Browser (C MODOPTION_CCT_PATH_MANAGEMENT_EDITING_REMOVE_CURRENT_ROOM= Remove Current Room From Path MODOPTION_CCT_PATH_MANAGEMENT_EDITING_GROUP= Group Current And Previous Rooms MODOPTION_CCT_PATH_MANAGEMENT_EDITING_UNGROUP= Ungroup Current From Previous Room +MODOPTION_CCT_PATH_MANAGEMENT_EDITING_TRACK_WINGED_GOLDEN= Track Winged Golden Berry MODOPTION_CCT_PATH_MANAGEMENT_EDITING_ROOM_TYPE_TITLE= Current Room Type MODOPTION_CCT_PATH_MANAGEMENT_EDITING_ROOM_TYPE_GAMEPLAY= Gameplay diff --git a/Models/PathInfo.cs b/Models/PathInfo.cs index 07d0acb..e1350bc 100644 --- a/Models/PathInfo.cs +++ b/Models/PathInfo.cs @@ -48,6 +48,9 @@ public int GameplayRoomCount { [JsonProperty("ignoredRooms")] public List IgnoredRooms { get; set; } = new List(); + + [JsonProperty("trackWingedGolden")] + public bool TrackWingedGolden { get; set; } = false; [JsonProperty("tier")]