Пример #1
0
 def main(self):
     single_player_menu = Menu([4030],
         [(c.title, c) for c in campaigns()] +
         [
         ([4055], self.training_menu),
         ([4113], self.restore_game),
         ([4118], END_LOOP),
         ])
     server_menu = Menu([4043], [
         ([4044, 4045], (start_server_and_connect, "admin_only")),
         ([4046, 4047], (start_server_and_connect, "")),
         ([4121, 4122], (start_server_and_connect,
                         "admin_only no_metaserver")),
         ([4048], None),
         ])
     options_menu = Menu([4086], [
         ([4087], self.modify_login),
         ([4319], self.modify_default_mods),
         [[4323], self.manage_packages],
         ([4118], END_LOOP),
         ])
     main_menu = Menu([4029, 4030], [
         [[4031, 4032], single_player_menu.loop],
         [[4033, 4034], self.multiplayer_menu],
         [[4035, 4036], server_menu],
         [[4315], self.replay_menu],
         [[4037, 4038], options_menu.loop],
         [[4041, 4042], END_LOOP],
         ])
     if "connect_localhost" in sys.argv:
         connect_and_play()
     else:
         main_menu.loop()
Пример #2
0
    def manage_packages(self):

        def add():
            menu = Menu([4325])
            for p in get_packages():
                if not p.is_active:
                    menu.append([p.name], (p.add, voice))
            menu.append([4118], None)
            menu.run()

        def deactivate():
            menu = Menu([4326])
            for p in get_packages():
                if p.is_active:
                    menu.append([p.name], p.deactivate)
            menu.append([4118], None)
            menu.run()

        def update():
            menu = Menu([4327])
            for p in get_packages():
                if p.is_active:
                    menu.append([p.name], (p.update, voice))
            menu.append([4118], None)
            menu.run()

        menu = Menu([4324], [
            ([4325], add),
            ([4326], deactivate),
            ([4327], update),
            ([4076], END_LOOP),
            ])
        menu.loop()
        reload_all()
Пример #3
0
    def modify_default_mods(self):

        def available_mods():
            result = []
            for path in get_all_packages_paths():
                mods_path = os.path.join(path, "mods")
                for mod in os.listdir(mods_path):
                    if os.path.isdir(os.path.join(mods_path, mod)) \
                       and mod not in result and mod not in mods:
                        result.append(mod)
            return result

        def select_next_mod(parent):

            def add_mod(mod):
                if mod not in mods:
                    mods.append(mod)
                    parent.title = mods

            menu = Menu([4320] + mods)
            for mod in available_mods():
                menu.append([mod], (add_mod, mod))
            menu.append([4118], None)
            menu.run()

        def save():
            previous_mods = config.mods
            config.config_mods = ",".join(mods)
            config.mods = config.config_mods
            config.save()
            if config.mods != previous_mods:
                reload_all()
            return END_LOOP

        mods = []
        menu = Menu([4321]) # the list is empty
        menu.append([4320], (select_next_mod, menu))
        menu.append([4096], save)
        menu.append([4098], END_LOOP)
        menu.loop()