コード例 #1
0
ファイル: ManitaeGame.py プロジェクト: happy5214/manitae
 def __init__(self, main_window):
     super(ManitaeGame, self).__init__()
     self.main_window = main_window
     
     self.scenario_manager = ScenarioManager(self)
     self.scenario = self.scenario_manager.get_scenario()
     
     self.logger = ManitaeLogger()
     self.logger.send_entry.connect(self.add_log_entry)
     self.logger.append_notice("New game started.")
     
     self.turn_manager = TurnManager(self)
     self.map_manager = MapManager(self)
     
     self.economy_manager = EconomyManager(self)
     self.population_manager = PopulationManager(self)
     self.resource_manager = ResourceManager(self)
     self.unit_manager = UnitManager(self)
     
     self.turn_manager.turn_ended.connect(self.economy_manager.on_turn_end)
     
     self.extra_tabs = []
     
     self.main_window.ui.widget.ui.resourceComboBox.setModel(self.resource_manager.resource_type_model)
     self.main_window.ui.widget.ui.resourceComboBox.activated[str].connect(self.update_resource_widget)
     self.main_window.ui.buildComboBox.setModel(self.unit_manager.unit_type_model)
     self.main_window.ui.buildComboBox.setItemIcon(self.main_window.ui.buildComboBox.findText("Hunter"), QtGui.QIcon("./manitae/maps/tile_images/units/Hunter/Hunter.svg"))
     self.main_window.ui.buildPushButton.clicked.connect(self.build)
     
     self.resource_manager.resource_changed.connect(self.update_resource_widget_after_turn)
     
     self.main_window.ui.widget.ui.resourceLineEdit.setText('0')
コード例 #2
0
ファイル: ManitaeGame.py プロジェクト: happy5214/manitae
 def restart_game(self):
     
     scenario_manager = ScenarioManager(self)
     scenario = scenario_manager.get_scenario()
     
     del self.scenario_manager
     del self.scenario
     self.scenario_manager = scenario_manager
     self.scenario = scenario
     
     for x in self.extra_tabs:
         self.main_window.ui.tabWidget.removeTab(self.main_window.ui.tabWidget.indexOf(x))
     del self.extra_tabs
     del self.economy_manager
     del self.map_manager
     del self.population_manager
     del self.resource_manager
     del self.turn_manager
     del self.unit_manager
     #
     
     self.logger.append_notice("New game started.")
     self.turn_manager = TurnManager(self)
     self.map_manager = MapManager(self)
     
     self.economy_manager = EconomyManager(self)
     self.population_manager = PopulationManager(self)
     self.resource_manager = ResourceManager(self)
     self.unit_manager = UnitManager(self)
     
     self.turn_manager.turn_ended.connect(self.economy_manager.on_turn_end)
     
     self.extra_tabs = []
     
     self.main_window.ui.widget.ui.resourceComboBox.setModel(self.resource_manager.resource_type_model)
     self.main_window.ui.widget.ui.buildComboBox.setModel(self.unit_manager.unit_type_model)
     self.main_window.ui.buildComboBox.setItemIcon(self.main_window.ui.buildComboBox.findText("Hunter"), QtGui.QIcon("./manitae/maps/tile_images/units/Hunter/Hunter.svg"))
     
     self.resource_manager.resource_changed.connect(self.update_resource_widget_after_turn)
     
     self.main_window.ui.widget.ui.resourceLineEdit.setText('0')
コード例 #3
0
ファイル: ManitaeGame.py プロジェクト: happy5214/manitae
class ManitaeGame(QtCore.QObject):
    def __init__(self, main_window):
        super(ManitaeGame, self).__init__()
        self.main_window = main_window
        
        self.scenario_manager = ScenarioManager(self)
        self.scenario = self.scenario_manager.get_scenario()
        
        self.logger = ManitaeLogger()
        self.logger.send_entry.connect(self.add_log_entry)
        self.logger.append_notice("New game started.")
        
        self.turn_manager = TurnManager(self)
        self.map_manager = MapManager(self)
        
        self.economy_manager = EconomyManager(self)
        self.population_manager = PopulationManager(self)
        self.resource_manager = ResourceManager(self)
        self.unit_manager = UnitManager(self)
        
        self.turn_manager.turn_ended.connect(self.economy_manager.on_turn_end)
        
        self.extra_tabs = []
        
        self.main_window.ui.widget.ui.resourceComboBox.setModel(self.resource_manager.resource_type_model)
        self.main_window.ui.widget.ui.resourceComboBox.activated[str].connect(self.update_resource_widget)
        self.main_window.ui.buildComboBox.setModel(self.unit_manager.unit_type_model)
        self.main_window.ui.buildComboBox.setItemIcon(self.main_window.ui.buildComboBox.findText("Hunter"), QtGui.QIcon("./manitae/maps/tile_images/units/Hunter/Hunter.svg"))
        self.main_window.ui.buildPushButton.clicked.connect(self.build)
        
        self.resource_manager.resource_changed.connect(self.update_resource_widget_after_turn)
        
        self.main_window.ui.widget.ui.resourceLineEdit.setText('0')
    
    def add_log_entry(self, log_entry):
        temp_cursor = self.main_window.ui.noticeLog.textCursor()
        temp_cursor.movePosition(QtGui.QTextCursor.End)
        self.main_window.ui.noticeLog.setTextCursor(temp_cursor)
        self.main_window.ui.noticeLog.insertHtml(log_entry)
    
    def add_tab(self, tab, name):
        tab_number = self.main_window.ui.tabWidget.addTab(tab, name)
        self.extra_tabs.append(tab)
        return tab_number
    
    def build(self):
        unit_str = self.main_window.ui.buildComboBox.currentText()
        try:
            unit = self.unit_manager.build(unit_str)
            self.main_window.ui.goToTabPushButton.setEnabled(True)
            self.main_window.ui.tileOccupantLineEdit.setText(str(unit))
            self.main_window.ui.buildPushButton.setEnabled(unit.tile.buildable)
        except (NoMoreWorkersError, OutOfMoneyError) as e:
            self.logger.append_warning(str(e))
    
    def end_turn(self):
        self.turn_manager.end_turn()
    
    def restart_game(self):
        
        scenario_manager = ScenarioManager(self)
        scenario = scenario_manager.get_scenario()
        
        del self.scenario_manager
        del self.scenario
        self.scenario_manager = scenario_manager
        self.scenario = scenario
        
        for x in self.extra_tabs:
            self.main_window.ui.tabWidget.removeTab(self.main_window.ui.tabWidget.indexOf(x))
        del self.extra_tabs
        del self.economy_manager
        del self.map_manager
        del self.population_manager
        del self.resource_manager
        del self.turn_manager
        del self.unit_manager
        #
        
        self.logger.append_notice("New game started.")
        self.turn_manager = TurnManager(self)
        self.map_manager = MapManager(self)
        
        self.economy_manager = EconomyManager(self)
        self.population_manager = PopulationManager(self)
        self.resource_manager = ResourceManager(self)
        self.unit_manager = UnitManager(self)
        
        self.turn_manager.turn_ended.connect(self.economy_manager.on_turn_end)
        
        self.extra_tabs = []
        
        self.main_window.ui.widget.ui.resourceComboBox.setModel(self.resource_manager.resource_type_model)
        self.main_window.ui.widget.ui.buildComboBox.setModel(self.unit_manager.unit_type_model)
        self.main_window.ui.buildComboBox.setItemIcon(self.main_window.ui.buildComboBox.findText("Hunter"), QtGui.QIcon("./manitae/maps/tile_images/units/Hunter/Hunter.svg"))
        
        self.resource_manager.resource_changed.connect(self.update_resource_widget_after_turn)
        
        self.main_window.ui.widget.ui.resourceLineEdit.setText('0')
    
    def update_resource_widget(self, resource):
        res_amount = self.resource_manager.resources[str(resource)]
        self.main_window.ui.widget.ui.resourceLineEdit.setText(str(res_amount))
    
    def update_resource_widget_after_turn(self, resource_changed):
        resource = self.main_window.ui.widget.ui.resourceComboBox.currentText()
        if resource == resource_changed:
            res_amount = self.resource_manager.resources[str(resource)]
            self.main_window.ui.widget.ui.resourceLineEdit.setText(str(res_amount))