예제 #1
0
    def __init__(self, camp, pc: gears.base.Monster, fhq, **kwargs):
        super().__init__(0, 0, 0, 0, **kwargs)
        self.camp = camp
        self.pc = pc
        self.info = PetFHQIP(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,
                                0,
                                text="Change Name",
                                justify=0,
                                draw_border=True,
                                on_click=self._change_name))

        if self.pc.pet_data.active:
            self.column.add_interior(
                widgets.LabelWidget(0,
                                    0,
                                    fhqinfo.LEFT_COLUMN.w,
                                    0,
                                    text="Send Home",
                                    justify=0,
                                    draw_border=True,
                                    on_click=self.leave_behind))
        elif gears.tags.SCENE_PUBLIC in self.camp.scene.attributes:
            self.column.add_interior(
                widgets.LabelWidget(0,
                                    0,
                                    fhqinfo.LEFT_COLUMN.w,
                                    0,
                                    text="Bring Along",
                                    justify=0,
                                    draw_border=True,
                                    on_click=self.bring_along))

        self.column.add_interior(
            widgets.LabelWidget(0,
                                0,
                                fhqinfo.LEFT_COLUMN.w,
                                0,
                                text="Dismiss {}".format(self.pc),
                                justify=0,
                                draw_border=True,
                                on_click=self._dismiss))

        self.fhq = fhq
예제 #2
0
    def __init__(self, camp, pc: gears.base.Character, conlist: pbge.container.ContainerList, **kwargs):
        """

        :type camp: gears.GearHeadCampaign
        """
        super().__init__(0,0,0,0,**kwargs)

        self.camp = camp
        self.pc = pc
        self.conlist = conlist
        self.info_cache = dict()

        self.cc_up_button = widgets.ButtonWidget(0, 0, EQUIPMENT_COLUMN.w, 16, sprite=pbge.image.Image("sys_updownbuttons.png", 128, 16), off_frame=1)
        self.cc_down_button = widgets.ButtonWidget(0, 0, EQUIPMENT_COLUMN.w, 16, sprite=pbge.image.Image("sys_updownbuttons.png", 128, 16), frame=2, on_frame=2, off_frame=3)
        self.crate_selector = widgets.ScrollColumnWidget(0, 0, EQUIPMENT_COLUMN.w, EQUIPMENT_COLUMN.h - 42, up_button = self.cc_up_button, down_button=self.cc_down_button, padding=2)

        self.crate_column = widgets.ColumnWidget(EQUIPMENT_COLUMN.dx, EQUIPMENT_COLUMN.dy, EQUIPMENT_COLUMN.w, EQUIPMENT_COLUMN.h, draw_border=True)

        self.crate_column.add_interior(self.cc_up_button)
        self.crate_column.add_interior(self.crate_selector)
        self.crate_column.add_interior(self.cc_down_button)

        self.children.append(self.crate_column)

        self.ic_up_button = widgets.ButtonWidget(0, 0, INVENTORY_COLUMN.w, 16, sprite=pbge.image.Image("sys_updownbuttons.png", 128, 16), off_frame=1)
        self.ic_down_button = widgets.ButtonWidget(0, 0, INVENTORY_COLUMN.w, 16, sprite=pbge.image.Image("sys_updownbuttons.png", 128, 16), frame=2, on_frame=2, off_frame=3)
        self.inventory_selector = widgets.ScrollColumnWidget(0, 0, INVENTORY_COLUMN.w, INVENTORY_COLUMN.h - 42, up_button = self.ic_up_button, down_button=self.ic_down_button, padding=2)

        self.inventory_column = widgets.ColumnWidget(INVENTORY_COLUMN.dx,INVENTORY_COLUMN.dy,INVENTORY_COLUMN.w,INVENTORY_COLUMN.h,draw_border=True)

        self.inventory_column.add_interior(self.ic_up_button)
        self.inventory_column.add_interior(self.inventory_selector)
        self.inventory_column.add_interior(self.ic_down_button)

        self.children.append(self.inventory_column)
        self.children.append(PlayerCharacterSwitchPlusBPInfo(camp,pc,self.set_pc,draw_border=True))

        self.update_selectors()

        self.finished = False
예제 #3
0
    def _change_name(self, wid, ev):
        self.fhq.active = False
        myui = widgets.ColumnWidget(-100,
                                    -70,
                                    200,
                                    0,
                                    draw_border=True,
                                    center_interior=True,
                                    padding=16)
        myui.add_interior(
            pbge.widgets.LabelWidget(0,
                                     0,
                                     0,
                                     0,
                                     "Change Name",
                                     font=pbge.BIGFONT))
        myui.add_interior(
            pbge.widgets.TextEntryWidget(0,
                                         0,
                                         180,
                                         24,
                                         text=self.pc.name,
                                         on_change=self._set_name))
        myui.add_interior(
            pbge.widgets.LabelWidget(0,
                                     0,
                                     0,
                                     0,
                                     "Done",
                                     justify=0,
                                     on_click=self._rename_done,
                                     draw_border=True))

        pbge.my_state.widgets.append(myui)
        self.rename_finished = False

        while not self.rename_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:
                    self.rename_finished = True
                elif ev.key == pygame.K_RETURN or ev.key == pygame.K_KP_ENTER:
                    self.rename_finished = True

        pbge.my_state.widgets.remove(myui)
        pygame.event.clear()
        self.info.update()
        self.fhq.update_party()
        self.fhq.active = True
예제 #4
0
 def __init__(self, camp, pc, fhq, **kwargs):
     super(CharacterInfoWidget, self).__init__(0, 0, 0, 0, **kwargs)
     self.camp = camp
     self.pc = pc
     self.portrait = pc.get_portrait()
     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="Do Training",
                             justify=0,
                             draw_border=True,
                             on_click=self.open_training))
     self.column.add_interior(
         widgets.LabelWidget(0,
                             0,
                             fhqinfo.LEFT_COLUMN.w,
                             16,
                             text="Assign Mecha",
                             justify=0,
                             draw_border=True,
                             on_click=self.assign_mecha))
     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
     self.info = CharaFHQIP(model=pc,
                            width=fhqinfo.CENTER_COLUMN.w,
                            font=pbge.SMALLFONT,
                            camp=camp)
예제 #5
0
    def __init__(self, camp):
        self._active_info = None
        super(FieldHQ, self).__init__(0, 0, 0, 0)

        self.up_button = widgets.ButtonWidget(0,
                                              0,
                                              fhqinfo.RIGHT_COLUMN.w,
                                              16,
                                              sprite=pbge.image.Image(
                                                  "sys_updownbuttons.png", 128,
                                                  16),
                                              off_frame=1)
        self.down_button = widgets.ButtonWidget(0,
                                                0,
                                                fhqinfo.RIGHT_COLUMN.w,
                                                16,
                                                sprite=pbge.image.Image(
                                                    "sys_updownbuttons.png",
                                                    128, 16),
                                                frame=2,
                                                on_frame=2,
                                                off_frame=3)

        self.member_selector = widgets.ScrollColumnWidget(
            0,
            0,
            fhqinfo.RIGHT_COLUMN.w,
            fhqinfo.RIGHT_COLUMN.h - 42,
            up_button=self.up_button,
            down_button=self.down_button,
            autoclick=True,
            focus_locked=True)

        self.r_column = widgets.ColumnWidget(fhqinfo.RIGHT_COLUMN.dx,
                                             fhqinfo.RIGHT_COLUMN.dy,
                                             fhqinfo.RIGHT_COLUMN.w,
                                             fhqinfo.RIGHT_COLUMN.h)
        self.r_column.add_interior(self.up_button)
        self.r_column.add_interior(self.member_selector)
        self.r_column.add_interior(self.down_button)
        self.children.append(self.r_column)
        self.member_widgets = dict()
        self.camp = camp
        self.active_pc = camp.pc
        self.update_party()
        self.finished = False

        self.active_info = camp.pc
예제 #6
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
예제 #7
0
 def __init__(self, camp, pc, fhq, **kwargs):
     super().__init__(0, 0, 0, 0, **kwargs)
     self.camp = camp
     self.pc = pc
     self.info = create_item_fhq_ip(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,
                             0,
                             text="Give Item",
                             justify=0,
                             draw_border=True,
                             on_click=self.give_item))
     self.fhq = fhq
예제 #8
0
 def __init__(self, camp, pc, fhq, **kwargs):
     super(CharacterInfoWidget, self).__init__(0, 0, 0, 0, **kwargs)
     self.camp = camp
     self.pc = pc
     self.portrait = pc.get_portrait()
     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,
                             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="Do Training",
                             justify=0,
                             draw_border=True,
                             on_click=self.open_training))
     self.column.add_interior(
         widgets.LabelWidget(0,
                             0,
                             fhqinfo.LEFT_COLUMN.w,
                             0,
                             text="Assign Mecha",
                             justify=0,
                             draw_border=True,
                             on_click=self.assign_mecha))
     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))
     if pc.relationship and pbge.util.config.getboolean(
             "GENERAL", "dev_mode_on"):
         self.column.add_interior(
             widgets.LabelWidget(0,
                                 0,
                                 fhqinfo.LEFT_COLUMN.w,
                                 16,
                                 text="Jump to Next Dev",
                                 justify=0,
                                 draw_border=True,
                                 on_click=self.jump_plot))
     if pc is camp.pc:
         self.column.add_interior(
             widgets.LabelWidget(0,
                                 0,
                                 fhqinfo.LEFT_COLUMN.w,
                                 0,
                                 text="Edit Character",
                                 justify=0,
                                 draw_border=True,
                                 on_click=self.edit_pc))
     self.fhq = fhq
     self.info = CharaFHQIP(model=pc,
                            width=fhqinfo.CENTER_COLUMN.w,
                            font=pbge.SMALLFONT,
                            camp=camp)
예제 #9
0
    def __init__(self, camp):
        super(FieldHQ, self).__init__(0, 0, 0, 0)

        self.up_button = widgets.ButtonWidget(0,
                                              0,
                                              fhqinfo.RIGHT_COLUMN.w,
                                              16,
                                              sprite=pbge.image.Image(
                                                  "sys_updownbuttons.png", 128,
                                                  16),
                                              off_frame=1)
        self.down_button = widgets.ButtonWidget(0,
                                                0,
                                                fhqinfo.RIGHT_COLUMN.w,
                                                16,
                                                sprite=pbge.image.Image(
                                                    "sys_updownbuttons.png",
                                                    128, 16),
                                                frame=2,
                                                on_frame=2,
                                                off_frame=3)

        self.member_selector = widgets.ScrollColumnWidget(
            0,
            0,
            fhqinfo.RIGHT_COLUMN.w,
            fhqinfo.RIGHT_COLUMN.h - 42,
            up_button=self.up_button,
            down_button=self.down_button)

        self.r_column = widgets.ColumnWidget(fhqinfo.RIGHT_COLUMN.dx,
                                             fhqinfo.RIGHT_COLUMN.dy,
                                             fhqinfo.RIGHT_COLUMN.w,
                                             fhqinfo.RIGHT_COLUMN.h)
        self.r_column.add_interior(self.up_button)
        self.r_column.add_interior(self.member_selector)
        self.r_column.add_interior(self.down_button)

        self.children.append(self.r_column)

        self.member_widgets = dict()

        for pc in camp.party:
            self.member_selector.add_interior(
                PartyMemberButton(camp,
                                  pc,
                                  fhq=self,
                                  on_click=self.click_member))
            if isinstance(pc, gears.base.Character):
                self.member_widgets[pc] = CharacterInfoWidget(camp,
                                                              pc,
                                                              self,
                                                              active=False)
                self.children.append(self.member_widgets[pc])
            elif isinstance(pc, gears.base.Mecha):
                self.member_widgets[pc] = MechaInfoWidget(camp,
                                                          pc,
                                                          self,
                                                          active=False)
                self.children.append(self.member_widgets[pc])

        self.camp = camp
        self.finished = False
        self.active_pc = camp.pc
        self.active_widget = self.member_widgets.get(camp.pc, None)
        if self.active_widget:
            self.active_widget.active = True
예제 #10
0
    def __init__(self, camp: gears.GearHeadCampaign, pc: gears.base.Character):
        super().__init__(0, 0, 0, 0)

        self.camp = camp
        self.pc = pc
        self.portrait = pc.get_portrait()

        self.portrait_area = pbge.frects.Frect(-400, -300, 400, 600)

        right_column = widgets.ColumnWidget(50,
                                            -200,
                                            250,
                                            400,
                                            padding=32,
                                            center_interior=True)
        self.children.append(right_column)

        name_column = widgets.ColumnWidget(0,
                                           0,
                                           right_column.w,
                                           64,
                                           draw_border=True,
                                           center_interior=True)
        name_column.add_interior(
            widgets.LabelWidget(0, 0, 100, 0, "name", justify=0))
        self.name_widget = widgets.TextEntryWidget(0,
                                                   0,
                                                   right_column.w - 20,
                                                   32,
                                                   pc.name,
                                                   font=pbge.BIGFONT,
                                                   justify=0)
        name_column.add_interior(self.name_widget)
        right_column.add_interior(name_column)

        right_column.add_interior(
            widgets.LabelWidget(0,
                                0,
                                right_column.w,
                                0,
                                "Edit Portrait",
                                font=pbge.BIGFONT,
                                justify=0,
                                draw_border=True,
                                on_click=self._edit_portrait))

        right_column.add_interior(
            widgets.LabelWidget(0,
                                0,
                                right_column.w,
                                0,
                                "Edit Gender",
                                font=pbge.BIGFONT,
                                justify=0,
                                draw_border=True,
                                on_click=self._edit_gender,
                                text_fun=self._gender_fun))

        right_column.add_interior(
            widgets.LabelWidget(0,
                                0,
                                200,
                                0,
                                "Done",
                                font=pbge.BIGFONT,
                                justify=0,
                                draw_border=True,
                                on_click=self._done))

        self.finished = False