123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- from common import Directions
- # Esse - any interactible object which exists on the esse layer
- class esse:
- def __init__(self, x, y):
- self._x = _x
- self._y = _y
- def getX(self):
- return self._x
- def getY(self):
- return self._y
- def setX(self, x):
- self._x = x
- def setY(self, y):
- self._y = y
- def interact(self, game):
- print 'Interacted with an Esse!'
- def __str__(self):
- return "E"
- def passable(self):
- return False
- def getModelName(self):
- return 'tile.pmd'
- def getColors(self):
- return (1.0, 1.0, 1.0)
- # Nothing - when esse layer does not contain an esse
- class nothing:
- def interact(self, game):
- print 'Ain\'t nothin\' here!'
- def __str__(self):
- return " "
- def passable(self):
- return True
- def getModelName(self):
- return 'tile.pmd'
- def getColors(self):
- return (1.0, 1.0, 1.0)
- # Parse initial player data
- def p_pc(L):
- myX, myY = map(int, L[1:3])
- return pc(myX, myY, 100)
- # Player - inherits from esse
- class pc(esse):
- def __init__(self, x, y, life):
- self._x = x
- self._y = y
- self.life = life
- self.facing = Directions.UP
- def __str__(self):
- if self.facing == Directions.UP:
- return "^"
- if self.facing == Directions.DOWN:
- return "v"
- if self.facing == Directions.LEFT:
- return "<"
- if self.facing == Directions.RIGHT:
- return ">"
- return "P"
- def face(self, dir):
- self.facing = dir
- def getFacing(self):
- return self.facing
- def getModelName(self):
- return 'player.pmd'
- def getColors(self):
- return (0.75, 0.0, 0.0)
- # Parse initial sign data
- def p_sign(L):
- myX, myY = map(int, L[0:2])
- myText = ' '.join(L[2:])
- return sign(myX, myY, myText)
- # Sign class - displays text
- class sign(esse):
- def __init__(self, x, y, text):
- self._x = x
- self._y = y
- self.text = text
- def interact(self, game):
- print self.text
- def __str__(self):
- return "S"
- def getModelName(self):
- return 'sign.pmd'
- def getColors(self):
- return (0.0, 0.0, 1.0)
- # NPC class (right now, a glorified signpost)
- class npc(esse):
- def __init__(self, x, y, text):
- self._x = x
- self._y = y
- self.text = text
- def interact(self, game):
- print text
-
- # Parse door placement
- def p_door(L):
- myX, myY= map(int, L[0:2])
- myE = L[2]
- myDest = L[3]
- return door(myX, myY, myDest, myE)
- # Door class (portal to another map)
- class door(esse):
- def __init__(self, x, y, destination, entry):
- self._x = x
- self._y = y
- self.dest = destination
- self.entry = entry
- def interact(self, game):
- game.load(self.dest, self.entry)
- def passable(self):
- return self.open
- def __str__(self):
- return "D"
- def getModelName(self):
- return 'door.pmd'
- def getColors(self):
- return (0.0, 1.0, 0.0)
- # Esse lookup table - for parsing purposes
- esse_lookup = {'sign': p_sign,
- 'entry': p_pc,
- 'door': p_door}
|