summaryrefslogtreecommitdiff
path: root/Assets/Scripts/DialogueScript.cs
blob: b6fc42c245c1ccce54a5c227d7cc4b0d2b221493 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class DialogueScript : MonoBehaviour
{
    //Player reference
    GameObject player;
    PlayerMovementScript playerMovementScript;
    PlayerShootingScript playerShootingScript;

    //Single dialogue
    GameObject dialoguePanle;
    Text dialogueText;
    bool isDialogueActive;

    //Multi Dialogue
    bool isMultiDialogueActive;
    string[] multiDialogueText;
    int multiDialogueLength;
    int multiDialogueCounter;

    //Animator for DialoguePanel
    Animator anim;

    // for Boss1
    public bool FromBoss1;

    void Awake()
    {
        dialoguePanle = GameObject.FindGameObjectWithTag("HUD").transform.Find("DialoguePanel").gameObject;
        anim = dialoguePanle.GetComponent<Animator>();
        player = GameObject.FindGameObjectWithTag("Player");
        playerMovementScript = player.GetComponent<PlayerMovementScript>();
        playerShootingScript = player.GetComponentInChildren<PlayerShootingScript>();
        dialogueText = dialoguePanle.GetComponentInChildren<Text>();
        dialogueText.text = "";
    }

    void Start ()
    {        
        
	}
	
	void Update ()
    {
        if (isDialogueActive && Input.GetButtonDown("Jump"))
        {
            anim.SetBool("isActive", false);
            //dialoguePanle.GetComponent<RectTransform>().localScale = new Vector3(0, 0, 0);
            playerMovementScript.enabled = true;
            playerShootingScript.enabled = true;
            isDialogueActive = false;

            if (FromBoss1)
            {
                GameObject.FindGameObjectWithTag("Boss1FightHandler").GetComponent<BossFighthandlerScript>().StartBossFight();
            }
        }

        if (isMultiDialogueActive && Input.GetButtonDown("Jump") && multiDialogueCounter <= multiDialogueLength)
        {
            if (multiDialogueCounter < multiDialogueLength)
            {
                dialogueText.text = multiDialogueText[multiDialogueCounter];
                multiDialogueCounter++;
            }
            else if (multiDialogueCounter == multiDialogueLength)
            {
                anim.SetBool("isActive", false);
                playerMovementScript.enabled = true;
                playerShootingScript.enabled = true;
                isMultiDialogueActive = false;
            }            
        }
    }

    public void ShowDialogue(string message)
    {
        isDialogueActive = true;
        playerMovementScript.StopPlayer();
        playerMovementScript.enabled = false;
        playerShootingScript.enabled = false;
        dialogueText.text = message;
        anim.SetBool("isActive", true);
    }

    public void ShowMultiDialogue(string message)
    {
        isMultiDialogueActive = true;
        playerMovementScript.StopPlayer();
        playerMovementScript.enabled = false;
        playerShootingScript.enabled = false;
        multiDialogueText = message.Split(new string[] {"\\n"},System.StringSplitOptions.None);
        multiDialogueLength = multiDialogueText.Length;
        multiDialogueCounter = 1;
        dialogueText.text = multiDialogueText[0];
        anim.SetBool("isActive", true);
    }
}