From da534af21fc90f11fd85e4ec95f82907c37ee8c5 Mon Sep 17 00:00:00 2001 From: Michael Fiano Date: Sat, 16 Jan 2010 16:44:08 -0500 Subject: [PATCH] Added very basic party member handler to test things out -- not final\! --- data/images/map/terrain/water0.png | Bin 176 -> 0 bytes lib/gui.py | 2 -- lib/map.py | 8 ++++---- lib/screens.py | 28 ++++++++++++++++++++++------ lib/states.py | 2 +- 5 files changed, 27 insertions(+), 13 deletions(-) delete mode 100644 data/images/map/terrain/water0.png diff --git a/data/images/map/terrain/water0.png b/data/images/map/terrain/water0.png deleted file mode 100644 index 6419a2cb5f6932cbc4995df5d53867d979a688d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Y)RhkE)4%c zaKYZ?lYt_f1s;*b3=G`DAk4@xYmNj^kiEpy*OmPyn~bO+_okl2!$2VePZ!6Kh{JEs zIWjUhurL_t%_-sXs80Hk!#U0L@8b*I$xNt#`_BTVRk7hqR{`}hc)I$ztaD0e0sumy BEVBRr diff --git a/lib/gui.py b/lib/gui.py index d5d1cb5..a17c06d 100644 --- a/lib/gui.py +++ b/lib/gui.py @@ -27,8 +27,6 @@ def __init__(self, chars): self.rect = self.image.get_rect() self.rect.left = 16 self.rect.bottom = WINDOW_SIZE[1] - 16 - self.images = [ - load_image("gui", "dialog", "dialog_bg") ] self.font_bg = Font("gui", STATS_TEXT_SIZE, STATS_TEXT_BGCOLOR, None) self.font_fg = Font("gui", STATS_TEXT_SIZE, STATS_TEXT_FGCOLOR, None) self.draw() diff --git a/lib/map.py b/lib/map.py index 29e1ae1..1038302 100644 --- a/lib/map.py +++ b/lib/map.py @@ -232,12 +232,12 @@ def set_edges(self, offset): 'w': rect.move(-w,0), 'nw': rect.move(-w,-h) } for edge in edges: - current = (edges[edge][0], edges[edge][1]) - cur_x, cur_y = current + cursor = (edges[edge][0], edges[edge][1]) + cur_x, cur_y = cursor map_w, map_h = self.get_size() if (0 <= cur_x <= map_w and 0 <= cur_y <= map_h and - current in self.position and offset in self.position): - self.position[offset][1][edge] = self.position[current][0].type + cursor in self.position and offset in self.position): + self.position[offset][1][edge] = self.position[cursor][0].type def align_objects(self, w, h, offset): """Re-align bigger tiles to fit the rest.""" diff --git a/lib/screens.py b/lib/screens.py index 6685b4a..e6c4ed4 100644 --- a/lib/screens.py +++ b/lib/screens.py @@ -79,24 +79,27 @@ def __init__(self, map_name): self.map = Map(map_name) self.dialog_text = "Sample dialog text." self.hero = CharHero(self) - self.chartest = CharTest(self) self.map.scroll(self.camera, self.hero) self.add() def add(self): """Add sprites to the screen in the correct order.""" - # Add character objects to a new group. - char_sprites = pygame.sprite.Group([ - self.hero, self.chartest ]) + # Add party characters to a new group. + self.party_sprites = pygame.sprite.Group([ + self.hero ]) + + # Add all characters to a new group. + self.char_sprites = pygame.sprite.Group([ + self.party_sprites ]) # Create GUI objects and add them to a new group. - gui_stats = StatsWindow(char_sprites) + gui_stats = StatsWindow(self.party_sprites) # Create a queue of all sprites to be drawn to the screen in order. self.all_sprites = pygame.sprite.OrderedUpdates([ self.map.layers['terrain'], - char_sprites, + self.char_sprites, self.map.layers['foreground'], gui_stats ]) @@ -104,6 +107,19 @@ def add(self): for sprite in self.all_sprites: self.layers.add(sprite) + def add_to_party(self): + """Called during gameplay to add a new character to the existing + map.""" + + exists = False + for char in self.party_sprites: + if char.name == "test": + exists = True + + if not exists: + chartest = CharTest(self) + self.party_sprites.add(chartest) + def draw(self): """Draws the sprites to the screen and updates the window.""" diff --git a/lib/states.py b/lib/states.py index 1671daa..801b7b0 100644 --- a/lib/states.py +++ b/lib/states.py @@ -86,7 +86,7 @@ def check_events(self): elif event.key == K_d: pygame.time.set_timer(DIALOG_EVENT, 100) elif event.key == K_e: - self.screen.hero.hp += 1 + self.screen.add_to_party() elif event.key in ( HERO_MOVE_DOWN, HERO_MOVE_UP,