Refine Gear augments and builder levels

This commit is contained in:
JB
2026-07-25 17:41:10 -04:00
parent e5f0414a8e
commit 1465a8c9b3
9 changed files with 220 additions and 52 deletions
+13 -3
View File
@@ -357,7 +357,6 @@ CREATE TABLE IF NOT EXISTS gear (
name TEXT NOT NULL,
slot TEXT NOT NULL CHECK(slot IN ('Holster', 'Gloves', 'Backpack', 'Knee Pads', 'Body Armor', 'Mask')),
tier INTEGER NOT NULL CHECK(tier BETWEEN 0 AND 2),
level INTEGER NOT NULL CHECK(level BETWEEN 1 AND 50),
base_health_min REAL NOT NULL CHECK(base_health_min >= 0),
base_health_max REAL NOT NULL CHECK(base_health_max >= base_health_min),
base_armor_min REAL,
@@ -386,9 +385,9 @@ CREATE TABLE IF NOT EXISTS gear_tactical_augments (
id TEXT PRIMARY KEY,
gear_slot TEXT NOT NULL CHECK(gear_slot IN ('Holster', 'Gloves', 'Backpack', 'Knee Pads', 'Body Armor', 'Mask')),
augment_slot INTEGER NOT NULL CHECK(augment_slot BETWEEN 1 AND 4),
stat_attribute_id TEXT NOT NULL REFERENCES stat_attributes(id),
effect_type TEXT NOT NULL CHECK(effect_type IN ('Custom', 'Base Percentage')),
stat_attribute_id TEXT REFERENCES stat_attributes(id),
value REAL NOT NULL,
unlock_cost INTEGER NOT NULL CHECK(unlock_cost >= 0),
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL,
UNIQUE(gear_slot, augment_slot),
@@ -396,8 +395,19 @@ CREATE TABLE IF NOT EXISTS gear_tactical_augments (
(gear_slot IN ('Backpack', 'Body Armor') AND augment_slot BETWEEN 1 AND 4)
OR
(gear_slot NOT IN ('Backpack', 'Body Armor') AND augment_slot BETWEEN 1 AND 3)
),
CHECK(
(augment_slot = 1 AND effect_type = 'Custom' AND stat_attribute_id IS NOT NULL)
OR
(augment_slot > 1 AND effect_type = 'Base Percentage' AND stat_attribute_id IS NULL AND value > 0)
)
);
CREATE TABLE IF NOT EXISTS gear_tactical_augment_costs (
augment_id TEXT NOT NULL REFERENCES gear_tactical_augments(id) ON DELETE CASCADE,
gear_tier INTEGER NOT NULL CHECK(gear_tier BETWEEN 0 AND 2),
unlock_cost INTEGER NOT NULL CHECK(unlock_cost >= 0),
PRIMARY KEY(augment_id, gear_tier)
);
CREATE TABLE IF NOT EXISTS weapons (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,