Ejemplo n.º 1
0
    IEnumerator PlayerDeathSequence()
    {
        MomentumManager.ResetMomentum();
        float fadeOutCompleteTime = Time.time + playerDeathFadeScreenTimer;

        while (Time.time < fadeOutCompleteTime)
        {
            float timeRemaining = fadeOutCompleteTime - Time.time;

            float percentageComplete = timeRemaining / playerDeathFadeScreenTimer;

            Color fadeColor = FadeScreen.color;

            fadeColor.a = Mathf.Lerp(1f, 0f, percentageComplete);

            FadeScreen.color = fadeColor;
            yield return(null);
        }

        Color finalFadeColor = FadeScreen.color;

        finalFadeColor.a = 1f;
        FadeScreen.color = finalFadeColor;

        MuteAllEmitters();

        GlobalEventEmitter.OnGameStateEvent(GlobalConstants.GameStateEvents.PlayerDied);

        UnmuteAllEmitters();

        playerTransform.position = currentlyActiveLevel.SpawnPoint.position;

        yield return(new WaitForSeconds(3f));

        float fadeBackTimer        = playerDeathFadeScreenTimer / 2f;
        float fadeBackCompleteTime = Time.time + fadeBackTimer;

        // TODO: move this to dedicated scene-change logic
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
        GlobalEventEmitter.OnGameStateEvent(GlobalConstants.GameStateEvents.NewSceneLoaded);

        EntityEmitter playerEntityEmitter = Player.GetComponent <EntityEmitter>();

        playerEntityEmitter.isMuted = false;
        playerEntityEmitter.EmitEvent(EntityEvents.Respawning);

        while (Time.time < fadeBackCompleteTime)
        {
            float timeRemaining = fadeBackCompleteTime - Time.time;

            float percentageComplete = timeRemaining / fadeBackTimer;

            Color fadeColor = FadeScreen.color;

            fadeColor.a = Mathf.Lerp(0f, 1f, percentageComplete);

            FadeScreen.color = fadeColor;
            yield return(null);
        }
    }
Ejemplo n.º 2
0
 private void OnDead()
 {
     if (momentumValue == 0)
     {
         Debug.LogError("Momentum value is zero.");
     }
     GlobalEventEmitter.OnGameStateEvent(GlobalConstants.GameStateEvents.EntityDied, momentumValue.ToString());
 }
Ejemplo n.º 3
0
    public void AddMomentum(int quantityToAdd)
    {
        ProgressTowardNextMomentum += quantityToAdd;

        while (ProgressTowardNextMomentum >= MomentumRequiredForNextPoint)
        {
            ProgressTowardNextMomentum -= MomentumRequiredForNextPoint;
            UnassignedAvailableMomentumPoints++;
            GlobalEventEmitter.OnGameStateEvent(GlobalConstants.GameStateEvents.NewMomentumPoint);
        }
    }
Ejemplo n.º 4
0
    public static void RemoveLastMomentumPoint()
    {
        ClearProgressTowardNextMomentum();
        if (CurrentMomentumData.AssignedMomentumTracker.Count <= 0f)
        {
            Debug.Log("Trying to undo last momentum assignment with no momentum assigned.");
            return;
        }
        HardwareType lastHardwareTypeIncremented = CurrentMomentumData.AssignedMomentumTracker.Pop();

        CurrentMomentumData.HardwareTypeToMomentumMap[lastHardwareTypeIncremented]--;
        OnMomentumUpdated(CurrentMomentumData);
        GlobalEventEmitter.OnGameStateEvent(GlobalConstants.GameStateEvents.MomentumLost);
    }
Ejemplo n.º 5
0
 public static void DiscoverHardware(HardwareType hardwareType)
 {
     GlobalEventEmitter.OnGameStateEvent(GlobalConstants.GameStateEvents.HardwareDiscovered, hardwareType.ToString());
     Inventory.ObtainHardwareType(hardwareType);
 }