CodeEscape als serverautoritativen Spielmodus umsetzen
mindflux-ci / build (push) Successful in 21s

This commit is contained in:
AliceDarkest
2026-07-12 22:24:47 +02:00
parent 986f6226ef
commit edb5b36408
31 changed files with 192 additions and 5 deletions
@@ -0,0 +1,27 @@
CREATE TABLE escape_scenarios (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
slug VARCHAR(150) NOT NULL UNIQUE,
title VARCHAR(200) NOT NULL,
difficulty VARCHAR(30) NOT NULL DEFAULT 'leicht',
exam_scope VARCHAR(20) NOT NULL DEFAULT 'AP1',
description VARCHAR(1200),
time_limit_seconds INT NOT NULL DEFAULT 900,
sort_order INT NOT NULL DEFAULT 0,
active BOOLEAN NOT NULL DEFAULT TRUE,
CONSTRAINT chk_escape_exam_scope CHECK (exam_scope IN ('AP1','AP2_FIAE','AP2_FISI','CROSS'))
);
CREATE TABLE escape_rooms (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
scenario_id BIGINT NOT NULL REFERENCES escape_scenarios(id) ON DELETE CASCADE,
title VARCHAR(200) NOT NULL, intro VARCHAR(2000), door_prompt VARCHAR(500),
door_code VARCHAR(50) NOT NULL, success_text VARCHAR(1000), sort_order INT NOT NULL DEFAULT 0
);
CREATE TABLE escape_puzzles (
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
room_id BIGINT NOT NULL REFERENCES escape_rooms(id) ON DELETE CASCADE,
puzzle_type VARCHAR(30) NOT NULL, prompt VARCHAR(500) NOT NULL,
points INT NOT NULL DEFAULT 100, code_fragment VARCHAR(20) NOT NULL,
sort_order INT NOT NULL DEFAULT 0, payload VARCHAR(8000) NOT NULL
);
CREATE INDEX idx_escape_rooms_scenario ON escape_rooms(scenario_id);
CREATE INDEX idx_escape_puzzles_room ON escape_puzzles(room_id);