Changeset 103


Ignore:
Timestamp:
06/07/09 20:07:47 (10 years ago)
Author:
bretzel_parpg
Message:

Added ready slots to HUD. The image on the ready slot on the HUD will alway match the one on the inventory

Location:
trunk/PARPG
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/PARPG/gui/hud.xml

    r96 r103  
    77  <Label name="healthPoints" text="HP: 100" position="56,14"/> 
    88  <Label name="actionPoints" text="AP: 100" position="56,34" /> 
     9  <Label name="armorClass" text="AC: 100" position="106,14" /> 
     10  <Label name="tempGauge" text="Temp: 100" position="106,34" /> 
     11   
     12  <ImageButton name="hudReady1" /> 
     13  <ImageButton name="hudReady2" /> 
    914 
    1015  <ScrollArea name="actionsScrollArea" vertical_scrollbar="1" horizontal_scrollbar="0" 
    11               position="105,5"> 
    12     <ListBox name="actionsBox" min_size="300,48"/> 
     16              position="325,5"> 
     17    <ListBox name="actionsBox" /> 
    1318  </ScrollArea> 
     19 
     20  <ImageButton name="hudReady3" /> 
     21  <ImageButton name="hudReady4" /> 
    1422 
    1523  <ToggleButton name="inventoryButton" up_image="gui/inv_images/inv_backpack.png"  
  • trunk/PARPG/scripts/hud.py

    r97 r103  
    2020 
    2121        self.settings = settings 
    22         self.hp = self.hud.findChild(name="healthPoints") 
    23         self.ap = self.hud.findChild(name="actionPoints") 
    2422        self.actionsBox = self.hud.findChild(name="actionsBox") 
    2523        self.actionsText = [] 
     
    3937        screen_width = int(self.settings.readSetting('ScreenWidth')) 
    4038        self.hud.findChild(name="mainHudWindow").size = (screen_width, 65) 
    41  
    4239        self.hud.findChild(name="inventoryButton").position = (screen_width-59, 7) 
    43          
    44         actions_width = screen_width - 175  
     40 
     41        self.hud.findChild(name='hudReady1').position = (screen_width-820, 7) 
     42        self.hud.findChild(name='hudReady2').position = (screen_width-760, 7) 
     43        self.hud.findChild(name='hudReady3').position = (screen_width-215, 7) 
     44        self.hud.findChild(name='hudReady4').position = (screen_width-155, 7) 
     45 
     46        actions_width = screen_width - 550  
    4547        self.hud.findChild(name="actionsBox").min_size = (actions_width, 0) 
    4648        self.hud.findChild(name="actionsScrollArea").size = (actions_width, 55) 
     
    219221        NOTE: This does not in any way affect the character's actual health, only what is displayed on the HUD 
    220222        """ 
    221         self.hp.text = value 
     223        self.hud.findChild(name="healthPoints").text = value 
    222224 
    223225    def setAP(self, value): 
     
    227229              what is displayed on the HUD 
    228230        """ 
    229         self.ap.text = value 
     231        self.hud.findChild(name="actionPoints").text = value 
     232 
     233    def setAC(self, value): 
     234        """ 
     235        Set the armor class on the HUD display (not the characters actual armor class 
     236        """ 
     237        self.hud.findChild(name="armorClass").text = value 
    230238         
    231239    def toggleInventory(self): 
  • trunk/PARPG/scripts/inventory.py

    r80 r103  
    1010class Inventory(): 
    1111    """Main inventory class""" 
    12     def __init__(self, engine): 
     12    def __init__(self, engine, readyCallback): 
    1313        pychan.init(engine, debug = True) 
    1414        self.engine = engine 
     15        self.readyCallback = readyCallback 
    1516        self.dragging = False 
    1617        self.dragged_image = None 
     
    8485        self.inventory.mapEvents(self.events_to_map)    
    8586        self.resetMouseCursor() 
    86         self.inventory.show() 
    8787 
    8888    def closeInventory(self): 
     
    154154            self.dragging = False 
    155155            self.resetMouseCursor() 
     156            if (self.dropped_type == 'ready'): 
     157                self.readyCallback() 
     158 
    156159        elif((self.dragged_type == self.dropped_type) and 
    157160             (self.dragged_type in self.locations)): 
     
    163166            self.dragging = False 
    164167            self.resetMouseCursor() 
     168            if (self.dropped_type == 'ready'): 
     169                self.readyCallback() 
    165170        else: 
    166171            self.resetMouseCursor() 
  • trunk/PARPG/scripts/world.py

    r91 r103  
    6969        self.quitFunction = None 
    7070        self.inventoryShown = False 
    71         self.firstInventory = True 
    7271        self.data = None 
    7372        self.mouseCallback = None 
     
    7776        self.hud.events_to_map["inventoryButton"] = cbwa(self.displayInventory, True) 
    7877        self.hud.hud.mapEvents(self.hud.events_to_map) 
    79  
    8078        self.hud.menu_events["quitButton"] = self.quitGame 
    8179        self.hud.main_menu.mapEvents(self.hud.menu_events) 
    82  
    8380        self.action_number = 1 
     81 
     82        self.inventory = inventory.Inventory(self.engine, self.refreshReadyImages) 
     83        self.inventory.events_to_map['close_button'] = self.closeInventoryAndToggle 
     84        self.inventory.inventory.mapEvents(self.inventory.events_to_map) 
     85        self.refreshReadyImages() 
    8486 
    8587    def reset(self): 
     
    149151            self.obj_hash[obj].say(str(text), 3500) 
    150152 
     153    def refreshReadyImages(self): 
     154        """Make the Ready slot images on the HUD be the same as those on the inventory""" 
     155        self.setImages(self.hud.hud.findChild(name="hudReady1"), 
     156                       self.inventory.inventory.findChild(name="Ready1").up_image) 
     157        self.setImages(self.hud.hud.findChild(name="hudReady2"), 
     158                       self.inventory.inventory.findChild(name="Ready2").up_image) 
     159        self.setImages(self.hud.hud.findChild(name="hudReady3"), 
     160                       self.inventory.inventory.findChild(name="Ready3").up_image) 
     161        self.setImages(self.hud.hud.findChild(name="hudReady4"), 
     162                       self.inventory.inventory.findChild(name="Ready4").up_image) 
     163 
     164    def setImages(self, widget, image): 
     165        """ Set the up, down, and hover images of an Imagebutton """ 
     166        widget.up_image = image 
     167        widget.down_image = image 
     168        widget.hover_image = image 
     169 
     170 
    151171    def closeInventoryAndToggle(self): 
    152172        self.inventory.closeInventory() 
     
    159179           callFromHud should be set to true if you call this 
    160180           function from the hud script""" 
    161         # show the inventory 
    162         if(self.firstInventory == True): 
    163             self.inventory = inventory.Inventory(self.engine) 
    164             self.inventory.events_to_map['close_button'] = self.closeInventoryAndToggle 
    165             self.inventory.inventory.mapEvents(self.inventory.events_to_map) 
    166             self.firstInventory = False 
     181        if (self.inventoryShown == False): 
     182            self.inventory.showInventory() 
    167183            self.inventoryShown = True 
    168184            if (callFromHud == False): 
    169185                self.hud.toggleInventory() 
    170         # logically firstInventory is false here 
    171         elif(self.inventoryShown == True): 
     186        else: 
    172187            self.inventory.closeInventory() 
    173188            self.inventoryShown = False 
    174             if (callFromHud == False): 
    175                 self.hud.toggleInventory() 
    176         # and here inventoryShown must be false 
    177         else: 
    178             self.inventory.showInventory() 
    179             self.inventoryShown = True 
    180189            if (callFromHud == False): 
    181190                self.hud.toggleInventory() 
Note: See TracChangeset for help on using the changeset viewer.