10 Commits
0.14 ... 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
Olli Graf
53579c466b Die Jacke ist nicht mehr verfügbar, wenn der Zwerg sie hat. 2022-06-10 09:51:59 +02:00
Olli Graf
6fb8fc6ecd Schtel und Krug lösen sich auf. 2022-06-10 00:48:03 +02:00
Olli Graf
f10378162d Rückweg von Insel ins Beiboot ins Boot. 2022-06-10 00:29:24 +02:00
Olli Graf
6905936fc3 Loch erreichbar.
Beschreibung abhängig vom Zustand der Fackel
2022-06-09 19:02:15 +02:00
Olli Graf
5efd052927 flexibler Ausgang aus dem Beiboot. 2022-06-06 20:07:21 +02:00
Olli Graf
278cb17675 Die Kabine bewegt sich mit dem Boot mit.
Raum Boot2 ist erreichbar.
2022-06-06 16:53:53 +02:00
11 changed files with 375 additions and 45 deletions

View File

@@ -5,6 +5,7 @@ class ActionBasics:
def __init__(self,world): def __init__(self,world):
self.world = world self.world = world
self.alleBootRaeume = [world.RAUM_BOOT, world.RAUM_BOOT2, world.RAUM_BOOT3]
def debug(self, method, text): def debug(self, method, text):
logging.debug(f'ActionBasics: {text}') logging.debug(f'ActionBasics: {text}')
@@ -24,7 +25,40 @@ class ActionBasics:
def clearFehler(self): def clearFehler(self):
self.world.fehler = '' self.world.fehler = ''
def wechsleBoot(self,raum):
kabine = self.world.findItemById(self.world.ITEM_KABINE)
raumkabine = self.world.findRaumById(self.world.RAUM_KABINE)
beiboot = self.world.findItemById(self.world.ITEM_BEIBOOT)
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): 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:
if bootraum.id == self.world.RAUM_INSEL:
beiboot.ausgaenge[self.world.RAUF] = self.world.RAUM_BOOT3
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 self.world.weg[-1] == self.world.RAUM_BOOT2:
beiboot.ausgaenge[self.world.OST] = self.world.RAUM_INSEL
self.world.weg.append(raum.id)
self.world.aktuellerRaum = raum self.world.aktuellerRaum = raum
raum.entdeckt = True raum.entdeckt = True
@@ -42,6 +76,15 @@ class ActionBasics:
logging.debug(f'ins Inventar {item.name}') logging.debug(f'ins Inventar {item.name}')
self.insInventar(item) 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): def moveItemVonInventarNachRaum(self,item, nachRaumId):
del self.world.inventar[item.id] del self.world.inventar[item.id]
logging.debug(f' Item {item.name} nach RaumId {nachRaumId}') logging.debug(f' Item {item.name} nach RaumId {nachRaumId}')

View File

@@ -42,7 +42,6 @@ class ActionModul(ActionBasics):
else: else:
self.setFehler('Das sehe ich hier nicht.') self.setFehler('Das sehe ich hier nicht.')
def vanishItem(self, item): def vanishItem(self, item):
if item == None: if item == None:
@@ -108,6 +107,7 @@ class ActionModul(ActionBasics):
logging.debug('Schachtel öffnen') logging.debug('Schachtel öffnen')
item.zustand = item.OFFEN item.zustand = item.OFFEN
self.macheItemSichtbar(karte) self.macheItemSichtbar(karte)
self.vanishItem(item)
@@ -133,6 +133,10 @@ class ActionModul(ActionBasics):
self.setFehler('Du legst die Planke über den Bach und es ensteht eine Brücke.') self.setFehler('Du legst die Planke über den Bach und es ensteht eine Brücke.')
else: else:
self.setFehler('Das macht hier keinen Sinn.') 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): def baueBruecke(self):
@@ -180,6 +184,11 @@ class ActionModul(ActionBasics):
if self.isAktuellerRaum(self.world.RAUM_TUNNEL): if self.isAktuellerRaum(self.world.RAUM_TUNNEL):
self.world.printText(f'raum-{self.world.RAUM_TUNNEL}') self.world.printText(f'raum-{self.world.RAUM_TUNNEL}')
self.world.aktuellerRaum.ausgaenge[self.world.OST] = self.world.RAUM_HAFEN 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): def untersuchePerson(self,person):
@@ -205,11 +214,16 @@ class ActionModul(ActionBasics):
def leere(self, parsedCommand): def leere(self, parsedCommand):
item = self.world.findItemImInventar(parsedCommand.gegenstand) 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 item.id == self.world.ITEM_KRUG:
if self.isAktuellerRaum(self.world.RAUM_BRACHLAND): if self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
if item.zustand == item.VOLL: if item.zustand == item.VOLL:
ranke = self.world.findItemById(self.world.ITEM_BOHNENRANKE) ranke = self.world.findItemById(self.world.ITEM_BOHNENRANKE)
fisch = self.world.findItemImInventarById(self.world.ITEM_FISCH) fisch = self.world.findItemImInventarById(self.world.ITEM_FISCH)
krug = self.world.findItemImInventarById(self.world.ITEM_KRUG)
logging.debug(f'Fisch ist {fisch}') logging.debug(f'Fisch ist {fisch}')
@@ -228,7 +242,8 @@ class ActionModul(ActionBasics):
self.setFehler(meldung) self.setFehler(meldung)
if ranke.zustand == ranke.GROSS: if ranke.zustand == ranke.GROSS:
self.world.aktuellerRaum.ausgaenge[self.world.RAUF] = self.world.RAUM_BOHNENRANKE self.world.aktuellerRaum.ausgaenge[self.world.RAUF] = self.world.RAUM_BOHNENRANKE
self.setFehler('Die Bohnenranke reicht jetzt bis in die Wolken hinein.') self.setFehler('Die Bohnenranke reicht jetzt bis in die Wolken hinein.Der Krug löst sich auf')
self.vanishItem(krug)
else: else:
self.setFehler('Der Krug ist leer') self.setFehler('Der Krug ist leer')
else: else:
@@ -254,7 +269,6 @@ class ActionModul(ActionBasics):
logging.debug(f'untersuche() suche nach Gegenstand: {parsedCommand.gegenstand}') logging.debug(f'untersuche() suche nach Gegenstand: {parsedCommand.gegenstand}')
if parsedCommand.gegenstand == None: if parsedCommand.gegenstand == None:
self.untersucheAktuellenRaum(parsedCommand) self.untersucheAktuellenRaum(parsedCommand)
return return
item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand) item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand)
@@ -263,6 +277,7 @@ class ActionModul(ActionBasics):
return return
if item != None: if item != None:
logging.debug(f'item.id = {item.id}')
if item.id == self.world.ITEM_PFLANZE: if item.id == self.world.ITEM_PFLANZE:
krug = self.world.findRaumItemById(self.world.ITEM_KRUG) krug = self.world.findRaumItemById(self.world.ITEM_KRUG)
logging.debug(f'mache Gegenstand {krug.name} sichtbar') logging.debug(f'mache Gegenstand {krug.name} sichtbar')
@@ -294,6 +309,16 @@ class ActionModul(ActionBasics):
self.ausDemInventar(item) self.ausDemInventar(item)
elif self.isItem(item,self.world.ITEM_KARTE): elif self.isItem(item,self.world.ITEM_KARTE):
self.world.printKarte() 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: else:
self.zeigeItemBeschreibung(item) self.zeigeItemBeschreibung(item)
@@ -405,9 +430,10 @@ class ActionModul(ActionBasics):
def nimm(self,parsedCommand): def nimm(self,parsedCommand):
logging.debug(f'start nimm() {parsedCommand.gegenstand}')
item = self.world.findItemInAktuellerRaum(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 != None:
if item.imobil: if item.imobil:
text = self.world.msg[item.pickupmsg] text = self.world.msg[item.pickupmsg]
@@ -448,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): def sprich(self,parsedCommand):
person = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand) person = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand)
@@ -468,11 +507,24 @@ class ActionModul(ActionBasics):
if item == None: if item == None:
self.setFehler('Das gibts hier nicht.') self.setFehler('Das gibts hier nicht.')
return return
logging.debug(f'ItemId: {item.id}')
if self.isItemAndAktRaum(item, self.world.ITEM_LEITER, self.world.RAUM_ESSZIMMER): if self.isItemAndAktRaum(item, self.world.ITEM_LEITER, self.world.RAUM_ESSZIMMER):
self.rauf() self.rauf()
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):
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)
elif self.isItem(item, self.world.ITEM_BEIBOOT):
beiboot = self.world.findRaumById(self.world.RAUM_BEIBOOT)
self.wechsleRaum(beiboot)
else: else:
self.setFehler('Das gibt\'s hier nicht.') self.setFehler('Das gibt\'s hier nicht.')
@@ -510,6 +562,46 @@ class ActionModul(ActionBasics):
self.setFehler('Der Zwerg zieht sich die Jacke an, lächelt dankbar und verschwindet.') self.setFehler('Der Zwerg zieht sich die Jacke an, lächelt dankbar und verschwindet.')
del self.world.aktuellerRaum.personen[zwerg.id] del self.world.aktuellerRaum.personen[zwerg.id]
self.macheItemSichtbar(schachtel) self.macheItemSichtbar(schachtel)
self.vanishItem(item)
def toggleFackel(self,item):
weste = self.world.findItemById(self.world.ITEM_SCHWIMMWESTE)
if item.zustand == item.GELOESCHT:
item.zustand = item.ENTZUENDED
weste.sichtbar = True
self.setFehler('Die Fackel brennt jetzt.')
else:
item.zustand = item.GELOESCHT
if self.world.findItemImInventarById(self.world.ITEM_SCHWIMMWESTE) != None:
weste.sichtbar = False
self.setFehler('Du löscht die Fackel.')
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)
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):

View File

@@ -44,7 +44,6 @@ class TestModule:
self.ac.untersuche(pcmd) self.ac.untersuche(pcmd)
self.schrittzaehler += 1 self.schrittzaehler += 1
self.debug(f'Ausgänge: {self.world.aktuellerRaum.ausgaenge}')
# In den Keller # In den Keller
self.ac.runter() self.ac.runter()
self.schrittzaehler += 1 self.schrittzaehler += 1
@@ -101,6 +100,8 @@ class TestModule:
self.schrittzaehler += 1 self.schrittzaehler += 1
pcmd = self.parseInput('nimm Krug') pcmd = self.parseInput('nimm Krug')
logging.debug(f'Inventar nach nimm Krug {self.world.inventar}')
self.ac.nimm(pcmd) self.ac.nimm(pcmd)
self.schrittzaehler += 1 self.schrittzaehler += 1
pcmd = self.parseInput('öffne Haustür') pcmd = self.parseInput('öffne Haustür')
@@ -145,8 +146,6 @@ class TestModule:
self.testTeich() self.testTeich()
logging.debug('===== Beginn Testmodul Stier =====') logging.debug('===== Beginn Testmodul Stier =====')
pcmd = self.parseInput('nimm Fisch')
self.ac.nimm(pcmd)
# zum Bach # zum Bach
self.ac.west() self.ac.west()
@@ -322,20 +321,116 @@ 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
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

@@ -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))
@@ -158,6 +169,7 @@ class World:
return raum return raum
return None return None
def sucheRaumName(self,name): def sucheRaumName(self,name):
if name == None: if name == None:
return self.aktuellerRaum return self.aktuellerRaum
@@ -203,6 +215,7 @@ class World:
logging.debug(f'item.raumid={item.raumid}') logging.debug(f'item.raumid={item.raumid}')
logging.debug(f'findItemInAktuellerRaum() {itemname} - {item.name}') logging.debug(f'findItemInAktuellerRaum() {itemname} - {item.name}')
if item.raumid == raum.id and item.name.lower() == itemname.lower(): if item.raumid == raum.id and item.name.lower() == itemname.lower():
logging.debug(f'return {item.name}')
return item return item
logging.debug(f'Item {itemname} nicht im aktuellen Raum gefunden') logging.debug(f'Item {itemname} nicht im aktuellen Raum gefunden')
@@ -321,6 +334,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')
@@ -348,6 +363,8 @@ class World:
self.objekte = {} self.objekte = {}
self.sortouts = [] self.sortouts = []
self.texte = {} self.texte = {}
self.weg = []
self.vorraum = '-1'
self.aktuellerRaum = None self.aktuellerRaum = None
self.parsedCommand = None self.parsedCommand = None
self.NOEXIT = '-1' self.NOEXIT = '-1'
@@ -388,6 +405,13 @@ class World:
self.ITEM_SCHWIMMWESTE = '30' self.ITEM_SCHWIMMWESTE = '30'
self.ITEM_KABINE = '31' self.ITEM_KABINE = '31'
self.ITEM_BEIBOOT = '32' self.ITEM_BEIBOOT = '32'
self.ITEM_DIAMANT = '38'
self.ITEM_SOCKEL = '34'
self.ITEM_PALME = '40'
self.ITEM_SOCKEL = '41'
self.ITEM_KOPF = '42'
self.ITEM_MAUER = '43'
self.ITEM_LOCH = '44'
# Räume # Räume
@@ -429,6 +453,10 @@ class World:
self.RAUM_WALD = '36' self.RAUM_WALD = '36'
self.RAUM_STATUE = '37' self.RAUM_STATUE = '37'
self.RAUM_KOPF = '38' self.RAUM_KOPF = '38'
self.RAUM_MAUER = '41'
self.RAUM_GRAB = '40'

View File

@@ -123,6 +123,9 @@ class WorldParser():
gegenstand.pickupmsg = msgid gegenstand.pickupmsg = msgid
# logging.debug('Item ' + gegenstand.name + ' - Pickup: ' + gegenstand.pickupmsg) # 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 self.world.gegenstaende[id] = gegenstand
# Personen # Personen

View File

@@ -16,6 +16,7 @@ class Raum(SuperNode):
self.beschreibung=beschreibung self.beschreibung=beschreibung
self.pickupmsg = '' self.pickupmsg = ''
self.entdeckt = False self.entdeckt = False
self.vorraum = '-1'
self.ausgaenge = { self.ausgaenge = {
'0': '-1', # Nord '0': '-1', # Nord
'1': '-1', # West '1': '-1', # West
@@ -80,6 +81,10 @@ 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.ANGEZOGEN = 1
self.zustand = self.GESCHLOSSEN self.zustand = self.GESCHLOSSEN
class Adjektiv(SuperNode): class Adjektiv(SuperNode):

Binary file not shown.

View File

@@ -43,8 +43,8 @@
^ ^ \ ^ ^ ^ ^ \ ^ ^
| | 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

19
tomb.py
View File

@@ -70,6 +70,12 @@ 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 == '32':
actionmodul.spring(parsedCommand)
elif id == '-1': elif id == '-1':
world.fehler = 'Ich verstehe diesen Befehl nicht' world.fehler = 'Ich verstehe diesen Befehl nicht'
else: else:
@@ -120,6 +126,8 @@ def inputLoop(stdscr):
elif debugcommand[1] == 'karte': elif debugcommand[1] == 'karte':
world.printKarte() world.printKarte()
commandid = '0' commandid = '0'
elif debugcommand[1] == 'weg':
logging.debug(f'gelaufener Weg: {world.weg}')
elif command.startswith('auto:'): elif command.startswith('auto:'):
command = command.rstrip() command = command.rstrip()
@@ -144,6 +152,13 @@ def inputLoop(stdscr):
elif debugcommand[1] == 'hafen': elif debugcommand[1] == 'hafen':
testmodul.testHafen() testmodul.testHafen()
elif debugcommand[1] == 'insel':
testmodul.testInsel()
elif debugcommand[1] == 'klippe':
testmodul.testKlippe()
elif debugcommand[1] == 'statue':
testmodul.testStatue()
world.fehler = '' world.fehler = ''
@@ -164,14 +179,14 @@ def debug_Personen():
logging.debug(f'Id: {person.id} - Name: {person.name}') logging.debug(f'Id: {person.id} - Name: {person.name}')
def debug_Items(): def debug_Items():
logging.debug('liste Items') logging.debug('liste Items im aktuellen Raum')
logging.debug(world.aktuellerRaum.items) logging.debug(world.aktuellerRaum.items)
count = 0 count = 0
for itemid in world.aktuellerRaum.items: for itemid in world.aktuellerRaum.items:
item = world.aktuellerRaum.items[itemid] item = world.aktuellerRaum.items[itemid]
logging.debug(f'count= {count}') logging.debug(f'count= {count}')
# logging.debug(f'Itemtyp: {type(item)}') # logging.debug(f'Itemtyp: {type(item)}')
logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name}') logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name} - sichtbar= {item.sichtbar}')
count = count +1 count = count +1
def debug_Inventar(): def debug_Inventar():

View File

@@ -165,55 +165,58 @@
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='25' name='Boot'> <raum id='25' name='Boot'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Sued' nachRaum= '27' />
<ausgang dir='runter' nachRaum='26' />
<beschreibung> <beschreibung>
Du stehst an Deck des Segelboots Du stehst an Deck des Segelboots
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='26' name='Kabine'> <raum id='26' name='Kabine'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Rauf' nachRaum= '25' />
<beschreibung> <beschreibung>
In der Kabine ist die Luft etwas abgestanden. Zum Glück steht die Luke offen, um frische Luft hineinzulassen. In der Kabine ist die Luft etwas abgestanden. Zum Glück steht die Luke offen, um frische Luft hineinzulassen.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='27' name='Boot'> <raum id='27' name='Boot'>
<ausgang dir='d' nachRaum= '26' /> <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>
</raum> </raum>
<raum id='28' name='Beiboot'> <raum id='28' name='Beiboot'>
<ausgang dir='Ost' nachRaum= '30' />
<beschreibung> <beschreibung>
Im Beiboot Das Beiboot ist geeignet, in seichterem Wasser weiterzufahren. Links und rechts ist jeweils ein Ruder angebracht.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='30' name='Insel'> <raum id='30' name='Insel'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Ost' nachRaum= '28' />
<ausgang dir='Runter' nachRaum= '31' />
<ausgang dir='Rauf' nachRaum= '41' />
<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='Rauf' nachRaum= '30' />
<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='d' nachRaum= '26' /> <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>
</raum> </raum>
<raum id='33' name='Klippe'> <raum id='33' name='Klippe'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Sued' nachRaum= '32' />
<beschreibung> <beschreibung>
Das Boot liegt vor einer Klippe. Neben dieser ist ein Kiesstrand zu erkennen. Das Boot liegt vor einer Klippe. Neben dieser ist ein Kiesstrand zu erkennen.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='34' name='Im Wasser'> <raum id='34' name='Im Wasser'>
<ausgang dir='Süd' nachRaum= '26' /> <ausgang dir='Sued' nachRaum= '35' />
<beschreibung> <beschreibung>
Du treibst im Wasser. Glücklicherweise hast du deine Rettungsweste an. Du treibst im Wasser. Glücklicherweise hast du deine Rettungsweste an.
</beschreibung> </beschreibung>
@@ -226,33 +229,44 @@
</raum> </raum>
<raum id='36' name='Wald'> <raum id='36' name='Wald'>
<ausgang dir='West' nachRaum= '35' /> <ausgang dir='West' nachRaum= '35' />
<ausgang dir='Nord' nachRaum= '37' />
<beschreibung> <beschreibung>
Ein alter, dichter Laubwald. Ein alter, dichter Laubwald.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='37' name='Statue'> <raum id='37' name='Statue'>
<ausgang dir='Rauf' nachRaum= '37' /> <ausgang dir='Rauf' nachRaum= '38' />
<ausgang dir='Ost' nachRaum= '38' /> <ausgang dir='Ost' nachRaum= '39' />
<ausgang dir='Sued' nachRaum= '36' />
<beschreibung> <beschreibung>
Du stehst vor einer etwa 10m hohen Statue Du stehst vor einer etwa 10m hohen Statue
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='37' name='Auf dem Kopf der Statue'> <raum id='38' name='Auf dem Kopf der Statue'>
<ausgang dir='Runter' nachRaum= '37' />
<beschreibung> <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> </beschreibung>
</raum> </raum>
<raum id='38' name='Mauer'> <raum id='39' name='Mauer'>
<beschreibung> <beschreibung>
Du stehst vor einer Mauer. Du stehst vor einer Mauer.
</beschreibung> </beschreibung>
</raum> </raum>
<raum id='39' name='Grabkammer'> <raum id='40' name='Grabkammer'>
<ausgang dir='Nord' nachRaum= '38' /> <ausgang dir='Nord' nachRaum= '38' />
<beschreibung> <beschreibung>
Das Grab des Azteken. Du bist am Ziel. Das Grab des Azteken. Du bist am Ziel.
</beschreibung> </beschreibung>
</raum> </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> </ebene>
<commandset> <commandset>
@@ -296,6 +310,9 @@
<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' />
<command name='spring' id='42' key='32' />
</commandset> </commandset>
@@ -349,9 +366,17 @@
<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='26' imobil='false' adjektiv = '0' msgid='11' 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='false' adjektiv = '0' msgid='11' visible='false' /> <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='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='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='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> </items>
<personen> <personen>
@@ -372,6 +397,7 @@
<pickup text='Der scheint wütend zu werden, wenn man ihm am Rüssel zieht.' id='9' /> <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='Das kannst du nicht tragen.' id='10' />
<pickup text='Boote gehören ins Wasser.' id='12' /> <pickup text='Boote gehören ins Wasser.' id='12' />
<pickup text='Die Kabine zu demontieren würde das Boot zerstören.' id='13' />
</messages> </messages>
<bewegungen> <bewegungen>
<bewegung id='0' value='' /> <bewegung id='0' value='' />
@@ -381,6 +407,9 @@
<text id='2'> <text id='2'>
In einer Schreibtischschublade findest du einen Schlüssel. In einer Schreibtischschublade findest du einen Schlüssel.
</text> </text>
<text id='item-4'>
Audrey II
</text>
<text id='item-13'> <text id='item-13'>
Der Schlüssel schimmert etwas bläulich. Der Schlüssel schimmert etwas bläulich.
</text> </text>
@@ -424,9 +453,29 @@
Das Segelboot besitzt einen weißen Rumpf und ein schwarzes Dreieckssegel. Am Heck steht keine Name geschrieben, dafür ist eine schwarze Perle Das Segelboot besitzt einen weißen Rumpf und ein schwarzes Dreieckssegel. Am Heck steht keine Name geschrieben, dafür ist eine schwarze Perle
aufgemalt. aufgemalt.
</text> </text>
<text id='item-33'>
---------
| No |
| Homers |
| 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'> <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>