This commit is contained in:
whiteline 2024-02-29 18:08:47 +01:00
parent e567f2d75b
commit 096fd91378

View File

@ -3,6 +3,7 @@ import collections as cl
import networkx as nx
import curses as c
import random
from time import sleep
from grid import Grid, bresenhams
from fov import fieldOfView
@ -58,6 +59,7 @@ class Player(Behaviour):
self.msgbuffer = cl.deque([], 200)
self.messaged = False
self.messaged_last = False
self.realtime = False
def message(self, msg):
if len(self.msgbuffer) > 0 and msg == self.msgbuffer[0][1] and self.messaged_last:
@ -95,7 +97,15 @@ class Player(Behaviour):
self.world.window.refresh()
# this is the one gameplay input point.
key = self.world.window.getkey()
if self.realtime:
sleep(0.2)
try:
key = self.world.window.getkey()
except c.error:
key = ""
c.flushinp()
else:
key = self.world.window.getkey()
match key:
case 'w':
if not self.body.move((0, -1)):
@ -121,6 +131,13 @@ class Player(Behaviour):
self.message("You see nothing here to close.")
case 'q':
self.world.run = False
case 'r':
if self.realtime:
self.realtime = False
self.world.window.nodelay(False)
else:
self.realtime = True
self.world.window.nodelay(True)
# case _: self.world.message(key)
class Drunkard(Behaviour):
@ -236,6 +253,7 @@ door_open = Tile(',', "open door", "an unremarkable door", solid=False, transpar
w = c.initscr()
c.curs_set(0)
c.raw()
c.echo(False)
wld = World(w, 80, 23, floor)