示例#1
0
    def __init__(self, windows):
        super(SingleplayerMenu, self).__init__(windows)

        self._mode = None

        self._gui = load_uh_widget('singleplayermenu.xml')
        self._gui.mapEvents({
            'cancel':
            self._windows.close,
            'okay':
            self.act,
            'scenario':
            Callback(self._select_mode, 'scenario'),
            'random':
            Callback(self._select_mode, 'random'),
            'free_maps':
            Callback(self._select_mode, 'free_maps')
        })

        self._playerdata = PlayerDataSelection()
        self._aidata = AIDataSelection()
        self._gui.findChild(name="playerdataselectioncontainer").addChild(
            self._playerdata.get_widget())
        self._gui.findChild(name="aidataselectioncontainer").addChild(
            self._aidata.get_widget())
    def show_single(self,
                    show='scenario'):  # show scenarios to highlight tutorials
        """
		@param show: string, which type of games to show
		"""
        # save player name before removing playerdata container
        self._save_player_name()
        self.hide()

        # start with default single player settings
        self.widgets.reload('singleplayermenu')
        self._switch_current_widget('singleplayermenu', center=True)
        self.active_right_side = None

        for mode in ('random', 'scenario', 'free_maps'):
            self.widgets.reload('sp_%s' % mode)
            right_side = self.widgets['sp_%s' % mode]
            self.current.findChild(name="right_side_box").addChild(right_side)
            right_side.parent.hideChild(right_side)

        # create and add permanent left side widgets
        self.current.playerdata = PlayerDataSelection(self.current,
                                                      self.widgets)
        self.current.aidata = AIDataSelection(self.current, self.widgets)

        self.map_preview = MapPreview(lambda: self.current)

        self._select_single(show)