IEnumerator C_AnimatedLightFlash(MinigameTickResult result)
    {
        float time      = 0.0f;
        float totalTime = 0.5f;

        Color startColor  = baseColor;
        Color targetColor = result == MinigameTickResult.EarlySuccess ? Color.green : Color.red;

        Debug.Log("Animate Success/Fail");

        while (time < totalTime)
        {
            time += Time.deltaTime;
            foreach (VolumetricLines.VolumetricLineBehavior line in m_Lines)
            {
                line.LineColor = Color.Lerp(startColor, targetColor, time / totalTime);
            }

            yield return(new WaitForEndOfFrame());
        }

        time = 0.0f;
        while (time < totalTime)
        {
            time += Time.deltaTime;
            foreach (VolumetricLines.VolumetricLineBehavior line in m_Lines)
            {
                line.LineColor = Color.Lerp(startColor, targetColor, 1.0f - time / totalTime);
            }

            yield return(new WaitForEndOfFrame());
        }
    }
Exemplo n.º 2
0
    ////////////////////////////////////////////////////////////////

    public void Tick()
    {
        for (int i = 0; i < m_CurrentMinigames.Count; i++)
        {
            MinigameTickResult result = m_CurrentMinigames[i].Tick();

            if (result != MinigameTickResult.ContinueTick)
            {
                m_CurrentMinigames[i].FinishCallback?.Invoke(result);
                m_CurrentMinigames[i].CleanUp();
                m_CurrentMinigames[i].Finish();
                m_CurrentMinigames.RemoveAt(i);
                i--;
            }
        }

        if (Input.GetKeyDown(KeyCode.Q))
        {
            StartMinigame(null, MinigameType.Sequence, 0);
        }

        if (Input.GetKeyDown(KeyCode.E))
        {
            StartMinigame(null, MinigameType.Screwdriver, 0);
        }
    }
Exemplo n.º 3
0
    ////////////////////////////////////////////////////////////////

    public override MinigameTickResult Tick()
    {
        MinigameTickResult result = AcceptInput();

        TickRunes();
        //DisplaySequence();

        return(result);
    }
Exemplo n.º 4
0
	private void OnMachineInteractionFinished(MinigameTickResult tickResult, Player1Controller controller)
	{
		if (gameObject == null)
		{
			return;
		}

		Debug.Log("I am a machine, my name is " + gameObject.name + " and I finished a minigame with result " + tickResult.ToString());
		m_CurrentlyPlayingMinigame = false;
		m_LastEndedTimestamp = Time.time;
        controller.EnableControls();
        
        if (tickResult == MinigameTickResult.EarlySuccess)
        {
            m_InitiatedWithItem.OnSuccessFullMachineInteraction();
        }
	}
Exemplo n.º 5
0
    ////////////////////////////////////////////////////////////////

    public void Tick()
    {
        if (GameManager.Instance.State != GameManager.GameState.Game)
        {
            for (int i = 0; i < m_CurrentMinigames.Count; i++)
            {
                m_CurrentMinigames[i].CleanUp(MinigameTickResult.Failed);
            }
        }

        for (int i = 0; i < m_CurrentMinigames.Count; i++)
        {
            MinigameTickResult result = m_CurrentMinigames[i].Tick();

            if (result != MinigameTickResult.ContinueTick)
            {
                m_CurrentMinigames[i].FinishCallback?.Invoke(result);
                m_CurrentMinigames[i].CleanUp(result);
                m_CurrentMinigames[i].Finish();
                m_CurrentMinigames.RemoveAt(i);
                i--;
            }
        }
    }
Exemplo n.º 6
0
 void OnMachineInteractionFinished(MinigameTickResult tickResult)
 {
     Debug.Log("I am a machine, my name is " + gameObject.name + " and I finished a minigame with result " + tickResult.ToString());
 }
Exemplo n.º 7
0
    ////////////////////////////////////////////////////////////////

    public void CleanUp(MinigameTickResult result)
    {
        GameObject.Destroy(m_MinigameCamera.gameObject);
        m_DisplayComponent.SetRenderTexture(null);
        m_DisplayComponent.ReactToMinigameResult(result);
    }
 public void ReactToMinigameResult(MinigameTickResult result)
 {
     StartCoroutine(C_AnimatedLightFlash(result));
 }