Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
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
Beispiel #4
0
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