Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/MAFH2/Dungeon.py
diff options
context:
space:
mode:
Diffstat (limited to 'MAFH2/Dungeon.py')
-rw-r--r--MAFH2/Dungeon.py49
1 files changed, 43 insertions, 6 deletions
diff --git a/MAFH2/Dungeon.py b/MAFH2/Dungeon.py
index df3f7de..9528407 100644
--- a/MAFH2/Dungeon.py
+++ b/MAFH2/Dungeon.py
@@ -5,11 +5,12 @@ from gettext import gettext as _
from GameEngine import GameEngineElement
+from BattleEngine import BattleEngine
from Map import Map
from Room import Room
from Items import get_item
from constants import (
- MAP_PATH, ENV_PATH, RIGHT, LEFT, NORTH, SOUTH, EAST,
+ MAP_PATH, ENV_PATH, ITEM_PATH, RIGHT, LEFT, NORTH, SOUTH, EAST,
WEST, UNLOCKED_DOOR, LOCKED_DOOR, PUZZLE_DOOR, LOCKED_PUZZLE_DOOR,
ENTRANCE_DOOR, EXIT_DOOR
)
@@ -79,9 +80,10 @@ class Dungeon(GameEngineElement):
def __load_images(self):
- LVL_PATH = ENV_PATH
+ LVL_PATH = ENV_PATH + "ice/"
- for img_key in ['FLR', 'FR', 'FL', 'F', 'LR', 'L', 'R', '_']:
+ #for img_key in ['FLR', 'FR', 'FL', 'F', 'LR', 'L', 'R', '_']:
+ for img_key in ['room','side','front']:
self.__images[img_key] = pygame.image.load(LVL_PATH+img_key.lower()+".gif")
def get_current_room(self):
@@ -156,6 +158,7 @@ class Dungeon(GameEngineElement):
self.game_engine.get_object('mesg').add_line(_("You enter room at %i,%i")%(dX, dY))
profile.move_to( dX, dY )
self.game_engine.get_object('map').update_macro()
+ self.check_for_enemies()
else:
#Entrance or exit may be on a boarder of the grid
door_flag = self.rooms[profile.position].get_door( dc )
@@ -164,6 +167,11 @@ class Dungeon(GameEngineElement):
# TODO: Next Dungeon
pass
+ def check_for_enemies(self):
+ current_room = self.get_current_room()
+ if current_room.has_enemy:
+ self.game_engine.add_object('battle', BattleEngine( self ) )
+
def item_pickup(self):
profile = self.game_engine.get_object('profile')
current_room = self.rooms[profile.position]
@@ -234,14 +242,43 @@ class Dungeon(GameEngineElement):
#ANIMATION
return True
+ def normalize_dir( self ):
+ profile = self.game_engine.get_object('profile')
+ dir = profile.playerFacing
+
+ if dir == NORTH:
+ return 'W', 'N', 'E'
+
+ elif dir == SOUTH:
+ return 'E', 'S', 'W'
+
+ elif dir == EAST:
+ return 'N', 'E', 'S'
+
+ elif dir == WEST:
+ return 'S', 'W', 'N'
+
def draw(self, screen):
profile = self.game_engine.get_object('profile')
dir = profile.playerFacing
current_room = self.rooms[profile.position]
+
+
+ screen.blit(self.__images['room'],(0,0,1200,700))
+
+ left, front, right = self.normalize_dir()
+ if current_room.get_door( left ) != '0':
+ screen.blit(self.__images['side'],(2,15,192, 559))
+
+ if current_room.get_door( front ) != '0':
+ screen.blit(self.__images['front'],(453,0,192, 559))
+
+ if current_room.get_door( right ) != '0':
+ screen.blit(pygame.transform.flip(self.__images['side'], True, False),(1010,10,192, 559))
+
+
# Draw background
- door_cfg = current_room.door_str( dir )
- screen.blit(self.__images[door_cfg],(0,0,1200,700))
# Draw Items
img_list = []
@@ -259,7 +296,7 @@ class Dungeon(GameEngineElement):
path = get_item( item_key[0] ).path
if not self.__images.has_key( path ):
- self.__images[path] = pygame.image.load(ENV_PATH + path)
+ self.__images[path] = pygame.image.load(ITEM_PATH + path)
img_list.append( self.__images[path] )