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 = TextHandler.getText("collect") + goal + " "; int index = getRandomNumber(11); switch (index) { case 0: questname = questname + TextHandler.getText("slimeball"); keyword = "Slimeball"; break; case 1: questname = questname + TextHandler.getText("rock"); keyword = "Rock"; break; case 2: questname = questname + TextHandler.getText("wood"); keyword = "Wood"; break; case 3: questname = questname + TextHandler.getText("common") + " " + TextHandler.getText("item"); keyword = "Common"; break; case 4: questname = questname + TextHandler.getText("rare") + " " + TextHandler.getText("item"); keyword = "Rare"; break; case 5: questname = questname + TextHandler.getText("epic") + " " + TextHandler.getText("item"); keyword = "Epic"; break; case 6: questname = questname + TextHandler.getText("legendary") + " " + TextHandler.getText("item"); keyword = "Legendary"; break; case 7: questname = questname + TextHandler.getText("iron") + " " + TextHandler.getText("ore"); keyword = "Iron"; break; case 8: questname = questname + TextHandler.getText("gold") + " " + TextHandler.getText("ore"); keyword = "Gold"; break; case 9: questname = questname + TextHandler.getText("copper") + " " + TextHandler.getText("ore"); keyword = "Copper"; break; case 10: questname = questname + TextHandler.getText("tin") + " " + TextHandler.getText("ore"); keyword = "Tin"; 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 == "Rock" && item.getName().ToLower().Contains("rock")) { return true; } if (keyword == "Iron" && item.getName().ToLower().Contains("iron")) { return true; } if (keyword == "Gold" && item.getName().ToLower().Contains("gold")) { return true; } if (keyword == "Copper" && item.getName().ToLower().Contains("copper")) { return true; } if (keyword == "Tin" && item.getName().ToLower().Contains("tin")) { 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; } } }