コード例 #1
0
 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);
 }
コード例 #2
0
ファイル: StoreManager.cs プロジェクト: R-Heemskerk/SBS
        /// <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;
                }
            }
        }
コード例 #3
0
 /// <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()));
     }
 }