Die Karte ist da.
This commit is contained in:
@@ -127,10 +127,6 @@ class ActionModul(ActionBasics):
|
|||||||
bach = self.world.sucheRaum(self.world.RAUM_BACH)
|
bach = self.world.sucheRaum(self.world.RAUM_BACH)
|
||||||
bach.ausgaenge[self.world.OST] = self.world.RAUM_TEICH
|
bach.ausgaenge[self.world.OST] = self.world.RAUM_TEICH
|
||||||
|
|
||||||
def ausDemInventar(self,item):
|
|
||||||
del self.world.inventar[item.id]
|
|
||||||
self.world.aktuellerRaum.items[item.id] = item
|
|
||||||
item.raumid = self.world.aktuellerRaum.id
|
|
||||||
|
|
||||||
def verliere(self,parsedCommand):
|
def verliere(self,parsedCommand):
|
||||||
item = self.world.findItemImInventar(parsedCommand.gegenstand);
|
item = self.world.findItemImInventar(parsedCommand.gegenstand);
|
||||||
@@ -170,6 +166,10 @@ class ActionModul(ActionBasics):
|
|||||||
if self.isAktuellerRaum(raum.id):
|
if self.isAktuellerRaum(raum.id):
|
||||||
logging.debug(f'untersuche aktuellen Raum {raum.name}')
|
logging.debug(f'untersuche aktuellen Raum {raum.name}')
|
||||||
|
|
||||||
|
def untersuchePerson(self,person):
|
||||||
|
|
||||||
|
if person.id == self.world.PERSON_ZWERG:
|
||||||
|
self.world.printText(f'npc-{person.id}-beschr')
|
||||||
|
|
||||||
def findeTruhenschluessel(self):
|
def findeTruhenschluessel(self):
|
||||||
schluessel = self.world.findItemById(self.world.ITEM_KLEINER_SCHLUESSEL)
|
schluessel = self.world.findItemById(self.world.ITEM_KLEINER_SCHLUESSEL)
|
||||||
@@ -307,6 +307,7 @@ class ActionModul(ActionBasics):
|
|||||||
self.world.printText('seilwurf')
|
self.world.printText('seilwurf')
|
||||||
self.macheWegFrei(self.world.RAUF,self.world.RAUM_BAUMHAUS)
|
self.macheWegFrei(self.world.RAUF,self.world.RAUM_BAUMHAUS)
|
||||||
self.ausDemInventar(item)
|
self.ausDemInventar(item)
|
||||||
|
item.zustand = item.HAENGEND
|
||||||
elif self.isAktuellerRaum(self.world.RAUM_BOHNENRANKE):
|
elif self.isAktuellerRaum(self.world.RAUM_BOHNENRANKE):
|
||||||
if self.isItem(item, self.world.ITEM_MAUS):
|
if self.isItem(item, self.world.ITEM_MAUS):
|
||||||
|
|
||||||
@@ -349,22 +350,36 @@ class ActionModul(ActionBasics):
|
|||||||
|
|
||||||
|
|
||||||
def klettere(self, parsedCommand):
|
def klettere(self, parsedCommand):
|
||||||
leiter = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
item = self.world.findItemInAktuellerRaum(parsedCommand.gegenstand)
|
||||||
|
geklettert = False
|
||||||
|
|
||||||
logging.debug(f'klettere(): Leiter is {leiter}')
|
if item == None:
|
||||||
if leiter != None:
|
self.setFehler('Das sehe ich hier nicht')
|
||||||
|
return
|
||||||
|
if item.id == self.world.ITEM_LEITER:
|
||||||
if self.isAktuellerRaum(self.world.RAUM_ESSZIMMER):
|
if self.isAktuellerRaum(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()
|
||||||
|
geklettert = True
|
||||||
elif self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
|
elif self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
|
||||||
ranke = self.findItemImInventarOderAktuellerRaum(self.world.ITEM_BOHNENRANKE)
|
ranke = self.findItemImInventarOderAktuellerRaum(self.world.ITEM_BOHNENRANKE)
|
||||||
|
|
||||||
if ranke.zustand == Gegenstand.GROSS:
|
if ranke.zustand == Gegenstand.GROSS:
|
||||||
self.ac.rauf()
|
self.ac.rauf()
|
||||||
|
geklettert = True
|
||||||
else:
|
else:
|
||||||
self.setFehler('Die Bohnenranke ist zu klein, um daran hoch zu klettern.')
|
self.setFehler('Die Bohnenranke ist zu klein, um daran hoch zu klettern.')
|
||||||
|
elif item.id == self.world.ITEM_SEIL:
|
||||||
|
logging.debug(f'klettere am Seil: {item.zustand}')
|
||||||
|
if item.zustand == item.HAENGEND:
|
||||||
|
self.rauf()
|
||||||
|
geklettert = True
|
||||||
else:
|
else:
|
||||||
self.setFehler('Eine Leiter sehe ich hier nicht.')
|
self.setFehler('So kannst nicht daran klettern.')
|
||||||
|
|
||||||
|
if not geklettert:
|
||||||
|
self.setFehler('Klettern ist nicht möglich.')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
47
World.py
47
World.py
@@ -21,6 +21,53 @@ class World:
|
|||||||
self.waitForCR()
|
self.waitForCR()
|
||||||
self.printRaum()
|
self.printRaum()
|
||||||
|
|
||||||
|
def printKarte(self):
|
||||||
|
self.clearScreen()
|
||||||
|
s = self.stdscr
|
||||||
|
LAND=curses.color_pair( 5)
|
||||||
|
WASSER=curses.color_pair(4)
|
||||||
|
|
||||||
|
s.addstr(1,0,' ',LAND)
|
||||||
|
s.addstr(1,17,'H', WASSER)
|
||||||
|
s.addstr(1,18,' ', WASSER)
|
||||||
|
s.addstr(1,51,'N ', LAND)
|
||||||
|
s.addstr(2,0,' ',LAND)
|
||||||
|
s.addstr(2,14,' ', WASSER)
|
||||||
|
s.addstr(2,48,' W+O ', LAND)
|
||||||
|
s.addstr(3,0,'X(Baum) ', LAND)
|
||||||
|
s.addstr(3,10,' ',WASSER)
|
||||||
|
s.addstr(3,46,' S ', LAND)
|
||||||
|
s.addstr(4,0,' ', LAND)
|
||||||
|
s.addstr(4,10,' ',WASSER)
|
||||||
|
s.addstr(4,45,' ',LAND)
|
||||||
|
s.addstr(5,0,' ', LAND)
|
||||||
|
s.addstr(5,7,' ',WASSER)
|
||||||
|
s.addstr(5,45,' ',LAND)
|
||||||
|
s.addstr(6,0,' ', LAND)
|
||||||
|
s.addstr(6,6,' ',WASSER)
|
||||||
|
s.addstr(6,45,' ',LAND)
|
||||||
|
s.addstr(7,0,' ', LAND)
|
||||||
|
s.addstr(7,6,' ',WASSER)
|
||||||
|
s.addstr(7,44,' ',LAND)
|
||||||
|
s.addstr(8,0,' ', LAND)
|
||||||
|
s.addstr(8,6,' ',WASSER)
|
||||||
|
s.addstr(8,44,' ',LAND)
|
||||||
|
s.addstr(9,0,' ', LAND)
|
||||||
|
s.addstr(9,6,' großer ',WASSER)
|
||||||
|
s.addstr(9,44,' ',LAND)
|
||||||
|
s.addstr(10,0,' ', LAND)
|
||||||
|
s.addstr(10,6,' See ',WASSER)
|
||||||
|
s.addstr(10,44,' ',LAND)
|
||||||
|
s.addstr(11,0,' ',WASSER)
|
||||||
|
s.addstr(11,43,' ',LAND)
|
||||||
|
s.addstr(12,0,' ',WASSER)
|
||||||
|
s.addstr(12,17,' ', LAND)
|
||||||
|
s.addstr(12,18,' ',WASSER)
|
||||||
|
s.addstr(12,41,' o ',LAND)
|
||||||
|
s.addstr(13,0,' ',WASSER)
|
||||||
|
s.addstr(13,39,' (Grab) ',LAND)
|
||||||
|
self.waitForCR()
|
||||||
|
|
||||||
def printBefehle(self):
|
def printBefehle(self):
|
||||||
self.clearScreen()
|
self.clearScreen()
|
||||||
befehlar = []
|
befehlar = []
|
||||||
|
9
ascii/dach.txt
Normal file
9
ascii/dach.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
[40;31m
|
||||||
|
/\
|
||||||
|
/ \
|
||||||
|
/ \
|
||||||
|
/ \
|
||||||
|
/ \
|
||||||
|
/ \
|
||||||
|
^[[40;33m
|
||||||
|
------------
|
13
ascii/karte.txt
Normal file
13
ascii/karte.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
H N
|
||||||
|
------- W+O
|
||||||
|
X(Baum) | |S
|
||||||
|
| --
|
||||||
|
------ |
|
||||||
|
| |
|
||||||
|
--- |
|
||||||
|
| --
|
||||||
|
| großer | o(Grab)
|
||||||
|
--- See --
|
||||||
|
|
|
||||||
|
* --
|
||||||
|
|
|
@@ -68,7 +68,6 @@ class Gegenstand(SuperNode):
|
|||||||
def __init__(self,name,id,raumid):
|
def __init__(self,name,id,raumid):
|
||||||
super().__init__(name,id)
|
super().__init__(name,id)
|
||||||
self.raumid = raumid
|
self.raumid = raumid
|
||||||
self.zustand = 0
|
|
||||||
self.sichtbar = True
|
self.sichtbar = True
|
||||||
self.imobil = False
|
self.imobil = False
|
||||||
self.adjektiv = None
|
self.adjektiv = None
|
||||||
@@ -80,6 +79,7 @@ class Gegenstand(SuperNode):
|
|||||||
self.GROSS = 2
|
self.GROSS = 2
|
||||||
self.LEER = 0
|
self.LEER = 0
|
||||||
self.VOLL = 1
|
self.VOLL = 1
|
||||||
|
self.HAENGEND = 0
|
||||||
self.zustand = self.GESCHLOSSEN
|
self.zustand = self.GESCHLOSSEN
|
||||||
|
|
||||||
class Adjektiv(SuperNode):
|
class Adjektiv(SuperNode):
|
||||||
|
Binary file not shown.
36
printKarte.py
Normal file
36
printKarte.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
import curses
|
||||||
|
from curses import wrapper
|
||||||
|
|
||||||
|
def printKarte(stdscr):
|
||||||
|
s = stdscr
|
||||||
|
|
||||||
|
s.addstr(1,0,' H N')
|
||||||
|
s.addstr(2,0,' ------- W+O')
|
||||||
|
s.addstr(3,0,'X(Baum) | |S')
|
||||||
|
s.addstr(4,0,' | --')
|
||||||
|
s.addstr(5,0,' ------ |')
|
||||||
|
s.addstr(6,0,' | |')
|
||||||
|
s.addstr(7,0,'--- |')
|
||||||
|
s.addstr(8,0,'| --')
|
||||||
|
s.addstr(9,0,'| großer | o(Grab)')
|
||||||
|
s.addstr(10,0,'--- See -- ')
|
||||||
|
s.addstr(11,0,' |')
|
||||||
|
s.addstr(12,0,' * --')
|
||||||
|
s.addstr(13,0,' |')
|
||||||
|
|
||||||
|
|
||||||
|
def inputLoop(stdscr):
|
||||||
|
|
||||||
|
|
||||||
|
curses.echo()
|
||||||
|
curses.init_pair(1,curses.COLOR_RED, curses.COLOR_WHITE)
|
||||||
|
curses.init_pair(2,curses.COLOR_GREEN, curses.COLOR_BLACK)
|
||||||
|
curses.init_pair(3,curses.COLOR_YELLOW, curses.COLOR_BLACK)
|
||||||
|
printKarte(stdscr)
|
||||||
|
|
||||||
|
def main():
|
||||||
|
wrapper(inputLoop)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
6
tomb.py
6
tomb.py
@@ -94,6 +94,8 @@ def inputLoop(stdscr):
|
|||||||
curses.init_pair(1,curses.COLOR_RED, curses.COLOR_WHITE)
|
curses.init_pair(1,curses.COLOR_RED, curses.COLOR_WHITE)
|
||||||
curses.init_pair(2,curses.COLOR_GREEN, curses.COLOR_BLACK)
|
curses.init_pair(2,curses.COLOR_GREEN, curses.COLOR_BLACK)
|
||||||
curses.init_pair(3,curses.COLOR_YELLOW, curses.COLOR_BLACK)
|
curses.init_pair(3,curses.COLOR_YELLOW, curses.COLOR_BLACK)
|
||||||
|
curses.init_pair(4,curses.COLOR_WHITE, curses.COLOR_BLUE)
|
||||||
|
curses.init_pair(5,curses.COLOR_WHITE, curses.COLOR_GREEN)
|
||||||
commandid = ''
|
commandid = ''
|
||||||
while commandid != '0':
|
while commandid != '0':
|
||||||
world.printRaum()
|
world.printRaum()
|
||||||
@@ -113,6 +115,10 @@ def inputLoop(stdscr):
|
|||||||
debug_Inventar()
|
debug_Inventar()
|
||||||
elif debugcommand[1] == 'personen':
|
elif debugcommand[1] == 'personen':
|
||||||
debug_Personen()
|
debug_Personen()
|
||||||
|
elif debugcommand[1] == 'karte':
|
||||||
|
world.printKarte()
|
||||||
|
commandid = '0'
|
||||||
|
|
||||||
elif command.startswith('auto:'):
|
elif command.startswith('auto:'):
|
||||||
command = command.rstrip()
|
command = command.rstrip()
|
||||||
if command.startswith('auto:'):
|
if command.startswith('auto:'):
|
||||||
|
13
world.xml
13
world.xml
@@ -154,7 +154,7 @@
|
|||||||
</raum>
|
</raum>
|
||||||
<raum id='22' name='Strand'>
|
<raum id='22' name='Strand'>
|
||||||
<ausgang dir='West' nachRaum= '20' />
|
<ausgang dir='West' nachRaum= '20' />
|
||||||
<ausgang dir='Sued' nachRaum= '22' />
|
<ausgang dir='Nord' nachRaum= '23' />
|
||||||
<beschreibung>
|
<beschreibung>
|
||||||
Du stehst am Strand eines großen Sees. In südlicher Richtung scheint ein Hafen zu sein.
|
Du stehst am Strand eines großen Sees. In südlicher Richtung scheint ein Hafen zu sein.
|
||||||
</beschreibung>
|
</beschreibung>
|
||||||
@@ -214,6 +214,7 @@
|
|||||||
<command name='fuelle' id='36' key='27' />
|
<command name='fuelle' id='36' key='27' />
|
||||||
<command name='fülle' id='37' key='27' />
|
<command name='fülle' id='37' key='27' />
|
||||||
<command name='wirf' id='38' key='28' />
|
<command name='wirf' id='38' key='28' />
|
||||||
|
<command name='gib' id='39' key='29' />
|
||||||
|
|
||||||
|
|
||||||
</commandset>
|
</commandset>
|
||||||
@@ -332,6 +333,14 @@
|
|||||||
<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='npc-6'>
|
||||||
|
Der Zwerg klappert vor Kälte mit den Zähnen und kann nicht sprechen.
|
||||||
|
</text>
|
||||||
|
<text id='npc-6-beschr'>
|
||||||
|
Der Zwerg ist etwa hüfthoch. Auf dem Kopf trägt er eine blaue Zipfelmütze (natürlich).Er ist nur mit einer blauen Hose bekleidet,
|
||||||
|
der Oberkörper ist frei.
|
||||||
|
Er scheint offensichtlich zu frieren.
|
||||||
|
</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 vom C64.
|
Es ist eine Adaption des gleichnamigen Adventures vom C64.
|
||||||
@@ -343,7 +352,7 @@
|
|||||||
<text id='geist'>
|
<text id='geist'>
|
||||||
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.
|
Leider erfolglos. Die Karte, die ich mir mühsam aus Hinweisen erstellt hatte, wurde mir von einem hinterlistigen Zwerg entwendet.
|
||||||
Jetzt musst du dich auf die Suche machen, so dass ich endlich meinen Frieden finden kann.
|
Jetzt musst du dich auf die Suche machen, so dass ich endlich meinen Frieden finden kann.
|
||||||
Suche das Grab im Wolkenreich.Öffne es und ich bin erlöst.
|
Suche das Grab im Wolkenreich.Öffne es und ich bin erlöst.
|
||||||
</text>
|
</text>
|
||||||
|
Reference in New Issue
Block a user