public void AddItems(ItemObj item) { bool IfRemove = false; foreach (QuestEventBase questEvent in currentQuests.GetEvents()) { if (questEvent.eventType == EventType.FindObject) { FindObjectEvent findObjectEvent = (FindObjectEvent)questEvent; if (findObjectEvent.ItemName == item.ItemName) { findObjectEvent.FinishedAmount++; if (findObjectEvent.FinishedAmount >= findObjectEvent.Amount) { IfRemove = true; EventToBeRemoved = findObjectEvent; } } } } if (IfRemove) { currentQuests.RemoveQuestEvent(EventToBeRemoved); } items.Add(item); }
public void AddAmount(MonsterType monsterType) { int value = dictionary[monsterType]; bool IfRemove = false; value++; dictionary[monsterType] = value; foreach (QuestEventBase questEvent in currentQuests.GetEvents()) { if (questEvent.eventType == EventType.Combat) { BattleEvent battle = (BattleEvent)questEvent; if (battle.monsterType == monsterType) { battle.FinishedNumber++; if (battle.Number <= battle.FinishedNumber) { IfRemove = true; events = battle; } } } } if (IfRemove) { currentQuests.RemoveQuestEvent(events); } }
// Update is called once per frame void Update() { Movement = PlayerMove.OutputMovement(); if (Movement.y > 0) { direction = transform.up; } else if (Movement.y < 0) { direction = -transform.up; } if (Movement.x > 0) { direction = transform.right; } else if (Movement.x < 0) { direction = -transform.right; } Hit2D = Physics2D.Raycast(transform.position, direction, 1f, rayMask); Debug.DrawRay(transform.position, direction, Color.black); if (Hit2D.collider != null && Hit2D.transform.tag == "Box") { InteractText.gameObject.SetActive(true); InteractText.text = "Open box"; } else if (itemObjs.Count != 0) { InteractText.gameObject.SetActive(true); InteractText.text = "Pick Up" + " " + itemObjs[0].GetComponent <GetItemData>().GetItemObj().name; if (Input.GetKeyDown(KeyCode.E)) { picking = true; inventory.PickUpObject(itemObjs[0].GetComponent <GetItemData>().GetItemObj()); Destroy(itemObjs[0]); itemObjs.Remove(itemObjs[0]); } } else if (Hit2D.collider != null && Hit2D.transform.tag == "NPC") { InteractText.gameObject.SetActive(true); InteractText.text = "Talk"; if (Input.GetKeyDown(KeyCode.E)) { NpcTransform = Hit2D.transform; StartCalculating = true; DialoguePanel.SetActive(true); foreach (QuestEventBase questEvent in currentQuests.GetEvents()) { if (questEvent.eventType == EventType.Dialogue) { DialogueEvent dialogueEvent = (DialogueEvent)questEvent; if (dialogueEvent.Name == NpcTransform.GetComponent <NpcDialogue>().dialogue.Name&& !dialogueEvent.AddDialogues) { foreach (Dialogue dialogue in dialogueEvent.dialogue) { NpcTransform.GetComponent <NpcDialogue>().dialogue.dialogues.Add(dialogue); } dialogueEvent.AddDialogues = true; } } } currentDialogue.Current = NpcTransform.GetComponent <NpcDialogue>().dialogue; currentDialogue.StartDialogue(); } } else { InteractText.gameObject.SetActive(false); } if (StartCalculating) { if (CalculateDistance(transform, NpcTransform) > 2f) { QuitPanel(); } } }