private static void OnChapterPanelUpdateStats(On.Celeste.OuiChapterPanel.orig_UpdateStats orig, OuiChapterPanel self, bool wiggle, bool?overrideStrawberryWiggle, bool?overrideDeathWiggle, bool?overrideHeartWiggle) { orig(self, wiggle, overrideStrawberryWiggle, overrideDeathWiggle, overrideHeartWiggle); if (Engine.Scene == overworldWrapper?.Scene) { AreaModeStats areaModeStats = self.DisplayedStats.Modes[(int)self.Area.Mode]; DeathsCounter deathsCounter = new DynData <OuiChapterPanel>(self).Get <DeathsCounter>("deaths"); deathsCounter.Visible = areaModeStats.Deaths > 0 && !AreaData.Get(self.Area).Interlude_Safe; // mod the death icon string pathToSkull = "CollabUtils2/skulls/" + self.Area.GetLevelSet(); if (GFX.Gui.Has(pathToSkull)) { new DynData <DeathsCounter>(deathsCounter)["icon"] = GFX.Gui[pathToSkull]; } } if (isPanelShowingLobby(self) || Engine.Scene == overworldWrapper?.Scene) { // turn strawberry counter into golden if there is no berry in the map if (AreaData.Get(self.Area).Mode[0].TotalStrawberries == 0) { StrawberriesCounter strawberriesCounter = new DynData <OuiChapterPanel>(self).Get <StrawberriesCounter>("strawberries"); strawberriesCounter.Golden = true; strawberriesCounter.ShowOutOf = false; } } }
private static void OnChapterPanelUpdateStats(On.Celeste.OuiChapterPanel.orig_UpdateStats orig, OuiChapterPanel self, bool wiggle, bool?overrideStrawberryWiggle, bool?overrideDeathWiggle, bool?overrideHeartWiggle) { orig(self, wiggle, overrideStrawberryWiggle, overrideDeathWiggle, overrideHeartWiggle); DeathsCounter deathsCounter = new DynData <OuiChapterPanel>(self).Get <DeathsCounter>("deaths"); if (Engine.Scene == overworldWrapper?.Scene) { // within lobbies, death counts always show up, even if you didn't beat the map yet. AreaModeStats areaModeStats = self.DisplayedStats.Modes[(int)self.Area.Mode]; deathsCounter.Visible = areaModeStats.Deaths > 0 && !AreaData.Get(self.Area).Interlude_Safe; } // mod the death icon: for the path, use the current level set, or for lobbies, the lobby's matching level set. string pathToSkull = "CollabUtils2/skulls/" + self.Area.GetLevelSet(); if (LobbyHelper.GetLobbyLevelSet(self.Area.GetSID()) != null) { pathToSkull = "CollabUtils2/skulls/" + LobbyHelper.GetLobbyLevelSet(self.Area.GetSID()); } if (GFX.Gui.Has(pathToSkull)) { new DynData <DeathsCounter>(deathsCounter)["icon"] = GFX.Gui[pathToSkull]; } new DynData <DeathsCounter>(deathsCounter)["modifiedByCollabUtils"] = GFX.Gui.Has(pathToSkull); if (isPanelShowingLobby(self) || Engine.Scene == overworldWrapper?.Scene) { // turn strawberry counter into golden if there only are golden berries in the map MapData mapData = AreaData.Get(self.Area).Mode[0].MapData; if (mapData.GetDetectedStrawberriesIncludingUntracked() == mapData.Goldenberries.Count) { StrawberriesCounter strawberriesCounter = new DynData <OuiChapterPanel>(self).Get <StrawberriesCounter>("strawberries"); strawberriesCounter.Golden = true; strawberriesCounter.ShowOutOf = false; } } }