Entity.HardpointTransforms was written only by Unity (EntityInstance.cs), so the simulation's notion of where a gun points was a readback from a renderer that never runs headless -- Combat.cs threw KeyNotFoundException on the first combat tick outside Unity. Deletes the field, its writer, and the readback branch in Behavior.Direction, leaving the item-rotation path (the same convention reaction thrusters use, R6) as the only source of mount direction. Adds FireControl (ServerShared), a static class owning whether a weapon bears on a point: MountDirection (planar, from ItemRotation), ArcFor (the per-hardpoint HardpointData.FiringArc override, falling back to the new GameplaySettings.FiringArc default of 120), and InArc (the planar dot-cone test, R7 -- target height never enters it, and an arc of 360+ passes unconditionally so a turret hardpoint needs no new type, just a number). Combat.cs and TurretController.cs now gate AI fire through InArc instead of the old hardcoded 0.99 dot-product test against a live Unity transform. Settings.cs drops AgentFiringMinDot, which was declared and read by nothing. docs/fire-control-cut.md, Cut 1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
11 lines
240 B
Text
11 lines
240 B
Text
fileFormatVersion: 2
|
|
guid: e84f481f2a2e9fdc572e40e239eacc92
|
|
MonoImporter:
|
|
externalObjects: {}
|
|
serializedVersion: 2
|
|
defaultReferences: []
|
|
executionOrder: 0
|
|
icon: {instanceID: 0}
|
|
userData:
|
|
assetBundleName:
|
|
assetBundleVariant:
|