Loch erreichbar.

Beschreibung abhängig vom Zustand der Fackel
This commit is contained in:
Olli Graf
2022-06-09 19:02:15 +02:00
parent 5efd052927
commit 6905936fc3
8 changed files with 118 additions and 29 deletions

View File

@@ -50,8 +50,8 @@ class ActionBasics:
else: else:
beiboot.ausgaenge[self.world.RAUF] = '-1' beiboot.ausgaenge[self.world.RAUF] = '-1'
logging.debug(f'Ausgang RAUF im Beiboot ist {beiboot.ausgaenge[self.world.RAUF]}') logging.debug(f'Ausgang RAUF im Beiboot ist {beiboot.ausgaenge[self.world.RAUF]}')
beiboot.ausgaenge[self.world.OST] = -1 beiboot.ausgaenge[self.world.OST] = '-1'
if raum.id == self.world.RAUM_BOOT2: if self.world.weg[-1] == self.world.RAUM_BOOT2:
beiboot.ausgaenge[self.world.OST] = self.world.RAUM_INSEL beiboot.ausgaenge[self.world.OST] = self.world.RAUM_INSEL

View File

@@ -477,6 +477,8 @@ class ActionModul(ActionBasics):
elif self.isItemAndAktRaum(item, self.world.ITEM_BOOT, self.world.RAUM_HAFEN): elif self.isItemAndAktRaum(item, self.world.ITEM_BOOT, self.world.RAUM_HAFEN):
boot = self.world.sucheRaum(self.world.RAUM_BOOT) boot = self.world.sucheRaum(self.world.RAUM_BOOT)
self.wechsleRaum(boot) self.wechsleRaum(boot)
elif self.isItemAndAktRaum(item, self.world.ITEM_LOCH, self.world.RAUM_INSEL):
self.runter()
elif self.isItem(item,self.world.ITEM_KABINE): elif self.isItem(item,self.world.ITEM_KABINE):
logging.debug(f'gehe in Kabine') logging.debug(f'gehe in Kabine')
raumid = self.world.aktuellerRaum.id raumid = self.world.aktuellerRaum.id
@@ -525,6 +527,40 @@ class ActionModul(ActionBasics):
del self.world.aktuellerRaum.personen[zwerg.id] del self.world.aktuellerRaum.personen[zwerg.id]
self.macheItemSichtbar(schachtel) self.macheItemSichtbar(schachtel)
def toggleFackel(self,item):
weste = self.world.findItemById(self.world.ITEM_FACKEL)
if item.zustand == item.GELOESCHT:
item.zustand = item.ENTZUENDED
weste.sichtbar = True
self.setFehler('Die Fackel brennt jetzt.')
else:
item.zustand = item.GELOESCHT
weste.sichtbar = False
self.setFehler('Du löscht die Fackel.')
def entzuende(self,parsedCommand):
item = self.world.findItemImInventar(parsedCommand.gegenstand)
if item == None:
self.setFehler('Das besitzt du nicht.')
if self.isItem(item, self.world.ITEM_FACKEL):
self.toggleFackel(item)
def loesche(self,parsedCommand):
item = self.world.findItemImInventar(parsedCommand.gegenstand)
if item == None:
self.setFehler('Das besitzt du nicht.')
if self.isItem(item, self.world.ITEM_FACKEL):
self.toggleFackel(item)
def geheNach(self,richtung): def geheNach(self,richtung):
logging.debug(f'Richtung {richtung}') logging.debug(f'Richtung {richtung}')

View File

@@ -324,20 +324,37 @@ class TestModule:
self.ac.ost() self.ac.ost()
self.schrittzaehler += 1 self.schrittzaehler += 1
def testInsel(self):
self.testHafen()
#Boot
pcmd = self.parseInput('gehe Boot')
self.ac.gehe(pcmd)
self.schrittzaehler += 1
#Kabine
pcmd = self.parseInput('gehe Kabine')
self.ac.gehe(pcmd)
self.schrittzaehler += 1
pcmd = self.parseInput('nimm Fackel')
self.ac.nimm(pcmd)
self.schrittzaehler += 1
#Boot
self.ac.rauf()
self.schrittzaehler += 1
# vor Insel
self.ac.sued()
self.schrittzaehler += 1
#Beiboot
pcmd = self.parseInput('gehe Beiboot')
self.ac.gehe(pcmd)
self.schrittzaehler += 1
# Insel
self.ac.ost()
self.schrittzaehler += 1

View File

@@ -103,13 +103,24 @@ class World:
def printRaum(self): def printRaum(self):
raum = self.aktuellerRaum raum = self.aktuellerRaum
beschreibung = self.aktuellerRaum.beschreibung
if self.aktuellerRaum.id == self.RAUM_LOCH:
fackel = self.findItemImInventarById(self.ITEM_FACKEL)
logging.debug(f'fackel={fackel}')
if fackel != None:
textid=f'raum-{self.RAUM_LOCH}-{fackel.zustand}'
beschreibung = self.texte[textid].name
self.clearScreen() self.clearScreen()
if self.fehler != None and self.fehler != '': if self.fehler != None and self.fehler != '':
self.stdscr.addstr(self.fehler,curses.color_pair(1)) self.stdscr.addstr(self.fehler,curses.color_pair(1))
self.stdscr.addstr(3,0,'aktueller Raum: ' + raum.name,curses.color_pair(3)) self.stdscr.addstr(3,0,'aktueller Raum: ' + raum.name,curses.color_pair(3))
self.stdscr.addstr(4,0,raum.beschreibung) self.stdscr.addstr(4,0,beschreibung)
self.stdscr.addstr(7,0,'Gegenstände: ' + str(raum.labelsGegenstaende()),curses.color_pair(2)) self.stdscr.addstr(7,0,'Gegenstände: ' + str(raum.labelsGegenstaende()),curses.color_pair(2))
self.stdscr.addstr(8,0,'Inventar: '+ str(self.labelsInventar()), curses.color_pair(2)) self.stdscr.addstr(8,0,'Inventar: '+ str(self.labelsInventar()), curses.color_pair(2))
self.stdscr.addstr(9,0,'Personen: ' + str(raum.labelsPersonen()),curses.color_pair(2)) self.stdscr.addstr(9,0,'Personen: ' + str(raum.labelsPersonen()),curses.color_pair(2))
@@ -321,6 +332,8 @@ class World:
return count, entdeckt return count, entdeckt
def findPrevRaumId(self):
return self.weg[-1]
def debug_Items(self): def debug_Items(self):
logging.debug('liste Items') logging.debug('liste Items')
@@ -392,6 +405,8 @@ class World:
self.ITEM_BEIBOOT = '32' self.ITEM_BEIBOOT = '32'
self.ITEM_DIAMANT = '33' self.ITEM_DIAMANT = '33'
self.ITEM_SOCKEL = '34' self.ITEM_SOCKEL = '34'
self.ITEM_PALME = '40'
self.ITEM_LOCH = '41'
# Räume # Räume

View File

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

22
map.txt
View File

@@ -34,17 +34,17 @@
| |
| |
V V
Pfad<--> Pfad Kopf Pfad<--> Pfad Kopf
^ ^ ^ ^
| | | |
| | | |
V V V V
Tal<---> Tunnel <--->Hafen<-->Boot Statue<-------------->Mauer Tal<---> Tunnel <--->Hafen<-->Boot Statue<-------------->Mauer
^ ^ \ ^ ^ ^ ^ \ ^ ^
| | Kabine | | | | Kabine | |
Boot2 | | | Boot2 | | |
| | / | | | | / \ | |
V V / V V V V / \ V V
Baum <--> Baumhaus Klippe<-->Strand<--> Wald Grabkammer Baum <--> Baumhaus Klippe<-->Strand<--> Wald Grabkammer
| | | |
| Boot3 | Boot3

View File

@@ -70,6 +70,10 @@ def verarbeiteBefehl(parsedCommand):
actionmodul.wirf(parsedCommand) actionmodul.wirf(parsedCommand)
elif id == '29': elif id == '29':
actionmodul.gib(parsedCommand) actionmodul.gib(parsedCommand)
elif id == '30':
actionmodul.entzuende(parsedCommand)
elif id == '31':
actionmodul.loesche(parsedCommand)
elif id == '-1': elif id == '-1':
world.fehler = 'Ich verstehe diesen Befehl nicht' world.fehler = 'Ich verstehe diesen Befehl nicht'
else: else:
@@ -146,6 +150,9 @@ def inputLoop(stdscr):
elif debugcommand[1] == 'hafen': elif debugcommand[1] == 'hafen':
testmodul.testHafen() testmodul.testHafen()
elif debugcommand[1] == 'insel':
testmodul.testInsel()
world.fehler = '' world.fehler = ''

View File

@@ -178,7 +178,7 @@
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='27' name='Boot'> <raum id='27' name='Boot'>
<ausgang dir='Nord' nachRaum= '25' /> <ausgang dir='Nord' nachRaum= '33' />
<beschreibung> <beschreibung>
Du stehst an Deck des Segelboots. Vor dem Bug liegt eine kleine Insel. Du stehst an Deck des Segelboots. Vor dem Bug liegt eine kleine Insel.
</beschreibung> </beschreibung>
@@ -189,19 +189,21 @@
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='30' name='Insel'> <raum id='30' name='Insel'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Ost' nachRaum= '27' />
<ausgang dir='Runter' nachRaum= '31' />
<beschreibung> <beschreibung>
Du stehst an Deck des Segelboots. Vor dem Bug liegt eine kleine Insel. Auf der Insel wächst eine einzelne Palme. In Sand hat jemand ein großes Loch gegraben.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='31' name='Loch'> <raum id='31' name='Loch'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Süd' nachRaum= '26' />
<beschreibung> <beschreibung>
Du stehst an Deck des Segelboots. Vor dem Bug liegt eine kleine Insel. Im Loch.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='32' name='Boot'> <raum id='32' name='Boot'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Ost' nachRaum= '33' />
<beschreibung> <beschreibung>
Du stehst an Deck des Segelboots. Vor dem Bug liegt eine kleine Insel. Du stehst an Deck des Segelboots. Vor dem Bug liegt eine kleine Insel.
</beschreibung> </beschreibung>
@@ -297,6 +299,8 @@
<command name='fülle' id='37' key='27' /> <command name='fülle' id='37' key='27' />
<command name='wirf' id='38' key='28' /> <command name='wirf' id='38' key='28' />
<command name='gib' id='39' key='29' /> <command name='gib' id='39' key='29' />
<command name='entzünde' id='40' key='30' />
<command name='lösche' id='41' key='31' />
</commandset> </commandset>
@@ -350,12 +354,14 @@
<item name='Karte' id='27' display='' raum='24' imobil='false' adjektiv = '0' msgid='11' visible='false' /> <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='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='Fackel' id='29' display='' raum='26' imobil='false' adjektiv = '0' msgid='11' visible='true' />
<item name='Schwimmweste' id='30' display='' raum='31' imobil='false' adjektiv = '0' msgid='13' visible='true' /> <item name='Schwimmweste' id='30' display='' raum='31' imobil='false' adjektiv = '0' msgid='13' visible='false' />
<item name='Kabine' id='31' display='' raum='25' imobil='true' adjektiv = '0' msgid='11' 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='true' /> <item name='Beiboot' id='32' display='' raum='25' imobil='false' adjektiv = '0' msgid='12' visible='true' />
<item name='Plakat' id='33' display='' raum='24' imobil='false' adjektiv='0' msgid='3' visible='true' /> <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='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='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' />
</items> </items>
<personen> <personen>
@@ -439,6 +445,12 @@
<text id='raum-21'> <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. 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> </text>
<text id='raum-31-0'>
In das Loch dringt kein Sonnenlicht, du siehst gar nichts.
</text>
<text id='raum-31-1'>
Im Licht der Fackel erkennst du, dass das Loch sorgfältig gegraben und mit Schiffsplanken abgestützt wurde.
</text>
<text id='npc-6'> <text id='npc-6'>
Der Zwerg klappert vor Kälte mit den Zähnen und kann nicht sprechen. Der Zwerg klappert vor Kälte mit den Zähnen und kann nicht sprechen.
</text> </text>