Volles Wchstum der Bohnenranke, die Spitze ist erreichbar.
This commit is contained in:
@@ -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
|
||||
@@ -69,10 +81,9 @@ class ActionModul:
|
||||
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.')
|
||||
|
||||
@@ -263,6 +274,15 @@ class ActionModul:
|
||||
def fange(self, parsedCommand):
|
||||
skip
|
||||
|
||||
def wirf(self,parsedCommand):
|
||||
item = self.world.findItemImInventar(parsedCommand.gegenstand)
|
||||
|
||||
if self.isItemAndAktRaum(item, self.world.ITEM_SEIL,self.world.RAUM_BAUM):
|
||||
self.world.printText('seilwurf')
|
||||
self.world.aktuellerRaum.richtungen[self.world.RAUF] = self.world.RAUM_BAUMHAUS
|
||||
self.ausDemInventar(item)
|
||||
|
||||
|
||||
def klettere(self, parsedCommand):
|
||||
leiter = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||
|
||||
@@ -271,6 +291,13 @@ class ActionModul:
|
||||
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.')
|
||||
|
||||
@@ -278,6 +305,11 @@ class ActionModul:
|
||||
logging.debug(f'neu ins Inventar: {item.name}')
|
||||
self.world.inventar[item.id] = item
|
||||
|
||||
def moveItemVonRaumNachInventar(self,item):
|
||||
logging.debug(f'moveItemVonRaumNachInventar(): entferne aus aktuellen Raum {item.name}')
|
||||
del self.world.aktuellerRaum.items[item.id]
|
||||
logging.debug(f'moveItemVonRaumNachInventar(): ins Inventar {item.name}')
|
||||
self.insInventar(item)
|
||||
|
||||
def nimm(self,parsedCommand):
|
||||
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||
@@ -293,8 +325,6 @@ class ActionModul:
|
||||
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]
|
||||
|
||||
aufnehmen = True
|
||||
|
||||
@@ -316,14 +346,20 @@ class ActionModul:
|
||||
aufnehmen = False
|
||||
|
||||
if aufnehmen:
|
||||
logging.debug(f'Item {item.name} ins Inventar')
|
||||
self.insInventar(item)
|
||||
self.moveItemVonRaumNachInventar(item)
|
||||
|
||||
|
||||
|
||||
else:
|
||||
self.setFehler("diesen Gegenstand sehe ich hier nicht.")
|
||||
|
||||
|
||||
def isItemAndAktRaum(self,item, itemid, raumid):
|
||||
return self.isItem(item, itemid) and self.isAktuellerRaum(raumid)
|
||||
|
||||
def isItem(self, item, itemid):
|
||||
return item.id == itemid
|
||||
|
||||
def sprich(self,parsedCommand):
|
||||
geist = self.world.findPersonImAktuellenRaum(parsedCommand.gegenstand)
|
||||
|
||||
@@ -338,6 +374,17 @@ class ActionModul:
|
||||
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)
|
||||
@@ -346,14 +393,19 @@ class ActionModul:
|
||||
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}')
|
||||
raum = self.world.aktuellerRaum
|
||||
@@ -368,7 +420,7 @@ class ActionModul:
|
||||
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!")
|
||||
|
Reference in New Issue
Block a user