public bool HasBattleAggression(Mobile m) { if (BattleAggression == null || !BattleAggression.ContainsKey(m)) { return(false); } if (BattleAggression[m] < DateTime.UtcNow) { BattleAggression.Remove(m); return(false); } return(true); }
private void CheckBattleAggression() { if (BattleAggression == null) { return; } List <Mobile> list = new List <Mobile>(BattleAggression.Keys); foreach (Mobile m in list) { if (BattleAggression[m] < DateTime.UtcNow && !m.Region.IsPartOf(Region)) { BattleAggression.Remove(m); } } ColUtility.Free(list); }
public void EndBattle() { OnGoing = false; EndTimer(); if (Region is GuardedRegion) { ((GuardedRegion)Region).Disabled = false; foreach (PlayerMobile pm in Region.GetEnumeratedMobiles().OfType <PlayerMobile>()) { pm.RecheckTownProtection(); } } foreach (VvVAltar altar in Altars) { if (!altar.Deleted) { altar.Delete(); } } foreach (VvVTrap trap in Traps) { if (!trap.Deleted) { trap.Delete(); } } foreach (CannonTurret turret in Turrets) { if (!turret.Deleted) { turret.Delete(); } } if (VicePriest != null) { VicePriest.Delete(); VicePriest = null; } if (VirtuePriest != null) { VirtuePriest.Delete(); VirtuePriest = null; } if (Sigil != null) { Sigil.Delete(); Sigil = null; } TallyStats(); SendBattleStatsGump(); System.SendVvVMessage(1154722); // A VvV battle has just concluded. The next battle will begin in less than five minutes! if (BattleAggression != null) { BattleAggression.Clear(); } ColUtility.Free(Altars); ColUtility.Free(Teams); KillCooldown.Clear(); ColUtility.Free(Messages); ColUtility.Free(Traps); ColUtility.Free(Warned); ColUtility.Free(Turrets); if (Region is GuardedRegion) { ((GuardedRegion)Region).Disabled = false; } NextSigilSpawn = DateTime.MinValue; LastOccupationCheck = DateTime.MinValue; NextAnnouncement = DateTime.MinValue; StartTime = DateTime.MinValue; NextAltarActivate = DateTime.MinValue; ManaSpikeEndEffects = DateTime.MinValue; NextManaSpike = DateTime.MinValue; CooldownEnds = DateTime.UtcNow + TimeSpan.FromMinutes(Cooldown); Timer.DelayCall(TimeSpan.FromMinutes(Cooldown), () => { System.CheckBattleStatus(); }); }