Crossing (seed 112, demo cast): the Arcs Longinus fit with plight and FastBlast+- under the Fire Control Array, a piloted hostile Djinni crossing the bow inside 400 m, an unpiloted neutral one at 80% of plight's Range. Djinni Shakedown gains bare Longinus targets Ahead (inside the generated Djinni's ballistic mount arc) and Abeam (outside it). CrossingConditions and DjinniShakedownTargets read what each arena staged. Not yet verified on a full-suite run at this commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
24 lines
1.2 KiB
C#
24 lines
1.2 KiB
C#
using float2 = CultMath.float2;
|
|
|
|
public sealed class DjinniShakedown : Scenario
|
|
{
|
|
public override string Name => "Djinni Shakedown";
|
|
public override string Brief => "A fitted Djinni in empty space, facing +z, with a bare hull dead ahead and one abeam. Verify: its thrusters " +
|
|
"move and turn it; with the hull offline and thrusters firing, its speed does not run away. Its " +
|
|
"articulated ballistic barrel points at the hull ahead when it bears, and rests at the arc edge while you " +
|
|
"aim at the hull abeam.";
|
|
public override uint Seed => 101;
|
|
public override bool Ambient => false;
|
|
|
|
// Where the targets sit: the ballistic mount faces +z, so Ahead is inside its arc and Abeam outside it.
|
|
public static readonly float2 Ahead = new float2(0, 400), Abeam = new float2(400, 0);
|
|
|
|
public override Galaxy Generate(GalaxyStage stage) => stage.Prelude();
|
|
|
|
public override void Stage(ScenarioStage stage)
|
|
{
|
|
stage.Player(stage.Generated("Djinni"), float2.zero);
|
|
stage.Place(stage.Bare("Longinus"), Ahead);
|
|
stage.Place(stage.Bare("Longinus"), Abeam);
|
|
}
|
|
}
|