Aetheria/Assets/Scripts/ServerShared/Scenarios/RefusedRounds.cs
Meta Vens f44dadc5cf Fused Rounds, Refused Rounds and AI Fused Discipline arenas, and the five smoke weapons they carry
The catalog gains Smoke Proximity, Smoke Delayed, Smoke Refused, Smoke Refused Beam and Smoke Refused Charge (AetherDb smoke-rounds apply), none with a product. Seeds 108, 109 and 110 stage the demo's cast with the Smoke Test Hull; SmokeRoundsScenarioTests pins their conditions and that no smoke weapon is offered. Design and arenas land together so the census never sees an uncarried design. Not yet run: the verification job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 03:36:57 +02:00

40 lines
2 KiB
C#

using static CultMath.math;
using static ItemRotation;
public sealed class RefusedRounds : Scenario
{
public override string Name => "Refused Rounds";
public override string Brief => "The Smoke Test Hull with Smoke Refused, Smoke Refused Beam, Smoke Refused Charge and an Autocannon; a bare Longinus " +
"dead ahead. Each smoke weapon's blast radius is wider than its range, so it can never be fired. Verify: pull each " +
"trigger and a refused shot costs no ammo, energy, heat, sound, visibility or cooldown, the beam never starts and " +
"the charged weapon never starts charging; the Autocannon fires normally.";
public override uint Seed => 109;
public override bool Ambient => false;
// The one target, ahead of the nose: inside every forward mount's arc.
public static readonly CultMath.float2 Target = float2(0, 300);
public override Galaxy Generate(GalaxyStage stage) => stage.Prelude(DemoTerminus.Cast);
public override void Stage(ScenarioStage stage)
{
var shooter = stage.Fit("Smoke Test Hull",
("Cockpit 2x2", int2(4, 6), None),
("Large Drive", int2(3, 0), Reversed),
("Large Drive", int2(5, 0), Reversed),
("Talaria", int2(4, 14), CounterClockwise),
("Talaria", int2(5, 14), Clockwise),
("Core Power", int2(4, 4), None),
("Smoke Refused", int2(3, 8), None),
("Smoke Refused Beam", int2(6, 8), None),
("Smoke Refused Charge", int2(3, 17), None),
("Autocannon", int2(5, 17), None),
("Iapyx", int2(4, 2), CounterClockwise),
("Iapyx", int2(5, 2), Clockwise),
("not if i see you first", int2(5, 10), None),
("Fire Control Array", int2(3, 6), Clockwise));
stage.Player(shooter, float2(0, 0), facing: float2(0, 1));
stage.Place(stage.Bare("Longinus"), Target);
}
}