Beispiel #1
0
    void HandleInteract()
    {
        if (isInteracting && !justInteracted)
        {
            bool         success = false;
            bool         silence = false;
            Collider2D[] hits    = Physics2D.OverlapCircleAll(transform.position, interactionRadius, LayerMask.GetMask("Interactables"));
            foreach (Collider2D collider in hits)
            {
                DoorSwitchBehavior dsb = collider.GetComponent <DoorSwitchBehavior>();
                if (dsb != null)
                {
                    success = dsb.ToggleSwitch();
                }
                SpeakerBehavior sb = collider.GetComponent <SpeakerBehavior>();
                if (sb != null)
                {
                    success = sb.Speak();
                    silence = true;
                }
            }

            if (!silence)
            {
                if (!success)
                {
                    textPopper.MakePopup(transform.position.x, transform.position.y + .5f, new string[] { "huh?" }, gameObject);
                }
                else
                {
                    textPopper.MakePopup(transform.position.x, transform.position.y + .5f, new string[] { "yus", "diddit" }, gameObject);
                }
            }
            else
            {
                if (!success) //failure talking to someone
                {
                    textPopper.MakePopup(transform.position.x, transform.position.y + .5f, new string[] { "..." }, gameObject);
                }
            }

            if (success)
            {
                audioMan.playSFX("good", transform.position);
            }

            //don't double up.
            justInteracted = true;
        }
        else if (!isInteracting && justInteracted)
        {
            justInteracted = false;
        }
    }
    //!Wyświetla zakończenie.
    public void displayEnding()
    {
        SpeakerBehavior endingBehavior = endingSpeaker.GetComponent <SpeakerBehavior>();

        if (revolutionEnding)
        {
            revolutionCanvas.SetActive(true);
            endingBehavior.setEndingDialog(revolutionDialog);
        }
        else if (reformEnding)
        {
            reformCanvas.SetActive(true);
            endingBehavior.setEndingDialog(reformDialog);
        }
        else
        {
            conquestCanvas.SetActive(true);
            endingBehavior.setEndingDialog(conquestDialog);
        }
    }