Esempio n. 1
0
    def __init__(self):
        Tk.__init__(self)
        self.wm_title("Tekken Bot Prime")
        self.iconbitmap('TekkenData/tekken_bot_close.ico')

        self.color_scheme_config = ConfigReader.ConfigReader("color_scheme")
        self.color_scheme_config.add_comment("colors with names -> http://www.science.smith.edu/dftwiki/images/3/3d/TkInterColorCharts.png")
        self.changed_color_scheme("Current", False)

        self.menu = Menu(self)
        self.configure(menu=self.menu)

        self.text = Text(self, wrap="word")
        sys.stdout = TextRedirector(self.text, "stdout")

        try:
            with open("TekkenData/tekken_bot_readme.txt") as fr:
                lines = fr.readlines()
            for line in lines: print(line)
        except:
            print("Error reading readme file.")

        self.overlay = fdo.GUI_FrameDataOverlay(self)

        self.checkbox_dict = {}
        self.column_menu = Menu(self.menu)
        for i, enum in enumerate(fdo.DataColumns):
            bool = self.overlay.redirector.columns_to_print[i]
            self.add_checkbox(self.column_menu, enum, enum.name, bool, self.changed_columns)
        self.menu.add_cascade(label='Columns', menu=self.column_menu)

        self.display_menu = Menu(self.menu)
        for enum in fdo.DisplaySettings:
            default = self.overlay.tekken_config.get_property(fdo.DisplaySettings.config_name(), enum.name, False)
            self.add_checkbox(self.display_menu, enum, enum.name, default, self.changed_display)
        self.menu.add_cascade(label="Display", menu=self.display_menu)

        self.color_scheme_menu = Menu(self.menu)
        self.radio_var = StringVar()
        for section in self.color_scheme_config.parser.sections():
            if section not in ("Comments", "Current"):
                self.color_scheme_menu.add_radiobutton(label=section, variable=self.radio_var, value=section, command=lambda : self.changed_color_scheme(self.radio_var.get()))
        self.menu.add_cascade(label="Color Scheme", menu=self.color_scheme_menu)



        self.text.grid(row = 2, column = 0, columnspan=2, sticky=N+S+E+W)
        #self.grid_rowconfigure(0, weight=1)
        self.grid_rowconfigure(2, weight=1)
        self.grid_columnconfigure(0, weight=1)
        #self.grid_columnconfigure(1, weight=1)

        self.geometry(str(720) + 'x' + str(720))

        self.overlay.update_launcher()
        self.overlay.hide()
Esempio n. 2
0
 def start_overlay(self):
     if self.mode == OverlayMode.FrameData:
         self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher)
         self.overlay.hide()
     #if self.mode == OverlayMode.Timeline:
     #    self.overlay = tlo.GUI_TimelineOverlay(self, self.launcher)
     #    self.overlay.hide()
     if self.mode == OverlayMode.CommandInput:
         self.overlay = cio.GUI_CommandInputOverlay(self, self.launcher)
         self.overlay.hide()
     if self.mode == OverlayMode.PunishCoach:
         self.overlay = pco.GUI_PunishCoachOverlay(self, self.launcher)
         self.overlay.hide()
     if self.mode == OverlayMode.MatchupRecord:
         self.overlay = mso.GUI_MatchStatOverlay(self, self.launcher)
         self.overlay.hide()
     if self.mode == OverlayMode.DebugInfo:
         self.overlay = dio.GUI_DebugInfoOverlay(self, self.launcher)
         self.overlay.hide()
Esempio n. 3
0
 def start_overlay(self):
     self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher)
     self.overlay.hide()
Esempio n. 4
0
    def __init__(self):
        self.overlay = None

        Tk.__init__(self)
        self.wm_title("SCUFFLE")
        self.iconbitmap('Data/icon.ico')

        self.color_scheme_config = ConfigReader.ConfigReader("color_scheme")
        self.color_scheme_config.add_comment(
            "colors with names -> http://www.science.smith.edu/dftwiki/images/3/3d/TkInterColorCharts.png"
        )
        self.changed_color_scheme("Current", False)

        self.menu = Menu(self)
        self.configure(menu=self.menu)

        self.text = Text(self, wrap="word")
        self.stdout = sys.stdout
        self.var_print_frame_data_to_file = BooleanVar(value=False)
        # args for below: widget, stdout, callback_function, var_print_frame_data_to_file,tag="stdout"
        sys.stdout = TextRedirector(self.text, sys.stdout,
                                    self.write_to_overlay,
                                    self.var_print_frame_data_to_file,
                                    "stdout")
        self.stderr = sys.stderr
        sys.stderr = TextRedirector(self.text, sys.stderr, self.write_to_error,
                                    "stderr")
        self.text.tag_configure("stderr", foreground="#b22222")

        try:
            with open("Data/SCUFFLE_readme.txt") as fr:
                lines = fr.readlines()
            for line in lines:
                print(line)
        except:
            print("Error reading readme file.")

        updates = VersionChecker.check_version()
        if updates:
            self.wm_title("SCUFFLE (Updates Available)")

        print("SCUFFLE Starting...")
        self.launcher = GameStateManager()

        self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher)
        #self.graph = tlo.GUI_TimelineOverlay(self, self.launcher)

        self.tekken_bot_menu = Menu(self.menu)
        self.tekken_bot_menu.add_command(label="Restart", command=self.restart)

        self.menu.add_cascade(label="SCUFFLE", menu=self.tekken_bot_menu)

        self.tools_menu = Menu(self.menu)
        self.move_viewer = None
        self.tools_menu.add_command(label="Launch Move Viewer",
                                    command=self.launch_move_viewer)

        self.move_id_ometer = None
        self.tools_menu.add_command(label="Launch Move-Id-Ometer",
                                    command=self.launch_move_id_ometer)

        self.do_show_all_hitbox_data = BooleanVar()
        self.do_show_all_hitbox_data.set(False)
        self.tools_menu.add_checkbutton(
            label=
            'Show frame data for all hitboxes (useful for moves with \'tip\' properties)',
            onvalue=True,
            offvalue=False,
            variable=self.do_show_all_hitbox_data)

        self.tools_menu.add_command(label="Dump all frame data to console",
                                    command=self.dump_frame_data)

        self.do_print_debug_values = BooleanVar()
        self.do_print_debug_values.set(False)
        #self.tools_menu.add_checkbutton(label='DEBUG: Print Every Frame (WARNING: CPU USAGE HIGH)', onvalue=True, offvalue=False, variable=self.do_print_debug_values)

        self.menu.add_cascade(label="Advanced Tools", menu=self.tools_menu)

        self.checkbox_dict = {}
        self.column_menu = Menu(self.menu)
        for i, enum in enumerate(fdo.DataColumns):
            bool = self.overlay.redirector.columns_to_print[i]
            self.add_checkbox(
                self.column_menu, enum, "{} ({})".format(
                    enum.name.replace('X', ' ').strip(),
                    fdo.DataColumnsToMenuNames[enum]), bool,
                self.changed_columns)
        self.menu.add_cascade(label='Columns', menu=self.column_menu)

        self.display_menu = Menu(self.menu)
        for enum in ovr.DisplaySettings:
            default = self.overlay.tekken_config.get_property(
                ovr.DisplaySettings.config_name(), enum.name, False)
            self.add_checkbox(self.display_menu, enum, enum.name, default,
                              self.changed_display)
        self.menu.add_cascade(label="Display", menu=self.display_menu)

        self.color_scheme_menu = Menu(self.menu)
        self.scheme_var = StringVar()
        for section in self.color_scheme_config.parser.sections():
            if section not in ("Comments", "Current"):
                self.color_scheme_menu.add_radiobutton(
                    label=section,
                    variable=self.scheme_var,
                    value=section,
                    command=lambda: self.changed_color_scheme(self.scheme_var.
                                                              get()))
        self.menu.add_cascade(label="Color Scheme",
                              menu=self.color_scheme_menu)

        self.tekken_bot_menu = Menu(self.menu)
        self.tekken_bot_menu.add_command(label=VersionChecker.CURRENT_VERSION)
        self.tekken_bot_menu.add_command(label="Check for new version",
                                         command=self.print_release_notes)
        self.tekken_bot_menu.add_command(label="Download Latest Release",
                                         command=self.download_latest_release)
        self.menu.add_cascade(label="Version", menu=self.tekken_bot_menu)

        self.text.grid(row=2, column=0, columnspan=2, sticky=N + S + E + W)
        #self.grid_rowconfigure(0, weight=1)
        self.grid_rowconfigure(2, weight=1)
        self.grid_columnconfigure(0, weight=1)
        #self.grid_columnconfigure(1, weight=1)

        self.geometry(str(920) + 'x' + str(720))

        self.previous_working_pid = 0
        self.update_launcher()
        self.overlay.hide()  # hides old overlay

        self.protocol("WM_DELETE_WINDOW", self.on_closing)
Esempio n. 5
0
 def reboot_overlay(self):
     self.overlay.restore_stdout()
     self.overlay.toplevel.destroy()
     self.overlay = fdo.GUI_FrameDataOverlay(self)
     self.overlay.update_launcher()
     self.overlay.hide()
Esempio n. 6
0
    def __init__(self):
        self.overlay = None

        Tk.__init__(self)
        self.wm_title("Tekken Bot Prime")
        self.iconbitmap('TekkenData/tekken_bot_close.ico')

        self.color_scheme_config = ConfigReader.ConfigReader("color_scheme")
        self.color_scheme_config.add_comment(
            "colors with names -> http://www.science.smith.edu/dftwiki/images/3/3d/TkInterColorCharts.png"
        )
        self.changed_color_scheme("Current", False)

        self.menu = Menu(self)
        self.configure(menu=self.menu)

        self.text = Text(self, wrap="word")
        self.stdout = sys.stdout
        self.var_print_frame_data_to_file = BooleanVar(value=False)
        sys.stdout = TextRedirector(self.text, sys.stdout,
                                    self.write_to_overlay,
                                    self.var_print_frame_data_to_file,
                                    "stdout")
        self.stderr = sys.stderr
        sys.stderr = TextRedirector(self.text, sys.stderr, self.write_to_error,
                                    "stderr")
        self.text.tag_configure("stderr", foreground="#b22222")

        try:
            with open("TekkenData/tekken_bot_readme.txt") as fr:
                lines = fr.readlines()
            for line in lines:
                print(line)
        except:
            print("Error reading readme file.")

        VersionChecker.check_version()

        print("Tekken Bot Starting...")
        self.launcher = FrameDataLauncher(False)

        self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher)
        #self.graph = tlo.GUI_TimelineOverlay(self, self.launcher)

        self.tekken_bot_menu = Menu(self.menu)
        self.tekken_bot_menu.add_command(label="Restart", command=self.restart)

        self.tekken_bot_menu.add_checkbutton(
            label="Print Frame Data To \"TekkenData/frame_data_output.txt\"",
            onvalue=True,
            offvalue=False,
            variable=self.var_print_frame_data_to_file)
        self.menu.add_cascade(label="Tekken Bot", menu=self.tekken_bot_menu)

        self.checkbox_dict = {}
        self.column_menu = Menu(self.menu)
        for i, enum in enumerate(fdo.DataColumns):
            bool = self.overlay.redirector.columns_to_print[i]
            self.add_checkbox(
                self.column_menu, enum, "{} ({})".format(
                    enum.name.replace('X', ' ').strip(),
                    fdo.DataColumnsToMenuNames[enum]), bool,
                self.changed_columns)
        self.menu.add_cascade(label='Columns', menu=self.column_menu)

        self.display_menu = Menu(self.menu)
        for enum in ovr.DisplaySettings:
            default = self.overlay.tekken_config.get_property(
                ovr.DisplaySettings.config_name(), enum.name, False)
            self.add_checkbox(self.display_menu, enum, enum.name, default,
                              self.changed_display)
        self.menu.add_cascade(label="Display", menu=self.display_menu)

        self.color_scheme_menu = Menu(self.menu)
        self.scheme_var = StringVar()
        for section in self.color_scheme_config.parser.sections():
            if section not in ("Comments", "Current"):
                self.color_scheme_menu.add_radiobutton(
                    label=section,
                    variable=self.scheme_var,
                    value=section,
                    command=lambda: self.changed_color_scheme(self.scheme_var.
                                                              get()))
        self.menu.add_cascade(label="Color Scheme",
                              menu=self.color_scheme_menu)

        self.overlay_mode_menu = Menu(self.menu)
        self.overlay_var = StringVar()
        for mode in OverlayMode:
            self.overlay_mode_menu.add_radiobutton(
                label=OverlayModeToDisplayName[mode],
                variable=self.overlay_var,
                value=mode.name,
                command=lambda: self.changed_mode(self.overlay_var.get()))
        self.menu.add_cascade(label="Mode", menu=self.overlay_mode_menu)
        self.mode = OverlayMode.FrameData

        self.tekken_bot_menu = Menu(self.menu)
        self.tekken_bot_menu.add_command(label=VersionChecker.CURRENT_VERSION)
        self.tekken_bot_menu.add_command(label="Check for new version",
                                         command=self.print_release_notes)
        self.tekken_bot_menu.add_command(label="Download Latest Release",
                                         command=self.download_latest_release)
        self.menu.add_cascade(label="Version", menu=self.tekken_bot_menu)

        self.text.grid(row=2, column=0, columnspan=2, sticky=N + S + E + W)
        #self.grid_rowconfigure(0, weight=1)
        self.grid_rowconfigure(2, weight=1)
        self.grid_columnconfigure(0, weight=1)
        #self.grid_columnconfigure(1, weight=1)

        self.geometry(str(920) + 'x' + str(720))

        self.update_launcher()
        self.overlay.hide()

        self.protocol("WM_DELETE_WINDOW", self.on_closing)