////////////////

        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);
        }
        ////////////////

        public WorldLogic()
        {
            var flags = NPCInvasionHelpers.GetCurrentEventTypeSet();

            /*this.CurrentEvents = new ConcurrentDictionary<VanillaEventFlag, byte>(
             *      DotNetHelpers.FlagsToList<VanillaEventFlag>( (int)flags )
             *              .Select( t => new KeyValuePair<VanillaEventFlag, byte>(t, 0) )
             * );*/
            this.CurrentEvents = new HashSet <VanillaEventFlag>(
                DotNetHelpers.FlagsToCollection <VanillaEventFlag>((int)flags)
                );
        }