Пример #1
0
        ////////////////

        internal bool UpdateForEventsBeginnings(VanillaEventFlag eventFlags)
        {
            bool eventsChanged = false;
            IEnumerable <VanillaEventFlag> eventFlagSet = DotNetHelpers.FlagsToCollection <VanillaEventFlag>((int)eventFlags);

            foreach (VanillaEventFlag flag in eventFlagSet)
            {
                if (this.CurrentEvents.Contains(flag))
                {
                    continue;
                }

                switch (flag)
                {
                case VanillaEventFlag.Sandstorm:
                case VanillaEventFlag.BloodMoon:
                case VanillaEventFlag.SlimeRain:
                case VanillaEventFlag.SolarEclipse:
                case VanillaEventFlag.LunarApocalypse:
                    break;

                default:
                    if (RewardsMod.Instance.SettingsConfig.DebugModeInfo)
                    {
                        LogHelpers.Alert("Event added: " + Enum.GetName(typeof(VanillaEventFlag), flag));
                    }
                    eventsChanged = true;

                    this.CurrentEvents.Add(flag);
                    break;
                }
            }

            return(eventsChanged);
        }
Пример #2
0
        public void UpdateEvents()
        {
            if (Main.netMode == 1)
            {
                return;
            }

            VanillaEventFlag currentEventFlags = NPCInvasionHelpers.GetCurrentEventTypeSet();
            bool             eventsChanged     = false;

            eventsChanged = this.UpdateForEventChangesAndEndings(currentEventFlags);
            eventsChanged = this.UpdateForEventsBeginnings(currentEventFlags) || eventsChanged;

            if (eventsChanged)
            {
                if (Main.netMode == 2)
                {
                    EventsSyncProtocol.QuickSend();
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Gets a list of currently active (vanilla) world events.
        /// </summary>
        /// <returns></returns>
        public static IList <string> GetCurrentVanillaEvents()
        {
            VanillaEventFlag flags = NPCInvasionLibraries.GetCurrentEventTypeSet();

            IList <string> outList = new List <string>();

            if ((flags & VanillaEventFlag.Goblins) > 0)
            {
                flags -= VanillaEventFlag.Goblins;
                outList.Add("Goblins");
            }
            if ((flags & VanillaEventFlag.FrostLegion) > 0)
            {
                flags -= VanillaEventFlag.FrostLegion;
                outList.Add("Frost Legion");
            }
            if ((flags & VanillaEventFlag.Pirates) > 0)
            {
                flags -= VanillaEventFlag.Pirates;
                outList.Add("Pirates");
            }
            if ((flags & VanillaEventFlag.Martians) > 0)
            {
                flags -= VanillaEventFlag.Martians;
                outList.Add("Martians");
            }
            if ((flags & VanillaEventFlag.BloodMoon) > 0)
            {
                flags -= VanillaEventFlag.BloodMoon;
                outList.Add("Blood Moon");
            }
            if ((flags & VanillaEventFlag.SlimeRain) > 0)
            {
                flags -= VanillaEventFlag.SlimeRain;
                outList.Add("Slime Rain");
            }
            if ((flags & VanillaEventFlag.Sandstorm) > 0)
            {
                flags -= VanillaEventFlag.Sandstorm;
                outList.Add("Sandstorm");
            }
            if ((flags & VanillaEventFlag.SolarEclipse) > 0)
            {
                flags -= VanillaEventFlag.SolarEclipse;
                outList.Add("Solar Eclipse");
            }
            if ((flags & VanillaEventFlag.PumpkinMoon) > 0)
            {
                flags -= VanillaEventFlag.PumpkinMoon;
                outList.Add("Pumpkin Moon");
            }
            if ((flags & VanillaEventFlag.FrostMoon) > 0)
            {
                flags -= VanillaEventFlag.FrostMoon;
                outList.Add("Frost Moon");
            }
            if ((flags & VanillaEventFlag.LunarApocalypse) > 0)
            {
                flags -= VanillaEventFlag.LunarApocalypse;
                outList.Add("Lunar Apocalypse");
            }

            if (outList.Count == 0)
            {
                outList.Add("Normal");
            }

            return(outList);
        }
Пример #4
0
        internal bool UpdateForEventChangesAndEndings(VanillaEventFlag eventFlags)
        {
            bool eventsChanged = false;

            if (this.CurrentEvents.Contains(VanillaEventFlag.Goblins))
            {
                if ((eventFlags & VanillaEventFlag.Goblins) == 0)
                {
                    if (RewardsMod.Instance.SettingsConfig.DebugModeInfo)
                    {
                        LogHelpers.Alert("Goblin event ended.");
                    }
                    eventsChanged = true;

                    this.CurrentEvents.Remove(VanillaEventFlag.Goblins);
                    this.AddGoblinsConquered(1);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.FrostLegion))
            {
                if ((eventFlags & VanillaEventFlag.FrostLegion) == 0)
                {
                    if (RewardsMod.Instance.SettingsConfig.DebugModeInfo)
                    {
                        LogHelpers.Alert("Frost Legion event ended.");
                    }
                    eventsChanged = true;

                    this.CurrentEvents.Remove(VanillaEventFlag.FrostLegion);
                    this.AddFrostLegionConquered(1);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.Pirates))
            {
                if ((eventFlags & VanillaEventFlag.Pirates) == 0)
                {
                    if (RewardsMod.Instance.SettingsConfig.DebugModeInfo)
                    {
                        LogHelpers.Alert("Pirates event ended.");
                    }
                    eventsChanged = true;

                    this.CurrentEvents.Remove(VanillaEventFlag.Pirates);
                    this.AddPiratesConquered(1);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.Martians))
            {
                if ((eventFlags & VanillaEventFlag.Martians) == 0)
                {
                    if (RewardsMod.Instance.SettingsConfig.DebugModeInfo)
                    {
                        LogHelpers.Alert("Martians event ended.");
                    }
                    eventsChanged = true;

                    this.CurrentEvents.Remove(VanillaEventFlag.Martians);
                    this.AddMartiansConquered(1);
                }
            }

            if (this.CurrentEvents.Contains(VanillaEventFlag.PumpkinMoon))
            {
                //if( Main.pumpkinMoon ) {
                if ((eventFlags & VanillaEventFlag.PumpkinMoon) != 0)
                {
                    this.UpdatePumpkinMoonWaves();
                }
                else                        // End event
                {
                    if (RewardsMod.Instance.SettingsConfig.DebugModeInfo)
                    {
                        LogHelpers.Alert("Pumpkin Moon event ended.");
                    }
                    eventsChanged = true;

                    this.CurrentEvents.Remove(VanillaEventFlag.PumpkinMoon);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.FrostMoon))
            {
                //if( Main.snowMoon ) {
                if ((eventFlags & VanillaEventFlag.FrostMoon) != 0)
                {
                    this.UpdateFrostMoonWaves();
                }
                else                        // End event
                {
                    if (RewardsMod.Instance.SettingsConfig.DebugModeInfo)
                    {
                        LogHelpers.Alert("Frost Moon event ended.");
                    }
                    eventsChanged = true;

                    this.CurrentEvents.Remove(VanillaEventFlag.FrostMoon);
                }
            }

            ////

            if (this.CurrentEvents.Contains(VanillaEventFlag.Sandstorm))
            {
                //if( !Sandstorm.Happening ) {
                if ((eventFlags & VanillaEventFlag.Sandstorm) != 0)
                {
                    //eventsChanged = true;
                    this.CurrentEvents.Remove(VanillaEventFlag.Sandstorm);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.BloodMoon))
            {
                //if( !Main.bloodMoon ) {
                if ((eventFlags & VanillaEventFlag.BloodMoon) != 0)
                {
                    //eventsChanged = true;
                    this.CurrentEvents.Remove(VanillaEventFlag.BloodMoon);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.SlimeRain))
            {
                //if( !Main.slimeRain ) {
                if ((eventFlags & VanillaEventFlag.SlimeRain) != 0)
                {
                    //eventsChanged = true;
                    this.CurrentEvents.Remove(VanillaEventFlag.SlimeRain);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.SolarEclipse))
            {
                //if( !Main.eclipse ) {
                if ((eventFlags & VanillaEventFlag.SolarEclipse) != 0)
                {
                    //eventsChanged = true;
                    this.CurrentEvents.Remove(VanillaEventFlag.SolarEclipse);
                }
            }
            if (this.CurrentEvents.Contains(VanillaEventFlag.LunarApocalypse))
            {
                //if( !NPC.LunarApocalypseIsUp ) {
                if ((eventFlags & VanillaEventFlag.LunarApocalypse) != 0)
                {
                    //eventsChanged = true;
                    this.CurrentEvents.Remove(VanillaEventFlag.LunarApocalypse);
                }
            }

            return(eventsChanged);
        }