pyoo/testrooms.py

50 lines
1.3 KiB
Python
Raw Normal View History

2023-09-26 03:29:07 +02:00
from pyoo.things import Place, Player
from pyoo.placeloader import interpreter_from_placeloader, PlaceLoader
from pyoo.interpret import PyooVerbNotFound
from pyoo.base import make_verb
class DescriptivePlace(Place):
def handle_enter(self, player):
super().handle_enter(player)
self.do_look()
@make_verb("look,l", "none", "none", "none")
def look(self, verb_callframe):
self.do_look()
def do_look(self):
print(self.name)
if isinstance(self.description, str):
print(self.description)
else:
for line in self.description:
print(line)
loader = PlaceLoader(open("roomtest.txt", "r"), DescriptivePlace)
player = Player("player")
game = interpreter_from_placeloader(loader)
porch = game.lookup_global_object("Porch")[0][1]
run = True
game.update()
game.handle_move(porch, player)
# REPL
if __name__ == "__main__":
while run:
cmd = ""
try:
cmd = input(">")
except EOFError:
run = False
if cmd.startswith("quit"):
run = False
else:
try:
game.interpret(cmd, player)
except PyooVerbNotFound:
print("I don't understand that.")
print("Bye!")