private void TowerHotkeyHandler() { int goToTowerNumber = 0; Utility.TowerType type = Utility.TowerType.FlameThrower; // Check what number if (input.KeyPressed(Keys.Q) || input.KeyPressed(Keys.A) || input.KeyPressed(Keys.Z)) { goToTowerNumber = 1; } else if (input.KeyPressed(Keys.W) || input.KeyPressed(Keys.S) || input.KeyPressed(Keys.X)) { goToTowerNumber = 2; } else if (input.KeyPressed(Keys.E) || input.KeyPressed(Keys.D) || input.KeyPressed(Keys.C)) { goToTowerNumber = 3; } else if (input.KeyPressed(Keys.R) || input.KeyPressed(Keys.F) || input.KeyPressed(Keys.V)) { goToTowerNumber = 4; } else if (input.KeyPressed(Keys.T) || input.KeyPressed(Keys.G) || input.KeyPressed(Keys.B)) { goToTowerNumber = 5; } else if (input.KeyPressed(Keys.Y) || input.KeyPressed(Keys.H) || input.KeyPressed(Keys.N)) { goToTowerNumber = 6; } // Check type if (input.KeyPressed(Keys.Q) || input.KeyPressed(Keys.W) || input.KeyPressed(Keys.E) || input.KeyPressed(Keys.R) || input.KeyPressed(Keys.T) || input.KeyPressed(Keys.Y)) { type = Utility.TowerType.FlameThrower; } else if (input.KeyPressed(Keys.A) || input.KeyPressed(Keys.S) || input.KeyPressed(Keys.D) || input.KeyPressed(Keys.F) || input.KeyPressed(Keys.G) || input.KeyPressed(Keys.H)) { type = Utility.TowerType.Shotgun; } else if (input.KeyPressed(Keys.Z) || input.KeyPressed(Keys.X) || input.KeyPressed(Keys.C) || input.KeyPressed(Keys.V) || input.KeyPressed(Keys.B) || input.KeyPressed(Keys.N)) { type = Utility.TowerType.Sniper; } if (Utility.TowerList.Count >= goToTowerNumber && goToTowerNumber != 0 && IsWithinDimensions()) { foreach (Tower t in Utility.TowerList) { if (t.HotkeyNumber == goToTowerNumber && IsValidTileForTower(input.MouseToGameGrid().X, input.MouseToGameGrid().Y)) { selectedTower = null; previewTower = null; AddTower(input.MouseToGameGrid().X, input.MouseToGameGrid().Y, type, t.HotkeyNumber); Utility.TowerList.Remove(t); break; } } } }
private void AddTower(int x, int y, Utility.TowerType type, int HotKeyNumber) { Tower tower = null; switch (type) { case Utility.TowerType.FlameThrower: tower = new FlameThrower(x, y, HotKeyNumber); break; case Utility.TowerType.Sniper: tower = new Sniper(x, y, HotKeyNumber); break; case Utility.TowerType.Shotgun: tower = new Shotgun(x, y, HotKeyNumber); break; default: throw new ArgumentException("invalid tower type: " + type); } Utility.TowerList.Add(tower); }