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