using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; class Crops { private int Status; private int originalStatus; private int cropType = 0; private int Timer = 1; private int fullTimer; private bool housePos = false; private Vector2 Size; SoilProperties soilProperties = new SoilProperties(); public void updateCrop(Vector2 newSize) { if (Status == 4 && Timer != 1) { Timer--; } Size = newSize; } public int getCropTimer() { return Timer; } public int getCropTimerBar(int tileSize) { int x = (int)((1 - ((float)Timer / fullTimer)) * (tileSize - tileSize / 3)); return x; } public void init() { soilProperties.setSoilProperties(); } // Changes the time required for the crops to be harvestable public void setCropTimer() { if (cropType == 0) // Carrots { Timer = 300; fullTimer = Timer; } else if (cropType == 1) // Wheat { Timer = 600; fullTimer = Timer; } else if (cropType == 2) // Berries { Timer = 1200; fullTimer = Timer; } else // Fruit Trees { Timer = 2400; fullTimer = Timer; } } public int getCostOnMovement() { if (Status == 1) //grass { return 1; } else if (Status == 2) //dirt { return 8; } else if (Status == 3) //crops { if (cropType == 0) { return 15; //Carrots } else if (cropType == 1) { return 30; //Wheat } else if (cropType == 2) { return 40; //Berries } else { return 50; //Fruit Trees } } else //Harvestable Crops { if (cropType == 0) { return 30; //Carrots } else if (cropType == 1) { return 40; //Wheat } else if (cropType == 2) { return 50; //Berries } else { return 100; //Fruit Trees } } } public void setCropType(int Type) { cropType = Type; } public int getStatus() { if (Status != 4) { return Status; } else { return Status; // + cropType; When unique crop textures have been added } } public int getCropType() { return cropType; } public void setStatus(int newStatus) { Status = newStatus; } public void setOriginalStatus() { originalStatus = Status; } public void setHousePos(bool state) { housePos = state; if (state) { Status = 1; } else { Status = originalStatus; } } public bool getHousePos() { return housePos; } public void Inspect(int tileSize, int Spacing, SpriteFont Bold, SpriteBatch spriteBatch, string[] cropTypesNames) { spriteBatch.Begin(); if (housePos) { spriteBatch.DrawString(Bold, "Tiletype: House", new Vector2(240, Size.Y * (tileSize + Spacing) + 42), Color.DarkBlue); } else if (Status == 0) { spriteBatch.DrawString(Bold, "Tiletype: Boulders", new Vector2(240, Size.Y * (tileSize + Spacing) + 42), Color.DarkBlue); } else if (Status == 1) { spriteBatch.DrawString(Bold, "Tiletype: Grassfield", new Vector2(240, Size.Y * (tileSize + Spacing) + 42), Color.DarkBlue); } else if (Status == 2) { spriteBatch.DrawString(Bold, "Tiletype: Soil", new Vector2(240, Size.Y * (tileSize + Spacing) + 42), Color.DarkBlue); } else if (Status == 3) { spriteBatch.DrawString(Bold, "Tiletype: Planted", new Vector2(240, Size.Y * (tileSize + Spacing) + 42), Color.DarkBlue); } else if (Status == 4) { int x = (int)(((float)Timer / fullTimer) * 100); x = 100 - x; spriteBatch.DrawString(Bold, "Tiletype: Crop ", new Vector2(240, Size.Y * (tileSize + Spacing) + 42), Color.DarkBlue); spriteBatch.DrawString(Bold, "Completion: " + x + "%", new Vector2(240, Size.Y * (tileSize + Spacing) + 82), Color.DarkBlue); } if (Status != 4) { spriteBatch.DrawString(Bold, "-------------", new Vector2(240, Size.Y * (tileSize + Spacing) + 82), Color.DarkRed); } if (Status > 1) { spriteBatch.DrawString(Bold, "Prefered Crop: " + cropTypesNames[cropType], new Vector2(240, Size.Y * (tileSize + Spacing) + 62), Color.DarkBlue); } else { spriteBatch.DrawString(Bold, "None", new Vector2(240, Size.Y * (tileSize + Spacing) + 62), Color.DarkBlue); } spriteBatch.DrawString(Bold, "Soil Properties:", new Vector2(240, Size.Y * (tileSize + Spacing) + 122), Color.DarkRed); spriteBatch.DrawString(Bold, "Soil Type: " + soilProperties.soilType, new Vector2(240, Size.Y * (tileSize + Spacing) + 142), Color.DarkBlue); spriteBatch.DrawString(Bold, "Temparature: " + soilProperties.Temperature, new Vector2(240, Size.Y * (tileSize + Spacing) + 162), Color.DarkBlue); spriteBatch.DrawString(Bold, "Moisture: " + soilProperties.Moisture, new Vector2(240, Size.Y * (tileSize + Spacing) + 182), Color.DarkBlue); spriteBatch.DrawString(Bold, "Humidity: " + soilProperties.Humidity, new Vector2(240, Size.Y * (tileSize + Spacing) + 202), Color.DarkBlue); spriteBatch.DrawString(Bold, "Phosphorous: " + soilProperties.Phosphorous, new Vector2(240, Size.Y * (tileSize + Spacing) + 222), Color.DarkBlue); spriteBatch.DrawString(Bold, "Potassium: " + soilProperties.Potassium, new Vector2(240, Size.Y * (tileSize + Spacing) + 242), Color.DarkBlue); spriteBatch.DrawString(Bold, "Nitrogen: " + soilProperties.Nitrogen, new Vector2(240, Size.Y * (tileSize + Spacing) + 262), Color.DarkBlue); spriteBatch.End(); } }