private void SimulateLandOnPropertyRailOrUtility(Player activePlayer, Position currentPosition)
 {
     if (!activePlayer.OwnsPosition(currentPosition))
     {
         if (currentPosition.HasOwner())
         {
             activePlayer.PayRent(currentPosition);
             if (activePlayer.HasBeenBankrupted())
             {
                 SimulateBankruptcyByPlayer(activePlayer, currentPosition.owner);
             }
         }
         else
         {
             if (activePlayer.WantsToPurchasePosition(currentPosition))
             {
                 activePlayer.PurchasePosition(currentPosition);
             }
             else
             {
                 SimulateAuction(_players, currentPosition);
             }
         }
     }
 }
 private void SimulateCommunityChest(Player activePlayer, List <Player> players)
 {
     _communityChestEngine.Simulate(activePlayer, players);
     if (activePlayer.HasBeenBankrupted())
     {
         SimulateBankruptcyByBanker(activePlayer);
     }
 }
 private void SimulateLandOnTax(Player activePlayer, Position currentPosition)
 {
     activePlayer.DecreaseBalance(currentPosition.cost);
     if (activePlayer.HasBeenBankrupted())
     {
         SimulateBankruptcyByBanker(activePlayer);
     }
 }
 private void SimulateLandOnChance(Player activePlayer)
 {
     _chanceEngine.Simulate(activePlayer);
     if (activePlayer.HasBeenBankrupted())
     {
         SimulateBankruptcyByBanker(activePlayer);
     }
 }