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(); } }
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); } }
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; } } } }