public override void Notify() { //Debug.WriteLine("RemoveFlyingSaucerObserver: {0} {1}", this.pSubject.pObjA, this.pSubject.pObjB); // This cast will throw an exception if wrong this.pAlien = (FlyingSaucer)this.pSubject.pObjA; pAlien.GetCollisionObject().GetCollisionRect().Set(0, 0, 0, 0); pAlien.Update(); if (!pAlien.IsMarkedForDeath()) { pAlien.MarkForDeath(); // Delay - remove object later RemoveFlyingSaucerObserver pObserver = new RemoveFlyingSaucerObserver(this); GameStateManager.GetGame().GetStateDelayedObjectManager().Attach(pObserver); } TimerManager.Add(TimeEvent.Name.DeployFlyingSaucer, new DeployFlyingSaucerCommand(), r.Next(30, 61)); }
public RemoveFlyingSaucerObserver(RemoveFlyingSaucerObserver a) { this.pAlien = a.pAlien; }