예제 #1
0
    def update_ship_stats(self, ship_id=0):
        if ship_id == self.current_ship_id:
            return True
        self.current_ship_id = ship_id

        ship_stats_data = XwmDbQuery.get_ship_stats(ship_id)
        if not ship_stats_data:
            return False

        if ship_stats_data['attack_or_energy'] == 'A':
            self.headers[1].config(text='Attack Value',
                                   **self.options['attack.ship_stats'])
            self.ship_stats[0].config(text=str(
                ship_stats_data['attack_energy_value']),
                                      **self.options['attack.ship_stats'])
        elif ship_stats_data['attack_or_energy'] == 'E':
            self.headers[1].config(text='Energy Value',
                                   **self.options['energy.ship_stats'])
            self.ship_stats[0].config(text=str(
                ship_stats_data['attack_energy_value']),
                                      **self.options['energy.ship_stats'])

        self.ship_stats[1].config(text=str(ship_stats_data['agility_value']))
        self.ship_stats[2].config(text=str(ship_stats_data['hull_value']))
        self.ship_stats[3].config(text=str(ship_stats_data['shield_value']))
예제 #2
0
    def update_dial(self, ship_id):
        dial_list = XwmDbQuery.get_maneuver_dial(ship_id)

        if not dial_list:
            return False

        self.__generate_config_table()

        if dial_list[0]['is_huge']:
            for maneuver in dial_list:
                self.__generate_huge_maneuver_label_config(
                    maneuver['speed'], maneuver['maneuver_id'],
                    maneuver['energy'])
        else:
            for maneuver in dial_list:
                self.__generate_maneuver_label_config(
                    maneuver['speed'], maneuver['maneuver_id'],
                    maneuver['difficulty_char'])

        self.__update_maneuver_table()

        for i in range(6):
            for j in range(9):
                self.maneuver_table[i][j].grid()

        self.__check_empty_rows_and_cols()
        return True
예제 #3
0
    def update_ship_info(self, ship_id):
        ship_basic_info = XwmDbQuery.get_ship_basic_info(ship_id)

        if not ship_basic_info:
            return False

        firing_arcs_string = ''
        firing_arcs_list = XwmDbQuery.get_ship_firing_arcs(ship_id)
        if not firing_arcs_list:
            firing_arcs_string = 'No Firing Arc'
        for arc in firing_arcs_list:
            firing_arcs_string += arc['firing_arc_name'] + ',\n'
        firing_arcs_string = firing_arcs_string.strip().strip(',')

        self.fields[0].config(text=ship_basic_info['ship_name'])
        self.fields[1].config(text=ship_basic_info['faction_name'])
        self.fields[2].config(text=ship_basic_info['ship_size'])
        self.fields[3].config(text=firing_arcs_string)

        self.ship_stats.update_ship_stats(ship_id)
        self.action_bar.update_action_bar(ship_id)
        self.upgrade_bar.update_upgrade_bar(ship_id)
        self.maneuver_dial.update_dial(ship_id)
        self.pilot_list.update_pilot_list(ship_id)
예제 #4
0
    def update_pilot_list(self, ship_id=0):
        if ship_id == self.current_ship_id:
            return True
        self.current_ship_id = ship_id

        pilots_data = XwmDbQuery.get_pilot_list_data(ship_id)
        if not pilots_data:
            return False

        for i in range(1, 15):
            for j in range(4):
                if j == 1:
                    self.pilot_table[i][j][0].grid_remove()

                else:
                    self.pilot_table[i][j].grid_remove()

        k = 0
        for pilot in pilots_data:
            k += 1
            for j in range(4):
                if j == 0:
                    self.pilot_table[k][j].config(
                        text=str(pilot['pilot_skill']))
                    self.pilot_table[k][j].grid()
                elif j == 1:
                    if pilot['unique_name_id'] != 0:
                        self.pilot_table[k][j][1].config(text='*')
                    else:
                        self.pilot_table[k][j][1].config(text='')

                    pilot_name = pilot['card_name']
                    if pilot['variant']:
                        pilot_name += ' (' + pilot['variant'] + ')'
                    self.pilot_table[k][j][2].config(text=pilot_name)
                    self.pilot_table[k][j][0].grid()
                elif j == 2:
                    if pilot['elite_upgrade']:
                        self.pilot_table[k][j].config(text='Yes')
                    else:
                        self.pilot_table[k][j].config(text='No')
                    self.pilot_table[k][j].grid()
                elif j == 3:
                    self.pilot_table[k][j].config(
                        text=str(pilot['point_cost']))
                    self.pilot_table[k][j].grid()
            if k >= 15:
                break
예제 #5
0
    def update_upgrade_bar(self, ship_id=0):
        if ship_id == self.current_ship_id:
            return True
        self.current_ship_id = ship_id

        upgrade_data = XwmDbQuery.get_upgrade_bar(ship_id)

        for j in range(7):
            self.upgrade_slots[j].config(
                image=self.upgrade_icons.get_icon('blank_icon'), text=' ')

        for index, upgrade in enumerate(upgrade_data):
            self.upgrade_slots[index].config(
                image=self.upgrade_icons.get_icon(upgrade['upgrade_name'] +
                                                  '_black'),
                text=upgrade['print_name'])
예제 #6
0
    def update_action_bar(self, ship_id=0):
        if ship_id == self.current_ship_id:
            return True
        self.current_ship_id = ship_id

        action_data = XwmDbQuery.get_action_bar(ship_id)
        if not action_data:
            return False

        for j in range(4):
            self.action_slots[j].config(
                image=self.action_icons.get_icon('blank_icon'), text=' ')

        for index, action in enumerate(action_data):
            self.action_slots[index].config(
                image=self.action_icons.get_icon(action['action_name'] +
                                                 '_black'),
                text=action['print_name'])
예제 #7
0
                        pilot_name += ' (' + pilot['variant'] + ')'
                    self.pilot_table[k][j][2].config(text=pilot_name)
                    self.pilot_table[k][j][0].grid()
                elif j == 2:
                    if pilot['elite_upgrade']:
                        self.pilot_table[k][j].config(text='Yes')
                    else:
                        self.pilot_table[k][j].config(text='No')
                    self.pilot_table[k][j].grid()
                elif j == 3:
                    self.pilot_table[k][j].config(
                        text=str(pilot['point_cost']))
                    self.pilot_table[k][j].grid()
            if k >= 15:
                break

    def __generate_header(self):
        self.pilot_table[0][0].config(text='PS')
        self.pilot_table[0][1].config(text='     Pilot Name')
        self.pilot_table[0][2].config(text='Elite?')
        self.pilot_table[0][3].config(text='Point Cost')


if __name__ == '__main__':
    shipId = 1
    root = tk.Tk()
    root.title(XwmDbQuery.get_ship_name(shipId))
    app = AppWindow(root)
    PilotList(app, shipId)
    root.mainloop()
예제 #8
0
from ship_stats import ShipStats
from action_bar import ActionBar
from upgrade_bar import UpgradeBar
from pilot_list import PilotList
from maneuver_dial import ManeuverDial


class PilotInfo(tk.Frame):
    def __init__(self,
                 master,
                 pilot_name='',
                 pilot_id=0,
                 pack_params=None,
                 grid_params=None):
        tk.Frame.__init__(self, master)
        if grid_params:
            self.grid(grid_params)
        elif pack_params:
            self.pack(pack_params)
        else:
            self.pack(side='top')


if __name__ == '__main__':
    pilotId = 5
    root = tk.Tk()
    root.title(XwmDbQuery.get_pilot_name(pilotId))
    app = AppWindow(root)
    PilotInfo(app, pilot_id=pilotId)
    root.mainloop()