Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/FortuneMaker.activity
diff options
context:
space:
mode:
authorJustin Lewis <jtl1728@rit.edu>2010-02-01 21:25:59 (GMT)
committer Justin Lewis <jtl1728@rit.edu>2010-02-01 21:25:59 (GMT)
commit3f7b50e56fc5b1259e03ca898b0a8df0ee59971c (patch)
treebc3058ee51e6e74195028326637541ec441d33bb /FortuneMaker.activity
parent4c7b347ba6a5fcf1403ee33abd9136a0d44ec8a0 (diff)
Added door check to ensure only one entrance and exit.
Diffstat (limited to 'FortuneMaker.activity')
-rw-r--r--FortuneMaker.activity/Dungeon.py11
-rw-r--r--FortuneMaker.activity/FortuneMaker.py25
2 files changed, 24 insertions, 12 deletions
diff --git a/FortuneMaker.activity/Dungeon.py b/FortuneMaker.activity/Dungeon.py
index ce72473..19a0d63 100644
--- a/FortuneMaker.activity/Dungeon.py
+++ b/FortuneMaker.activity/Dungeon.py
@@ -28,6 +28,17 @@ class Dungeon:
def get_room_array(self):
return self.roomlist
+ def has_door_type(self, key):
+ for room_row in self.roomlist:
+ for room in room_row:
+ for door_key in room.doors:
+ if room.doors[door_key][1] == key:
+ return True
+ return False
+
+ def valid_dungeon(self):
+ return self.has_door_type( 'e' ) and self.has_door_type( 'x' )
+
def get_adj_room( self, room, dir ):
if dir == "N":
next_x = room._x
diff --git a/FortuneMaker.activity/FortuneMaker.py b/FortuneMaker.activity/FortuneMaker.py
index b3216ef..0fecaec 100644
--- a/FortuneMaker.activity/FortuneMaker.py
+++ b/FortuneMaker.activity/FortuneMaker.py
@@ -227,17 +227,15 @@ class FortuneMaker(Activity):
self.set_gui_view( room_center )
def export_view(self):
- data = self.dungeon.export()
+ if self.dungeon.valid_dungeon():
+ data = self.dungeon.export()
+ filename = self.dungeon.name
- textbuffer = gtk.Label()
- filename = self.dungeon.name
-
- self._write_textfile( filename, data)
-
- textbuffer.set_text( "File Saved to %s"%(filename) )
-
- self.set_gui_view( textbuffer )
+ self._write_textfile( filename, data )
+ self._alert( _( "Dungeon Exported to Journal"), filename )
+ else:
+ self._alert( _( "Export Failed"), _("Invalid dungeon configuration") )
#### Method: _write_textfile, which creates a simple text file
@@ -500,7 +498,7 @@ class FortuneMaker(Activity):
self.view_dungeon_grid()
def _draw_room_button_grid(self):
- # Setup Room Pannel
+ # Setup Room Panel
room_array = self.dungeon.get_room_array()
box = gtk.VBox()
for row_array in room_array:
@@ -520,7 +518,7 @@ class FortuneMaker(Activity):
self.edit_pane = gtk.HPaned()
self._pane2 = None
- # Setup Button Pannel
+ # Setup Button Panel
listbox = gtk.VBox()
lbl = gtk.RadioButton(None,_('Remove Enemy'))
@@ -748,7 +746,10 @@ class FortuneMaker(Activity):
else:
self._alert( _("Door Not Added"), _("This door can not be placed at edge of dungeon"))
else:
- self.active_room.add_door( door_pos, but.track_flag )
+ if not self.dungeon.has_door_type( but.track_flag ):
+ self.active_room.add_door( door_pos, but.track_flag )
+ else:
+ self._alert( _("Door Not Added"), _("The dungeon can only have one %s") % DOOR_FLAGS[but.track_flag] )
elif but.track_mode == 'SPEC_FLAG':