using Newtonsoft.Json.Linq; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Assets.Scripts { public class CollectQuest : Quest { public CollectQuest(GameObject display) : base(display) { current = 0; goal = getRandomNumber(10) + 1; questname = "Collect " + goal + " "; int index = getRandomNumber(7); switch (index) { case 0: questname = questname + "slimeballs"; keyword = "Slimeball"; break; case 1: questname = questname + "stones"; keyword = "Stone"; break; case 2: questname = questname + "wood"; keyword = "Wood"; break; case 3: questname = questname + "common items"; keyword = "Common"; break; case 4: questname = questname + "rare items"; keyword = "Rare"; break; case 5: questname = questname + "epic items"; keyword = "Epic"; break; case 6: questname = questname + "legendary items"; keyword = "Legendary"; break; } } public CollectQuest(JToken token, GameObject display) : base(token, display) { } override public void update(object obj, int amount) { Item item = (Item)obj; if (checkItem(item)) { current = current + amount; } if (current >= goal) { isFinished = true; } else { isFinished = false; } } public void removeItems(Inventory inventory) { Item item; int counter = 0; for (int i = 0; i < 3; i++) { foreach (GameObject slot in inventory.slots) { item = slot.GetComponent().getItem(i); if (item != null) { if (checkItem(item)) { slot.GetComponent().removeItem(i); counter++; } } if (counter == goal) { break; } } if (counter == goal) { break; } } } private bool checkItem(Item item) { bool result = false; if (keyword == "Slimeball" && item.getName().ToLower().Contains("slimeball")) { return true; } if (keyword == "Stone" && item.getName().ToLower().Contains("stone")) { return true; } if (keyword == "Wood" && item.getName().ToLower().Contains("wood")) { return true; } if (keyword == "Common" && item.getName().ToLower().Contains("common")) { return true; } if (keyword == "Rare" && item.getName().ToLower().Contains("rare")) { return true; } if (keyword == "Epic" && item.getName().ToLower().Contains("epic")) { return true; } if (keyword == "Legendary" && item.getName().ToLower().Contains("legendary")) { return true; } return result; } } }