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