示例#1
0
    /// <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);
    }
示例#2
0
    /// <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);
    }
示例#3
0
    /// <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);
    }
示例#4
0
    /// <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);
    }
示例#5
0
    /// <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);
    }
示例#6
0
    /// <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);
    }
示例#7
0
    /// <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);
    }
示例#8
0
 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);
         }
     }
 }
示例#9
0
    //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);
    }
示例#10
0
    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);
    }
示例#11
0
    /// <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);
    }
示例#12
0
    // 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];
                }
            }
        }
    }
示例#13
0
    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());
    }
示例#14
0
    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);
    }
示例#15
0
    // 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 = "";
            }
        }
    }