Esempio n. 1
0
        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();
                }
            }
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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();
                }
            }
        }
Esempio n. 4
0
        private void UnjoinWith(IInputDevice gamePad)
        {
            var unjoined = JoinedPlayerManager.DropPlayer(gamePad);

            if (unjoined != null)
            {
                MainMenuGum.UnjoinWith(unjoined.ShipType.ToGum());
            }
        }
Esempio n. 5
0
        private void JoinWith(IInputDevice gamePad)
        {
            var newPlayer = JoinedPlayerManager.Join(gamePad);

            if (newPlayer != null)
            {
                MainMenuGum.JoinWith(newPlayer.ShipType.ToGum());
            }
        }
Esempio n. 6
0
        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();
            }
        }