public override void Notify() { GameObject pObject = this.pSubject.pObjA; this.pShip = (Ship)this.pSubject.pObjB; Debug.Assert(pShip != null); if (pShip.bMarkForDeath == false) { this.pShip.bMarkForDeath = true; //had initially tried to use the reference "this" ship //did not work FYI, needed to get the ship from manager Ship pShip = ShipMan.GetShip(); pShip.SetShootState(ShipMan.ShootState.End); pShip.SetMoveState(ShipMan.MoveState.NoMove); HitShipObserver pObserver = new HitShipObserver(this); DelayedObjectMan.Attach(pObserver); } //very wierd not sure how i feel about it if (pObject.GetName() == GameObject.Name.Octopus || pObject.GetName() == GameObject.Name.Squid || pObject.GetName() == GameObject.Name.Crab) { //we want to reset the grids location AlienGroup pGrid = (AlienGroup)GONodeMan.Find(GameObject.Name.AlienGrid); pGrid.MoveUp(); } }
public override void Execute(float deltaTime) { Ship pShip = ShipMan.ActivateShip(); pShip.SetMoveState(ShipMan.MoveState.FreeMove); pShip.SetShootState(ShipMan.ShootState.Ready); }
public override void Notify() { Ship pShip = ShipMan.GetShip(); if (this.pSubject.pObjB.GetName() == GameObject.Name.BumperRight) { pShip.SetMoveState(ShipMan.State.MoveLeft); } else if (this.pSubject.pObjB.GetName() == GameObject.Name.BumperLeft) { pShip.SetMoveState(ShipMan.State.MoveRight); } else { Debug.Assert(false); } }
public override void Notify() { Debug.WriteLine("Bumper_Observer: {0} {1}", this.pSubject.pObjA.GetName(), this.pSubject.pObjB.GetName()); // OK do some alphabetic magic BumperCategory pBumper = (BumperCategory)this.pSubject.pObjA; Ship pShip = (Ship)this.pSubject.pObjB; if (pBumper.GetCategoryType() == BumperCategory.Type.RightBumper) { pShip.SetMoveState(ShipMan.State.MoveLeft); } else if (pBumper.GetCategoryType() == BumperCategory.Type.LeftBumper) { pShip.SetMoveState(ShipMan.State.MoveRight); } }
public override void Notify() { // we need to revert lvl1 or lvl2 to original forms // because we lost and will need to re-load content //ship was hit take a life and subtract from score PlayerMan.P1TakeLife(); PlayerMan.SetP1Score(-250); float P1lives = PlayerMan.GetP1Lives(); SpaceInvaders pGame = GameMan.GetGame(); //check if they have more lives if (P1lives == 0) { // last life i was stil able to shoot Ship pShip = ShipMan.GetShip(); pShip.SetShootState(ShipMan.ShootState.End); pShip.SetMoveState(ShipMan.MoveState.NoMove); GameState pState = pGame.GetCurrentState(); if (pState.GetStateName() == GameMan.State.InGame) { InGameState pLvl1 = (InGameState)pState; pLvl1.SetStateToggle(false); TimerMan.Add(TimeEvent.Name.GameStateChange, new GameStateChange(false), 5.0f); } else if (pState.GetStateName() == GameMan.State.LVL2) { InGameStateLV2 pLvl2 = (InGameStateLV2)pState; pLvl2.SetStateToggle(false); TimerMan.Add(TimeEvent.Name.GameStateChange, new GameStateChange(false), 5.0f); } } else { //do nothing } }
public override void Handle(Ship pShip) { pShip.SetMoveState(ShipMan.MoveState.FreeMove); }
public override void Handle(Ship pShip) { pShip.SetMoveState(ShipMan.State.MoveBoth); }