def start(self, clanCache): if self.isStarted(): LOG_WARNING('Fort provider already is ready') return else: self.__initial |= FORT_PROVIDER_INITIAL_FLAGS.STARTED self.__clan = weakref.proxy(clanCache) self.__listeners = _ClientFortListeners() self.__keeper = FortSubscriptionKeeper() self.__keeper.onAutoUnsubscribed += self.__onAutoUnsubscribed fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived += self.__onFortResponseReceived fortMgr.onFortUpdateReceived += self.__onFortUpdateReceived fortMgr.onFortStateChanged += self.__onFortStateChanged else: LOG_ERROR('Fort manager is not found') g_lobbyContext.getServerSettings().onServerSettingsChange += self.__onServerSettingChanged g_playerEvents.onCenterIsLongDisconnected += self.__onCenterIsLongDisconnected self.__controller = controls.createInitial() self.__controller.init(self.__clan, self.__listeners) states.create(self) if not g_lobbyContext.getServerSettings().isFortsEnabled() and self.__cachedState is not None: if self.__cachedState.getStateID() not in (CLIENT_FORT_STATE.UNSUBSCRIBED, CLIENT_FORT_STATE.DISABLED): SystemMessages.pushI18nMessage(I18N_SM.FORTIFICATION_NOTIFICATION_TURNEDOFF, type=SystemMessages.SM_TYPE.Warning) showFortDisabledDialog() return
def _addFortListeners(self): super(FortController, self)._addFortListeners() fort = self.getFort() if not fort: LOG_ERROR('No fort to subscribe') return fort.onBuildingChanged += self.__fort_onBuildingChanged fort.onTransport += self.__fort_onTransport fort.onDirectionOpened += self.__fort_onDirectionOpened fort.onDirectionClosed += self.__fort_onDirectionClosed fort.onDirectionLockChanged += self.__fort_onDirectionLockChanged fort.onStateChanged += self.__fort_onStateChanged fort.onOrderChanged += self.__fort_onOrderChanged fort.onDossierChanged += self.__fort_onDossierChanged fort.onPlayerAttached += self.__fort_onPlayerAttached fort.onSettingCooldown += self.__fort_onSettingCooldown fort.onPeripheryChanged += self.__fort_onPeripheryChanged fort.onDefenceHourChanged += self.__fort_onDefenceHourChanged fort.onOffDayChanged += self.__fort_onOffDayChanged fort.onVacationChanged += self.__fort_onVacationChanged fort.onFavoritesChanged += self.__fort_onFavoritesChanged fort.onEnemyClanCardReceived += self.__fort_onEnemyClanCardReceived fort.onShutdownDowngrade += self.__fort_onShutdownDowngrade fort.onDefenceHourShutdown += self.__fort_onDefenceHourShutdown fort.onEmergencyRestore += self.__fort_onEmergencyRestore fort.onConsumablesChanged += self.__fort_onConsumablesChanged fort.onDefenceHourActivated += self.__fort_onDefenceHourActivated fortMgr = getClientFortMgr() if not fortMgr: LOG_ERROR('No fort manager to subscribe') return fortMgr.onFortUpdateReceived += self.__fortMgr_onFortUpdateReceived fortMgr.onFortPublicInfoReceived += self.__fortMgr_onFortPublicInfoReceived self.__refreshCooldowns(False) self.__processDefencePeriodCallback()
def _removeFortListeners(self): self.__cancelCooldownCallback() self.__cancelDefencePeriodCallback() fort = self.getFort() if fort: fort.onBuildingChanged -= self.__fort_onBuildingChanged fort.onTransport -= self.__fort_onTransport fort.onDirectionOpened -= self.__fort_onDirectionOpened fort.onDirectionClosed -= self.__fort_onDirectionClosed fort.onDirectionLockChanged -= self.__fort_onDirectionLockChanged fort.onStateChanged -= self.__fort_onStateChanged fort.onOrderChanged -= self.__fort_onOrderChanged fort.onDossierChanged -= self.__fort_onDossierChanged fort.onPlayerAttached -= self.__fort_onPlayerAttached fort.onSettingCooldown -= self.__fort_onSettingCooldown fort.onPeripheryChanged -= self.__fort_onPeripheryChanged fort.onDefenceHourChanged -= self.__fort_onDefenceHourChanged fort.onOffDayChanged -= self.__fort_onOffDayChanged fort.onVacationChanged -= self.__fort_onVacationChanged fort.onFavoritesChanged -= self.__fort_onFavoritesChanged fort.onEnemyClanCardReceived -= self.__fort_onEnemyClanCardReceived fort.onShutdownDowngrade -= self.__fort_onShutdownDowngrade fort.onDefenceHourShutdown -= self.__fort_onDefenceHourShutdown fort.onEmergencyRestore -= self.__fort_onEmergencyRestore fort.onConsumablesChanged -= self.__fort_onConsumablesChanged fort.onDefenceHourActivated -= self.__fort_onDefenceHourActivated fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortUpdateReceived -= self.__fortMgr_onFortUpdateReceived fortMgr.onFortPublicInfoReceived -= self.__fortMgr_onFortPublicInfoReceived super(FortController, self)._removeFortListeners()
def _stopListening(self): """ Unsubscribe from player events. """ g_eventsCache.companies.onCompanyStateChanged -= self.onCompanyStateChanged g_playerEvents.onPrebattleJoined -= self.pe_onPrebattleJoined g_playerEvents.onPrebattleJoinFailure -= self.pe_onPrebattleJoinFailure g_playerEvents.onPrebattleLeft -= self.pe_onPrebattleLeft g_playerEvents.onKickedFromPrebattle -= self.pe_onKickedFromPrebattle g_playerEvents.onArenaJoinFailure -= self.pe_onArenaJoinFailure g_playerEvents.onKickedFromArena -= self.pe_onKickedFromArena g_playerEvents.onPrebattleAutoInvitesChanged -= self.pe_onPrebattleAutoInvitesChanged game_control.g_instance.captcha.onCaptchaInputCanceled -= self.captcha_onCaptchaInputCanceled game_control.g_instance.gameSession.onTimeTillBan -= self.gs_onTillBanNotification game_control.g_instance.rentals.onRentChangeNotify -= self.rc_onRentChange game_control.g_instance.igr.onIgrTypeChanged -= self.igr_onRoomChange unitMgr = getClientUnitMgr() if unitMgr: unitMgr.onUnitJoined -= self.unitMgr_onUnitJoined unitMgr.onUnitLeft -= self.unitMgr_onUnitLeft unitMgr.onUnitRestored -= self.unitMgr_onUnitRestored unitMgr.onUnitErrorReceived -= self.unitMgr_onUnitErrorReceived unitBrowser = getClientUnitBrowser() if unitBrowser: unitBrowser.onErrorReceived -= self.unitBrowser_onErrorReceived fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived -= self.fortMgr_onFortResponseReceived fortMgr.onFortStateChanged -= self.forMgr_onFortStateChanged g_prbCtrlEvents.clear()
def __stopListening(self): """ Unsubscribe from player events. """ g_eventsCache.companies.onCompanyStateChanged -= self.onCompanyStateChanged g_playerEvents.onPrebattleJoined -= self.pe_onPrebattleJoined g_playerEvents.onPrebattleJoinFailure -= self.pe_onPrebattleJoinFailure g_playerEvents.onPrebattleLeft -= self.pe_onPrebattleLeft g_playerEvents.onKickedFromPrebattle -= self.pe_onKickedFromPrebattle g_playerEvents.onArenaJoinFailure -= self.pe_onArenaJoinFailure g_playerEvents.onKickedFromArena -= self.pe_onKickedFromArena g_playerEvents.onPrebattleAutoInvitesChanged -= self.pe_onPrebattleAutoInvitesChanged game_control.g_instance.gameSession.onTimeTillBan -= self.gs_onTillBanNotification game_control.g_instance.rentals.onRentChangeNotify -= self.rc_onRentChange game_control.g_instance.igr.onIgrTypeChanged -= self.igr_onRoomChange unitMgr = prb_getters.getClientUnitMgr() if unitMgr: unitMgr.onUnitJoined -= self.unitMgr_onUnitJoined unitMgr.onUnitLeft -= self.unitMgr_onUnitLeft unitMgr.onUnitRestored -= self.unitMgr_onUnitRestored unitMgr.onUnitErrorReceived -= self.unitMgr_onUnitErrorReceived unitBrowser = prb_getters.getClientUnitBrowser() if unitBrowser: unitBrowser.onErrorReceived -= self.unitBrowser_onErrorReceived fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived -= self.fortMgr_onFortResponseReceived fortMgr.onFortStateChanged -= self.forMgr_onFortStateChanged g_prbCtrlEvents.clear()
def init(self): fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived += self._fortMgr_onFortResponseReceived fortMgr.onFortUpdateReceived += self._fortMgr_onFortUpdateReceived else: LOG_DEBUG('Fort manager is not defined')
def stop(self): if not self.isStarted(): LOG_DEBUG('Fort provider already is stopped') return self.__initial = 0 self.clear() fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived -= self.__onFortResponseReceived fortMgr.onFortUpdateReceived -= self.__onFortUpdateReceived fortMgr.onFortStateChanged -= self.__onFortStateChanged g_playerEvents.onCenterIsLongDisconnected -= self.__onCenterIsLongDisconnected
def stop(self): if not self.isStarted(): LOG_DEBUG('Fort provider already is stopped') return self.__cachedState = self.__state self.__initial = 0 self.clear() fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived -= self.__onFortResponseReceived fortMgr.onFortUpdateReceived -= self.__onFortUpdateReceived fortMgr.onFortStateChanged -= self.__onFortStateChanged g_playerEvents.onCenterIsLongDisconnected -= self.__onCenterIsLongDisconnected g_lobbyContext.getServerSettings().onServerSettingsChange -= self.__onServerSettingChanged
def _startListening(self): """ Subscribes to player events. """ g_playerEvents.onPrebattleJoined += self.pe_onPrebattleJoined g_playerEvents.onPrebattleJoinFailure += self.pe_onPrebattleJoinFailure g_playerEvents.onPrebattleLeft += self.pe_onPrebattleLeft g_playerEvents.onKickedFromPrebattle += self.pe_onKickedFromPrebattle g_playerEvents.onArenaJoinFailure += self.pe_onArenaJoinFailure g_playerEvents.onKickedFromArena += self.pe_onKickedFromArena g_playerEvents.onPrebattleAutoInvitesChanged += self.pe_onPrebattleAutoInvitesChanged gameSession = game_control.g_instance.gameSession captchaCtrl = game_control.g_instance.captcha rentCtr = game_control.g_instance.rentals igrCtr = game_control.g_instance.igr if gameSession.lastBanMsg is not None: self.gs_onTillBanNotification(*gameSession.lastBanMsg) gameSession.onTimeTillBan += self.gs_onTillBanNotification rentCtr.onRentChangeNotify += self.rc_onRentChange captchaCtrl.onCaptchaInputCanceled += self.captcha_onCaptchaInputCanceled igrCtr.onIgrTypeChanged += self.igr_onRoomChange unitMgr = getClientUnitMgr() if unitMgr: unitMgr.onUnitJoined += self.unitMgr_onUnitJoined unitMgr.onUnitLeft += self.unitMgr_onUnitLeft unitMgr.onUnitRestored += self.unitMgr_onUnitRestored unitMgr.onUnitErrorReceived += self.unitMgr_onUnitErrorReceived else: LOG_ERROR('Unit manager is not defined') unitBrowser = getClientUnitBrowser() if unitBrowser: unitBrowser.onErrorReceived += self.unitBrowser_onErrorReceived else: LOG_ERROR('Unit browser is not defined') fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortStateChanged += self.forMgr_onFortStateChanged fortMgr.onFortResponseReceived += self.fortMgr_onFortResponseReceived else: LOG_ERROR('Fort manager is not defined') g_prbCtrlEvents.onPrebattleIntroModeJoined += self.ctrl_onPrebattleIntroModeJoined g_prbCtrlEvents.onPrebattleIntroModeLeft += self.ctrl_onPrebattleIntroModeLeft g_prbCtrlEvents.onPrebattleInited += self.ctrl_onPrebattleInited g_prbCtrlEvents.onUnitIntroModeJoined += self.ctrl_onUnitIntroModeJoined g_prbCtrlEvents.onUnitIntroModeLeft += self.ctrl_onUnitIntroModeLeft g_prbCtrlEvents.onPreQueueFunctionalCreated += self.ctrl_onPreQueueFunctionalCreated g_prbCtrlEvents.onPreQueueFunctionalDestroyed += self.ctrl_onPreQueueFunctionalDestroyed g_eventsCache.companies.onCompanyStateChanged += self.onCompanyStateChanged return
def create(self, ctx, callback=None): if not prb_getters.hasModalEntity() or ctx.isForced(): fortMgr = getClientFortMgr() if fortMgr: ctx.startProcessing(callback=callback) fortMgr.createSortie(ctx.getDivisionLevel()) else: LOG_ERROR('Fort provider is not defined') else: LOG_ERROR( 'First, player has to confirm exit from the current prebattle/unit' ) if callback is not None: callback(False) return
def _startListening(self): """ Subscribes to player events. """ g_playerEvents.onPrebattleJoined += self.pe_onPrebattleJoined g_playerEvents.onPrebattleJoinFailure += self.pe_onPrebattleJoinFailure g_playerEvents.onPrebattleLeft += self.pe_onPrebattleLeft g_playerEvents.onKickedFromPrebattle += self.pe_onKickedFromPrebattle g_playerEvents.onArenaJoinFailure += self.pe_onArenaJoinFailure g_playerEvents.onKickedFromArena += self.pe_onKickedFromArena g_playerEvents.onPrebattleAutoInvitesChanged += self.pe_onPrebattleAutoInvitesChanged gameSession = game_control.g_instance.gameSession captchaCtrl = game_control.g_instance.captcha rentCtr = game_control.g_instance.rentals igrCtr = game_control.g_instance.igr if gameSession.lastBanMsg is not None: self.gs_onTillBanNotification(*gameSession.lastBanMsg) gameSession.onTimeTillBan += self.gs_onTillBanNotification rentCtr.onRentChangeNotify += self.rc_onRentChange captchaCtrl.onCaptchaInputCanceled += self.captcha_onCaptchaInputCanceled igrCtr.onIgrTypeChanged += self.igr_onRoomChange unitMgr = getClientUnitMgr() if unitMgr: unitMgr.onUnitJoined += self.unitMgr_onUnitJoined unitMgr.onUnitLeft += self.unitMgr_onUnitLeft unitMgr.onUnitRestored += self.unitMgr_onUnitRestored unitMgr.onUnitErrorReceived += self.unitMgr_onUnitErrorReceived else: LOG_ERROR('Unit manager is not defined') unitBrowser = getClientUnitBrowser() if unitBrowser: unitBrowser.onErrorReceived += self.unitBrowser_onErrorReceived else: LOG_ERROR('Unit browser is not defined') fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortStateChanged += self.forMgr_onFortStateChanged fortMgr.onFortResponseReceived += self.fortMgr_onFortResponseReceived else: LOG_ERROR('Fort manager is not defined') g_prbCtrlEvents.onPrebattleIntroModeJoined += self.ctrl_onPrebattleIntroModeJoined g_prbCtrlEvents.onPrebattleIntroModeLeft += self.ctrl_onPrebattleIntroModeLeft g_prbCtrlEvents.onPrebattleInited += self.ctrl_onPrebattleInited g_prbCtrlEvents.onUnitIntroModeJoined += self.ctrl_onUnitIntroModeJoined g_prbCtrlEvents.onUnitIntroModeLeft += self.ctrl_onUnitIntroModeLeft g_prbCtrlEvents.onPreQueueFunctionalCreated += self.ctrl_onPreQueueFunctionalCreated g_prbCtrlEvents.onPreQueueFunctionalDestroyed += self.ctrl_onPreQueueFunctionalDestroyed g_eventsCache.companies.onCompanyStateChanged += self.onCompanyStateChanged
def __startListening(self): """ Subscribes to player and system events. """ g_playerEvents.onPrebattleJoined += self.pe_onPrebattleJoined g_playerEvents.onPrebattleJoinFailure += self.pe_onPrebattleJoinFailure g_playerEvents.onPrebattleLeft += self.pe_onPrebattleLeft g_playerEvents.onKickedFromPrebattle += self.pe_onKickedFromPrebattle g_playerEvents.onArenaCreated += self.pe_onArenaCreated g_playerEvents.onArenaJoinFailure += self.pe_onArenaJoinFailure g_playerEvents.onKickedFromArena += self.pe_onKickedFromArena g_playerEvents.onPrebattleAutoInvitesChanged += self.pe_onPrebattleAutoInvitesChanged if self.gameSession.lastBanMsg is not None: self.gs_onTillBanNotification(*self.gameSession.lastBanMsg) self.gameSession.onTimeTillBan += self.gs_onTillBanNotification self.rentals.onRentChangeNotify += self.rc_onRentChange self.igrCtrl.onIgrTypeChanged += self.igr_onRoomChange unitMgr = prb_getters.getClientUnitMgr() if unitMgr: unitMgr.onUnitJoined += self.unitMgr_onUnitJoined unitMgr.onUnitLeft += self.unitMgr_onUnitLeft unitMgr.onUnitRestored += self.unitMgr_onUnitRestored unitMgr.onUnitErrorReceived += self.unitMgr_onUnitErrorReceived else: LOG_ERROR('Unit manager is not defined') unitBrowser = prb_getters.getClientUnitBrowser() if unitBrowser: unitBrowser.onErrorReceived += self.unitBrowser_onErrorReceived else: LOG_ERROR('Unit browser is not defined') fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortStateChanged += self.forMgr_onFortStateChanged fortMgr.onFortResponseReceived += self.fortMgr_onFortResponseReceived else: LOG_ERROR('Fort manager is not defined') g_prbCtrlEvents.onLegacyIntroModeJoined += self.ctrl_onLegacyIntroModeJoined g_prbCtrlEvents.onLegacyIntroModeLeft += self.ctrl_onLegacyIntroModeLeft g_prbCtrlEvents.onLegacyInited += self.ctrl_onLegacyInited g_prbCtrlEvents.onUnitIntroModeJoined += self.ctrl_onUnitIntroModeJoined g_prbCtrlEvents.onUnitIntroModeLeft += self.ctrl_onUnitIntroModeLeft g_prbCtrlEvents.onUnitBrowserModeLeft += self.ctrl_onUnitBrowserModeLeft g_prbCtrlEvents.onPreQueueJoined += self.ctrl_onPreQueueJoined g_prbCtrlEvents.onPreQueueLeft += self.ctrl_onPreQueueLeft self.eventsCache.companies.onCompanyStateChanged += self.ec_onCompanyStateChanged return
def start(self, clanCache): if self.isStarted(): LOG_WARNING('Fort provider already is ready') return self.__initial |= FORT_PROVIDER_INITIAL_FLAGS.STARTED self.__clan = weakref.proxy(clanCache) self.__listeners = _ClientFortListeners() self.__keeper = FortSubscriptionKeeper() self.__keeper.onAutoUnsubscribed += self.__onAutoUnsubscribed fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived += self.__onFortResponseReceived fortMgr.onFortUpdateReceived += self.__onFortUpdateReceived fortMgr.onFortStateChanged += self.__onFortStateChanged else: LOG_ERROR('Fort manager is not found') g_playerEvents.onCenterIsLongDisconnected += self.__onCenterIsLongDisconnected self.__controller = controls.createInitial() self.__controller.init(self.__clan, self.__listeners) states.create(self)
def fini(self): fortMgr = getClientFortMgr() if fortMgr: fortMgr.onFortResponseReceived -= self._fortMgr_onFortResponseReceived fortMgr.onFortUpdateReceived -= self._fortMgr_onFortUpdateReceived super(SimpleFortRequester, self).fini()
def getSender(self): return getClientFortMgr()