4 Commits
0.15 ... 0.16

Author SHA1 Message Date
Olli Graf
ebdf22f6a6 Diamant und Sockel werden sichtbar. 2022-06-13 14:59:55 +02:00
Olli Graf
7bd3ecaba0 Bis Statuenkopf.
Diamant wird sichtbar.
2022-06-12 16:04:41 +02:00
Olli Graf
0ff17aac13 uto: bis zur Klippe. 2022-06-11 14:08:42 +02:00
Olli Graf
3b848ffb80 Schwimmweste anziehen. 2022-06-10 10:26:41 +02:00
9 changed files with 169 additions and 16 deletions

View File

@@ -133,6 +133,10 @@ class ActionModul(ActionBasics):
self.setFehler('Du legst die Planke über den Bach und es ensteht eine Brücke.')
else:
self.setFehler('Das macht hier keinen Sinn.')
elif self.isItem(item, self.world.ITEM_SCHWIMMWESTE):
item.zustand = item.ANGEZOGEN
self.setFehler('Du ziehst die Schwimmweste an.')
def baueBruecke(self):
@@ -180,6 +184,11 @@ class ActionModul(ActionBasics):
if self.isAktuellerRaum(self.world.RAUM_TUNNEL):
self.world.printText(f'raum-{self.world.RAUM_TUNNEL}')
self.world.aktuellerRaum.ausgaenge[self.world.OST] = self.world.RAUM_HAFEN
elif self.isAktuellerRaum(self.world.RAUM_KOPF):
diamant = self.world.findItemById(self.world.ITEM_DIAMANT)
self.macheItemSichtbar(diamant)
def untersuchePerson(self,person):
@@ -260,7 +269,6 @@ class ActionModul(ActionBasics):
logging.debug(f'untersuche() suche nach Gegenstand: {parsedCommand.gegenstand}')
if parsedCommand.gegenstand == None:
self.untersucheAktuellenRaum(parsedCommand)
return
item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand)
@@ -269,6 +277,7 @@ class ActionModul(ActionBasics):
return
if item != None:
logging.debug(f'item.id = {item.id}')
if item.id == self.world.ITEM_PFLANZE:
krug = self.world.findRaumItemById(self.world.ITEM_KRUG)
logging.debug(f'mache Gegenstand {krug.name} sichtbar')
@@ -300,6 +309,16 @@ class ActionModul(ActionBasics):
self.ausDemInventar(item)
elif self.isItem(item,self.world.ITEM_KARTE):
self.world.printKarte()
elif self.isItem(item, self.world.ITEM_KOPF):
self.zeigeItemBeschreibung(item)
diamant = self.world.findItemById(self.world.ITEM_DIAMANT)
self.macheItemSichtbar(diamant)
elif self.isItem(item, self.world.ITEM_MAUER):
self.setFehler('In der Mauer wird ein Sockel sichtbar.')
sockel = self.world.findItemById(self.world.ITEM_SOCKEL)
self.macheItemSichtbar(sockel)
else:
self.zeigeItemBeschreibung(item)
@@ -411,9 +430,10 @@ class ActionModul(ActionBasics):
def nimm(self,parsedCommand):
logging.debug(f'start nimm() {parsedCommand.gegenstand}')
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
logging.debug(f'nimm(): item == {item}')
logging.debug(f'nimm(): item == {item.name}')
if item != None:
if item.imobil:
text = self.world.msg[item.pickupmsg]
@@ -454,6 +474,19 @@ class ActionModul(ActionBasics):
def spring(self,parsedCommand):
if self.isAktuellerRaum(self.world.RAUM_KLIPPE):
weste = self.world.findItemImInventarById(self.world.ITEM_SCHWIMMWESTE)
logging.debug(f'weste={weste.zustand}')
if weste != None and weste.zustand == weste.ANGEZOGEN:
imwasser = self.world.findRaumById(self.world.RAUM_WASSER)
self.wechsleRaum(imwasser)
else:
self.setFehler('Das Wasser ist viel zu tief, du würdest ertrinken.')
def sprich(self,parsedCommand):
person = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand)
@@ -549,11 +582,14 @@ class ActionModul(ActionBasics):
def entzuende(self,parsedCommand):
logging.debug(f'entzünde {parsedCommand.gegenstand}')
item = self.world.findItemImInventar(parsedCommand.gegenstand)
if item == None:
self.setFehler('Das besitzt du nicht.')
return
logging.debug(f'item={item}')
if self.isItem(item, self.world.ITEM_FACKEL):
self.toggleFackel(item)

View File

@@ -44,7 +44,6 @@ class TestModule:
self.ac.untersuche(pcmd)
self.schrittzaehler += 1
self.debug(f'Ausgänge: {self.world.aktuellerRaum.ausgaenge}')
# In den Keller
self.ac.runter()
self.schrittzaehler += 1
@@ -147,9 +146,7 @@ class TestModule:
self.testTeich()
logging.debug('===== Beginn Testmodul Stier =====')
pcmd = self.parseInput('nimm Fisch')
self.ac.nimm(pcmd)
# zum Bach
self.ac.west()
self.schrittzaehler += 1
@@ -358,3 +355,82 @@ class TestModule:
self.ac.ost()
self.schrittzaehler += 1
def testKlippe(self):
self.testInsel()
logging.debug('===== Beginn Testmodul Klippe =====')
pcmd = self.parseInput('entzünde Fackel')
self.ac.entzuende(pcmd)
self.schrittzaehler += 1
#Loch
self.ac.runter()
self.schrittzaehler += 1
pcmd = self.parseInput('nimm Schwimmweste')
self.ac.nimm(pcmd)
self.schrittzaehler += 1
# Insel
self.ac.rauf()
self.schrittzaehler += 1
# return
#Beiboot
self.ac.ost()
self.schrittzaehler += 1
#Boot
self.ac.rauf()
self.schrittzaehler += 1
#klippe
self.ac.nord()
self.schrittzaehler += 1
pcmd = self.parseInput('benutze Schwimmweste')
self.ac.benutze(pcmd)
self.schrittzaehler += 1
#Wasser
pcmd = self.parseInput('spring')
self.ac.spring(pcmd)
self.schrittzaehler += 1
def testStatue(self):
self.testKlippe()
#Strand
self.ac.sued()
self.schrittzaehler += 1
#Wald
self.ac.ost()
self.schrittzaehler += 1
#Statue
self.ac.nord()
self.schrittzaehler += 1
#Kopf
self.ac.rauf()
self.schrittzaehler += 1
pcmd = self.parseInput('untersuche Kopf')
self.ac.untersuche(pcmd)
self.schrittzaehler += 1
pcmd = self.parseInput('nimm Diamant')
self.ac.nimm(pcmd)
self.schrittzaehler += 1
#Statue
self.ac.runter()
self.schrittzaehler += 1
def testMauer(self):
self.testStatue()

View File

@@ -169,6 +169,7 @@ class World:
return raum
return None
def sucheRaumName(self,name):
if name == None:
return self.aktuellerRaum
@@ -214,6 +215,7 @@ class World:
logging.debug(f'item.raumid={item.raumid}')
logging.debug(f'findItemInAktuellerRaum() {itemname} - {item.name}')
if item.raumid == raum.id and item.name.lower() == itemname.lower():
logging.debug(f'return {item.name}')
return item
logging.debug(f'Item {itemname} nicht im aktuellen Raum gefunden')
@@ -403,10 +405,13 @@ class World:
self.ITEM_SCHWIMMWESTE = '30'
self.ITEM_KABINE = '31'
self.ITEM_BEIBOOT = '32'
self.ITEM_DIAMANT = '33'
self.ITEM_DIAMANT = '38'
self.ITEM_SOCKEL = '34'
self.ITEM_PALME = '40'
self.ITEM_LOCH = '41'
self.ITEM_SOCKEL = '41'
self.ITEM_KOPF = '42'
self.ITEM_MAUER = '43'
self.ITEM_LOCH = '44'
# Räume
@@ -448,7 +453,7 @@ class World:
self.RAUM_WALD = '36'
self.RAUM_STATUE = '37'
self.RAUM_KOPF = '38'
self.RAUM_MAUER = '39'
self.RAUM_MAUER = '41'
self.RAUM_GRAB = '40'

View File

@@ -123,6 +123,9 @@ class WorldParser():
gegenstand.pickupmsg = msgid
# logging.debug('Item ' + gegenstand.name + ' - Pickup: ' + gegenstand.pickupmsg)
if id in self.world.gegenstaende:
raise ValueError(f'dopplete Item-Id {id}')
self.world.gegenstaende[id] = gegenstand
# Personen

View File

@@ -83,6 +83,8 @@ class Gegenstand(SuperNode):
self.HAENGEND = 0
self.GELOESCHT = 0
self.ENTZUENDED = 1
self.ANGEZOGEN = 1
self.zustand = self.GESCHLOSSEN
class Adjektiv(SuperNode):

Binary file not shown.

View File

@@ -74,6 +74,8 @@ def verarbeiteBefehl(parsedCommand):
actionmodul.entzuende(parsedCommand)
elif id == '31':
actionmodul.loesche(parsedCommand)
elif id == '32':
actionmodul.spring(parsedCommand)
elif id == '-1':
world.fehler = 'Ich verstehe diesen Befehl nicht'
else:
@@ -152,6 +154,10 @@ def inputLoop(stdscr):
testmodul.testHafen()
elif debugcommand[1] == 'insel':
testmodul.testInsel()
elif debugcommand[1] == 'klippe':
testmodul.testKlippe()
elif debugcommand[1] == 'statue':
testmodul.testStatue()
world.fehler = ''

View File

@@ -191,6 +191,7 @@
<raum id='30' name='Insel'>
<ausgang dir='Ost' nachRaum= '28' />
<ausgang dir='Runter' nachRaum= '31' />
<ausgang dir='Rauf' nachRaum= '41' />
<beschreibung>
Auf der Insel wächst eine einzelne Palme. In Sand hat jemand ein großes Loch gegraben.
@@ -209,13 +210,13 @@
</beschreibung>
</raum>
<raum id='33' name='Klippe'>
<ausgang dir='Süd' nachRaum= '32' />
<ausgang dir='Sued' nachRaum= '32' />
<beschreibung>
Das Boot liegt vor einer Klippe. Neben dieser ist ein Kiesstrand zu erkennen.
</beschreibung>
</raum>
<raum id='34' name='Im Wasser'>
<ausgang dir='Süd' nachRaum= '26' />
<ausgang dir='Sued' nachRaum= '35' />
<beschreibung>
Du treibst im Wasser. Glücklicherweise hast du deine Rettungsweste an.
</beschreibung>
@@ -227,22 +228,24 @@
</beschreibung>
</raum>
<raum id='36' name='Wald'>
<ausgang dir='West' nachRaum= '37' />
<ausgang dir='West' nachRaum= '35' />
<ausgang dir='Nord' nachRaum= '37' />
<beschreibung>
Ein alter, dichter Laubwald.
</beschreibung>
</raum>
<raum id='37' name='Statue'>
<ausgang dir='Rauf' nachRaum= '38' />
<ausgang dir='Ost' nachRaum= '40' />
<ausgang dir='Ost' nachRaum= '39' />
<ausgang dir='Sued' nachRaum= '36' />
<beschreibung>
Du stehst vor einer etwa 10m hohen Statue
</beschreibung>
</raum>
<raum id='38' name='Auf dem Kopf der Statue'>
<ausgang dir='Rauf' nachRaum= '37' />
<ausgang dir='Runter' nachRaum= '37' />
<beschreibung>
Nach einer kleinen Kletterpartie stehst du stehst auf dem Kopf der Statue.
Nach einer kleinen Kletterpartie stehst du auf dem Kopf der Statue.
</beschreibung>
</raum>
<raum id='39' name='Mauer'>
@@ -256,6 +259,14 @@
Das Grab des Azteken. Du bist am Ziel.
</beschreibung>
</raum>
<raum id='41' name='Palme'>
<ausgang dir='Runter' nachRaum= '30' />
<beschreibung>
Du stehst in der Krone der Palme. Du hast einen weiten, aber völlig uninformativen Ausblick.
Aber, du fühlst dich wie der König der Welt.
</beschreibung>
</raum>
</ebene>
<commandset>
@@ -301,6 +312,7 @@
<command name='gib' id='39' key='29' />
<command name='entzünde' id='40' key='30' />
<command name='lösche' id='41' key='31' />
<command name='spring' id='42' key='32' />
</commandset>
@@ -361,7 +373,10 @@
<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' />
<item name='Palme' id='40' display='' raum='30' imobil='true' adjektiv='0' msgid='8' visible='true' />
<item name='Loch' id='41' display='' raum='30' imobil='true' adjektiv='0' msgid='8' visible='true' />
<item name='Sockel' id='41' display='' raum='39' imobil='true' adjektiv='0' msgid='8' visible='false' />
<item name='Mauer' id='43' display='' raum='39' imobil='true' adjektiv='0' msgid='8' visible='true' />
<item name='Kopf' id='42' display='' raum='38' imobil='true' adjektiv='0' msgid='12' visible='true' />
<item name='Loch' id='44' display='' raum='30' imobil='true' adjektiv='0' msgid='8' visible='true' />
</items>
<personen>
@@ -392,6 +407,9 @@
<text id='2'>
In einer Schreibtischschublade findest du einen Schlüssel.
</text>
<text id='item-4'>
Audrey II
</text>
<text id='item-13'>
Der Schlüssel schimmert etwas bläulich.
</text>
@@ -442,6 +460,13 @@
| Club |
----------
</text>
<text id='item-41'>
Die Mauer wurde scheinbar vor ewigen Zeiten aus getrockneten Lehmziegel errichtet und die Fugen
anschlißend mit Lehm verputzt.
</text>
<text id='item-42'>
Der Kopf repräsentiert einen dir unbekannten Mann, der würdevoll über seine linke Schulter schaut.
</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>