def __init__(self, inputAxis, notControlledByUser, currentBattleMode): self.__mouseList = [MousePlaneDirection, MouseCursorDirection] self.__axisKeyBoard = [0.0] * 5 self.__axisExtra = [0.0] * 5 self.__lastAxis = [0.0] * 5 self.__lastKeyBoardAxis = [0.0] * 5 self.__resetAxis() self._notControlledByUser = notControlledByUser self.__battleMode = currentBattleMode self.__spline = None self.__smoothSpline = None self.__processor = None self.__inputAxis = inputAxis self._mouse = MouseInputProxy(self) self._kef = KeysTurnLikeMouse(self) self.__keyboard = KeyboardInput(self._kef.get_filter()) self.__keyboard.isMultiplySignal = False self.__gunner = GunnerInput(self) self._onSaveControls() self.__camDirection = Math.Vector3() InputMapping.g_instance.onSaveControls += self._onSaveControls GameEnvironment.getInput().eBattleModeChange += self.__eBattleModeChange ICMultiFunction = lambda : (self.__autopilotUpdate() if self._notControlledByUser else None) ICMultiUpdate.__init__(self, (0.1, self.__updateVisibleAxis), (0.1, ICMultiFunction)) return
def __init__(self, inputAxis, notControlledByUser): self._notControlledByUser = notControlledByUser self._forciblySendAxis = False self.__overlookCameraInput = cameraOverlookInput() InputMapping.g_instance.onSaveControls += self._onSaveControls GameEnvironment.getCamera( ).eZoomStateChanged += self.__zoomStateChanged GameEnvironment.getInput( ).eBattleModeChange += self.__eBattleModeChange self.__axisKeyBoard = [0.0] * 5 self.__axisJoy = [0.0] * 5 self.__axisExtra = [0.0] * 5 self.__lastAxis = [0.0] * 5 self._isSlipComp = False self.__battleMode = BATTLE_MODE.COMBAT_MODE self.__lastJoyMouseEvent = JoyMouseEvent() self.__mpp = MouseProfileProxy(self) planeType = getattr(BigWorld.player(), 'planeType', -1) self._mouse = getMouseInput(planeType)(self.__mpp) self.__gunner = getGunnerInput(planeType)(self.__mpp) self._kef = KeysTurnLikeMouse(self) self.__keyboard = KeyboardInput(self._kef.get_filter()) self.__keyboard.isMultiplySignal = False self.__joystick = JoystickExpertInput(self) self.__joystick.pushLastEvent() ICMultiFunction = lambda: (self.__autopilotUpdate() if self._notControlledByUser else None) joyMouseEventGenerator = lambda: (self.__generateMouseEvent() if self._altActivityState else None) ICMultiUpdate.__init__(self, (0.1, ICMultiFunction), (mouse_event_dt, joyMouseEventGenerator)) self._onSaveControls()
def __init__(self, *battleStates): self._targetID = -1 self._ownBattleStateTuple = battleStates self._currBattleState = None GameEnvironment.getInput( ).eBattleModeChange += self.__onBattleStateChange return
def _clearEvents(self): AircraftEngineStrategyPlayerBase._clearEvents(self) BigWorld.player( ).eUpdateEngineTemperature -= self.__updateEngineTemperature BigWorld.player().eEngineOverheat -= self.__onEngineOverheat GameEnvironment.g_instance.ePartStateChanging -= self.__onPartState GameEnvironment.getInput( ).eBattleModeChange -= self.__onBattleModeChange
def _init(self, interface): self._interface = interface self._battleMode = BATTLE_MODE.COMBAT_MODE self._owner.eTacticalRespawnEnd += self._onTacticalRespawn GameEnvironment.getInput( ).eBattleModeChange += self._onBattleModeChange self._updateCategoryDistances() self._updateCircleRadius()
def _destroy(self): self._owner.eTacticalRespawnEnd -= self._tacticalRespawn GameEnvironment.g_instance.eAvatarHealthChange -= self._hitEntity GameEnvironment.getInput( ).eAddProcessorListeners -= self._addInputListeners GameEnvironment.getInput( ).eBattleModeChange -= self.__onBattleModeChange self.__cppObj = None self._lockingAdapter.destroy() return
def __init__(self, owner, lockingAdapter): AvatarControllerBase.__init__(self, owner) self.__cppObj = None self._lockingAdapter = lockingAdapter self._owner.eTacticalRespawnEnd += self._tacticalRespawn GameEnvironment.g_instance.eAvatarHealthChange += self._hitEntity GameEnvironment.getInput( ).eAddProcessorListeners += self._addInputListeners GameEnvironment.getInput( ).eBattleModeChange += self.__onBattleModeChange return
def dispose(self): ICMultiUpdate.dispose(self) self.__gamePad.dispose() self.__keyboard.dispose() self.__gamePad = None self.__keyboard = None freeState = GameEnvironment.getCamera().stateObject(CameraState.Free) if freeState: freeState.setInvertVertical(False) InputMapping.g_instance.onSaveControls -= self._onSaveControls GameEnvironment.getInput().eBattleModeChange -= self.__eBattleModeChange return
def _sendMouseData(self): import BattleReplay if BattleReplay.isPlaying(): if self._inGame and not self._isExtraMode: self._updateCurrentRadius() return MouseInput._sendMouseData(self) if self._inGame and not self._isExtraMode: self._updateCurrentRadius() direction = self._cameraStrategy.cursorDirection direction = direction if not self._isExtraMode else self.__lastDirection self._profile.setCamDirection(direction) if not isValid(direction): print 'trap', direction, BigWorld.player().getRotation( ).getAxisZ() return dataDir, exAxis = self._prepareMousePackage(direction) up = self._cameraStrategy.cursorUp if not self._isExtraMode else Math.Vector3( 0, 1, 0) up = FloatArrayToTupleOfCInt16(up) self.__lastDirection = direction if dataDir != self._lastDataDir: self._profile.setBattleDirection(Math.Vector3(direction)) self._lastDataDir = dataDir timeSend = GameEnvironment.getInput().inputAxis.serverTime BigWorld.player().cell.sendMouseDirData(timeSend, dataDir) if up != self._lastUp: self._lastUp = up BigWorld.player().cell.sendMouseUp(up) if exAxis != self._lastExSpeed: self._lastExSpeed = exAxis BigWorld.player().cell.sendMouseExtRSpeed(exAxis)
def __freeOutAllButtonsOnDestroy(self): """ some chit. Need on switch InputSystem. """ buttons_cmd_list = [InputMapping.CMD_OVERLOOK_MOD, InputMapping.CMD_STATIC_MOD, InputMapping.CMD_TARGET_CAMERA] + self.__cmdDict.keys() commandProcessor = GameEnvironment.getInput().commandProcessor for cmd in buttons_cmd_list: commandProcessor.getCommand(cmd).isFired = False
def dispose(self): InputMapping.g_instance.onSaveControls -= self._onSaveControls GameEnvironment.getCamera( ).eZoomStateChanged -= self.__zoomStateChanged GameEnvironment.getInput( ).eBattleModeChange -= self.__eBattleModeChange ICMultiUpdate.dispose(self) self._mouse.dispose() self.__gunner.dispose() self._kef = KeysTurnLikeMouse(self) self.__joystick.dispose() self.__keyboard.dispose() self.__overlookCameraInput.dispose() self.__joystick = None self.__keyboard = None self.__overlookCameraInput = None return
def _syncInputCommandStatus(self): """Sync input command status with battle state status """ if not self.command: return if InputMapping.g_instance.getSwitchingStyle( self.command) == SWITCH_STYLES_BUTTONS.SWITCH: GameEnvironment.getInput().commandProcessor.getCommand( self.command).isFired = self.isActive
def __init__(self, inputAxis, notControlledByUser, currentBattleMode): self.__axisKeyBoard = [0.0] * 5 self.__lastAxis = [0.0] * 5 self.__axisJoy = [0.0] * 5 self.__lastKeyBoardAxis = [0.0] * 5 self.__resetAxis() self._notControlledByUser = notControlledByUser self.__battleMode = currentBattleMode self.__spline = None self.__smoothSpline = None self.__gamePad = GamepadInput(self) self.__keyboard = KeyboardInput(self) self.__keyboard.isMultiplySignal = False self._onSaveControls() self.__camDirection = Math.Vector3() self.__muted = AXIS_MUTE_MOD.NO_MUTE InputMapping.g_instance.onSaveControls += self._onSaveControls GameEnvironment.getInput().eBattleModeChange += self.__eBattleModeChange ICMultiFunction = lambda : (self.__autopilotUpdate() if self._notControlledByUser else None) ICMultiUpdate.__init__(self, (0.1, self.__updateVisibleAxis), (0.1, ICMultiFunction)) return
def __setNewProfile(self, inputState): GameEnvironment.getInput().eInputProfileChange(inputState) if self.__profile: self.__profile.removeCommandListeners(self.__commandProcessor) self.__profile.dispose() self.__lastDirection = None if inputState == INPUT_SYSTEM_STATE.MOUSE: self.__profile = MouseProfile(self, self.__notControlledByUser, self.__currentBattleMode) elif inputState == INPUT_SYSTEM_STATE.KEYBOARD: self.__profile = KeyboardProfile(self, self.__notControlledByUser) elif inputState == INPUT_SYSTEM_STATE.JOYSTICK: self.__profile = JoystickProfile(self, self.__notControlledByUser) elif inputState == INPUT_SYSTEM_STATE.GAMEPAD_DIRECT_CONTROL: self.__profile = GamepadProfile(self, self.__notControlledByUser, self.__currentBattleMode) else: LOG_INFO('::__setNewProfile: input State [%s] ignored' % (inputState, )) self.__profile.addCommandListeners(self.__commandProcessor) return
def __init__(self, player): self._player = player self._bombTarget = BombTargetProxy self._visibleBombing = True self._isTabActive = False self._isHudVisible = True self._player.eTacticalRespawnEnd += self._onTacticalRespawnEnd self._player.eTacticalSpectator += self._onTacticalRespawnEnd self._log = getLogger(self) self._input = GameEnvironment.getInput().commandProcessor self._input.addListeners(InputMapping.CMD_VISIBILITY_HUD, None, None, self._onHUDVisibilityCommand) self._input.addListeners(InputMapping.CMD_SHOW_TEAMS, None, None, self._setTabStateActive) return
def __sendCursor(self): import BattleReplay if BattleReplay.isPlaying(): return if EntityStates.inState(BigWorld.player(), EntityStates.GAME): self.__updateCurrentRadius() direction = self.__cameraStrategy.cursorDirection if not self.__isExtraMode else self.__lastDirection self.__profile.setCamDirection(direction) dataDir, up = self.__prepareMousePackage(direction) self.__lastDirection = direction if dataDir != self.__lastDataDir: self._lastDataDir = dataDir timeSend = GameEnvironment.getInput().inputAxis.serverTime BigWorld.player().cell.sendMouseDirData(timeSend, dataDir) if up != self.__lastUp: self.__lastUp = up BigWorld.player().cell.sendMouseUp(up)
def _sendMouseData(self): import BattleReplay if BattleReplay.isPlaying(): if self._inGame and not self._isExtraMode: self._updateCurrentRadius() return MouseInput._sendMouseData(self) if self._inGame and not self._isExtraMode: self._updateCurrentRadius() direction = self._cameraStrategy.cursorDirection dataDir, exAxis = self._prepareMousePackage(direction) self._profile.setCamDirection(direction) if dataDir != self._lastDataDir: self._lastDataDir = dataDir timeSend = GameEnvironment.getInput().inputAxis.serverTime BigWorld.player().cell.sendMouseDirData(timeSend, dataDir) if exAxis != self._lastExSpeed: self._lastExSpeed = exAxis BigWorld.player().cell.sendMouseExtRSpeed(exAxis)
def canPlay(entityID, health, oldHealth, damagerID, dmgType): player = BigWorld.player() isNPC = entityID != player.id dmgRamming = [DAMAGE_REASON.TREES, DAMAGE_REASON.RAMMING, DAMAGE_REASON.OBSTACLE, DAMAGE_REASON.TERRAIN, DAMAGE_REASON.WATER] dmgExplosion = [DAMAGE_REASON.FIRING, DAMAGE_REASON.ROCKET_EXPLOSION, DAMAGE_REASON.BOMB_EXPLOSION] currentBattleMode = GameEnvironment.getInput().inputAxis.currentBattleMode DELTA_HEALTH = 0 if GS().isReplayMute: return False if isNPC and (damagerID != player.id or dmgType == DAMAGE_REASON.AA_EXPLOSION or not BigWorld.entities.get(entityID).damagedByGunID and currentBattleMode != BATTLE_MODE.GUNNER_MODE): return False if oldHealth - health < DELTA_HEALTH: return False if dmgType in dmgExplosion: return False if isNPC and dmgType in dmgRamming: return False return True
def _setInputAxisBattleMode(self): """Set battle mode for input axis """ GameEnvironment.getInput().inputAxis.setBattleState(self.battleModeID)
def destroy(self): GameEnvironment.getInput( ).eBattleModeChange -= self.__onBattleStateChange
def _destroy(self): self._interface = None self._owner.eTacticalRespawnEnd -= self._onTacticalRespawn GameEnvironment.getInput( ).eBattleModeChange -= self._onBattleModeChange return
def setBattleState(self, state): self.__currentBattleMode = state GameEnvironment.getInput().eBattleModeChange(self.__currentBattleMode)