feat: Implement SQLite backend and configuration UI

This commit is contained in:
Keith Solomon
2025-08-15 07:08:26 -05:00
parent 23e98e3696
commit b9cb61750d
8 changed files with 199 additions and 29 deletions

51
database.php Normal file
View File

@@ -0,0 +1,51 @@
<?php
$db = new PDO('sqlite:game.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Create tables if they don't exist
$db->exec('CREATE TABLE IF NOT EXISTS game_logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date_played DATETIME,
flames_score INTEGER,
desolation_score INTEGER,
relocation_score INTEGER,
end_condition TEXT
)');
$db->exec('CREATE TABLE IF NOT EXISTS configuration (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
value TEXT
)');
// Check if configuration is already seeded
$stmt = $db->query('SELECT COUNT(*) FROM configuration');
$count = $stmt->fetchColumn();
if ($count === 0) {
// Seed the configuration table
$config = [
['flames_win', '10'],
['desolation_win', '10'],
['relocation_win', '10'],
['assassination_win', '20'],
['imperial_palace_event_1', 'The emperor fiddles with manic glee. +1 Flames.'],
['imperial_palace_event_2', 'The emperor raises another horse to the position of senator. +1 Desolation, +1 Relocation.'],
['imperial_palace_event_3', 'It\'s execution night at the palace. +1 Relocation.'],
['imperial_palace_event_4', 'The emperor screams like a baby. +1 Desolation.'],
['imperial_palace_event_5', 'The emperor sits in front of the flame and commands it to obey. It does not. +1 Flames, +1 Relocation.'],
['imperial_palace_event_6', 'Work continues on a house made of pure gold. It keeps melting. +1 Flames.'],
['relative_unrest_event_1', 'People complain - this is unacceptable. Then they go about their business. +1 Relocation.'],
['relative_unrest_event_2', 'There are no goods at market. +1 Desolation.'],
['relative_unrest_event_3', 'You receive a letter asking you to reassert your faith in the emperor. In writing. +1 Relocation.'],
['relative_unrest_event_4', 'Lions are released onto the streets. +1 Desolation, +1 Flames.'],
['relative_unrest_event_5', 'Is Rome really over? +1 Desolation.'],
['relative_unrest_event_6', 'The burnings will continue until morale improves. +1 Flames.'],
];
$stmt = $db->prepare('INSERT INTO configuration (name, value) VALUES (?, ?)');
foreach ($config as $item) {
$stmt->execute($item);
}
}
?>