it's a presentable stub now!
This commit is contained in:
parent
07b56dcd40
commit
7c9930e0b6
@ -3,12 +3,10 @@
|
|||||||
import gevent.monkey
|
import gevent.monkey
|
||||||
gevent.monkey.patch_all()
|
gevent.monkey.patch_all()
|
||||||
|
|
||||||
import logging
|
|
||||||
|
|
||||||
import flask
|
import flask
|
||||||
from gevent.pywsgi import WSGIServer
|
from gevent.pywsgi import WSGIServer
|
||||||
|
|
||||||
from pylocal import core
|
from pylocal import core, tick
|
||||||
|
|
||||||
@core.app.route("/")
|
@core.app.route("/")
|
||||||
def index():
|
def index():
|
||||||
@ -18,5 +16,5 @@ def index():
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
#core.app.run("0.0.0.0", 1337)
|
#core.app.run("0.0.0.0", 1337)
|
||||||
http_server = WSGIServer(('', 80), core.app, log=logging.getLogger(name="gevent"))
|
http_server = WSGIServer(('', 80), core.app)
|
||||||
http_server.serve_forever()
|
http_server.serve_forever()
|
8
app/pylocal/tick.py
Normal file
8
app/pylocal/tick.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import json
|
||||||
|
import random
|
||||||
|
|
||||||
|
from . import core
|
||||||
|
|
||||||
|
@core.app.route("/tick")
|
||||||
|
def tick():
|
||||||
|
return random.choices([json.dumps({"code": 200, "event_type": 0}), json.dumps({"code": 200, "event_type": 1, "log": "The server chose a flavor text event, which hasn't been fully implemented yet."})], weights=[16, 1])[0]
|
50
scratch.ipynb
Normal file
50
scratch.ipynb
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 1,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"otl-hga.net\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"domain_components = \"seagull.mercenary.otl-hga.net\".split(\".\")\n",
|
||||||
|
"base_domain = \".\".join(domain_components[-2:])\n",
|
||||||
|
"print(base_domain)"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"language": "python",
|
||||||
|
"name": "python3"
|
||||||
|
},
|
||||||
|
"language_info": {
|
||||||
|
"codemirror_mode": {
|
||||||
|
"name": "ipython",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"file_extension": ".py",
|
||||||
|
"mimetype": "text/x-python",
|
||||||
|
"name": "python",
|
||||||
|
"nbconvert_exporter": "python",
|
||||||
|
"pygments_lexer": "ipython3",
|
||||||
|
"version": "3.10.9 (main, Dec 7 2022, 00:00:00) [GCC 12.2.1 20221121 (Red Hat 12.2.1-4)]"
|
||||||
|
},
|
||||||
|
"orig_nbformat": 4,
|
||||||
|
"vscode": {
|
||||||
|
"interpreter": {
|
||||||
|
"hash": "767d51c1340bd893661ea55ea3124f6de3c7a262a8b4abca0554b478b1e2ff90"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 2
|
||||||
|
}
|
@ -1,12 +1,28 @@
|
|||||||
|
const sleep = ms => new Promise(r => setTimeout(r, ms)); // sleep(int ms)
|
||||||
|
|
||||||
var page_elements = {};
|
var page_elements = {};
|
||||||
|
|
||||||
|
var gamestate = {};
|
||||||
|
|
||||||
|
const gamestate_default = {
|
||||||
|
"tick": 1,
|
||||||
|
"name": "Nameless"
|
||||||
|
};
|
||||||
|
|
||||||
|
function prepare_gamestate() {
|
||||||
|
var gamestate_loaded = window.localStorage.getItem("gamestate");
|
||||||
|
|
||||||
|
if (gamestate_loaded == null) { gamestate = structuredClone(gamestate_default); }
|
||||||
|
else { gamestate = JSON.parse(gamestate_loaded); }
|
||||||
|
}
|
||||||
|
|
||||||
function record_log(text) {
|
function record_log(text) {
|
||||||
const div_logrow = document.createElement("div");
|
const div_logrow = document.createElement("div");
|
||||||
div_logrow.className = "log-line";
|
div_logrow.className = "log-line";
|
||||||
|
|
||||||
const div_logtick = document.createElement("div");
|
const div_logtick = document.createElement("div");
|
||||||
div_logtick.className = "log-tick"
|
div_logtick.className = "log-tick"
|
||||||
div_logtick.innerHTML = "Day 69";
|
div_logtick.innerHTML = "Day " + gamestate["tick"];
|
||||||
div_logrow.append(div_logtick);
|
div_logrow.append(div_logtick);
|
||||||
|
|
||||||
const div_logmsg = document.createElement("div");
|
const div_logmsg = document.createElement("div");
|
||||||
@ -17,14 +33,58 @@ function record_log(text) {
|
|||||||
page_elements["div_log"].append(div_logrow);
|
page_elements["div_log"].append(div_logrow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function save_game() {
|
||||||
|
window.localStorage.setItem("gamestate", JSON.stringify(gamestate));
|
||||||
|
record_log("Game saved.");
|
||||||
|
}
|
||||||
|
|
||||||
|
var tick_meter_running = true;
|
||||||
|
|
||||||
|
async function game_tick() {
|
||||||
|
gamestate["tick"] += 1;
|
||||||
|
page_elements["lbl_tick"].innerHTML = gamestate["tick"];
|
||||||
|
var tickdata = await fetch("/tick")
|
||||||
|
.then(res => {
|
||||||
|
json = res.json()
|
||||||
|
console.log(json)
|
||||||
|
return json
|
||||||
|
})
|
||||||
|
.catch(e => { throw e; });
|
||||||
|
console.log(JSON.stringify(tickdata));
|
||||||
|
|
||||||
|
if (tickdata["code"] != 200) {
|
||||||
|
console.error("Non-200 tick code: " + tickdata["code"]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tickdata["event_type"] == 0) {
|
||||||
|
//sleep(12000);
|
||||||
|
//game_tick();
|
||||||
|
} else if (tickdata["event_type"] == 1) {
|
||||||
|
// Flavor event - no gameplay effect, but occasionally says something fun.
|
||||||
|
record_log(tickdata["log"]);
|
||||||
|
//await sleep(12000);
|
||||||
|
//game_tick();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", function (ev) {
|
document.addEventListener("DOMContentLoaded", function (ev) {
|
||||||
page_elements["div_log"] = document.querySelector("#main-log");
|
page_elements["div_log"] = document.querySelector("#main-log");
|
||||||
page_elements["div_name"] = document.querySelector("#side-seagull-name");
|
page_elements["div_name"] = document.querySelector("#side-seagull-name");
|
||||||
page_elements["div_name_editor"] = document.querySelector("#side-seagull-name-editor");
|
page_elements["div_name_editor"] = document.querySelector("#side-seagull-name-editor");
|
||||||
page_elements["lbl_name"] = document.querySelector("#lbl-seagull-name");
|
page_elements["lbl_name"] = document.querySelector("#lbl-seagull-name");
|
||||||
page_elements["edt_name"] = document.querySelector("#edt-seagull-name");
|
page_elements["edt_name"] = document.querySelector("#edt-seagull-name");
|
||||||
|
page_elements["lbl_tick"] = document.querySelector("#main-day-counter");
|
||||||
|
|
||||||
|
prepare_gamestate();
|
||||||
|
|
||||||
record_log("It works!");
|
record_log("It works!");
|
||||||
|
page_elements["lbl_name"].innerHTML = gamestate["name"];
|
||||||
|
page_elements["lbl_tick"].innerHTML = gamestate["tick"];
|
||||||
|
|
||||||
|
const interval = setInterval(() => {
|
||||||
|
if (tick_meter_running) { game_tick(); }
|
||||||
|
}, 1200);
|
||||||
});
|
});
|
||||||
|
|
||||||
function change_seagull_name() {
|
function change_seagull_name() {
|
||||||
@ -35,6 +95,8 @@ function change_seagull_name() {
|
|||||||
function confirm_seagull_name() {
|
function confirm_seagull_name() {
|
||||||
const new_name = page_elements["edt_name"].value;
|
const new_name = page_elements["edt_name"].value;
|
||||||
page_elements["lbl_name"].innerHTML = new_name;
|
page_elements["lbl_name"].innerHTML = new_name;
|
||||||
|
gamestate["name"] = new_name;
|
||||||
|
save_game();
|
||||||
|
|
||||||
page_elements["div_name"].style.display = "block";
|
page_elements["div_name"].style.display = "block";
|
||||||
page_elements["div_name_editor"].style.display = "none";
|
page_elements["div_name_editor"].style.display = "none";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user