def __init__(self, camp, pc, fhq, **kwargs): super(MechaInfoWidget, self).__init__(0, 0, 0, 0, **kwargs) self.camp = camp self.pc = pc self.portrait = pc.get_portrait() self.info = MechaFHQIP(model=pc, width=fhqinfo.CENTER_COLUMN.w, camp=camp, font=pbge.SMALLFONT) self.column = widgets.ColumnWidget(fhqinfo.LEFT_COLUMN.dx, fhqinfo.LEFT_COLUMN.dy, fhqinfo.LEFT_COLUMN.w, fhqinfo.LEFT_COLUMN.h, padding=10) self.children.append(self.column) if not hasattr(pc, "owner") or not pc.owner: self.column.add_interior( widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 0, text="Inventory", justify=0, draw_border=True, on_click=self.open_backpack)) self.column.add_interior( widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 0, text="Assign Pilot", justify=0, draw_border=True, on_click=self.assign_pilot)) self.column.add_interior( widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 0, text="Change Colors", justify=0, draw_border=True, on_click=self.change_colors)) self.fhq = fhq
def __init__(self,camp,pc,fhq,**kwargs): super(MechaInfoWidget, self).__init__(0,0,0,0,**kwargs) self.camp = camp self.pc = pc self.portrait = pc.get_portrait() self.info = MechaFHQIP(model=pc, width=fhqinfo.CENTER_COLUMN.w, camp=camp, font=pbge.SMALLFONT) self.column = widgets.ColumnWidget(fhqinfo.LEFT_COLUMN.dx, fhqinfo.LEFT_COLUMN.dy, fhqinfo.LEFT_COLUMN.w, fhqinfo.LEFT_COLUMN.h, padding=10) self.children.append(self.column) self.column.add_interior(widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 16, text="Inventory", justify=0, draw_border=True, on_click=self.open_backpack)) self.column.add_interior(widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 16, text="Assign Pilot", justify=0, draw_border=True, on_click=self.assign_pilot)) self.column.add_interior(widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 16, text="Change Colors", justify=0, draw_border=True, on_click=self.change_colors)) self.fhq = fhq
class MechaInfoWidget(widgets.Widget): def __init__(self, camp, pc, fhq, **kwargs): super(MechaInfoWidget, self).__init__(0, 0, 0, 0, **kwargs) self.camp = camp self.pc = pc self.portrait = pc.get_portrait() self.info = MechaFHQIP(model=pc, width=fhqinfo.CENTER_COLUMN.w, camp=camp, font=pbge.SMALLFONT) self.column = widgets.ColumnWidget(fhqinfo.LEFT_COLUMN.dx, fhqinfo.LEFT_COLUMN.dy, fhqinfo.LEFT_COLUMN.w, fhqinfo.LEFT_COLUMN.h, padding=10) self.children.append(self.column) if not hasattr(pc, "owner") or not pc.owner: self.column.add_interior( widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 0, text="Inventory", justify=0, draw_border=True, on_click=self.open_backpack)) self.column.add_interior( widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 0, text="Assign Pilot", justify=0, draw_border=True, on_click=self.assign_pilot)) self.column.add_interior( widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 0, text="Change Colors", justify=0, draw_border=True, on_click=self.change_colors)) self.fhq = fhq def draw_portrait(self, include_background=True): if include_background: pbge.my_state.view() mydest = self.portrait.get_rect(0) mydest.midbottom = fhqinfo.PORTRAIT_AREA.get_rect().midbottom self.portrait.render(mydest, 0) def render(self, flash=False): self.draw_portrait(False) mydest = fhqinfo.CENTER_COLUMN.get_rect() self.info.render(mydest.x, mydest.y) def assign_pilot(self, wid, ev): self.fhq.active = False mymenu = pbge.rpgmenu.Menu(fhqinfo.UTIL_MENU.dx, fhqinfo.UTIL_MENU.dy, fhqinfo.UTIL_MENU.w, fhqinfo.UTIL_MENU.h, font=pbge.MEDIUMFONT, predraw=self.draw_portrait) for plr in self.camp.party: if isinstance( plr, gears.base.Character) and plr.is_not_destroyed() and ( not hasattr(self.pc, "owner") or self.pc.owner is plr): mymenu.add_item(plr.get_full_name(), plr) mymenu.descobj = AssignPilotDescObject(self.camp, self.portrait) pilot = mymenu.query() self.camp.assign_pilot_to_mecha(pilot, self.pc) self.info.update() self.fhq.update_party() pbge.my_state.view.regenerate_avatars([ self.pc, ]) self.fhq.active = True def open_backpack(self, wid, ev): self.fhq.active = False myui = backpack.BackpackWidget(self.camp, self.pc) pbge.my_state.widgets.append(myui) myui.finished = False myui.children.append( pbge.widgets.LabelWidget(150, 220, 80, 0, text="Done", justify=0, on_click=self.bp_done, draw_border=True, data=myui)) keepgoing = True while keepgoing and not myui.finished and not pbge.my_state.got_quit: ev = pbge.wait_event() if ev.type == pbge.TIMEREVENT: pbge.my_state.view() pbge.my_state.do_flip() elif ev.type == pygame.KEYDOWN: if ev.key == pygame.K_ESCAPE: keepgoing = False pbge.my_state.widgets.remove(myui) pygame.event.clear() self.info.update() self.fhq.update_party() self.fhq.active = True def bp_done(self, wid, ev): wid.data.finished = True def change_colors(self, wid, ev): self.fhq.active = False myui = cosplay.ColorEditor( self.pc.get_portrait(add_color=False), 0, channel_filters=gears.color.MECHA_COLOR_CHANNELS, colors=self.pc.colors) pbge.my_state.widgets.append(myui) myui.finished = False myui.children.append( pbge.widgets.LabelWidget(150, 220, 80, 0, text="Done", justify=0, on_click=self.color_done, draw_border=True, data=myui)) keepgoing = True while keepgoing and not myui.finished and not pbge.my_state.got_quit: ev = pbge.wait_event() if ev.type == pbge.TIMEREVENT: pbge.my_state.view() pbge.my_state.do_flip() elif ev.type == pygame.KEYDOWN: if ev.key == pygame.K_ESCAPE: keepgoing = False self.pc.colors = myui.colors self.portrait = self.pc.get_portrait(self.pc, force_rebuild=True) pbge.my_state.widgets.remove(myui) pygame.event.clear() self.fhq.update_party() self.fhq.active = True pbge.my_state.view.regenerate_avatars([ self.pc, ]) if isinstance(self.pc, gears.base.Mecha) and self.pc.pilot: self.pc.pilot.mecha_colors = self.pc.colors def color_done(self, wid, ev): wid.data.finished = True
class MechaInfoWidget(widgets.Widget): def __init__(self,camp,pc,fhq,**kwargs): super(MechaInfoWidget, self).__init__(0,0,0,0,**kwargs) self.camp = camp self.pc = pc self.portrait = pc.get_portrait() self.info = MechaFHQIP(model=pc, width=fhqinfo.CENTER_COLUMN.w, camp=camp, font=pbge.SMALLFONT) self.column = widgets.ColumnWidget(fhqinfo.LEFT_COLUMN.dx, fhqinfo.LEFT_COLUMN.dy, fhqinfo.LEFT_COLUMN.w, fhqinfo.LEFT_COLUMN.h, padding=10) self.children.append(self.column) self.column.add_interior(widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 16, text="Inventory", justify=0, draw_border=True, on_click=self.open_backpack)) self.column.add_interior(widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 16, text="Assign Pilot", justify=0, draw_border=True, on_click=self.assign_pilot)) self.column.add_interior(widgets.LabelWidget(0, 0, fhqinfo.LEFT_COLUMN.w, 16, text="Change Colors", justify=0, draw_border=True, on_click=self.change_colors)) self.fhq = fhq def draw_portrait(self,include_background=True): if include_background: pbge.my_state.view() mydest = self.portrait.get_rect(0) mydest.midbottom = fhqinfo.PORTRAIT_AREA.get_rect().midbottom self.portrait.render(mydest, 0) def render(self): self.draw_portrait(False) mydest = fhqinfo.CENTER_COLUMN.get_rect() self.info.render(mydest.x,mydest.y) def assign_pilot(self,wid,ev): self.fhq.active = False mymenu = pbge.rpgmenu.Menu(fhqinfo.UTIL_MENU.dx, fhqinfo.UTIL_MENU.dy, fhqinfo.UTIL_MENU.w, fhqinfo.UTIL_MENU.h, font=pbge.MEDIUMFONT, predraw=self.draw_portrait) for plr in self.camp.party: if isinstance(plr, gears.base.Character) and plr.is_not_destroyed(): mymenu.add_item(plr.get_full_name(),plr) mymenu.descobj = AssignPilotDescObject(self.camp,self.portrait) pilot = mymenu.query() self.camp.assign_pilot_to_mecha(pilot,self.pc) self.info.update() self.fhq.active = True def open_backpack(self,wid,ev): self.fhq.active = False myui = backpack.BackpackWidget(self.camp,self.pc) pbge.my_state.widgets.append(myui) myui.finished = False myui.children.append( pbge.widgets.LabelWidget(150, 220, 80, 16, text="Done", justify=0, on_click=self.bp_done, draw_border=True, data=myui)) keepgoing = True while keepgoing and not myui.finished and not pbge.my_state.got_quit: ev = pbge.wait_event() if ev.type == pbge.TIMEREVENT: pbge.my_state.view() pbge.my_state.do_flip() elif ev.type == pygame.KEYDOWN: if ev.key == pygame.K_ESCAPE: keepgoing = False pbge.my_state.widgets.remove(myui) pygame.event.clear() self.info.update() self.fhq.active = True def bp_done(self, wid, ev): wid.data.finished = True def change_colors(self,wid,ev): self.fhq.active = False myui = cosplay.ColorEditor(self.pc.get_portrait(add_color=False), 0, channel_filters=gears.color.MECHA_COLOR_CHANNELS, colors=self.pc.colors) pbge.my_state.widgets.append(myui) myui.finished = False myui.children.append( pbge.widgets.LabelWidget(150, 220, 80, 16, text="Done", justify=0, on_click=self.color_done, draw_border=True, data=myui)) keepgoing = True while keepgoing and not myui.finished and not pbge.my_state.got_quit: ev = pbge.wait_event() if ev.type == pbge.TIMEREVENT: pbge.my_state.view() pbge.my_state.do_flip() elif ev.type == pygame.KEYDOWN: if ev.key == pygame.K_ESCAPE: keepgoing = False self.pc.colors = myui.colors self.portrait = self.pc.get_portrait(self.pc, force_rebuild=True) pbge.my_state.widgets.remove(myui) pygame.event.clear() self.fhq.active = True pbge.my_state.view.regenerate_avatars([self.pc,]) def color_done(self, wid, ev): wid.data.finished = True