Пример #1
0
 public void SellSelectedItem()
 {
     if (itemChoice >= 0 && itemChoice < CurrentPlayer.Inventory.Count)
     {
         var toSell = CurrentPlayer.Inventory[itemChoice];
         CurrentPlayer.AddGold(toSell.Price);
         CurrentLocation.TraderHere.AddItemToInventory(toSell);
         CurrentPlayer.RemoveItemFromInventory(toSell);
     }
     else
     {
         gui.CloseItemSelected();
     }
 }
Пример #2
0
 public void KillReward()
 {
     if (CurrentEnemy.Health <= 0)
     {
         messageLog.Add($"You defeat {CurrentEnemy.Name.ToLower()}");
         messageLog.Add("You gain " + CurrentEnemy.RewardExp + " experienece");
         messageLog.Add("You gain " + CurrentEnemy.Gold + " gold");
         messageLog.Add("Press [x] to exit...");
         foreach (Item item in CurrentEnemy.Inventory)
         {
             CurrentPlayer.AddItemToInventory(item);
             messageLog.Add("You obtain " + item.Name);
         }
         CurrentPlayer.Experience += CurrentEnemy.RewardExp;
         CurrentPlayer.AddGold(CurrentEnemy.Gold);
     }
 }
Пример #3
0
        public void CompleteQuestsAtLocation()
        {
            foreach (Quest quest in CurrentLocation.QuestsAvailable)
            {
                // Get the first quest where the ID matches and has not yet been completed
                QuestStatus questToComplete = CurrentPlayer.Quests.FirstOrDefault(q => q.PlayerQuest.ID == quest.ID && !q.IsCompleted);

                if (questToComplete != null)
                {
                    if (CurrentPlayer.HasRequiredItems(quest.ItemsToComplete))
                    {
                        foreach (ItemBundle itemBundle in quest.ItemsToComplete)
                        {
                            for (int i = 0; i < itemBundle.Quantity; i++)
                            {
                                CurrentPlayer.RemoveItemFromInventory(CurrentPlayer.Inventory.First(item => item.ID == itemBundle.ID));
                            }
                        }

                        messageLog.Add($"{quest.Name} has been completed!");
                        messageLog.Add($"You receive {quest.RewardExp} experience and {quest.RewardGold} gold.");
                        CurrentPlayer.AddGold(quest.RewardGold);
                        CurrentPlayer.Experience += quest.RewardExp;

                        foreach (ItemBundle itemBundle in quest.RewardItems)
                        {
                            Item rewardItem = ItemFactory.CreateItem(itemBundle.ID);

                            CurrentPlayer.AddItemToInventory(rewardItem);
                            messageLog.Add($"You receive {rewardItem.Name}.");
                        }

                        questToComplete.IsCompleted = true;
                    }
                }
            }
        }