Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b1b4a99dff | ||
![]() |
183fe11075 | ||
![]() |
4a0bfb901d | ||
![]() |
1b96299edc | ||
![]() |
740833541b | ||
![]() |
e1bf16aa96 | ||
![]() |
6876dab8df | ||
![]() |
a986d14fbc | ||
![]() |
2cb7358eca | ||
![]() |
0240e5f441 | ||
![]() |
8bd0897af1 |
@@ -120,10 +120,13 @@ class ActionBasics:
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
def personVonRaumNachRaum(self, person, vonRaumId, nachRaumId):
|
def personVonRaumNachRaum(self, person, vonRaumId, nachRaumId):
|
||||||
|
logging.debug(f'person Von Raum {vonRaumId} nach {nachRaumId}')
|
||||||
vonRaum = self.world.findRaumById(vonRaumId)
|
vonRaum = self.world.findRaumById(vonRaumId)
|
||||||
nachRaum = self.world.findRaumById(nachRaumId)
|
nachRaum = self.world.findRaumById(nachRaumId)
|
||||||
|
|
||||||
del vonRaum.personen[person.id]
|
if person.id in vonRaum.personen:
|
||||||
|
del vonRaum.personen[person.id]
|
||||||
|
|
||||||
nachRaum.personen[person.id] = person
|
nachRaum.personen[person.id] = person
|
||||||
person.raumid = nachRaumId
|
person.raumid = nachRaumId
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
from ActionBasics import ActionBasics
|
from ActionBasics import ActionBasics
|
||||||
|
import HilfeModul
|
||||||
|
|
||||||
class ActionModul(ActionBasics):
|
class ActionModul(ActionBasics):
|
||||||
|
|
||||||
@@ -14,6 +15,8 @@ class ActionModul(ActionBasics):
|
|||||||
def __init__(self, world):
|
def __init__(self, world):
|
||||||
|
|
||||||
super().__init__(world)
|
super().__init__(world)
|
||||||
|
self.hilfemodul = HilfeModul.HilfeModul(world)
|
||||||
|
|
||||||
|
|
||||||
def warte(self):
|
def warte(self):
|
||||||
print('Du wartest')
|
print('Du wartest')
|
||||||
@@ -108,6 +111,9 @@ class ActionModul(ActionBasics):
|
|||||||
item.zustand = item.OFFEN
|
item.zustand = item.OFFEN
|
||||||
self.macheItemSichtbar(karte)
|
self.macheItemSichtbar(karte)
|
||||||
self.vanishItem(item)
|
self.vanishItem(item)
|
||||||
|
elif item.id == self.world.ITEM_KUEHLSCHRANK:
|
||||||
|
logging.debug('öffne Kühlschrank')
|
||||||
|
self.world.printText('zuul')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -123,11 +129,11 @@ class ActionModul(ActionBasics):
|
|||||||
if item.id ==self.world.ITEM_JACKE:
|
if item.id ==self.world.ITEM_JACKE:
|
||||||
self.setFehler('Also du die Jacke anziehst, findest du einen kleine Schlüssel in der Tasche.')
|
self.setFehler('Also du die Jacke anziehst, findest du einen kleine Schlüssel in der Tasche.')
|
||||||
self.findeTruhenschluessel()
|
self.findeTruhenschluessel()
|
||||||
elif item.id == self.world.ITEM_LEITER:
|
elif self.isItem(item,self.world.ITEM_LEITER):
|
||||||
if(self.world.aktuellerRaum.id == self.world.RAUM_ESSZIMMER):
|
if(self.world.aktuellerRaum.id == self.world.RAUM_ESSZIMMER):
|
||||||
logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
|
logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
|
||||||
self.rauf()
|
self.rauf()
|
||||||
elif item.id == self.world.ITEM_PLANKE:
|
elif self.isItem(item,self.world.ITEM_PLANKE):
|
||||||
if self.isAktuellerRaum(self.world.RAUM_BACH):
|
if self.isAktuellerRaum(self.world.RAUM_BACH):
|
||||||
self.baueBruecke()
|
self.baueBruecke()
|
||||||
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.')
|
||||||
@@ -136,6 +142,22 @@ class ActionModul(ActionBasics):
|
|||||||
elif self.isItem(item, self.world.ITEM_SCHWIMMWESTE):
|
elif self.isItem(item, self.world.ITEM_SCHWIMMWESTE):
|
||||||
item.zustand = item.ANGEZOGEN
|
item.zustand = item.ANGEZOGEN
|
||||||
self.setFehler('Du ziehst die Schwimmweste an.')
|
self.setFehler('Du ziehst die Schwimmweste an.')
|
||||||
|
elif self.isItem(item,self.world.ITEM_DIAMANT):
|
||||||
|
if self.isAktuellerRaum(self.world.RAUM_MAUER):
|
||||||
|
geist = self.world.findPersonById(self.world.PERSON_GEIST)
|
||||||
|
self.world.printText('graböffnung')
|
||||||
|
self.world.aktuellerRaum.ausgaenge[self.world.SUED] = self.world.RAUM_GRAB
|
||||||
|
self.personVonRaumNachRaum(geist, geist.raum.id, self.world.RAUM_GRAB)
|
||||||
|
self.world.printText('victory')
|
||||||
|
# self.world.aktuellerRaum.personen[self.world.PERSON_GEIST] = geist
|
||||||
|
self.ausDemInventar(item)
|
||||||
|
elif self.isItem(item,self.world.ITEM_BOXSACK):
|
||||||
|
self.schlage(parsedCommand)
|
||||||
|
else:
|
||||||
|
self.setFehler('Nichts passiert.')
|
||||||
|
|
||||||
|
def about(self):
|
||||||
|
self.world.printAbout()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -208,6 +230,10 @@ class ActionModul(ActionBasics):
|
|||||||
def schlage(self, parsedCommand):
|
def schlage(self, parsedCommand):
|
||||||
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||||
|
|
||||||
|
if item == None:
|
||||||
|
self.setFehler('Das sehe ich hier nicht.')
|
||||||
|
return
|
||||||
|
|
||||||
if item.id == self.world.ITEM_BOXSACK:
|
if item.id == self.world.ITEM_BOXSACK:
|
||||||
self.setFehler('Der Boxsack sagt: Hmm, hmm?')
|
self.setFehler('Der Boxsack sagt: Hmm, hmm?')
|
||||||
|
|
||||||
@@ -332,9 +358,7 @@ class ActionModul(ActionBasics):
|
|||||||
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||||
|
|
||||||
if item != None:
|
if item != None:
|
||||||
#alter Code!
|
pass
|
||||||
if item.id == 8:
|
|
||||||
self.world.stdscr.addstr('Du ziehst den Hebel und es passiert.... nichts!')
|
|
||||||
else:
|
else:
|
||||||
self.setFehler('Das sehe ich hier nicht.')
|
self.setFehler('Das sehe ich hier nicht.')
|
||||||
|
|
||||||
@@ -485,6 +509,8 @@ class ActionModul(ActionBasics):
|
|||||||
self.wechsleRaum(imwasser)
|
self.wechsleRaum(imwasser)
|
||||||
else:
|
else:
|
||||||
self.setFehler('Das Wasser ist viel zu tief, du würdest ertrinken.')
|
self.setFehler('Das Wasser ist viel zu tief, du würdest ertrinken.')
|
||||||
|
else:
|
||||||
|
self.setFehler('Hieh-Hüpf')
|
||||||
|
|
||||||
|
|
||||||
def sprich(self,parsedCommand):
|
def sprich(self,parsedCommand):
|
||||||
@@ -496,10 +522,7 @@ class ActionModul(ActionBasics):
|
|||||||
self.setFehler(f'{parsedCommand.gegenstand} ist nicht im Raum.')
|
self.setFehler(f'{parsedCommand.gegenstand} ist nicht im Raum.')
|
||||||
|
|
||||||
def hilfe(self,parsedCommand):
|
def hilfe(self,parsedCommand):
|
||||||
if parsedCommand.gegenstand == 'befehle':
|
self.hilfemodul.hilfe(parsedCommand.gegenstand)
|
||||||
self.world.printBefehle()
|
|
||||||
else:
|
|
||||||
self.world.printText('hilfe')
|
|
||||||
|
|
||||||
def geheNachItem(self,parsedCommand):
|
def geheNachItem(self,parsedCommand):
|
||||||
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||||
@@ -542,6 +565,9 @@ class ActionModul(ActionBasics):
|
|||||||
self.geheNach(richtung)
|
self.geheNach(richtung)
|
||||||
elif richtung == 'rauf':
|
elif richtung == 'rauf':
|
||||||
self.rauf()
|
self.rauf()
|
||||||
|
self.geheNach(richtung)
|
||||||
|
elif richtung == 'runter':
|
||||||
|
self.runter()
|
||||||
else:
|
else:
|
||||||
self.geheNachItem(parsedCommand)
|
self.geheNachItem(parsedCommand)
|
||||||
|
|
||||||
@@ -613,6 +639,7 @@ class ActionModul(ActionBasics):
|
|||||||
logging.debug(f'gefundener Ausgang: {ausgang}')
|
logging.debug(f'gefundener Ausgang: {ausgang}')
|
||||||
if ausgang != None:
|
if ausgang != None:
|
||||||
raum = self.world.sucheRaum(ausgang)
|
raum = self.world.sucheRaum(ausgang)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
logging.warn('Keine AusgandId gefunde')
|
logging.warn('Keine AusgandId gefunde')
|
||||||
self.setFehler("In diese Richtung gibt's keine Ausgang!")
|
self.setFehler("In diese Richtung gibt's keine Ausgang!")
|
||||||
@@ -643,10 +670,6 @@ class ActionModul(ActionBasics):
|
|||||||
def runter(self):
|
def runter(self):
|
||||||
self.geheNach(self.world.RUNTER)
|
self.geheNach(self.world.RUNTER)
|
||||||
|
|
||||||
def about(self):
|
|
||||||
print("Tomb Version " + self.world.VERSION)
|
|
||||||
self.world.waitForCR
|
|
||||||
|
|
||||||
def raumaction(self):
|
def raumaction(self):
|
||||||
raumid = self.world.aktuellerRaum.id
|
raumid = self.world.aktuellerRaum.id
|
||||||
|
|
||||||
|
13
BewegungsModul.py
Normal file
13
BewegungsModul.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Bewegungsmodul - Steuert die Bewegungen aller NPC.
|
||||||
|
import logging
|
||||||
|
|
||||||
|
class BewegungsModul:
|
||||||
|
|
||||||
|
|
||||||
|
def __init__(self, world):
|
||||||
|
|
||||||
|
self.world = world
|
||||||
|
|
||||||
|
|
||||||
|
def bewegeNPCS(self):
|
||||||
|
skip
|
9
ConfigError.py
Normal file
9
ConfigError.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
class ConfigError(Exception):
|
||||||
|
def __init_(self,message):
|
||||||
|
self.message = message
|
||||||
|
super().__init(message)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.message
|
||||||
|
|
||||||
|
|
29
FileReader.py
Normal file
29
FileReader.py
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
class FileReader() :
|
||||||
|
|
||||||
|
__zeilen__ = []
|
||||||
|
__dateiname__ = ""
|
||||||
|
def __init__(self,dateiname):
|
||||||
|
self.__zeilen__ = []
|
||||||
|
self.__dateiname__ = dateiname
|
||||||
|
|
||||||
|
|
||||||
|
def lines(self):
|
||||||
|
with open(self.__dateiname__,"r" ) as file:
|
||||||
|
for zeile in file:
|
||||||
|
self.__zeilen__.append(zeile.strip())
|
||||||
|
return self.__zeilen__
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.__zeilen__)
|
||||||
|
|
||||||
|
class CsvReader(FileReader):
|
||||||
|
def __init__(self,dateiname):
|
||||||
|
super().__init__(dateiname)
|
||||||
|
|
||||||
|
def lines(self):
|
||||||
|
zeilen = super().lines()
|
||||||
|
liste = []
|
||||||
|
|
||||||
|
return [zeile.split() for zeile in zeilen]
|
||||||
|
# for zeile in zeilen:
|
||||||
|
# liste.append(zeile.split(","))
|
||||||
|
# return liste
|
77
HilfeModul.py
Normal file
77
HilfeModul.py
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
import logging
|
||||||
|
import FileReader
|
||||||
|
from os.path import exists
|
||||||
|
|
||||||
|
class HilfeModul():
|
||||||
|
|
||||||
|
def isBlank(self,str):
|
||||||
|
if str != None and len(str.strip()) == 0:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def __init__(self, world):
|
||||||
|
|
||||||
|
self.world = world
|
||||||
|
|
||||||
|
self.check()
|
||||||
|
|
||||||
|
def readTxt(self, datei):
|
||||||
|
logging.debug(f'öffne Hilfedatei {datei}')
|
||||||
|
reader = FileReader.FileReader(datei)
|
||||||
|
|
||||||
|
lines = reader.lines()
|
||||||
|
reader = None
|
||||||
|
# reader.close()
|
||||||
|
|
||||||
|
return lines
|
||||||
|
|
||||||
|
def check(self):
|
||||||
|
|
||||||
|
for id in self.world.befehle:
|
||||||
|
befehl = self.world.befehle[id]
|
||||||
|
|
||||||
|
helptxt = self.baueHilfedatei(befehl.key)
|
||||||
|
|
||||||
|
logging.debug(f'suche Hilfedatei {helptxt}')
|
||||||
|
if not exists(helptxt):
|
||||||
|
logging.warn(f'Hilfedatei {helptxt} existiert nicht')
|
||||||
|
|
||||||
|
|
||||||
|
def hilfe(self, command):
|
||||||
|
generalHelp = True
|
||||||
|
if not self.isBlank(command):
|
||||||
|
helptxt = self.findHilfetext(command)
|
||||||
|
|
||||||
|
logging.debug(f'Hilfetext: {helptxt}')
|
||||||
|
|
||||||
|
if helptxt != None:
|
||||||
|
lines = self.readTxt(helptxt)
|
||||||
|
logging.debug(f'lines: {lines}')
|
||||||
|
self.world.printHilfe(lines)
|
||||||
|
generalHelp = False
|
||||||
|
|
||||||
|
if generalHelp:
|
||||||
|
if command == 'befehle':
|
||||||
|
self.world.printBefehle()
|
||||||
|
else:
|
||||||
|
self.world.printText('hilfe')
|
||||||
|
|
||||||
|
def baueHilfedatei(self, key):
|
||||||
|
return f'ascii/hilfe/cmd-{key}.txt'
|
||||||
|
def findHilfetext(self, command):
|
||||||
|
|
||||||
|
logging.debug(f'suche Hilfetext zu {command}')
|
||||||
|
|
||||||
|
for cmdid in range(0,len(self.world.befehle)):
|
||||||
|
if str(cmdid) in self.world.befehle:
|
||||||
|
befehl = self.world.befehle[str(cmdid)]
|
||||||
|
|
||||||
|
logging.debug(f'cmdid= {cmdid}')
|
||||||
|
|
||||||
|
logging.debug(f'vergleiche {befehl.name.lower()} mit {command.lower()}')
|
||||||
|
|
||||||
|
if befehl.name.lower() == command.lower():
|
||||||
|
logging.debug(f'gefundener Befehl: {befehl.name}')
|
||||||
|
return self.baueHilfedatei(befehl.key)
|
||||||
|
|
||||||
|
return None
|
@@ -19,11 +19,11 @@ class TestModule:
|
|||||||
|
|
||||||
def testOeffneTruhe(self):
|
def testOeffneTruhe(self):
|
||||||
logging.debug('===== Beginn Testmodul Truhe =====')
|
logging.debug('===== Beginn Testmodul Truhe =====')
|
||||||
pcmd = self.parseInput('nimm Truhe')
|
|
||||||
|
|
||||||
#Auf den Dachboden
|
#Auf den Dachboden
|
||||||
self.ac.rauf()
|
self.ac.rauf()
|
||||||
self.schrittzaehler += 1
|
self.schrittzaehler += 1
|
||||||
|
pcmd = self.parseInput('nimm Truhe')
|
||||||
self.ac.nimm(pcmd)
|
self.ac.nimm(pcmd)
|
||||||
self.schrittzaehler += 1
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
@@ -375,7 +375,14 @@ class TestModule:
|
|||||||
# Insel
|
# Insel
|
||||||
self.ac.rauf()
|
self.ac.rauf()
|
||||||
self.schrittzaehler += 1
|
self.schrittzaehler += 1
|
||||||
# return
|
|
||||||
|
# Palme
|
||||||
|
self.ac.rauf()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
|
# Insel
|
||||||
|
self.ac.runter()
|
||||||
|
self.schrittzaehler += 1
|
||||||
|
|
||||||
#Beiboot
|
#Beiboot
|
||||||
self.ac.ost()
|
self.ac.ost()
|
||||||
@@ -433,4 +440,16 @@ class TestModule:
|
|||||||
def testMauer(self):
|
def testMauer(self):
|
||||||
self.testStatue()
|
self.testStatue()
|
||||||
|
|
||||||
|
# Mauer
|
||||||
|
self.ac.ost()
|
||||||
|
|
||||||
|
pcmd = self.parseInput('untersuche Mauer')
|
||||||
|
self.ac.untersuche(pcmd)
|
||||||
|
|
||||||
|
pcmd = self.parseInput('benutze Diamant')
|
||||||
|
self.ac.benutze(pcmd)
|
||||||
|
|
||||||
|
#Grab
|
||||||
|
self.ac.sued()
|
||||||
|
|
||||||
|
|
47
World.py
47
World.py
@@ -15,12 +15,33 @@ class World:
|
|||||||
def clearScreen(self):
|
def clearScreen(self):
|
||||||
self.stdscr.clear()
|
self.stdscr.clear()
|
||||||
|
|
||||||
|
def printAbout(self):
|
||||||
|
s = self.stdscr
|
||||||
|
|
||||||
|
self.clearScreen()
|
||||||
|
s.addstr(1,0,'Das Grab des Azteken', curses.color_pair(2))
|
||||||
|
s.addstr(2,0,f'Version {self.VERSION}')
|
||||||
|
self.waitForCR()
|
||||||
def printText(self,textid):
|
def printText(self,textid):
|
||||||
self.clearScreen()
|
self.clearScreen()
|
||||||
self.stdscr.addstr(1,0,self.texte[textid].name)
|
self.stdscr.addstr(1,0,self.texte[textid].name)
|
||||||
self.waitForCR()
|
self.waitForCR()
|
||||||
self.printRaum()
|
self.printRaum()
|
||||||
|
|
||||||
|
def printHilfe(self,lines):
|
||||||
|
|
||||||
|
self.clearScreen()
|
||||||
|
s = self.stdscr
|
||||||
|
s.addstr(1,0, lines[0])
|
||||||
|
s.addstr(3,0, lines[2], curses.color_pair(2)) # Befehl
|
||||||
|
s.addstr(4,0, lines[3]) #Parameter
|
||||||
|
s.addstr(5,0, lines[4]) # siehe auch
|
||||||
|
s.addstr(8,0, lines[7]) #Text 1
|
||||||
|
s.addstr(9,0, lines[8]) #Text 2
|
||||||
|
if len(lines) == 10 :
|
||||||
|
s.addstr(10,0, lines[9]) #Text 3
|
||||||
|
self.waitForCR()
|
||||||
|
|
||||||
def printKarte(self):
|
def printKarte(self):
|
||||||
self.clearScreen()
|
self.clearScreen()
|
||||||
s = self.stdscr
|
s = self.stdscr
|
||||||
@@ -99,7 +120,9 @@ class World:
|
|||||||
|
|
||||||
def fortschritt(self):
|
def fortschritt(self):
|
||||||
anz_raeume, anz_entdeckt = self.zaehleRaeume()
|
anz_raeume, anz_entdeckt = self.zaehleRaeume()
|
||||||
return round((anz_entdeckt/anz_raeume) *100,2)
|
progress = round((anz_entdeckt/anz_raeume) *100,2)
|
||||||
|
logging.debug(f'anz_raeume={anz_raeume}, entdeckt={anz_entdeckt}, progress={progress}')
|
||||||
|
return progress
|
||||||
|
|
||||||
def printRaum(self):
|
def printRaum(self):
|
||||||
raum = self.aktuellerRaum
|
raum = self.aktuellerRaum
|
||||||
@@ -242,6 +265,16 @@ class World:
|
|||||||
return person
|
return person
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def findPersonById(self,persid):
|
||||||
|
|
||||||
|
for id in self.personen:
|
||||||
|
person = self.personen[id]
|
||||||
|
|
||||||
|
if person.id == persid:
|
||||||
|
return person
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
def findPersonImAktuellenRaumById(self, personid):
|
def findPersonImAktuellenRaumById(self, personid):
|
||||||
raum = self.aktuellerRaum
|
raum = self.aktuellerRaum
|
||||||
|
|
||||||
@@ -374,7 +407,9 @@ class World:
|
|||||||
self.WEST = '3'
|
self.WEST = '3'
|
||||||
self.RAUF = '4'
|
self.RAUF = '4'
|
||||||
self.RUNTER = '5'
|
self.RUNTER = '5'
|
||||||
self.VERSION = '0.5'
|
|
||||||
|
self.VERSION = '0.91'
|
||||||
|
|
||||||
self.ITEM_TISCH = '1'
|
self.ITEM_TISCH = '1'
|
||||||
self.ITEM_LEITER = '2'
|
self.ITEM_LEITER = '2'
|
||||||
self.ITEM_TRUHE = '3'
|
self.ITEM_TRUHE = '3'
|
||||||
@@ -385,18 +420,17 @@ class World:
|
|||||||
self.ITEM_NACHTSCHRANK = '8'
|
self.ITEM_NACHTSCHRANK = '8'
|
||||||
self.ITEM_KLEINER_SCHLUESSEL = '9'
|
self.ITEM_KLEINER_SCHLUESSEL = '9'
|
||||||
self.ITEM_JACKE = '10'
|
self.ITEM_JACKE = '10'
|
||||||
|
self.ITEM_SCHWERT = '11'
|
||||||
self.ITEM_SEIL = '12'
|
self.ITEM_SEIL = '12'
|
||||||
self.ITEM_HAUSTUERSCHLUESSEL = '13'
|
self.ITEM_HAUSTUERSCHLUESSEL = '13'
|
||||||
self.ITEM_RANKGITTER = '14'
|
self.ITEM_RANKGITTER = '14'
|
||||||
self.ITEM_PLANKE = '15'
|
self.ITEM_PLANKE = '15'
|
||||||
self.ITEM_TEICH = '16'
|
self.ITEM_TEICH = '16'
|
||||||
self.ITEM_FISCH = '17'
|
self.ITEM_FISCH = '17'
|
||||||
self.ITEM_SCHWERT = '18'
|
|
||||||
self.ITEM_BOXSACK = '19'
|
self.ITEM_BOXSACK = '19'
|
||||||
self.ITEM_MAUS = '20'
|
self.ITEM_MAUS = '20'
|
||||||
self.ITEM_BOHNENRANKE = '21'
|
self.ITEM_BOHNENRANKE = '21'
|
||||||
self.ITEM_ELEFANT = '22'
|
self.ITEM_ELEFANT = '22'
|
||||||
self.ITEM_HAFEN = '23'
|
|
||||||
self.ITEM_GATTER = '25'
|
self.ITEM_GATTER = '25'
|
||||||
self.ITEM_SCHACHTEL = '26'
|
self.ITEM_SCHACHTEL = '26'
|
||||||
self.ITEM_KARTE = '27'
|
self.ITEM_KARTE = '27'
|
||||||
@@ -406,12 +440,13 @@ class World:
|
|||||||
self.ITEM_KABINE = '31'
|
self.ITEM_KABINE = '31'
|
||||||
self.ITEM_BEIBOOT = '32'
|
self.ITEM_BEIBOOT = '32'
|
||||||
self.ITEM_DIAMANT = '38'
|
self.ITEM_DIAMANT = '38'
|
||||||
self.ITEM_SOCKEL = '34'
|
|
||||||
self.ITEM_PALME = '40'
|
self.ITEM_PALME = '40'
|
||||||
self.ITEM_SOCKEL = '41'
|
self.ITEM_SOCKEL = '41'
|
||||||
self.ITEM_KOPF = '42'
|
self.ITEM_KOPF = '42'
|
||||||
self.ITEM_MAUER = '43'
|
self.ITEM_MAUER = '43'
|
||||||
self.ITEM_LOCH = '44'
|
self.ITEM_LOCH = '44'
|
||||||
|
self.ITEM_PLAKETTE = '45'
|
||||||
|
self.ITEM_KUEHLSCHRANK = '46'
|
||||||
|
|
||||||
# Räume
|
# Räume
|
||||||
|
|
||||||
@@ -453,7 +488,7 @@ 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_MAUER = '39'
|
||||||
self.RAUM_GRAB = '40'
|
self.RAUM_GRAB = '40'
|
||||||
|
|
||||||
|
|
||||||
|
@@ -2,6 +2,7 @@ import xml.etree.ElementTree as ET
|
|||||||
from data.Raum import Raum, Befehl, Adjektiv,Gegenstand,Person,TextNode
|
from data.Raum import Raum, Befehl, Adjektiv,Gegenstand,Person,TextNode
|
||||||
import io
|
import io
|
||||||
import logging
|
import logging
|
||||||
|
from ConfigError import ConfigError
|
||||||
|
|
||||||
class WorldParser():
|
class WorldParser():
|
||||||
|
|
||||||
@@ -17,6 +18,30 @@ class WorldParser():
|
|||||||
self.world = world
|
self.world = world
|
||||||
self.textCount = 0
|
self.textCount = 0
|
||||||
|
|
||||||
|
def check(self):
|
||||||
|
|
||||||
|
for itemid in self.world.gegenstaende:
|
||||||
|
item = self.world.gegenstaende[itemid]
|
||||||
|
textid = 'item-'+ itemid
|
||||||
|
|
||||||
|
if textid in self.world.texte:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
logging.error(f'keine Beschreibung für Item {itemid} - {item.name}')
|
||||||
|
raise ValueError('Text ' +textid + ' fehlt')
|
||||||
|
|
||||||
|
for raumid in self.world.raumliste:
|
||||||
|
raum = self.world.raumliste[raumid]
|
||||||
|
textid = 'raum-' +raumid
|
||||||
|
|
||||||
|
if textid in self.world.raumliste:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
logging.warn(f' keine Beschreibung für Raum {raumid} - {raum.name}')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def parseWorld(self,filename):
|
def parseWorld(self,filename):
|
||||||
|
|
||||||
tree = ET.parse(filename)
|
tree = ET.parse(filename)
|
||||||
@@ -69,6 +94,9 @@ class WorldParser():
|
|||||||
key = befehl.attrib['key']
|
key = befehl.attrib['key']
|
||||||
command = Befehl(name,id,key)
|
command = Befehl(name,id,key)
|
||||||
|
|
||||||
|
if id in self.world.befehle:
|
||||||
|
raise ValueError(f'doppelte Befehl-Id {id}')
|
||||||
|
|
||||||
self.world.befehle[id] = command
|
self.world.befehle[id] = command
|
||||||
# Adjektive
|
# Adjektive
|
||||||
for adj in root.findall('adjektive/adjektiv'):
|
for adj in root.findall('adjektive/adjektiv'):
|
||||||
@@ -147,6 +175,8 @@ class WorldParser():
|
|||||||
textnode = TextNode(id,item.text)
|
textnode = TextNode(id,item.text)
|
||||||
self.world.texte[id] = textnode
|
self.world.texte[id] = textnode
|
||||||
|
|
||||||
|
self.check()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
11
ascii/hilfe/cmd-0.txt
Normal file
11
ascii/hilfe/cmd-0.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: ende, quit
|
||||||
|
Parameter: -keine
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Beendet das Programm.
|
||||||
|
|
||||||
|
|
||||||
|
|
14
ascii/hilfe/cmd-1.txt
Normal file
14
ascii/hilfe/cmd-1.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: geh, gehe
|
||||||
|
Parameter: Richtung, Objekt
|
||||||
|
siehe auch: süd, nord, west, ost
|
||||||
|
|
||||||
|
|
||||||
|
geht in die angegebene Richtung oder das Objekt. Ist der Ausgang in die Richtung frei, landest du
|
||||||
|
im nächsten Raum.
|
||||||
|
|
||||||
|
mögliche Richtungen sind: Nord, Ost, Süd, West, Rauf und Runter
|
||||||
|
|
||||||
|
|
||||||
|
|
9
ascii/hilfe/cmd-10.txt
Normal file
9
ascii/hilfe/cmd-10.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: runter
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch: gehe,klettere
|
||||||
|
|
||||||
|
|
||||||
|
Geht runter, sofern dort ein Ausgang ist.
|
||||||
|
|
9
ascii/hilfe/cmd-12.txt
Normal file
9
ascii/hilfe/cmd-12.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: inventar
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Listet die Gegenstände im Inventar auf.
|
||||||
|
|
9
ascii/hilfe/cmd-13.txt
Normal file
9
ascii/hilfe/cmd-13.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: about
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Git Informationen zum Programm.
|
||||||
|
|
9
ascii/hilfe/cmd-14.txt
Normal file
9
ascii/hilfe/cmd-14.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: verliere
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch: nimm
|
||||||
|
|
||||||
|
|
||||||
|
entfernt einen Gegenstand aus dem Inventar und legt ihn im aktuellen Raum ab.
|
||||||
|
|
9
ascii/hilfe/cmd-15.txt
Normal file
9
ascii/hilfe/cmd-15.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: warte
|
||||||
|
Parameter: -keiner
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Tut nix.
|
||||||
|
|
9
ascii/hilfe/cmd-16.txt
Normal file
9
ascii/hilfe/cmd-16.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: drücke
|
||||||
|
Parameter: Gegenstand
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Drückt auf einen Gegenstand imInventar oder aktuellen Raum.
|
||||||
|
|
9
ascii/hilfe/cmd-17.txt
Normal file
9
ascii/hilfe/cmd-17.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: ziehe
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch: drücke
|
||||||
|
|
||||||
|
|
||||||
|
Zieht an einem Objekt im Inventar oder aktuellen Raum.
|
||||||
|
|
9
ascii/hilfe/cmd-19.txt
Normal file
9
ascii/hilfe/cmd-19.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: stelle, stell
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Stellt ein Objekt im Inventar ab.
|
||||||
|
|
12
ascii/hilfe/cmd-2.txt
Normal file
12
ascii/hilfe/cmd-2.txt
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: nimm
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Nimmt einen Gegenstand im aktuellen Raum auf und verstaut ihn in deinem Inventar.
|
||||||
|
Hinweis: Einge Gegenstände können nicht mitgenommen werden.
|
||||||
|
|
||||||
|
|
||||||
|
|
10
ascii/hilfe/cmd-20.txt
Normal file
10
ascii/hilfe/cmd-20.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: öffne
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch: nimm
|
||||||
|
|
||||||
|
|
||||||
|
Öffnet einen Behälter oder eine Tür.
|
||||||
|
Der Gegenstand muss sich im Inventar oder aktuellen Raum befinden.
|
||||||
|
|
11
ascii/hilfe/cmd-21.txt
Normal file
11
ascii/hilfe/cmd-21.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: klettere
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch: rauf, runter
|
||||||
|
|
||||||
|
|
||||||
|
Klettert an einem Gegenstand rauf oder runter.
|
||||||
|
Der Gegenstand muss sich im aktuellen Raum befinden.
|
||||||
|
Hinweis: Manchmal muss der Gegenstand erst kletterbar gemacht werden.
|
||||||
|
|
10
ascii/hilfe/cmd-22.txt
Normal file
10
ascii/hilfe/cmd-22.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: fange
|
||||||
|
Parameter: Person
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Fängt die angebene Person. Möglicherweise benötigst du einen weiteren
|
||||||
|
Gegenstand zum Fangen.
|
||||||
|
|
9
ascii/hilfe/cmd-23.txt
Normal file
9
ascii/hilfe/cmd-23.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: hilfe
|
||||||
|
Parameter: Befehl
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Zeigt Hilfe zu einem Befehl an.
|
||||||
|
|
10
ascii/hilfe/cmd-24.txt
Normal file
10
ascii/hilfe/cmd-24.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: schlage, boxe
|
||||||
|
Parameter: Genstand
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Schlägt auf einen Gegenstand im aktuellen Raum.
|
||||||
|
Achte darauf, wen oder was du schlägst!
|
||||||
|
|
10
ascii/hilfe/cmd-25.txt
Normal file
10
ascii/hilfe/cmd-25.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: sprich
|
||||||
|
Parameter: Person
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Spricht eine Person im aktuellen Raum an. Dadurch könntest du an spielentscheidende
|
||||||
|
Informationen kommen.
|
||||||
|
|
9
ascii/hilfe/cmd-26.txt
Normal file
9
ascii/hilfe/cmd-26.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: leere
|
||||||
|
Parameter: Gegenstand
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Leert einen Gegenstand im Inventar bzw. schüttet seinen Inhalt aus.
|
||||||
|
|
9
ascii/hilfe/cmd-27.txt
Normal file
9
ascii/hilfe/cmd-27.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: fülle, fuelle
|
||||||
|
Parameter: Gegenstand
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Füllt einen Gegenstand im Inventar. Das einzufüllende Material muss im aktuellen Raum vorhanden sein.
|
||||||
|
|
9
ascii/hilfe/cmd-28.txt
Normal file
9
ascii/hilfe/cmd-28.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: wirf
|
||||||
|
Parameter: Gegenstand
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Wirft einen Gegenstand im Inventar.
|
||||||
|
|
9
ascii/hilfe/cmd-29.txt
Normal file
9
ascii/hilfe/cmd-29.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: gib
|
||||||
|
Parameter: Gegenstand
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Gibt einen Gegenstand aus dem Inventar an eine Person im aktuellen Raum.
|
||||||
|
|
13
ascii/hilfe/cmd-3.txt
Normal file
13
ascii/hilfe/cmd-3.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: untersuche,schaue
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Gibt dir eine genauere Beschreibung eines Gegenstands. Der Gegenstand muss sich in deinem Inventar
|
||||||
|
oder im aktuellen Raum befinden.
|
||||||
|
Hinweis: Lässt du das Objekt weg, gibt es eine Beschreibung des aktuellen Raums.
|
||||||
|
|
||||||
|
|
||||||
|
|
9
ascii/hilfe/cmd-30.txt
Normal file
9
ascii/hilfe/cmd-30.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: entzünde
|
||||||
|
Parameter: Gegenstand
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Entzündet einenbrennbaren Gegestand aus dem Inventar. Feuer bedeutet Licht.
|
||||||
|
|
9
ascii/hilfe/cmd-31.txt
Normal file
9
ascii/hilfe/cmd-31.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: lösche
|
||||||
|
Parameter: Gegenstand
|
||||||
|
siehe auch: entzünde
|
||||||
|
|
||||||
|
|
||||||
|
Löscht einen brennden Gegenstand im Inventar.
|
||||||
|
|
9
ascii/hilfe/cmd-32.txt
Normal file
9
ascii/hilfe/cmd-32.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: spring
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Springt in die Höhe oder über etwas rüber oder in etwas hinein.
|
||||||
|
|
9
ascii/hilfe/cmd-4.txt
Normal file
9
ascii/hilfe/cmd-4.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: benutze
|
||||||
|
Parameter: Objekt
|
||||||
|
siehe auch:
|
||||||
|
|
||||||
|
|
||||||
|
Benutzt einen Gegenstand aus dem Inventar. Unter Umständen kann ein spezieller Gegenstand nur
|
||||||
|
in bestimmten Räumen benutzt werden.
|
9
ascii/hilfe/cmd-5.txt
Normal file
9
ascii/hilfe/cmd-5.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: nord
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch: gehe
|
||||||
|
|
||||||
|
|
||||||
|
Geht nach Norden, sofern dort ein Ausgang ist.
|
||||||
|
|
9
ascii/hilfe/cmd-6.txt
Normal file
9
ascii/hilfe/cmd-6.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: süd, süden
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch: gehe
|
||||||
|
|
||||||
|
|
||||||
|
Geht nach Süden, sofern dort ein Ausgang ist.
|
||||||
|
|
7
ascii/hilfe/cmd-7.txt
Normal file
7
ascii/hilfe/cmd-7.txt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: nord
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch: gehe
|
||||||
|
|
||||||
|
Geht nach Norden, sofern dort ein Ausgang ist.
|
9
ascii/hilfe/cmd-8.txt
Normal file
9
ascii/hilfe/cmd-8.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: west, westen
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch: gehe
|
||||||
|
|
||||||
|
|
||||||
|
Geht nach Westen, sofern dort ein Ausgang ist.
|
||||||
|
|
9
ascii/hilfe/cmd-9.txt
Normal file
9
ascii/hilfe/cmd-9.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Hilfeseite
|
||||||
|
|
||||||
|
Befehl: rauf
|
||||||
|
Parameter: -keiner-
|
||||||
|
siehe auch: gehe, klettere
|
||||||
|
|
||||||
|
|
||||||
|
Geht rauf, sofern dort ein Ausgang ist.
|
||||||
|
|
Binary file not shown.
Binary file not shown.
10
map.txt
10
map.txt
@@ -3,7 +3,7 @@
|
|||||||
^
|
^
|
||||||
|
|
|
|
||||||
V
|
V
|
||||||
Schlafzimmer<-->Flur
|
Schlafzimmer<-->Flur<--> Küche
|
||||||
^
|
^
|
||||||
|
|
|
|
||||||
V
|
V
|
||||||
@@ -11,10 +11,10 @@
|
|||||||
^
|
^
|
||||||
|
|
|
|
||||||
V
|
V
|
||||||
Bach<-->Teich
|
Stall Bach<-->Teich
|
||||||
^
|
^ ^
|
||||||
|
|
| |
|
||||||
V
|
V V
|
||||||
Wiese<------->Feld
|
Wiese<------->Feld
|
||||||
^ ^
|
^ ^
|
||||||
| |
|
| |
|
||||||
|
13
tomb.py
13
tomb.py
@@ -128,6 +128,8 @@ def inputLoop(stdscr):
|
|||||||
commandid = '0'
|
commandid = '0'
|
||||||
elif debugcommand[1] == 'weg':
|
elif debugcommand[1] == 'weg':
|
||||||
logging.debug(f'gelaufener Weg: {world.weg}')
|
logging.debug(f'gelaufener Weg: {world.weg}')
|
||||||
|
elif debugcommand[1] == 'unvisited':
|
||||||
|
debug_NonVisited()
|
||||||
|
|
||||||
elif command.startswith('auto:'):
|
elif command.startswith('auto:'):
|
||||||
command = command.rstrip()
|
command = command.rstrip()
|
||||||
@@ -158,6 +160,8 @@ def inputLoop(stdscr):
|
|||||||
testmodul.testKlippe()
|
testmodul.testKlippe()
|
||||||
elif debugcommand[1] == 'statue':
|
elif debugcommand[1] == 'statue':
|
||||||
testmodul.testStatue()
|
testmodul.testStatue()
|
||||||
|
elif debugcommand[1] == 'mauer':
|
||||||
|
testmodul.testMauer()
|
||||||
|
|
||||||
|
|
||||||
world.fehler = ''
|
world.fehler = ''
|
||||||
@@ -170,6 +174,15 @@ def inputLoop(stdscr):
|
|||||||
verarbeiteBefehl(parsedCommand)
|
verarbeiteBefehl(parsedCommand)
|
||||||
actionmodul.raumaction()
|
actionmodul.raumaction()
|
||||||
|
|
||||||
|
def debug_NonVisited():
|
||||||
|
logging.debug('nicht entdeckte Räume:')
|
||||||
|
|
||||||
|
for raumid in world.raumliste:
|
||||||
|
raum = world.raumliste[raumid]
|
||||||
|
|
||||||
|
if not raum.entdeckt:
|
||||||
|
logging.debug(f'{raum.id} - {raum.name}')
|
||||||
|
|
||||||
def debug_Personen():
|
def debug_Personen():
|
||||||
logging.debug('Personen im aktuellen Raum')
|
logging.debug('Personen im aktuellen Raum')
|
||||||
|
|
||||||
|
141
world.xml
141
world.xml
@@ -16,6 +16,7 @@
|
|||||||
<raum id='3' name='Flur'>
|
<raum id='3' name='Flur'>
|
||||||
<ausgang dir='Nord' nachRaum='1' />
|
<ausgang dir='Nord' nachRaum='1' />
|
||||||
<ausgang dir='West' nachRaum='4' />
|
<ausgang dir='West' nachRaum='4' />
|
||||||
|
<ausgang dir='Ost' nachRaum='43' />
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Du stehst in Flur vor der Eingangstür, die nach Süden ins Freie führt.
|
Du stehst in Flur vor der Eingangstür, die nach Süden ins Freie führt.
|
||||||
Rechts von der Tür hängt ein abstraktes Bild, links steht eine Pflanze in einer Nische.
|
Rechts von der Tür hängt ein abstraktes Bild, links steht eine Pflanze in einer Nische.
|
||||||
@@ -84,6 +85,7 @@
|
|||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='13' name='Wiese'>
|
<raum id='13' name='Wiese'>
|
||||||
|
<ausgang dir='Nord' nachRaum= '42' />
|
||||||
<ausgang dir='Ost' nachRaum= '11' />
|
<ausgang dir='Ost' nachRaum= '11' />
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
@@ -249,12 +251,13 @@
|
|||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='39' name='Mauer'>
|
<raum id='39' name='Mauer'>
|
||||||
|
<ausgang dir='Ost' nachRaum= '37' />
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Du stehst vor einer Mauer.
|
Du stehst vor einer Mauer.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='40' name='Grabkammer'>
|
<raum id='40' name='Grabkammer'>
|
||||||
<ausgang dir='Nord' nachRaum= '38' />
|
<ausgang dir='Nord' nachRaum= '39' />
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Das Grab des Azteken. Du bist am Ziel.
|
Das Grab des Azteken. Du bist am Ziel.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
@@ -267,11 +270,25 @@
|
|||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
|
|
||||||
|
<raum id='42' name='Stall'>
|
||||||
|
<ausgang dir='Sued' nachRaum= '13' />
|
||||||
|
<beschreibung>
|
||||||
|
Du stehst in einem leeren Pferdestall. Der Boden besteht aus festgestampfter Erde.
|
||||||
|
Am Tor ist eine Namenplakette angebracht.
|
||||||
|
</beschreibung>
|
||||||
|
</raum>
|
||||||
|
<raum id='43' name='Küche'>
|
||||||
|
<ausgang dir='West' nachRaum= '3' />
|
||||||
|
<beschreibung>
|
||||||
|
Du stehst in der Küche. In der Ecke steht ein Kühlschrank.
|
||||||
|
</beschreibung>
|
||||||
|
</raum>
|
||||||
|
|
||||||
</ebene>
|
</ebene>
|
||||||
|
|
||||||
<commandset>
|
<commandset>
|
||||||
<command name='quit' id='0' key='0' />
|
<command name='quit' id='0' key='0' />
|
||||||
<command name='ende' id='0' key='0' />
|
<command name='ende' id='43' key='0' />
|
||||||
<command name='geh' id='1' key='1' />
|
<command name='geh' id='1' key='1' />
|
||||||
<command name='gehe' id='27' key='1' />
|
<command name='gehe' id='27' key='1' />
|
||||||
<command name='nimm' id='2' key='2' />
|
<command name='nimm' id='2' key='2' />
|
||||||
@@ -289,10 +306,8 @@
|
|||||||
<command name='verliere' id='15' key='14' />
|
<command name='verliere' id='15' key='14' />
|
||||||
<command name='warte' id='16' key='15' />
|
<command name='warte' id='16' key='15' />
|
||||||
<command name='drücke' id='17' key='16' />
|
<command name='drücke' id='17' key='16' />
|
||||||
<command name='ende' id='18' key='0' />
|
|
||||||
<command name='schaue' id='18' key='3' />
|
<command name='schaue' id='18' key='3' />
|
||||||
<command name='ziehe' id='19' key='17' />
|
<command name='ziehe' id='19' key='17' />
|
||||||
<command name='benutze' id='20' key='18' />
|
|
||||||
<command name='stelle' id='21' key='19' />
|
<command name='stelle' id='21' key='19' />
|
||||||
<command name='stell' id='22' key='19' />
|
<command name='stell' id='22' key='19' />
|
||||||
<command name='öffne' id='23' key='20' />
|
<command name='öffne' id='23' key='20' />
|
||||||
@@ -302,7 +317,7 @@
|
|||||||
<command name='schlage' id='29' key='24' />
|
<command name='schlage' id='29' key='24' />
|
||||||
<command name='boxe' id='30' key='24' />
|
<command name='boxe' id='30' key='24' />
|
||||||
<command name='norden' id='31' key='5' />
|
<command name='norden' id='31' key='5' />
|
||||||
<command name='süd' id='32' key='7' />
|
<command name='süden' id='32' key='7' />
|
||||||
<command name='westen' id='33' key='8' />
|
<command name='westen' id='33' key='8' />
|
||||||
<command name='sprich' id='34' key='25' />
|
<command name='sprich' id='34' key='25' />
|
||||||
<command name='leere' id='35' key='26' />
|
<command name='leere' id='35' key='26' />
|
||||||
@@ -355,12 +370,10 @@
|
|||||||
<item name='Planke' display='' id='15' raum='7' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
<item name='Planke' display='' id='15' raum='7' imobil='false' adjektiv = '0' msgid='3' visible='true' />
|
||||||
<item name='Teich' display='' id='16' raum='10' imobil='true' adjektiv = '0' msgid='2' visible='true' />
|
<item name='Teich' display='' id='16' raum='10' imobil='true' adjektiv = '0' msgid='2' visible='true' />
|
||||||
<item name='Fisch' display='' id='17' raum='10' imobil='false' adjektiv = '0' msgid='0' visible='false' />
|
<item name='Fisch' display='' id='17' raum='10' imobil='false' adjektiv = '0' msgid='0' visible='false' />
|
||||||
<item name='Schwert' display='' id='18' raum='-1' imobil='false' adjektiv = '0' msgid='1' visible='false' />
|
|
||||||
<item name='Boxsack' display='' id='19' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
<item name='Boxsack' display='' id='19' raum='1' imobil='true' adjektiv = '0' msgid='1' visible='true' />
|
||||||
<item name='Maus' display='tote Maus' id='20' raum='12' imobil='false' adjektiv = '0' msgid='1' visible='true' />
|
<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='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='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='Gatter' id='25' display='' raum='13' imobil='true' adjektiv = '0' msgid='11' visible='true' />
|
<item name='Gatter' id='25' display='' raum='13' imobil='true' adjektiv = '0' msgid='11' visible='true' />
|
||||||
<item name='Schachtel' id='26' display='' raum='24' imobil='false' adjektiv = '0' msgid='11' visible='false' />
|
<item name='Schachtel' id='26' 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='Karte' id='27' display='' raum='24' imobil='false' adjektiv = '0' msgid='11' visible='false' />
|
||||||
@@ -371,12 +384,15 @@
|
|||||||
<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='Palme' id='40' display='' raum='30' imobil='true' adjektiv='0' msgid='8' visible='true' />
|
<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='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='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='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' />
|
<item name='Loch' id='44' display='' raum='30' imobil='true' adjektiv='0' msgid='8' visible='true' />
|
||||||
|
<item name='Plakette' id='45' display='' raum='42' imobil='true' adjektiv='0' msgid='2' visible='true' />
|
||||||
|
<item name='Kühlschrank' id='46' display='' raum='43' imobil='true' adjektiv='0' msgid='2' visible='true' />
|
||||||
|
<item name='Uhr' id='47' display='' raum='43' imobil='true' adjektiv='0' msgid='2' visible='true' />
|
||||||
|
<item name='Schriftzug' id='48' display='' raum='39' imobil='true' adjektiv='0' msgid='2' visible='false' />
|
||||||
|
|
||||||
</items>
|
</items>
|
||||||
<personen>
|
<personen>
|
||||||
@@ -407,9 +423,42 @@
|
|||||||
<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-1'>
|
||||||
|
Der Wohnzimmertisch ist leer.
|
||||||
|
</text>
|
||||||
|
<text id='item-2'>
|
||||||
|
Sie führt nach oben.
|
||||||
|
</text>
|
||||||
|
<text id='item-3'>
|
||||||
|
Eine massive Truhe aus Holz. Sie ist mit Eisenbändern verstärkt und besitzt ein kleines Schloss.
|
||||||
|
</text>
|
||||||
<text id='item-4'>
|
<text id='item-4'>
|
||||||
Audrey II
|
Audrey II
|
||||||
</text>
|
</text>
|
||||||
|
<text id='item-5'>
|
||||||
|
Eine einfache Tür.
|
||||||
|
</text>
|
||||||
|
<text id='item-6'>
|
||||||
|
Der Krug ist aus gebrannten und glasiertem Ton mit einem Henkel an der Seite.
|
||||||
|
</text>
|
||||||
|
<text id='item-7'>
|
||||||
|
Das Bett ist frisch bezogen.
|
||||||
|
</text>
|
||||||
|
<text id='item-8'>
|
||||||
|
Ein Schränkchen mit einer Schublade.
|
||||||
|
</text>
|
||||||
|
<text id='item-9'>
|
||||||
|
Ein ganz normaler Schlüssel. Er schimmert etwas bläulich.
|
||||||
|
</text>
|
||||||
|
<text id='item-10'>
|
||||||
|
Die Jacke ist aus rotem Leinenstoff genäht.
|
||||||
|
</text>
|
||||||
|
<text id='item-11'>
|
||||||
|
Für ein Schwert ist es relativ klein (könnte auch ein Brieföffner sein). Auf der Klinge ist das Wort "Stich" eingraviert.
|
||||||
|
</text>
|
||||||
|
<text id='item-12'>
|
||||||
|
Das Seil ist etwa 5m lang und könnte aus Garnfasern geflochten sein. Es ist stark genug, dein Gewicht zu tragen.
|
||||||
|
</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>
|
||||||
@@ -431,6 +480,10 @@
|
|||||||
<text id='item-20'>
|
<text id='item-20'>
|
||||||
Die ist mausetot.
|
Die ist mausetot.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='item-21'>
|
||||||
|
Ein Bohnengewächs der märchenhaften Gattung vigna hans in beatitudinem.
|
||||||
|
Sie ist etwas mickrig und braucht Pflege.
|
||||||
|
</text>
|
||||||
<text id='item-21-0'>
|
<text id='item-21-0'>
|
||||||
Ein Bohnengewächs der märchenhaften Gattung vigna hans in beatitudinem.
|
Ein Bohnengewächs der märchenhaften Gattung vigna hans in beatitudinem.
|
||||||
Sie ist etwas mickrig und braucht Pflege.
|
Sie ist etwas mickrig und braucht Pflege.
|
||||||
@@ -446,13 +499,32 @@
|
|||||||
<text id='item-22'>
|
<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.
|
Der Elefantbulle ist mindestens fünf Meter größer als du und hat zwei beeindruckende Stoßzähne. Er versperrt den Ausgang.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='item-25'>
|
||||||
|
Das Gatter ist im südlichen Teil der Wiesenumzäunung angebracht.
|
||||||
|
</text>
|
||||||
<text id='item-26'>
|
<text id='item-26'>
|
||||||
Eine einfache Schachtel aus Pappe. Jemand hat "Eigentum von Henry" auf die Oberseite geschrieben.
|
Eine einfache Schachtel aus Pappe. Jemand hat "Eigentum von Henry" auf die Oberseite geschrieben.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='item-27'>
|
||||||
|
Dies ist die Karte von der Henry die erzählt hat.
|
||||||
|
</text>
|
||||||
<text id='item-28'>
|
<text id='item-28'>
|
||||||
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-29'>
|
||||||
|
Die Fackel hättest du schon eher brauchen können.
|
||||||
|
</text>
|
||||||
|
<text id='item-30'>
|
||||||
|
Eine orangefarbene Rettungsweste, die dir im Wasser genügend Auftrieb verleiht. Solltest du auf einen Eisberg treffen, bist
|
||||||
|
du in Sicherheit.
|
||||||
|
</text>
|
||||||
|
<text id='item-31'>
|
||||||
|
Die Luft ist abgestanden und durch das ungeputzte Bullauge dringt kaum Licht.
|
||||||
|
</text>
|
||||||
|
<text id='item-32'>
|
||||||
|
Mit dem Beiboot kann man durch flacheres Wasser fahren. Und, falls ein Eisberg...
|
||||||
|
</text>
|
||||||
<text id='item-33'>
|
<text id='item-33'>
|
||||||
---------
|
---------
|
||||||
| No |
|
| No |
|
||||||
@@ -460,13 +532,38 @@
|
|||||||
| Club |
|
| Club |
|
||||||
----------
|
----------
|
||||||
</text>
|
</text>
|
||||||
|
<text id='item-38'>
|
||||||
|
Der Diamant ist oktaederförmig geschliffen und funkelt im Sonnenlicht.
|
||||||
|
</text>
|
||||||
<text id='item-41'>
|
<text id='item-41'>
|
||||||
Die Mauer wurde scheinbar vor ewigen Zeiten aus getrockneten Lehmziegel errichtet und die Fugen
|
Der Sockel dient seiner Form nach zur Aufnahme eines achtseitigen Gegenstands.
|
||||||
anschlißend mit Lehm verputzt.
|
</text>
|
||||||
|
<text id='item-40'>
|
||||||
|
Eine einzelne Palme. Irgendwer hat die Kokosnuss geklaut.
|
||||||
</text>
|
</text>
|
||||||
<text id='item-42'>
|
<text id='item-42'>
|
||||||
Der Kopf repräsentiert einen dir unbekannten Mann, der würdevoll über seine linke Schulter schaut.
|
Der Kopf repräsentiert einen dir unbekannten Mann, der würdevoll über seine linke Schulter schaut.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='item-43'>
|
||||||
|
Die Mauer wurde scheinbar vor ewigen Zeiten aus getrockneten Lehmziegel errichtet und die Fugen
|
||||||
|
anschlißend mit Lehm verputzt.
|
||||||
|
</text>
|
||||||
|
<text id='item-44'>
|
||||||
|
Ein in den Sand gegrabenes Loch.
|
||||||
|
</text>
|
||||||
|
<text id='item-45'>
|
||||||
|
Horst.
|
||||||
|
Der Pferd heisst Horst.
|
||||||
|
</text>
|
||||||
|
<text id='item-46'>
|
||||||
|
Wie überraschend, er ist weiß.
|
||||||
|
</text>
|
||||||
|
<text id='item-47'>
|
||||||
|
Die Uhr ist bei 22:04 Uhr stehen geblieben.
|
||||||
|
</text>
|
||||||
|
<text id='item-48'>
|
||||||
|
Über die ganze Wand hat jemand "Romanum ite domum" gepinselt.
|
||||||
|
</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>
|
||||||
@@ -476,6 +573,12 @@
|
|||||||
<text id='raum-31-1'>
|
<text id='raum-31-1'>
|
||||||
Im Licht der Fackel erkennst du, dass das Loch sorgfältig gegraben und mit Schiffsplanken abgestützt wurde.
|
Im Licht der Fackel erkennst du, dass das Loch sorgfältig gegraben und mit Schiffsplanken abgestützt wurde.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='raum-43'>
|
||||||
|
Eine praktisch eingerichtete Küche. An der Wand hängt eine Uhr, ein Kühlschrank steht gegenüber der Tür.
|
||||||
|
</text>
|
||||||
|
<text id='npc-5'>
|
||||||
|
Muuuh.
|
||||||
|
</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>
|
||||||
@@ -484,6 +587,12 @@
|
|||||||
der Oberkörper ist frei.
|
der Oberkörper ist frei.
|
||||||
Er scheint offensichtlich zu frieren.
|
Er scheint offensichtlich zu frieren.
|
||||||
</text>
|
</text>
|
||||||
|
<text id='zuul'>
|
||||||
|
*** * * * * *
|
||||||
|
* * * * * *
|
||||||
|
* * * * * *
|
||||||
|
**** ***** ***** *****
|
||||||
|
</text>
|
||||||
<text id='hilfe'>
|
<text id='hilfe'>
|
||||||
Das Grab des Azteken ist ein klassisches Textadventure.
|
Das Grab des Azteken ist ein klassisches Textadventure.
|
||||||
Es ist eine Adaption des gleichnamigen Adventures auf dem C64.
|
Es ist eine Adaption des gleichnamigen Adventures auf dem C64.
|
||||||
@@ -492,7 +601,7 @@
|
|||||||
Die Liste der möglichen Befehle erhälst du mit "hilfe befehle".
|
Die Liste der möglichen Befehle erhälst du mit "hilfe befehle".
|
||||||
Die Aufgabe gibt dir jemand im Spiel.
|
Die Aufgabe gibt dir jemand im Spiel.
|
||||||
</text>
|
</text>
|
||||||
<text id='geist'>
|
<text id='npc-4'>
|
||||||
Ich bin der Geist deines Großonkels Henry. Mein ganzes Leben habe ich damit verbracht, das Himmelsgrab der Azteken zu finden, wie zuvor
|
Ich bin der Geist deines Großonkels Henry. Mein ganzes Leben habe ich damit verbracht, das Himmelsgrab der Azteken zu finden, wie zuvor
|
||||||
mein Vater.
|
mein Vater.
|
||||||
Leider erfolglos. Die Karte, die ich mir mühsam aus Hinweisen erstellt hatte, wurde mir von einem hinterlistigen Zwerg entwendet.
|
Leider erfolglos. Die Karte, die ich mir mühsam aus Hinweisen erstellt hatte, wurde mir von einem hinterlistigen Zwerg entwendet.
|
||||||
@@ -508,5 +617,15 @@
|
|||||||
<text id='jackewurf'>
|
<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.
|
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>
|
</text>
|
||||||
|
<text id='graböffnung'>
|
||||||
|
Also du den Diamant in den Sockel setzt, schiebt sich ein Teil der Mauer knirschend nach hinten und gibt einen Durchgang frei. Staubige Luft
|
||||||
|
quillt dir entgegen.
|
||||||
|
</text>
|
||||||
|
<text id='victory'>
|
||||||
|
Henry erscheint und sagt:
|
||||||
|
"Es war sehr beeindruckend, deine Suche zu verfolgen. Du hast meine Aufgabe erfolgreich zu Ende geführt."
|
||||||
|
"Endlich kann ich meine Frieden finden."
|
||||||
|
</text>
|
||||||
|
|
||||||
</texte>
|
</texte>
|
||||||
</welt>
|
</welt>
|
||||||
|
Reference in New Issue
Block a user