Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c634711b57 | ||
![]() |
33ee761f32 | ||
![]() |
1249bb74ec | ||
![]() |
6ae6f3efd8 | ||
![]() |
227271ad09 | ||
![]() |
fef412580a | ||
![]() |
c2aca6cf07 |
67
ActionBasics.py
Normal file
67
ActionBasics.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import logging
|
||||
import inspect
|
||||
|
||||
class ActionBasics:
|
||||
|
||||
def __init__(self,world):
|
||||
self.world = world
|
||||
|
||||
def debug(self, method, text):
|
||||
logging.debug(f'ActionBasics: {text}')
|
||||
|
||||
def insInventar(self, item):
|
||||
logging.debug(f'neu ins Inventar: {item.name}')
|
||||
self.world.inventar[item.id] = item
|
||||
|
||||
def setFehler(self,text):
|
||||
self.world.fehler =text
|
||||
|
||||
def clearFehler(self):
|
||||
self.world.fehler = ''
|
||||
|
||||
def moveItemVonRaumNachInventar(self,item):
|
||||
logging.debug(f'entferne aus aktuellen Raum {item.name}')
|
||||
del self.world.aktuellerRaum.items[item.id]
|
||||
logging.debug(f'ins Inventar {item.name}')
|
||||
self.insInventar(item)
|
||||
|
||||
def moveItemVonInventarNachRaum(self,item, nachRaumId):
|
||||
self.ausDemInventar(item)
|
||||
raum = self.world.findRaumById(nachRaumId)
|
||||
raum.items[item.id] = item
|
||||
item.raumid = nachRaumId
|
||||
|
||||
def isItemAndAktRaum(self,item, itemid, raumid):
|
||||
isItem = self.isItem(item,itemid)
|
||||
isRaum = self.isAktuellerRaum(raumid)
|
||||
|
||||
logging.debug(f'isItem={isItem}, isRaum={isRaum}')
|
||||
return isItem and isRaum
|
||||
|
||||
def isItem(self, item, itemid):
|
||||
return item.id == itemid
|
||||
|
||||
def macheWegFrei(self, richtung, raumid):
|
||||
logging.debug(f'Richtung {richtung} führt jetzt zu RaumId {raumid}')
|
||||
self.world.aktuellerRaum.ausgaenge[richtung] = raumid
|
||||
|
||||
def findItemInAktuellerRaumById(self, itemid):
|
||||
for itemid in self.world.aktuellerRaum.items:
|
||||
raum = self.world.aktuellerRaum
|
||||
|
||||
item = self.world.aktuellerRaum.items[itemid]
|
||||
logging.debug(f'{itemid} -{item.id}')
|
||||
if item.id == itemid:
|
||||
return item
|
||||
return None
|
||||
|
||||
def personVonRaumNachRaum(self, person, vonRaumId, nachRaumId):
|
||||
vonRaum = self.world.findRaumById(vonRaumId)
|
||||
nachRaum = self.world.findRaumById(nachRaumId)
|
||||
|
||||
del vonRaum.personen[person.id]
|
||||
nachRaum.personen[person.id] = person
|
||||
person.raumid = nachRaumId
|
||||
|
||||
|
||||
|
181
ActionModul.py
181
ActionModul.py
@@ -1,6 +1,9 @@
|
||||
import logging
|
||||
# Actionmdul - hier werden die Kommandos ausgeführt und die Spielwelt entsprend aktualisiert.
|
||||
|
||||
class ActionModul:
|
||||
import logging
|
||||
from ActionBasics import ActionBasics
|
||||
|
||||
class ActionModul(ActionBasics):
|
||||
|
||||
def isBlank(self,str):
|
||||
logging.debug(f'isBlank(): str=*{str}*')
|
||||
@@ -10,7 +13,7 @@ class ActionModul:
|
||||
|
||||
def __init__(self, world):
|
||||
|
||||
self.world = world
|
||||
super().__init__(world)
|
||||
|
||||
def warte(self):
|
||||
print('Du wartest')
|
||||
@@ -31,10 +34,19 @@ class ActionModul:
|
||||
if item != None:
|
||||
if item.id == self.world.ITEM_RANKGITTER:
|
||||
self.rauf()
|
||||
elif item.id == self.world.ITEM_BOHNENRANKE:
|
||||
if item.zustand == item.GROSS:
|
||||
self.rauf()
|
||||
else:
|
||||
self.setFehler('zum Klettern ist die Bohnenranke zu klein.')
|
||||
else:
|
||||
self.setFehler('Das sehe ich hier nicht.')
|
||||
|
||||
|
||||
def vanishItem(self, item):
|
||||
item.sichtbar = False
|
||||
self.ausDemInventar(item)
|
||||
|
||||
def oeffne(self,parsedCommand):
|
||||
item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand);
|
||||
|
||||
@@ -46,10 +58,10 @@ class ActionModul:
|
||||
logging.debug('öffne Truhe')
|
||||
schluessel = self.world.findItemImInventarById(self.world.ITEM_KLEINER_SCHLUESSEL)
|
||||
|
||||
self.vanishItem(schluessel)
|
||||
|
||||
if schluessel != None and item.zustand != item.OFFEN:
|
||||
item.zustand = item.OFFEN
|
||||
schluessel.sichtbar = False
|
||||
self.ausDemInventar(schluessel)
|
||||
seil = self.world.findItemById(self.world.ITEM_SEIL)
|
||||
seil.raumid = self.world.aktuellerRaum.id
|
||||
seil.sichtbar = True
|
||||
@@ -63,18 +75,32 @@ class ActionModul:
|
||||
self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.')
|
||||
|
||||
elif item.id == self.world.ITEM_HAUSTUER:
|
||||
if self.world.aktuellerRaum.id == self.world.RAUM_FLUR:
|
||||
if self.isAktuellerRaum(self.world.RAUM_FLUR):
|
||||
schluessel = self.world.findItemImInventarById(self.world.ITEM_HAUSTUERSCHLUESSEL)
|
||||
|
||||
logging.debug(f'öffne Haustür Schlüssel ist {schluessel}')
|
||||
if schluessel != None:
|
||||
item.zustand = item.OFFEN
|
||||
schluessel.sichtbar = False
|
||||
self.vanishItem(schluessel)
|
||||
self.setFehler('Die Haustür ist geöffnet,der Haustürschlüssel löst sich auf.')
|
||||
self.world.aktuellerRaum.ausgaenge[self.world.SUED] = self.world.RAUM_GARTEN
|
||||
self.ausDemInventar(schluessel)
|
||||
else:
|
||||
self.setFehler('Die Tür ist verschlossen.')
|
||||
elif item.id == self.world.ITEM_GATTER:
|
||||
logging.debug('Gatter öffnen')
|
||||
if self.isAktuellerRaum(self.world.RAUM_WIESE):
|
||||
stier = self.world.findPersonImAktuellenRaum(self.world.PERSON_STIER)
|
||||
|
||||
logging.debug('Stier ist {stier}')
|
||||
|
||||
if stier != None:
|
||||
item.zustand = item.OFFEN
|
||||
self.macheWegFrei(self.world.SUED,self.world.RAUM_BRACHLAND)
|
||||
self.setFehler('Das Gatter steht offen.')
|
||||
else:
|
||||
self.setFehler(f'Der {stier.name} steht dir im Weg.')
|
||||
|
||||
|
||||
|
||||
def isAktuellerRaum(self, raumid):
|
||||
return self.world.aktuellerRaum.id == raumid
|
||||
@@ -122,11 +148,6 @@ class ActionModul:
|
||||
else:
|
||||
self.setFehler("Diesen Gegenstand besitzt du nicht.")
|
||||
|
||||
def setFehler(self,text):
|
||||
self.world.fehler =text
|
||||
|
||||
def clearFehler(self):
|
||||
self.world.fehler = ''
|
||||
|
||||
|
||||
def stelle(self,parsedCommand):
|
||||
@@ -166,15 +187,40 @@ class ActionModul:
|
||||
if item.id == self.world.ITEM_BOXSACK:
|
||||
self.setFehler('Der Boxsack sagt: Hmm, hmm?')
|
||||
|
||||
def leere(self, parsedCommand):
|
||||
skip
|
||||
def leere(self, parsedCommand):
|
||||
item = self.world.findItemImInventar(parsedCommand.gegenstand)
|
||||
|
||||
def fuelle(self, parsedCommand):
|
||||
skip
|
||||
if item.id == self.world.ITEM_KRUG:
|
||||
if self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
|
||||
if item.zustand == item.VOLL:
|
||||
ranke = self.world.findItemById(self.world.ITEM_BOHNENRANKE)
|
||||
|
||||
if ranke.zustand < ranke.GROSS:
|
||||
ranke.zustand = ranke.zustand +1
|
||||
self.setFehler('Die Bohnenranke wächst.')
|
||||
if ranke.zustand == ranke.GROSS:
|
||||
self.world.aktuellerRaum.ausgaenge[self.world.RAUF] = self.world.RAUM_BOHNENRANKE
|
||||
self.setFehler('Die Bohnenranke reicht jetzt bis in die Wolken hinein.')
|
||||
else:
|
||||
self.setFehler('Der Krug ist leer')
|
||||
else:
|
||||
item.zustand = item.LEER
|
||||
|
||||
def fuelle(self, parsedCommand):
|
||||
item = self.world.findItemImInventar(parsedCommand.gegenstand)
|
||||
|
||||
if item.id == self.world.ITEM_KRUG:
|
||||
if self.isAktuellerRaum(self.world.RAUM_TEICH):
|
||||
item.zustand = item.VOLL
|
||||
self.setFehler('Der Krug ist jetzt voll')
|
||||
|
||||
def zeigeItemBeschreibung(self,item):
|
||||
self.world.printText(f'item-{item.id}')
|
||||
textid = f'item-{item.id}'
|
||||
if item.id == self.world.ITEM_BOHNENRANKE:
|
||||
textid = f'item-{item.id}-{item.zustand}'
|
||||
else:
|
||||
textid = f'item-{item.id}'
|
||||
self.world.printText(textid)
|
||||
|
||||
def untersuche(self,parsedCommand):
|
||||
logging.debug(f'untersuche() suche nach Gegenstand: {parsedCommand.gegenstand}')
|
||||
@@ -184,6 +230,9 @@ def fuelle(self, parsedCommand):
|
||||
return
|
||||
|
||||
item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand)
|
||||
if item == None:
|
||||
self.setFehler('Das sehe ich hier nicht')
|
||||
return
|
||||
|
||||
if item != None:
|
||||
if item.id == self.world.ITEM_PFLANZE:
|
||||
@@ -217,10 +266,6 @@ def fuelle(self, parsedCommand):
|
||||
else:
|
||||
self.zeigeItemBeschreibung(item)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
else:
|
||||
logging.debug('Kein Item gefunden, suche nach Raum')
|
||||
self.untersucheAktuellenRaum(parsedCommand)
|
||||
@@ -238,6 +283,53 @@ def fuelle(self, parsedCommand):
|
||||
def fange(self, parsedCommand):
|
||||
skip
|
||||
|
||||
def wirf(self,parsedCommand):
|
||||
item = self.world.findItemImInventar(parsedCommand.gegenstand)
|
||||
|
||||
if item == None:
|
||||
self.setFehler('Das besitzt du nicht.')
|
||||
return
|
||||
|
||||
if self.isItemAndAktRaum(item, self.world.ITEM_SEIL,self.world.RAUM_BAUM):
|
||||
self.world.printText('seilwurf')
|
||||
self.macheWegFrei(self.world.RAUF,self.world.RAUM_BAUMHAUS)
|
||||
self.ausDemInventar(item)
|
||||
elif self.isAktuellerRaum(self.world.RAUM_BOHNENRANKE):
|
||||
if self.isItem(item, self.world.ITEM_MAUS):
|
||||
|
||||
elefant = self.findItemInAktuellerRaumById(self.world.ITEM_ELEFANT)
|
||||
|
||||
logging.debug(f'Elefant - {elefant}')
|
||||
if elefant != None:
|
||||
self.world.printText('mauswurf')
|
||||
self.ausDemInventar(item)
|
||||
self.macheWegFrei(self.world.SUED,self.world.RAUM_PFAD)
|
||||
del self.world.aktuellerRaum.items[elefant.id]
|
||||
else:
|
||||
self.setFehler('Der Elefant ist schon geflohen.')
|
||||
else:
|
||||
self.setFehler('Das besitzt du nicht')
|
||||
elif self.isAktuellerRaum(self.world.RAUM_WIESE):
|
||||
logging.debug('Jackenwurf')
|
||||
stier = self.world.findPersonImAktuellenRaumById(self.world.PERSON_STIER)
|
||||
jacke = self.world.findItemImInventarById(self.world.ITEM_JACKE)
|
||||
|
||||
logging.debug(f'Stier {stier},Jacke {jacke}')
|
||||
if stier != None:
|
||||
if jacke != None:
|
||||
self.world.printText('jackewurf')
|
||||
self.personVonRaumNachRaum(stier,self.world.aktuellerRaum.id, self.world.RAUM_FELD)
|
||||
self.moveItemVonInventarNachRaum(jacke, self.world.RAUM_FELD)
|
||||
else:
|
||||
self.setFehler('Die trägst du nicht bei dir.')
|
||||
else:
|
||||
self.verliere(parsedCommand)
|
||||
else:
|
||||
self.verliere(parsedCommand)
|
||||
|
||||
|
||||
|
||||
|
||||
def klettere(self, parsedCommand):
|
||||
leiter = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||
|
||||
@@ -246,12 +338,17 @@ def fuelle(self, parsedCommand):
|
||||
if self.isAktuellerRaum(self.world.RAUM_ESSZIMMER):
|
||||
logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
|
||||
self.rauf()
|
||||
elif self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
|
||||
ranke = self.findItemImInventarOderAktuellerRaum(self.world.ITEM_BOHNENRANKE)
|
||||
|
||||
if ranke.zustand == Gegenstand.GROSS:
|
||||
self.ac.rauf()
|
||||
else:
|
||||
self.setFehler('Die Bohnenranke ist zu klein, um daran hoch zu klettern.')
|
||||
else:
|
||||
self.setFehler('Eine Leiter sehe ich hier nicht.')
|
||||
|
||||
def insInventar(self, item):
|
||||
logging.debug(f'neu ins Inventar: {item.name}')
|
||||
self.world.inventar[item.id] = item
|
||||
|
||||
|
||||
|
||||
def nimm(self,parsedCommand):
|
||||
@@ -268,9 +365,6 @@ def fuelle(self, parsedCommand):
|
||||
text = self.world.msg[item.pickupmsg]
|
||||
self.setFehler(text)
|
||||
else:
|
||||
logging.debug(f'Item {item.name} aus aktuellem Raum entfernen')
|
||||
del self.world.aktuellerRaum.items[item.id]
|
||||
logging.debug(f'Item {item.name} ins Inventar')
|
||||
|
||||
aufnehmen = True
|
||||
|
||||
@@ -285,19 +379,22 @@ def fuelle(self, parsedCommand):
|
||||
krug = self.world.findItemImInventarById(self.world.ITEM_KRUG)
|
||||
|
||||
if krug != None:
|
||||
krug.zustand = krug.VOLL
|
||||
self.setFehler('Du schöpfst mit dem Krug und der Fisch ist drin.')
|
||||
else:
|
||||
self.setFehler('Der Fisch ist zu glitschig, um ihn mit der Hand zu fangen.')
|
||||
aufnehmen = False
|
||||
|
||||
if aufnehmen:
|
||||
self.insInventar(item)
|
||||
self.moveItemVonRaumNachInventar(item)
|
||||
|
||||
|
||||
|
||||
else:
|
||||
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
|
||||
|
||||
|
||||
|
||||
def sprich(self,parsedCommand):
|
||||
geist = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand)
|
||||
|
||||
@@ -312,6 +409,17 @@ def fuelle(self, parsedCommand):
|
||||
else:
|
||||
self.world.printText('hilfe')
|
||||
|
||||
def geheNachItem(parsedCommand):
|
||||
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||
|
||||
if item == None:
|
||||
self.setFehler('Das gibts hier nicht.')
|
||||
return
|
||||
if self.isItemAndAktRaum(item, self.world.ITEM_LEITER, self.world.RAUM_ESSZIMMER):
|
||||
self.rauf()
|
||||
else:
|
||||
self.setFehler('Das gibt\'s hier nicht.')
|
||||
|
||||
def gehe(self,parsedCommand):
|
||||
richtung = parsedCommand.gegenstand.lower()
|
||||
logging.debug("gehe nach " + richtung)
|
||||
@@ -320,16 +428,21 @@ def fuelle(self, parsedCommand):
|
||||
self.geheNach(richtung)
|
||||
elif richtung == 'süd':
|
||||
self.geheNach(richtung)
|
||||
if richtung == 'west':
|
||||
elif richtung == 'west':
|
||||
self.geheNach(richtung)
|
||||
if richtung == 'ost':
|
||||
elif richtung == 'ost':
|
||||
self.geheNach(richtung)
|
||||
if richtung == 'rauf':
|
||||
elif richtung == 'rauf':
|
||||
self.rauf()
|
||||
else:
|
||||
self.geheNachItem(parsedCommand)
|
||||
|
||||
|
||||
def wechsleRaum(self,raum):
|
||||
self.world.aktuellerRaum = raum
|
||||
raum.entdeckt = True
|
||||
def geheNach(self,richtung):
|
||||
logging.debug(f'geheNach() Richtung {richtung}')
|
||||
logging.debug(f'Richtung {richtung}')
|
||||
raum = self.world.aktuellerRaum
|
||||
|
||||
if raum.ausgaenge[richtung]:
|
||||
@@ -342,7 +455,7 @@ def fuelle(self, parsedCommand):
|
||||
self.setFehler("In diese Richtung gibt's keine Ausgang!")
|
||||
|
||||
if raum != None:
|
||||
self.world.aktuellerRaum = raum
|
||||
self.wechsleRaum(raum)
|
||||
else:
|
||||
logging.debug('Kein Raum zur AusgangId')
|
||||
self.setFehler("In diese Richtung gibt's keine Ausgang!")
|
||||
|
223
TestModule.py
223
TestModule.py
@@ -1,3 +1,4 @@
|
||||
# Testdurchläufe
|
||||
import logging
|
||||
import ActionModul
|
||||
|
||||
@@ -21,110 +22,270 @@ class TestModule:
|
||||
|
||||
#Auf den Dachboden
|
||||
self.ac.rauf()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
#Zurück ins Wohnzimmer
|
||||
self.ac.runter()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
#In den Flur
|
||||
self.ac.sued()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
# Ins Schlafzimmer
|
||||
self.ac.west()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
self.debug(f'aktueller Raum: {self.world.aktuellerRaum.name}')
|
||||
self.debug(f'Ausgänge: {self.world.aktuellerRaum.ausgaenge}')
|
||||
pcmd = self.parseInput('untersuche Bett')
|
||||
|
||||
|
||||
self.ac.untersuche(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
self.debug(f'Ausgänge: {self.world.aktuellerRaum.ausgaenge}')
|
||||
# In den Keller
|
||||
self.ac.runter()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('nimm Jacke')
|
||||
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('benutze Jacke')
|
||||
|
||||
self.ac.benutze(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('öffne Truhe')
|
||||
|
||||
self.ac.oeffne(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
def testTeich(self):
|
||||
self.testOeffneTruhe()
|
||||
pcmd = self.parseInput('nimm Seil')
|
||||
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
pcmd = self.parseInput('nimm Schwert')
|
||||
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('nimm Seil')
|
||||
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler += 1
|
||||
|
||||
|
||||
self.world.schrittzaehler = self.schrittzaehler
|
||||
|
||||
|
||||
def testTeich(self):
|
||||
self.testOeffneTruhe()
|
||||
|
||||
#Rauf ins Schlafzimmer
|
||||
self.ac.rauf()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('untersuche Nachtschrank')
|
||||
|
||||
self.ac.untersuche(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('nimm Haustürschlüssel')
|
||||
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
#In den Flur
|
||||
self.ac.ost()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('untersuche Pflanze')
|
||||
|
||||
self.ac.untersuche(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('nimm Krug')
|
||||
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('öffne Haustür')
|
||||
|
||||
self.ac.oeffne(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# nach draussen
|
||||
self.ac.sued()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# aufs Dach
|
||||
self.ac.rauf()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('nimm Planke')
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
#Wieder runter
|
||||
self.ac.runter()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
#Zum Bach
|
||||
self.ac.sued()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('verliere Planke')
|
||||
self.ac.verliere(pcmd)
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
#Zum Teich
|
||||
self.ac.ost()
|
||||
self.schrittzaehler = self.schrittzaehler +1
|
||||
self.schrittzaehler += 1
|
||||
|
||||
self.world.schrittzaehler = self.schrittzaehler
|
||||
|
||||
def testStier(self):
|
||||
self.testTeich()
|
||||
|
||||
pcmd = self.parseInput('nimm Fisch')
|
||||
self.ac.nimm(pcmd)
|
||||
|
||||
# zum Bach
|
||||
self.ac.west()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
|
||||
#Aufs Feld
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Kleines Feld
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('nimm Maus')
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler += 1
|
||||
|
||||
self.ac.nord()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Auf die Wiese
|
||||
self.ac.west()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
def testRanke(self):
|
||||
self.testTeich()
|
||||
|
||||
pcmd = self.parseInput('nimm Fisch')
|
||||
self.ac.nimm(pcmd)
|
||||
|
||||
# zum Bach
|
||||
self.ac.west()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
|
||||
#Aufs Feld
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Kleines Feld
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('nimm Maus')
|
||||
self.ac.nimm(pcmd)
|
||||
self.schrittzaehler += 1
|
||||
|
||||
self.ac.nord()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Auf die Wiese
|
||||
self.ac.west()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
|
||||
# Aufs Brachland
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('leere Krug')
|
||||
self.ac.leere(pcmd)
|
||||
self.ac.clearFehler()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Wiese
|
||||
self.ac.nord()
|
||||
|
||||
# Feld
|
||||
self.ac.ost()
|
||||
|
||||
# Bach
|
||||
self.ac.nord()
|
||||
|
||||
# Teich
|
||||
|
||||
self.ac.ost()
|
||||
pcmd = self.parseInput('fuelle Krug')
|
||||
|
||||
# zum Bach
|
||||
self.ac.west()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
|
||||
#Aufs Feld
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Auf die Wiese
|
||||
self.ac.west()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
|
||||
# Aufs Brachland
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('leere Krug')
|
||||
self.ac.leere(pcmd)
|
||||
self.schrittzaehler += 1
|
||||
|
||||
self.world.schrittzaehler = self.schrittzaehler
|
||||
|
||||
def testTal(self):
|
||||
|
||||
self.testRanke()
|
||||
|
||||
self.ac.rauf()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
pcmd = self.parseInput('wirf Maus')
|
||||
self.ac.wirf(pcmd)
|
||||
self.schrittzaehler += 1
|
||||
|
||||
#Pfad
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
#südlicherPfad
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# östlicher Pfad
|
||||
self.ac.ost()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Tal
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
def testBaumhaus(self):
|
||||
self.testTal()
|
||||
|
||||
# Baum
|
||||
self.ac.sued()
|
||||
self.schrittzaehler += 1
|
||||
pcmd = self.parseInput('wirf Seil')
|
||||
self.ac.wirf(pcmd)
|
||||
self.schrittzaehler += 1
|
||||
|
||||
# Baumhaus
|
||||
self.ac.rauf()
|
||||
self.schrittzaehler += 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
74
World.py
74
World.py
@@ -1,3 +1,6 @@
|
||||
# Hier wird die Spielwelt verwaltet.
|
||||
# Auch die Terminalausgabe passiert hier.
|
||||
|
||||
import WorldParser
|
||||
import ParsedCommand
|
||||
import ActionModul
|
||||
@@ -43,10 +46,14 @@ class World:
|
||||
|
||||
for itemid in self.inventar:
|
||||
item = self.inventar[itemid]
|
||||
if item.sichtbar:
|
||||
labels.append(item.name)
|
||||
labels.append(item.name)
|
||||
|
||||
return labels
|
||||
|
||||
def fortschritt(self):
|
||||
anz_raeume, anz_entdeckt = self.zaehleRaeume()
|
||||
return round((anz_entdeckt/anz_raeume) *100,2)
|
||||
|
||||
def printRaum(self):
|
||||
raum = self.aktuellerRaum
|
||||
self.clearScreen()
|
||||
@@ -79,7 +86,9 @@ class World:
|
||||
|
||||
richtungen =''
|
||||
ixri = 0
|
||||
self.stdscr.addstr(6,85,f'Schritte: {self.schrittzaehler}')
|
||||
anz_raeume, anz_entdeckt = self.zaehleRaeume()
|
||||
progress = (anz_entdeckt/anz_raeume) *100
|
||||
self.stdscr.addstr(6,85,f'Schritte: {self.schrittzaehler}, Räume:{anz_entdeckt}/{anz_raeume}, Fortschritt: {self.fortschritt()}%')
|
||||
win = curses.newwin(7,35,7,85)
|
||||
win.box()
|
||||
win.addstr('Ausgänge:')
|
||||
@@ -126,6 +135,13 @@ class World:
|
||||
|
||||
return None
|
||||
|
||||
def findRaumById(self,raumid):
|
||||
|
||||
for rid in self.raumliste:
|
||||
if rid == raumid:
|
||||
return self.raumliste[rid]
|
||||
return None
|
||||
|
||||
def findItemInAktuellerRaum(self,itemname):
|
||||
raum = self.aktuellerRaum
|
||||
|
||||
@@ -161,6 +177,16 @@ class World:
|
||||
return person
|
||||
return None
|
||||
|
||||
def findPersonImAktuellenRaumById(self, personid):
|
||||
raum = self.aktuellerRaum
|
||||
|
||||
for persid in raum.personen:
|
||||
person = raum.personen[persid]
|
||||
|
||||
if person.id == personid:
|
||||
return person
|
||||
return None
|
||||
|
||||
|
||||
def findItemImInventar(self,itemname):
|
||||
|
||||
@@ -179,7 +205,7 @@ class World:
|
||||
def ermittleBefehlId(self,befehl):
|
||||
for id in self.befehle:
|
||||
name = self.befehle[id].name
|
||||
logging.debug(f'ermittleBefehlId(): {befehl} - {name}')
|
||||
logging.debug(f'{befehl} - {name}')
|
||||
if name == befehl:
|
||||
return id
|
||||
return None
|
||||
@@ -220,6 +246,27 @@ class World:
|
||||
|
||||
return parsedCommand
|
||||
|
||||
def zaehleEntdeckteRaeume(self):
|
||||
count = 0
|
||||
for raumid in self.raumliste:
|
||||
raum = self.raumliste[raumid]
|
||||
if raum .entdeckt:
|
||||
count += 1
|
||||
|
||||
return count
|
||||
|
||||
def zaehleRaeume(self):
|
||||
count = 0
|
||||
entdeckt = 0
|
||||
for raumid in self.raumliste:
|
||||
raum = self.raumliste[raumid]
|
||||
if raum .entdeckt:
|
||||
entdeckt += 1
|
||||
count += 1
|
||||
|
||||
return count, entdeckt
|
||||
|
||||
|
||||
def debug_Items(self):
|
||||
logging.debug('liste Items')
|
||||
logging.debug(self.gegenstaende)
|
||||
@@ -275,6 +322,10 @@ class World:
|
||||
self.ITEM_SCHWERT = '18'
|
||||
self.ITEM_BOXSACK = '19'
|
||||
self.ITEM_MAUS = '20'
|
||||
self.ITEM_BOHNENRANKE = '21'
|
||||
self.ITEM_ELEFANT = '22'
|
||||
self.ITEM_HAFEN = '23'
|
||||
self.ITEM_GATTER = '25'
|
||||
|
||||
# Räume
|
||||
|
||||
@@ -293,10 +344,25 @@ class World:
|
||||
self.RAUM_KLEINES_FELD = '12'
|
||||
self.RAUM_WIESE = '13'
|
||||
self.RAUM_BRACHLAND = '14'
|
||||
self.RAUM_BOHNENRANKE = '15'
|
||||
self.RAUM_PFAD = '16'
|
||||
self.RAUM_PFAD_SUED = '17'
|
||||
self.RAUM_PFAD_OST = '18'
|
||||
self.RAUM_TAL = '19'
|
||||
self.RAUM_BAUM = '20'
|
||||
self.RAUM_TUNNEL = '21'
|
||||
self.RAUM_STRAND = '22'
|
||||
self.RAUM_HAFEN = '23'
|
||||
self.RAUM_BAUMHAUS = '24'
|
||||
|
||||
|
||||
|
||||
# Personen
|
||||
|
||||
self.PERSON_GEIST = '4'
|
||||
self.PERSON_FISCH = '2'
|
||||
self.PERSON_STIER = '5'
|
||||
self.PERSON_ZWERG = '6'
|
||||
|
||||
|
||||
self.fehler = ''
|
||||
|
@@ -135,7 +135,7 @@ class WorldParser():
|
||||
person = Person(name,id,raum)
|
||||
self.world.personen[id] = person
|
||||
raum = self.world.sucheRaum(raumid)
|
||||
raum.personen[raumid] = person
|
||||
raum.personen[id] = person
|
||||
|
||||
# Texte
|
||||
for item in root.findall('texte/text'):
|
||||
|
@@ -15,6 +15,7 @@ class Raum(SuperNode):
|
||||
self.personen = {}
|
||||
self.beschreibung=beschreibung
|
||||
self.pickupmsg = ''
|
||||
self.entdeckt = False
|
||||
self.ausgaenge = {
|
||||
'0': '-1', # Nord
|
||||
'1': '-1', # West
|
||||
@@ -74,6 +75,11 @@ class Gegenstand(SuperNode):
|
||||
self.display = None
|
||||
self.GESCHLOSSEN = 0
|
||||
self.OFFEN = 1
|
||||
self.KLEIN = 0
|
||||
self.MITTEL = 1
|
||||
self.GROSS = 2
|
||||
self.LEER = 0
|
||||
self.VOLL = 1
|
||||
self.zustand = self.GESCHLOSSEN
|
||||
|
||||
class Adjektiv(SuperNode):
|
||||
|
Binary file not shown.
BIN
img/map.png
Normal file
BIN
img/map.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 128 KiB |
31
map.txt
31
map.txt
@@ -20,11 +20,34 @@
|
||||
| |
|
||||
| |
|
||||
V V
|
||||
Brachland kleines Feld
|
||||
^(1)
|
||||
|
||||
(0)Brachland kleines Feld
|
||||
(1)
|
||||
Himmelspfad
|
||||
|
||||
(0)
|
||||
(1)Spitze der Bohnenranke
|
||||
^
|
||||
|
|
||||
|
|
||||
V
|
||||
Pfad
|
||||
^
|
||||
|
|
||||
|
|
||||
V
|
||||
Pfad<--> Pfad
|
||||
^
|
||||
|
|
||||
|
|
||||
V
|
||||
Tal<---> Tunnel <--->Strand
|
||||
^
|
||||
|
|
||||
|
|
||||
V
|
||||
Baum <--> Baumhaus
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
46
tomb.py
46
tomb.py
@@ -1,4 +1,6 @@
|
||||
#!/usr/bin/python3
|
||||
# Hauptprogramm - Eingabeschleife und Dispatching
|
||||
|
||||
import World
|
||||
import ActionModul
|
||||
import TestModule
|
||||
@@ -60,6 +62,12 @@ def verarbeiteBefehl(parsedCommand):
|
||||
actionmodul.schlage(parsedCommand)
|
||||
elif id == '25':
|
||||
actionmodul.sprich(parsedCommand)
|
||||
elif id == '26':
|
||||
actionmodul.leere(parsedCommand)
|
||||
elif id == '27':
|
||||
actionmodul.fuelle(parsedCommand)
|
||||
elif id == '28':
|
||||
actionmodul.wirf(parsedCommand)
|
||||
elif id == '-1':
|
||||
world.fehler = 'Ich verstehe diesen Befehl nicht'
|
||||
else:
|
||||
@@ -69,8 +77,11 @@ def handle_SIGINT(sig,frame):
|
||||
logging.debug("CTRL-C abgefangen")
|
||||
sys.exit(0)
|
||||
|
||||
logging.basicConfig(
|
||||
format='%(asctime)-15s [%(levelname)s] %(funcName)s: %(message)s',
|
||||
filename='tomb.log',
|
||||
level=logging.DEBUG)
|
||||
|
||||
logging.basicConfig(filename='tomb.log', level=logging.DEBUG)
|
||||
signal.signal(signal.SIGINT,handle_SIGINT)
|
||||
world = World.World()
|
||||
logging.debug('World initialisiert')
|
||||
@@ -98,6 +109,10 @@ def inputLoop(stdscr):
|
||||
|
||||
if debugcommand[1] == 'items':
|
||||
debug_Items()
|
||||
elif debugcommand[1] == 'inventar':
|
||||
debug_Inventar()
|
||||
elif debugcommand[1] == 'personen':
|
||||
debug_Personen()
|
||||
elif command.startswith('auto:'):
|
||||
command = command.rstrip()
|
||||
if command.startswith('auto:'):
|
||||
@@ -110,14 +125,33 @@ def inputLoop(stdscr):
|
||||
testmodul.testOeffneTruhe()
|
||||
elif debugcommand[1] == 'teich':
|
||||
testmodul.testTeich()
|
||||
elif debugcommand[1] == 'ranke':
|
||||
testmodul.testRanke()
|
||||
elif debugcommand[1] == 'tal':
|
||||
testmodul.testTal()
|
||||
elif debugcommand[1] =='baumhaus':
|
||||
testmodul.testBaumhaus()
|
||||
elif debugcommand[1] == 'stier':
|
||||
testmodul.testStier()
|
||||
|
||||
world.fehler = ''
|
||||
|
||||
|
||||
else:
|
||||
actionmodul.clearFehler()
|
||||
parsedCommand = world.parseInput(command)
|
||||
commandid = parsedCommand.commandid
|
||||
verarbeiteBefehl(parsedCommand)
|
||||
actionmodul.raumaction()
|
||||
|
||||
def debug_Personen():
|
||||
logging.debug('Personen im aktuellen Raum')
|
||||
|
||||
for pid in world.aktuellerRaum.personen:
|
||||
person = world.personen[pid]
|
||||
|
||||
logging.debug(f'Id: {person.id} - Name: {person.name}')
|
||||
|
||||
def debug_Items():
|
||||
logging.debug('liste Items')
|
||||
logging.debug(world.gegenstaende)
|
||||
@@ -128,6 +162,16 @@ def debug_Items():
|
||||
# logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name}')
|
||||
count = count +1
|
||||
|
||||
def debug_Inventar():
|
||||
logging.debug('liste Items')
|
||||
logging.debug(world.inventar)
|
||||
count = 0
|
||||
for item in world.inventar:
|
||||
logging.debug(f'count= {count}')
|
||||
logging.debug(f'Itemtyp: {type(item)}')
|
||||
# logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name}')
|
||||
count = count +1
|
||||
|
||||
def main():
|
||||
wrapper(inputLoop)
|
||||
|
||||
|
117
world.xml
117
world.xml
@@ -67,8 +67,9 @@
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='11' name='Feld'>
|
||||
<ausgang dir='West' nachRaum= '6' />
|
||||
<ausgang dir='Nord' nachRaum= '8' />
|
||||
<ausgang dir='Sued' nachRaum= '12' />
|
||||
<ausgang dir='West' nachRaum= '13' />
|
||||
|
||||
<beschreibung>
|
||||
Ein Feld.
|
||||
@@ -83,25 +84,92 @@
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='13' name='Wiese'>
|
||||
<ausgang dir='Ost' nachRaum= '12' />
|
||||
<ausgang dir='Sued' nachRaum= '14' />
|
||||
<ausgang dir='Ost' nachRaum= '11' />
|
||||
|
||||
<beschreibung>
|
||||
Du stehst auf einer Wiese, die nach
|
||||
Du stehst auf einer umzäunten Wiese, Ein Gatter versperrt den Weg nach Süden.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='14' name='Brachland'>
|
||||
<ausgang dir='Nord' nachRaum= '13' />
|
||||
|
||||
<beschreibung>
|
||||
Brachland. Hier wächst nicht viel abgesehen von einer einzelnen Bohnenranke.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='15' name='Himmelspfad'>
|
||||
<raum id='15' name='Spitze der Bohnenranke'>
|
||||
<ausgang dir='Runter' nachRaum= '14' />
|
||||
|
||||
<beschreibung>
|
||||
Brachland. Hier wächst nicht viel abgesehen von einer einzelnen Bohnenranke.
|
||||
Du stehst auf der Spitze der Bohnenranke.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='16' name='Pfad'>
|
||||
<ausgang dir='Nord' nachRaum= '15' />
|
||||
<ausgang dir='Sued' nachRaum= '17' />
|
||||
|
||||
<beschreibung>
|
||||
Der Pfad führt weiter nach Süden.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='17' name='südlicher Pfad'>
|
||||
<ausgang dir='Nord' nachRaum= '16' />
|
||||
<ausgang dir='Ost' nachRaum= '18' />
|
||||
|
||||
|
||||
<beschreibung>
|
||||
Der Pfad macht eine Biegung in östlicher Richtung.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='18' name='östlicher Pfad'>
|
||||
<ausgang dir='West' nachRaum= '17' />
|
||||
<ausgang dir='Sued' nachRaum= '19' />
|
||||
|
||||
|
||||
<beschreibung>
|
||||
Der Pfad macht eine Biegung in östlicher Richtung.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='19' name='Tal'>
|
||||
<ausgang dir='West' nachRaum= '17' />
|
||||
<ausgang dir='Ost' nachRaum= '21' />
|
||||
<ausgang dir='Sued' nachRaum= '20' />
|
||||
|
||||
|
||||
<beschreibung>
|
||||
Du stehst in einem Tal, nach Westen führt ein Pfad, in südlicher Richtung entdeckst du in der Ferne einen Baum.
|
||||
Nach Osten führt ein dunkler Tunnel
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='20' name='Baum'>
|
||||
<ausgang dir='Nord' nachRaum= '18' />
|
||||
<beschreibung>
|
||||
Du stehst unter einem Baum mit einer dichten Baumkrone
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='21' name='Tunnel'>
|
||||
<ausgang dir='West' nachRaum= '18' />
|
||||
<beschreibung>
|
||||
Im Tunnel ist es dunkel.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='22' name='Strand'>
|
||||
<ausgang dir='West' nachRaum= '20' />
|
||||
<ausgang dir='Sued' nachRaum= '22' />
|
||||
<beschreibung>
|
||||
Du stehst am Strand eines großen Sees. In südlicher Richtung scheint ein Hafen zu sein.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='23' name='Hafen'>
|
||||
<ausgang dir='Nord' nachRaum= '21' />
|
||||
<ausgang dir='Sued' nachRaum= '22' />
|
||||
<beschreibung>
|
||||
Im Hafen liegt ein Segelschiff angeleint.
|
||||
</beschreibung>
|
||||
</raum>
|
||||
<raum id='24' name='Baumhaus'>
|
||||
<ausgang dir='Runter' nachRaum= '20' />
|
||||
<beschreibung>
|
||||
Das Baumhaus
|
||||
</beschreibung>
|
||||
</raum>
|
||||
</ebene>
|
||||
@@ -144,6 +212,8 @@
|
||||
<command name='sprich' id='34' key='25' />
|
||||
<command name='leere' id='35' key='26' />
|
||||
<command name='fuelle' id='36' key='27' />
|
||||
<command name='fülle' id='37' key='27' />
|
||||
<command name='wirf' id='38' key='28' />
|
||||
|
||||
|
||||
</commandset>
|
||||
@@ -191,11 +261,16 @@
|
||||
<item name='Maus' display='tote Maus' id='20' raum='12' imobil='false' adjektiv = '0' msgid='1' visible='true' />
|
||||
<item name='Bohnenranke' id='21' display='' raum='14' imobil='true' adjektiv = '0' msgid='8' visible='true' />
|
||||
<item name='Elefant' id='22' display='' raum='15' imobil='true' adjektiv = '0' msgid='9' visible='true' />
|
||||
<item name='Hafen' id='23' display='' raum='21' imobil='true' adjektiv = '0' msgid='10' visible='true' />
|
||||
<item name='Segelschiff' id='24' display='' raum='22' imobil='true' adjektiv = '0' msgid='10' visible='true' />
|
||||
<item name='Gatter' id='25' display='' raum='13' imobil='true' adjektiv = '0' msgid='11' visible='true' />
|
||||
|
||||
</items>
|
||||
<personen>
|
||||
<person name='Fisch' id='2' raum='10' bewegung='0' />
|
||||
<person name='Geist' id='4' raum='2' bewegung='1' />
|
||||
<person name='Stier' id='5' raum='13' bewegung='0' />
|
||||
<person name='Zwerg' id='6' raum='24' bewegung='0' />
|
||||
</personen>
|
||||
<messages>
|
||||
<pickup text='Das ist zu schwer' id='1' />
|
||||
@@ -207,6 +282,7 @@
|
||||
<pickup text='Kunstdiebstahl? Nö!' id='7' />
|
||||
<pickup text='Die ist fest verwurzelt' id='8' />
|
||||
<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' />
|
||||
</messages>
|
||||
<bewegungen>
|
||||
<bewegung id='0' value='' />
|
||||
@@ -233,7 +309,7 @@
|
||||
Der Teich wird vom Bach gespeist.Einige Wassertiere leben darin.
|
||||
</text>
|
||||
<text id='item-17'>
|
||||
Der magische Fisch sagt: Pflanzen brauchen Wasser und verschwindet.
|
||||
Der magische Fisch sagt: "Pflanzen brauchen Wasser" und verschwindet.
|
||||
</text>
|
||||
<text id='item-19'>
|
||||
Der Boxsack trägt die Aufschrift: Eigentum von Maddes. Außerdem hat jemand ein großes V draufgemalt.
|
||||
@@ -241,8 +317,20 @@
|
||||
<text id='item-20'>
|
||||
Die ist mausetot.
|
||||
</text>
|
||||
<text id='item-21'>
|
||||
Ein Bohnengewächs der märchenhaften Gattung vigna hansus magicus.
|
||||
<text id='item-21-0'>
|
||||
Ein Bohnengewächs der märchenhaften Gattung vigna hans in beatitudinem.
|
||||
Sie ist etwas mickrig und braucht Pflege.
|
||||
</text>
|
||||
<text id='item-21-1'>
|
||||
Ein Bohnengewächs der märchenhaften Gattung vigna hans in beatitudinem.
|
||||
Sie reicht dir bis an die Schultern.
|
||||
</text>
|
||||
<text id='item-21-2'>
|
||||
Ein Bohnengewächs der märchenhaften Gattung vigna hans in beatitudinem.
|
||||
Sie wächst bis in die Wolken hinein.
|
||||
</text>
|
||||
<text id='item-22'>
|
||||
Der Elefantbulle ist mindestens fünf Meter größer als du und hat zwei beeindruckende Stoßzähne. Er versperrt den Ausgang.
|
||||
</text>
|
||||
<text id='hilfe'>
|
||||
Das Grab des Azteken ist ein klassisches Textadventure.
|
||||
@@ -259,5 +347,14 @@
|
||||
Jetzt musst du dich auf die Suche machen, so dass ich endlich meinen Frieden finden kann.
|
||||
Suche das Grab im Wolkenreich.Öffne es und ich bin erlöst.
|
||||
</text>
|
||||
<text id='seilwurf'>
|
||||
Du wirfst das Seil Richtung Baumkrone. Dort verfängt es sich so fest, dass du daran klettern kannst.
|
||||
</text>
|
||||
<text id='mauswurf'>
|
||||
Als der Elefant die Maus sieht, bekommt er einen Riesenschreck und flüchtet. Dadurch wird der Weg nach Süden frei.
|
||||
</text>
|
||||
<text id='jackewurf'>
|
||||
Der Stier ist völlig fasziniert, als du die Jacke hin und herschwenkst. Als du sie nach Osten wirfst, schaubt er einmal auf und rennt hinter her.
|
||||
</text>
|
||||
</texte>
|
||||
</welt>
|
||||
|
Reference in New Issue
Block a user