public TownInvasion(InvasionTowns town, TownMonsterType monster, TownChampionType champion, DateTime time) { _Spawned = new List <Mobile>(); _InvasionTown = town; _TownMonsterType = monster; _TownChampionType = champion; _StartTime = time; }
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>(); }
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); } }