void Start() { currentNpc = null; foreach (QuestInfo q in QuestsLists) { q.requirementCount = q.requirement.Count; } foreach (Trader t in traderList) { t.requirementCount = t.requirement.Count; } }
void Update() { if (RoomController.playerSpawned && !variableObtained) { player = GameObject.FindGameObjectWithTag("Player").transform; variableObtained = true; } if (currentNpc != null) { if (Vector2.Distance(currentNpc.NPC.transform.position, player.position) > currentNpc.distance) { Destroy(popupInstance); popupInstantiated = false; currentNpc = null; NPCInteraction.interactable = false; } } }
IEnumerator DistanceCheck(float time) { while (true) { yield return(new WaitForSeconds(time)); foreach (NPCPopUp n in npcList) { float dist = Vector2.Distance(n.NPC.transform.position, player.position); Vector2 parent = n.NPC.transform.position; parent.x += n.offsetX; parent.y += n.offsetY; if (dist <= n.distance && !popupInstantiated) { popupInstance = Instantiate(popup, parent, Quaternion.identity); currentNpc = n; popupInstantiated = true; NPCInteraction.interactable = true; } } } }