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); } }
//---------------------------------------------------------------------------------- // 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; } }
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); } }
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); } }
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); } }
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; }
public RemoveMissileObserver(RemoveMissileObserver m) { Debug.Assert(m != null); this.pMissile = m.pMissile; }
public RemoveMissileObserver(RemoveMissileObserver removeMissileObserver) { this.pMissile = removeMissileObserver.pMissile; }
public RemoveMissileObserver(RemoveMissileObserver m, SpriteBatchMan pSpriteBatchMan) { this.pMissile = m.pMissile; this.pSpriteBatchMan = pSpriteBatchMan; }