/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override string GetObjective(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; return(fetchQuest.objective); }
/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override int GetRequriedLevel(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; return(fetchQuest.requiredLevel); }
/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override string GetDescription(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; return(fetchQuest.questDescription); }
/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override string GetQuestRewards(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; return(fetchQuest.questReward); }
/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override bool IsQuestComplete(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; return(fetchQuest.isQuestComplete); }
/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override int GetXPReward(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; return(fetchQuest.xp); }
/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override int GetPrerequisites(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; return(fetchQuest.prerequisite); }
public void DeleteFromQuestLog(FetchQuest quest) { for (int i = 0; i < texts.Count; i++) { if (texts[i].text == quest.objective) { Destroy(texts[i].gameObject); texts.RemoveAt(i); } } }
//Send the iD of the completed Quest /// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override void CompleteQuest(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; fetchQuest.isQuestComplete = true; GameInformation.CurrentXp += GetXPReward(iD); if (GameInformation.CurrentXp > GameInformation.RequiredXP) { LevelUp level = new LevelUp(); level.LevelUpCharacter(); } GameInformation.Gold += GetGoldReward(iD); }
string GetDataValue(string data, string index) { string value = data.Substring(data.IndexOf(index) + index.Length + 1); if (value.Contains("|")) { value = value.Remove(value.IndexOf("|")); } // Going to add each value for the database into a list FetchQuest quest = new FetchQuest(); return(value); }
/// <summary> ///ID has to be 1 or greater /// </summary> /// <param name="iD"></param> /// <returns></returns> public override bool IsPlayerReady(int iD) { FetchQuest fetchQuest = new FetchQuest(); fetchQuest = (FetchQuest)quest[iD - 1]; int pre = fetchQuest.prerequisite; if (pre == 0) { return(true); } else if (IsQuestComplete(pre)) { return(true); } return(false); }
// Use this for initialization IEnumerator Start() { questData = new WWW("https://gregjohn.000webhostapp.com/QuestData.php"); yield return(questData); string questDataString = questData.text; print(questDataString); // NEW THIS SPLITS AT THE DEFINDED VALUE IN THERE REALLY COOL ACTUALLY quests = questDataString.Split(';'); NPCInformation[] npcInformation = GameObject.FindObjectsOfType(typeof(NPCInformation)) as NPCInformation[]; for (int i = 0; i < quests.Length - 1; i++) { // This will grab all the data from the quest database and insert it into a list of quest // I can then grab info from this list of quest FetchQuest quest = new FetchQuest(); quest.iD = int.Parse(GetDataValue(quests[i], "ID")); quest.questDescription = GetDataValue(quests[i], "QuestDescription"); quest.questReward = GetDataValue(quests[i], "QuestReward"); quest.objective = GetDataValue(quests[i], "Objective"); quest.gold = int.Parse(GetDataValue(quests[i], "GoldReward")); quest.xp = int.Parse(GetDataValue(quests[i], "XPReward")); quest.prerequisite = int.Parse(GetDataValue(quests[i], "Prerequisites")); quest.objectiveName = GetDataValue(quests[i], "ObjectiveName"); quest.requiredLevel = int.Parse(GetDataValue(quests[i], "RequiredLevel")); quest.questGiver = GetDataValue(quests[i], "QuestGiver"); Quest.quest.Add(quest); for (int j = 0; j < npcInformation.Length; j++) { if (npcInformation[j].PlayerName == GetDataValue(quests[i], "QuestGiver")) { // This is what i use to set the quest for the npcs // The quest will be given to npcs depending on there name. // Every npc will be given a list of quest that they can give and a quest counter to // advance players in a quest line. // As of right now, quest givers only give 1 quest at a time. It is possible to make them able to give // more if needed npcInformation[j].QuestIDs.Add(quest.iD); BaseNpc npc = npcInformation[j].gameObject.GetComponent <BaseNpc>(); npc.iD = npcInformation[j].QuestIDs.ToArray(); npcInformation[j].interactions.questId = npcInformation[j].QuestIDs[npcInformation[j].QuestCounter]; } } } }
public void CompletedQuest() { questList.DeleteFromQuestLog((FetchQuest)Quest.quest[questId - 1]); FetchQuest quest = new FetchQuest(); quest.CompleteQuest(questId); GameObject temp = GameObject.FindGameObjectWithTag("QuestNotif"); temp.GetComponent <Text>().text = "Completed! " + "Reward: " + "Xp" + quest.GetXPReward(questId) + " Gold: " + quest.GetGoldReward(questId); NPCInformation npc = gameObject.GetComponent <NPCInformation>(); quest = (FetchQuest)Quest.quest[questId - 1]; GameInformation.activeQuest.Remove(quest); npc.QuestCounter++; questId = npc.QuestIDs[npc.QuestCounter]; isDisplayed = false; isAccepted = false; StartCoroutine(GetRidOfCompleteText()); }
public static bool CheckIfCompleted(string qName) { Quest q = questList.FirstOrDefault(i => i.questName == qName); if (q is FetchQuest) { FetchQuest fq = q as FetchQuest; List <Item> tempList = items.ownedItems.FindAll(i => i.name.Equals(fq.what)); if (tempList.Count >= fq.howMany) { for (int i = 0; i < tempList.Count; i++) { items.ownedItems.Remove(tempList[i]); } QuestCompleted(fq.questName); return(true); } } else if (q is DeliveryQuest) { DeliveryQuest dq = q as DeliveryQuest; if (AllDelivered(dq)) { QuestCompleted(dq.questName); return(true); } } else { if (q.completed) { return(true); } } return(false); }
// Update is called once per frame void Update() { isNear = IsCharacterClose(); if (isNear && Input.GetKeyDown(KeyCode.Z) && isAccepted && questText.activeInHierarchy == false) { isDisplayed = true; questText.SetActive(true); questText.GetComponentInChildren <Text>().text = "Hows that quest going?"; } if (isDisplayed && Input.GetKeyDown(KeyCode.Z) && !isAccepted) { // Change the name to Enemy Information name <- found the looppole do in the morning FetchQuest quest = new FetchQuest(); string temp = quest.GetObjective(questId); // I need a system to after certian levels the quest iD for the npc changes, or after certain prerequistes are meet. if (!quest.isQuestComplete && temp.Contains("Kill")) // Maybe if i make an array of quest iDs then make as system to where the quest id changes { // After the player completes a prerequistes, also make NPC information that stores all of // There quest... // Also i have to add all the quest to a active quest list for the player. EnemyInformation[] temporary = GameObject.FindObjectsOfType(typeof(EnemyInformation)) as EnemyInformation[]; List <GameObject> enemysFound = new List <GameObject>(); for (int i = 0; i < temporary.Length; i++) { if (temporary[i].name == quest.GetObjectiveName(questId)) { enemysFound.Add(temporary[i].gameObject); } } GameObject[] temp2 = enemysFound.ToArray(); KillQuest kill = gameObject.GetComponent <KillQuest>(); // Learn Regex-> this is how you convert find numbers in a string and add it to the string then parse string result = Regex.Match(quest.GetObjective(questId), @"\d+").Value; int resultNum = int.Parse(result); kill.InitializeKillQuest(temp2, resultNum); GameObject tempQuestText = GameObject.FindGameObjectWithTag("QuestNotif"); tempQuestText.GetComponent <Text>().text = "Quest Started!!"; StartCoroutine(GetRidOfCompleteText()); } else if (temp.Contains("Save")) { GameObject tempQuestText = GameObject.FindGameObjectWithTag("QuestNotif"); tempQuestText.GetComponent <Text>().text = "Quest Started!!"; StartCoroutine(GetRidOfCompleteText()); SaveQuest saveQuest = gameObject.GetComponent <SaveQuest>(); saveQuest.StartSaveQuest(quest.GetObjectiveName(questId), this.gameObject); } else if (temp.Contains("Find")) { GameObject tempQuestText = GameObject.FindGameObjectWithTag("QuestNotif"); tempQuestText.GetComponent <Text>().text = "Quest Started!!"; DropQuests drop = gameObject.GetComponent <DropQuests>(); drop.ItemToFind(2, this.gameObject, 5); } FetchQuest tempQuest = new FetchQuest(); tempQuest = (FetchQuest)Quest.quest[questId - 1]; GameInformation.activeQuest.Add(tempQuest); questList.AddToQuestLog(); isAccepted = true; } if (isNear && Input.GetKeyDown(KeyCode.Z) && !isAccepted) { isDisplayed = true; questText.SetActive(true); FetchQuest quest = new FetchQuest(); if (quest.GetRequriedLevel(questId) < GameInformation.PlayerLevel && quest.IsPlayerReady(questId)) { questText.GetComponentInChildren <Text>().text = quest.GetDescription(questId) + "\n Press Z to accept quest"; text.text = ""; } } }