Exemplo n.º 1
0
        public void CompleteQuestAtLocation()
        {
            foreach (Quest quest in CurrentLocation.QuestAvailableHere)
            {
                QuestStatus questToComplete = CurrentPlayer.Quests.FirstOrDefault(q => q.PlayerQuest.ID == quest.ID);
                if (questToComplete != null)
                {
                    if (CurrentPlayer.HasAllItems(quest.ItemsToComplete))
                    {
                        CurrentPlayer.RemoveItemsFromInventory(quest.ItemsToComplete);
                        RaiseMessage("");
                        RaiseMessage($"You completed the '{quest.Name}' quest");

                        // Give the player the quest rewards
                        RaiseMessage($"You receive {quest.RewardEXPPoint} experience points");
                        CurrentPlayer.AddEXPPoint(quest.RewardEXPPoint);

                        RaiseMessage($"You receive {quest.RewardGold} gold");
                        CurrentPlayer.ReceiveGold(quest.RewardGold);

                        foreach (ItemQuantity itemQuantity in quest.RewardItems)
                        {
                            GameItem rewardItem = ItemFactory.CreateGameItem(itemQuantity.ItemID);
                            RaiseMessage($"You received {rewardItem.Name}");
                            CurrentPlayer.Inventory.Add(rewardItem);
                        }
                        questToComplete.IsCompleted = true;
                    }
                }
            }
        }
Exemplo n.º 2
0
        private void OnCurrentMonsterKilled(object sender, System.EventArgs eventArgs)
        {
            RaiseMessage("");
            RaiseMessage($"You killed {CurrentMonster.Name}.");

            RaiseMessage($"You received {CurrentMonster.Gold} gold");
            CurrentPlayer.ReceiveGold(CurrentMonster.Gold);

            RaiseMessage($"You received {CurrentMonster.RewardEXPPoint} points of EXP.");
            CurrentPlayer.AddEXPPoint(CurrentMonster.RewardEXPPoint);

            foreach (GameItem gameItem in CurrentMonster.Inventory)
            {
                RaiseMessage($"You received one {gameItem.Name}");
                CurrentPlayer.AddItemToInventory(gameItem);
            }
        }