public void Draw(SpriteBatch spriteBatch) { if (panel != null) { if (CurrentlySelected != null) { CircleEffect.Draw(spriteBatch); } spriteBatch.Begin(); spriteBatch.Draw(UpperBar, new Vector2(828, 10), Color.White); // Draw Upper Panel. spriteBatch.Draw(panel, PanelRec, Color.White); // Draw Lower Panel. //Write Information in lower Panel spriteBatch.DrawString(ButtonTower.font, "" + Gold, WhereToWriteFont1, Color.Gold); spriteBatch.DrawString(ButtonTower.font, "" + Game1.Life, WhereToWriteFont2, Color.Green); spriteBatch.DrawString(ButtonTower.font, "" + Materia, WhereToWriteFont3, Color.Violet); spriteBatch.DrawString(ButtonTower.font, "" + ((int)((Game1.DelayBetweenSpawns - Game1.TimeElaspedSinceWaveKilled) / 1000) == 5 ? 0 : (int)((Game1.DelayBetweenSpawns - Game1.TimeElaspedSinceWaveKilled) / 1000)) + "", WhereToWriteFont4, Color.Red); spriteBatch.DrawString(ButtonTower.font, "" + Game1.WavesElasped + "", WhereToWriteFont5, Color.WhiteSmoke); if (EnemySelected != null) //Writing about enemy Information. { spriteBatch.Draw(EnemySelected.spriteAnimation.texture, new Rectangle(440, 600, 100, 100), EnemySelected.spriteAnimation.GetDefaultAnimation().animations[0], Color.White); //spriteBatch.DrawString(ButtonTower.font, "Element Type: ", new Vector2(Game1.graphicsDev.Viewport.Width - 730, PanelRec.Y + 120), Color.WhiteSmoke); spriteBatch.DrawString(ButtonTower.font, "Type: " + EnemySelected.Type.ToString(), new Vector2(Game1.graphicsDev.Viewport.Width - 568, PanelRec.Y + 78), CollorPallet[(int)EnemySelected.Type]); if ((int)EnemySelected.Type == 6) { spriteBatch.DrawString(ButtonTower.font, "100% Damage From All ", new Vector2(Game1.graphicsDev.Viewport.Width - 575, PanelRec.Y + 90), CollorPallet[(int)EnemySelected.Type]); } else { Vector2 test = new Vector2(Game1.graphicsDev.Viewport.Width - 575, PanelRec.Y + 90); for (int i = 0; i < EnemyLowTower.Count; i++) { spriteBatch.DrawString(ButtonTower.font, "50% Damage From " + ((ElementalTypes)EnemyLowTower[i]).ToString(), test, CollorPallet[EnemyLowTower[i]]); test.Y += 12; } for (int i = 0; i < EnemyLowTower.Count; i++) { spriteBatch.DrawString(ButtonTower.font, "150% Damage From " + ((ElementalTypes)EnemyHighTower[i]).ToString(), test, CollorPallet[EnemyHighTower[i]]); test.Y += 12; } } spriteBatch.Draw(HealthBar, new Vector2(Game1.graphicsDev.Viewport.Width - 730, PanelRec.Y + 160), new Rectangle(0, 0, 320, 12), Color.Black); spriteBatch.Draw(HealthBar, new Vector2(Game1.graphicsDev.Viewport.Width - 730, PanelRec.Y + 160), new Rectangle(0, 0, (int)((((float)EnemySelected.health) / (float)(EnemySelected.totalHealth)) * 320), 12), Color.GreenYellow); spriteBatch.DrawString(ButtonTower.font, EnemySelected.health + " / " + EnemySelected.totalHealth, new Vector2(Game1.graphicsDev.Viewport.Width - 600, PanelRec.Y + 155), CollorPallet[(int)EnemySelected.Type]); } spriteBatch.End(); } //Draw Spin Buttons. spinButton.Draw(spriteBatch); //Draw Buttons foreach (Button b in ButtonsToDisplay) { b.Draw(spriteBatch); } if (spinButton.isAnimation1) { //If we have Clicked An Icon that it will draw; DrawClickedTowerIcon(spriteBatch); //If we have clicked a tower its Information will be displayed here. DrawSelectedTowerInfo(spriteBatch); if (DisplayHoverToolBar) { spriteBatch.Begin(); Vector2 WritingForPanel = LocationForHoverPanel; WritingForPanel.Y = PanelRec.Y - 85; WritingForPanel.X += 2; //Drawing Text for Panel. Rectangle OnHoverPanelRec = new Rectangle(Game1.graphicsDev.Viewport.Width - 350, PanelRec.Y - 85, 350, 115); spriteBatch.Draw(OnHoverPanel, OnHoverPanelRec, Color.WhiteSmoke); //Writing For The Panel if (onHoverButton != null) { spriteBatch.DrawString(ButtonTower.font, onHoverButton.Value.TowerName.ToString(), new Vector2(WritingForPanel.X + (OnHoverPanelRec.Width / 2) - ButtonTower.font.MeasureString(onHoverButton.Value.TowerName).X - 2, WritingForPanel.Y), Color.WhiteSmoke); spriteBatch.DrawString(ButtonTower.font, " (Gold: " + onHoverButton.GoldToCreate + ")", new Vector2(WritingForPanel.X + (OnHoverPanelRec.Width / 2) - ButtonTower.font.MeasureString(onHoverButton.Value.TowerName).X + ButtonTower.font.MeasureString(onHoverButton.Value.TowerName).X + 4, WritingForPanel.Y), Color.Gold); WritingForPanel.Y += 20; WritingForPanel.X += 3; Vector2 WritingElementalRequirements = WritingForPanel; spriteBatch.DrawString(ButtonTower.font, "Requirements: ", WritingElementalRequirements, Color.WhiteSmoke); WritingElementalRequirements.X += 107; Edge EdgeChosen = null; foreach (Edge e in onHoverButton.Value.TowersThisCanBeUpgradedInto) { if (e.Destination == onHoverButton.Value) { EdgeChosen = e; } } if (EdgeChosen != null) { foreach (ElementalTypes type in EdgeChosen.ElementsRequiredToCreate) { spriteBatch.DrawString(ButtonTower.font, type.ToString(), WritingElementalRequirements, CollorPallet[(int)type]); WritingElementalRequirements.X += 50; } } else { WritingElementalRequirements.X += 20; spriteBatch.DrawString(ButtonTower.font, "None", WritingElementalRequirements, Color.WhiteSmoke); } WritingForPanel.Y += 15; spriteBatch.DrawString(ButtonTower.font, "Type: ", WritingForPanel, Color.WhiteSmoke); spriteBatch.DrawString(ButtonTower.font, onHoverButton.Value.Type.ToString(), new Vector2(WritingForPanel.X + 50, WritingForPanel.Y), CollorPallet[(int)onHoverButton.Value.Type]); WritingForPanel.Y += 15; spriteBatch.DrawString(ButtonTower.font, "Range: " + onHoverButton.Value.TowerRange.ToString(), WritingForPanel, Color.WhiteSmoke); WritingForPanel.Y += 15; spriteBatch.DrawString(ButtonTower.font, "AoE: " + onHoverButton.Value.Aoe.ToString(), WritingForPanel, Color.WhiteSmoke); WritingForPanel.Y += 15; spriteBatch.DrawString(ButtonTower.font, "Damage: " + onHoverButton.Value.Damage.ToString(), WritingForPanel, Color.WhiteSmoke); WritingForPanel.Y += 15; spriteBatch.DrawString(ButtonTower.font, "Rate Of Attack: " + onHoverButton.Value.DelayBetweenShots, WritingForPanel, Color.WhiteSmoke); } spriteBatch.End(); } } else { Vector2 DarkColoumn = new Vector2(Game1.graphicsDev.Viewport.Width - 300, PanelRec.Y + 90); Vector2 LightColoumn = new Vector2(DarkColoumn.X + 50, DarkColoumn.Y); Vector2 WaterColoumn = new Vector2(LightColoumn.X + 50, LightColoumn.Y); Vector2 WindColoumn = new Vector2(WaterColoumn.X + 50, WaterColoumn.Y); Vector2 FireColoumn = new Vector2(WindColoumn.X + 50, WindColoumn.Y); Vector2 EarthColoumn = new Vector2(FireColoumn.X + 50, FireColoumn.Y); spriteBatch.Begin(); spriteBatch.DrawString(ButtonTower.font, "Elements Available", new Vector2(DarkColoumn.X - 850, DarkColoumn.Y - 30), Color.WhiteSmoke); spriteBatch.DrawString(ButtonTower.font, "Elements Bought", new Vector2(DarkColoumn.X + 25, DarkColoumn.Y - 30), Color.WhiteSmoke); spriteBatch.DrawString(ButtonTower.font, "Level 1:", new Vector2(DarkColoumn.X - 65, DarkColoumn.Y), Color.WhiteSmoke); spriteBatch.DrawString(ButtonTower.font, "Level 2:", new Vector2(DarkColoumn.X - 65, DarkColoumn.Y + 33), Color.WhiteSmoke); spriteBatch.DrawString(ButtonTower.font, "Level 3:", new Vector2(DarkColoumn.X - 65, DarkColoumn.Y + 66), Color.WhiteSmoke); //Vector2 foreach (ElementalTypes type in BoughtElementsList) { if (type == 0) { spriteBatch.Draw(MenuBallSmall[(int)type], DarkColoumn, Color.WhiteSmoke); DarkColoumn.Y += 30; } else if (type == (ElementalTypes)1) { spriteBatch.Draw(MenuBallSmall[(int)type], LightColoumn, Color.WhiteSmoke); LightColoumn.Y += 30; } else if (type == (ElementalTypes)2) { spriteBatch.Draw(MenuBallSmall[(int)type], WaterColoumn, Color.WhiteSmoke); WaterColoumn.Y += 30; } else if (type == (ElementalTypes)3) { spriteBatch.Draw(MenuBallSmall[(int)type], WindColoumn, Color.WhiteSmoke); WindColoumn.Y += 30; } else if (type == (ElementalTypes)4) { spriteBatch.Draw(MenuBallSmall[(int)type], FireColoumn, Color.WhiteSmoke); FireColoumn.Y += 30; } else if (type == (ElementalTypes)5) { spriteBatch.Draw(MenuBallSmall[(int)type], EarthColoumn, Color.WhiteSmoke); EarthColoumn.Y += 30; } } spriteBatch.End(); } }