Example #1
0
        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;
                }
            }
        }
Example #2
0
 private void FixSettingAltSideStats(On.Celeste.OuiChapterPanel.orig_UpdateStats orig, OuiChapterPanel self, bool wiggle, bool?overrideStrawberryWiggle, bool?overrideDeathWiggle, bool?overrideHeartWiggle)
 {
     if (shouldResetStats)
     {
         orig(self, wiggle, overrideStrawberryWiggle, overrideDeathWiggle, overrideHeartWiggle);
     }
 }
Example #3
0
 private void FixSettingAltSideStats(On.Celeste.OuiChapterPanel.orig_UpdateStats orig, OuiChapterPanel self, bool wiggle, bool?overrideStrawberryWiggle, bool?overrideDeathWiggle, bool?overrideHeartWiggle)
 {
     if (shouldResetStats)
     {
         orig(self, wiggle, overrideStrawberryWiggle, overrideDeathWiggle, overrideHeartWiggle);
         if (GetModeMetaForAltSide(self.Data)?.ShowBerriesAsGolden ?? false)
         {
             new DynData <OuiChapterPanel>(self).Get <StrawberriesCounter>("strawberries").Golden = true;
         }
     }
 }
        private static void modOuiChapterPanelUpdateStats(On.Celeste.OuiChapterPanel.orig_UpdateStats orig, OuiChapterPanel self, bool wiggle, bool?overrideStrawberryWiggle, bool?overrideDeathWiggle, bool?overrideHeartWiggle)
        {
            orig(self, wiggle, overrideStrawberryWiggle, overrideDeathWiggle, overrideHeartWiggle);

            if (speedBerryPBDisplay != null)
            {
                if (CollabMapDataProcessor.SpeedBerries.TryGetValue(self.Area.GetSID(), out CollabMapDataProcessor.SpeedBerryInfo speedBerryInfo) &&
                    CollabModule.Instance.SaveData.SpeedBerryPBs.TryGetValue(self.Area.GetSID(), out long speedBerryPB))
                {
                    speedBerryPBDisplay.Visible = true;
                    speedBerryPBDisplay.Icon    = GFX.Gui[getRankIcon(speedBerryInfo, speedBerryPB)];
                    speedBerryPBDisplay.Color   = getRankColor(speedBerryInfo, speedBerryPB);
                    speedBerryPBDisplay.Text    = Dialog.Time(speedBerryPB);
                }
                else
                {
                    speedBerryPBDisplay.Visible = false;
                }
            }
        }
Example #5
0
        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;
                }
            }
        }