Die Kabine bewegt sich mit dem Boot mit.

Raum Boot2 ist erreichbar.
This commit is contained in:
Olli Graf
2022-06-06 16:53:53 +02:00
parent 9fce43d330
commit 278cb17675
6 changed files with 68 additions and 14 deletions

View File

@@ -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}')

View File

@@ -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.')

View File

@@ -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')

View File

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

View File

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

View File

@@ -165,13 +165,14 @@
</beschreibung>
</raum>
<raum id='25' name='Boot'>
<ausgang dir='Süd' nachRaum= '26' />
<ausgang dir='Sued' nachRaum= '27' />
<ausgang dir='runter' nachRaum='26' />
<beschreibung>
Du stehst an Deck des Segelboots
</beschreibung>
</raum>
<raum id='26' name='Kabine'>
<ausgang dir='Süd' nachRaum= '26' />
<ausgang dir='Rauf' nachRaum= '25' />
<beschreibung>
In der Kabine ist die Luft etwas abgestanden. Zum Glück steht die Luke offen, um frische Luft hineinzulassen.
</beschreibung>
@@ -185,7 +186,7 @@
<raum id='28' name='Beiboot'>
<ausgang dir='Ost' nachRaum= '30' />
<beschreibung>
Im Beiboot
Mit dem Beiboot kannst an der Insel anlegen.
</beschreibung>
</raum>
<raum id='30' name='Insel'>
@@ -225,29 +226,30 @@
</beschreibung>
</raum>
<raum id='36' name='Wald'>
<ausgang dir='West' nachRaum= '35' />
<ausgang dir='West' nachRaum= '37' />
<beschreibung>
Ein alter, dichter Laubwald.
</beschreibung>
</raum>
<raum id='37' name='Statue'>
<ausgang dir='Rauf' nachRaum= '37' />
<ausgang dir='Ost' nachRaum= '38' />
<ausgang dir='Rauf' nachRaum= '38' />
<ausgang dir='Ost' nachRaum= '40' />
<beschreibung>
Du stehst vor einer etwa 10m hohen Statue
</beschreibung>
</raum>
<raum id='37' name='Auf dem Kopf der Statue'>
<raum id='38' name='Auf dem Kopf der Statue'>
<ausgang dir='Rauf' nachRaum= '37' />
<beschreibung>
Nach einer kleinen Kletterpartie stehst du stehst auf dem Kopf der Statue.
</beschreibung>
</raum>
<raum id='38' name='Mauer'>
<raum id='39' name='Mauer'>
<beschreibung>
Du stehst vor einer Mauer.
</beschreibung>
</raum>
<raum id='39' name='Grabkammer'>
<raum id='40' name='Grabkammer'>
<ausgang dir='Nord' nachRaum= '38' />
<beschreibung>
Das Grab des Azteken. Du bist am Ziel.
@@ -349,9 +351,12 @@
<item name='Karte' id='27' display='' raum='24' imobil='false' adjektiv = '0' msgid='11' visible='false' />
<item name='Boot' id='28' display='' raum='23' imobil='true' adjektiv = '0' msgid='12' visible='true' />
<item name='Fackel' id='29' display='' raum='26' imobil='false' adjektiv = '0' msgid='11' visible='true' />
<item name='Schwimmweste' id='30' display='' raum='26' imobil='false' adjektiv = '0' msgid='11' visible='true' />
<item name='Kabine' id='31' display='' raum='25' imobil='false' adjektiv = '0' msgid='11' visible='false' />
<item name='Schwimmweste' id='30' display='' raum='31' imobil='false' adjektiv = '0' msgid='13' visible='true' />
<item name='Kabine' id='31' display='' raum='25' imobil='true' adjektiv = '0' msgid='11' visible='true' />
<item name='Beiboot' id='32' display='' raum='25' imobil='false' adjektiv = '0' msgid='12' visible='false' />
<item name='Plakat' id='33' display='' raum='24' imobil='false' adjektiv='0' msgid='3' visible='true' />
<item name='Diamant' id='38' display='' raum='38' imobil='false' adjektiv='0' msgid='3' visible='false' />
<item name='Sockel' id='39' display='' raum='39' imobil='false' adjektiv='0' msgid='3' visible='false' />
</items>
<personen>
@@ -372,6 +377,7 @@
<pickup text='Der scheint wütend zu werden, wenn man ihm am Rüssel zieht.' id='9' />
<pickup text='Das kannst du nicht tragen.' id='10' />
<pickup text='Boote gehören ins Wasser.' id='12' />
<pickup text='Die Kabine zu demontieren würde das Boot zerstören.' id='13' />
</messages>
<bewegungen>
<bewegung id='0' value='' />
@@ -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.
</text>
<text id='item-33'>
---------
| No |
| Homers |
| Club |
----------
</text>
<text id='raum-21'>
Im Tunnel ist es zu dunkel, um etwas zu sehen. Aber du spürst einen leichten Wind, der von Osten durch den Tunnel weht.
</text>