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/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
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")]