From 5efd052927a6cf311f4975ee0766dfc0fdaf8bd0 Mon Sep 17 00:00:00 2001 From: Olli Graf Date: Mon, 6 Jun 2022 20:07:21 +0200 Subject: [PATCH] flexibler Ausgang aus dem Beiboot. --- ActionBasics.py | 36 ++++++++++++++++++++++++++++-------- ActionModul.py | 4 +++- World.py | 1 + data/Raum.py | 1 + tomb.py | 2 ++ world.xml | 7 +++---- 6 files changed, 38 insertions(+), 13 deletions(-) diff --git a/ActionBasics.py b/ActionBasics.py index 2e2bb8d..6f81c2c 100644 --- a/ActionBasics.py +++ b/ActionBasics.py @@ -5,6 +5,7 @@ class ActionBasics: def __init__(self,world): self.world = world + self.alleBootRaeume = [world.RAUM_BOOT, world.RAUM_BOOT2, world.RAUM_BOOT3] def debug(self, method, text): logging.debug(f'ActionBasics: {text}') @@ -24,18 +25,37 @@ class ActionBasics: def clearFehler(self): self.world.fehler = '' - def wechsleRaum(self,raum): - logging.debug(f'wechsle in RaumId: {raum.id}') - if raum.id == self.world.RAUM_BOOT2: - logging.debug('wechsle nach Raum Boot2') + def wechsleBoot(self,raum): kabine = self.world.findItemById(self.world.ITEM_KABINE) raumkabine = self.world.findRaumById(self.world.RAUM_KABINE) - boot2 = self.world.findRaumById(self.world.RAUM_BOOT2) + beiboot = self.world.findItemById(self.world.ITEM_BEIBOOT) - raumkabine.ausgaenge[self.world.RAUF] = boot2.id - self.moveItemVonRaumNachRaum(kabine,boot2) + if raum.id in self.alleBootRaeume: + raumkabine.ausgaenge[self.world.RAUF] = raum.id + self.moveItemVonRaumNachRaum(kabine,raum) + self.moveItemVonRaumNachRaum(beiboot,raum) + + def wechsleRaum(self,raum): + logging.debug(f'wechsle in RaumId: {raum.id}') + if raum.id in self.alleBootRaeume: + logging.debug('wechsle nach anderen Bootraum') + self.wechsleBoot(raum) + elif raum.id == self.world.RAUM_BEIBOOT: + beiboot = self.world.findRaumById(self.world.RAUM_BEIBOOT) + logging.debug(f'Pfad: {self.world.weg}') + bootraum = self.world.findRaumById(self.world.weg[-1]) + logging.debug(f'wechsle ins Beiboot bootraum.id= {bootraum.id}') + if(bootraum.id in self.alleBootRaeume): + beiboot.ausgaenge[self.world.RAUF] = bootraum.id + else: + beiboot.ausgaenge[self.world.RAUF] = '-1' + logging.debug(f'Ausgang RAUF im Beiboot ist {beiboot.ausgaenge[self.world.RAUF]}') + beiboot.ausgaenge[self.world.OST] = -1 + if raum.id == self.world.RAUM_BOOT2: + beiboot.ausgaenge[self.world.OST] = self.world.RAUM_INSEL - self.world.weg.append(raum.name) + + self.world.weg.append(raum.id) self.world.aktuellerRaum = raum raum.entdeckt = True diff --git a/ActionModul.py b/ActionModul.py index 45dd3cf..2369359 100644 --- a/ActionModul.py +++ b/ActionModul.py @@ -42,7 +42,6 @@ class ActionModul(ActionBasics): else: self.setFehler('Das sehe ich hier nicht.') - def vanishItem(self, item): if item == None: @@ -484,6 +483,9 @@ class ActionModul(ActionBasics): kabine = self.world.sucheRaum(self.world.RAUM_KABINE) kabine.ausgaenge[self.world.RAUF] = raumid self.wechsleRaum(kabine) + elif self.isItem(item, self.world.ITEM_BEIBOOT): + beiboot = self.world.findRaumById(self.world.RAUM_BEIBOOT) + self.wechsleRaum(beiboot) else: self.setFehler('Das gibt\'s hier nicht.') diff --git a/World.py b/World.py index 1b960c7..26f694b 100644 --- a/World.py +++ b/World.py @@ -349,6 +349,7 @@ class World: self.sortouts = [] self.texte = {} self.weg = [] + self.vorraum = '-1' self.aktuellerRaum = None self.parsedCommand = None self.NOEXIT = '-1' diff --git a/data/Raum.py b/data/Raum.py index d79779a..55e0dfc 100644 --- a/data/Raum.py +++ b/data/Raum.py @@ -16,6 +16,7 @@ class Raum(SuperNode): self.beschreibung=beschreibung self.pickupmsg = '' self.entdeckt = False + self.vorraum = '-1' self.ausgaenge = { '0': '-1', # Nord '1': '-1', # West diff --git a/tomb.py b/tomb.py index 50cb996..51a03b5 100755 --- a/tomb.py +++ b/tomb.py @@ -120,6 +120,8 @@ def inputLoop(stdscr): elif debugcommand[1] == 'karte': world.printKarte() commandid = '0' + elif debugcommand[1] == 'weg': + logging.debug(f'gelaufener Weg: {world.weg}') elif command.startswith('auto:'): command = command.rstrip() diff --git a/world.xml b/world.xml index d2ec1f4..bf8eabd 100644 --- a/world.xml +++ b/world.xml @@ -178,15 +178,14 @@ - + Du stehst an Deck des Segelboots. Vor dem Bug liegt eine kleine Insel. - - Mit dem Beiboot kannst an der Insel anlegen. + Das Beiboot ist geeignet, in seichterem Wasser weiterzufahren. Links und rechts ist jeweils ein Ruder angebracht. @@ -353,7 +352,7 @@ - +