it's a presentable stub now!
This commit is contained in:
parent
07b56dcd40
commit
7c9930e0b6
@ -3,12 +3,10 @@
|
||||
import gevent.monkey
|
||||
gevent.monkey.patch_all()
|
||||
|
||||
import logging
|
||||
|
||||
import flask
|
||||
from gevent.pywsgi import WSGIServer
|
||||
|
||||
from pylocal import core
|
||||
from pylocal import core, tick
|
||||
|
||||
@core.app.route("/")
|
||||
def index():
|
||||
@ -18,5 +16,5 @@ def index():
|
||||
|
||||
if __name__ == "__main__":
|
||||
#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()
|
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 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) {
|
||||
const div_logrow = document.createElement("div");
|
||||
div_logrow.className = "log-line";
|
||||
|
||||
const div_logtick = document.createElement("div");
|
||||
div_logtick.className = "log-tick"
|
||||
div_logtick.innerHTML = "Day 69";
|
||||
div_logtick.innerHTML = "Day " + gamestate["tick"];
|
||||
div_logrow.append(div_logtick);
|
||||
|
||||
const div_logmsg = document.createElement("div");
|
||||
@ -17,14 +33,58 @@ function record_log(text) {
|
||||
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) {
|
||||
page_elements["div_log"] = document.querySelector("#main-log");
|
||||
page_elements["div_name"] = document.querySelector("#side-seagull-name");
|
||||
page_elements["div_name_editor"] = document.querySelector("#side-seagull-name-editor");
|
||||
page_elements["lbl_name"] = document.querySelector("#lbl-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!");
|
||||
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() {
|
||||
@ -35,6 +95,8 @@ function change_seagull_name() {
|
||||
function confirm_seagull_name() {
|
||||
const new_name = page_elements["edt_name"].value;
|
||||
page_elements["lbl_name"].innerHTML = new_name;
|
||||
gamestate["name"] = new_name;
|
||||
save_game();
|
||||
|
||||
page_elements["div_name"].style.display = "block";
|
||||
page_elements["div_name_editor"].style.display = "none";
|
||||
|
Loading…
x
Reference in New Issue
Block a user