summaryrefslogtreecommitdiff
path: root/tools/rerun.js
diff options
context:
space:
mode:
Diffstat (limited to 'tools/rerun.js')
-rw-r--r--tools/rerun.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/rerun.js b/tools/rerun.js
new file mode 100644
index 0000000..d1534e6
--- /dev/null
+++ b/tools/rerun.js
@@ -0,0 +1,24 @@
+const sqlite3 = require('better-sqlite3');
+
+let db = new sqlite3("./db");
+let game_id = process.argv[2] | 0;
+let title_id = db.prepare("SELECT title_id FROM games WHERE game_id = ?").pluck().get(game_id);
+let rules = require("./public/" + title_id + "/rules.js");
+
+console.log("// TITLE", title_id)
+let log = db.prepare("SELECT * FROM game_log WHERE game_id = ?").all(game_id);
+let game = null;
+log.forEach(item => {
+ let args = JSON.parse(item.arguments);
+ if (item.action === 'setup') {
+ console.log("// SETUP", item.arguments)
+ game = rules.setup(args[0], args[1], args[2]);
+ } else if (item.action === 'resign') {
+ console.log("// RESIGN", item.role);
+ game = rules.resign(game, item.role);
+ } else {
+ console.log("// ACTION", item.role, item.action, item.arguments);
+ game = rules.action(game, item.role, item.action, args);
+ }
+ console.log(JSON.stringify(game));
+});