Stier läuft der Jacke hinterher.
This commit is contained in:
@@ -25,6 +25,12 @@ class ActionBasics:
|
|||||||
logging.debug(f'ins Inventar {item.name}')
|
logging.debug(f'ins Inventar {item.name}')
|
||||||
self.insInventar(item)
|
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):
|
def isItemAndAktRaum(self,item, itemid, raumid):
|
||||||
isItem = self.isItem(item,itemid)
|
isItem = self.isItem(item,itemid)
|
||||||
isRaum = self.isAktuellerRaum(raumid)
|
isRaum = self.isAktuellerRaum(raumid)
|
||||||
@@ -47,7 +53,15 @@ class ActionBasics:
|
|||||||
logging.debug(f'{itemid} -{item.id}')
|
logging.debug(f'{itemid} -{item.id}')
|
||||||
if item.id == itemid:
|
if item.id == itemid:
|
||||||
return item
|
return item
|
||||||
|
|
||||||
return None
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -75,7 +75,7 @@ class ActionModul(ActionBasics):
|
|||||||
self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.')
|
self.setFehler('Die Truhe ist verschlossen und dir fehlt der passende Schlüssel.')
|
||||||
|
|
||||||
elif item.id == self.world.ITEM_HAUSTUER:
|
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)
|
schluessel = self.world.findItemImInventarById(self.world.ITEM_HAUSTUERSCHLUESSEL)
|
||||||
|
|
||||||
logging.debug(f'öffne Haustür Schlüssel ist {schluessel}')
|
logging.debug(f'öffne Haustür Schlüssel ist {schluessel}')
|
||||||
@@ -86,6 +86,21 @@ class ActionModul(ActionBasics):
|
|||||||
self.world.aktuellerRaum.ausgaenge[self.world.SUED] = self.world.RAUM_GARTEN
|
self.world.aktuellerRaum.ausgaenge[self.world.SUED] = self.world.RAUM_GARTEN
|
||||||
else:
|
else:
|
||||||
self.setFehler('Die Tür ist verschlossen.')
|
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):
|
def isAktuellerRaum(self, raumid):
|
||||||
return self.world.aktuellerRaum.id == raumid
|
return self.world.aktuellerRaum.id == raumid
|
||||||
@@ -215,6 +230,9 @@ class ActionModul(ActionBasics):
|
|||||||
return
|
return
|
||||||
|
|
||||||
item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand)
|
item = self.world.findItemImInventarOderAktuellerRaum(parsedCommand.gegenstand)
|
||||||
|
if item == None:
|
||||||
|
self.setFehler('Das sehe ich hier nicht')
|
||||||
|
return
|
||||||
|
|
||||||
if item != None:
|
if item != None:
|
||||||
if item.id == self.world.ITEM_PFLANZE:
|
if item.id == self.world.ITEM_PFLANZE:
|
||||||
@@ -248,10 +266,6 @@ class ActionModul(ActionBasics):
|
|||||||
else:
|
else:
|
||||||
self.zeigeItemBeschreibung(item)
|
self.zeigeItemBeschreibung(item)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
else:
|
else:
|
||||||
logging.debug('Kein Item gefunden, suche nach Raum')
|
logging.debug('Kein Item gefunden, suche nach Raum')
|
||||||
self.untersucheAktuellenRaum(parsedCommand)
|
self.untersucheAktuellenRaum(parsedCommand)
|
||||||
@@ -295,6 +309,21 @@ class ActionModul(ActionBasics):
|
|||||||
self.setFehler('Der Elefant ist schon geflohen.')
|
self.setFehler('Der Elefant ist schon geflohen.')
|
||||||
else:
|
else:
|
||||||
self.setFehler('Das besitzt du nicht')
|
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:
|
else:
|
||||||
self.verliere(parsedCommand)
|
self.verliere(parsedCommand)
|
||||||
|
|
||||||
|
@@ -136,6 +136,36 @@ class TestModule:
|
|||||||
|
|
||||||
self.world.schrittzaehler = self.schrittzaehler
|
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):
|
def testRanke(self):
|
||||||
self.testTeich()
|
self.testTeich()
|
||||||
|
|
||||||
|
21
World.py
21
World.py
@@ -135,6 +135,13 @@ class World:
|
|||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def findRaumById(self,raumid):
|
||||||
|
|
||||||
|
for rid in self.raumliste:
|
||||||
|
if rid == raumid:
|
||||||
|
return self.raumliste[rid]
|
||||||
|
return None
|
||||||
|
|
||||||
def findItemInAktuellerRaum(self,itemname):
|
def findItemInAktuellerRaum(self,itemname):
|
||||||
raum = self.aktuellerRaum
|
raum = self.aktuellerRaum
|
||||||
|
|
||||||
@@ -170,6 +177,16 @@ class World:
|
|||||||
return person
|
return person
|
||||||
return None
|
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):
|
def findItemImInventar(self,itemname):
|
||||||
|
|
||||||
@@ -308,6 +325,7 @@ class World:
|
|||||||
self.ITEM_BOHNENRANKE = '21'
|
self.ITEM_BOHNENRANKE = '21'
|
||||||
self.ITEM_ELEFANT = '22'
|
self.ITEM_ELEFANT = '22'
|
||||||
self.ITEM_HAFEN = '23'
|
self.ITEM_HAFEN = '23'
|
||||||
|
self.ITEM_GATTER = '25'
|
||||||
|
|
||||||
# Räume
|
# Räume
|
||||||
|
|
||||||
@@ -342,6 +360,9 @@ class World:
|
|||||||
# Personen
|
# Personen
|
||||||
|
|
||||||
self.PERSON_GEIST = '4'
|
self.PERSON_GEIST = '4'
|
||||||
|
self.PERSON_FISCH = '2'
|
||||||
|
self.PERSON_STIER = '5'
|
||||||
|
self.PERSON_ZWERG = '6'
|
||||||
|
|
||||||
|
|
||||||
self.fehler = ''
|
self.fehler = ''
|
||||||
|
@@ -135,7 +135,7 @@ class WorldParser():
|
|||||||
person = Person(name,id,raum)
|
person = Person(name,id,raum)
|
||||||
self.world.personen[id] = person
|
self.world.personen[id] = person
|
||||||
raum = self.world.sucheRaum(raumid)
|
raum = self.world.sucheRaum(raumid)
|
||||||
raum.personen[raumid] = person
|
raum.personen[id] = person
|
||||||
|
|
||||||
# Texte
|
# Texte
|
||||||
for item in root.findall('texte/text'):
|
for item in root.findall('texte/text'):
|
||||||
|
12
tomb.py
12
tomb.py
@@ -111,6 +111,8 @@ def inputLoop(stdscr):
|
|||||||
debug_Items()
|
debug_Items()
|
||||||
elif debugcommand[1] == 'inventar':
|
elif debugcommand[1] == 'inventar':
|
||||||
debug_Inventar()
|
debug_Inventar()
|
||||||
|
elif debugcommand[1] == 'personen':
|
||||||
|
debug_Personen()
|
||||||
elif command.startswith('auto:'):
|
elif command.startswith('auto:'):
|
||||||
command = command.rstrip()
|
command = command.rstrip()
|
||||||
if command.startswith('auto:'):
|
if command.startswith('auto:'):
|
||||||
@@ -129,6 +131,8 @@ def inputLoop(stdscr):
|
|||||||
testmodul.testTal()
|
testmodul.testTal()
|
||||||
elif debugcommand[1] =='baumhaus':
|
elif debugcommand[1] =='baumhaus':
|
||||||
testmodul.testBaumhaus()
|
testmodul.testBaumhaus()
|
||||||
|
elif debugcommand[1] == 'stier':
|
||||||
|
testmodul.testStier()
|
||||||
|
|
||||||
world.fehler = ''
|
world.fehler = ''
|
||||||
|
|
||||||
@@ -140,6 +144,14 @@ def inputLoop(stdscr):
|
|||||||
verarbeiteBefehl(parsedCommand)
|
verarbeiteBefehl(parsedCommand)
|
||||||
actionmodul.raumaction()
|
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():
|
def debug_Items():
|
||||||
logging.debug('liste Items')
|
logging.debug('liste Items')
|
||||||
logging.debug(world.gegenstaende)
|
logging.debug(world.gegenstaende)
|
||||||
|
12
world.xml
12
world.xml
@@ -84,15 +84,13 @@
|
|||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='13' name='Wiese'>
|
<raum id='13' name='Wiese'>
|
||||||
<ausgang dir='Ost' nachRaum= '12' />
|
<ausgang dir='Ost' nachRaum= '11' />
|
||||||
<ausgang dir='Sued' nachRaum= '14' />
|
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Du stehst auf einer Wiese, die nach
|
Du stehst auf einer umzäunten Wiese, Ein Gatter versperrt den Weg nach Süden.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
</raum>
|
</raum>
|
||||||
<raum id='14' name='Brachland'>
|
<raum id='14' name='Brachland'>
|
||||||
<ausgang dir='Nord' nachRaum= '13' />
|
|
||||||
|
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Brachland. Hier wächst nicht viel abgesehen von einer einzelnen Bohnenranke.
|
Brachland. Hier wächst nicht viel abgesehen von einer einzelnen Bohnenranke.
|
||||||
@@ -265,11 +263,14 @@
|
|||||||
<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='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='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>
|
</items>
|
||||||
<personen>
|
<personen>
|
||||||
<person name='Fisch' id='2' raum='10' bewegung='0' />
|
<person name='Fisch' id='2' raum='10' bewegung='0' />
|
||||||
<person name='Geist' id='4' raum='2' bewegung='1' />
|
<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>
|
</personen>
|
||||||
<messages>
|
<messages>
|
||||||
<pickup text='Das ist zu schwer' id='1' />
|
<pickup text='Das ist zu schwer' id='1' />
|
||||||
@@ -352,5 +353,8 @@
|
|||||||
<text id='mauswurf'>
|
<text id='mauswurf'>
|
||||||
Als der Elefant die Maus sieht, bekommt er einen Riesenschreck und flüchtet. Dadurch wird der Weg nach Süden frei.
|
Als der Elefant die Maus sieht, bekommt er einen Riesenschreck und flüchtet. Dadurch wird der Weg nach Süden frei.
|
||||||
</text>
|
</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>
|
</texte>
|
||||||
</welt>
|
</welt>
|
||||||
|
Reference in New Issue
Block a user