public bool UpdateWorld(float DT) { mPrevInput = mInput; mInput = Keyboard.GetState(); if (mInput.IsKeyDown(Keys.P) && mPrevInput.IsKeyUp(Keys.P) && !isPaused && !Player.IsDead() || mInput.IsKeyDown(Keys.Escape) && mPrevInput.IsKeyUp(Keys.Escape) && !isPaused && !Player.IsDead()) { isPaused = true; aaDisplay.aaGame.IsMouseVisible = true; PausedPlaque = new UIElement_StaticMenuElement(aaDisplay, this, mKit_Paused.ASSET_NAME, 540, 320, (int)mKit_Paused.ORIGIN.X, (int)mKit_Paused.ORIGIN.Y, Constants.LAYER_UI_FRONT, mKit_Paused.SRC_RECTX, mKit_Paused.SRC_RECTY, mKit_Paused.SRC_RECTWIDTH, mKit_Paused.SRC_RECTHEIGHT, 0.0f); aaDisplay.AddMenuUIElement(PausedPlaque); } else if (mInput.IsKeyDown(Keys.P) && mPrevInput.IsKeyUp(Keys.P) && isPaused || mInput.IsKeyDown(Keys.Escape) && mPrevInput.IsKeyUp(Keys.Escape) && isPaused) { isPaused = false; aaDisplay.aaGame.IsMouseVisible = false; PausedPlaque.MenuDestroy(); PausedPlaque = null; } if (!isPaused) { mAiDirector.Update(DT); if (mAiDirector.DoneSpawning() && mAiDirector.mTotalEnemies <= mEnemiesKilled) { if (!waveResting) { waveResting = true; } if (waveResting) { waveRested += DT; } if (waveRested >= waveRestDuration) { waveIndicator.Show(); waveResting = false; waveRested = 0.0f; mEnemiesKilled = 0; mCurrentWave++; mAiDirector.StartWave(mCurrentWave); } } foreach (Entity e in mToSpawnEntityList) { mEntityList.Add(e); } mToSpawnEntityList.Clear(); foreach (Entity e in mEntityList) { e.Update(DT); } foreach (Projectile p in mProjectileList) { p.Update(DT); } foreach (Projectile p in mProjDeadList) { if (!mProjectileList.Remove(p)) { if (mProjectileList.Contains(p)) { // Console.WriteLine("But the projectile list contains p"); } } mRemovedProjectileList.Add(p); if (p.mCollisionType == CollisionType.Point) { CollisionShapes_Points.Remove(p.mCollision as PointCollision); } else if (p.mCollisionType == CollisionType.Circle) { CollisionShapes_Circle.Remove(p.mCollision as CircleCollision); } p.mDispObject.Hide(); /* if (p.mDispObject != null) { Console.WriteLine("Display object not null, removing it"); p.mDispObject.Destroy(); aaDisplay.mDisplayObjects.Remove(p.mDispObject); p.mDispObject = null; } p.aaGameWorld.aaDisplay.mDisplayObjects.Remove(p.mDispObject);*/ } mProjDeadList.Clear(); foreach (Entity e in mEntityDeadList) { if (e != null) { if (e is Ship) { Ship s = e as Ship; if (!Player.IsDead()) { mPoints += s.mKit.POINTS; } if (s.mTeam == Constants.ENEMY_TEAM) { mEnemiesKilled++; if (s.mType == "Grunt_Boss" || s.mType == "Tank_Boss" || s.mType == "Bomb_Boss") { if (Player.FireBullet as Ability_FireBullet != null) { AssetKit_Tier2Pickup mAssetKit = new AssetKit_Tier2Pickup(); mPickups.Add(new DualShotPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } else if (Player.FireBullet as Ability_ShootTier2 != null) { AssetKit_Tier3Pickup mAssetKit = new AssetKit_Tier3Pickup(); mPickups.Add(new TriShotPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } else if (Player.FireBullet as Ability_ShootTier3 != null) { AssetKit_Tier4Pickup mAssetKit = new AssetKit_Tier4Pickup(); mPickups.Add(new QuadShotPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } } else { if (mRand.NextDouble() <= 0.02) { AssetKit_HealthPickup mAssetKit = new AssetKit_HealthPickup(); mPickups.Add(new HealthPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } } } s.Destroy(); } aaDisplay.mDisplayObjects.Remove(e.mDispObj); mEntityList.Remove(e); } } mEntityDeadList.Clear(); ResolveWorldCollisions(); aaGFXHandler.Update(DT); aaDisplay.aaCamera.ChangeFocus(Player.mXPos, Player.mYPos); aaDisplay.aaCamera.Update(DT); foreach (UIElement e in aaDisplay.mUIElements) { e.Update(DT); } foreach (UIElement e in aaDisplay.mMenuUIElements) { e.Update(DT); } if (Player.IsDead()) { aaDisplay.aaGame.IsMouseVisible = true; if (ScoreTextBox == null) { ScoreTextBox = new UIElement_ScoreTextBox(aaDisplay, this, 340, 315); } if (UnlockText == null) { UnlockText = new UIElement_Text(aaDisplay, this, aaDisplay.aaGame.mTextboxFont, 480, 230, Color.White, ""); aaDisplay.AddMenuUIElement(UnlockText); } if (FinalScoreText == null) { FinalScoreText = new UIElement_Text(aaDisplay, this, aaDisplay.aaGame.mTextboxFont, 640 - (int)(aaDisplay.aaGame.mTextboxFont.MeasureString(mPoints.ToString()).X / 2), 260, Color.White, mPoints.ToString()); aaDisplay.AddMenuUIElement(FinalScoreText); } aaDisplay.AddMenuUIElement(GameOverPlaque); ScoreTextBox.Show(); FinalScoreText.Show(); ScoreTextBox.Update(DT); if (((UIElement_ScoreTextBox)ScoreTextBox).AcceptClicked() || Keyboard.GetState().IsKeyDown(Keys.Enter)) { aaDisplay.aaGame.aaHSManager.AddScore(((UIElement_ScoreTextBox)ScoreTextBox).GetText(), mPoints, mCurrentWave); aaDisplay.aaGame.aaHSManager.SaveScores(); GameOverPlaque.MenuDestroy(); GameOverPlaque = null; FinalScoreText.MenuDestroy(); FinalScoreText = null; ScoreTextBox.Destroy(); ScoreTextBox = null; aaDisplay.aaGame.mManager.ChangeState(aaDisplay.aaGame.mHighScoreMenu); } else if (((UIElement_ScoreTextBox)ScoreTextBox).CancelClicked() || Keyboard.GetState().IsKeyDown(Keys.Escape)) { aaDisplay.aaGame.mManager.ChangeState(aaDisplay.aaGame.mHighScoreMenu); GameOverPlaque.MenuDestroy(); GameOverPlaque = null; FinalScoreText.MenuDestroy(); FinalScoreText = null; ScoreTextBox.Destroy(); ScoreTextBox = null; } //Manage unlocked ships and abilities if ((aaDisplay.aaGame.mShipMenu as State_Menu_Ship).shipCount == 0) { if (mCurrentWave >= 10 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[0] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[0] = 2736; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 20 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[1] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[1] = 1967; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 30 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[2] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[2] = 8913; UnlockText.mText = "NEW ABILITY UNLOCKED"; } } else if ((aaDisplay.aaGame.mShipMenu as State_Menu_Ship).shipCount == 1) { if (mCurrentWave >= 10 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[3] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[3] = 8432; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 20 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[4] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[4] = 6874; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 30 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[5] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[5] = 8794; UnlockText.mText = "NEW ABILITY UNLOCKED"; } } else if ((aaDisplay.aaGame.mShipMenu as State_Menu_Ship).shipCount == 2) { if (mCurrentWave >= 10 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[6] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[6] = 3252; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 20 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[7] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[7] = 3248; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 30 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[8] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[8] = 8942; UnlockText.mText = "NEW ABILITY UNLOCKED"; } } (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).SaveData(); } foreach (SoundEffectInstance sfx in aaDisplay.aaGame.mGameSoundFX) { if (sfx.State == SoundState.Stopped) { sfx.Dispose(); aaDisplay.aaGame.mGameSoundFXRemove.Add(sfx); } } foreach (SoundEffectInstance sfx in aaDisplay.aaGame.mGameSoundFXRemove) { aaDisplay.aaGame.mGameSoundFX.Remove(sfx); } aaDisplay.aaGame.mGameSoundFXRemove.Clear(); } return true; }
public override void LeaveState() { base.LeaveState(); shipselectKit = null; aiconKit = null; ticonKit = null; ciconKit = null; ShipSelect.MenuDestroy(); ShipSelect = null; leftButtonKit = null; leftButton.MenuDestroy(); leftButton = null; rightButtonKit = null; rightButton.MenuDestroy(); rightButton = null; backButtonKit = null; backButton.MenuDestroy(); backButton = null; mAbilityBox.MenuDestroy(); mAbilityBox = null; mGameReference.aaDisplay.mMenuUIElements.Clear(); }
public override void EnterState() { base.EnterState(); Abilitydata = mGameReference.aaDisplay.aaGame.aaHSManager.Abilitydata; lockedKit = new AssetKit_Ability_Locked(); quickturnKit = new AssetKit_Ability_QuickTurn(); warpdriveKit = new AssetKit_Ability_WarpDrive(); gunoverchargeKit = new AssetKit_Ability_GunOvercharge(); bulletstarKit = new AssetKit_Ability_BulletStar(); bulletfurryKit = new AssetKit_Ability_BulletFurry(); dualwieldKit = new AssetKit_Ability_DualWield(); missileflurryKit = new AssetKit_Ability_MissileFlurry(); overchargeenginesKit = new AssetKit_Ability_OverchargeEngines(); tighterturnsKit = new AssetKit_Ability_TighterTurns(); energyshieldKit = new AssetKit_Ability_EnergyShield(); shotgunblastKit = new AssetKit_Ability_ShotgunBlast(); reargunsKit = new AssetKit_Ability_RearGuns(); antibulletsKit = new AssetKit_Ability_AntiBullets(); satelliteKit = new AssetKit_Ability_Satellite(); mineKit = new AssetKit_Ability_Mine(); fullshieldKit = new AssetKit_Ability_FullShield(); DefaultAbility1 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, quickturnKit.ASSET_NAME, 633, 335, (int)quickturnKit.ORIGIN.X, (int)quickturnKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, quickturnKit.SRC_RECTX, quickturnKit.SRC_RECTY, quickturnKit.SRC_RECTWIDTH, quickturnKit.SRC_RECTHEIGHT, 0.0f); DefaultAbility2 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, warpdriveKit.ASSET_NAME, 705, 335, (int)warpdriveKit.ORIGIN.X, (int)warpdriveKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, warpdriveKit.SRC_RECTX, warpdriveKit.SRC_RECTY, warpdriveKit.SRC_RECTWIDTH, warpdriveKit.SRC_RECTHEIGHT, 0.0f); DefaultAbility3 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, gunoverchargeKit.ASSET_NAME, 779, 335, (int)gunoverchargeKit.ORIGIN.X, (int)gunoverchargeKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, gunoverchargeKit.SRC_RECTX, gunoverchargeKit.SRC_RECTY, gunoverchargeKit.SRC_RECTWIDTH, gunoverchargeKit.SRC_RECTHEIGHT, 0.0f); DefaultAbility4 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, bulletstarKit.ASSET_NAME, 849, 335, (int)bulletstarKit.ORIGIN.X, (int)bulletstarKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, bulletstarKit.SRC_RECTX, bulletstarKit.SRC_RECTY, bulletstarKit.SRC_RECTWIDTH, bulletstarKit.SRC_RECTHEIGHT, 0.0f); SpecialAbility1 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, lockedKit.ASSET_NAME, 633, 482, (int)lockedKit.ORIGIN.X, (int)lockedKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, lockedKit.SRC_RECTX, lockedKit.SRC_RECTY, lockedKit.SRC_RECTWIDTH, lockedKit.SRC_RECTHEIGHT, 0.0f); SpecialAbility2 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, lockedKit.ASSET_NAME, 705, 482, (int)lockedKit.ORIGIN.X, (int)lockedKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, lockedKit.SRC_RECTX, lockedKit.SRC_RECTY, lockedKit.SRC_RECTWIDTH, lockedKit.SRC_RECTHEIGHT, 0.0f); SpecialAbility3 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, lockedKit.ASSET_NAME, 779, 482, (int)lockedKit.ORIGIN.X, (int)lockedKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, lockedKit.SRC_RECTX, lockedKit.SRC_RECTY, lockedKit.SRC_RECTWIDTH, lockedKit.SRC_RECTHEIGHT, 0.0f); SpecialAbility4 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, lockedKit.ASSET_NAME, 849, 482, (int)lockedKit.ORIGIN.X, (int)lockedKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, lockedKit.SRC_RECTX, lockedKit.SRC_RECTY, lockedKit.SRC_RECTWIDTH, lockedKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(DefaultAbility1); mGameReference.aaDisplay.AddMenuUIElement(DefaultAbility2); mGameReference.aaDisplay.AddMenuUIElement(DefaultAbility3); mGameReference.aaDisplay.AddMenuUIElement(DefaultAbility4); mGameReference.aaDisplay.AddMenuUIElement(SpecialAbility1); mGameReference.aaDisplay.AddMenuUIElement(SpecialAbility2); mGameReference.aaDisplay.AddMenuUIElement(SpecialAbility3); mGameReference.aaDisplay.AddMenuUIElement(SpecialAbility4); abilitykit = new AssetKit_AbilityButton(); ability1Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 639, 206, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); ability2Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 711, 206, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); ability3Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 785, 206, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); ability4Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 855, 206, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); default1Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 639, 341, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); default2Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 711, 341, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); default3Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 785, 341, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); default4Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 855, 341, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); special1Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 639, 488, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); special2Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 711, 488, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); special3Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 785, 488, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); special4Button = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilitykit.ASSET_NAME, 855, 488, (int)abilitykit.ORIGIN.X, (int)abilitykit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.2f, abilitykit.SRC_RECTX, abilitykit.SRC_RECTY, abilitykit.SRC_RECTWIDTH, abilitykit.SRC_RECTHEIGHT, 0.0f); ability1Button.highlightDisabled = true; ability2Button.highlightDisabled = true; ability3Button.highlightDisabled = true; ability4Button.highlightDisabled = true; mGameReference.aaDisplay.AddMenuUIElement(ability1Button); mGameReference.aaDisplay.AddMenuUIElement(ability2Button); mGameReference.aaDisplay.AddMenuUIElement(ability3Button); mGameReference.aaDisplay.AddMenuUIElement(ability4Button); mGameReference.aaDisplay.AddMenuUIElement(default1Button); mGameReference.aaDisplay.AddMenuUIElement(default2Button); mGameReference.aaDisplay.AddMenuUIElement(default3Button); mGameReference.aaDisplay.AddMenuUIElement(default4Button); mGameReference.aaDisplay.AddMenuUIElement(special1Button); mGameReference.aaDisplay.AddMenuUIElement(special2Button); mGameReference.aaDisplay.AddMenuUIElement(special3Button); mGameReference.aaDisplay.AddMenuUIElement(special4Button); backButtonKit = new AssetKit_Menu_BackButton(); backButton = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, backButtonKit.ASSET_NAME, 1060, 370, (int)backButtonKit.ORIGIN.X, (int)backButtonKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, backButtonKit.SRC_RECTX, backButtonKit.SRC_RECTY, backButtonKit.SRC_RECTWIDTH, backButtonKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(backButton); rightButtonKit = new AssetKit_RightArrowButton(); rightButton = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, rightButtonKit.ASSET_NAME, 325, 90, (int)rightButtonKit.ORIGIN.X, (int)rightButtonKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, rightButtonKit.SRC_RECTX, rightButtonKit.SRC_RECTY, rightButtonKit.SRC_RECTWIDTH, rightButtonKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(rightButton); leftButtonKit = new AssetKit_LeftArrowButton(); leftButton = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, leftButtonKit.ASSET_NAME, 180, 90, (int)leftButtonKit.ORIGIN.X, (int)leftButtonKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, leftButtonKit.SRC_RECTX, leftButtonKit.SRC_RECTY, leftButtonKit.SRC_RECTWIDTH, leftButtonKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(leftButton); playButtonKit = new AssetKit_PlayButton(); playButton = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, playButtonKit.ASSET_NAME, 1060, 270, (int)playButtonKit.ORIGIN.X, (int)playButtonKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, playButtonKit.SRC_RECTX, playButtonKit.SRC_RECTY, playButtonKit.SRC_RECTWIDTH, playButtonKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(playButton); aiconKit = new AssetKit_AgilityIcon(); ticonKit = new AssetKit_TankIcon(); ciconKit = new AssetKit_CommandoIcon(); ShipIcon = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, aiconKit.ASSET_NAME, 235, 85, (int)aiconKit.ORIGIN.X, (int)aiconKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, aiconKit.SRC_RECTX, aiconKit.SRC_RECTY, aiconKit.SRC_RECTWIDTH, aiconKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(ShipIcon); shipselectKit = new AssetKit_ShipSelect(); ShipSelect = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, shipselectKit.ASSET_NAME, 20, 10, (int)shipselectKit.ORIGIN.X, (int)shipselectKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, shipselectKit.SRC_RECTX, shipselectKit.SRC_RECTY, shipselectKit.SRC_RECTWIDTH, shipselectKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(ShipSelect); helpKit = new AssetKit_ShipMenu_Help(); HelpPlaque = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, helpKit.ASSET_NAME, 20, 365, (int)helpKit.ORIGIN.X, (int)helpKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, helpKit.SRC_RECTX, helpKit.SRC_RECTY, helpKit.SRC_RECTWIDTH, helpKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(HelpPlaque); abilityselectKit = new AssetKit_AbilitySelect(); AbilitySelect = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, abilityselectKit.ASSET_NAME, 535, 60, (int)abilityselectKit.ORIGIN.X, (int)abilityselectKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, abilityselectKit.SRC_RECTX, abilityselectKit.SRC_RECTY, abilityselectKit.SRC_RECTWIDTH, abilityselectKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(AbilitySelect); mAbilityBox = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.mTextboxFont, 900 - (int)(textSize.X / 2), 560, Color.White, ""); mDescriptionBox = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.mDescriptionFont, 935 - (int)(textSize.X / 2), 600, Color.White, ""); mGameReference.aaDisplay.AddMenuUIElement(mAbilityBox); mGameReference.aaDisplay.AddMenuUIElement(mDescriptionBox); mShipName = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.mTextboxFont, 270 - (int)(textSize.X / 2), 185, Color.White, shipname); mHealth = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.mDescription2Font, 131, 230, Color.White, "Health: " + health); mMaxThrust = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.mDescription2Font, 132, 260, Color.White, "Max Thrust: " + maxthrust); mTurnSpeed = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.mDescription2Font, 130, 290, Color.White, "Turn Speed: " + turnspeed); slot1Kit = new AssetKit_Ability_Slot1(); slot2Kit = new AssetKit_Ability_Slot2(); slot3Kit = new AssetKit_Ability_Slot3(); slot4Kit = new AssetKit_Ability_Slot4(); Ability1 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, slot1Kit.ASSET_NAME, 633, 200, (int)slot1Kit.ORIGIN.X, (int)slot1Kit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, slot1Kit.SRC_RECTX, slot1Kit.SRC_RECTY, slot1Kit.SRC_RECTWIDTH, slot1Kit.SRC_RECTHEIGHT, 0.0f); Ability2 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, slot1Kit.ASSET_NAME, 705, 200, (int)slot1Kit.ORIGIN.X, (int)slot1Kit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, slot1Kit.SRC_RECTX, slot1Kit.SRC_RECTY, slot1Kit.SRC_RECTWIDTH, slot1Kit.SRC_RECTHEIGHT, 0.0f); Ability3 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, slot1Kit.ASSET_NAME, 779, 200, (int)slot1Kit.ORIGIN.X, (int)slot1Kit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, slot1Kit.SRC_RECTX, slot1Kit.SRC_RECTY, slot1Kit.SRC_RECTWIDTH, slot1Kit.SRC_RECTHEIGHT, 0.0f); Ability4 = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, slot1Kit.ASSET_NAME, 849, 200, (int)slot1Kit.ORIGIN.X, (int)slot1Kit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH - 0.1f, slot1Kit.SRC_RECTX, slot1Kit.SRC_RECTY, slot1Kit.SRC_RECTWIDTH, slot1Kit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(Ability1); mGameReference.aaDisplay.AddMenuUIElement(Ability2); mGameReference.aaDisplay.AddMenuUIElement(Ability3); mGameReference.aaDisplay.AddMenuUIElement(Ability4); ShipChangeUpdate(); }
public override void EnterState() { base.EnterState(); data = mGameReference.aaDisplay.aaGame.aaHSManager.Scoredata; highscoreKit = new AssetKit_HighScore_Plaque(); highscorePlaque = new UIElement_StaticMenuElement(mGameReference.aaDisplay, mGameReference.aaGameWorld, highscoreKit.ASSET_NAME, 640, 360, (int)highscoreKit.ORIGIN.X, (int)highscoreKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, highscoreKit.SRC_RECTX, highscoreKit.SRC_RECTY, highscoreKit.SRC_RECTWIDTH, highscoreKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(highscorePlaque); oneName = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 415, 290, Color.White, data.mName[0] + ""); mGameReference.aaDisplay.AddMenuUIElement(oneName); twoName = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 415, 330, Color.White, data.mName[1] + ""); mGameReference.aaDisplay.AddMenuUIElement(twoName); threeName = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 415, 370, Color.White, data.mName[2] + ""); mGameReference.aaDisplay.AddMenuUIElement(threeName); fourName = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 415, 410, Color.White, data.mName[3] + ""); mGameReference.aaDisplay.AddMenuUIElement(fourName); fiveName = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 415, 450, Color.White, data.mName[4] + ""); mGameReference.aaDisplay.AddMenuUIElement(fiveName); if(data.mScore[0] != 0 && data.mWave[0] != 0) { oneScore = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 620, 290, Color.White, data.mScore[0] + ""); mGameReference.aaDisplay.AddMenuUIElement(oneScore); oneWave = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 810, 290, Color.White, data.mWave[0] + ""); mGameReference.aaDisplay.AddMenuUIElement(oneWave); } if (data.mScore[1] != 0 && data.mWave[1] != 0) { twoScore = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 620, 330, Color.White, data.mScore[1] + ""); mGameReference.aaDisplay.AddMenuUIElement(twoScore); twoWave = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 810, 330, Color.White, data.mWave[1] + ""); mGameReference.aaDisplay.AddMenuUIElement(twoWave); } if (data.mScore[2] != 0 && data.mWave[2] != 0) { threeScore = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 620, 370, Color.White, data.mScore[2] + ""); mGameReference.aaDisplay.AddMenuUIElement(threeScore); threeWave = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 810, 370, Color.White, data.mWave[2] + ""); mGameReference.aaDisplay.AddMenuUIElement(threeWave); } if (data.mScore[3] != 0 && data.mWave[3] != 0) { fourScore = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 620, 410, Color.White, data.mScore[3] + ""); mGameReference.aaDisplay.AddMenuUIElement(fourScore); fourWave = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 810, 410, Color.White, data.mWave[3] + ""); mGameReference.aaDisplay.AddMenuUIElement(fourWave); } if (data.mScore[4] != 0 && data.mWave[4] != 0) { fiveScore = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 620, 450, Color.White, data.mScore[4] + ""); mGameReference.aaDisplay.AddMenuUIElement(fiveScore); fiveWave = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.aaDisplay.aaGame.mScoreFont, 810, 450, Color.White, data.mWave[4] + ""); mGameReference.aaDisplay.AddMenuUIElement(fiveWave); } backButtonKit = new AssetKit_Menu_BackButton(); backButton = new UIElement_MenuButton(mGameReference.aaDisplay, mGameReference.aaGameWorld, backButtonKit.ASSET_NAME, 15, 625, (int)backButtonKit.ORIGIN.X, (int)backButtonKit.ORIGIN.Y, Constants.LAYER_ENTITY_DEPTH, backButtonKit.SRC_RECTX, backButtonKit.SRC_RECTY, backButtonKit.SRC_RECTWIDTH, backButtonKit.SRC_RECTHEIGHT, 0.0f); mGameReference.aaDisplay.AddMenuUIElement(backButton); }
public override void Update(float DT) { backButton.Update(DT); leftButton.Update(DT); rightButton.Update(DT); playButton.Update(DT); ability1Button.Update(DT); ability2Button.Update(DT); ability3Button.Update(DT); ability4Button.Update(DT); default1Button.Update(DT); default2Button.Update(DT); default3Button.Update(DT); default4Button.Update(DT); special1Button.Update(DT); special2Button.Update(DT); special3Button.Update(DT); special4Button.Update(DT); base.Update(DT); if (backButton.CheckButtonClick()) { mGameReference.mManager.ChangeState(mGameReference.mMainMenu); SaveData(); } else if (playButton.CheckButtonClick()) { if (!(Abilitydata.mAbility1[shipCount] < 0) && !(Abilitydata.mAbility2[shipCount] < 0) && !(Abilitydata.mAbility3[shipCount] < 0) && !(Abilitydata.mAbility4[shipCount] < 0)) { mGameReference.mManager.ChangeState(mGameReference.mGame); mGameReference.aaDisplay.aaGame.aaHSManager.Abilitydata = Abilitydata; mGameReference.aaHSManager.SaveAbilities(); } else { UIElement errorText = new UIElement_Text(mGameReference.aaDisplay, mGameReference.aaGameWorld, mGameReference.mDescription2Font, 570, 265, Color.Red, "You must fill all ability slots"); mGameReference.aaDisplay.AddMenuUIElement(errorText); } } else if (leftButton.CheckButtonClick()) { shipCount--; FixShipCount(); ShipChangeUpdate(); } else if (rightButton.CheckButtonClick()) { shipCount++; FixShipCount(); ShipChangeUpdate(); } else if (default1Button.CheckButtonClick()) { UnhighlightAbilities(); HighlightAbilities(); default1Button.forceHighlight = true; selectedAbility = 0; placingAbility = true; } else if (default2Button.CheckButtonClick()) { UnhighlightAbilities(); HighlightAbilities(); default2Button.forceHighlight = true; selectedAbility = 1; placingAbility = true; } else if (default3Button.CheckButtonClick()) { UnhighlightAbilities(); HighlightAbilities(); default3Button.forceHighlight = true; selectedAbility = 2; placingAbility = true; } else if (default4Button.CheckButtonClick()) { UnhighlightAbilities(); HighlightAbilities(); default4Button.forceHighlight = true; selectedAbility = 3; placingAbility = true; } else if (special1Button.CheckButtonClick() && special1ID >= 0) { UnhighlightAbilities(); HighlightAbilities(); special1Button.forceHighlight = true; selectedAbility = special1ID; placingAbility = true; } else if (special2Button.CheckButtonClick() && special2ID >= 0) { UnhighlightAbilities(); HighlightAbilities(); special2Button.forceHighlight = true; selectedAbility = special2ID; placingAbility = true; } else if (special3Button.CheckButtonClick() && special3ID >= 0) { UnhighlightAbilities(); HighlightAbilities(); special3Button.forceHighlight = true; selectedAbility = special3ID; placingAbility = true; } else if (special4Button.CheckButtonClick() && special4ID >= 0) { UnhighlightAbilities(); HighlightAbilities(); special4Button.forceHighlight = true; selectedAbility = special4ID; placingAbility = true; } if (default1Button.CheckButtonHover()) UpdateDescriptionText(0); else if (default2Button.CheckButtonHover()) UpdateDescriptionText(1); else if (default3Button.CheckButtonHover()) UpdateDescriptionText(2); else if (default4Button.CheckButtonHover()) UpdateDescriptionText(3); else if (special1Button.CheckButtonHover()) UpdateDescriptionText(special1ID); else if (special2Button.CheckButtonHover()) UpdateDescriptionText(special2ID); else if (special3Button.CheckButtonHover()) UpdateDescriptionText(special3ID); else if (special4Button.CheckButtonHover()) UpdateDescriptionText(special4ID); if (placingAbility) { if (ability1Button.CheckButtonClick() && selectedAbility >= 0) { CheckExistance(selectedAbility, 1); selectedAbility = -1; UnhighlightAbilities(); ShipChangeUpdate(); } else if (ability2Button.CheckButtonClick() && selectedAbility >= 0) { CheckExistance(selectedAbility, 2); selectedAbility = -1; UnhighlightAbilities(); ShipChangeUpdate(); } else if (ability3Button.CheckButtonClick() && selectedAbility >= 0) { CheckExistance(selectedAbility, 3); selectedAbility = -1; UnhighlightAbilities(); ShipChangeUpdate(); } else if (ability4Button.CheckButtonClick() && selectedAbility >= 0) { CheckExistance(selectedAbility, 4); selectedAbility = -1; UnhighlightAbilities(); ShipChangeUpdate(); } } if (Keyboard.GetState().IsKeyDown(Keys.Escape)) { mGameReference.mManager.ChangeState(mGameReference.mMainMenu); } }
public bool UpdateWorld(float DT) { mPrevInput = mInput; mInput = Keyboard.GetState(); if (mInput.IsKeyDown(Keys.P) && mPrevInput.IsKeyUp(Keys.P) && !isPaused && !Player.IsDead() || mInput.IsKeyDown(Keys.Escape) && mPrevInput.IsKeyUp(Keys.Escape) && !isPaused && !Player.IsDead()) { isPaused = true; aaDisplay.aaGame.IsMouseVisible = true; PausedPlaque = new UIElement_StaticMenuElement(aaDisplay, this, mKit_Paused.ASSET_NAME, 540, 320, (int)mKit_Paused.ORIGIN.X, (int)mKit_Paused.ORIGIN.Y, Constants.LAYER_UI_FRONT, mKit_Paused.SRC_RECTX, mKit_Paused.SRC_RECTY, mKit_Paused.SRC_RECTWIDTH, mKit_Paused.SRC_RECTHEIGHT, 0.0f); aaDisplay.AddMenuUIElement(PausedPlaque); } else if (mInput.IsKeyDown(Keys.P) && mPrevInput.IsKeyUp(Keys.P) && isPaused || mInput.IsKeyDown(Keys.Escape) && mPrevInput.IsKeyUp(Keys.Escape) && isPaused) { isPaused = false; aaDisplay.aaGame.IsMouseVisible = false; PausedPlaque.MenuDestroy(); PausedPlaque = null; } if (!isPaused) { mAiDirector.Update(DT); if (mAiDirector.DoneSpawning() && mAiDirector.mTotalEnemies <= mEnemiesKilled) { if (!waveResting) { waveResting = true; } if (waveResting) { waveRested += DT; } if (waveRested >= waveRestDuration) { waveIndicator.Show(); waveResting = false; waveRested = 0.0f; mEnemiesKilled = 0; mCurrentWave++; mAiDirector.StartWave(mCurrentWave); } } foreach (Entity e in mToSpawnEntityList) { mEntityList.Add(e); } mToSpawnEntityList.Clear(); foreach (Entity e in mEntityList) { e.Update(DT); } foreach (Projectile p in mProjectileList) { p.Update(DT); } foreach (Projectile p in mProjDeadList) { if (!mProjectileList.Remove(p)) { if (mProjectileList.Contains(p)) { // Console.WriteLine("But the projectile list contains p"); } } mRemovedProjectileList.Add(p); if (p.mCollisionType == CollisionType.Point) { CollisionShapes_Points.Remove(p.mCollision as PointCollision); } else if (p.mCollisionType == CollisionType.Circle) { CollisionShapes_Circle.Remove(p.mCollision as CircleCollision); } p.mDispObject.Hide(); /* * if (p.mDispObject != null) * { * Console.WriteLine("Display object not null, removing it"); * p.mDispObject.Destroy(); * aaDisplay.mDisplayObjects.Remove(p.mDispObject); * p.mDispObject = null; * } * p.aaGameWorld.aaDisplay.mDisplayObjects.Remove(p.mDispObject);*/ } mProjDeadList.Clear(); foreach (Entity e in mEntityDeadList) { if (e != null) { if (e is Ship) { Ship s = e as Ship; if (!Player.IsDead()) { mPoints += s.mKit.POINTS; } if (s.mTeam == Constants.ENEMY_TEAM) { mEnemiesKilled++; if (s.mType == "Grunt_Boss" || s.mType == "Tank_Boss" || s.mType == "Bomb_Boss") { if (Player.FireBullet as Ability_FireBullet != null) { AssetKit_Tier2Pickup mAssetKit = new AssetKit_Tier2Pickup(); mPickups.Add(new DualShotPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } else if (Player.FireBullet as Ability_ShootTier2 != null) { AssetKit_Tier3Pickup mAssetKit = new AssetKit_Tier3Pickup(); mPickups.Add(new TriShotPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } else if (Player.FireBullet as Ability_ShootTier3 != null) { AssetKit_Tier4Pickup mAssetKit = new AssetKit_Tier4Pickup(); mPickups.Add(new QuadShotPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } } else { if (mRand.NextDouble() <= 0.02) { AssetKit_HealthPickup mAssetKit = new AssetKit_HealthPickup(); mPickups.Add(new HealthPickup(aaDisplay, this, mAssetKit.ASSET_NAME, new Vector2(s.mXPos, s.mYPos), mAssetKit.ORIGIN, Constants.LAYER_ENTITY_DEPTH, new Rectangle(mAssetKit.SRC_RECTX, mAssetKit.SRC_RECTY, mAssetKit.SRC_RECTWIDTH, mAssetKit.SRC_RECTHEIGHT), 0)); } } } s.Destroy(); } aaDisplay.mDisplayObjects.Remove(e.mDispObj); mEntityList.Remove(e); } } mEntityDeadList.Clear(); ResolveWorldCollisions(); aaGFXHandler.Update(DT); aaDisplay.aaCamera.ChangeFocus(Player.mXPos, Player.mYPos); aaDisplay.aaCamera.Update(DT); foreach (UIElement e in aaDisplay.mUIElements) { e.Update(DT); } foreach (UIElement e in aaDisplay.mMenuUIElements) { e.Update(DT); } if (Player.IsDead()) { aaDisplay.aaGame.IsMouseVisible = true; if (ScoreTextBox == null) { ScoreTextBox = new UIElement_ScoreTextBox(aaDisplay, this, 340, 315); } if (UnlockText == null) { UnlockText = new UIElement_Text(aaDisplay, this, aaDisplay.aaGame.mTextboxFont, 480, 230, Color.White, ""); aaDisplay.AddMenuUIElement(UnlockText); } if (FinalScoreText == null) { FinalScoreText = new UIElement_Text(aaDisplay, this, aaDisplay.aaGame.mTextboxFont, 640 - (int)(aaDisplay.aaGame.mTextboxFont.MeasureString(mPoints.ToString()).X / 2), 260, Color.White, mPoints.ToString()); aaDisplay.AddMenuUIElement(FinalScoreText); } aaDisplay.AddMenuUIElement(GameOverPlaque); ScoreTextBox.Show(); FinalScoreText.Show(); ScoreTextBox.Update(DT); if (((UIElement_ScoreTextBox)ScoreTextBox).AcceptClicked() || Keyboard.GetState().IsKeyDown(Keys.Enter)) { aaDisplay.aaGame.aaHSManager.AddScore(((UIElement_ScoreTextBox)ScoreTextBox).GetText(), mPoints, mCurrentWave); aaDisplay.aaGame.aaHSManager.SaveScores(); GameOverPlaque.MenuDestroy(); GameOverPlaque = null; FinalScoreText.MenuDestroy(); FinalScoreText = null; ScoreTextBox.Destroy(); ScoreTextBox = null; aaDisplay.aaGame.mManager.ChangeState(aaDisplay.aaGame.mHighScoreMenu); } else if (((UIElement_ScoreTextBox)ScoreTextBox).CancelClicked() || Keyboard.GetState().IsKeyDown(Keys.Escape)) { aaDisplay.aaGame.mManager.ChangeState(aaDisplay.aaGame.mHighScoreMenu); GameOverPlaque.MenuDestroy(); GameOverPlaque = null; FinalScoreText.MenuDestroy(); FinalScoreText = null; ScoreTextBox.Destroy(); ScoreTextBox = null; } //Manage unlocked ships and abilities if ((aaDisplay.aaGame.mShipMenu as State_Menu_Ship).shipCount == 0) { if (mCurrentWave >= 10 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[0] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[0] = 2736; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 20 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[1] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[1] = 1967; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 30 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[2] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[2] = 8913; UnlockText.mText = "NEW ABILITY UNLOCKED"; } } else if ((aaDisplay.aaGame.mShipMenu as State_Menu_Ship).shipCount == 1) { if (mCurrentWave >= 10 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[3] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[3] = 8432; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 20 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[4] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[4] = 6874; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 30 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[5] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[5] = 8794; UnlockText.mText = "NEW ABILITY UNLOCKED"; } } else if ((aaDisplay.aaGame.mShipMenu as State_Menu_Ship).shipCount == 2) { if (mCurrentWave >= 10 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[6] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[6] = 3252; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 20 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[7] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[7] = 3248; UnlockText.mText = "NEW ABILITY UNLOCKED"; } if (mCurrentWave >= 30 && (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[8] == 0) { (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).Abilitydata.mUnlocks[8] = 8942; UnlockText.mText = "NEW ABILITY UNLOCKED"; } } (aaDisplay.aaGame.mShipMenu as State_Menu_Ship).SaveData(); } foreach (SoundEffectInstance sfx in aaDisplay.aaGame.mGameSoundFX) { if (sfx.State == SoundState.Stopped) { sfx.Dispose(); aaDisplay.aaGame.mGameSoundFXRemove.Add(sfx); } } foreach (SoundEffectInstance sfx in aaDisplay.aaGame.mGameSoundFXRemove) { aaDisplay.aaGame.mGameSoundFX.Remove(sfx); } aaDisplay.aaGame.mGameSoundFXRemove.Clear(); } return(true); }