예제 #1
0
        protected override void Activate()
        {
            CleanupGhostModeAddOns();
            PlayerSpawner.SpawnAllPlayers();

            List <GameModeIntroView.Icon> icons = new List <GameModeIntroView.Icon>();

            foreach (Player player in RegisteredPlayers.AllPlayers)
            {
                icons.Add(GameModeIntroView.Icon.Player);
                icons.Add(GameModeIntroView.Icon.Swords);
            }
            icons.RemoveLast();

            GameModeIntroView.Show(DisplayTitle, icons);

            foreach (BattlePlayer battlePlayer in PlayerSpawner.AllSpawnedBattlePlayers)
            {
                ghostModeAddOns_[battlePlayer] = new GhostModePlayerAddOn(battlePlayer);
            }

            PlayerSpawner.OnSpawnedPlayerRemoved += HandleSpawnedPlayerRemoved;
            BattlePlayerInputDash.OnPlayerDash   += HandlePlayerDash;
            GameNotifications.OnBattlePlayerShotLaser.AddListener(HandlePlayerShotLaser);
        }
예제 #2
0
        // PRAGMA MARK - Internal
        protected override void Activate()
        {
            PlayerSpawner.SpawnAllPlayers();

            List <GameModeIntroView.Icon> icons = new List <GameModeIntroView.Icon>();

            foreach (Player player in RegisteredPlayers.AllPlayers)
            {
                icons.Add(GameModeIntroView.Icon.Player);
                icons.Add(GameModeIntroView.Icon.Swords);
            }
            icons.RemoveLast();

            BattlePlayerHealth.LaserDamage         = 0;
            BattlePlayerHealth.KnockbackMultiplier = 0.1f;

            GameModeIntroView.Show(DisplayTitle, icons);

            foreach (Player player in RegisteredPlayers.AllPlayers.Where(p => p.IsAI))
            {
                BattlePlayer battlePlayer = PlayerSpawner.GetBattlePlayerFor(player);
                battlePlayer.Rigidbody.constraints |= RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionY | RigidbodyConstraints.FreezePositionZ;
            }

            PlayerSpawner.OnSpawnedPlayerRemoved += HandleSpawnedPlayerRemoved;
        }
예제 #3
0
        protected override void Activate()
        {
            AIIdleState.SetShouldCheckDashAttackPredicate(ShouldBattlePlayerDashAttack);
            PlayerSpawner.SpawnAllPlayers();

            List <GameModeIntroView.Icon> icons = new List <GameModeIntroView.Icon>();

            foreach (Player player in RegisteredPlayers.AllPlayers)
            {
                icons.Add(GameModeIntroView.Icon.Player);
                icons.Add(GameModeIntroView.Icon.Swords);
            }
            icons.RemoveLast();

            BattlePlayerHealth.LaserDamage      = 0;
            InGameConstants.AllowChargingLasers = false;

            // NOTE (darren): avoid showing shields to have less visual noise with exploding object
            InGameConstants.ShowShields = false;

            GameModeIntroView.Show(DisplayTitle, icons, onFinishedCallback: () => {
                SetItPlayer(PlayerSpawner.AllSpawnedBattlePlayers.Random());
            });

            GameNotifications.OnBattlePlayerLaserHit.AddListener(HandleBattlePlayerHit);
            PlayerSpawner.OnSpawnedPlayerRemoved += HandleSpawnedPlayerRemoved;
        }
예제 #4
0
        protected override void Activate()
        {
            PlayerSpawner.SpawnAllPlayers();

            List <GameModeIntroView.Icon> icons = new List <GameModeIntroView.Icon>();

            foreach (Player player in RegisteredPlayers.AllPlayers)
            {
                icons.Add(GameModeIntroView.Icon.Player);
            }
            GameModeIntroView.Show(DisplayTitle, icons);

            PlayerSpawner.OnSpawnedPlayerRemoved += HandleSpawnedPlayerRemoved;
        }
예제 #5
0
        public void Finish()
        {
            if (onFinishedCallback_ != null)
            {
                onFinishedCallback_.Invoke();
                onFinishedCallback_ = null;
            }
            ObjectPoolManager.Recycle(this);
            view_ = null;

            InGameConstants.AllowBattlePlayerMovement = true;
            InGameConstants.AllowChargingLasers       = oldAllowChargingLasers_;

            AudioManager.Instance.SetBGMState(AudioManager.BGMState.Normal);
            OnIntroFinished_.Invoke();
        }
        // PRAGMA MARK - Internal
        protected override void Activate()
        {
            PlayerSpawner.SpawnAllPlayers();

            List <GameModeIntroView.Icon> icons = new List <GameModeIntroView.Icon>();

            foreach (Player player in RegisteredPlayers.AllPlayers)
            {
                icons.Add(GameModeIntroView.Icon.Player);
                icons.Add(GameModeIntroView.Icon.Swords);
            }
            icons.RemoveLast();

            BattlePlayerHealth.LaserDamage      = 0;
            InGameConstants.ShowShields         = false;
            InGameConstants.AllowChargingLasers = false;

            GameModeIntroView.Show(DisplayTitle, icons);

            PlayerSpawner.OnSpawnedPlayerRemoved += HandleSpawnedPlayerRemoved;
        }
예제 #7
0
        protected override void Activate()
        {
            timeSpentInArea_.Clear();

            PlayerSpawner.SpawnAllPlayers();

            List <GameModeIntroView.Icon> icons = new List <GameModeIntroView.Icon>();

            foreach (Player player in RegisteredPlayers.AllPlayers)
            {
                icons.Add(GameModeIntroView.Icon.Player);
                icons.Add(GameModeIntroView.Icon.Swords);
            }
            icons.RemoveLast();

            GameModeIntroView.Show(DisplayTitle, icons);

            MonoBehaviourWrapper.OnUpdate += HandleUpdate;
            PlayerSpawner.ShouldRespawn    = true;

            CleanupScoreView();
            scoreView_ = ObjectPoolManager.CreateView <KingOfTheHillScoreView>(GamePrefabs.Instance.KotHScoreViewPrefab);
            scoreView_.Init(this);
        }
예제 #8
0
        protected override void Activate()
        {
            PlayerSpawner.SpawnAllPlayers();

            // Sort the players from lowest score to highest score
            List <Player> players = RegisteredPlayers.AllPlayers.ToList();

            players.Sort((playerA, playerB) => {
                return(PlayerScores.GetScoreFor(playerA).CompareTo(PlayerScores.GetScoreFor(playerB)));
            });

            teams_ = new HashSet <Player> [kNumberOfTeams];
            if (players.Count == 4 && kNumberOfTeams == 2)
            {
                teams_[0] = new HashSet <Player>()
                {
                    players[0], players[3]
                };
                teams_[1] = new HashSet <Player>()
                {
                    players[1], players[2]
                };
            }
            else
            {
                Debug.LogWarning("Assumptions failed when creating teams - random teams!");

                players.Shuffle();

                int teamIndex = 0;
                foreach (Player player in players)
                {
                    if (teams_[teamIndex] == null)
                    {
                        teams_[teamIndex] = new HashSet <Player>();
                    }

                    teams_[teamIndex].Add(player);

                    teamIndex = MathUtil.Wrap(teamIndex + 1, 0, kNumberOfTeams);
                }
            }

            // set override color for players
            for (int i = 0; i < teams_.Length; i++)
            {
                HashSet <Player> team = teams_[i];

                foreach (Player player in team)
                {
                    BattlePlayer battlePlayer = PlayerSpawner.GetBattlePlayerFor(player);
                    ObjectPoolManager.Create(accessoryPrefabs_[i], parent: battlePlayer.AccessoriesContainer);
                }
            }

            foreach (HashSet <Player> team in teams_)
            {
                BattlePlayerTeams.DeclareTeam(team.Select(p => PlayerSpawner.GetBattlePlayerFor(p)));
            }

            List <int> playerOrdering           = new List <int>();
            List <GameModeIntroView.Icon> icons = new List <GameModeIntroView.Icon>();

            for (int i = 0; i < teams_.Length - 1; i++)
            {
                playerOrdering.AddRange(teams_[i].Select(p => RegisteredPlayers.AllPlayers.IndexOf(p)));
                icons.AddRange(teams_[i].Select(p => GameModeIntroView.Icon.Player));
                icons.Add(GameModeIntroView.Icon.Swords);
            }
            playerOrdering.AddRange(teams_[teams_.Length - 1].Select(p => RegisteredPlayers.AllPlayers.IndexOf(p)));
            icons.AddRange(teams_[teams_.Length - 1].Select(p => GameModeIntroView.Icon.Player));

            GameModeIntroView.Show(DisplayTitle, icons, playerOrdering);

            PlayerSpawner.OnSpawnedPlayerRemoved += HandleSpawnedPlayerRemoved;
        }