Räume Esszimmer, Dachboden und Flur definiert.

This commit is contained in:
Olli Graf
2022-01-19 06:26:03 +01:00
parent 8f84706546
commit 682596a53b
3 changed files with 38 additions and 122 deletions

View File

@@ -83,16 +83,20 @@ class WorldParser():
imobil = item.attrib['imobil'] imobil = item.attrib['imobil']
visible = item.attrib['visible'] visible = item.attrib['visible']
raum = self.world.sucheRaum(raumid) raum = self.world.sucheRaum(raumid)
gegenstand.raum = raum.id if raum is not None:
gegenstand.imobil = imobil.lower() in ['true','True','1'] gegenstand.raum = raum.id
logging.debug('itemid= ' + id + ',visible= ' + visible) gegenstand.imobil = imobil.lower() in ['true','True','1']
gegenstand.sichtbar = visible.lower() not in ['false','False','0'] logging.debug('itemid= ' + id + ',visible= ' + visible)
logging.debug('Gegenstand ' + gegenstand.name + ' ist sichtbar: ' + str(gegenstand.sichtbar)) gegenstand.sichtbar = visible.lower() not in ['false','False','0']
gegenstand.pickupmsg = msgid logging.debug('Gegenstand ' + gegenstand.name + ' ist sichtbar: ' + str(gegenstand.sichtbar))
print('Item ' + gegenstand.name + ' - Pickup: ' + gegenstand.pickupmsg) gegenstand.pickupmsg = msgid
print('Item ' + gegenstand.name + ' - Pickup: ' + gegenstand.pickupmsg)
raum.items[id] = gegenstand raum.items[id] = gegenstand
self.world.gegenstaende[id] = gegenstand self.world.gegenstaende[id] = gegenstand
else:
logging.error(f'Kann Raum für Gegenstand {gegenstand.name} nicht finden')
print(f'Kein Raum für {gegenstand.name}')
# Personen # Personen
for item in root.findall('personen/person'): for item in root.findall('personen/person'):

View File

@@ -1,81 +0,0 @@
#!/usr/bin/python3
import World
import ActionModul
import signal
import sys
import logging
import curses
from curses import wrapper
def verarbeiteBefehl(parsedCommand):
id = parsedCommand.key
logging.debug(' Befehlkey: ' + id)
if id == '0':
sys.exit()
elif id == '1':
actionmodul.gehe(parsedCommand)
elif id == '2':
actionmodul.nimm(parsedCommand)
elif id == '3':
actionmodul.untersuche(parsedCommand)
elif id == '5':
actionmodul.nord()
elif id == '6':
actionmodul.ost()
elif id == '7':
actionmodul.sued()
elif id == '8':
actionmodul.west()
elif id == '9':
actionmodul.rauf()
elif id == '10':
actionmodul.runter()
elif id == '12':
actionmodul.inventar()
world.waitForCR()
elif id == '13':
actionmodul.about()
elif id == '14':
print('verliere: ' + parsedCommand.gegenstand)
actionmodul.verliere(parsedCommand)
elif id == '15':
actionmodul.warte()
elif id == '17':
actionmodul.ziehe(parsedCommand)
elif id == '19':
actionmodul.stelle(parsedCommand)
elif id == '-1':
world.fehler = 'Ich verstehe diesen Befehl nicht'
else:
world.fehler = 'nicht implementierter Befehl'
def handle_SIGINT(sig,frame):
logging.debug("CTRL-C abgefangen")
sys.exit(0)
logging.basicConfig(filename='kerker.log', level=logging.DEBUG)
signal.signal(signal.SIGINT,handle_SIGINT)
world = World.World()
logging.debug('World initialisiert')
actionmodul = ActionModul.ActionModul(world)
def inputLoop(stdscr):
world.stdscr = stdscr
curses.echo()
curses.init_pair(1,curses.COLOR_RED, curses.COLOR_WHITE)
curses.init_pair(2,curses.COLOR_GREEN, curses.COLOR_BLACK)
curses.init_pair(3,curses.COLOR_YELLOW, curses.COLOR_BLACK)
commandid = ''
while commandid != '0':
world.printRaum()
stdscr.addstr(11,0,'Was nun? ')
command = stdscr.getstr(11,10,40).decode(encoding="utf-8")
command = command.rstrip()
parsedCommand = world.parseInput(command)
commandid = parsedCommand.commandid
verarbeiteBefehl(parsedCommand)
actionmodul.raumaction()
wrapper(inputLoop)

View File

@@ -1,25 +1,24 @@
<welt> <welt>
<startraum id='1' /> <startraum id='1' />
<ebene id='1' name='Keller'> <ebene id='1' name='Erdgeschoss'>
<raum id='1' name='Folterkammer'> <raum id='1' name='Esszimmer'>
<ausgang dir='Nord' nachRaum='3' /> <ausgang dir='Sued' nachRaum='3' />
<ausgang dir='Sued' nachRaum='2' /> <ausgang dir='Rauf' nachRaum='2' />
<beschreibung> Im Raum steht eine Streckbank, mit der du vermutlich bald nähere Bekanntschaft machen wirst. <beschreibung> Vor dem Fenster steht ein Tisch,ts davon führt eine Leiter nach oben.
An der Wand steht eine geöffnete eiserne Jungfrau mit furchterregenden spitzen, rostigen Dornen.</beschreibung> </beschreibung>
</raum>
<raum id='2' name='Instrumentenraum'>
<ausgang dir='Nord' nachRaum='1' />
<beschreibung>
Hier lagern die Folterinstrumente. Du erkennst verschiede Zangen, Ketten, spitze Gegenstände und einige Utensilien, von denen du gar nicht wissen willst, welchen Zweck sie haben.
</raum>
<raum id='2' name='Dachboden'>
<ausgang dir='Runter' nachRaum='1' />
<beschreibung> Du befindest dich auf dem Dachboden, auf dem eine alte verstaubte Truhe steht.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='3' name='Gang'> <raum id='3' name='Flur'>
<ausgang dir='Sued' nachRaum='1' /> <ausgang dir='Sued' nachRaum='1' />
<!-- <ausgang dir='Nord' nachRaum='5' />--> <ausgang dir='Nord' nachRaum='1' />
<ausgang dir='West' nachRaum='4' />
<beschreibung> <beschreibung>
Der Gang verläuft von Süd nach Nord. Im Norden versperrt ein massives Gittertor den Weg. Du stehst in Flur vor der Eingangstür, die nach Süden ins Freie führt.
Rechts von der Tür hängt ein abstraktes Bild, links steht eine Pflanze in einer Nische.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='4' name='Wachraum'> <raum id='4' name='Wachraum'>
@@ -96,22 +95,15 @@ An der Wand steht eine geöffnete eiserne Jungfrau mit furchterregenden spitzen,
<sortout name='und' /> <sortout name='und' />
</sortouts> </sortouts>
<items> <items>
<item name='Schwert' id='1' raum='1' imobil='false' msgid='0' visible='true' /> <item name='Tisch' id='1' raum='1' imobil='true' msgid='1' visible='true' />
<item name='Seil' id='2' raum='2' imobil='false' msgid='0' visible='true' /> <item name='Leiter' id='2' raum='1' imobil='true' msgid='1' visible='true' />
<item name='Streckbank' id='3' raum='1' imobil='true' msgid='4' visible='true' /> <item name='Truhe' id='3' raum='2' imobil='false' msgid='4' visible='true' />
<item name='eiserne Jungfrau' id='4' raum='1' imobil='true' msgid='3' visible='true' /> <item name='Pflanze' id='4' raum='3' imobil='false' msgid='3' visible='false' />
<item name='Schwertgestell' id='5' raum='3' imobil='true' msgid='3' visible='true' /> <item name='Eingangstür' id='5' raum='3' imobil='true' msgid='3' visible='true' />
<item name='Fackel' id='6' raum='4' imobil='false' msgid='3' visible='true' /> <item name='Glas' id='6' raum='6' imobil='false' msgid='3' visible='false' />
<item name='Fackelhalter' id='7' raum='3' imobil='false' msgid='3' visible='true' />
<item name='Hebel' id='8' raum='3' imobil='false' msgid='3' visible='true' />
<item name='Gittertor' id='9' raum='3' imobil='true' msgid='5' visible='true' />
<item name='Schreibtisch' id='10' raum='4' imobil='true' msgid='3' visible='true' />
<item name='Schlüssel' id='11' raum='4' imobil='false' msgid='3' visible='false' />
<item name='Schild' id='12' raum='10' imobil='true' msgid='6' visible='true' />
</items> </items>
<personen> <personen>
<person name='Kerkermeister' id='1' raum='1' bewegung='0'/> <person name=' Fisch' id='2' raum='2' bewegung='0' />
<person name='Wärter' id='2' raum='2' bewegung='0' />
<person name='Folterknecht' id='3' raum='2' bewegung='1' /> <person name='Folterknecht' id='3' raum='2' bewegung='1' />
<person name='Geist' id='4' raum='3' bewegung='0' /> <person name='Geist' id='4' raum='3' bewegung='0' />
<person name='Maus' id='4' raum='2' bewegung='0' /> <person name='Maus' id='4' raum='2' bewegung='0' />
@@ -119,10 +111,11 @@ An der Wand steht eine geöffnete eiserne Jungfrau mit furchterregenden spitzen,
<messages> <messages>
<pickup text='Das ist zu schwer' id='1' /> <pickup text='Das ist zu schwer' id='1' />
<pickup text='Daran sind soviel Körperflüssigkeiten runtergelaufen, du möchtest das nicht anfassen' id='2' /> <pickup text='Daran sind soviel Körperflüssigkeiten runtergelaufen, du möchtest das nicht anfassen' id='2' />
<pickup text='Das ist fest mit der Wand verschraubt' id ='3' /> <pickup text='Das ist fest verschraubt' id ='3' />
<pickup text='Daran hebst du dir nur nen Bruch' id='4' /> <pickup text='Daran hebst du dir nur nen Bruch' id='4' />
<pickup text='Egal, wie stark du an dem Tor rüttelst, es bewegt sich nicht.' id='5' /> <pickup text='Die Eingangstür ist nicht zum Mitnehmen gedacht.' id='5' />
<pickup text='Das hängt viel zu hoch. Zu kommst nicht dran.' id='6' /> <pickup text='Das hängt viel zu hoch. Zu kommst nicht dran.' id='6' />
<pickup text='Kunstdiebstahl? Nö!' id='7' />
</messages> </messages>
<bewegungen> <bewegungen>
<bewegung id='0' value='' /> <bewegung id='0' value='' />