hilfe befehle.

This commit is contained in:
Olli Graf
2022-05-18 13:45:17 +02:00
parent e671a22fa2
commit 0651532a56
8 changed files with 88 additions and 35 deletions

View File

@@ -2,8 +2,9 @@ import logging
class ActionModul:
def isBlank(self,str):
if str and len(str.strip()) == 0:
def isBlank(self,str):
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()

View File

@@ -123,7 +123,7 @@ class TestModule:
self.schrittzaehler = self.schrittzaehler +1
#Zum Teich
self.ac.sued()
self.ac.ost()
self.schrittzaehler = self.schrittzaehler +1

View File

@@ -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 = ''

View File

@@ -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']

View File

@@ -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.

View File

@@ -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':

View File

@@ -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