Milo wrote: ↑Sun Jun 21, 2020 8:15 pm
21/06/2020 - Version 3.02, updated by Milo; doubled price variance for larger ships and applied proportional adjustment to repair costs (they were still using the baseline price); improved compatibility with ShipVersion OXP by not offering IronHide for purchase on ships that ShipVersion does not allow to use it (when ShipVersion OXP is detected, civilian IronHide is only for ships with mass 30t or higher and military IronHide is only for ships with mass 130t or higher).
Since I discovered HyperSpaceHangar and EscortDeck I started to collect non-player ships that I recovered as usable derelicts.... in that collection I have now a GalCop Viper (the code for NPC vs NPC must be different than NPC vs player, because all GalCop Vipers I turned into derelicts exploded - self-destruct? - around half a minute latter), a Navy Viper, an Armoured Transport Viper, a GalTech Escort Fighter, a Manta Ray. The Vipers I found as derelicts, the others I fought and turned into derelicts.
Having them in my HyperSpaceHangar available as escorts made it easy to see their core-game-calculated mass (calculated based on the volume of their models, I think).
The Vipers are clearly military vessels, the others might be used in military/police applications. The GalCop Viper masses 34t, the Navy Viper 47.3t, the Armoured Transport Viper 27.6t, the GalTech Escort Fighter 13.2t and the Manta Ray 4.7t (with 6t cargo space, go figure...
).
I don't think the rules embedded in ShipVersion are consistent with the in-universe story: there is a war going on, pushing ship/weapons/shields/armour development, the military ships would have some grade of armour if at all possible, but by the rules in ShipVersion, the only one of those military vessels that could have IronHide is the Navy Viper, and not the military version, just the civilian one.
Obviously I don't think the armour in a 10t ship would be able to absorb as much damage as the armour in a 100t ship, but they all should have something... and the military version should be able to absorb more damage per armour mass than the civilian version.
If the ship's surface area could be obtained we could give armour an arbitrary density (could be different in civilian and military versions), limit the total armour mass to a % of the ship's mass, get the maximum armour thickness (for an uniform armour "coating"), make the amount of damage it can absorb proportional to its thickness, with different constants for civilian and military versions (military more efficient for the same thickness) and offer armour for all ships - though for the small ones the amount of protection the civilian version would offer might not be worth it, but the military version might.
It shouldn't create a performance problem... those calculations would have to be done at installation time to get the maximum amount of damage that can be absorbed by that ship armour, then the shipTakingDamage event handler only have to accumulate the absorbed damage and check against the stored maximum.
Even if the ship's surface can't be obtained, the maximum amount of damage absorbed could be proportional to the ship's mass (perhaps with a non-linear function, so if you halve the mass you get less than half the maximum damage absorbed), with the military version absorbing more damage for the same mass.