public void SpawnAltars() { foreach (Point3D p in CityInfo.Infos[City].AltarLocs) { VvVAltar altar = new VvVAltar(this); altar.MoveToWorld(p, Map.Felucca); Altars.Add(altar); } }
public void Serialize(GenericWriter writer) { writer.Write(1); writer.Write(OnGoing); if (OnGoing) { writer.Write(0); writer.Write(StartTime); writer.Write(CooldownEnds); writer.Write(LastOccupationCheck); writer.Write(NextSigilSpawn); writer.Write(NextAnnouncement); writer.Write(NextAltarActivate); writer.Write((int)City); writer.Write(Sigil); writer.Write(VicePriest); writer.Write(VirtuePriest); writer.Write(Altars.Count); Altars.ForEach(altar => writer.Write(altar)); /*writer.Write(GuildStats.Count); * foreach (KeyValuePair<Guild, VvVGuildBattleStats> kvp in GuildStats) * { * writer.Write(kvp.Key); * kvp.Value.Serialize(writer); * }*/ writer.Write(Teams.Count); foreach (BattleTeam team in Teams) { team.Serialize(writer); } writer.Write(Traps.Count); Traps.ForEach(t => writer.Write(t)); } else { writer.Write(1); } }
public void EndBattle() { EndTimer(); if (Region is GuardedRegion) { ((GuardedRegion)Region).Disabled = false; } CooldownEnds = DateTime.UtcNow + TimeSpan.FromMinutes(Cooldown); ViceVsVirtueSystem.Instance.OnBattleEnd(); 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; } Guild leader = GetLeader(); foreach (Mobile m in this.Region.GetEnumeratedMobiles()) { Guild g = m.Guild as Guild; if (leader != null && (g == leader || leader.IsAlly(g))) { System.AwardPoints(m, WinSilver + (OppositionCount(g) * 50), message: false); } } SendBattleStatsGump(); System.SendVvVMessage(1154722); // A VvV battle has just concluded. The next battle will begin in less than five minutes! Altars.Clear(); GuildStats.Clear(); KillCooldown.Clear(); Participants.Clear(); Participants.TrimExcess(); Messages.Clear(); Messages.TrimExcess(); Traps.Clear(); Traps.TrimExcess(); Warned.Clear(); Warned.TrimExcess(); Turrets.Clear(); Turrets.TrimExcess(); if (Region is GuardedRegion) { ((GuardedRegion)Region).Disabled = false; } OnGoing = false; NextSigilSpawn = DateTime.MinValue; LastOccupationCheck = DateTime.MinValue; NextAnnouncement = DateTime.MinValue; StartTime = DateTime.MinValue; NextAltarActivate = DateTime.MinValue; ManaSpikeEndEffects = DateTime.MinValue; NextManaSpike = DateTime.MinValue; }