diff --git a/ActionBasics.py b/ActionBasics.py index 0e0e419..2e2bb8d 100644 --- a/ActionBasics.py +++ b/ActionBasics.py @@ -25,8 +25,19 @@ class ActionBasics: self.world.fehler = '' def wechsleRaum(self,raum): - self.world.aktuellerRaum = raum - raum.entdeckt = True + logging.debug(f'wechsle in RaumId: {raum.id}') + if raum.id == self.world.RAUM_BOOT2: + logging.debug('wechsle nach Raum Boot2') + kabine = self.world.findItemById(self.world.ITEM_KABINE) + raumkabine = self.world.findRaumById(self.world.RAUM_KABINE) + boot2 = self.world.findRaumById(self.world.RAUM_BOOT2) + + raumkabine.ausgaenge[self.world.RAUF] = boot2.id + self.moveItemVonRaumNachRaum(kabine,boot2) + + self.world.weg.append(raum.name) + self.world.aktuellerRaum = raum + raum.entdeckt = True def liegtItemInRaum(self,itemid, raum): return itemid in raum.items @@ -42,6 +53,15 @@ class ActionBasics: logging.debug(f'ins Inventar {item.name}') self.insInventar(item) + def moveItemVonRaumNachRaum(self,item, raum): + if item.id in self.world.aktuellerRaum.items: + logging.debug(f'entferne {item.name} aus Raum {self.world.aktuellerRaum.id}') + del self.world.aktuellerRaum.items[item.id] + logging.debug(f'bewege {item.name} nach {raum.id}') + item.raumid = raum.id + raum.items[item.id] = item + + def moveItemVonInventarNachRaum(self,item, nachRaumId): del self.world.inventar[item.id] logging.debug(f' Item {item.name} nach RaumId {nachRaumId}') diff --git a/ActionModul.py b/ActionModul.py index adb3414..45dd3cf 100644 --- a/ActionModul.py +++ b/ActionModul.py @@ -205,6 +205,10 @@ class ActionModul(ActionBasics): def leere(self, parsedCommand): item = self.world.findItemImInventar(parsedCommand.gegenstand) + if item == None: + self.setFehler('Das trägst du nicht bei dir.') + return + if item.id == self.world.ITEM_KRUG: if self.isAktuellerRaum(self.world.RAUM_BRACHLAND): if item.zustand == item.VOLL: @@ -468,11 +472,19 @@ class ActionModul(ActionBasics): if item == None: self.setFehler('Das gibts hier nicht.') return + logging.debug(f'ItemId: {item.id}') if self.isItemAndAktRaum(item, self.world.ITEM_LEITER, self.world.RAUM_ESSZIMMER): self.rauf() elif self.isItemAndAktRaum(item, self.world.ITEM_BOOT, self.world.RAUM_HAFEN): boot = self.world.sucheRaum(self.world.RAUM_BOOT) self.wechsleRaum(boot) + elif self.isItem(item,self.world.ITEM_KABINE): + logging.debug(f'gehe in Kabine') + raumid = self.world.aktuellerRaum.id + kabine = self.world.sucheRaum(self.world.RAUM_KABINE) + kabine.ausgaenge[self.world.RAUF] = raumid + self.wechsleRaum(kabine) + else: self.setFehler('Das gibt\'s hier nicht.') diff --git a/TestModule.py b/TestModule.py index 87b916e..6d5fc20 100644 --- a/TestModule.py +++ b/TestModule.py @@ -101,6 +101,8 @@ class TestModule: self.schrittzaehler += 1 pcmd = self.parseInput('nimm Krug') + logging.debug(f'Inventar nach nimm Krug {self.world.inventar}') + self.ac.nimm(pcmd) self.schrittzaehler += 1 pcmd = self.parseInput('öffne Haustür') diff --git a/World.py b/World.py index 52f8c22..1b960c7 100644 --- a/World.py +++ b/World.py @@ -348,6 +348,7 @@ class World: self.objekte = {} self.sortouts = [] self.texte = {} + self.weg = [] self.aktuellerRaum = None self.parsedCommand = None self.NOEXIT = '-1' @@ -388,6 +389,8 @@ class World: self.ITEM_SCHWIMMWESTE = '30' self.ITEM_KABINE = '31' self.ITEM_BEIBOOT = '32' + self.ITEM_DIAMANT = '33' + self.ITEM_SOCKEL = '34' # Räume @@ -429,6 +432,10 @@ class World: self.RAUM_WALD = '36' self.RAUM_STATUE = '37' self.RAUM_KOPF = '38' + self.RAUM_MAUER = '39' + self.RAUM_GRAB = '40' + + diff --git a/tomb.py b/tomb.py index 835578f..50cb996 100755 --- a/tomb.py +++ b/tomb.py @@ -164,7 +164,7 @@ def debug_Personen(): logging.debug(f'Id: {person.id} - Name: {person.name}') def debug_Items(): - logging.debug('liste Items') + logging.debug('liste Items im aktuellen Raum') logging.debug(world.aktuellerRaum.items) count = 0 for itemid in world.aktuellerRaum.items: diff --git a/world.xml b/world.xml index 1501494..d2ec1f4 100644 --- a/world.xml +++ b/world.xml @@ -165,13 +165,14 @@ - + + Du stehst an Deck des Segelboots - + In der Kabine ist die Luft etwas abgestanden. Zum Glück steht die Luke offen, um frische Luft hineinzulassen. @@ -185,7 +186,7 @@ - Im Beiboot + Mit dem Beiboot kannst an der Insel anlegen. @@ -225,29 +226,30 @@ - + Ein alter, dichter Laubwald. - - + + Du stehst vor einer etwa 10m hohen Statue - + + Nach einer kleinen Kletterpartie stehst du stehst auf dem Kopf der Statue. - + Du stehst vor einer Mauer. - + Das Grab des Azteken. Du bist am Ziel. @@ -349,9 +351,12 @@ - - + + + + + @@ -372,6 +377,7 @@ + @@ -424,6 +430,13 @@ Das Segelboot besitzt einen weißen Rumpf und ein schwarzes Dreieckssegel. Am Heck steht keine Name geschrieben, dafür ist eine schwarze Perle aufgemalt. + + --------- + | No | + | Homers | + | Club | + ---------- + Im Tunnel ist es zu dunkel, um etwas zu sehen. Aber du spürst einen leichten Wind, der von Osten durch den Tunnel weht.