Actually, I liked your code a lot. Polished and well organized.
----------------
The only thing I would change is the way loadOutTimer works to allow different load times for different weapons/torpedoes/mines.
Now it is decreasing 3 turns and load when 0. I would change it to 1 and when 0 await loading... If 0 check the returning weapon before loading:
"110_classes_core.rpy", line 2354, code
GAME.ship.equipAddOn("launcher", torp.ID, i)
then depending on the returning weapon you set the turn number to reload
e.g now if mines, +1 turn if low end torpedo, +2 turn if hi-end torpedo and so on...
and then you issue the load command and reset the loadOutTimer to 1
---------------
about torpedos: Since I did not see an ""AOE": 1" in those (205_init_items.rpy) I guessed they should not have AOEeffect, although it seemed strange for "ITMArmageddonCore". By the way "ITMEMPPod" and "ITMAttractor" existed in previous versions and were removed, will be added later or is forgotten code?
Some other things that did not ask/report earlier, since I did not know if they are bugs or intetionally desinged that way:
- "ITMTorpedoVoronMkII" and "ITMTorpedoHellcore" have both C_ENE*40. "ITMTorpedoVoronMkII" shouldn't have C_ENE*39 ?
- "ITMTorpedoVoronMkII" cannot be bought anywhere. Is it a Zealots exclusive weapon?
- when going into stealth/cloak the loadOutTimer does not change (bug?)
- when launching mines "ITMMineCluster" around the ship both the timer and the loadOutTimer do not change (bug?)
- "ITMOreGalaxite" shouldn't be priced higher since is the most rare mineral? ???
- torpedoes line effect. Instead of instant display it would be visually better to change it to particle effects as you have done with the exploding circle. particle gradually increasing when closing in to target and after it hits, gradually fading starting from the launching ship.