示例#1
0
    private void ChangeLinkState(LinkState _newState)
    {
        if (linkState == _newState)
        {
            return;
        }

        switch (_newState)
        {
        case LinkState.Broken:
            FeedbackManager.SendFeedback("event.LinkBroken", firstPawn, firstPawn.GetCenterPosition(), firstPawn.GetCenterPosition() - transform.position, firstPawn.GetCenterPosition() - transform.position);
            FeedbackManager.SendFeedback("event.LinkBroken", secondPawn, secondPawn.GetCenterPosition(), secondPawn.GetCenterPosition() - transform.position, secondPawn.GetCenterPosition() - transform.position);
            WarningPanel.OpenPanel();
            break;

        case LinkState.Rebuilt:
            FeedbackManager.SendFeedback("event.LinkRebuilt", firstPawn, firstPawn.GetCenterPosition(), firstPawn.GetCenterPosition() - transform.position, firstPawn.GetCenterPosition() - transform.position);
            FeedbackManager.SendFeedback("event.LinkRebuilt", secondPawn, secondPawn.GetCenterPosition(), secondPawn.GetCenterPosition() - transform.position, secondPawn.GetCenterPosition() - transform.position);
            WarningPanel.ClosePanel();
            break;

        case LinkState.Showing:
            break;

        case LinkState.Slowing:
            break;

        case LinkState.Hidden:
            break;
        }

        linkState = _newState;
    }
示例#2
0
    public static void SetWarning(string title_body_footer, AudioClip audioWarning, bool canResume, float waitingTimeIfNotResumable)
    {
        string[] warning = title_body_footer.Split('_');

        if (warning.Length < 3)
        {
            Debug.LogError("mensagem de warning incompleta");
            return;
        }

        // setup text and audio
        WarningPanel wp = instance.warningPanel.GetComponent <WarningPanel> ();

        wp.SetupText(warning [0], warning [1], warning [2]);
        wp.PlayWarningAudio();
        if (canResume)
        {
            canResumeWarning = canResume;
        }
        else
        {
            instance.StartCoroutine(instance.FinishSession(waitingTimeIfNotResumable));
        }


        // show panel
        instance.OpenWarningPanel();
    }
 public void OnPause()
 {
     WarningPanel.SetActive(false);
     pausePanel.SetActive(true);
     pauseButton.SetActive(false);
     Time.timeScale = 0;
 }
 // Start is called before the first frame update
 void Start()
 {
     if (_instance == null)
     {
         _instance = this;
     }
     text      = GetComponent <Text>();
     text.text = string.Empty;
 }
示例#5
0
    public static WarningPanel Instance()
    {
        if (!warningPanel)
        {
            warningPanel = FindObjectOfType(typeof(WarningPanel)) as WarningPanel;
            if (!warningPanel)
                Debug.Log("There needs to be one active ModalWindow script on a GameObject in your scene.");
        }

        return warningPanel;
    }
示例#6
0
 public void ConvertFirst()
 {
     if (FirstPartInput.text == "40")
     {
         StartCoroutine(FirstPartCoroutine());
         firstConverted = true;
     }
     else
     {
         ConverterPanel.SetActive(false);
         WarningPanel.SetActive(true);
     }
 }
示例#7
0
    private void Awake()
    {
        instance = this;
        PostProcessProfile i_postProcessVolumeProfile = Camera.main.GetComponent <PostProcessVolume>().profile;

        if (!i_postProcessVolumeProfile.TryGetSettings(out vignette))
        {
            i_postProcessVolumeProfile.AddSettings <Vignette>();
        }
        i_postProcessVolumeProfile.TryGetSettings(out vignette);
        vignette.color.value = vignetteColor;
        animator             = GetComponent <Animator>();

        gameObject.SetActive(false);
    }
示例#8
0
 public void ConvertSecond()
 {
     if (!firstConverted)
     {
         ConverterPanel.SetActive(false);
         OrderWarningPanel.SetActive(true);
     }
     else if (SecondPartInput.text != "5")
     {
         ConverterPanel.SetActive(false);
         WarningPanel.SetActive(true);
     }
     else
     {
         StartCoroutine(ConvertSecondCoroutine());
         secondConverted = true;
     }
 }
示例#9
0
    private void UpdateLink()
    {
        if (linkGameObject != null)
        {
            if (firstPawn.moveState == MoveState.Dead || secondPawn.moveState == MoveState.Dead)
            {
                lineRenderer.positionCount = 0; WarningPanel.ClosePanelInstantly(); linkIsBroke = false; return;
            }
            float i_linkLength = Vector3.Distance(firstPawn.transform.position, secondPawn.transform.position);
            if (!linkIsBroke)
            {
                linkMaterial.SetFloat("_CurrentEnergyAmout", EnergyManager.GetEnergy());
                if (i_linkLength < maxDistanceBeforeBreaking)
                {
                    //Hide link
                    lineRenderer.positionCount = 2;
                    lineRenderer.SetPosition(0, firstPawn.GetCenterPosition());
                    lineRenderer.SetPosition(1, secondPawn.GetCenterPosition());
                    linkMaterial.SetFloat("_BreakingLinkProgression", 0);
                    ChangeLinkState(LinkState.Hidden);
                }
                if (i_linkLength >= maxDistanceBeforeShowing && i_linkLength < maxDistanceBeforeSlowing)
                {
                    //Show link
                    lineRenderer.positionCount = 2;
                    lineRenderer.SetPosition(0, firstPawn.GetCenterPosition());
                    lineRenderer.SetPosition(1, secondPawn.GetCenterPosition());
                    float lerpValue = (maxDistanceBeforeSlowing - i_linkLength) / (maxDistanceBeforeSlowing - maxDistanceBeforeShowing);
                    lerpValue = 1f - slowCoefCurve.Evaluate(lerpValue);
                    linkMaterial.SetFloat("_BreakingLinkProgression", 0);
                    ChangeLinkState(LinkState.Showing);
                }
                if (i_linkLength >= maxDistanceBeforeSlowing && i_linkLength < maxDistanceBeforeBreaking)
                {
                    lineRenderer.positionCount = 2;
                    lineRenderer.SetPosition(0, firstPawn.GetCenterPosition());
                    lineRenderer.SetPosition(1, secondPawn.GetCenterPosition());
                    float lerpValue = (maxDistanceBeforeBreaking - i_linkLength) / (maxDistanceBeforeBreaking - maxDistanceBeforeSlowing);
                    lerpValue = 1f - slowCoefCurve.Evaluate(lerpValue);
                    linkMaterial.SetFloat("_BreakingLinkProgression", lerpValue);

                    float slowValue = Mathf.Lerp(1f, maxSlowCoef, lerpValue);

                    //Slow player 1
                    float FcDirectionAngle = Vector3.Angle(firstPawn.transform.forward, secondPawn.transform.position - firstPawn.transform.position);
                    float FcSlowValue      = Mathf.Lerp(1f, slowValue, FcDirectionAngle / 180f);
                    firstPawn.AddSpeedModifier(new SpeedCoef(FcSlowValue, Time.deltaTime, SpeedMultiplierReason.Link, false));

                    //Slow player 2
                    float FsDirectionAngle = Vector3.Angle(secondPawn.transform.forward, firstPawn.transform.position - secondPawn.transform.position);
                    float FsSlowValue      = Mathf.Lerp(1f, slowValue, FsDirectionAngle / 180f);
                    secondPawn.AddSpeedModifier(new SpeedCoef(FsSlowValue, Time.deltaTime, SpeedMultiplierReason.Link, false));
                    ChangeLinkState(LinkState.Slowing);
                }
                if (i_linkLength >= maxDistanceBeforeBreaking)
                {
                    //Break link
                    lineRenderer.positionCount = 0;
                    linkIsBroke = true;
                    ChangeLinkState(LinkState.Broken);
                }
            }
            else
            {
                if (i_linkLength <= distanceBeforeRebuilding)
                {
                    //Rebuild link
                    linkIsBroke = false;
                    ChangeLinkState(LinkState.Rebuilt);
                }
                else
                {
                    damageCount += damagesPerSecWithoutLink * Time.deltaTime;
                    if (damageCount >= 1)
                    {
                        firstPawn.Damage(Mathf.RoundToInt(damageCount));
                        secondPawn.Damage(Mathf.RoundToInt(damageCount));
                        damageCount = 0;
                    }
                }
            }
        }
    }
 public void BacktoMainMenu()
 {
     pausePanel.SetActive(false);
     WarningPanel.SetActive(true);
 }