# HG changeset patch # User Jeremy Thurgood # Date 1282499982 -7200 # Node ID e5c043aeed65552fe09b7e024ee5a28593998ad7 # Parent f8e02d02c782c029d3f1883e4d7f911e476694d0 Inventory and items. And stuff. diff -r f8e02d02c782 -r e5c043aeed65 gamelib/gamescreen.py --- a/gamelib/gamescreen.py Sun Aug 22 19:51:24 2010 +0200 +++ b/gamelib/gamescreen.py Sun Aug 22 19:59:42 2010 +0200 @@ -2,7 +2,7 @@ # Copyright Boomslang team, 2010 (see COPYING File) # Main menu for the game -from state import initial_state +from state import initial_state, Item from pygame.color import Color from pygame import Rect @@ -14,23 +14,21 @@ class InventoryView(PaletteView): - info = ["red", "green", "blue", "cyan", "magenta", "yellow"] - sel_color = Color("white") sel_width = 2 - def __init__(self): + def __init__(self, state): PaletteView.__init__(self, (50, 50), 1, 6, scrolling=True) + self.state = state self.selection = None def num_items(self): - return len(self.info) + return len(self.state.inventory) def draw_item(self, surface, item_no, rect): d = -2 * self.sel_width r = rect.inflate(d, d) - color = Color(self.info[item_no]) - surface.fill(color, r) + surface.blit(self.state.inventory[item_no].get_inventory_image(), r, None, BLEND_ADD) def click_item(self, item_no, event): self.selection = item_no @@ -38,8 +36,11 @@ def item_is_selected(self, item_no): return self.selection == item_no - def add_item(self, colstr): - self.info.append(colstr) + def add_item(self, item): + self.info.append(item) + + def remove_item(self, item): + self.info.remove(item) class StateWidget(Widget): @@ -55,7 +56,6 @@ class GameScreen(Screen): def __init__(self, shell): Screen.__init__(self, shell) - self.shell = shell # TODO: Randomly plonk the state here for now self.state = initial_state() @@ -74,10 +74,14 @@ ], align='l', spacing=20) self.add_centered(menu) - self.inventory = InventoryView() + self.inventory = InventoryView(self.state) self.inventory.bottomleft = self.bottomleft self.add(self.inventory) + # Test items + self.state.add_inventory_item('triangle') + self.state.add_inventory_item('square') + def main_menu(self): print 'Returning to menu' self.shell.show_screen(self.shell.menu_screen) diff -r f8e02d02c782 -r e5c043aeed65 gamelib/menu.py --- a/gamelib/menu.py Sun Aug 22 19:51:24 2010 +0200 +++ b/gamelib/menu.py Sun Aug 22 19:59:42 2010 +0200 @@ -9,7 +9,6 @@ class MenuScreen(Screen): def __init__(self, shell): Screen.__init__(self, shell) - self.shell = shell StartButton = Button('Start New Game', action = self.start) QuitButton = Button('Quit', action = shell.quit) Title = Label('Caught! ... In SPAACE') diff -r f8e02d02c782 -r e5c043aeed65 gamelib/state.py --- a/gamelib/state.py Sun Aug 22 19:51:24 2010 +0200 +++ b/gamelib/state.py Sun Aug 22 19:59:42 2010 +0200 @@ -49,7 +49,7 @@ self.inventory.append(self.items[name]) def remove_inventory_item(self, name): - self.inventory.remove([self.items[name]) + self.inventory.remove(self.items[name]) def draw(self, surface): self.current_scene.draw(surface) @@ -111,6 +111,10 @@ def __init__(self): self.name = self.NAME - # TODO: needs image + + self.inventory_image = get_image('items', self.name) # TODO: needs cursor + def get_inventory_image(self): + return self.inventory_image +