Beispiel #1
0
        public void CompleteGatherQuestTest()
        {
            IQuest quest = new QuestGather(1, "Welcome part 2", "Second Quest", itemReward, statReward, item_0, 5);

            quest.AcceptQuest(hero);

            Assert.AreEqual(true, quest.Active);
            Assert.AreEqual(false, quest.IsComplete());

            hero.Interact(item_0);
            hero.Interact(item_1);
            hero.Interact(item_2);
            hero.Interact(item_3);
            hero.Interact(item_4);

            Assert.AreEqual($"Find iron: 5/5", quest.GetConditions());
            Assert.AreEqual(hero.Inventory.Items.Count, 5);

            Assert.AreEqual(true, hero.CompleteQuest(quest));

            Assert.AreEqual(hero.Inventory.Items.Count, 6);
            Assert.AreEqual(110f, ((RegenerationStat)hero.GetStat(StatType.Health)).MaxValue);
            Assert.AreEqual(105f, ((RegenerationStat)hero.GetStat(StatType.Energy)).MaxValue);
            Assert.AreEqual(105f, ((RegenerationStat)hero.GetStat(StatType.Stamina)).MaxValue);
            Assert.AreEqual(32f, hero.GetStat(StatType.Intelligence).Value);
            Assert.AreEqual(51f, hero.GetStat(StatType.Luck).Value);
        }
Beispiel #2
0
        public void AcceptGatherQuestTest()
        {
            IQuest quest = new QuestGather(1, "Welcome part 2", "Second Quest", itemReward, statReward, item_0, 5);

            quest.AcceptQuest(hero);

            Assert.AreEqual(1, hero.QuestList.Count);
            Assert.AreEqual(true, quest.Active);
            Assert.AreEqual(false, quest.IsComplete());
            Assert.AreEqual($"Find iron: 0/5", quest.GetConditions());
        }
Beispiel #3
0
        public void AcceptManyQuestsTest()
        {
            IQuest quest_gather = new QuestGather(1, "Welcome part 2", "Second Quest", itemReward, statReward, item_0, 5);
            IQuest quest_kill   = new QuestKill(1, "Welcome part 1", "First Quest", itemReward, statReward, enemy_0, 5);

            quest_gather.AcceptQuest(hero);
            quest_kill.AcceptQuest(hero);

            Assert.AreEqual(2, hero.QuestList.Count);
            Assert.AreEqual(true, quest_gather.Active);
            Assert.AreEqual(true, quest_kill.Active);
        }
Beispiel #4
0
        public void CreateGatherQuestTest()
        {
            IQuest quest = new QuestGather(1, "Welcome part 2", "Second Quest", itemReward, statReward, item_0, 5);

            Assert.AreEqual(1, quest.Id);

            Assert.AreEqual("Welcome part 2", quest.Title);
            Assert.AreEqual("Second Quest", quest.Description);
            Assert.AreEqual(1, quest.Items.Count);
            Assert.AreEqual(1, quest.Items[0].Id);
            Assert.AreEqual("Helm of Fire", quest.Items[0].Name);
            Assert.AreEqual(5, quest.Stats.Count);
            Assert.AreEqual(QuestType.Gather, quest.Type);
            Assert.AreEqual(false, quest.Active);
        }
Beispiel #5
0
    public static Quest getRandomQuest(Player player)
    {
        Quest q = null;

        while (q == null)
        {
            switch (Main.rand.Next(5))
            {
            case 0:
            case 1: q = QuestMonster.getRandomQuest(player, false); break;

            case 2: q = QuestMonster.getRandomQuest(player, true); break;

            case 3:
            case 4: q = QuestGather.getRandomQuest(player); break;
            }
        }
        return(q);
    }
Beispiel #6
0
        public void UpdateGatherQuestTest()
        {
            IQuest quest = new QuestGather(1, "Welcome part 2", "Second Quest", itemReward, statReward, item_0, 5);

            quest.AcceptQuest(hero);

            Assert.AreEqual(true, quest.Active);
            Assert.AreEqual(false, quest.IsComplete());

            hero.Interact(item_0);
            Assert.AreEqual($"Find iron: 1/5", quest.GetConditions());
            hero.Interact(item_1);
            Assert.AreEqual($"Find iron: 2/5", quest.GetConditions());
            hero.Interact(item_2);
            Assert.AreEqual($"Find iron: 3/5", quest.GetConditions());
            hero.Interact(item_3);
            Assert.AreEqual($"Find iron: 4/5", quest.GetConditions());

            Assert.AreEqual(false, hero.CompleteQuest(quest));
        }