Commit graph

3,567 commits

Author SHA1 Message Date
Meta Vens
0f2fc859de ConsumableAiTests: the following agent leaves combat before it is set to follow
The agent starts in combat; two zone ticks with nothing sensed return it to patrol, as the patrol test does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 04:03:08 +02:00
Meta Vens
199f1b1b94 ConsumableAiTests: the following agent clears the Ship's VisibleEnemies
The previous commit does not build: VisibleEnemies is on the Ship, not the Agent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 03:51:43 +02:00
Meta Vens
843acb5341 faction-play-1: pin the vent in FollowState, pins to 10%, drop the dead LockAlarm
Combat.cs loses its unused LockAlarm constant. ConsumableAiTests gains a following agent that vents. FlightTests adds
follow-velocity, pull and compliance-entry cases a tenth either side of their thresholds and a hail member that is
nearest only with z halved.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 03:49:37 +02:00
Meta Vens
5a96035563 ConsumableAiTests: the refit waits for the new Minion to reach combat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:13:28 +02:00
Meta Vens
f11ec4f676 ConsumableAiTests: the refit tick count reaches combat from the new Minion's patrol start
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:11:15 +02:00
Meta Vens
6985ece70b ConsumableAiTests: the refitted fixture agent starts on patrol and takes one more tick to reach combat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:56:20 +02:00
Meta Vens
6f31375def Flight: a member's friendly override keeps it from following a flightmate's track; consumable-ai fixture orbit built on the zone
The union picture stays the flight's; the per-member override is read where the member chooses its bearing. A first
version dropped the track from the whole picture and silenced a hostile unaffiliated flightmate (SmokeRoundsStepped
AiFusedDiscipline).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:40:59 +02:00
Meta Vens
b08f7d80ae FlightTests: the friendly-override pin builds in both orders; compile fixes for the s4 pins
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:23:01 +02:00
Meta Vens
2bb08a91ee Flight: a track any member made friendly is out of the picture; pins for the s4 findings
The flight builds the picture, so it is where per-member friendly overrides meet; the track is dropped there. New
pins: a tuned doctrine survives doctrine-catalog apply, the follower's velocity match and pull at scale, compliance on
a diagonal, the hail speaker and engaged pick off-axis. Not built or run yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:21:43 +02:00
Meta Vens
0e40a66592 Vent on a Track paint in every agent state: Agent.Update owns the vent, CombatState keeps the overdrive
Ruling vent-in-any-state. The vent decision (own Track paint above .5, one of a kind through TryActivateConsumable)
moves out of CombatState into Agent.Update, which every state runs; CombatState's overdrive asks Agent.TrackAlarm so a
venting tick still does not overdrive. ConsumableAiTests: AVentDoesNotNeedAnyEnemyInSight is master's premise again
(empty VisibleEnemies), a patrolling agent has its own test, and the fixture zone has one orbit so an unengaged pilot
patrols it. Not built or run yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 00:21:40 +02:00
Meta Vens
d135c77e0e Merge origin/master into faction-play-1 2026-10-17 00:13:54 +02:00
Meta Vens
9315a0019d FireControlPerWeaponTests: the turret threshold is pinned half a hundredth either side of the price
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:57:44 +02:00
Meta Vens
afc570affd ConsumableAiTests: the refitted agent senses the prey again
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:52:29 +02:00
Meta Vens
0f8bb6d9da Release map: map presenter (owner audit, 2D icons, instanced belts, the asteroid setting's cost)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:48:18 +02:00
Meta Vens
ff34648371 ConsumableAiTests: the refit re-admits the agent as a pilot (Zone.Remove drops the agent on this branch)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:42:46 +02:00
Meta Vens
1519aa8f44 Tests: consumable-ai fixtures let the flight target the prey (the flight is the only Target writer); standoff range, presence and wire-slot test fixes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:24:33 +02:00
Meta Vens
b5c4fd0b8e Release map: PL7-PL9 product choice in loadouts (pins, ChooseProduct owner, key order retired)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:08:19 +02:00
Meta Vens
7518c0f3e8 DoctrineCatalog: fix the nothing-to-author line (previous commit does not build)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:07:49 +02:00
Meta Vens
c30764e33e faction-play-1 fixes: doctrine-catalog apply writes nothing on rerun; tests pin the unseen rule off-origin, the hail speaker in every build order, wire slot 17, exact-name match, scaled standoff, compliance axes, threshold boundaries, follow velocity
Does not build-verified yet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:05:02 +02:00
Meta Vens
2ff48d0b45 Merge origin/master (da6fe033) into faction-play-1
Combat.cs: master's lazy optimum-range owner kept, the OptimumRange accessor beside it. FireControlPerWeaponTests: the exponent test runs the first Update before reading the optimum (master derives it there).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 22:01:56 +02:00
Meta Vens
807533d26b FlightTests: the combat-exit test removes every listing of the engaged track
The grudge lists the track in VisibleEnemies a second time (the hostility refresh adds it again), so a single Remove left it visible.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:58:26 +02:00
Meta Vens
c387b137d1 FlightTests: combat exit diagnostics
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:56:05 +02:00
Meta Vens
45ab0b9f23 Aetheria.cc: master's catalog with doctrine-catalog and verse-grammar re-applied
doctrine-catalog apply wrote four doctrines (Pirates included); verse-grammar apply added the follow verb (follow-up catalog-blob-merge-order).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:55:22 +02:00
Meta Vens
4fc225b1d5 VerseGrammarTests: the shipped catalog holds eight starter verbs; combat exit asserts the Target cleared
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:54:47 +02:00
Meta Vens
da6fe0334e Merge origin/master into suns-never-green + consumable-ai merge (docs only)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:53:39 +02:00
Meta Vens
c1c8d8d7de Gravity map: B52-B54 multi-root zone node, belt extent, series threshold 0.4; rationale for well-law r3
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:48:59 +02:00
Meta Vens
e5d35352ee Merge consumable-ai r3 (cut consumable-ai; verdicts s2, s3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:36:18 +02:00
Meta Vens
2d96c3241f Merge suns-never-green (cut suns-never-green; verdicts s1, s2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:36:15 +02:00
Meta Vens
04516c72cf Faction play 1: s1/s2 fix batch (Engaged-first anchor, doctrine pins, follow verb)
Flight anchors a blind member on an Engaged track before a nearer Hailing one and keeps its anchor only while nothing outranks it. Doctrine.cs states the trespass rule as the zone owner's permission. DoctrineCatalog matches the faction by exact name and its comment names the landed Pirates record. VerseGrammarCommand gains the follow verb. Tests pin default and authored standoff, Grace against ComplySpeed, nearest hail, the Identified boundary, off-origin direction and anchor choice and switch, the unseen-member rule across geometry, combat from follow, the doctrine-catalog dry run and the turret's global hit threshold.

Not yet run: this commit's tests have not been built.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:31:41 +02:00
Meta Vens
86c3a94880 Merge origin/master into faction-play-1
Conflicts: GameData/Aetheria.cc takes master's blob (doctrine-catalog and verse-grammar re-applied in a later commit, follow-up catalog-blob-merge-order); IffAndCombatTests NewShip admits through zone.Admit(ship, piloted); Program.cs keeps master's cases plus doctrine-catalog; FireControlPerWeaponTests keeps master's asserts with the branch's Minion constructor. Master-only compile sites adapted: Minion(ship, doctrine) in FireControlPerWeaponTests, LayoutAimTests, ScannerTests; AgentFires threshold in SolutionTests; Zone.Remove and VerseGrammar in FlightTests.

Not verified to build until the verify run at the end of the pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:18:54 +02:00
Meta Vens
df154ffbdd Gravity map: B50 pockets probe (drawn extent and basin share, C0/C1/C4), B51 binary period shear and C4 merge counts; rosette-equilibria line
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:52:30 +02:00
Meta Vens
1e9a89e401 CombatState: drop the StatsKnown gate; a stale optimum is re-derived at the next agent Update
Agents update before the entities, so a weapon that came online this tick has evaluated by the next Update;
the Weapon.StatsKnown flag and the gate on it were dead machinery and are removed. The add handler no longer
marks stale itself (a new item's Online subscription does). The refit test fits and removes a dominating gun.

Not yet verified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:28:29 +02:00
Meta Vens
4930ecd06a Suns: secondary hue stays on the allowed arc with the primary; ramp never crosses the band
The secondary is placed along the allowed arc (reflected at its ends, distance capped at half
the arc) so the RGB blend between the two stops stays outside the band for any Settings band.
Tests sample the production ramp and pin draw uniformity.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:14:15 +02:00
Meta Vens
7e92c7da93 ConsumableAiTests: refit the gun the way a docked ship does
Not yet verified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:08:59 +02:00
Meta Vens
99333cf1a2 ConsumableAiTests: the admitted agent has no patrol task (the test zone has no orbits)
Not yet verified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:04:58 +02:00
Meta Vens
bf32a82e32 CombatState derives its optimum range once the weapons' stats are known, and re-derives on loadout change
A zone-spawned ship's CombatState sampled in its constructor, before any weapon had evaluated its stats,
so the optimum range read 0 and never moved. It now marks the optimum stale on construction, on any
equipment add/remove and on a weapon's online change, and samples at the next Update once every active
weapon reports StatsKnown. ConsumableAiTests build the agent through Zone.Admit(piloted: true) and read
the optimum without re-sampling; new rows pin the hold scope, hull-heading source, mixed paints, sight
independence and the optimum across two guns and a refit.

Not yet verified.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:03:50 +02:00
Meta Vens
3eb9d4df6c Merge stardust-before-fog: Stardust draws before nebula composite (closes aetheria-gravity verdicts cut-stardust-before-fog.s1 and .s2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:01:40 +02:00
Meta Vens
df0f51be5f Merge audio-1: simulation names no sound; dead Wwise path deleted (closes aetheria-release:verdict:cut-audio-1.s1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 19:01:36 +02:00
Meta Vens
3fc59887d5 Scene verifier measures dust at partial fog and reads Stardust's own event
The under-fog check lays a floor under the dust so the march has a finite ray (pixels with no depth are fogged whole), disables the zone noise, and uses a dim uniform fill: the correct event dims the dust to 0.58 of fog-free, and dust drawn after the composite reads 0.99. The check also fails when the dust is erased (below 0.1) or missing with the fog off. The attach check reads Stardust.DrawEvent by reflection and requires no Stardust buffer at any other CameraEvent.

Builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:48:11 +02:00
Meta Vens
cee8cd6e40 Release map: ship-render-fixes r3 (removing a broken mod), run-seed / mining-yield / product-tiers lines; mining refresh: overflow floats
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:40:32 +02:00
Meta Vens
ebce853aba Stardust draws at BeforeImageEffectsOpaque, before the nebula composite; scene verifier proves dust under fog is attenuated
The nebula is an [ImageEffectOpaque] OnRenderImage; a command buffer at BeforeForwardAlpha runs after its composite, so the
dust landed on top of the fog (B49). BeforeImageEffectsOpaque runs before it on the deferred camera. FlowFieldSceneVerify
now requires one Stardust buffer at the new event and none at BeforeForwardAlpha, and scene-stardust-under-fog compares the
dust's contribution with the cloud renderer off and on in an HDR target, with a fog control.

All commits build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 18:11:04 +02:00
Meta Vens
a8586d083f Gravity map: B49 stardust order against the opaque fog pass (camera-event probe on the ARPG camera)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:55:56 +02:00
Meta Vens
86d833b0f6 Release map: audio-1 split (audio-present), products order and PL1-PL6, faction pair at 6b6e7c7c; stale "blocked" lines corrected
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:49:11 +02:00
Meta Vens
5b1bfe6cec ColorMath.RgbToHcv: read green-dominant colours with the right channel order
The else branch swapped y and z, so the hue read back from many colours was
wrong (values above 1). Nothing else consumed it; the sun-hue test reads hues
back from RGB. Builds; first run of SunsNeverGreenTests failed on this.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:38:37 +02:00
Meta Vens
2f1f392ecf ConsumableAiTests: stock the hold after the optimum is sampled 2026-10-16 17:30:32 +02:00
Meta Vens
9b1ac48027 ConsumableAiTests: assert the fixture carries what it stored 2026-10-16 17:29:20 +02:00
Meta Vens
f39ce7850e ConsumableAiTests: alias the CultMath vector types the static math import shadows 2026-10-16 17:26:14 +02:00
Meta Vens
c5c9086ece Fauna map: trophic gaps mapped to CultLib cuts; fauna-trophic-habitat waits on expr-trophic-ops
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:23:37 +02:00
Meta Vens
fcf1b46880 AI pilots vent on a Track paint past half and overdrive to close (consumable-ai r3)
Re-land on master of the h1 cut with the s1 fixes: the vent rule reads one Track
paint in the ship's own IncomingPaints, TryActivateConsumable refuses on an
inactive ship, the AI holds while a consumable of the kind is active, and the
top of the lock strength range is pinned. Not yet built or run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:22:51 +02:00
Meta Vens
0f26c4bb35 Suns never take a green hue: draw sun hues from the circle minus a Settings band
Primary hue maps through ColorMath.HueOutsideBand; the secondary takes the
out-of-band side; fog tint and light derive from primary. Band edges are
SunHueExcludedStart/End (75 and 165 degrees by default).

Not yet verified on Yggdrasil at this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 17:20:52 +02:00