diff --git a/ActionBasics.py b/ActionBasics.py index 3fcf145..2fd265f 100644 --- a/ActionBasics.py +++ b/ActionBasics.py @@ -120,10 +120,13 @@ class ActionBasics: return None def personVonRaumNachRaum(self, person, vonRaumId, nachRaumId): + logging.debug(f'person Von Raum {vonRaumId} nach {nachRaumId}') vonRaum = self.world.findRaumById(vonRaumId) 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 person.raumid = nachRaumId diff --git a/ActionModul.py b/ActionModul.py index 6f4d0aa..3a49a4f 100644 --- a/ActionModul.py +++ b/ActionModul.py @@ -144,8 +144,12 @@ class ActionModul(ActionBasics): 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) @@ -630,6 +634,7 @@ class ActionModul(ActionBasics): logging.debug(f'gefundener Ausgang: {ausgang}') if ausgang != None: raum = self.world.sucheRaum(ausgang) + else: logging.warn('Keine AusgandId gefunde') self.setFehler("In diese Richtung gibt's keine Ausgang!") diff --git a/TestModule.py b/TestModule.py index 79a538a..2993e4b 100644 --- a/TestModule.py +++ b/TestModule.py @@ -19,11 +19,11 @@ class TestModule: def testOeffneTruhe(self): logging.debug('===== Beginn Testmodul Truhe =====') - pcmd = self.parseInput('nimm Truhe') #Auf den Dachboden self.ac.rauf() self.schrittzaehler += 1 + pcmd = self.parseInput('nimm Truhe') self.ac.nimm(pcmd) self.schrittzaehler += 1 diff --git a/World.py b/World.py index 1fac69b..52870b5 100644 --- a/World.py +++ b/World.py @@ -258,6 +258,16 @@ class World: return person 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): raum = self.aktuellerRaum diff --git a/world.xml b/world.xml index 613009d..3b5267f 100644 --- a/world.xml +++ b/world.xml @@ -611,5 +611,11 @@ Du stehst in der Küche. In der Ecke steht ein Kühlschrank. 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. + + 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." + +