예제 #1
0
        public void CompleteQuest()
        {
            Quest quest = CreateTestQuest();

            //PlayerQuest looks for the ID in GameWorld's quest list. This can be removed once we start generating quests with IDs
            GameWorld.GetWorld().QuestList.Add(quest);
            PlayerQuest playerQuest = new PlayerQuest(quest.ID);

            //loop through all steps and give required items/kills
            foreach (var step in playerQuest.Quest.Steps)
            {
                foreach (var killCount in step.RequiredKills)
                {
                    killCount.KilledByPlayer = killCount.RequiredKillCount;
                }

                //give player all required items
                foreach (var itemRequired in step.RequiredItems)
                {
                    InventoryItem item = new InventoryItem(itemRequired.Item.ID, itemRequired.Count);
                    Player.GetPlayer().Inventory.Add(item);
                }
            }

            //Verify player completed the quest
            Assert.IsTrue(playerQuest.IsCompleted);
        }
예제 #2
0
        public void CompleteQuestStep()
        {
            Quest quest = CreateTestQuest();            
            
            //make required kills match player kills
            foreach (var killCount in quest.Steps[0].RequiredKills)
            {
                killCount.KilledByPlayer = killCount.RequiredKillCount;                   
            }

            //give player all required items
            foreach (var itemRequired in quest.Steps[0].RequiredItems)
            {
                InventoryItem item = new InventoryItem(itemRequired.Item.ID, itemRequired.Count);
                Player.GetPlayer().Inventory.Add(item);
            }

            //verify step has been completed
            Assert.IsTrue(quest.Steps[0].IsStepCompleted);            
        }