Räume Esszimmer, Dachboden und Flur definiert.
This commit is contained in:
@@ -83,6 +83,7 @@ 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)
|
||||||
|
if raum is not None:
|
||||||
gegenstand.raum = raum.id
|
gegenstand.raum = raum.id
|
||||||
gegenstand.imobil = imobil.lower() in ['true','True','1']
|
gegenstand.imobil = imobil.lower() in ['true','True','1']
|
||||||
logging.debug('itemid= ' + id + ',visible= ' + visible)
|
logging.debug('itemid= ' + id + ',visible= ' + visible)
|
||||||
@@ -93,6 +94,9 @@ class WorldParser():
|
|||||||
|
|
||||||
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'):
|
||||||
|
81
kerker.py
81
kerker.py
@@ -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)
|
|
55
world.xml
55
world.xml
@@ -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='' />
|
||||||
|
Reference in New Issue
Block a user