Special jobs: data-driven special-status registry with priority status (ISS-073, v0.37.0)
CI / build + unit + e2e (pull_request) Failing after 7m56s
CI / build + unit + e2e (pull_request) Failing after 7m56s
This commit is contained in:
@@ -41,6 +41,7 @@ CREATE TABLE IF NOT EXISTS packages (
|
||||
cargo_type TEXT NOT NULL,
|
||||
cargo_count INTEGER NOT NULL,
|
||||
weight_kg REAL NOT NULL DEFAULT 2000,
|
||||
special TEXT,
|
||||
deadline_sim_time INTEGER NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
plane_id TEXT,
|
||||
@@ -83,6 +84,10 @@ function migrateColumns(raw: RawSqlJsDatabase): void {
|
||||
if (!cols('packages').has('weight_kg')) {
|
||||
raw.exec('ALTER TABLE packages ADD COLUMN weight_kg REAL NOT NULL DEFAULT 2000');
|
||||
}
|
||||
// v0.37.0 (ISS-073): package special status — nullable, no default; pre-existing rows stay NULL = none.
|
||||
if (!cols('packages').has('special')) {
|
||||
raw.exec('ALTER TABLE packages ADD COLUMN special TEXT');
|
||||
}
|
||||
// v0.30.0 (ISS-057): last-selected speed — pre-existing rows backfill to the row's OWN
|
||||
// current time_scale so a legacy DB resumes at the speed it was running, not the default.
|
||||
if (!cols('sim_state').has('last_selected_time_scale')) {
|
||||
|
||||
@@ -40,6 +40,8 @@ export const packages = sqliteTable('packages', {
|
||||
// Package weight in kg (v0.27.0, ISS-045) — drives load validation (plane payload)
|
||||
// and the per-kg part of the payout. Pre-existing rows backfill to the default.
|
||||
weightKg: real('weight_kg').notNull().default(2000),
|
||||
// Special status (v0.37.0, ISS-073) — key into lib/game/specials.ts SPECIALS; NULL = none.
|
||||
special: text('special'),
|
||||
deadlineSimTime: integer('deadline_sim_time').notNull(),
|
||||
// 'expired' = an open OR loaded package whose deadline passed on a tick. Loaded
|
||||
// expired packages keep occupying their slot, deliver no reward, and abandon free.
|
||||
|
||||
Reference in New Issue
Block a user