コード例 #1
0
        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));
        }
コード例 #2
0
 public RemoveFlyingSaucerObserver(RemoveFlyingSaucerObserver a)
 {
     this.pAlien = a.pAlien;
 }