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