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); } }
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; }
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); }
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(); }
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; } } }
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); } }
private void OnRespawnEnd(PlayerFacade playerFacade) { respawnTrigger.Fire(playerFacade); }
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); } } }
public void DeathTimerReset(Input input, PlayerFacade playerFacade) { deathTimers[playerFacade] = 0; displayManager.UpdatePointer(input.DeviceNum, Vector2.zero); }