Example #1
0
    public void LoadColony(RetiredColonyData data)
    {
        colonyName.text = data.colonyName.ToUpper();
        cycleCount.text = string.Format(UI.RETIRED_COLONY_INFO_SCREEN.CYCLE_COUNT, data.cycleCount.ToString());
        ToggleExplorer(false);
        RefreshUIScale(null);
        if ((UnityEngine.Object)Game.Instance == (UnityEngine.Object)null)
        {
            viewOtherColoniesButton.gameObject.SetActive(true);
        }
        ClearColony();
        if ((UnityEngine.Object)SaveGame.Instance != (UnityEngine.Object)null)
        {
            ColonyAchievementTracker component = SaveGame.Instance.GetComponent <ColonyAchievementTracker>();
            UpdateAchievementData(data, component.achievementsToDisplay.ToArray());
            component.ClearDisplayAchievements();
            PopulateAchievementProgress(component);
        }
        else
        {
            UpdateAchievementData(data, null);
        }
        DisplayStatistics(data);
        RectTransform transform = colonyDataRoot.transform.parent.rectTransform();
        Vector3       position  = colonyDataRoot.transform.parent.rectTransform().position;

        transform.SetPosition(new Vector3(position.x, 0f, 0f));
    }
Example #2
0
            /// <summary>
            /// Applied before RenderEveryTick runs.
            /// </summary>
            internal static bool Prefix(ColonyAchievementTracker __instance)
            {
                var mode = FastTrackOptions.Instance.DisableAchievements;

                if (mode != FastTrackOptions.AchievementDisable.Always && (mode ==
                                                                           FastTrackOptions.AchievementDisable.Never || TrackAchievements()))
                {
                    var allAchievements = Db.Get().ColonyAchievements.resources;
                    var achievements    = __instance.achievements;
                    // Update one per frame
                    int index = __instance.updatingAchievement;
                    if (index >= achievements.Count || index >= allAchievements.Count)
                    {
                        index = 0;
                    }
                    string key = allAchievements[index].Id;
                    __instance.updatingAchievement = index + 1;
                    // If achievement has not already failed or succeeded
                    if (achievements.TryGetValue(key, out ColonyAchievementStatus status) &&
                        !status.success && !status.failed)
                    {
                        status.UpdateAchievement();
                        if (status.success && !status.failed)
                        {
                            ColonyAchievementTracker.UnlockPlatformAchievement(key);
                            __instance.completedAchievementsToDisplay.Add(key);
                            __instance.TriggerNewAchievementCompleted(key);
                            RetireColonyUtility.SaveColonySummaryData();
                        }
                    }
                }
                return(false);
            }
Example #3
0
 /// <summary>
 /// Applied after Serialize runs.
 /// </summary>
 internal static void Postfix(ColonyAchievementTracker __instance,
                              AchieveDict __state)
 {
     if (__state != null)
     {
         // Reinstate everything
         foreach (var achievement in __state)
         {
             __instance.achievements[achievement.Key] = achievement.Value;
         }
         __state.Clear();
     }
 }
Example #4
0
        public static void Postfix(ColonyAchievementTracker __instance)
        {
            foreach (KeyValuePair <string, ColonyAchievementStatus> keyValuePair in __instance.achievements)
            {
                if (keyValuePair.Value.success && !keyValuePair.Value.failed)
                {
                    Type[]   parameters_type = new Type[] { typeof(string) };
                    object[] paramaters      = new object[] { keyValuePair.Key };

                    Traverse.Create <ColonyAchievementTracker>().Method("UnlockPlatformAchievement", parameters_type).GetValue(paramaters);
                }
            }
        }
        public static int HomeSweetHome()
        {
            ColonyAchievementTracker tracker = SaveGame.Instance.GetComponent <ColonyAchievementTracker>();

            if (tracker == null)
            {
                return(0);
            }
            ColonyAchievementStatus status = tracker.achievements.Where(a => a.Key == Db.Get().ColonyAchievements.Thriving.Id).First().Value;

            if (status.success && !status.failed)
            {
                return(1);
            }
            return(0);
        }
 /// <summary>
 /// Applied after Deserialize runs.
 /// </summary>
 internal static void Postfix(ColonyAchievementTracker __instance)
 {
     foreach (var achieve in __instance.achievements)
     {
         if (achieve.Key == ACHIEVE_NAME)
         {
             var reqs = achieve.Value.Requirements;
             // It gets deleted
             if (reqs.Count < 1)
             {
                 reqs.Add(new NumDecorPositives(DecorTuning.
                                                NUM_DECOR_FOR_ACHIEVEMENT));
                 PUtil.LogWarning("Fixing achievement bug from v1.x save");
             }
         }
     }
 }
Example #7
0
        public override void OnSpawn()
        {
            base.OnSpawn();
            var diseases = Db.Get().Diseases;

            diseaseIndex = diseases.GetIndex(diseases.RadiationPoisoning.Id);
            if (FastTrackOptions.Instance.DisableAchievements == FastTrackOptions.
                AchievementDisable.Always || AchievementDisablePatches.TrackAchievements())
            {
                SaveGame.Instance.TryGetComponent(out tracker);
            }
            else
            {
                tracker = null;
            }
            CreatePartitioner(Grid.PosToCell(this));
        }
Example #8
0
            /// <summary>
            /// Applied before Serialize runs.
            /// </summary>
            internal static void Prefix(ColonyAchievementTracker __instance,
                                        ref AchieveDict __state)
            {
                AchieveDict achieves;

                if (Options.DoNotSerialize && (achieves = __instance.achievements) != null)
                {
                    PushAchievements(achieves, __state = new Dictionary <string,
                                                                         ColonyAchievementStatus>(achieves.Count));
#if DEBUG
                    PUtil.LogDebug("Removed achievements from save: {0:D}".F(__state.Count));
#endif
                }
                else
                {
                    __state = null;
                }
            }
Example #9
0
        /// <summary>
        /// Applied before IsAchievementUnlocked runs.
        /// </summary>
        internal static bool Prefix(ColonyAchievementTracker __instance, ref bool __result,
                                    ColonyAchievement achievement)
        {
            bool achieved = false;

            if (__instance.achievements.TryGetValue(achievement.Id, out ColonyAchievementStatus
                                                    status))
            {
                achieved = status.success;
                if (!achieved)
                {
                    status.UpdateAchievement();
                    achieved = status.success;
                }
            }
            __result = achieved;
            return(false);
        }
Example #10
0
 private void PopulateAchievementProgress(ColonyAchievementTracker tracker)
 {
     if ((UnityEngine.Object)tracker != (UnityEngine.Object)null)
     {
         foreach (KeyValuePair <string, GameObject> achievementEntry in achievementEntries)
         {
             tracker.achievements.TryGetValue(achievementEntry.Key, out ColonyAchievementStatus value);
             if (value != null)
             {
                 AchievementWidget component = achievementEntry.Value.GetComponent <AchievementWidget>();
                 if ((UnityEngine.Object)component != (UnityEngine.Object)null)
                 {
                     component.ShowProgress(value);
                     if (value.failed)
                     {
                         component.SetFailed();
                     }
                 }
             }
         }
     }
 }
            public static void Postfix(ColonyAchievementTracker __instance)
            {
                Debug.Log("---");
                Debug.Log("!Achievement Tracker Start!");

                if (DebugHandler.InstantBuildMode)
                {
                    Debug.LogWarningFormat("Unable to unlock achievements: instant build mode");
                }
                else if (SaveGame.Instance.sandboxEnabled)
                {
                    Debug.LogWarningFormat("Unable to unlock achievements: instant build mode");
                }
                else if (Game.Instance.debugWasUsed)
                {
                    Debug.LogWarningFormat("Unable to unlock achievements: debug was used.");
                }

                foreach (KeyValuePair <string, ColonyAchievementStatus> achievement in __instance.achievements)
                {
                    if (relevantAchievements.Contains(achievement.Key))
                    {
                        Debug.Log("-----");
                        var outputString = getAchievementString(achievement.Key, achievement.Value);
                        foreach (string s in outputString)
                        {
                            Debug.Log(s);
                        }
                    }
                    //else
                    //{
                    //	Debug.Log("Other achievement: " + achievement.Key);
                    //}
                }
                Debug.Log("-----");
            }