public override void OnRead() { Victoria victoria = ((TheSummoningQuest)System).Victoria; if (victoria == null) { System.From.SendMessage("Internal error: unable to find Victoria. Quest unable to continue."); System.Cancel(); } else { SummoningAltar altar = victoria.Altar; if (altar == null) { System.From.SendMessage("Internal error: unable to find summoning altar. Quest unable to continue."); System.Cancel(); } else if (altar.Daemon == null || !altar.Daemon.Alive) { BoneDaemon daemon = new BoneDaemon(); daemon.MoveToWorld(altar.Location, altar.Map); altar.Daemon = daemon; System.AddObjective(new VanquishDaemonObjective(daemon)); } else { victoria.SayTo(System.From, "The devourer has already been summoned."); ((TheSummoningQuest)System).WaitForSummon = true; } } }
public override void ChildDeserialize(GenericReader reader) { int version = reader.ReadEncodedInt(); m_Daemon = reader.ReadMobile() as BoneDaemon; m_CorpseWithSkull = reader.ReadItem() as Corpse; }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); m_Daemon = reader.ReadMobile() as BoneDaemon; CheckDaemon(); }
public void CheckDaemon() { if (m_Daemon == null || !m_Daemon.Alive) { m_Daemon = null; Hue = 0; } else { Hue = 0x66D; } }
public VanquishDaemonObjective(BoneDaemon daemon) { m_Daemon = daemon; }