public void ExecuteHit(Creature attacker, Creature victim)
        {
            Random rnd                 = new Random();
            int    chanceToHit         = 80;
            int    minDamageMultiplier = 1;
            int    maxDamageMultiplier = 2;


            if (rnd.Next(1, 101) > chanceToHit)
            {
                TextAdventure.ConsoleWriteBlue(attacker.Name + " missed!");
            }
            else
            {
                var damage = attacker.Damage * rnd.Next(minDamageMultiplier, maxDamageMultiplier + 1);
                victim.Health -= damage;
                if (victim.Health <= 0)
                {
                    victim.Health = 0;
                }
                TextAdventure.ConsoleWriteBlue(victim.Name + " took " + damage + " Damage. " + victim.Name + " has " + victim.Health + " Healthpoints left.");
            }
        }
        public void Dialog(Player player, NPC dialogPartner)
        {
            if (!dialogPartner.CanSpeak)
            {
                Console.WriteLine("You can't speak with " + dialogPartner.Name);
                return;
            }

            PlayerDialogModel playerDialog = player.Dialogs.Find(x => x.DialogPartner.Name == dialogPartner.Name);

            Console.WriteLine("A conversation with " + dialogPartner.Name + " just started. Select a answer by typing the number of the line and pressing Enter.");

            for (;;)
            {
                CreatureDialogLine npcLine = dialogPartner.DialogLines.Find(x => x.DialogPhase == playerDialog.DialogPhase);
                TextAdventure.ConsoleWriteBlue(Environment.NewLine + dialogPartner.Name + ": " + npcLine.Line);

                if (npcLine.Gift != null)
                {
                    player.Inventory.Add(npcLine.Gift);
                    dialogPartner.Inventory.Remove(npcLine.Gift);
                }

                foreach (PlayerDialogLine playerDialogLine in playerDialog.DialogLines)
                {
                    if (playerDialogLine.DialogPhase == playerDialog.DialogPhase)
                    {
                        Console.WriteLine(playerDialogLine.LineNumber + ": " + playerDialogLine.Line);
                    }
                }
                Console.WriteLine("0: (End Conversation)");

                string input = Console.ReadLine();
                int    inputNumber;
                if (input == "quit" || input == "q")
                {
                    TextAdventure.IsFinished = true;
                    break;
                }
                else if (input == "0")
                {
                    Console.WriteLine("You ended the conversation.");
                    break;
                }
                else if (Int32.TryParse(input, out inputNumber))
                {
                    PlayerDialogLine playerDialogLine = playerDialog.DialogLines.Find(x => x.LineNumber == inputNumber && x.DialogPhase == playerDialog.DialogPhase);
                    if (playerDialogLine == null)
                    {
                        Console.WriteLine("Please insert one of the line numbers from above!");
                    }
                    else
                    {
                        if (playerDialogLine.Gift != null)
                        {
                            if (player.Inventory.Contains(playerDialogLine.Gift))
                            {
                                dialogPartner.Inventory.Add(playerDialogLine.Gift);
                                player.Inventory.Remove(playerDialogLine.Gift);
                                TextAdventure.ConsoleWriteBlue("Player: " + playerDialogLine.Line);
                                playerDialog.DialogPhase = playerDialogLine.NewPhase;
                            }
                            else
                            {
                                TextAdventure.ConsoleWriteDarkYellow("You don't have " + playerDialogLine.Gift.Name + " in your inventory.");
                            }
                        }
                        else
                        {
                            TextAdventure.ConsoleWriteBlue("Player: " + playerDialogLine.Line);
                            playerDialog.DialogPhase = playerDialogLine.NewPhase;
                        }
                    }
                }
                else
                {
                    Console.WriteLine("Please insert a valid line Number!");
                }
            }
        }