private void AddHousesToPool(GameCardViewModel street) { foreach (HouseViewModel item in street.Houses) { AddHouseToPool(item); } }
/// <summary> /// The player pays off a mortgage /// </summary> /// <param name="gameCard"></param> public void PayMortgage(GameCardViewModel gameCard) { if (gameCard.IsActivePlayerOwningPlayer()) { gameCard.IncreaseHouseAmount(); gameCard.GetOwningPlayer().PlayerRemoveMoney(gameCard.Mortgage[1]); } }
/// <summary> /// The player takes on a mortgage /// </summary> /// <param name="gameCard"></param> public void TakeMortgage(GameCardViewModel gameCard) { if (gameCard.IsActivePlayerOwningPlayer()) { gameCard.DecreaseHouseAmount(); gameCard.GetOwningPlayer().PlayerAddMoney(gameCard.Mortgage[0]); } }
public PlayerViewModelTests() { testPlayer = new PlayerViewModel(new PlayerModel() { CurrentPosition = 0, AmountHotels = 0, AmountHouses = 0, FirstThrow = 0, PlayerCash = 2000, PlayerID = 0, PlayerName = "Test", PrisonRoll = 3 }); contentTest.ManagingPlayer.AddPlayer(testPlayer); contentTest.ManagingPlayer.SetAllPlayerCollection(); testGameCard = new GameCardViewModel(SetEnums.SetGameCard(StreetName.Schlossallee)); }
public void SellHotel(GameCardViewModel street) { if (CheckSellHotel()) { AddHotelToPool(street.Houses[0]); street.RemoveHouseAtID(0); for (int i = 0; i < 4; i++) { BuildHouse(street); } } }
/// <summary> /// Initializes every Street in the game. /// </summary> private void InitializeStreets() { GameCards = new GameCardViewModel[] { new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.LOS)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Badstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Gemeinschaftsfeld)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Turmstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Einkommenssteuer)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Südbahnhof)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Chausseestraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Ereignisfeld)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Elisenstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Poststraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Gefängnis)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Seestraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.EWerk)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Hafenstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.NeueStraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Westbahnhof)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.MünchnerStraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Gemeinschaftsfeld)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.WienerStraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.BerlinerStraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.FreiParken)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.TheaterStraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Ereignisfeld)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Museumstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Opernplatz)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.NordBahnhof)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Lessingstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Schillerstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Wasserwerk)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Goethestraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.InDasGefängnis)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Rathausplatz)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Hauptstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Gemeinschaftsfeld)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Bahnhofstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Hauptbahnhof)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Ereignisfeld)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Parkstraße)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Zusatzsteuer)), new GameCardViewModel(SetEnums.SetGameCard(Utility.StreetName.Schlossallee)) }; }
/// <summary> /// Returns a HouseViewModel reference of a house that is not yet in use. /// If no house is available it returns nothing and shows a MessageBox with information regarding this case. /// Sets all neccessary fields in the HouseViewModel. /// </summary> /// <param name="street"></param> /// <returns></returns> public HouseViewModel BuildHouse(GameCardViewModel street) { foreach (HouseViewModel house in Houses) { if (house.IsHouseNotNull() && house.IsHouseNotInUse()) { UnavailableHouses[house.GetUniqueID()] = house; Houses[house.GetUniqueID()] = null; house.SetBuiltStreet(street); house.SetHouseInUse(true); UpdateAvailableHouses(); street.AddHouseToStreet(house); WindowContent.GetWindowContent().OpenMessageBox(String.Format("{0} Häuser übrig", AvailableHouses)); return(house); } } WindowContent.GetWindowContent().OpenMessageBox("Keine Häuser mehr verfügbar!"); return(null); }
public HouseViewModel BuildHotel(GameCardViewModel street) { AddHousesToPool(street); street.Houses.Clear(); foreach (HouseViewModel hotel in Hotels) { if (hotel.IsHouseNotNull() && hotel.IsHouseNotInUse()) { UnavailableHotels[hotel.GetUniqueHotelID()] = hotel; Hotels[hotel.GetUniqueHotelID()] = null; hotel.SetBuiltStreet(street); hotel.SetHouseInUse(true); UpdateAvailableHouses(); street.AddHouseToStreet(hotel); return(hotel); } } WindowContent.GetWindowContent().OpenMessageBox("Keine Hotels mehr verfügbar!"); return(null); }
/// <summary> /// The player buys a hotel. /// </summary> /// <param name="gameCard"></param> public void BuyHotel(GameCardViewModel gameCard) { if (gameCard.IsActivePlayerOwningPlayer()) { if (WindowContent.GetWindowContent().GetManagingPlayer().GetActivePlayer().IsMonopolyComplete(gameCard)) { gameCard.SetMaxMonopolyHouses(gameCard); if (gameCard.NrOfHousesLessThanMonopolyMax()) { gameCard.DecreaseHouseAmount(); gameCard.GetOwningPlayer().PlayerRemoveMoney(gameCard.GetHousePrice()); gamePool.BuildHotel(gameCard); gameCard.SetMinMonopolyHouses(gameCard); } else { WindowContent.GetWindowContent().OpenMessageBox("Bauen nicht möglich! Bauen Sie zunächst gleichmäßig viele Häuser auf diesem Monopol!"); } } } }
/// <summary> /// The player buys a hotel. /// </summary> /// <param name="gameCard"></param> public void SellHotel(GameCardViewModel gameCard) { if (gameCard.IsActivePlayerOwningPlayer()) { if (WindowContent.GetWindowContent().GetManagingPlayer().GetActivePlayer().IsMonopolyComplete(gameCard)) { gameCard.SetMinMonopolyHouses(gameCard); if (gameCard.NrOfHousesGreaterThanMonopolyMin()) { gameCard.SetMaxMonopolyHouses(gameCard); gameCard.DecreaseHouseAmount(); gameCard.GetOwningPlayer().PlayerAddMoney(gameCard.GetSellPrice()); gamePool.SellHotel(gameCard); } else { WindowContent.GetWindowContent().OpenMessageBox("Verkaufen nicht möglich! Um auf dieser Straße ein weiteres Haus verkaufen zu können müssen zunächst auf allen Straßen des Monopols gleich viele Häuser stehen!"); } } } }
public void SetMouseOverGameCard(GameCardViewModel gameCardViewModel) { DetailsViewModels[0] = gameCardViewModel; }
public void SellHouse(GameCardViewModel street) { AddHouseToPool(street.Houses[street.Houses.Count - 1]); street.RemoveHouseAtID(street.Houses.Count - 1); }