public void EndInvasion() { WaveTimer.Stop(); for (int i = 0; i < Spawn.Count; ++i) { Mobile m = (Mobile)Spawn[i]; Spawn.Remove(m); m.Delete(); } for (int i = 0; i < Players.Count; ++i) { PlayerMobile pm = (PlayerMobile)Players[i]; Players.Remove(pm); BankBox bank = (BankBox)pm.BankBox; bank.DropItem(new BankCheck(InvasionConfig.Reward)); } Killed = 0; inprogress = false; ThisRegion.Unregister(); ThisRegion = null; }
public void StartInvasion() { ThisRegion = new InvasionRegion(this); if (spawntype == InvasionSpawnType.None) { RandomSpawn(); } if (Players == null) { Players = new ArrayList(); } if (Spawn == null) { Spawn = new ArrayList(); } WaveTimer = new InvasionWaveTimer(this); inprogress = true; DoSpawn(InvasionConfig.WaveAmount); }
public void StartInvasion() { if (m_SpawnList == null) m_SpawnList = new List<InvasionSpawn>(); if (m_RegisteredInvasionRegion == null) m_RegisteredInvasionRegion = new InvasionRegion(this); if (m_Players == null) m_Players = new Dictionary<PlayerMobile, int>(); m_InvasionStarted = true; InvasionEventSink.OnInvasionStarted(new InvasionEventSink.InvasionStartedEventArgs(this)); }
public bool CanStartInvasion(PlayerMobile from) { if (m_InvasionRegionBounds.Height == 0 || m_InvasionRegionBounds.Width == 0) { from.SendMessage("InvasionRegionBounds does not appear to be set."); return false; } if (m_InvasionMap == null) { from.SendMessage("InvasionMap does not appear to be set."); return false; } if (m_InvasionOriginatesFrom.X == 0 || m_InvasionOriginatesFrom.Y == 0) { from.SendMessage("InvasionOriginatesFrom does not appear to be set."); return false; } if (m_InvasionLocationTarget.X == 0 || m_InvasionLocationTarget.Y == 0) { from.SendMessage("InvasionLocationTarget does not appear to be set."); return false; } if (m_RegisteredInvasionRegion == null) m_RegisteredInvasionRegion = new InvasionRegion(this); m_RegisteredInvasionRegion.Register(); if (Region.Find(m_InvasionOriginatesFrom, m_InvasionMap) != m_RegisteredInvasionRegion) { from.SendMessage("InvasionOriginatesFrom must be a point in the invasion region."); return false; } if (Region.Find(m_InvasionLocationTarget, m_InvasionMap) != m_RegisteredInvasionRegion) { from.SendMessage("InvasionLocationTarget must be a point in the invasion region."); return false; } m_RegisteredInvasionRegion.Unregister(); if (m_RequiredKillCount == 0) { from.SendMessage("RequiredKillCount does not appear to be set."); return false; } if (m_SpawnDensity == 0) { from.SendMessage("SpawnDensity does not appear to be set."); return false; } from.SendMessage("Invasion Started!"); return true; }