hilfe befehle.
This commit is contained in:
@@ -2,8 +2,9 @@ import logging
|
|||||||
|
|
||||||
class ActionModul:
|
class ActionModul:
|
||||||
|
|
||||||
def isBlank(self,str):
|
def isBlank(self,str):
|
||||||
if str and len(str.strip()) == 0:
|
logging.debug(f'isBlank(): str=*{str}*')
|
||||||
|
if str != None and len(str.strip()) == 0:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -47,13 +48,15 @@ class ActionModul:
|
|||||||
|
|
||||||
if schluessel != None and item.zustand != item.OFFEN:
|
if schluessel != None and item.zustand != item.OFFEN:
|
||||||
item.zustand = item.OFFEN
|
item.zustand = item.OFFEN
|
||||||
|
schluessel.sichtbar = False
|
||||||
|
self.ausDemInventar(schluessel)
|
||||||
seil = self.world.findItemById(self.world.ITEM_SEIL)
|
seil = self.world.findItemById(self.world.ITEM_SEIL)
|
||||||
seil.sichtbar = True
|
seil.sichtbar = True
|
||||||
self.world.aktuellerRaum.items[seil.id] = seil
|
self.world.aktuellerRaum.items[seil.id] = seil
|
||||||
schwert = self.world.findItemById(self.world.ITEM_SCHWERT)
|
schwert = self.world.findItemById(self.world.ITEM_SCHWERT)
|
||||||
schwert.sichtbar = True
|
schwert.sichtbar = True
|
||||||
self.world.aktuellerRaum.items[schwert.id] = schwert
|
self.world.aktuellerRaum.items[schwert.id] = schwert
|
||||||
self.setFehler('Aus der Truhe fallen ein Seil und ein Schwert.')
|
self.setFehler('Aus der Truhe fallen ein Seil und ein Schwert. Der kleine Schlüssel löst sich auf.')
|
||||||
else:
|
else:
|
||||||
self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.')
|
self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.')
|
||||||
|
|
||||||
@@ -94,7 +97,7 @@ class ActionModul:
|
|||||||
|
|
||||||
def baueBruecke(self):
|
def baueBruecke(self):
|
||||||
bach = self.world.sucheRaum(self.world.RAUM_BACH)
|
bach = self.world.sucheRaum(self.world.RAUM_BACH)
|
||||||
bach.ausgaenge[self.world.SUED] = self.world.RAUM_TEICH
|
bach.ausgaenge[self.world.OST] = self.world.RAUM_TEICH
|
||||||
|
|
||||||
def ausDemInventar(self,item):
|
def ausDemInventar(self,item):
|
||||||
del self.world.inventar[item.id]
|
del self.world.inventar[item.id]
|
||||||
@@ -282,8 +285,11 @@ class ActionModul:
|
|||||||
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
|
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
|
||||||
|
|
||||||
|
|
||||||
def hilfe(self):
|
def hilfe(self,parsedCommand):
|
||||||
self.world.printText('hilfe')
|
if parsedCommand.gegenstand == 'befehle':
|
||||||
|
self.world.printBefehle()
|
||||||
|
else:
|
||||||
|
self.world.printText('hilfe')
|
||||||
|
|
||||||
def gehe(self,parsedCommand):
|
def gehe(self,parsedCommand):
|
||||||
richtung = parsedCommand.gegenstand.lower()
|
richtung = parsedCommand.gegenstand.lower()
|
||||||
|
@@ -123,7 +123,7 @@ class TestModule:
|
|||||||
self.schrittzaehler = self.schrittzaehler +1
|
self.schrittzaehler = self.schrittzaehler +1
|
||||||
|
|
||||||
#Zum Teich
|
#Zum Teich
|
||||||
self.ac.sued()
|
self.ac.ost()
|
||||||
self.schrittzaehler = self.schrittzaehler +1
|
self.schrittzaehler = self.schrittzaehler +1
|
||||||
|
|
||||||
|
|
||||||
|
18
World.py
18
World.py
@@ -18,6 +18,21 @@ class World:
|
|||||||
self.waitForCR()
|
self.waitForCR()
|
||||||
self.printRaum()
|
self.printRaum()
|
||||||
|
|
||||||
|
def printBefehle(self):
|
||||||
|
self.clearScreen()
|
||||||
|
befehlar = []
|
||||||
|
count = 0
|
||||||
|
self.stdscr.addstr(5,1,'Das System versteht folgende Befehle:')
|
||||||
|
for befehlid in self.befehle:
|
||||||
|
befehl = self.befehle[befehlid].name
|
||||||
|
befehlar.append(befehl)
|
||||||
|
count = count +1
|
||||||
|
self.stdscr.addstr(6,1, str(befehlar))
|
||||||
|
self.waitForCR()
|
||||||
|
|
||||||
|
|
||||||
|
self.waitForCR()
|
||||||
|
|
||||||
def waitForCR(self):
|
def waitForCR(self):
|
||||||
self.stdscr.addstr(0,0,'Taste für Weiter',curses.color_pair(1))
|
self.stdscr.addstr(0,0,'Taste für Weiter',curses.color_pair(1))
|
||||||
self.stdscr.getch()
|
self.stdscr.getch()
|
||||||
@@ -247,6 +262,7 @@ class World:
|
|||||||
self.ITEM_FISCH = '17'
|
self.ITEM_FISCH = '17'
|
||||||
self.ITEM_SCHWERT = '18'
|
self.ITEM_SCHWERT = '18'
|
||||||
self.ITEM_BOXSACK = '19'
|
self.ITEM_BOXSACK = '19'
|
||||||
|
self.ITEM_MAUS = '20'
|
||||||
|
|
||||||
# Räume
|
# Räume
|
||||||
|
|
||||||
@@ -261,6 +277,8 @@ class World:
|
|||||||
self.RAUM_BACH = '8'
|
self.RAUM_BACH = '8'
|
||||||
self.RAUM_FELD = '9'
|
self.RAUM_FELD = '9'
|
||||||
self.RAUM_TEICH = '10'
|
self.RAUM_TEICH = '10'
|
||||||
|
self.RAUM_FELD = '11'
|
||||||
|
self.RAUM_KLEINES_FELD = '12'
|
||||||
|
|
||||||
|
|
||||||
self.fehler = ''
|
self.fehler = ''
|
||||||
|
@@ -5,12 +5,20 @@ import logging
|
|||||||
|
|
||||||
class WorldParser():
|
class WorldParser():
|
||||||
|
|
||||||
|
def isBlank(self,str):
|
||||||
|
lenstr = len(str.strip())
|
||||||
|
logging.debug(f'isBlank(): {lenstr}')
|
||||||
|
if str == None or lenstr == 0:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
def __init__(self,world):
|
def __init__(self,world):
|
||||||
self.neuerRaum = None
|
self.neuerRaum = None
|
||||||
self.world = world
|
self.world = world
|
||||||
self.textCount = 0
|
self.textCount = 0
|
||||||
|
|
||||||
def parseWorld(self,filename):
|
def parseWorld(self,filename):
|
||||||
|
|
||||||
tree = ET.parse(filename)
|
tree = ET.parse(filename)
|
||||||
root = tree.getroot()
|
root = tree.getroot()
|
||||||
|
|
||||||
@@ -91,6 +99,7 @@ class WorldParser():
|
|||||||
imobil = item.attrib['imobil']
|
imobil = item.attrib['imobil']
|
||||||
visible = item.attrib['visible']
|
visible = item.attrib['visible']
|
||||||
adjektiv = item.attrib['adjektiv']
|
adjektiv = item.attrib['adjektiv']
|
||||||
|
display = item.attrib['display']
|
||||||
raum = self.world.sucheRaum(raumid)
|
raum = self.world.sucheRaum(raumid)
|
||||||
if raum is not None:
|
if raum is not None:
|
||||||
gegenstand.raum = raum.id
|
gegenstand.raum = raum.id
|
||||||
@@ -101,6 +110,12 @@ class WorldParser():
|
|||||||
logging.error(f'Kein Raum für {gegenstand.name}')
|
logging.error(f'Kein Raum für {gegenstand.name}')
|
||||||
|
|
||||||
gegenstand.adjektiv = adjektiv
|
gegenstand.adjektiv = adjektiv
|
||||||
|
logging.debug(f'display={display}, isBlank={self.isBlank(display)}')
|
||||||
|
if not self.isBlank(display):
|
||||||
|
gegenstand.display = display
|
||||||
|
else:
|
||||||
|
gegenstand.display = None
|
||||||
|
|
||||||
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)
|
||||||
gegenstand.sichtbar = visible.lower() not in ['false','False','0']
|
gegenstand.sichtbar = visible.lower() not in ['false','False','0']
|
||||||
|
@@ -43,7 +43,10 @@ class Raum(SuperNode):
|
|||||||
item = self.items[itemid]
|
item = self.items[itemid]
|
||||||
logging.debug('labelsGegenstaende(): Item ' + self.items[itemid].name + ' ist ' + str(item.sichtbar))
|
logging.debug('labelsGegenstaende(): Item ' + self.items[itemid].name + ' ist ' + str(item.sichtbar))
|
||||||
if item.sichtbar:
|
if item.sichtbar:
|
||||||
labels.append(item.name)
|
if item.display != None:
|
||||||
|
labels.append(item.display)
|
||||||
|
else:
|
||||||
|
labels.append(item.name)
|
||||||
|
|
||||||
return labels
|
return labels
|
||||||
|
|
||||||
@@ -68,6 +71,7 @@ class Gegenstand(SuperNode):
|
|||||||
self.sichtbar = True
|
self.sichtbar = True
|
||||||
self.imobil = False
|
self.imobil = False
|
||||||
self.adjektiv = None
|
self.adjektiv = None
|
||||||
|
self.display = None
|
||||||
self.GESCHLOSSEN = 0
|
self.GESCHLOSSEN = 0
|
||||||
self.OFFEN = 1
|
self.OFFEN = 1
|
||||||
self.zustand = self.GESCHLOSSEN
|
self.zustand = self.GESCHLOSSEN
|
||||||
|
Binary file not shown.
2
tomb.py
2
tomb.py
@@ -55,7 +55,7 @@ def verarbeiteBefehl(parsedCommand):
|
|||||||
elif id == '22':
|
elif id == '22':
|
||||||
actionmodul.fange(parsedCommand)
|
actionmodul.fange(parsedCommand)
|
||||||
elif id == '23':
|
elif id == '23':
|
||||||
actionmodul.hilfe()
|
actionmodul.hilfe(parsedCommand)
|
||||||
elif id == '24':
|
elif id == '24':
|
||||||
actionmodul.schlage(parsedCommand)
|
actionmodul.schlage(parsedCommand)
|
||||||
elif id == '-1':
|
elif id == '-1':
|
||||||
|
62
world.xml
62
world.xml
@@ -53,25 +53,34 @@
|
|||||||
</raum>
|
</raum>
|
||||||
<raum id='8' name='Bach'>
|
<raum id='8' name='Bach'>
|
||||||
<ausgang dir='Nord' nachRaum= '6' />
|
<ausgang dir='Nord' nachRaum= '6' />
|
||||||
|
<ausgang dir='Ost' nachRaum= '10' />
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Du stehst an einem Bach.
|
Du stehst an einem Bach.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='10' name='Teich'>
|
<raum id='10' name='Teich'>
|
||||||
<ausgang dir='Nord' nachRaum= '8' />
|
<ausgang dir='West' nachRaum= '8' />
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Du stehst an einem Teich.
|
Du stehst an einem Teich.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='9' name='Feld'>
|
<raum id='11' name='Feld'>
|
||||||
<ausgang dir='Nord' nachRaum= '6' />
|
<ausgang dir='West' nachRaum= '6' />
|
||||||
|
<ausgang dir='Sued' nachRaum= '12' />
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Ein Feld.
|
Ein Feld.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
|
<raum id='12' name='kleines Feld'>
|
||||||
|
<ausgang dir='Nord' nachRaum= '11' />
|
||||||
|
|
||||||
|
<beschreibung>
|
||||||
|
Ein kleineres Feld.
|
||||||
|
</beschreibung>
|
||||||
|
</raum>
|
||||||
</ebene>
|
</ebene>
|
||||||
|
|
||||||
<commandset>
|
<commandset>
|
||||||
@@ -127,27 +136,29 @@
|
|||||||
<sortout name='und' />
|
<sortout name='und' />
|
||||||
<sortout name='kleiner' />
|
<sortout name='kleiner' />
|
||||||
<sortout name='nach' />
|
<sortout name='nach' />
|
||||||
|
<sortout name='tote' />
|
||||||
</sortouts>
|
</sortouts>
|
||||||
<items>
|
<items>
|
||||||
<item name='Tisch' id='1' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
<item name='Tisch' display='' id='1' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
||||||
<item name='Leiter' id='2' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
<item name='Leiter' display='' id='2' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
||||||
<item name='Truhe' id='3' raum='2' imobil='false' adjektiv = '0' msgid='4' visible='true' />
|
<item name='Truhe' display='' id='3' raum='2' imobil='false' adjektiv = '0' msgid='4' visible='true' />
|
||||||
<item name='Pflanze' id='4' raum='3' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
<item name='Pflanze' display='' id='4' raum='3' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
||||||
<item name='Haustür' id='5' raum='3' imobil='true' adjektiv = '0' msgid='5' visible='true' />
|
<item name='Haustür' display='' id='5' raum='3' imobil='true' adjektiv = '0' msgid='5' visible='true' />
|
||||||
<item name='Krug' id='6' raum='3' imobil='false' adjektiv = '0' msgid='3' visible='false' />
|
<item name='Krug' display='' id='6' raum='3' imobil='false' adjektiv = '0' msgid='3' visible='false' />
|
||||||
<item name='Bett' id='7' raum='4' imobil='true' adjektiv = '0' msgid='1' visible=' true' />
|
<item name='Bett' display='' id='7' raum='4' imobil='true' adjektiv = '0' msgid='1' visible=' true' />
|
||||||
<item name='Nachtschrank' id='8' raum='4' imobil='true' adjektiv = '0' msgid='1' visible=' true' />
|
<item name='Nachtschrank' display='' id='8' raum='4' imobil='true' adjektiv = '0' msgid='1' visible=' true' />
|
||||||
<item name='Schlüssel' id='9' raum='-1' imobil='false' adjektiv = '1' msgid='1' visible='false' />
|
<item name='Schlüssel' display='kleiner Schlüssel' id='9' raum='-1' imobil='false' adjektiv = '1' msgid='1' visible='false' />
|
||||||
<item name='Jacke' id='10' raum='5' imobil='false' adjektiv = '0' msgid='1' visible='true' />
|
<item name='Jacke' display='' id='10' raum='5' imobil='false' adjektiv = '0' msgid='1' visible='true' />
|
||||||
<item name='Schwert' id='11' raum='5' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
<item name='Schwert' display='' id='11' raum='5' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
||||||
<item name='Seil' id='12' raum='-1' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
<item name='Seil' display='' id='12' raum='-1' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
||||||
<item name='Haustürschlüssel' id='13' raum='4' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
<item name='Haustürschlüssel' display='' id='13' raum='4' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
||||||
<item name='Rankgitter' id='14' raum='6' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
<item name='Rankgitter' display='' id='14' raum='6' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
||||||
<item name='Planke' id='15' raum='7' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
<item name='Planke' display='' id='15' raum='7' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
||||||
<item name='Teich' id='16' raum='10' imobil='true' adjektiv = '0' msgid='2' visible='true' />
|
<item name='Teich' display='' id='16' raum='10' imobil='true' adjektiv = '0' msgid='2' visible='true' />
|
||||||
<item name='Fisch' id='17' raum='10' imobil='false' adjektiv = '0' msgid='0' visible='false' />
|
<item name='Fisch' display='' id='17' raum='10' imobil='false' adjektiv = '0' msgid='0' visible='false' />
|
||||||
<item name='Schwert' id='18' raum='-1' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
<item name='Schwert' display='' id='18' raum='-1' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
||||||
<item name='Boxsack' id='19' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
<item name='Boxsack' display='' id='19' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
||||||
|
<item name='Maus' display='tote Maus' id='20' raum='12' imobil='false' adjektiv = '0' msgid='1' visible='true' />
|
||||||
|
|
||||||
</items>
|
</items>
|
||||||
<personen>
|
<personen>
|
||||||
@@ -183,13 +194,12 @@
|
|||||||
<text id='item-15'>
|
<text id='item-15'>
|
||||||
Die Planke wirkt stabil genug, dein Gewicht zu tragen.
|
Die Planke wirkt stabil genug, dein Gewicht zu tragen.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='item-16'>
|
||||||
|
Der Teich wird vom Bach gespeist.Einige Wassertiere leben darin.
|
||||||
|
</text>
|
||||||
<text id='item-19'>
|
<text id='item-19'>
|
||||||
Der Boxsack trägt die Aufschrift: Eigentum von Maddes. Außerdem hat jemand ein großes V draufgemalt.
|
Der Boxsack trägt die Aufschrift: Eigentum von Maddes. Außerdem hat jemand ein großes V draufgemalt.
|
||||||
</text>
|
</text>
|
||||||
<text id='item-9'>
|
|
||||||
Das Tor besteht aus schmideeisernen Stäben, die geschmiedete Querträger halten. Das Tor ist an den Seiten in Führungsschienen
|
|
||||||
eingelassen. Auf der rechten Seite befindet sich etwa in der Mitte ein Schloss. Hinter dem Tor scheint ein Treppenhaus zu sein.
|
|
||||||
</text>
|
|
||||||
<text id='hilfe'>
|
<text id='hilfe'>
|
||||||
Das Grab des Azteken ist ein klassisches Textadventure.
|
Das Grab des Azteken ist ein klassisches Textadventure.
|
||||||
Du bedienst es durch Befehle wie "nimm Schwert" oder "gehe Süd". Die Eingabe ist so flexibel wie möglich gestaltet, so dass
|
Du bedienst es durch Befehle wie "nimm Schwert" oder "gehe Süd". Die Eingabe ist so flexibel wie möglich gestaltet, so dass
|
||||||
|
Reference in New Issue
Block a user