While I can't find this through the search bar on the forums I am almost positive this has been suggested before, but let me go into detail of the implementation, just to explain how ridiculous the fact that this hasn't happened yet.
My suggestion is to add the ability to connect all utility computers to computers of the same type(weapon computers to other weapon computers, missile computers to other missile computers, salvage computers to other salvage computers, you get the picture) in order to de-clutter the hotkey bar, (1,2,3...,0) and make successive strikes from different computers less annoying.
Here is what would happen, by connecting a weapon computer to two plus other weapon computers with AA cannons connected to those computers, by simply pressing the fire button with your "master" weapon computer selected, you would first fire the first connected weapons computer, then the next, and then the next one after that, then the first one again (meaning firing from "sets" of individually controlled weapon computer AA cannon groups would not take more than one hotkey)
Now here is how it would be implemented, I'm guessing there is some data structure (like an array or something more efficient) that holds on to an entire cannon group, for example, individual cannons being fired from the same weapon computer (if they aren't connected they act like their own cannons), and I also assume the way Schema handles firing is by calling fire on each of these cannons, but for all I know he could make it one giant "multi-cannon" object (though I doubt it since missiles have greatly varying reload times) This doesn't matter, as long as there something encapsulating weapon groups.
Now that we've established there is a "thing" that represents a weapon group we can think of how making successive weapon groups being called would work. There is a few ways this could work
First we could use a simple array structure in order to make a looped queue of weapon groups, in layman terms this would mean each weapon group would be put into a line of sorts (like a food line), but one that once the first "group" is served they return to the end of the line to get "served" again.
In coding terms specifically I am suggesting that each utility computer has an arraylist which has one "weapon group" for its own weapons connected to it in the first position, and in the consecutive positions the next weapon computer attached, while also having a integer "turn" that represents the current index to be used when the player clicks their LMB, that gets updated every time the utility computer is used to "fire" or "salvage" like so "turn =( turn + 1) mod arraylist.size()". In this way, when "fire weapon" is called the first computer added is told to "fire weapon" in the array list, and when it is called again the next utility computer is told to "fire weapon" because "turn" has been updated. In this way references do not even have to be moved around, and the only thing extra that gets calculated real time is the turn variable.
This is also modular, so you could have one utility computer attached to another utility computer which also has its own subset of computers, and if an entire sub weapons system was destroyed, it simply wouldn't fire, meaning that the click was useless and you just need to click again to get to the next (though you could make a smarter system that moves around the dead computers to the end of the arraylist and adds an offset to arraylist size like "arraylist.size() - n" so that turn never reaches the dead utility computers once a utility computer was destroyed, however this could lead to possible performance issues and is not really necessary).
This would work even better if we only had one type of utility computer instead of it being split off into several different types, though it would work just as well to just have one utility computer for all weapons.
My suggestion is to add the ability to connect all utility computers to computers of the same type(weapon computers to other weapon computers, missile computers to other missile computers, salvage computers to other salvage computers, you get the picture) in order to de-clutter the hotkey bar, (1,2,3...,0) and make successive strikes from different computers less annoying.
Here is what would happen, by connecting a weapon computer to two plus other weapon computers with AA cannons connected to those computers, by simply pressing the fire button with your "master" weapon computer selected, you would first fire the first connected weapons computer, then the next, and then the next one after that, then the first one again (meaning firing from "sets" of individually controlled weapon computer AA cannon groups would not take more than one hotkey)
Now here is how it would be implemented, I'm guessing there is some data structure (like an array or something more efficient) that holds on to an entire cannon group, for example, individual cannons being fired from the same weapon computer (if they aren't connected they act like their own cannons), and I also assume the way Schema handles firing is by calling fire on each of these cannons, but for all I know he could make it one giant "multi-cannon" object (though I doubt it since missiles have greatly varying reload times) This doesn't matter, as long as there something encapsulating weapon groups.
Now that we've established there is a "thing" that represents a weapon group we can think of how making successive weapon groups being called would work. There is a few ways this could work
First we could use a simple array structure in order to make a looped queue of weapon groups, in layman terms this would mean each weapon group would be put into a line of sorts (like a food line), but one that once the first "group" is served they return to the end of the line to get "served" again.
In coding terms specifically I am suggesting that each utility computer has an arraylist which has one "weapon group" for its own weapons connected to it in the first position, and in the consecutive positions the next weapon computer attached, while also having a integer "turn" that represents the current index to be used when the player clicks their LMB, that gets updated every time the utility computer is used to "fire" or "salvage" like so "turn =( turn + 1) mod arraylist.size()". In this way, when "fire weapon" is called the first computer added is told to "fire weapon" in the array list, and when it is called again the next utility computer is told to "fire weapon" because "turn" has been updated. In this way references do not even have to be moved around, and the only thing extra that gets calculated real time is the turn variable.
This is also modular, so you could have one utility computer attached to another utility computer which also has its own subset of computers, and if an entire sub weapons system was destroyed, it simply wouldn't fire, meaning that the click was useless and you just need to click again to get to the next (though you could make a smarter system that moves around the dead computers to the end of the arraylist and adds an offset to arraylist size like "arraylist.size() - n" so that turn never reaches the dead utility computers once a utility computer was destroyed, however this could lead to possible performance issues and is not really necessary).
This would work even better if we only had one type of utility computer instead of it being split off into several different types, though it would work just as well to just have one utility computer for all weapons.