Exemplo n.º 1
0
        public TownInvasion(InvasionTowns town, TownMonsterType monster, TownChampionType champion, DateTime time)
        {
            _Spawned = new List <Mobile>();

            _InvasionTown     = town;
            _TownMonsterType  = monster;
            _TownChampionType = champion;
            _StartTime        = time;
        }
Exemplo n.º 2
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 3:
            {
                m_Spawned = reader.ReadStrongMobileList();
                goto case 2;
            }

            case 2:
            {
                m_IsRunning = reader.ReadBool();
                goto case 1;
            }

            case 1:
            {
                m_ParagonChance          = reader.ReadDouble();
                m_AlwaysMurderer         = reader.ReadBool();
                m_TimeNextScheduledEvent = reader.ReadDateTime();
                m_TimeLastEvent          = reader.ReadDateTime();
                m_TIEventRate            = reader.ReadTimeSpan();
                goto case 0;
            }

            case 0:
            {
                m_MinSpawnZ = reader.ReadInt();
                m_MaxSpawnZ = reader.ReadInt();

                m_Broadcast = reader.ReadBool();

                m_Top      = reader.ReadPoint3D();
                m_Bottom   = reader.ReadPoint3D();
                m_SpawnMap = reader.ReadMap();

                m_TownMonsterType  = (TownMonsterType)reader.ReadEncodedInt();
                m_TownChampionType = (TownChampionType)reader.ReadEncodedInt();


                break;
            }
            }

            OnStop();
            m_IsRunning = false;
            //m_Spawned = new List<Mobile>();
        }
Exemplo n.º 3
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile from = sender.Mobile;

            if (info.ButtonID == 1)
            {
                string   time = info.GetTextEntry(5).Text;
                DateTime timeToStart;

                DateTime.TryParse(time, out timeToStart);

                if (timeToStart.Equals(DateTime.MinValue))
                {
                    from.SendMessage("You entered an invalid date. Please follow the pattern.");
                    return;
                }

                if (timeToStart < DateTime.UtcNow)
                {
                    from.SendMessage("You must pick a time in the future!");
                    from.SendMessage("Time is {0}, you picked {1}", DateTime.UtcNow, timeToStart);
                    return;
                }

                if (info.IsSwitched(0))
                {
                    SelectedTown    = (InvasionTowns)Utility.Random(0, Enum.GetNames(typeof(InvasionTowns)).Length);
                    SelectedMonster = (TownMonsterType)Utility.Random(0, Enum.GetNames(typeof(TownMonsterType)).Length);
                    SelectedChamp   = (TownChampionType)Utility.Random(0, Enum.GetNames(typeof(TownChampionType)).Length);
                }
                else
                {
                    if (info.IsSwitched(13))
                    {
                        SelectedTown = (InvasionTowns)Utility.Random(0, Enum.GetNames(typeof(InvasionTowns)).Length);
                    }
                    else
                    {
                        for (int i = 100; i < 200; i++)
                        {
                            if (info.IsSwitched(i))
                            {
                                SelectedTown = (InvasionTowns)i - 100;
                                break;
                            }
                        }
                    }

                    for (int i = 200; i < 300; i++)
                    {
                        if (info.IsSwitched(i))
                        {
                            SelectedMonster = (TownMonsterType)i - 200;
                            break;
                        }
                    }

                    for (int i = 300; i < 400; i++)
                    {
                        if (info.IsSwitched(i))
                        {
                            SelectedChamp = (TownChampionType)i - 300;
                            break;
                        }
                    }
                }

                from.SendMessage("You have scheduled an invasion for {0} at {1}", SelectedTown, timeToStart);

                new TownInvasion(SelectedTown, SelectedMonster, SelectedChamp, timeToStart);
            }
        }