From e004bfc17e1ebe6eff4b90d0d8b444df094646a8 Mon Sep 17 00:00:00 2001 From: Olli Graf Date: Sun, 29 May 2022 08:49:08 +0200 Subject: [PATCH] Jacke dupliziert sich beim Werfen nicht mehr. --- ActionBasics.py | 14 ++++++- ActionModul.py | 32 +++++++++++---- TestModule.py | 57 +++++++++++++-------------- World.py | 4 +- data/Raum.py | 2 +- data/__pycache__/Raum.cpython-38.pyc | Bin 3893 -> 3804 bytes tomb.py | 12 +++--- 7 files changed, 77 insertions(+), 44 deletions(-) diff --git a/ActionBasics.py b/ActionBasics.py index c9a4f70..98d67b3 100644 --- a/ActionBasics.py +++ b/ActionBasics.py @@ -9,6 +9,11 @@ class ActionBasics: def debug(self, method, text): logging.debug(f'ActionBasics: {text}') + def ausDemInventar(self,item): + del self.world.inventar[item.id] + self.world.aktuellerRaum.items[item.id] = item + item.raumid = self.world.aktuellerRaum.id + def insInventar(self, item): logging.debug(f'neu ins Inventar: {item.name}') self.world.inventar[item.id] = item @@ -19,6 +24,9 @@ class ActionBasics: def clearFehler(self): self.world.fehler = '' + def liegtItemInRaum(self,itemid, raum): + return itemid in raum.items + def moveItemVonRaumNachInventar(self,item): logging.debug(f'entferne aus aktuellen Raum {item.name}') del self.world.aktuellerRaum.items[item.id] @@ -26,8 +34,12 @@ class ActionBasics: self.insInventar(item) def moveItemVonInventarNachRaum(self,item, nachRaumId): - self.ausDemInventar(item) + del self.world.inventar[item.id] + logging.debug(f' Item {item.name} nach RaumId {nachRaumId}') raum = self.world.findRaumById(nachRaumId) + logging.debug(f' Item {item.name} liegt jetzt in Raum {raum.name}') + logging.debug(f'{item.name} liegt im {raum.name}: {self.liegtItemInRaum(item.id, raum)}') + logging.debug(f'{item.name} liegt im {self.world.aktuellerRaum.name}: {self.liegtItemInRaum(item.id, self.world.aktuellerRaum)}') raum.items[item.id] = item item.raumid = nachRaumId diff --git a/ActionModul.py b/ActionModul.py index 444c298..3798a9d 100644 --- a/ActionModul.py +++ b/ActionModul.py @@ -89,16 +89,16 @@ class ActionModul(ActionBasics): 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) + stier = self.world.findPersonImAktuellenRaumById(self.world.PERSON_STIER) - logging.debug('Stier ist {stier}') + logging.debug(f'Stier ist {stier}') - if stier != None: + 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.') + self.setFehler(f'Der Stier steht dir im Weg.') @@ -194,10 +194,23 @@ class ActionModul(ActionBasics): if self.isAktuellerRaum(self.world.RAUM_BRACHLAND): if item.zustand == item.VOLL: ranke = self.world.findItemById(self.world.ITEM_BOHNENRANKE) + fisch = self.world.findItemImInventarById(self.world.ITEM_FISCH) + + logging.debug(f'Fisch ist {fisch}') + + if fisch != None: + logging.debug('Krug leeren löst den Fisch auf.') + self.vanishItem(fisch) + self.setFehler('Der Fisch löst sich auf.') if ranke.zustand < ranke.GROSS: ranke.zustand = ranke.zustand +1 - self.setFehler('Die Bohnenranke wächst.') + meldung = 'Die Bohnenranke wächst.' + + if fisch != None: + meldung = meldung + ' Der Fisch löst sich auf.' + + self.setFehler(meldung) 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.') @@ -309,7 +322,7 @@ class ActionModul(ActionBasics): self.setFehler('Der Elefant ist schon geflohen.') else: self.setFehler('Das besitzt du nicht') - elif self.isAktuellerRaum(self.world.RAUM_WIESE): + elif self.isItemAndAktRaum(item, self.world.ITEM_JACKE, self.world.RAUM_WIESE): logging.debug('Jackenwurf') stier = self.world.findPersonImAktuellenRaumById(self.world.PERSON_STIER) jacke = self.world.findItemImInventarById(self.world.ITEM_JACKE) @@ -318,14 +331,19 @@ class ActionModul(ActionBasics): if stier != None: if jacke != None: self.world.printText('jackewurf') + logging.debug(f'1:Jacke im Raum {self.liegtItemInRaum(jacke.id, self.world.aktuellerRaum)}') self.personVonRaumNachRaum(stier,self.world.aktuellerRaum.id, self.world.RAUM_FELD) + logging.debug(f'2:Jacke im Raum {self.liegtItemInRaum(jacke.id, self.world.aktuellerRaum)}') self.moveItemVonInventarNachRaum(jacke, self.world.RAUM_FELD) + logging.debug(f'3:Jacke im Raum {self.liegtItemInRaum(jacke.id, self.world.aktuellerRaum)}') else: self.setFehler('Die trägst du nicht bei dir.') else: + logging.debug(f'verliere Jacke (kein Stier)') self.verliere(parsedCommand) else: - self.verliere(parsedCommand) + logging.debug(f'verliere Jacke (falscher Raum, nicht Jacke)') + self.verliere(parsedCommand) diff --git a/TestModule.py b/TestModule.py index fddd9cb..27245e4 100644 --- a/TestModule.py +++ b/TestModule.py @@ -18,6 +18,7 @@ class TestModule: return self.world.parseInput(command) def testOeffneTruhe(self): + logging.debug('===== Beginn Testmodul Truhe =====') pcmd = self.parseInput('nimm Truhe') #Auf den Dachboden @@ -76,6 +77,7 @@ class TestModule: def testTeich(self): self.testOeffneTruhe() + logging.debug('===== Beginn Testmodul Teich =====') #Rauf ins Schlafzimmer self.ac.rauf() @@ -132,13 +134,17 @@ class TestModule: #Zum Teich self.ac.ost() + pcmd = self.parseInput('nimm Fisch') + self.ac.nimm(pcmd) self.schrittzaehler += 1 + self.world.schrittzaehler = self.schrittzaehler def testStier(self): self.testTeich() - + logging.debug('===== Beginn Testmodul Stier =====') + pcmd = self.parseInput('nimm Fisch') self.ac.nimm(pcmd) @@ -166,36 +172,29 @@ class TestModule: self.ac.west() self.schrittzaehler += 1 + pcmd = self.parseInput('wirf Jacke') + self.ac.wirf(pcmd) + self.schrittzaehler += 1 + + #Feld + self.ac.ost() + self.schrittzaehler += 1 + pcmd = self.parseInput('nimm Jacke') + self.ac.nimm(pcmd) + self.schrittzaehler += 1 + + # Auf die Wiese + self.ac.west() + self.schrittzaehler += 1 + pcmd = self.parseInput('öffne Gatter') + self.ac.oeffne(pcmd) + 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 + self.testStier() + logging.debug('===== Beginn Testmodul Ranke =====') # Aufs Brachland self.ac.sued() diff --git a/World.py b/World.py index 1ff8dd1..91d3863 100644 --- a/World.py +++ b/World.py @@ -183,6 +183,8 @@ class World: for persid in raum.personen: person = raum.personen[persid] + logging.debug(f'{person.id} - {personid}') + if person.id == personid: return person return None @@ -205,7 +207,7 @@ class World: def ermittleBefehlId(self,befehl): for id in self.befehle: name = self.befehle[id].name - logging.debug(f'{befehl} - {name}') + #logging.debug(f'{befehl} - {name}') if name == befehl: return id return None diff --git a/data/Raum.py b/data/Raum.py index 60e7644..830e8d3 100644 --- a/data/Raum.py +++ b/data/Raum.py @@ -42,7 +42,7 @@ class Raum(SuperNode): for itemid in self.items: item = self.items[itemid] - logging.debug('labelsGegenstaende(): Item ' + self.items[itemid].name + ' ist ' + str(item.sichtbar)) + #logging.debug('labelsGegenstaende(): Item ' + self.items[itemid].name + ' ist ' + str(item.sichtbar)) if item.sichtbar: if item.display != None: labels.append(item.display) diff --git a/data/__pycache__/Raum.cpython-38.pyc b/data/__pycache__/Raum.cpython-38.pyc index 0f4de4560f92fc93f4fba28e11ab7b6287d99e59..e8b487ddf6db94f5d767ed9d84d021e80367c140 100644 GIT binary patch delta 519 zcmYjNOG`pg5I*PJhu5oDilQvAXi;Eh3XzJbL@%Ns=tYZap%`-2lE!FtrT@_R1KGM3 z5rNzOfIr|8ZL4+5HqFR2Ixydy`R2iV^D^-ku?{WEWcVicZc86e*1K9%FN%+K=`bC^#&t!3a9}poImf z@>N?84q(i@|VzO&2OJUse z`CdMObpBsH@!T~O9-c?3wz4F`N`h= zZ*zAvj+v+mIy#{H^mjWBWW3%KvWIB>-BQ>ak#3;PGtvom^c;2dWDJpn6Dp-i1`n!` z_KIWj(dvw6sdS0J_Xh_3a`GlL#q*?fqku#itv^HoVxoT6S8r4*_C*Cq1Xu)gH=yGH PDFj*-XbC9DpHTJ}SvqHn delta 651 zcmYjO&ui3B5Pp-FY_i#=_yf&~R98@Fs9kFdmabOYRS;2%qPBVP<38LXfi3&4D}5;ZBsyZug_ zOq_PuRXbVy3IqMV{19&BHU5-Wi#wJmIp1(mV=1rk!F}Q{kP?{4PmqsuyvH+@OU3yW zk~hhYdR(FNGkRRvhnrOCuyluy=i{7ikh{gHyc`FnOl%a%bNaD&c#B8D+YI)9aM diff --git a/tomb.py b/tomb.py index a9b3d92..7799faf 100755 --- a/tomb.py +++ b/tomb.py @@ -154,19 +154,21 @@ def debug_Personen(): def debug_Items(): logging.debug('liste Items') - logging.debug(world.gegenstaende) + logging.debug(world.aktuellerRaum.items) count = 0 - for item in world.gegenstaende: + for itemid in world.aktuellerRaum.items: + item = world.aktuellerRaum.items[itemid] logging.debug(f'count= {count}') - logging.debug(f'Itemtyp: {type(item)}') -# logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name}') +# logging.debug(f'Itemtyp: {type(item)}') + 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: + for itemid in world.inventar: + item = world.inventar[itemid] logging.debug(f'count= {count}') logging.debug(f'Itemtyp: {type(item)}') # logging.debug(f'Item-IdId:{item.id} - Item-Name:{item.name}')