diff --git a/ActionModul.py b/ActionModul.py index 1f0cfe4..a8400cb 100644 --- a/ActionModul.py +++ b/ActionModul.py @@ -25,17 +25,34 @@ class ActionModul: zeile = zeile +1 def oeffne(self,parsedCommand): - item = self.world.findItemImInventar(parsedCommand.gegenstand); + item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand); + logging.debug(f'öffne RaumId= {self.world.aktuellerRaum.id}') + logging.debug(f'öffne Item= {item}') if item != None: + logging.debug(f'öffne ItemId= {item.id}') if item.id == self.world.ITEM_TRUHE: - schluessel = self.world.findItemImInventarById(self.world.ITEM_KLEINER_SCHLUESSEL) + logging.debug('öffne Truhe') + schluessel = self.world.findItemImInventarById(self.world.ITEM_KLEINER_SCHLUESSEL) + if schluessel != None: + item.zustand = item.OFFEN + self.setFehler('Truhe ist jetzt offen') + else: + self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.') + + elif item.id == self.world.ITEM_HAUSTUER: + if self.world.aktuellerRaum.id == self.world.RAUM_FLUR: + schluessel = self.world.findItemImInventarById(self.world.ITEM_HAUSTUERSCHLUESSEL) + + logging.debug(f'öffne Haustür Schlüssel ist {schluessel}') if schluessel != None: - item.zustand = item.OFFEN - self.setFehler('Truhe ist jetzt offen') + item.zustand = item.OFFEN + self.setFehler('Die Haustür ist geöffnet und führt in den Garten.') + self.world.aktuellerRaum.ausgaenge[self.world.SUED] = self.world.RAUM_GARTEN else: - self.setFehler('Die Truhe ist verschlossen und du hast keinen Schlüssel.') + logging.debug('öffne Haustür kein Haustürschlüssel') + self.setFehler('Die Tür ist verschlossen.') def verliere(self,parsedCommand): @@ -82,9 +99,12 @@ class ActionModul: schluessel.sichtbar = True - def untersuche(self,parsedCommand): - logging.debug('untersuche() suche nach Gegenstand:' + parsedCommand.gegenstand) + logging.debug(f'untersuche() suche nach Gegenstand: {parsedCommand.gegenstand}') + if parsedCommand.gegenstand == None: + self.untersucheAktuellenRaum + return + item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand) if item != None: @@ -94,12 +114,12 @@ class ActionModul: glas.sichtbar = True elif item.id == self.world.ITEM_BETT: # Falltür sichtbar machen - self.world.aktuellerRaum.ausgaenge[self.world.RUNTER] = '5' + self.world.aktuellerRaum.ausgaenge[self.world.RUNTER] = self.world.RAUM_KELLER self.setFehler('Im Boden unter dem Bett findest du eine Falltür, die nach unten führt.') elif item.id == self.world.ITEM_NACHTSCHRANK: self.setFehler('In der Schublade findest du einen Schlüssel') schluessel = self.world.findRaumItemById(self.world.ITEM_HAUSTUERSCHLUESSEL) - #schluessel.sichtbar = True + schluessel.sichtbar = True else: logging.debug('Kein Item gefunden, suche nach Raum') self.untersucheAktuellenRaum(parsedCommand) diff --git a/World.py b/World.py index eb90f20..5267aef 100644 --- a/World.py +++ b/World.py @@ -202,6 +202,7 @@ class World: self.ITEM_SCHWERT = '11' self.ITEM_SEIL = '12' self.ITEM_HAUSTUERSCHLUESSEL = '13' + self.ITEM_RANKGITTER = '14' # Räume @@ -210,7 +211,10 @@ class World: self.RAUM_FLUR = '3' self.RAUM_SCHLAFZIMMER = '4' self.RAUM_KELLER = '5' + self.RAUM_GARTEN = '6' + self.RAUM_DACH = '7' + self.fehler = '' parser = WorldParser.WorldParser(self) parser.parseWorld('world.xml') diff --git a/world.xml b/world.xml index 80af372..2816e7c 100644 --- a/world.xml +++ b/world.xml @@ -14,7 +14,6 @@ - @@ -35,24 +34,20 @@ Kellerraum - - - + + + + Du stehst im Vorgarten, die Haustür führt zurück ins Haus. - Treppenhaus in der Kerkerebene. Eine Tür führt nach Süden. Über der Tür hängt ein Hinweisschild. + Du stehst im Vorgarten vor dem Haus. Durch die Tür im Norden gelangst du zurück ins Haus. Rechts neben der Tür + wächst Efeu an einem Rankgitter bis zum Dach hinauf. - - - + + + Du hast das Dach erklommen. - Vom Gang im Zellblock führt eine Tür nach Osten in die Kerkerzelle. Über der Tür hängt ein Hinweisschild. - - - - - - Vom Gang im Zellblock führt eine Tür nach Osten in die Kerkerzelle. + Du hast das Dach erklommen. @@ -110,7 +105,7 @@ - + @@ -118,7 +113,8 @@ - + +