diff options
author | Justin Lewis <jtl1728@rit.edu> | 2010-01-15 20:37:01 (GMT) |
---|---|---|
committer | Justin Lewis <jtl1728@rit.edu> | 2010-01-15 20:37:01 (GMT) |
commit | 07bedb5d95f3deaa62a45562f8277550d2cf7024 (patch) | |
tree | 36c6dbe26a41bb004657c05acfa3d6b839867e3b /FortuneMaker.activity | |
parent | 1f381b93e086ff32557ba6bf49d6d30f719ca133 (diff) |
Added room options. still doesn't save but now shows options
Diffstat (limited to 'FortuneMaker.activity')
-rw-r--r-- | FortuneMaker.activity/FortuneMaker.py | 134 | ||||
-rw-r--r-- | FortuneMaker.activity/Room.py | 11 | ||||
-rw-r--r-- | FortuneMaker.activity/constants.py | 5 |
3 files changed, 143 insertions, 7 deletions
diff --git a/FortuneMaker.activity/FortuneMaker.py b/FortuneMaker.activity/FortuneMaker.py index 182c9e4..ad67198 100644 --- a/FortuneMaker.activity/FortuneMaker.py +++ b/FortuneMaker.activity/FortuneMaker.py @@ -1,6 +1,10 @@ from Room import Room from Dungeon import Dungeon -from constants import THEME_NAME +from constants import ( + THEME_NAME, DOOR_INDEX, DOOR_FLAGS, + SPEC_FLAGS, ENEM_INDEX, ITEM_FLAGS, + ITEM_INDEX + ) from sugar.activity.activity import Activity, ActivityToolbox from gettext import gettext as _ @@ -50,7 +54,7 @@ class FortuneMaker(Activity): def get_button_bar(self): button_tabs = gtk.HBox() - stats = gtk.Button( _("Dungeon Summery") ) + stats = gtk.Button( _("Dungeon Summary") ) stats.set_alignment(0,.5) stats.connect( 'clicked', self.view_change_cb, 'stats') button_tabs.pack_start( stats, False ) @@ -167,9 +171,129 @@ class FortuneMaker(Activity): self.set_gui_view( scroll, True ) def view_room(self): - dungeon_stats = gtk.HBox() - dungeon_stats.pack_start(gtk.Label("room to be implemented")) - self.set_gui_view( dungeon_stats, True ) + #TODO CHECK IF ACTIVE ROOM SET + + room_holder = gtk.VBox() + + ## Room Doors + ############# + frame = gtk.Frame(_("Room Doors")) + holder = gtk.VBox() + + doors = {} + + door_flags = [ _("None") ] + door_flags.extend( DOOR_FLAGS.values() ) + for door_key in DOOR_INDEX: + row = gtk.HBox() + label = gtk.Label(DOOR_INDEX[door_key]) + label.set_alignment( 0, 0.5 ) + row.pack_start( label ) + + doors[door_key] = gtk.combo_box_new_text() + + for value in door_flags: + doors[door_key].append_text( value ) + + door_flag = self.active_room.get_door( door_key ) + if door_flag != '0': + doors[door_key].set_active( door_flags.index( DOOR_FLAGS[door_flag] ) ) + else: + doors[door_key].set_active( 0 ) + + row.pack_start( doors[door_key] ) + holder.pack_start( row, True ) + + frame.add( holder ) + room_holder.pack_start( frame, False ) + + ##Room Flags + ############ + frame = gtk.Frame(_("Room Properties")) + holder = gtk.VBox() + + row = gtk.HBox() + label = gtk.Label(_("Room Flag")) + label.set_alignment( 0, 0.5 ) + row.pack_start( label ) + + flag_sel = gtk.combo_box_new_text() + spec_flags = SPEC_FLAGS.values() + for flag in spec_flags: + flag_sel.append_text( flag ) + + flag = self.active_room.get_room_flag() + flag_sel.set_active( spec_flags.index( SPEC_FLAGS[flag] ) ) + + row.pack_start( flag_sel ) + holder.pack_start( row, True) + + frame.add( holder ) + room_holder.pack_start( frame, False ) + + ## Room Enemies + ############### + frame = gtk.Frame(_("Room Enemies")) + holder = gtk.VBox() + + enem = [] + + for i in range(0,4): + enem.append( gtk.combo_box_new_text() ) + + row = gtk.HBox() + label = gtk.Label("%s (%d)" % (_("Enemy"), i)) + label.set_alignment( 0, 0.5 ) + + row.pack_start(label) + em_list = ENEM_INDEX.values() + for em in em_list: + enem[i].append_text( em ) + + enem[i].set_active( em_list.index(ENEM_INDEX[self.active_room.get_enemy( i )] ) ) + row.pack_start( enem[i] ) + + holder.pack_start( row, False ) + + frame.add( holder ) + room_holder.pack_start( frame, False ) + + ## Room Items + ############# + frame = gtk.Frame(_("Room Item")) + holder = gtk.VBox() + + item_arr = [] + + item_list = ITEM_INDEX.values() + item_flags = ITEM_FLAGS.values() + + for i in range(0,4): + itemType = gtk.combo_box_new_text() + itemFlag= gtk.combo_box_new_text() + + for item in item_list: + itemType.append_text( item ) + + #TODO: ADD DEFUALT Flag + + for item in item_flags: + itemFlag.append_text( item ) + + #TODO: ADD DEFUALT Flag + + item_arr.append( [itemType, itemFlag] ) + + row = gtk.HBox() + row.pack_start( itemType ) + row.pack_start( itemFlag ) + + holder.pack_start( row, False ) + + frame.add( holder ) + room_holder.pack_start( frame, False ) + + self.set_gui_view( room_holder, True ) def set_active_room(self, widgit, room): self.active_room = room diff --git a/FortuneMaker.activity/Room.py b/FortuneMaker.activity/Room.py index ed7232a..c6f3a00 100644 --- a/FortuneMaker.activity/Room.py +++ b/FortuneMaker.activity/Room.py @@ -36,18 +36,29 @@ class Room: else: print "INVALID DOOR" + def get_door( self, door): + if door in DOOR_INDEX: + return self.doors[door][1] + def set_room_flag(self, flag): if flag in SPEC_FLAGS: self.special = flag else: print "INVALID FLAG" + def get_room_flag( self ): + return self.special + def set_enemy( self, pos, enemy ): if pos >= 0 and pos <=3 and enemy in ENEM_INDEX: self.enemy[pos] = enemy else: print "INVALID ENEMY POS OR ID" + def get_enemy(self, pos): + if pos >=0 and pos <=3: + return self.enemy[pos] + def set_item(self, pos, id, flag): if pos >= 0 and pos <=3 and id in ITEM_INDEX and flag in ITEM_FLAGS: self.item[ pos ] = [id, flag] diff --git a/FortuneMaker.activity/constants.py b/FortuneMaker.activity/constants.py index 909cd88..444f6ec 100644 --- a/FortuneMaker.activity/constants.py +++ b/FortuneMaker.activity/constants.py @@ -17,13 +17,13 @@ DOOR_FLAGS = { } SPEC_FLAGS = { - '0':_(''), + '0':_('None'), 'M':_('Merchant'), 'P':_('Puzzle') } ENEM_INDEX = { - '0':_('none'), + '0':_('None'), '1':_('Wizard Adept'), '2':_('Goblin'), '3':_('Orc'), @@ -33,6 +33,7 @@ ENEM_INDEX = { } ITEM_INDEX = { + '0':_('None') } |