def __init__(self, i_id, name, spritetype, spriteid, components, value, RNG, desc, aoe, weapontype, status, status_on_hold, status_on_equip, droppable=False, locked=False, event_combat=False): self.spritetype = spritetype # Consumable, Sword, Used for spriting in list of sprites self.spriteid = spriteid # Number of sprite to be picked from spritesheet list self.id = i_id self.owner = 0 self.name = str(name) self.value = int(value) # Value for one use of item, or for an infinite item self.RNG = parseRNG(RNG) # Comes in the form of looking like '1-2' or '1' or '2-3' or '3-10' self.strRNG = RNG # string version of RNG for display self.event_combat = event_combat self.droppable = droppable # Whether this item is given to its owner's killer upon death self.locked = locked # Whether this item can be traded, sold, or dropped. assert not(self.droppable == self.locked == True), "%s can't be both droppable and locked to a unit!" %(self.name) self.desc = desc # Text description of item # Status IDs self.status = status self.status_on_hold = status_on_hold self.status_on_equip = status_on_equip self.aoe = aoe self.TYPE = weapontype self.icons = [] for weapon_type in self.TYPE: self.icons.append(CustomObjects.WeaponIcon(weapon_type)) # Creates component slots self.components = components # Consumable, Weapon, Spell Bigger Picture for component_key, component_value in self.components.iteritems(): self.__dict__[component_key] = component_value self.loadSprites()
def __init__(self, unit, wexp, weapon_type): Banner.__init__(self) self.unit = unit self.item = CustomObjects.WeaponIcon(weapon_type) self.banner = [ unit.name, ' reached rank ', CustomObjects.WEAPON_EXP.number_to_letter(wexp) ] self.banner_font = ['text_blue', 'text_white', 'text_blue'] self.figure_out_size() self.sound = GC.SOUNDDICT['Item']
def begin(self, gameStateObj, metaDataObj): if not self.started: # Get units to display self.units = [unit for unit in gameStateObj.allunits if unit.position and unit.team == 'player'] self.bg_surf = Image_Modification.flickerImageTranslucent(GC.IMAGESDICT['UnitMenuBackground'], 10) self.title_bg = Image_Modification.flickerImageTranslucent(GC.IMAGESDICT['TitleBar'], 10) self.background = MenuFunctions.MovingBackground(GC.IMAGESDICT['RuneBackground']) self.states = [('Character', ['Class', 'Lv', 'Exp', 'HP', 'Max'], [4, 66, 89, 113, 133]), ('Fighting Skill', ['STR', 'MAG', 'SKL', 'SPD', 'LCK', 'DEF', 'RES'], [4, 26, 48, 71, 94, 119, 142]), ('Equipment', ['Equip', 'Atk', 'Hit', 'Avoid'], [16, 72, 103, 136]), ('Personal Data', ['MOV', 'CON', 'Aid', 'Rat', 'Trv'], [4, 33, 60, 82, 106]), ('Weapon Level', CustomObjects.WEAPON_TRIANGLE.types, [9 + idx*16 for idx in xrange(len(CustomObjects.WEAPON_TRIANGLE.types))])] if cf.CONSTANTS['support']: self.states.append(('Support Chance', ['Ally'], [0])) self.state_index = 0 self.prev_state_index = 0 self.unit_index = 1 # 0 means on banner self.scroll_index = 1 self.banner_index = 0 self.num_per_page = 6 self.state_scroll = 0 self.scroll_direction = 0 self.weapon_icons = [CustomObjects.WeaponIcon(weapon) for weapon in CustomObjects.WEAPON_TRIANGLE.types] self.help_boxes = [] self.info = False self.scroll_bar = GUIObjects.ScrollBar((233, 59)) self.left_arrow = GUIObjects.ScrollArrow('left', (7, 41)) self.right_arrow = GUIObjects.ScrollArrow('right', (GC.WINWIDTH - 7 - 8, 41), 0.5) # For sort self.current_sort = 'Name' self.descending = False self.sort_surf = MenuFunctions.CreateBaseMenuSurf((64, 24)) self.sort_surf = Image_Modification.flickerImageTranslucent(self.sort_surf, 10) self.sort_arrow_counter = Counters.ArrowCounter() self.sort_arrow_counter.arrow_anim = [0, 1, 2] self.sort() # Transition in: gameStateObj.stateMachine.changeState("transition_in") return 'repeat' else: chosen_unit = gameStateObj.info_menu_struct['chosen_unit'] if chosen_unit and chosen_unit in self.units: self.move_to_unit(chosen_unit) gameStateObj.info_menu_struct['chosen_unit'] = None