Exemplo n.º 1
0
        public void Kill(PlayerFacade playerFacade)
        {
            Input input = playerManager.Input(playerFacade.PlayerView);

            playerDeaths[playerFacade] = true;
            playerFacade.Die();
            displayManager.UpdateBackdrop(input.DeviceNum, BackdropHealth.Dead);
            displayManager.UpdatePortraitImage(input.DeviceNum, playerFacade.CharacterType, PortraitEmotion.Dead);
            displayManager.UpdatePointer(input.DeviceNum, Vector2.zero);
            displayManager.UpdateRank(input.DeviceNum, -1);

            if (isTutorial || AlivePlayerCount == 0)
            {
                checkpointActionTrigger.Fire(CheckpointAction.Respawn);
            }
            else
            {
                checkpointActionTrigger.Fire(CheckpointAction.Finish);
            }
        }
Exemplo n.º 2
0
        public void Initialize()
        {
            ChunkFacade      startingChunkFacade = chunkManager.StartingChunkFacade;
            StartingZoneView startingZoneView    = startingChunkFacade.ChunkView.GetComponentInChildren <StartingZoneView>();;

            spawnManager.CurrentSpawnView = startingZoneView.InitialSpawn.GetComponentInChildren <SpawnView>();

            gameStateTrigger.Fire(GameStateType.Play);

            foreach (Input input in gameStateMachine.GameReadyState.SelectedInputs)
            {
                PlayerFacade playerFacade = playerManager.SpawnPlayer(input, gameStateMachine.GameReadyState.ChosenCharacterType(input));
                deathManager.AddPlayer(input);

                float randomFactor = Mathf.Pow(UnityEngine.Random.value * 2, 2) / 4;
                playerFacade.Position += Vector3.up * randomFactor * settings.spawnAltitudeRange;

                playerFacade.Freefall();
                playerFacade.Player.Gravity = 1f;
                playerFacade.MoveDirection  = Vector3.zero;

                playerFacade.ProbeGround();
            }

            spawnManager.CurrentSpawnView = startingZoneView.NormalSpawn.GetComponentInChildren <SpawnView>();

            cameraView.IsActive = true;
            cameraAnchorManager.ResetAnchor();
            cameraManager.ResetCamera();

            deathManager.IsActive = true;

            mistManager.IsActive = true;
            mistManager.UpdateMistPosition(spawnManager.CurrentSpawnView.Position.y);

            rankManager.IsActive = true;

            aetherManager.GameTimer = Time.time;
        }
Exemplo n.º 3
0
        public void Respawn(PlayerFacade playerFacade)
        {
            if (!playerDeaths[playerFacade])
            {
                return;
            }

            PlayerView playerView     = playerFacade.PlayerView;
            Transform  spawnTransform = spawnManager.CurrentSpawnView.SpawnTransform(playerFacade.Input.DeviceNum);

            ParticleTargetRequest particleTargetRequest = new ParticleTargetRequest()
            {
                particleSystem     = playerView.Respawn,
                particleCount      = 1,
                targetTime         = Mathf.Sqrt((playerView.Position - spawnTransform.position).magnitude) * settings.respawnTargetFactor,
                targetTransform    = spawnTransform,
                particleTargetType = ParticleTargetType.Respawn,
                playerFacade       = playerFacade,
            };

            spawnManager.CurrentSpawnView.ParticleTargetView.Target(particleTargetRequest);
        }
Exemplo n.º 4
0
        private void OnSceneLoad()
        {
            displayManager.UpdateSprint(false);
            DisablePlayerDisplays();
            cameraManager.ResetCamera();
            cameraManager.ZoomOverride        = settings.zoomOverride;
            cameraManager.ZoomOverrideEnabled = true;
            cameraAnchorManager.ResetAnchor();
            cameraRigManager.RigPosition   = settings.rigPosition;
            cinematicManager.CinematicType = CinematicType.PeakZone;

            Dictionary <PlayerView, ScorePlacementType> placements = aetherManager.Placements;

            foreach (Input input in inputManager.Inputs)
            {
                if (!playerManager.HasPlayerFacade(input))
                {
                    continue;
                }

                PlayerFacade       playerFacade       = playerManager.PlayerFacade(input);
                PlayerView         playerView         = playerFacade.PlayerView;
                ScorePlacementType scorePlacementType = placements[playerView];

                displayManager.UpdateScorePlayer(
                    input.DeviceNum,
                    aetherManager.Aethers(playerView),
                    scorePlacementType,
                    playerFacade.CharacterType
                    );
            }

            displayManager.UpdateScoreTime(true, Mathf.FloorToInt(Time.time - aetherManager.GameTimer));
            displayManager.UpdateScoreMenu(true);

            menuShown = true;

            SpiralCamera();
        }
Exemplo n.º 5
0
        public void RespawnPlayers()
        {
            if (waitingForRespawn)
            {
                return;
            }

            foreach (Input input in inputManager.Inputs)
            {
                if (!playerManager.HasPlayerFacade(input))
                {
                    continue;
                }

                PlayerFacade playerFacade = playerManager.PlayerFacade(input);
                deathManager.Respawn(playerFacade);

                if (!deathManager.IsTutorial)
                {
                    waitingForRespawn = true;
                }
            }
        }
Exemplo n.º 6
0
        public void AddPlayer(Input input)
        {
            if (!playerManager.HasPlayerFacade(input))
            {
                return;
            }

            PlayerFacade playerFacade = playerManager.PlayerFacade(input);

            if (playerFacade == null)
            {
                return;
            }

            if (!deathTimers.ContainsKey(playerFacade))
            {
                deathTimers.Add(playerFacade, 0f);
            }

            if (!playerDeaths.ContainsKey(playerFacade))
            {
                playerDeaths.Add(playerFacade, false);
            }
        }
Exemplo n.º 7
0
 private void OnRespawnEnd(PlayerFacade playerFacade)
 {
     respawnTrigger.Fire(playerFacade);
 }
Exemplo n.º 8
0
 private void OnAttractRespawn(ParticleSystem.Particle[] particles, int particleCount, Transform targetTransform, PlayerFacade playerFacade)
 {
     for (int i = 0; i < particleCount; ++i)
     {
         if (particles[i].lifetime >= 0 && (particles[i].position - targetTransform.position).magnitude < 1)
         {
             particles[i].lifetime = -1;
             respawnTrigger.Fire(playerFacade);
         }
     }
 }
Exemplo n.º 9
0
 public void DeathTimerReset(Input input, PlayerFacade playerFacade)
 {
     deathTimers[playerFacade] = 0;
     displayManager.UpdatePointer(input.DeviceNum, Vector2.zero);
 }