Aetheria/Assets/Scripts/ServerShared/Behaviors
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens b7743789c8 Fire control Cut 3: hit authority moves to FireControl
Deletes the Unity physics hit path (HullCollider.Hit/Splash, and the
raycast/shield/SendHit blocks in Projectile, GuidedProjectile, Laser and
Lightning) and replaces it with a single owner in the same cut: FireControl
now decides whether a shot hits, Zone owns the pending-shot lifecycle, and
Entity.DamageSchematic/ApplyHit (moved verbatim from EntityInstance) apply the
result. Presentation subscribes to Zone.ShotCommitted/ShotResolved and applies
nothing.

FireControl.HitProbability is the pure targeting solution (Accuracy * pSensor
* pSpread, gated by detection/range/lock/arc). FireControl.Fire freezes the
weapon's payload and the shooter's resolved targeting stats at the instant the
trigger is pulled (Q6), computes the predicted intercept through the one
shared PredictedIntercept function (CombatState now calls the same function
instead of duplicating first_order_intercept), and queues a PendingShot.
FireControl.Step commits each shot's outcome at ArrivalTime - CommitHorizon --
deviation from the predicted intercept, measured once, live, at that instant
-- and applies it at ArrivalTime. A shot whose flight is shorter than the
horizon commits and resolves in the same tick it fires. Rolls draw from the
shooter's own ItemManager.Random (Q5, seeded and reproducible); an out-of-arc
or otherwise gated shot draws nothing.

Player fire is arc-gated through the same predicate AI and turret fire use
(Weapon.ArcAllowsFire, checked in InstantWeapon.Trigger -- the one point every
shooter's trigger passes through), closing Q2.

Adds GameplaySettings.CommitHorizon, SchematicCellSize and
AgentMinHitProbability (first guesses; the headless suite is the tuning
harness, operator play smoke is the arbiter).

FORK reported, not worked around silently: HullCollider.SendHit/SendSplash
cannot be deleted yet without breaking ConstantLaser.cs, ConstantLightning.cs,
ConstantParticleWeapon.cs, HitscanEffect.cs and Mine.cs, which still call them
from their own live Physics queries -- that's Cut 4's migration. They fire
into the void today: nothing subscribes to Hit/Splash any more for the four
weapon kinds this cut owns.

tests/Aetheria.Shared.Tests/FireAuthorityTests.cs pins the roll's seeding, the
gate-consumes-no-draw rule, resolve-on-arrival, the commit horizon and its
evasion window, short-flight degradation, the frozen-payload snapshot, aimed
hits, the item-then-hull damage order, the planar penetration march and the
shield-absorbs branch. FireControlTests.cs and InputCapacitorTests.cs are
updated for the new AI gate and OnFire(int) signature.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 14:07:07 +02:00
..
AetherDrive.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
AetherDrive.cs.meta Aetheric Drive 2021-04-14 03:29:14 +01:00
AutoWeapon.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
AutoWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
Behaviors.cs Add targeting subsystem, reveal rule and selection slot (fire control Cut 2) 2026-09-19 13:02:20 +02:00
Behaviors.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Capacitor.cs Cut 3: PowerBus replaces TryConsumeEnergy/CanConsumeEnergy 2026-09-18 21:39:38 +02:00
Capacitor.cs.meta Energy & Heat 2020-12-27 22:18:22 +00:00
ChargedWeapon.cs Cut 4: input capacitors close the last direct capacitor spend 2026-09-18 22:52:15 +02:00
ChargedWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
Cockpit.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Cockpit.cs.meta Energy & Heat 2020-12-27 22:18:22 +00:00
ConstantWeapon.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
ConstantWeapon.cs.meta GUNS GUNS GUNS 2021-01-05 02:56:17 +00:00
Cooldown.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Cooldown.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
EnergyDraw.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
EnergyDraw.cs.meta Mega Placement 2020-05-21 01:53:06 +01:00
Heat.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Heat.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
HeatStorage.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
HeatStorage.cs.meta Wormholes 2021-03-05 14:31:18 +00:00
InputCapacitor.cs Cut 4: input capacitors close the last direct capacitor spend 2026-09-18 22:52:15 +02:00
InputCapacitor.cs.meta Cut 4: input capacitors close the last direct capacitor spend 2026-09-18 22:52:15 +02:00
InstantWeapon.cs Fire control Cut 3: hit authority moves to FireControl 2026-09-19 14:07:07 +02:00
InstantWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
ItemUsage.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ItemUsage.cs.meta Behavior Canceling & Grouping 2020-05-11 01:17:10 +01:00
Launcher.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Launcher.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
LockWeapon.cs Fire control Cut 3: hit authority moves to FireControl 2026-09-19 14:07:07 +02:00
LockWeapon.cs.meta Weapon Scripting Overhaul 2021-01-25 05:53:36 +00:00
MiningTool.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
MiningTool.cs.meta Mining 2020-05-28 04:50:40 +01:00
Radiator.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Radiator.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Reactor.cs Cut 5: priority tiers replace PowerBus's single shared GrantRatio 2026-09-19 02:58:38 +02:00
Reactor.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Reflector.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
Reflector.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
ResourceScanner.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
ResourceScanner.cs.meta Mega Placement 2020-05-21 01:53:06 +01:00
Sensor.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Sensor.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Shield.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Shield.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
StatModifier.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
StatModifier.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
Switch.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Switch.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
TargetingSystem.cs Add targeting subsystem, reveal rule and selection slot (fire control Cut 2) 2026-09-19 13:02:20 +02:00
TargetingSystem.cs.meta Add targeting subsystem, reveal rule and selection slot (fire control Cut 2) 2026-09-19 13:02:20 +02:00
Thermotoggle.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Thermotoggle.cs.meta Entity Properties & Thermal Regulation 2020-05-26 01:12:06 +01:00
Thruster.cs Resolve request/brownout conflict: evaluate power requests nominally 2026-09-19 06:58:57 +02:00
Thruster.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Trigger.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Trigger.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
TurretController.cs Fire control Cut 3: hit authority moves to FireControl 2026-09-19 14:07:07 +02:00
TurretController.cs.meta Murder Satellites 2021-01-06 14:56:39 +00:00
VelocityConversion.cs Delete AetheriaMath in favour of CultMath 2026-09-14 18:02:41 +02:00
VelocityConversion.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
VelocityLimit.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
VelocityLimit.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Visibility.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Visibility.cs.meta Massive Item Behavior Refactoring 2020-05-12 01:42:13 +01:00
Weapon.cs Fire control Cut 3: hit authority moves to FireControl 2026-09-19 14:07:07 +02:00
Weapon.cs.meta Behavior Refactoring 2020-04-09 10:33:16 +01:00
Wear.cs Move the ServerShared data model onto CultLib's CultCache 2026-09-14 19:00:42 +02:00
Wear.cs.meta Heat Performance Curves + Wear & Tear 2021-03-04 03:58:46 +00:00