diff --git a/ActionModul.py b/ActionModul.py
index a01d551..089479a 100644
--- a/ActionModul.py
+++ b/ActionModul.py
@@ -47,6 +47,12 @@ class ActionModul:
if schluessel != None:
item.zustand = item.OFFEN
+ seil = self.world.findItemById(self.world.ITEM_SEIL)
+ seil.sichtbar = True
+ self.world.aktuellerRaum.gegenstaende[seil.id] = seil
+ schwert = self.world.findItemById(self.world.ITEM_SCHWERT)
+ schwert.sichtbar = True
+ self.world.aktuellerRaum.gegenstaende[schwert.id] = schwert
self.setFehler('Truhe ist jetzt offen')
else:
self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.')
@@ -65,6 +71,17 @@ class ActionModul:
self.setFehler('Die Tür ist verschlossen.')
+ def benutze(self, parsedCommand):
+ leiter = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
+
+ logging.debug(f'benutze(): Leiter is {leiter}')
+ if leiter != None:
+ if(self.world.aktuellerRaum.id == self.world.RAUM_ESSZIMMER):
+ logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
+ self.rauf()
+ else:
+ self.setFehler('Eine Leiter sehe ich hier nicht.')
+
def verliere(self,parsedCommand):
item = self.world.findItemImInventar(parsedCommand.gegenstand);
@@ -138,6 +155,10 @@ class ActionModul:
self.setFehler('In der Schublade findest du einen Schlüssel')
schluessel = self.world.findRaumItemById(self.world.ITEM_HAUSTUERSCHLUESSEL)
schluessel.sichtbar = True
+ elif item.id == self.world.ITEM_TEICH:
+ self.setFehler('Im Teich schwimmt ein kleiner Fish')
+ fisch = self.world.findItemInAktuellerRaum(self.world.ITEM_FISCH)
+ fisch.sichtbar = True
else:
logging.debug('Kein Item gefunden, suche nach Raum')
self.untersucheAktuellenRaum(parsedCommand)
@@ -152,6 +173,21 @@ class ActionModul:
else:
self.setFehler('Das sehe ich hier nicht.')
+ def fange(self, parsedCommand):
+ skip
+
+ def klettere(self, parsedCommand):
+ leiter = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
+
+ logging.debug(f'klettere(): Leiter is {leiter}')
+ if leiter != None:
+ if(self.world.aktuellerRaum.id == self.world.RAUM_ESSZIMMER):
+ logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
+ self.rauf()
+ else:
+ self.setFehler('Eine Leiter sehe ich hier nicht.')
+
+
def nimm(self,parsedCommand):
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
@@ -181,12 +217,18 @@ class ActionModul:
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
- def gehe(self):
- richtung = self.world.parsedCommand.gegenstand
+ def gehe(self,parsedCommand):
+ richtung = parsedCommand.gegenstand.lower()
logging.debug("gehe nach " + richtung)
if richtung == 'nord':
self.nord()
+ elif richtung == 'süd':
+ self.sued()
+ if richtung == 'west':
+ self.west()
+ if richtung == 'ost':
+ self.ost()
def geheNach(self,richtung):
logging.debug(f'geheNach() Richtung {richtung}')
diff --git a/World.py b/World.py
index f3ecf21..49fc0a3 100644
--- a/World.py
+++ b/World.py
@@ -89,6 +89,16 @@ class World:
return item
+ def findItemById(self,id):
+ for itemkey in self.gegenstaende:
+ item = self.gegenstaende[itemkey]
+ logging.debug(f'findItemById(): Item= {item}')
+ logging.debug(f'findItemById(): Itemtype= {type(item)}')
+ if item.id == id:
+ return item
+
+ return None
+
def findItemInAktuellerRaum(self,itemname):
raum = self.aktuellerRaum
@@ -167,6 +177,19 @@ class World:
return parsedCommand
+ def debug_Items(self):
+ logging.debug('liste Items')
+ logging.debug(self.gegenstaende)
+ count = 1
+
+ for key in self.gegenstaende:
+ item = self.gegenstaende[key]
+
+ logging.debug(f'count= {count}')
+ logging.debug('Itemtyp: ' + str(type(item)))
+ logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name}')
+ count = count +1
+
def __init__(self):
self.raumliste = {}
self.msg = {}
@@ -199,14 +222,17 @@ class World:
self.ITEM_NACHTSCHRANK = '8'
self.ITEM_KLEINER_SCHLUESSEL = '9'
self.ITEM_JACKE = '10'
- self.ITEM_SCHWERT = '11'
self.ITEM_SEIL = '12'
self.ITEM_HAUSTUERSCHLUESSEL = '13'
self.ITEM_RANKGITTER = '14'
self.ITEM_PLANKE = '15'
+ self.ITEM_TEICH = '16'
+ self.ITEM_FISCH = '17'
+ self.ITEM_SCHWERT = '18'
# Räume
+ self.RAUM_UNDEF = '-1'
self.RAUM_ESSZIMMER = '1'
self.RAUM_DACHBODEN = '2'
self.RAUM_FLUR = '3'
@@ -222,3 +248,5 @@ class World:
parser = WorldParser.WorldParser(self)
parser.parseWorld('world.xml')
+ self.debug_Items()
+
diff --git a/WorldParser.py b/WorldParser.py
index fd812f1..8b6d369 100644
--- a/WorldParser.py
+++ b/WorldParser.py
@@ -100,13 +100,15 @@ class WorldParser():
gegenstand.sichtbar = visible.lower() not in ['false','False','0']
#logging.debug('Gegenstand ' + gegenstand.name + ' ist sichtbar: ' + str(gegenstand.sichtbar))
gegenstand.pickupmsg = msgid
- print('Item ' + gegenstand.name + ' - Pickup: ' + gegenstand.pickupmsg)
+ logging.debug('Item ' + gegenstand.name + ' - Pickup: ' + gegenstand.pickupmsg)
raum.items[id] = gegenstand
+ logging.debug(f'Hinzufügen Gegenstand vom Typ: {str(type(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}')
+ if raum != '-1':
+ logging.error(f'Kann Raum für Gegenstand {gegenstand.name} nicht finden')
+ logging.error(f'Kein Raum für {gegenstand.name}')
# Personen
for item in root.findall('personen/person'):
diff --git a/tomb.py b/tomb.py
index bd7da9b..3e5bb44 100755
--- a/tomb.py
+++ b/tomb.py
@@ -19,6 +19,8 @@ def verarbeiteBefehl(parsedCommand):
actionmodul.nimm(parsedCommand)
elif id == '3':
actionmodul.untersuche(parsedCommand)
+ elif id == '4':
+ actionmodul.benutze(parsedCommand)
elif id == '5':
actionmodul.nord()
elif id == '6':
@@ -49,6 +51,8 @@ def verarbeiteBefehl(parsedCommand):
actionmodul.oeffne(parsedCommand)
elif id == '21':
actionmodul.klettere(parsedCommand)
+ elif id == '22':
+ actionmodul.fange(parsedCommand)
elif id == '-1':
world.fehler = 'Ich verstehe diesen Befehl nicht'
else:
@@ -86,10 +90,7 @@ def inputLoop(stdscr):
logging.debug(f'debugcommand: {debugcommand}')
if debugcommand[1] == 'items':
- logging.debug('liste Items')
- logging.debug(world.gegenstaende)
- for item in world.gegenstaende:
- logging.debug(f'Id:{item.id} - Name:{item.name}')
+ world.debug_Items()
else:
@@ -99,4 +100,14 @@ def inputLoop(stdscr):
schrittzaehler = schrittzaehler +1
actionmodul.raumaction()
+def debug_Items():
+ logging.debug('liste Items')
+ logging.debug(world.gegenstaende)
+ count = 0
+ for item in world.gegenstaende:
+ logging.debug(f'count= {count}')
+ logging.debug('Itemtyp: ' + str(type(item)))
+# logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name}')
+ count = count +1
+
wrapper(inputLoop)
diff --git a/world.xml b/world.xml
index f41a428..6974efa 100644
--- a/world.xml
+++ b/world.xml
@@ -71,6 +71,7 @@
+
@@ -95,6 +96,7 @@
+
@@ -128,10 +130,13 @@
-
+
+
+
+
@@ -142,7 +147,7 @@
-
+