def __init__(self, lessonId, avatar, entities, bootcampGui): super(StateInBattle, self).__init__(STATE.IN_BATTLE) self.__assistant = BattleAssistant(avatar, lessonId, entities, bootcampGui) self.__lessonId = lessonId self.__avatar = avatar self.__scenery = Scenery(lessonId, self.__assistant) self.__oldSpaceEnv = None return
class StateInBattle(AbstractState): soundController = dependency.descriptor(ISoundsController) def __init__(self, lessonId, avatar, entities, bootcampGui, soundAssistant): super(StateInBattle, self).__init__(STATE.IN_BATTLE) self.__assistant = BattleAssistant(avatar, lessonId, entities, bootcampGui, soundAssistant) self.__soundAssistant = soundAssistant self.__lessonId = lessonId self.__avatar = avatar self.__scenery = Scenery(lessonId, self.__assistant) self.__oldSpaceEnv = None self.__weaver = aop.Weaver() return def handleKeyEvent(self, event): return True def onKickedFromArena(self, reasonCode): arenaID = BigWorld.player().arenaUniqueID g_bootcamp.setBattleResults(arenaID, BOOTCAMP_BATTLE_RESULT_MESSAGE.FAILURE, reasonCode) g_bootcampEvents.onUIStateChanged(UI_STATE.STOP) def onBattleAction(self, actionId, actionParams): self.__assistant.onAction(actionId, actionParams) def stopScenery(self): if self.__scenery is not None: self.__scenery.stop() self.__scenery.destroy() self.__scenery = None return def _doActivate(self): weave(self.__weaver) g_bootcampEvents.onUIStateChanged += self._onUIStateChanged g_playerEvents.onKickedFromArena += self.onKickedFromArena g_playerEvents.onRoundFinished += self.__onRoundFinished g_playerEvents.onAvatarBecomeNonPlayer += self.__onAvatarBecomeNonPlayer self.__assistant.start() self.__scenery.start() self.__assistant.getMarkers().afterScenery() self.__oldSpaceEnv = self.soundController.setEnvForSpace( GuiGlobalSpaceID.BATTLE, BCBattleSpaceEnv) self.__finishAnimationCompleted = True player = BigWorld.player() if player is not None and player.inputHandler is not None: player.inputHandler.onCameraChanged += self.__onCameraChanged return def _onUIStateChanged(self, state): if state == UI_STATE.STOP: self.stopScenery() def _doDeactivate(self): if self.__oldSpaceEnv is not None: self.soundController.setEnvForSpace(GuiGlobalSpaceID.BATTLE, self.__oldSpaceEnv) g_bootcampEvents.onUIStateChanged -= self._onUIStateChanged g_playerEvents.onKickedFromArena -= self.onKickedFromArena g_playerEvents.onRoundFinished -= self.__onRoundFinished g_playerEvents.onAvatarBecomeNonPlayer -= self.__onAvatarBecomeNonPlayer self._onUIStateChanged(UI_STATE.STOP) self.onAvatarBecomeNonPlayer() if self.__assistant is not None: self.__assistant = None self.__weaver.clear() return def __onCameraChanged(self, cameraName, currentVehicleId=None): if cameraName == 'sniper': if not g_bootcamp.isSniperModeUsed(): camera = BigWorld.player().inputHandler.ctrl.camera camera.setMaxZoom() g_bootcamp.setSniperModeUsed(True) elif cameraName == 'postmortem': g_bootcampEvents.onUIStateChanged(UI_STATE.STOP) def __onRoundFinished(self, winnerTeam, reason): if BattleReplay.g_replayCtrl.isPlaying: return g_bootcampEvents.onUIStateChanged(UI_STATE.STOP) g_bootcampEvents.hideGUIForWinMessage() asBattleResultType = BOOTCAMP_BATTLE_RESULT_MESSAGE.DEFEAT if winnerTeam == BigWorld.player().team: asBattleResultType = BOOTCAMP_BATTLE_RESULT_MESSAGE.VICTORY elif winnerTeam == 0: asBattleResultType = BOOTCAMP_BATTLE_RESULT_MESSAGE.DRAW g_bootcamp.setBattleResults(BigWorld.player().arenaUniqueID, asBattleResultType, reason) if asBattleResultType == BOOTCAMP_BATTLE_RESULT_MESSAGE.VICTORY: self.__soundAssistant.playSound2D('vo_bc_victory') elif asBattleResultType == BOOTCAMP_BATTLE_RESULT_MESSAGE.DEFEAT: self.__soundAssistant.playSound2D('vo_bc_defeat') elif asBattleResultType == BOOTCAMP_BATTLE_RESULT_MESSAGE.DRAW: self.__soundAssistant.playSound2D('vo_bc_draw') def __onAvatarBecomeNonPlayer(self): player = BigWorld.player() if player is not None and player.inputHandler is not None: player.inputHandler.onCameraChanged -= self.__onCameraChanged g_bootcampEvents.onUIStateChanged(UI_STATE.STOP) self.__avatar = None self.stopScenery() return
class StateInBattle(AbstractState): soundController = dependency.instance(ISoundsController) def __init__(self, lessonId, avatar, entities, bootcampGui): super(StateInBattle, self).__init__(STATE.IN_BATTLE) self.__assistant = BattleAssistant(avatar, lessonId, entities, bootcampGui) self.__lessonId = lessonId self.__avatar = avatar self.__scenery = Scenery(lessonId, self.__assistant) self.__oldSpaceEnv = None self.__weaver = aop.Weaver() return def handleKeyEvent(self, event): return True def onKickedFromArena(self, reasonCode): arenaID = BigWorld.player().arenaUniqueID g_bootcamp.setBattleResults(arenaID, BOOTCAMP_BATTLE_RESULT_MESSAGE.FAILURE, reasonCode) def onBattleAction(self, actionId, actionParams): self.__assistant.onAction(actionId, actionParams) def stopScenery(self): if self.__scenery is not None: self.__scenery.stop() self.__scenery.destroy() self.__scenery = None return def onAvatarReceiveBattleResults(self, isSuccess, data): if self.__finishAnimationCompleted: return False self.__battleResultsData['isSuccess'] = isSuccess self.__battleResultsData['data'] = data def _onBattleFinishAnimationComplete(self): self.__finishAnimationCompleted = True if self.__battleResultsData: BigWorld.player().receiveBattleResults( isSuccess=self.__battleResultsData['isSuccess'], data=self.__battleResultsData['data']) def _doActivate(self): weave(self.__weaver, self) g_bootcampEvents.onUIStateChanged += self._onUIStateChanged g_bootcampEvents.onBattleFinishAnimationComplete += self._onBattleFinishAnimationComplete g_playerEvents.onKickedFromArena += self.onKickedFromArena g_playerEvents.onRoundFinished += self.__onRoundFinished g_playerEvents.onAvatarBecomeNonPlayer += self.__onAvatarBecomeNonPlayer self.__assistant.start() self.__scenery.start() self.__assistant.getMarkers().afterScenery() self.__oldSpaceEnv = self.soundController.setEnvForSpace( app_settings.GUI_GLOBAL_SPACE_ID.BATTLE, BCBattleSpaceEnv) self.__battleResultsData = {} self.__finishAnimationCompleted = True player = BigWorld.player() if player is not None and player.inputHandler is not None: player.inputHandler.onCameraChanged += self.__onCameraChanged return def _onUIStateChanged(self, state): if state == UI_STATE.STOP: self.stopScenery() def _doDeactivate(self): if self.__oldSpaceEnv is not None: self.soundController.setEnvForSpace( app_settings.GUI_GLOBAL_SPACE_ID.BATTLE, self.__oldSpaceEnv) g_bootcampEvents.onUIStateChanged -= self._onUIStateChanged g_bootcampEvents.onBattleFinishAnimationComplete -= self._onBattleFinishAnimationComplete g_playerEvents.onKickedFromArena -= self.onKickedFromArena g_playerEvents.onRoundFinished -= self.__onRoundFinished g_playerEvents.onAvatarBecomeNonPlayer -= self.__onAvatarBecomeNonPlayer self._onUIStateChanged(UI_STATE.STOP) self.onAvatarBecomeNonPlayer() if self.__assistant is not None: self.__assistant = None self.__battleResultsData.clear() self.__weaver.clear() return def __onCameraChanged(self, cameraName, currentVehicleId): if cameraName == 'sniper': if not g_bootcamp.isSniperModeUsed(): camera = BigWorld.player().inputHandler.ctrl.camera camera.setMaxZoom() g_bootcamp.setSniperModeUsed(True) def __onRoundFinished(self, winnerTeam, reason): if BattleReplay.g_replayCtrl.isPlaying: return else: g_bootcampEvents.onUIStateChanged(UI_STATE.STOP) gui_event_dispatcher.toggleGUIVisibility() from gui.Scaleform.daapi.settings.views import VIEW_ALIAS from gui.shared import events, g_eventBus, EVENT_BUS_SCOPE asBattleResultType = BOOTCAMP_BATTLE_RESULT_MESSAGE.DEFEAT if winnerTeam == BigWorld.player().team: asBattleResultType = BOOTCAMP_BATTLE_RESULT_MESSAGE.VICTORY elif winnerTeam == 0: asBattleResultType = BOOTCAMP_BATTLE_RESULT_MESSAGE.DRAW g_bootcamp.setBattleResults(BigWorld.player().arenaUniqueID, asBattleResultType, reason) LOG_DEBUG('Show battle result final message.') g_eventBus.handleEvent( events.LoadViewEvent( VIEW_ALIAS.BOOTCAMP_BATTLE_FINISHED_WINDOW, None), EVENT_BUS_SCOPE.BATTLE) if asBattleResultType == BOOTCAMP_BATTLE_RESULT_MESSAGE.VICTORY: SoundGroups.g_instance.playSound2D('vo_bc_victory') elif asBattleResultType == BOOTCAMP_BATTLE_RESULT_MESSAGE.DEFEAT: SoundGroups.g_instance.playSound2D('vo_bc_defeat') elif asBattleResultType == BOOTCAMP_BATTLE_RESULT_MESSAGE.DRAW: SoundGroups.g_instance.playSound2D('vo_bc_draw') return def __onAvatarBecomeNonPlayer(self): player = BigWorld.player() if player is not None and player.inputHandler is not None: player.inputHandler.onCameraChanged -= self.__onCameraChanged if self.__assistant is not None: self.__assistant.stop() self.__avatar = None self.stopScenery() return
def __init__(self, lessonId, avatar): super(StateInBattle, self).__init__(STATE.IN_BATTLE) self.__assistant = BattleAssistant(avatar, lessonId) self.__oldSpaceEnv = None self.__weaver = aop.Weaver() return
class StateInBattle(AbstractState): soundController = dependency.instance(ISoundsController) def __init__(self, lessonId, avatar, entities, bootcampGui): super(StateInBattle, self).__init__(STATE.IN_BATTLE) self.__assistant = BattleAssistant(avatar, lessonId, entities, bootcampGui) self.__lessonId = lessonId self.__avatar = avatar self.__scenery = Scenery(lessonId, self.__assistant) self.__oldSpaceEnv = None return def handleKeyEvent(self, event): return True def _doActivate(self): g_bootcampEvents.onUIStateChanged += self._onUIStateChanged g_playerEvents.onKickedFromArena += self.onKickedFromArena self.__assistant.start() self.__scenery.start() self.__assistant.getMarkers().afterScenery() self.__oldSpaceEnv = self.soundController.setEnvForSpace( _SPACE_ID.BATTLE, BCBattleSpaceEnv) def onAvatarBecomeNonPlayer(self): if self.__assistant is not None: self.__assistant.stop() self.__avatar = None self.stopScenery() return def onKickedFromArena(self, reasonCode): BootcampTransition.start() arenaID = BigWorld.player().arenaUniqueID g_bootcamp.setBattleResults(arenaID, BOOTCAMP_BATTLE_RESULT_MESSAGE.FAILURE, reasonCode) def _doDeactivate(self): if self.__oldSpaceEnv is not None: self.soundController.setEnvForSpace(_SPACE_ID.BATTLE, self.__oldSpaceEnv) g_bootcampEvents.onUIStateChanged -= self._onUIStateChanged g_playerEvents.onKickedFromArena -= self.onKickedFromArena self._onUIStateChanged(UI_STATE.STOP) self.onAvatarBecomeNonPlayer() if self.__assistant is not None: self.__assistant = None return def onBattleAction(self, actionId, actionParams): self.__assistant.onAction(actionId, actionParams) def stopScenery(self): if self.__scenery is not None: self.__scenery.stop() self.__scenery.destroy() self.__scenery = None return def _onUIStateChanged(self, state): if state == UI_STATE.STOP: self.stopScenery()