// switch state public override void Handle() { // if not initialied, do nothing if (privInstance == null) { return; } GlobalPlayerStats.Player2.life--; GlobalPlayerStats.reduceLife(); ProjectileTracker.Reset(); // if player two is not over, switch to player two if (GlobalConfiguration.isTwoPlayers && GlobalPlayerStats.Player1.life > 0) { TimerManager.SwapInstance(); ColliPairManager.SwapInstance(); SpaceInvaders.currentState = ToPlayer1State.getInstance(); } else if (GlobalPlayerStats.Player2.life > 0) // continue play { SpaceInvaders.currentState = ToPlayer2State.getInstance(); } else // switch to score screen { SpaceInvaders.currentState = GameOverState.getInstance(); } }
// Up the level // --rebuild collision and timer manager // --reload alient grid and shield grid // --regroup sprites into spritebatch public void LevelUp() { TimerManager.DiscardInstance(); ColliPairManager.DiscardInstance(); SpriteBatchManager.getInstance().FindSpriteBatchByName(SpriteBatch.Name.Player1).RecycleNodes(); SpriteBatchManager.getInstance().FindSpriteBatchByName(SpriteBatch.Name.Player1).Wash(); this.load(); GlobalPlayerStats.Player1.alienLeft = 55; ProjectileTracker.Reset(); SpaceInvaders.currentState = ToPlayer1State.getInstance(); }
// switch state public override void Handle() { this.hitcount = 0; // if not initialied, do nothing if (privInstance == null) { return; } else { GlobalPlayerStats.isPlayer1Playing = true; TimerManager.getInstance().RefreshTimer(); ProjectileTracker.Reset(); SpaceInvaders.currentState = PlayerOneState.getInstance(); } }