AetherDriveData and AetherDrive, Union(12) (now a retired-do-not-reuse comment, as 26 is), HardpointType.AetherDrive (last member, nothing shifts), Ship's drive sets, aggregates and Axis write, the five request-field rows, GameplaySettings Aether multipliers, ShipInstance's drive particles, SchematicDisplay's RPM display and AetherDriveUi, the undock refusal's drive clause, the drive prefab and material, and AetherDb's drive roles and brownout row. The design is kept at parked/aether-drive. Adds EveryShippedShipHullHasATopSpeed. ARPG.unity still holds stale serialized references to the removed SchematicDisplay fields and the RPM Display object; the next commit removes them. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
39 lines
2.5 KiB
C#
39 lines
2.5 KiB
C#
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
// Cut 5 (docs/stats-and-power-cut.md §1.3, Q5: "four or five tiers, defaulted per behaviour kind"). Five tiers,
|
|
// numbered so the lowest number is fed first -- PowerBus's allocation pass walks 0..Count-1 in order. Naming
|
|
// them here, once, means IPowerConsumer.DefaultPowerTier implementations read as a sentence ("Radiator is
|
|
// Critical") instead of a bare integer repeated eight times.
|
|
//
|
|
// Assignment, per behaviour kind, and why:
|
|
// - Critical: Radiator. This game has no dedicated life-support behaviour, and heat is the closest thing to
|
|
// one -- a starved radiator does not just fail itself, it cascades into wear and eventual shutdown across
|
|
// every other item on the hull (EquippedItem.UpdatePerformance). Feed it first or lose the rest anyway.
|
|
// - High: Shield. Hull survival the player is actively trading power for; not a life-support constant, so it
|
|
// sits below Radiator rather than beside it.
|
|
// - Medium: Thruster. Mobility -- needed to hold position, evade, or disengage, but a ship that
|
|
// loses thrust for a tick under brownout is inconvenienced, not dead the way an overheating hull is.
|
|
// - Low: ConstantWeapon, InstantWeapon. Offense. The ruling's own framing ("low-priority subsystems starve
|
|
// first") names weapons as the default example of what a reactor throttle should sacrifice first.
|
|
// - Utility: Sensor, EnergyDraw. Everything else, including the generic/unclassified draw -- an item that
|
|
// declares power use without asking for a specific tier should not accidentally outrank a named priority.
|
|
//
|
|
// A tier is a stored player choice once assigned (EquippableItem.PowerTier), not a derivation the bus repeats
|
|
// every tick (§1.3 "Derived state: nothing"). These defaults are read exactly once, in EquippedItem's
|
|
// constructor, to seed that stored field the first time an item without a chosen tier gets equipped.
|
|
public static class PowerTiers
|
|
{
|
|
public const int Critical = 0;
|
|
public const int High = 1;
|
|
public const int Medium = 2;
|
|
public const int Low = 3;
|
|
public const int Utility = 4;
|
|
|
|
public const int Count = 5;
|
|
|
|
// EquippableItem.PowerTier's sentinel for "the player has not chosen one and this item has never been
|
|
// equipped yet" -- distinct from 0 (Critical), which is a real, meaningful choice.
|
|
public const int Unassigned = -1;
|
|
}
|