Пример #1
0
        private void CompleteQuestAtLocation()
        {
            foreach (Quest quest in CurrentLocation.QuestsAvailableHere)
            {
                QuestStatus questToComplete =
                    CurrentPlayer.Quests.FirstOrDefault(q => q.PlayerQuest.ID == quest.ID &&
                                                        !q.IsCompleted);
                if (questToComplete != null)
                {
                    if (CurrentPlayer.HasAllTheseItems(quest.ItemsToComplete))
                    {
                        CurrentPlayer.RemoveItemsFromInventory(quest.ItemsToComplete);
                        RaiseMessage("");
                        RaiseMessage($"You completed the {quest.Name} quest.");
                        RaiseMessage($"You received {quest.RewardExperiencePonts} experience points.");
                        CurrentPlayer.AddExperiencePoints(quest.RewardExperiencePonts);
                        RaiseMessage($"You received {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.AddItemToInventory(rewardItem);
                        }
                        questToComplete.IsCompleted = true;
                    }
                }
            }
        }
Пример #2
0
 private void OnCurrnetMonsterKilled(object sender, System.EventArgs eventArgs)
 {
     RaiseMessage(" ");
     RaiseMessage($"You defeated {CurrentMonster.Name}!");
     RaiseMessage($"You received {CurrentMonster.RewardExperiencePoints} experience points.");
     CurrentPlayer.AddExperiencePoints(CurrentMonster.RewardExperiencePoints);
     RaiseMessage($"You received {CurrentMonster.RewardGold} gold.");
     CurrentPlayer.ReceiveGold(CurrentMonster.Gold);
     foreach (GameItem item in CurrentMonster.Inventory)
     {
         RaiseMessage($"You received one {item.Name}.");
         CurrentPlayer.AddItemToInventory(item);
     }
 }