protected override void OnTarget(Mobile from, object targeted) { if (m_Government != null && !m_Government.Deleted && m_Government.MilitaryAdvisor != null && !m_Government.MilitaryAdvisor.Deleted) { from.SendMessage(m_Government.Name.ToString() + " already has a military advisor stationed."); return; } if (CustomGuildStone.IsGuildLeader(from as PlayerMobile, m_Government)) { MilitaryAdvisor newAdvisor = new MilitaryAdvisor(m_Government); if (targeted is Item) newAdvisor.MoveToWorld((targeted as Item).Location, (targeted as Item).Map); else if (targeted is Mobile) newAdvisor.MoveToWorld((targeted as Mobile).Location, (targeted as Mobile).Map); else if (targeted is LandTarget) newAdvisor.MoveToWorld((targeted as LandTarget).Location, from.Map); else newAdvisor.MoveToWorld(from.Location, from.Map); m_Government.MilitaryAdvisor = newAdvisor; newAdvisor.Home = newAdvisor.Location; newAdvisor.RangeHome = 0; } base.OnTarget(from, targeted); }
public override void Deserialize(GenericReader reader) { base.Deserialize( reader ); int version = reader.ReadInt(); switch (version) { case 7: { #region Version 7 m_TradeInformation = new TradeInfo(); TradeInfo.Deserialize(reader, m_TradeInformation); #endregion goto case 6; } case 6: { #region Version 6 m_Employees = new List<Mobile>(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { Mobile e = reader.ReadMobile(); if(!m_Employees.Contains(e)) m_Employees.Add(e); } #endregion goto case 5; } case 5: { #region Version 5 TradeAdvisor = (TradeAdvisor)reader.ReadMobile(); int count = 0; m_MilitarySpawners = new List<MilitarySpawner>(); count = reader.ReadInt(); for (int i = 0; i < count; i++) { object o = reader.ReadItem(); if (o != null) m_MilitarySpawners.Add((MilitarySpawner)o); } m_WayPoints = new List<MilitaryWayPoint>(); count = reader.ReadInt(); for (int i = 0; i < count; i++) { object o = reader.ReadItem(); if (o != null) m_WayPoints.Add((MilitaryWayPoint)o); } m_Nation = (Nation)reader.ReadInt(); m_CityGovernment = reader.ReadBool(); m_Resources = new Dictionary<ResourceType, int>(); count = reader.ReadInt(); for (int i = 0; i < count; i++) { ResourceType r = (ResourceType)reader.ReadInt(); int a = reader.ReadInt(); m_Resources.Add(r, a); } m_Reports = new List<ReportInfo>(); count = reader.ReadInt(); for (int i = 0; i < count; i++) { ReportInfo r = new ReportInfo(null, false, false); ReportInfo.Deserialize(reader, r); m_Reports.Add(r); } m_MilitaryAdvisor = (MilitaryAdvisor)reader.ReadMobile(); m_MilitaryPolicies = new MilitaryInfo(this); MilitaryInfo.Deserialize(reader, m_MilitaryPolicies); Governments.Add(this); #endregion Version 5 break; } } }