Example #1
0
        private void AssignPlayerData(Player player)
        {
            // see if it's cached
            var inputDevice = player.InputDevice;

            if (PlayerWeaponLevelManager.PlayerWeaponLevels.ContainsKey(inputDevice))
            {
                player.PlayerData =
                    PlayerWeaponLevelManager.PlayerWeaponLevels[inputDevice];
            }
            else
            {
                // try to load or create:
                player.PlayerData =
                    PlayerWeaponLevelManager.LoadForInputDevice(inputDevice);

                if (player.PlayerData == null)
                {
                    player.PlayerData = new Models.PlayerData();
                    player.PlayerData.InitializeAllWeapons();
                }

                PlayerWeaponLevelManager.PlayerWeaponLevels[player.InputDevice] =
                    player.PlayerData;
            }

            player.OnPlayerDeath += (deadPlayer) =>
            {
                deadPlayerInputDevices.Add(deadPlayer.InputDevice);
                foreach (var enemy in EnemyList)
                {
                    enemy.ReactToPlayerDeath(deadPlayer);
                }
            };
        }
Example #2
0
        void CustomDestroy()
        {
            PlayerWeaponLevelManager.SaveAll();

            Camera.Main.Detach();
            LoopedBackgroundMusic?.Stop();
            LoopedBackgroundMusic?.Dispose();
        }
Example #3
0
        private Player JoinWith(IInputDevice inputDevice)
        {
            var player = new Player();

            PlayerWeaponLevelManager.AddUniqueInputDevice(inputDevice);

            player.CurrentColorCategoryState =
                PlayerList.Count.ToPlayerColorCategory();

            PlayerList.Add(player);
            player.InitializeTopDownInput(inputDevice);

            player.SwappedWeapon += () => HandlePlayerSwappedWeapon(player);

            AssignPlayerData(player);

            SetInitialPlayerPosition(player);
            return(player);
        }
Example #4
0
        private void InitializeUi()
        {
            var gameScreenGumRuntime = ((GameScreenGumRuntime)GameScreenGum);

            gameScreenGumRuntime.SetNumberOfPlayers(PlayerList.Count);

            gameScreenGumRuntime.QuitClicked   += (not, used) => FlatRedBallServices.Game.Exit();
            gameScreenGumRuntime.ResumeClicked += (not, used) => DoUnpause();

            gameScreenGumRuntime.ClearDataClicked += (not, used) =>
            {
                PlayerWeaponLevelManager.ClearAll();
                this.MoveToScreen(nameof(Level1));
            };

            gameScreenGumRuntime.StartLevel += () => DoStartLevel();
            gameScreenGumRuntime.ShowLevelStart($"{LevelName}");

            foreach (var player in PlayerList)
            {
                ((GameScreenGumRuntime)GameScreenGum)
                .RefreshExperienceBar(player, UpdateType.Instant, false);
            }
        }