コード例 #1
0
        public static void Postfix(MainMenuLoadPanel __instance, MainMenuLoadButton lb)
        {
            SaveLoadManager.GameInfo gameInfo = SaveLoadManager.main.GetGameInfo(lb.saveGame);

            if ((gameInfo == null) || !gameInfo.IsValid() || gameInfo.isFallback)
            {
                return;
            }

            DeathRunSaveData slotData = DeathRunUtils.FindSave(lb.saveGame);

            if (slotData == null)
            {
                return;
            }

            if (!"".Equals(slotData.startSave.message))
            {
                lb.load.FindChild("SaveGameMode").GetComponent <Text>().text = slotData.startSave.message;

                slotData.runData.updateFromSave(slotData);

                string duration = Utils.PrettifyTime((int)slotData.playerSave.allLives);

                if (slotData.playerSave.allLives >= 60 * 60 * 24)
                {
                    int total = (int)slotData.playerSave.allLives;
                    int days  = total / (60 * 60 * 24);
                    total -= (days * 60 * 60 * 24);

                    int hours = total / (60 * 60);
                    total -= hours * 60 * 60;

                    int minutes = total / 60;
                    total -= minutes;

                    duration = "" + days + " " + ((days == 1) ? "day" : "days") + ", " + hours + ":" + ((minutes < 10) ? "0" : "") + minutes;
                }

                duration += ". Score: " + slotData.runData.Score;

                lb.load.FindChild("SaveGameLength").GetComponent <Text>().text = duration;
            }
        }
コード例 #2
0
        public static bool LoadMostRecentSavedGame_Prefix()
        {
            SaveLoadManager.GameInfo gameInfo = null;
            string slotName = null;

            // Try get game info and slot name
            try
            {
                string[] activeSlotNames = SaveLoadManager.main.GetActiveSlotNames();
                long     num             = 0L;
                int      i    = 0;
                int      num2 = activeSlotNames.Length;
                while (i < num2)
                {
                    SaveLoadManager.GameInfo gameInfo2 = SaveLoadManager.main.GetGameInfo(activeSlotNames[i]);
                    if (gameInfo2.dateTicks > num)
                    {
                        gameInfo = gameInfo2;
                        num      = gameInfo2.dateTicks;
                        slotName = activeSlotNames[i];
                    }
                    i++;
                }
            }
            catch (Exception ex)
            {
                Logger.Log("WARNING: Exception caught while retrieving game info. Exception=[" + ex.ToString() + "]");
                gameInfo = null;
            }
            // Load added notifications and outdoor ladder directions if needed.
            if (gameInfo != null)
            {
                KnownTechFixer.LoadAddedNotifications(slotName);
                ConstructableFixer.LoadLadderDirections(slotName);
            }
            // Give back execution to origin function.
            return(true);
        }