
Much of the code and concepts in this mod were moved to CMUtils for various reasons.
So how do they work with ship systems?
Are they completely independent?
Oooh subsystems!
So how do they work with ship systems?
Are they completely independent?
Yep, 100% independent. Transferable across all ships.
Can I use this library to make custom wing AI instead of drone AI?
Are subsystems affected by system expertise?
Do you have an idea of how easy/difficult the framework will be to maintain in future Starsector updates? My one hesitation would be to rig a bunch of stuff to use the framework and then an update would render all of it inoperable for an indeterminable amount of time.
Still, this is very cool and I love how its even separate from ship systems so you could conceivably synergize the dual mechanics for a pretty unique ship.
Speaking of GUI modifications, is there any way to modify the weapon GUI so that it notifies you when all weapons in a given weapon group is able to fire (an OK/READY right beside the weapon group in combat HUD)? Because I have quite some trouble timing cooldowns for weapon with high delays like AM Blaster.
Are drones affected by any skills?
Can I use this library to make custom wing AI instead of drone AI?
Are subsystems affected by system expertise?
Player skills are not currently taken into account, I will add them once the initial proof of concept is rock steady.
Custom wing AI is currently outside the scope of this library, that would be a whole different can of worms to modularise and there would have to be sufficient motivation to do so, unless somebody else wanted to work on it.
Well now, this looks very interesting!
Do you have an idea of how easy/difficult the framework will be to maintain in future Starsector updates? My one hesitation would be to rig a bunch of stuff to use the framework and then an update would render all of it inoperable for an indeterminable amount of time.
Still, this is very cool and I love how its even separate from ship systems so you could conceivably synergize the dual mechanics for a pretty unique ship.
This framework could have existed in a number of previous updates since it is uses combat api functions that have been around for a while, so unless alex decides to revamp the entire combat engine and GUI I don’t see future updates breaking it.
This framework could have existed in a number of previous updates since it is uses combat api functions that have been around for a while, so unless alex decides to revamp the entire combat engine and GUI I don’t see future updates breaking it.
Ah nice good to know! Yeah never say never but I feel that its pretty unlikely that this would be reworked at this point.
Fixed major problem with mod csv merging. A reminder that subsystem instances applied in combat via applySubsystemToShip(ShipAPI Ship, dl_Subsystem subsystem) will need to have .init(ShipAPI ship) and .aiInit() called externally.
v1.0.1
-fixed CSV merging between mods
-updated method documentation
Important update with refinements and fixes.
v1.1.0
-added centralised subsystem hullmod queuing function to dl_SubsystemUtils
-queueSubsystemFromHullmodForShip(ShipAPI ship, Class extends dl_BaseSubsystem> subsystemClass)
-Queues a subsystem for a ShipAPI instance so it will be applied upon entering combat. Allows subsystems to be
cleanly added via hullmod
-fixed subsystem ai scripts running while player control active
-fixed subsystem gui showing with no subsystems installed on player ship
-added useful getter and setter methods to dl_BaseSubsystem
-methods such as setCooldown(float cooldown) apply changes only to the subsystem instance, it does not globally
change the subsystem spec data
-added default hotkey manager, if the ‘hotkey’ field in the csv is left blank it will use a unique default
-custom hotkeys can be defined for subsystem slots 1-6, 6th slot will be copied with more subsystems
-added static getSubsystemsOnShip(ShipAPI ship) method to dl_SubsystemCombatManager
-added overridable methods in dl_BaseSubsystem to prevent subsystem being used while venting and/or overloaded
-changed a couple of method names for clarity – unfortunately will cause crashes with any mods using old method names
-queueSubsystemFromHullmodForShip -> queueSubsystemForShip
-method does not require a hullmod
-getSystemId -> getSubsystemId
-clear up any confusion with regular shipsystems
-may have missed one or two, but nothing has been removed so the successor name should be obvious
-updated/added javadoc comments to several methods