Example #1
0
        public static void SetPlayerStats(System.Action <GameStatsManager, TrackedStats, float> orig,
                                          GameStatsManager self, TrackedStats trackedStats, float value)
        {
            orig(self, trackedStats, value);

            if (trackedStats == TrackedStats.TIME_PLAYED && value == 0f)
            {
                GameManager.Instance.PrimaryPlayer.GiveItem("heart_holster");
            }
        }
Example #2
0
        public static void SetupUnlockOnStat(this PickupObject self, TrackedStats stat, DungeonPrerequisite.PrerequisiteOperation operation, int comparisonValue)
        {
            EncounterTrackable encounterTrackable = self.encounterTrackable;
            bool flag = encounterTrackable.prerequisites == null;

            if (flag)
            {
                encounterTrackable.prerequisites    = new DungeonPrerequisite[1];
                encounterTrackable.prerequisites[0] = new DungeonPrerequisite
                {
                    prerequisiteType      = DungeonPrerequisite.PrerequisiteType.COMPARISON,
                    prerequisiteOperation = operation,
                    statToCheck           = stat,
                    comparisonValue       = (float)comparisonValue
                };
            }
            else
            {
                encounterTrackable.prerequisites = encounterTrackable.prerequisites.Concat(new DungeonPrerequisite[]
                {
                    new DungeonPrerequisite
                    {
                        prerequisiteType      = DungeonPrerequisite.PrerequisiteType.COMPARISON,
                        prerequisiteOperation = operation,
                        statToCheck           = stat,
                        comparisonValue       = (float)comparisonValue
                    }
                }).ToArray <DungeonPrerequisite>();
            }
            EncounterDatabaseEntry entry = EncounterDatabase.GetEntry(encounterTrackable.EncounterGuid);
            bool flag2 = !string.IsNullOrEmpty(entry.ProxyEncounterGuid);

            if (flag2)
            {
                entry.ProxyEncounterGuid = "";
            }
            bool flag3 = entry.prerequisites == null;

            if (flag3)
            {
                entry.prerequisites    = new DungeonPrerequisite[1];
                entry.prerequisites[0] = new DungeonPrerequisite
                {
                    prerequisiteType      = DungeonPrerequisite.PrerequisiteType.COMPARISON,
                    prerequisiteOperation = operation,
                    statToCheck           = stat,
                    comparisonValue       = (float)comparisonValue
                };
            }
            else
            {
                entry.prerequisites = entry.prerequisites.Concat(new DungeonPrerequisite[]
                {
                    new DungeonPrerequisite
                    {
                        prerequisiteType      = DungeonPrerequisite.PrerequisiteType.COMPARISON,
                        prerequisiteOperation = operation,
                        statToCheck           = stat,
                        comparisonValue       = (float)comparisonValue
                    }
                }).ToArray <DungeonPrerequisite>();
            }
        }