public override Item recolt() { Debug.Log(growthCur); if (growthCur >= growthMax) { MapTile tile = map.tileAt(mapX, mapY); if (tile != null) { tile.removeObject(); } return(new Item(type.ToString(), 0, "miam miam", quality, "", 1, 0, Item.ItemType.Plante)); } return(null); }
/// <summary> /// Het verwerken van muis events. /// </summary> /// <param name="main">Verwijzing naar Main class</param> /// <param name="gameTime">GameTime instance van MonoGame</param> /// <param name="mouseState">MouseState instance van MonoGame</param> /// <param name="prevMouseState">MouseState instance van vorige MouseState update</param> /// <seealso cref="Main"/> /// <seealso cref="GameTime"/> /// <seealso cref="MouseState"/> public void Update(Main main, GameTime gameTime, MouseState mouseState, MouseState prevMouseState) { if (!IsActive) { return; } // Sluit de winkel als er buiten de winkel wordt gedrukt. if (mouseState.LeftButton == ButtonState.Pressed && prevMouseState.LeftButton == ButtonState.Released && (!Collide(mouseState) || Collide(mouseState, 50 + graphicsDevice.Viewport.Width - 140, 50 + graphicsDevice.Viewport.Width - 100, 50, 50 + 40)) && IsActive) { IsActive = false; } if (mouseState.LeftButton != ButtonState.Pressed || prevMouseState.LeftButton != ButtonState.Released || !IsActive) { return; } int menuWidth = graphicsDevice.Viewport.Width - 100; int menuHeight = graphicsDevice.Viewport.Height - 100; int index = 0; int maxIndex = PlantFactory.Plants.Count; int cellWidth = menuWidth / 4; int cellHeigth = menuHeight / 3; for (int row = 0; row < 3; row++) { for (int column = 0; column < 4; column++) { // Sla de eerst en laatste vak over van de eerste rij. if (row == 0 && (column < 1 || column > 2)) { continue; } PlantList plant = PlantFactory.Plants[index]; String text = "Placeholder"; // Creëer een rechthoek voor de koop en verkoop knop. Rectangle buyRectangle = new Rectangle(50 + 5 + cellWidth * column, 50 + (int)cellHeigth - 30 + cellHeigth * row, (int)cellWidth / 2 - 18, (int)(spriteFont.MeasureString(text).Y) + 4); Rectangle sellRectangle = new Rectangle(45 + (int)cellWidth / 2 + cellWidth * column, 50 + (int)cellHeigth - 30 + cellHeigth * row, (int)cellWidth / 2 + 3, (int)(spriteFont.MeasureString(text).Y) + 4); // De muis drukt op de koop knop. if (buyRectangle.Intersects(new Rectangle(mouseState.X, mouseState.Y, 1, 1))) { // De gebruiker heeft genoeg geld en de plant wordt gekocht. if (Money >= PlantFactory.GetCostPrice(plant)) { SetSeedInventoryAmount(plant, GetSeedInventoryAmount(plant) + 1); Money -= PlantFactory.GetCostPrice(plant); } else // De gebruiker heeft niet genoeg geld en zal een alert worden getoont. { main.ShowAlert(Constants.DangerColor, Strings.ErrorNotEnoughMoney, Strings.ErrorNotEnoughMoneyBody.Replace("%%PLANT", plant.ToString())); } } else if (sellRectangle.Intersects(new Rectangle(mouseState.X, mouseState.Y, 1, 1))) // De muis drukt op de verkoop knop. { // De gebruiker heeft genoeg vruchten van de plant. if (GetInventoryAmount(plant) >= 1) { SetInventoryAmount(plant, GetInventoryAmount(plant) - 1); Money += PlantFactory.GetSellPrice(plant); } else // De gebruiker heeft niet genoeg vruchten en zal een alert worden getoont. { main.ShowAlert(Constants.DangerColor, Strings.ErrorNotEnoughInventory, Strings.ErrorNotEnoughInventoryBody.Replace("%%PLANT", plant.ToString())); } } index++; if (index >= maxIndex) { break; } } if (index >= maxIndex) { break; } } }
/// <summary> /// Dit regelt wat er gebeurd zodra op de MenuItem word geklikt. /// </summary> /// <param name="main"><see cref="Main">Main</see> instance</param> public virtual void OnClick(Main main) { // Er zijn genoeg zaadjes dus de plant kan worden geplant. if (main.StoreManager.GetSeedInventoryAmount(plant) > 0) { main.StoreManager.SetSeedInventoryAmount(plant, main.StoreManager.GetSeedInventoryAmount(plant) - 1); dirt.Plant = PlantFactory.GetPlant(plant); dirt.GrowTime = PlantFactory.GetPlant(plant).GrowTime; } else // Er zijn niet genoeg zaadjes dus moet er een alert komen. { main.ShowAlert(Constants.DangerColor, Strings.ErrorNotEnoughSeeds, Strings.ErrorNotEnoughSeedsBody.Replace("%%PLANT", plant.ToString())); } }