diff options
Diffstat (limited to 'Assets/Scripts/DialogueScript.cs')
-rwxr-xr-x | Assets/Scripts/DialogueScript.cs | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/Assets/Scripts/DialogueScript.cs b/Assets/Scripts/DialogueScript.cs new file mode 100755 index 0000000..b6fc42c --- /dev/null +++ b/Assets/Scripts/DialogueScript.cs @@ -0,0 +1,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); + } +} |