def draw_inv_text(self): #Box around the text here PERCENT_UP = 0.95 #How far up is the text? FONT = GLUT_BITMAP_9_BY_15 LOADING_WIDTH = 40 LOADING_HEIGHT = 10 TEXT_LOADINGBAR_GAP = 10 text_top = PERCENT_UP * SCREEN_SIZE[1] #Text starts from here GLComponents.glEnable2D() max_length = 0 for item_num in range(len(self.inventory.inventory)): #Longest sentence key = self.inventory.inventory.keys()[item_num] cap = ReadFile.read_caps()[item_num] if cap: message = "{0}: {1:.2f}%".format(key, self.inventory.inventory[key]/cap * 100.0) else: message = "{0}: {1:.2f}".format(key, self.inventory.inventory[key]) width = self.str_width(message, FONT) if width > max_length: max_length = width GLComponents.write_str(message, 0, text_top - item_num * 15, FONT) if cap: #Only capped values get loading bars GLComponents.loading_bar(max_length + TEXT_LOADINGBAR_GAP, text_top - 15 * item_num, self.inventory.inventory[key]/cap * 100, LOADING_WIDTH, LOADING_HEIGHT) GLComponents.draw_rect(0, max_length + LOADING_WIDTH + TEXT_LOADINGBAR_GAP + 2, text_top + 15, text_top - len(self.inventory.inventory) * 15) GLComponents.glDisable2D()
def give_prize(self, inv_type, amount): num = -1 for x in range(len(ReadFile.get_inventory_types())): #Get the inv num if ReadFile.get_inventory_types()[x] == inv_type: num = x break cap = ReadFile.read_caps()[num] if cap == None: #Unbounded cap self.inventory[inv_type] += amount else: #Bounded cap difference = cap - self.inventory[inv_type] #How much left can be added self.inventory[inv_type] += min(difference, amount)