def end(self): self.widgets['minimap'].mapEvents({ 'zoomIn' : None, 'zoomOut' : None, 'rotateRight' : None, 'rotateLeft': None, 'destroy_tool' : None, 'build' : None, 'diplomacyButton' : None, 'gameMenuButton' : None }) for w in self.widgets.itervalues(): if w.parent is None: w.hide() self.message_widget = None self.tabwidgets = None self.minimap = None self.resource_overview.end() self.resource_overview = None self.hide_menu() SettlerUpdate.unsubscribe(self._on_settler_level_change) ResourceBarResize.unsubscribe(self._on_resourcebar_resize) HoverSettlementChanged.unsubscribe(self._cityinfo_set) SettlerInhabitantsChanged.unsubscribe(self._on_settler_inhabitant_change) super(IngameGui, self).end()
def end(self): self.widgets['minimap'].mapEvents({ 'zoomIn': None, 'zoomOut': None, 'rotateRight': None, 'rotateLeft': None, 'destroy_tool': None, 'build': None, 'diplomacyButton': None, 'gameMenuButton': None }) for w in self.widgets.itervalues(): if w.parent is None: w.hide() self.message_widget = None self.tabwidgets = None self.minimap = None self.resource_overview.end() self.resource_overview = None self.hide_menu() SettlerUpdate.unsubscribe(self._on_settler_level_change) ResourceBarResize.unsubscribe(self._on_resourcebar_resize) HoverSettlementChanged.unsubscribe(self._cityinfo_set) SettlerInhabitantsChanged.unsubscribe( self._on_settler_inhabitant_change) super(IngameGui, self).end()
def __init__(self, ingame_gui): self._ingame_gui = ingame_gui self._widget = load_uh_widget('city_info.xml', 'resource_bar') self._child_finder = PychanChildFinder(self._widget) self._settlement = None HoverSettlementChanged.subscribe(self._on_hover_settlement_change) SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change) ResourceBarResize.subscribe(self._on_resourcebar_resize)
def __init__(self, ingame_gui): self._ingame_gui = ingame_gui self._widget = load_uh_widget('city_info.xml', 'resource_bar') self._child_finder = PychanChildFinder(self._widget) self._settlement = None HoverSettlementChanged.subscribe(self._on_hover_settlement_change) SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change) ResourceBarResize.subscribe(self._on_resourcebar_resize)
def initialize(self): super(Settler, self).initialize() SettlerInhabitantsChanged.broadcast(self, self.inhabitants) happiness = self.__get_data("happiness_init_value") if happiness is not None: self.get_component(StorageComponent).inventory.alter(RES.HAPPINESS, happiness) if self.has_status_icon: self.get_component(StorageComponent).inventory.add_change_listener( self._update_status_icon ) # give the user a month (about 30 seconds) to build a main square in range if self.owner.is_local_player: Scheduler().add_new_object(self._check_main_square_in_range, self, Scheduler().get_ticks_of_month()) self.__init() self.run()
def initialize(self): super().initialize() SettlerInhabitantsChanged.broadcast(self, self.inhabitants) happiness = self.__get_data("happiness_init_value") if happiness is not None: self.get_component(StorageComponent).inventory.alter(RES.HAPPINESS, happiness) if self.has_status_icon: self.get_component(StorageComponent).inventory.add_change_listener( self._update_status_icon ) # give the user a month (about 30 seconds) to build a main square in range if self.owner.is_local_player: Scheduler().add_new_object(self._check_main_square_in_range, self, Scheduler().get_ticks_of_month(), loops=-1) self.__init() self.run()
def inhabitant_check(self): """Checks whether or not the population of this settler should increase or decrease""" change = 0 if self.happiness > self.session.db.get_settler_happiness_increase_requirement() and \ self.inhabitants < self.inhabitants_max: change = 1 self.log.debug("%s: inhabitants increase to %s", self, self.inhabitants) elif self.happiness < self.session.db.get_settler_happiness_decrease_limit() and \ self.inhabitants > 1: change = -1 self.log.debug("%s: inhabitants decrease to %s", self, self.inhabitants) if change != 0: # see http://wiki.unknown-horizons.org/w/Supply_citizens_with_resources self.get_component(Producer).alter_production_time( 6.0/7.0 * math.log( 1.5 * (self.inhabitants + 1.2) ) ) self.inhabitants += change SettlerInhabitantsChanged.broadcast(self, change) self._changed()
def inhabitant_check(self): """Checks whether or not the population of this settler should increase or decrease""" sad = self.session.db.get_lower_happiness_limit() happy = self.session.db.get_upper_happiness_limit() change = 0 if self.happiness > happy and self.inhabitants < self.inhabitants_max: change = 1 self.log.debug("%s: inhabitants increase to %s", self, self.inhabitants) elif self.happiness < sad and self.inhabitants > 1: change = -1 self.log.debug("%s: inhabitants decrease to %s", self, self.inhabitants) if change != 0: # see http://wiki.unknown-horizons.org/w/Supply_citizens_with_resources self.get_component(Producer).alter_production_time( 6.0 / 7.0 * math.log( 1.5 * (self.inhabitants + 1.2) ) ) self.inhabitants += change SettlerInhabitantsChanged.broadcast(self, change) self._changed()
def end(self): HoverSettlementChanged.unsubscribe(self._on_hover_settlement_change) SettlerInhabitantsChanged.unsubscribe(self._on_settler_inhabitant_change) ResourceBarResize.unsubscribe(self._on_resourcebar_resize)
def remove(self): SettlerInhabitantsChanged.broadcast(self, -self.inhabitants) UpgradePermissionsChanged.unsubscribe( self._on_change_upgrade_permissions, sender=self.settlement) super(Settler, self).remove()
def remove(self): SettlerInhabitantsChanged.broadcast(self, -self.inhabitants) UpgradePermissionsChanged.unsubscribe(self._on_change_upgrade_permissions, sender=self.settlement) super(Settler, self).remove()
def __init__(self, session, gui): super(IngameGui, self).__init__() self.session = session assert isinstance(self.session, horizons.session.Session) self.main_gui = gui self.main_widget = None self.tabwidgets = {} self.settlement = None self.resource_source = None self.resources_needed, self.resources_usable = {}, {} self._old_menu = None self.widgets = LazyWidgetsDict(self.styles, center_widgets=False) self.cityinfo = self.widgets['city_info'] self.cityinfo.child_finder = PychanChildFinder(self.cityinfo) self.logbook = LogBook(self.session) self.message_widget = MessageWidget(self.session) self.players_overview = PlayersOverview(self.session) self.players_settlements = PlayersSettlements(self.session) self.players_ships = PlayersShips(self.session) # self.widgets['minimap'] is the guichan gui around the actual minimap, # which is saved in self.minimap minimap = self.widgets['minimap'] minimap.position_technique = "right+0:top+0" icon = minimap.findChild(name="minimap") self.minimap = Minimap(icon, targetrenderer=horizons.globals.fife.targetrenderer, imagemanager=horizons.globals.fife.imagemanager, session=self.session, view=self.session.view) def speed_up(): SpeedUpCommand().execute(self.session) def speed_down(): SpeedDownCommand().execute(self.session) minimap.mapEvents({ 'zoomIn' : self.session.view.zoom_in, 'zoomOut' : self.session.view.zoom_out, 'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right), 'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left), 'speedUp' : speed_up, 'speedDown' : speed_down, 'destroy_tool' : self.session.toggle_destroy_tool, 'build' : self.show_build_menu, 'diplomacyButton' : self.show_diplomacy_menu, 'gameMenuButton' : self.main_gui.toggle_pause, 'logbook' : self.logbook.toggle_visibility }) minimap.show() #minimap.position_technique = "right+15:top+153" self.widgets['tooltip'].hide() self.resource_overview = ResourceOverviewBar(self.session) ResourceBarResize.subscribe(self._on_resourcebar_resize) # Register for messages SettlerUpdate.subscribe(self._on_settler_level_change) SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change) HoverSettlementChanged.subscribe(self._cityinfo_set)
def __init__(self, session, gui): super(IngameGui, self).__init__() self.session = session assert isinstance(self.session, horizons.session.Session) self.main_gui = gui self.main_widget = None self.tabwidgets = {} self.settlement = None self.resource_source = None self.resources_needed, self.resources_usable = {}, {} self._old_menu = None self.widgets = LazyWidgetsDict(self.styles, center_widgets=False) self.cityinfo = self.widgets['city_info'] self.cityinfo.child_finder = PychanChildFinder(self.cityinfo) self.logbook = LogBook(self.session) self.message_widget = MessageWidget(self.session) self.players_overview = PlayersOverview(self.session) self.players_settlements = PlayersSettlements(self.session) self.players_ships = PlayersShips(self.session) # self.widgets['minimap'] is the guichan gui around the actual minimap, # which is saved in self.minimap minimap = self.widgets['minimap'] minimap.position_technique = "right+0:top+0" icon = minimap.findChild(name="minimap") self.minimap = Minimap( icon, targetrenderer=horizons.globals.fife.targetrenderer, imagemanager=horizons.globals.fife.imagemanager, session=self.session, view=self.session.view) def speed_up(): SpeedUpCommand().execute(self.session) def speed_down(): SpeedDownCommand().execute(self.session) minimap.mapEvents({ 'zoomIn': self.session.view.zoom_in, 'zoomOut': self.session.view.zoom_out, 'rotateRight': Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right), 'rotateLeft': Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left), 'speedUp': speed_up, 'speedDown': speed_down, 'destroy_tool': self.session.toggle_destroy_tool, 'build': self.show_build_menu, 'diplomacyButton': self.show_diplomacy_menu, 'gameMenuButton': self.main_gui.toggle_pause, 'logbook': self.logbook.toggle_visibility }) minimap.show() #minimap.position_technique = "right+15:top+153" self.widgets['tooltip'].hide() self.resource_overview = ResourceOverviewBar(self.session) ResourceBarResize.subscribe(self._on_resourcebar_resize) # Register for messages SettlerUpdate.subscribe(self._on_settler_level_change) SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change) HoverSettlementChanged.subscribe(self._cityinfo_set)
def __init__(self, session, gui): super(IngameGui, self).__init__() self.session = session assert isinstance(self.session, horizons.session.Session) self.main_gui = gui self.main_widget = None self.tabwidgets = {} self.settlement = None self.resource_source = None self.resources_needed, self.resources_usable = {}, {} self._old_menu = None self.widgets = LazyWidgetsDict(self.styles, center_widgets=False) cityinfo = self.widgets['city_info'] cityinfo.child_finder = PychanChildFinder(cityinfo) # special settings for really small resolutions #TODO explain what actually happens width = horizons.main.fife.engine_settings.getScreenWidth() x = 'center' y = 'top' x_offset = +15 y_offset = +4 if width < 800: x = 'left' x_offset = 10 y_offset = +66 elif width < 1020: x_offset = (1050 - width) / 2 cityinfo.position_technique = "%s%+d:%s%+d" % (x, x_offset, y, y_offset) # usually "center-10:top+4" self.logbook = LogBook(self.session) self.message_widget = MessageWidget(self.session) self.players_overview = PlayersOverview(self.session) self.players_settlements = PlayersSettlements(self.session) self.players_ships = PlayersShips(self.session) self.scenario_chooser = ScenarioChooser(self.session) # self.widgets['minimap'] is the guichan gui around the actual minimap, # which is saved in self.minimap minimap = self.widgets['minimap'] minimap.position_technique = "right+0:top+0" icon = minimap.findChild(name="minimap") self.minimap = Minimap(icon, targetrenderer=horizons.main.fife.targetrenderer, imagemanager=horizons.main.fife.imagemanager, session=self.session, view=self.session.view) def speed_up(): SpeedUpCommand().execute(self.session) def speed_down(): SpeedDownCommand().execute(self.session) minimap.mapEvents({ 'zoomIn' : self.session.view.zoom_in, 'zoomOut' : self.session.view.zoom_out, 'rotateRight' : Callback.ChainedCallbacks(self.session.view.rotate_right, self.minimap.rotate_right), 'rotateLeft' : Callback.ChainedCallbacks(self.session.view.rotate_left, self.minimap.rotate_left), 'speedUp' : speed_up, 'speedDown' : speed_down, 'destroy_tool' : self.session.toggle_destroy_tool, 'build' : self.show_build_menu, 'diplomacyButton' : self.show_diplomacy_menu, 'gameMenuButton' : self.main_gui.toggle_pause, 'logbook' : self.logbook.toggle_visibility }) minimap.show() #minimap.position_technique = "right+15:top+153" self.widgets['tooltip'].hide() self.resource_overview = ResourceOverviewBar(self.session) ResourceBarResize.subscribe(self._on_resourcebar_resize) # map buildings to build functions calls with their building id. # This is necessary because BuildTabs have no session. self.callbacks_build = dict() for building_id in Entities.buildings.iterkeys(): self.callbacks_build[building_id] = Callback(self._build, building_id) # Register for messages SettlerUpdate.subscribe(self._on_settler_level_change) SettlerInhabitantsChanged.subscribe(self._on_settler_inhabitant_change) HoverSettlementChanged.subscribe(self._cityinfo_set)
def end(self): HoverSettlementChanged.unsubscribe(self._on_hover_settlement_change) SettlerInhabitantsChanged.unsubscribe( self._on_settler_inhabitant_change) ResourceBarResize.unsubscribe(self._on_resourcebar_resize)