public override void Notify()
        {
            // Delete missile
            //Debug.WriteLine("ShipRemoveMissileObserver: {0} {1}", this.pSubject.pObjA, this.pSubject.pObjB);

            // At this point we have two game objects
            // Actually we can control the objects in the visitor
            // Alphabetical ordering... A is missile,  B is wall

            // This cast will throw an exception if I'm wrong
            this.pMissile = (Missile)this.pSubject.pObjA;

            //Debug.WriteLine("MissileRemoveObserver: --> delete missile {0}", pMissile);


            if (pMissile.bMarkForDeath == false)
            {
                pMissile.bMarkForDeath = true;

                // Delay - remove object later
                // ToDo - reduce the new functions
                //AnimationSprite pAnimUFODies = new AnimationSprite(GameSprite.Name.Missile);

                //pAnimUFODies.Attach(Image.Name.MissileBombDies);

                //TimerMan.Add(TimerEvent.Name.SquidAnimation, pAnimUFODies, 0.00f, false);

                RemoveMissileObserver pObserver = new RemoveMissileObserver(this);
                DelayedObjectMan.Attach(pObserver);
            }
        }
Beispiel #2
0
        //----------------------------------------------------------------------------------
        // Abstract Methods
        //----------------------------------------------------------------------------------
        public override void Notify()
        {
            // Delete missile
            //Debug.WriteLine("RemoveMissileObserver: {0} {1}", this.pSubject.pObjA, this.pSubject.pObjB);

            if (this.pSubject.pObjA.GetName() == GameObject.Name.Missile)
            {
                this.pMissile = (Missile)this.pSubject.pObjA;
            }

            else if (this.pSubject.pObjB.GetName() == GameObject.Name.Missile)
            {
                this.pMissile = (Missile)this.pSubject.pObjB;
            }

            Debug.Assert(this.pMissile != null);


            if (pMissile.bMarkForDeath == false)
            {
                pMissile.bMarkForDeath = true;
                //   Delay
                RemoveMissileObserver pObserver = new RemoveMissileObserver(this);
                DelayedObjectManager.Attach(pObserver);
            }
            else
            {
                pMissile.bMarkForDeath = true;
            }
        }
Beispiel #3
0
        public override void Notify()
        {
            //Debug.WriteLine("RemoveMissileObserver: {0} {1}", this.pSubject.pObjA, this.pSubject.pObjB);

            if (this.pSubject.pObjA.GetType() == typeof(Missile))
            {
                this.pMissile = (Missile)this.pSubject.pObjA;
            }
            else
            {
                this.pMissile = (Missile)this.pSubject.pObjB;
            }


            //Debug.WriteLine("MissileRemoveObserver: --> delete missile {0}", pMissile);

            if (!pMissile.IsMarkedForDeath())
            {
                pMissile.MarkForDeath();

                // Delay - remove object later
                RemoveMissileObserver pObserver = new RemoveMissileObserver(this);
                GameStateManager.GetGame().GetStateDelayedObjectManager().Attach(pObserver);
            }
        }
        public override void Notify()
        {
            this.pMissile = (Missile)this.pSubject.pObjA;
            Debug.Assert(this.pMissile != null);

            if (pMissile.bMarkForDeath == false)
            {
                pMissile.bMarkForDeath = true;
                //   Delay
                RemoveMissileObserver pObserver = new RemoveMissileObserver(this);
                DelayedObjectMan.Attach(pObserver);
            }
        }
Beispiel #5
0
        public override void Update()
        {
            //Debug.WriteLine("RemoveMissileObserver: {0} {1}", this.pSubject.goA, this.pSubject.goB);

            this.pMissile = Missile.GetMissile(this.pSubject.goA, this.pSubject.goB);
            //Debug.WriteLine("MissileRemoveObserver: --> delete missile {0}", pMissile);
            if (pMissile.markedForDeath == false)
            {
                pMissile.markedForDeath = true;
                RemoveMissileObserver pObserver = new RemoveMissileObserver(this);
                DelayedGameObjectManager.Attach(pObserver);
            }
        }
Beispiel #6
0
        public override void Notify()
        {
            // Delete missile
            //Debug.WriteLine("RemoveMissileObserver: {0} {1}", this.pSubject.pObjA, this.pSubject.pObjB);

            this.pMissile = (Missile)this.pSubject.pObjA;
            Debug.Assert(this.pMissile != null);

            if (pMissile.bMarkForDeath == false)
            {
                pMissile.bMarkForDeath = true;
                //   Delay
                RemoveMissileObserver pObserver = new RemoveMissileObserver(this, pSpriteBatchMan);
                DelayedObjectMan.Attach(pObserver);
            }
        }
Beispiel #7
0
        public override void Notify()
        {
            // Remove MissileObserver ObjectA is missile,
            this.pMissile = (Missile)this.pSubject.pObjA;
            Debug.Assert(this.pMissile != null);


            if (pMissile.bMarkForDeath == false)
            {
                pMissile.bMarkForDeath = true;


                //pass missile reference to manager thats executes/removes objects later
                RemoveMissileObserver pObserver = new RemoveMissileObserver(this);
                DelayedObjectMan.Attach(pObserver);
            }
        }
 public RemoveMissileObserver(RemoveMissileObserver m)
 {
     this.pMissile = m.pMissile;
 }
Beispiel #9
0
 public RemoveMissileObserver(RemoveMissileObserver m)
 {
     Debug.Assert(m != null);
     this.pMissile = m.pMissile;
 }
Beispiel #10
0
 public RemoveMissileObserver(RemoveMissileObserver removeMissileObserver)
 {
     this.pMissile = removeMissileObserver.pMissile;
 }
Beispiel #11
0
 public RemoveMissileObserver(RemoveMissileObserver m, SpriteBatchMan pSpriteBatchMan)
 {
     this.pMissile        = m.pMissile;
     this.pSpriteBatchMan = pSpriteBatchMan;
 }