public void ActivateRandom(APIActivator activator = APIActivator.XANA) { List <Tower> randomTowers = Program.ShuffleList(Towers.Cast <Tower>().ToList()); Boolean found = false; foreach (Tower tower in randomTowers) { if (!found && !tower.Activated) { tower.Activate(activator); found = true; } } if (!found) { throw new NoFreeTowersException(this); } }