Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -20,11 +20,11 @@ Old `stingerChanceOneIn` settings migrate to the nearest integer percentage; 15
|
||||
|
||||
## Magnified optics
|
||||
|
||||
`ERR_EnemyOptics` belongs to each existing equipment entry's exact actor/group and uses the same three-second startup cadence independently of Stinger completion. Its first eligible physical weapon roster is retained, with at most eight weapons; later replacement rifles are never equipped. Rifle, sniper-rifle and machine-gun types qualify. Existing magnified optics are detected through the three native optics components on weapon children, attached sights and attachment slots. Inspection is bounded to 128 visited entities, four child levels and 16 attachment/storage slots; incomplete inspection refuses a grant. Occupied mounts remain occupied, including nonmagnified sights.
|
||||
`ERR_EnemyOptics` belongs to each existing equipment entry's exact actor/group and uses the same three-second startup cadence independently of Stinger completion. Its first eligible physical weapon roster is retained, with at most eight weapons. The automatic equipment grant explicitly registers its exact newly confirmed weapon, even after the original optics jobs finish; ordinary later pickups and replacement rifles are never enrolled. Duplicate registrations retain the original job and cannot replenish a removed optic. Rifle, sniper-rifle and machine-gun types qualify. Existing magnified optics are detected through the three native optics components on weapon children, attached sights and attachment slots. Inspection is bounded to 128 visited entities, four child levels and 16 attachment/storage slots; incomplete inspection refuses a grant. Occupied mounts remain occupied, including nonmagnified sights.
|
||||
|
||||
The seven original candidate path/GUID pairs were independently checked against installed resource databases: vanilla PSO-1, ART II and 4x20; RHS PSO-1M2, 1P21, M8541 and 1P78. Their exact catalog entries belong in `vanilla-resources.json` and `external-addons.json`; no new dependency or external asset bytes are introduced. Candidates are drawn without replacement, and native `CanInsertResourceInStorage` must accept the same concrete free slot passed to `TrySpawnPrefabToStorage`. This does not override mounting compatibility or guarantee that every rifle accepts a scope.
|
||||
|
||||
At most one native submission per original rifle per check is allowed. Explicit failure permits another candidate/slot before the fifth check; that final check only observes. An accepted unknown operation is never repeated, including after its deadline or Stop. A successful callback is terminal even if the optic is removed before physical observation. Ownership loss terminates processing, and Stop retains callback/tombstone state; the native API cannot cancel an insertion already accepted. No loose optics, replenishment, new actors or independent timer is added.
|
||||
At most one native submission per registered rifle per check is allowed. Each explicitly issued weapon has its own five-check attempt window; the initial roster retains its original startup deadline. Explicit failure permits another candidate/slot before the fifth check; that final check only observes. An accepted unknown operation is never repeated, including after its deadline or Stop. A successful callback is terminal even if the optic is removed before physical observation. Ownership loss terminates processing, and Stop retains callback/tombstone state; the native API cannot cancel an insertion already accepted. No loose optics, replenishment, new actors or independent timer is added.
|
||||
|
||||
`tests/test_enemy_optics.py` executes the actual service with native API doubles: all three scope component kinds, nested adapters, occupied/compatible mounts, original-rifle transfer, actor ownership loss, success/failure ordering, accepted-operation quarantine, late callbacks, bounded checks and malformed hierarchy limits. `tests/test_enemy_equipment.py` additionally verifies real entry Stop propagation, exact actor/group binding, optics cadence after Stinger completion, unregistration and ownership-loss teardown. These are policy proofs. Native compilation and physical attachment validation are pending for this optics change; they do not follow from earlier Stinger or convoy evidence.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user