示例#1
0
    def __init__(self, game, settings, map_settings):
        super(ViewWidget, self).__init__()

        self.game = game

        #self.map_widget = GameWidget(game, map_settings)
        #self.map_widget.setParentItem(self)
        #self.map_widget.hide()

        self.game_widget = GameWidget(game, settings)
        self.game_widget.setParentItem(self)
        self.active = self.game_widget
        self.levels = [self.game_widget.level]#, self.map_widget.level]

        self._info = InfoWidget()
        self.setWidget('top_right', self._info)
        self._info.resize_event.connect(self._onInfoResizeEvent)
        self._info.gained_focus.connect(self._onWidgetGainedFocus)
        self._info.lost_focus.connect(self._onWidgetLostFocus)

        self._question = InputWidget(self)
        self.setWidget('middle_left', self._question)
        self._question.finished.connect(self._onAnswerRecieved)
        self._question.canceled.connect(self._onAnswerRecieved)

        self._stats = StatsWidget()
        self.setWidget('bottom_left', self._stats)

        self._log = LogWidget()
        self.setWidget('top_left', self._log)
        game.events['action_happened_in_game'].connect(self._log.appendDungeonMessage)

        game.events['game_started'].connect(self._onGameStarted)
        game.events['turn_finished'].connect(self._onTurnFinished)

        for group, commands in game.commands.items():
            for command in commands.values():
                parent = self if group in self.game_widget.menu_names else self.game_widget.level
                action = Action(
                    parent, 
                    command.desc, 
                    [command.key], 
                    self.game_widget._onAction,
                    args=(group, command.name)
                )
                parent.addAction(action)

        for name in self.game_widget.settings.keys(self._settings_group):
            action = Action(self, name, ['Ctrl+' + name[0]], self._onSettingsChanged, args=('settings', name))
            action.setCheckable(True)
            action.setChecked(settings[self._settings_group, name])
            self.addAction(action)
            self._onSettingsChanged('settings', name)