165 lines
5.5 KiB
C#
165 lines
5.5 KiB
C#
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<InventorySlot>().getItem(i);
|
|
if (item != null)
|
|
{
|
|
if (checkItem(item))
|
|
{
|
|
slot.GetComponent<InventorySlot>().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;
|
|
}
|
|
}
|
|
}
|