internal static void Update(Tower tower) { Location = new RectangleF(tower.ViewX + 50, tower.ViewY, tower.ViewX + 150, tower.ViewY + 150); Buttons[0] = new Button("Upgrade", (int)(Location.Left + 10), (int)(Location.Top + 80),60,40) { fontsize = 10f}; Tower = null; Tower = tower; }
private void handleInGameInput(System.Windows.Forms.MouseEventArgs click) { foreach (var z in this.World.UIElements) { if (Helper.Contains(z.button, click.Location)) { if (z.Text == "Pause Game") { this.GameState = Tower_Defense.GameState.InGamePause; //this.Menu = new PauseMenu(); return; } if (z.Text == "Next Wave") { this.World.NextWave(); return; } if (z.Text == "Exit") { GameState = Tower_Defense.GameState.MainMenu; //this.Menu = new MainMenu(); World = null; return; } if (z.Text == "Speed") { if (Helper.GameSpeed == 1) Helper.GameSpeed = 2; else Helper.GameSpeed = 1; return; } } } if (this.World != null) { if (this.World.ShowUpgradeMenu) { if (Helper.Contains(UpgradeMenu.Buttons[0].button, click.Location)) { if (World.Player.Gold > UpgradeMenu.Tower.UpgradeCost) { World.Player.Gold -= UpgradeMenu.Tower.UpgradeCost; UpgradeMenu.Tower.LevelUP(); } this.World.ShowUpgradeMenu = false; return; } else { this.World.ShowUpgradeMenu = false; return; } } foreach (TowerBuildButton o in World.BuildMenu.Buttons) { if (Helper.Contains(o.button, click.Location)) { TowerToBuild = (Tower)Assembly.GetAssembly(o.towerType).CreateInstance(o.towerType.FullName); return; } } if (!Helper.Contains(GameForm.ViewPort, click.Location)) return; foreach (var o in this.World.DrawableObjects) if (Helper.Contains(o.ScreenSprite, click.Location)) { if (o.Type == ObjectType.Tower) { UpgradeMenu.Update((Tower)o); this.World.ShowUpgradeMenu = true; } } foreach (var m in this.World.Map.Map) if (Helper.Contains(m.ScreenSprite, click.Location)) { if (TowerToBuild != null) BuildTower(m); } return; } }
private void towerType(Tower t) { }
private void BuildTower(Level.MapTile m) { if (World.Player.Gold < TowerToBuild.Cost || m.Type != Level.MapTileType.EmptyTile) { TowerToBuild = null; return; } World.Player.Gold -= TowerToBuild.Cost; m.Type = Level.MapTileType.TowerHere; Tower t = TowerToBuild; t.WorldX = m.WorldX; t.WorldY = m.WorldY; World.DrawableObjects.Add(t); TowerToBuild = null; }
private void towerRange(Tower t) { }