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-01-26 19:15:25 (GMT)
committer Justin Lewis <jtl1728@rit.edu>2010-01-26 19:15:25 (GMT)
commita54a8365f3d2a867563bf4cd350874861678ebd3 (patch)
tree3292724c47b4b3696a28382c5b5669ed58693c1b /FortuneMaker.activity
parentc84c455efd3d14d0d6d00997303c26bdbafe3dae (diff)
Improved dungeon grid gui representation.
Diffstat (limited to 'FortuneMaker.activity')
-rw-r--r--FortuneMaker.activity/FortuneMaker.py6
-rw-r--r--FortuneMaker.activity/Room.py62
-rw-r--r--FortuneMaker.activity/constants.py9
3 files changed, 67 insertions, 10 deletions
diff --git a/FortuneMaker.activity/FortuneMaker.py b/FortuneMaker.activity/FortuneMaker.py
index 44fd046..1528dbb 100644
--- a/FortuneMaker.activity/FortuneMaker.py
+++ b/FortuneMaker.activity/FortuneMaker.py
@@ -356,7 +356,8 @@ class FortuneMaker(Activity):
box.pack_start( row, False )
for room in row_array:
room_gui = room.render_room()
- room_gui.connect('clicked', self.add_prop_to_room, room)
+ room_gui.connect('button-press-event', self.add_prop_to_room, room)
+ #room_gui.connect('clicked', self.add_prop_to_room, room)
row.pack_start( room_gui, False )
if self._pane2:
self.edit_pane.remove( self._pane2 )
@@ -621,7 +622,8 @@ class FortuneMaker(Activity):
self.active_room = room
self.view_room()
- def add_prop_to_room(self, widget, room):
+ #def add_prop_to_room(self, widget, room):
+ def add_prop_to_room(self, widget, event, room):
self.active_room = room
self.enable_room_icons(True, True)
for but in self.action_but_group:
diff --git a/FortuneMaker.activity/Room.py b/FortuneMaker.activity/Room.py
index 07ad1c8..e09be8f 100644
--- a/FortuneMaker.activity/Room.py
+++ b/FortuneMaker.activity/Room.py
@@ -1,6 +1,6 @@
from constants import (
DOOR_ORDER, DOOR_INDEX, DOOR_FLAGS, SPEC_FLAGS,
- ENEM_INDEX, ITEM_INDEX, ITEM_FLAGS
+ ENEM_INDEX, ITEM_INDEX, ITEM_FLAGS, DOOR_COLOR
)
import gtk
@@ -58,8 +58,13 @@ class Room:
def remove_door(self, door):
if door in DOOR_INDEX:
- #TODO Check if should change has_door
self.doors[door] = ['0', '0']
+ self.has_doors = False
+ for door in self.doors:
+ if self.doors[door][1] != "0":
+ self.has_doors = True
+ break
+
return True
else:
print "INVALID DOOR"
@@ -146,10 +151,51 @@ class Room:
return self.has_doors or self.has_enemy or self.has_item
def render_room(self):
- if self.not_empty_room():
- but = gtk.Button("(%d, %d)" %(self._x, self._y))
- else:
- but = gtk.Button("")
+ def expose_handler(widget, event):
+ w, h = widget.window.get_size()
+ xgc = widget.window.new_gc()
+
+ door_thick = 5
+ third_w = w / 3
+ third_h = h / 3
+ #xgc.set_rgb_fg_color(gtk.gdk.color_parse("yellow"))
+ #widget.window.draw_arc(xgc, True, 200, 100, 200, 200, 0, 360*64)
+
+ # Fill in if room
+ if self.not_empty_room():
+ xgc.set_rgb_fg_color(gtk.gdk.color_parse("#6666CC"))
+ widget.window.draw_rectangle(xgc, True, 1, 1, w-2, h-2)
+
+
+ # Draw Border
+ xgc.set_rgb_fg_color(gtk.gdk.color_parse("#000000"))
+ widget.window.draw_rectangle(xgc, False, 1, 1, w-2, h-2)
+
+ if self.doors['N'][1] != '0':
+ xgc.set_rgb_fg_color(gtk.gdk.color_parse(DOOR_COLOR[self.doors['N'][1]]))
+ widget.window.draw_rectangle(xgc, True, third_w, 1, third_w, door_thick)
+
+ if self.doors['S'][1] != '0':
+ xgc.set_rgb_fg_color(gtk.gdk.color_parse(DOOR_COLOR[self.doors['S'][1]]))
+ widget.window.draw_rectangle(xgc, True, third_w, h-door_thick, third_w, door_thick)
+
+ if self.doors['E'][1] != '0':
+ xgc.set_rgb_fg_color(gtk.gdk.color_parse(DOOR_COLOR[self.doors['E'][1]]))
+ widget.window.draw_rectangle(xgc, True, w-door_thick, third_h, door_thick, third_h)
+
+ if self.doors['W'][1] != '0':
+ xgc.set_rgb_fg_color(gtk.gdk.color_parse(DOOR_COLOR[self.doors['W'][1]]))
+ widget.window.draw_rectangle(xgc, True, 1, third_h, door_thick, third_h)
+
+
+ #widget.window.draw_arc(xgc, True, 240, 145, 30, 40, 0, 360*64)
+ #widget.window.draw_arc(xgc, True, 330, 145, 30, 40, 0, 360*64)
+ #xgc.line_width = 6
+ #widget.window.draw_arc(xgc, False, 240, 150, 120, 110, 200*64, 140*64)
+
+ drawing_area = gtk.DrawingArea()
+ drawing_area.set_size_request(100, 100)
+ drawing_area.connect("expose-event", expose_handler)
+ drawing_area.set_events(gtk.gdk.BUTTON_PRESS_MASK)
- but.set_size_request(100, 100)
- return but
+ return drawing_area
diff --git a/FortuneMaker.activity/constants.py b/FortuneMaker.activity/constants.py
index c96d0f8..ad9b676 100644
--- a/FortuneMaker.activity/constants.py
+++ b/FortuneMaker.activity/constants.py
@@ -17,6 +17,15 @@ DOOR_FLAGS = {
'x':_('Exit')
}
+DOOR_COLOR = {
+ 'u':"#000000",
+ 'l':"#666666",
+ 'p':"#006600",
+ 'b':"#008800",
+ 'e':"#ff0000",
+ 'x':"#ffff00"
+}
+
SPEC_FLAGS = {
'0':_('None'),
'M':_('Merchant'),