public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 3: { m_WispHue = reader.ReadInt(); goto case 2; } case 2: { m_WispName = reader.ReadString(); goto case 1; } case 1: { m_Wisp = (PetWisp)reader.ReadMobile(); break; } } }
public void ConjureWisp(Mobile from) { if (m_Wisp != null && !m_Wisp.Deleted) { return; } m_Wisp = new PetWisp(); if (m_WispName != null && m_WispName.Length > 0) { m_Wisp.Name = m_WispName; } m_Wisp.MoveToWorld(from.Location, from.Map); m_Wisp.Controlled = true; m_Wisp.ControlMaster = from; m_Wisp.ControlOrder = OrderType.Follow; m_Wisp.ControlTarget = from; m_Wisp.Hue = m_WispHue; from.PlaySound(0x1d4); Timer.DelayCall(TimeSpan.FromMinutes(10), () => { CageWisp(from); Douse(); }); }
public void CageWisp(Mobile from) { if (m_Wisp != null && !m_Wisp.Deleted) { m_WispName = m_Wisp.Name; m_Wisp.Delete(); m_Wisp = null; from.PlaySound(0x1d6); } }