hilfe befehle.
This commit is contained in:
@@ -3,7 +3,8 @@ import logging
|
||||
class ActionModul:
|
||||
|
||||
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 False
|
||||
|
||||
@@ -47,13 +48,15 @@ class ActionModul:
|
||||
|
||||
if schluessel != None and item.zustand != item.OFFEN:
|
||||
item.zustand = item.OFFEN
|
||||
schluessel.sichtbar = False
|
||||
self.ausDemInventar(schluessel)
|
||||
seil = self.world.findItemById(self.world.ITEM_SEIL)
|
||||
seil.sichtbar = True
|
||||
self.world.aktuellerRaum.items[seil.id] = seil
|
||||
schwert = self.world.findItemById(self.world.ITEM_SCHWERT)
|
||||
schwert.sichtbar = True
|
||||
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:
|
||||
self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.')
|
||||
|
||||
@@ -94,7 +97,7 @@ class ActionModul:
|
||||
|
||||
def baueBruecke(self):
|
||||
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):
|
||||
del self.world.inventar[item.id]
|
||||
@@ -282,8 +285,11 @@ class ActionModul:
|
||||
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
|
||||
|
||||
|
||||
def hilfe(self):
|
||||
self.world.printText('hilfe')
|
||||
def hilfe(self,parsedCommand):
|
||||
if parsedCommand.gegenstand == 'befehle':
|
||||
self.world.printBefehle()
|
||||
else:
|
||||
self.world.printText('hilfe')
|
||||
|
||||
def gehe(self,parsedCommand):
|
||||
richtung = parsedCommand.gegenstand.lower()
|
||||
|
@@ -123,7 +123,7 @@ class TestModule:
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
|
||||
#Zum Teich
|
||||
self.ac.sued()
|
||||
self.ac.ost()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
|
||||
|
||||
|
18
World.py
18
World.py
@@ -18,6 +18,21 @@ class World:
|
||||
self.waitForCR()
|
||||
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):
|
||||
self.stdscr.addstr(0,0,'Taste für Weiter',curses.color_pair(1))
|
||||
self.stdscr.getch()
|
||||
@@ -247,6 +262,7 @@ class World:
|
||||
self.ITEM_FISCH = '17'
|
||||
self.ITEM_SCHWERT = '18'
|
||||
self.ITEM_BOXSACK = '19'
|
||||
self.ITEM_MAUS = '20'
|
||||
|
||||
# Räume
|
||||
|
||||
@@ -261,6 +277,8 @@ class World:
|
||||
self.RAUM_BACH = '8'
|
||||
self.RAUM_FELD = '9'
|
||||
self.RAUM_TEICH = '10'
|
||||
self.RAUM_FELD = '11'
|
||||
self.RAUM_KLEINES_FELD = '12'
|
||||
|
||||
|
||||
self.fehler = ''
|
||||
|
@@ -5,12 +5,20 @@ import logging
|
||||
|
||||
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):
|
||||
self.neuerRaum = None
|
||||
self.world = world
|
||||
self.textCount = 0
|
||||
|
||||
def parseWorld(self,filename):
|
||||
|
||||
tree = ET.parse(filename)
|
||||
root = tree.getroot()
|
||||
|
||||
@@ -91,6 +99,7 @@ class WorldParser():
|
||||
imobil = item.attrib['imobil']
|
||||
visible = item.attrib['visible']
|
||||
adjektiv = item.attrib['adjektiv']
|
||||
display = item.attrib['display']
|
||||
raum = self.world.sucheRaum(raumid)
|
||||
if raum is not None:
|
||||
gegenstand.raum = raum.id
|
||||
@@ -101,6 +110,12 @@ class WorldParser():
|
||||
logging.error(f'Kein Raum für {gegenstand.name}')
|
||||
|
||||
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']
|
||||
logging.debug('itemid= ' + id + ',visible= ' + visible)
|
||||
gegenstand.sichtbar = visible.lower() not in ['false','False','0']
|
||||
|
@@ -43,7 +43,10 @@ class Raum(SuperNode):
|
||||
item = self.items[itemid]
|
||||
logging.debug('labelsGegenstaende(): Item ' + self.items[itemid].name + ' ist ' + str(item.sichtbar))
|
||||
if item.sichtbar:
|
||||
labels.append(item.name)
|
||||
if item.display != None:
|
||||
labels.append(item.display)
|
||||
else:
|
||||
labels.append(item.name)
|
||||
|
||||
return labels
|
||||
|
||||
@@ -68,6 +71,7 @@ class Gegenstand(SuperNode):
|
||||
self.sichtbar = True
|
||||
self.imobil = False
|
||||
self.adjektiv = None
|
||||
self.display = None
|
||||
self.GESCHLOSSEN = 0
|
||||
self.OFFEN = 1
|
||||
self.zustand = self.GESCHLOSSEN
|
||||
|
Binary file not shown.
2
tomb.py
2
tomb.py
@@ -55,7 +55,7 @@ def verarbeiteBefehl(parsedCommand):
|
||||
elif id == '22':
|
||||
actionmodul.fange(parsedCommand)
|
||||
elif id == '23':
|
||||
actionmodul.hilfe()
|
||||
actionmodul.hilfe(parsedCommand)
|
||||
elif id == '24':
|
||||
actionmodul.schlage(parsedCommand)
|
||||
elif id == '-1':
|
||||
|
62
world.xml
62
world.xml
@@ -53,25 +53,34 @@
|
||||
</raum>
|
||||
<raum id='8' name='Bach'>
|
||||
<ausgang dir='Nord' nachRaum= '6' />
|
||||
<ausgang dir='Ost' nachRaum= '10' />
|
||||
|
||||
<beschreibung>
|
||||
Du stehst an einem Bach.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='10' name='Teich'>
|
||||
<ausgang dir='Nord' nachRaum= '8' />
|
||||
<ausgang dir='West' nachRaum= '8' />
|
||||
|
||||
<beschreibung>
|
||||
Du stehst an einem Teich.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='9' name='Feld'>
|
||||
<ausgang dir='Nord' nachRaum= '6' />
|
||||
<raum id='11' name='Feld'>
|
||||
<ausgang dir='West' nachRaum= '6' />
|
||||
<ausgang dir='Sued' nachRaum= '12' />
|
||||
|
||||
<beschreibung>
|
||||
Ein Feld.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='12' name='kleines Feld'>
|
||||
<ausgang dir='Nord' nachRaum= '11' />
|
||||
|
||||
<beschreibung>
|
||||
Ein kleineres Feld.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
</ebene>
|
||||
|
||||
<commandset>
|
||||
@@ -127,27 +136,29 @@
|
||||
<sortout name='und' />
|
||||
<sortout name='kleiner' />
|
||||
<sortout name='nach' />
|
||||
<sortout name='tote' />
|
||||
</sortouts>
|
||||
<items>
|
||||
<item name='Tisch' 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='Truhe' 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='Haustür' 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='Bett' 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='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='Schwert' 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='Haustürschlüssel' 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='Planke' 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='Fisch' 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='Boxsack' id='19' 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' display='' id='2' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
||||
<item name='Truhe' display='' id='3' raum='2' imobil='false' adjektiv = '0' msgid='4' visible='true' />
|
||||
<item name='Pflanze' display='' id='4' raum='3' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
||||
<item name='Haustür' display='' id='5' raum='3' imobil='true' adjektiv = '0' msgid='5' visible='true' />
|
||||
<item name='Krug' display='' id='6' raum='3' imobil='false' adjektiv = '0' msgid='3' visible='false' />
|
||||
<item name='Bett' display='' id='7' 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' display='kleiner Schlüssel' id='9' raum='-1' imobil='false' adjektiv = '1' msgid='1' visible='false' />
|
||||
<item name='Jacke' display='' id='10' raum='5' imobil='false' adjektiv = '0' msgid='1' visible='true' />
|
||||
<item name='Schwert' display='' id='11' raum='5' 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' display='' id='13' raum='4' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
||||
<item name='Rankgitter' display='' id='14' raum='6' 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' display='' id='16' raum='10' imobil='true' adjektiv = '0' msgid='2' visible='true' />
|
||||
<item name='Fisch' display='' id='17' raum='10' imobil='false' adjektiv = '0' msgid='0' visible='false' />
|
||||
<item name='Schwert' display='' id='18' raum='-1' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
||||
<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>
|
||||
<personen>
|
||||
@@ -183,13 +194,12 @@
|
||||
<text id='item-15'>
|
||||
Die Planke wirkt stabil genug, dein Gewicht zu tragen.
|
||||
</text>
|
||||
<text id='item-16'>
|
||||
Der Teich wird vom Bach gespeist.Einige Wassertiere leben darin.
|
||||
</text>
|
||||
<text id='item-19'>
|
||||
Der Boxsack trägt die Aufschrift: Eigentum von Maddes. Außerdem hat jemand ein großes V draufgemalt.
|
||||
</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'>
|
||||
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
|
||||
|
Reference in New Issue
Block a user