- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class TalkQuest : MonoBehaviour
- {
- public GameObject chatPrefab;
- public GameObject chatBoxPrefab;
- public GameObject buttonPrefab;
- private Quest quest;
- private RangedArea rangedArea;
- private RectTransform WorldcanvasTransform;
- private RectTransform UIcanvasTransform;
- private GameObject chat;
- private GameObject chatBox;
- private GameObject button;
- private GameObject button2;
- private bool declined;
- [HideInInspector] public bool accepted;
- [HideInInspector] public bool NPCchatEnabled;
- private string[] npcPhrases;
- private int npcPhrasesIndex;
- private Vector3 pos;
-
- void Start()
- {
- rangedArea = FindObjectOfType<RangedArea>();
- WorldcanvasTransform = GameObject.FindGameObjectWithTag("WorldCanvas").GetComponent<RectTransform>();
- UIcanvasTransform = GameObject.FindGameObjectWithTag("UICanvas").GetComponent<RectTransform>();
- npcPhrasesIndex = 0;
- NPCchatEnabled = false;
- accepted = false;
- declined = false;
-
- }
- private void chatTalk()
- {
-
- pos = new Vector3(transform.position.x, transform.position.y, transform.position.z);
- if ((Input.GetKeyDown(KeyCode.E)) && (rangedArea.playerInRange == true) && (NPCchatEnabled == false) )
- {
- chatBox = Instantiate(chatBoxPrefab, new Vector3(pos.x, pos.y + 2, pos.z), Quaternion.identity, WorldcanvasTransform);
- chat = Instantiate(chatPrefab, new Vector3(pos.x, pos.y + 2.3f, pos.z), Quaternion.identity, WorldcanvasTransform);
- button = Instantiate(buttonPrefab, new Vector3(pos.x + 2, pos.y + 1.5f, pos.z), Quaternion.identity, WorldcanvasTransform);
- npcPhrases = new string[] { "Hello, i need your help!",
- "There is a huge monster in the forest.",
- "can you kill him for me?"};
- chat.GetComponent<TypeWriting>().textToWrite = npcPhrases[npcPhrasesIndex];
- button.GetComponentInChildren<Text>().text = "-->";
- NPCchatEnabled = true;
-
- button.GetComponent<Button>().onClick.AddListener(TestArray);
- }
-
- else if ((rangedArea.playerInRange == false) || (Input.GetKeyDown(KeyCode.E) && NPCchatEnabled == true) || declined == true || accepted == true)
- {
- Object.Destroy(chat);
- Object.Destroy(chatBox);
- Object.Destroy(button);
- Object.Destroy(button2);
- NPCchatEnabled = false;
- declined = false;
-
- }
- }
- private void TestArray()
- {
- if (npcPhrasesIndex < npcPhrases.Length - 1)
- {
- Destroy(chat);
- chat = Instantiate(chatPrefab, new Vector3(pos.x, pos.y + 2.3f, pos.z), Quaternion.identity, WorldcanvasTransform);
-
- npcPhrasesIndex++;
- chat.GetComponent<TypeWriting>().textToWrite = npcPhrases[npcPhrasesIndex];
- chat.GetComponent<Text>().text = npcPhrases[npcPhrasesIndex];
- Debug.Log(npcPhrasesIndex);
- }
- if (npcPhrasesIndex == 2)
- {
- Destroy(button);
- button = Instantiate(buttonPrefab, new Vector3(pos.x + 2, pos.y + 1.5f, pos.z), Quaternion.identity, WorldcanvasTransform);
- button2 = Instantiate(buttonPrefab, new Vector3(pos.x - 2, pos.y + 1.5f, pos.z), Quaternion.identity, WorldcanvasTransform);
- button.GetComponent<Button>().onClick.AddListener(AcceptQuest);
- button2.GetComponent<Button>().onClick.AddListener(DeclineQuest);
- button.GetComponentInChildren<Text>().text = "Yes";
- button2.GetComponentInChildren<Text>().text = "No";
- }
- }
- private void AcceptQuest()
- {
- accepted = true;
- }
- private void DeclineQuest()
- {
- declined = true;
- npcPhrasesIndex = 0;
- }
- void Update()
- {
- chatTalk();
- }
- }