Gimi wrote:Navy Sidewinder:
Beam or Military laser
4 hard head missiles.
Military shielding
Extra energy unit
and so on....
That - especially with the Military laser - has firepower and shields superior to a standard Thargoid warship compressed into something the approximate size of two of the warship's drone fighters. You'd have to make the Thargoids significantly more powerful than they are in core to keep them a threat that required such a navy to handle.
Gimi wrote:It's pretty easy to write the rules in plain language, but I imagine implementing them is pretty hard.
The discussions regarding AI in this thread were one of the main motivations for developing the new 1.79 AI model.
Very roughly, the CSP could be done as:
Code: Select all
this.aiStarted = function() {
var ai = new worldScripts["oolite-libPriorityAI"].PriorityAIController(this.ship);
ai.setCommunicationsRole("himsn-csp"); // lets them have their own comms chatter
ai.setWaypointGenerator(
this.waypointsHomeBasePatrol // non-standard
);
ai.setPriorities([
{
condition: ai.conditionLosingCombat,
behaviour: ai.behaviourFleeCombat,
reconsider: 5
},
{
condition: ai.conditionInCombat,
configuration: ai.configurationAcquireCombatTarget,
behaviour: ai.behaviourDestroyCurrentTarget,
reconsider: 5
},
{
preconfiguration: ai.configurationCheckScanner,
condition: this.conditionScannerContainsAttackerOfGuardedShip, // non-standard
configuration: ai.configurationAcquireScannedTarget,
behaviour: ai.behaviourDestroyCurrentTarget,
reconsider: 5
},
{
condition: this.conditionScannerContainsHostileIntruder, // non-standard
configuration: ai.configurationAcquireScannedTarget,
behaviour: ai.behaviourDestroyCurrentTarget,
reconsider: 10
},
{
condition: this.conditionScannerContainsFriendlyIntruder, // non-standard
truebranch: [
{
condition: this.conditionPatrolIsGuardingScannedTarget, // non-standard
configuration: ai.configurationAcquireScannedTarget,
behaviour: ai.behaviourGuardTarget,
reconsider: 10
},
{
condition: this.conditionPatrolShouldBeGuardingScannedTarget, // non-standard
configuration: this.configurationStartGuardingScannedTarget, // non-standard
behaviour: ai.behaviourGuardTarget,
reconsider: 10
}
]
},
{
condition: this.conditionHomeBaseIntact, // non-standard
truebranch: [
{
condition: ai.conditionHasWaypoint,
configuration: ai.configurationSetDestinationToWaypoint,
behaviour: ai.behaviourApproachDestination,
reconsider: 30
},
{
condition: ai.conditionPatrolIsOver,
truebranch: [
{
condition: ai.conditionHasSelectedStation,
truebranch: [
{
condition: ai.conditionSelectedStationNearby,
configuration: ai.configurationSetSelectedStationForDocking,
behaviour: ai.behaviourDockWithStation,
reconsider: 30
},
{
configuration: ai.configurationSetDestinationToSelectedStation,
behaviour: ai.behaviourApproachDestination,
reconsider: 30
}
]
falsebranch: [
{
configuration: this.configurationSelectHomeBaseAsSelectedStation, // non-standard
behaviour: ai.behaviourReconsider
}
]
}
]
},
/* No patrol route set up. Make one */
{
configuration: ai.configurationSetWaypoint,
behaviour: ai.behaviourApproachDestination,
reconsider: 30
}
],
},
{
condition: ai.conditionFriendlyStationExists,
truebranch: ai.templateReturnToBase(),
falsebranch: ai.templateWitchspaceJumpAnywhere()
}
]
A number of non-standard AI extensions would also need to be written, mostly quite short ones. I've noted where they're needed, and this could obviously be extended for more complex behaviours from the CSP. (If you want them in groups of two, probably easiest is to have one lead, and one escort with a slightly modified escort AI)
Set the naval station's allegiance to "restricted" and all ships except those specifically written to go there will not go near it, which might make things easier.
Pleb wrote:And 7 or 8 Regional HQ's, one per galactic sector (galaxy), and again not sure where those should go.
The core missions suggest Xeer (G1) and Birera (G3) as two of them.