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