Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
 def __init__(self, *battleStates):
     self._targetID = -1
     self._ownBattleStateTuple = battleStates
     self._currBattleState = None
     GameEnvironment.getInput(
     ).eBattleModeChange += self.__onBattleStateChange
     return
Ejemplo n.º 4
0
 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()
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
 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
Ejemplo n.º 8
0
 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
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 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
Ejemplo n.º 11
0
 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
Ejemplo n.º 12
0
 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
Ejemplo n.º 13
0
 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
Ejemplo n.º 14
0
 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
Ejemplo n.º 15
0
 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
Ejemplo n.º 16
0
 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)
Ejemplo n.º 17
0
 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)
Ejemplo n.º 18
0
 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
Ejemplo n.º 19
0
 def _setInputAxisBattleMode(self):
     """Set battle mode for input axis
     """
     GameEnvironment.getInput().inputAxis.setBattleState(self.battleModeID)
Ejemplo n.º 20
0
 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
Ejemplo n.º 22
0
 def setBattleState(self, state):
     self.__currentBattleMode = state
     GameEnvironment.getInput().eBattleModeChange(self.__currentBattleMode)