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 override void ChildDeserialize( GenericReader reader )
        {
            int version = reader.ReadEncodedInt();

            m_Daemon = reader.ReadMobile() as BoneDaemon;
            m_CorpseWithSkull = reader.ReadItem() as Corpse;
        }
 public VanquishDaemonObjective( BoneDaemon daemon )
 {
     m_Daemon = daemon;
 }
        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;
                }
            }
        }