new RPG system
This commit is contained in:
@@ -76,6 +76,7 @@ async def init_db():
|
||||
await _migrate_characters_columns(db)
|
||||
await _migrate_rpg_quests(db)
|
||||
await _migrate_action_resolutions(db)
|
||||
await _migrate_state_snapshots(db)
|
||||
await db.commit()
|
||||
|
||||
|
||||
@@ -178,6 +179,31 @@ async def _migrate_action_resolutions(db):
|
||||
)
|
||||
|
||||
|
||||
async def _migrate_state_snapshots(db):
|
||||
await db.executescript(
|
||||
"""
|
||||
CREATE TABLE IF NOT EXISTS session_state_snapshots (
|
||||
message_id INTEGER PRIMARY KEY,
|
||||
session_id TEXT NOT NULL,
|
||||
facts_json TEXT NOT NULL DEFAULT '[]',
|
||||
global_plot TEXT NOT NULL DEFAULT '',
|
||||
status_quo TEXT NOT NULL DEFAULT '',
|
||||
plot_arc_json TEXT NOT NULL DEFAULT '{}',
|
||||
affinity INTEGER NOT NULL DEFAULT 0,
|
||||
outfit_json TEXT NOT NULL DEFAULT '[]',
|
||||
scene_json TEXT NOT NULL DEFAULT '{}',
|
||||
narrative_stats_json TEXT NOT NULL DEFAULT '{"lust":0,"stamina":10,"tension":0}',
|
||||
quests_json TEXT NOT NULL DEFAULT '[]',
|
||||
action_resolutions_json TEXT NOT NULL DEFAULT '[]',
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (message_id) REFERENCES messages(id) ON DELETE CASCADE
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_state_snapshots_session
|
||||
ON session_state_snapshots(session_id);
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
async def _migrate_characters_columns(db):
|
||||
async with db.execute("PRAGMA table_info(characters)") as cur:
|
||||
cols = {row[1] for row in await cur.fetchall()}
|
||||
|
||||
Reference in New Issue
Block a user