internal void TakeDamage(int damageAmount, Ship whoDealtDamage) { if (Health > 0) { Health -= damageAmount; if (Health <= 0) { FireSmokeEmitterInstance.IsEmitting = false; JoinedPlayerManager.AwardKill(whoDealtDamage.InputDevice); JoinedPlayerManager.RecordDeath(this.InputDevice); Die(); } else { FireSmokeEmitterInstance.IsEmitting = Health <= 21; // didn't die, so just play a sound: var endingInt = FlatRedBallServices.Random.Next(3) + 1; var hitSound = (SoundEffect)GetFile("shipimpact0" + endingInt); hitSound.Play(); } } }
void CustomInitialize() { TileEntityInstantiator.CreateEntitiesFrom(Map); InitializeShips(); JoinedPlayerManager.ResetGameStats(); RandomizeWind(); // debug initialize needs to be before initializing cameras because // new ships may be added through debug logic. DebugInitialize(); // do this after DebugInitialize so the debug ships are created too: PositionShipsOnSpawnPoints(); InitializeCameras(); DoInitialCloudSpawning(); OffsetTilemapLayers(); InitializeCollision(); PauseComponentInstance.Visible = false; }
private void ShipFiringActivity() { foreach (var gamePad in InputManager.Xbox360GamePads) { var boomLeft = gamePad.ButtonPushed(Xbox360GamePad.Button.LeftTrigger); var boomRight = gamePad.ButtonPushed(Xbox360GamePad.Button.RightTrigger); if (boomLeft || boomRight) { var player = JoinedPlayerManager.GetPlayer(gamePad); if (player != null) { Shoot(boomLeft, player); PlayShotSound(); } } } var keyboard = InputManager.Keyboard; var betterPlayer = JoinedPlayerManager.GetPlayer(keyboard); if (betterPlayer != null) { var boomLeft = keyboard.KeyPushed(Microsoft.Xna.Framework.Input.Keys.Q) || InputManager.Mouse.ButtonPushed(Mouse.MouseButtons.LeftButton); var boomRight = keyboard.KeyPushed(Microsoft.Xna.Framework.Input.Keys.E) || InputManager.Mouse.ButtonPushed(Mouse.MouseButtons.RightButton); if (boomLeft || boomRight) { Shoot(boomLeft, betterPlayer); PlayShotSound(); } } }
private void UnjoinWith(IInputDevice gamePad) { var unjoined = JoinedPlayerManager.DropPlayer(gamePad); if (unjoined != null) { MainMenuGum.UnjoinWith(unjoined.ShipType.ToGum()); } }
private void JoinWith(IInputDevice gamePad) { var newPlayer = JoinedPlayerManager.Join(gamePad); if (newPlayer != null) { MainMenuGum.JoinWith(newPlayer.ShipType.ToGum()); } }
private void JoinActivity() { int minimumPlayers = 1; foreach (var gamePad in InputManager.Xbox360GamePads) { var pressedStart = gamePad.ButtonPushed(Xbox360GamePad.Button.Start); var pressedBack = gamePad.ButtonPushed(Xbox360GamePad.Button.Back); var pressedAnything = gamePad.AnyButtonPushed(); if (!JoinedPlayerManager.IsJoined(gamePad) && pressedAnything) { JoinWith(gamePad); } else if (JoinedPlayerManager.IsJoined(gamePad) && pressedBack) { UnjoinWith(gamePad); } else if (pressedStart && JoinedPlayerManager.JoinedPlayers.Count >= minimumPlayers) { GoToGameScreen(); } } var keyboard = InputManager.Keyboard; if (!JoinedPlayerManager.IsJoined(keyboard) && keyboard.AnyKeyPushed()) { JoinWith(keyboard); } else if (JoinedPlayerManager.IsJoined(keyboard) && keyboard.KeyPushed(Microsoft.Xna.Framework.Input.Keys.Escape)) { UnjoinWith(keyboard); } else if (keyboard.KeyPushed(Microsoft.Xna.Framework.Input.Keys.Enter) && JoinedPlayerManager.JoinedPlayers.Count >= minimumPlayers) { GoToGameScreen(); } }