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.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):
|
||||
item = self.world.findItemImInventar(parsedCommand.gegenstand);
|
||||
@@ -170,6 +166,10 @@ class ActionModul(ActionBasics):
|
||||
if self.isAktuellerRaum(raum.id):
|
||||
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):
|
||||
schluessel = self.world.findItemById(self.world.ITEM_KLEINER_SCHLUESSEL)
|
||||
@@ -307,6 +307,7 @@ class ActionModul(ActionBasics):
|
||||
self.world.printText('seilwurf')
|
||||
self.macheWegFrei(self.world.RAUF,self.world.RAUM_BAUMHAUS)
|
||||
self.ausDemInventar(item)
|
||||
item.zustand = item.HAENGEND
|
||||
elif self.isAktuellerRaum(self.world.RAUM_BOHNENRANKE):
|
||||
if self.isItem(item, self.world.ITEM_MAUS):
|
||||
|
||||
@@ -349,22 +350,36 @@ class ActionModul(ActionBasics):
|
||||
|
||||
|
||||
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 leiter != None:
|
||||
if item == None:
|
||||
self.setFehler('Das sehe ich hier nicht')
|
||||
return
|
||||
if item.id == self.world.ITEM_LEITER:
|
||||
if self.isAktuellerRaum(self.world.RAUM_ESSZIMMER):
|
||||
logging.debug(f'aktuellerRaum ist {self.world.aktuellerRaum.id}')
|
||||
self.rauf()
|
||||
geklettert = True
|
||||
elif self.isAktuellerRaum(self.world.RAUM_BRACHLAND):
|
||||
ranke = self.findItemImInventarOderAktuellerRaum(self.world.ITEM_BOHNENRANKE)
|
||||
|
||||
if ranke.zustand == Gegenstand.GROSS:
|
||||
self.ac.rauf()
|
||||
geklettert = True
|
||||
else:
|
||||
self.setFehler('Die Bohnenranke ist zu klein, um daran hoch zu klettern.')
|
||||
else:
|
||||
self.setFehler('Eine Leiter sehe ich hier nicht.')
|
||||
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:
|
||||
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.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):
|
||||
self.clearScreen()
|
||||
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):
|
||||
super().__init__(name,id)
|
||||
self.raumid = raumid
|
||||
self.zustand = 0
|
||||
self.sichtbar = True
|
||||
self.imobil = False
|
||||
self.adjektiv = None
|
||||
@@ -80,6 +79,7 @@ class Gegenstand(SuperNode):
|
||||
self.GROSS = 2
|
||||
self.LEER = 0
|
||||
self.VOLL = 1
|
||||
self.HAENGEND = 0
|
||||
self.zustand = self.GESCHLOSSEN
|
||||
|
||||
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(2,curses.COLOR_GREEN, 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 = ''
|
||||
while commandid != '0':
|
||||
world.printRaum()
|
||||
@@ -113,6 +115,10 @@ def inputLoop(stdscr):
|
||||
debug_Inventar()
|
||||
elif debugcommand[1] == 'personen':
|
||||
debug_Personen()
|
||||
elif debugcommand[1] == 'karte':
|
||||
world.printKarte()
|
||||
commandid = '0'
|
||||
|
||||
elif command.startswith('auto:'):
|
||||
command = command.rstrip()
|
||||
if command.startswith('auto:'):
|
||||
|
13
world.xml
13
world.xml
@@ -154,7 +154,7 @@
|
||||
</raum>
|
||||
<raum id='22' name='Strand'>
|
||||
<ausgang dir='West' nachRaum= '20' />
|
||||
<ausgang dir='Sued' nachRaum= '22' />
|
||||
<ausgang dir='Nord' nachRaum= '23' />
|
||||
<beschreibung>
|
||||
Du stehst am Strand eines großen Sees. In südlicher Richtung scheint ein Hafen zu sein.
|
||||
</beschreibung>
|
||||
@@ -214,6 +214,7 @@
|
||||
<command name='fuelle' id='36' key='27' />
|
||||
<command name='fülle' id='37' key='27' />
|
||||
<command name='wirf' id='38' key='28' />
|
||||
<command name='gib' id='39' key='29' />
|
||||
|
||||
|
||||
</commandset>
|
||||
@@ -332,6 +333,14 @@
|
||||
<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.
|
||||
</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'>
|
||||
Das Grab des Azteken ist ein klassisches Textadventure.
|
||||
Es ist eine Adaption des gleichnamigen Adventures vom C64.
|
||||
@@ -343,7 +352,7 @@
|
||||
<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
|
||||
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.
|
||||
Suche das Grab im Wolkenreich.Öffne es und ich bin erlöst.
|
||||
</text>
|
||||
|
Reference in New Issue
Block a user