예제 #1
0
def firstLookViewState(self):
	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		endLook(self)
		start_hitState(self)
		return

	# if cancel state
	if ( self.gamepad.isActionPressed() ):
		# re activate tps camera mode
		self.camManager.activeTrackPlayer()
		# go to idle state
		self.switchState(PlayerState.IDLE_STATE)
	# else use the first look view mode
	else:
		#init var
		LeftRight = 0.0
		UpDown = 0.0

		# Control part
		if ( self.gamepad.isLeftPressed() ):
			LeftRight = 0.05
		elif ( self.gamepad.isRightPressed() ):
			LeftRight = -0.05

		if ( self.gamepad.isUpPressed() ):
			UpDown = 0.05
		elif ( self.gamepad.isDownPressed() ):
			UpDown = -0.05

		# apply roation
		self.camManager.applyLook(UpDown, LeftRight)
예제 #2
0
def hitFromTarget(self):
    # If detect enemy damage
    if self.tester.detectEnemyDamage():
        endTargetState(self)
        start_hitState(self)
        return True
    else:
        return False
예제 #3
0
def detectDamageFromAttack(self):
    # If detect enemy damage
    if self.tester.detectEnemyDamage():
        self.cancelAttack()
        start_hitState(self)
        return True
    else:
        return False
예제 #4
0
def detectDamageFromAttack(self):
    # If detect enemy damage
    if (self.tester.detectEnemyDamage()):
        self.cancelAttack()
        start_hitState(self)
        return True
    else:
        return False
예제 #5
0
def hitFromTarget(self):
    # If detect enemy damage
    if (self.tester.detectEnemyDamage()):
        endTargetState(self)
        start_hitState(self)
        return True
    else:
        return False
예제 #6
0
def walkState(self):
    # get forward force
    forward_force = self.getForwardForce()
    speedAnim = 1.0  #abs(self.gamepad.getJoyAxis1Value())

    if (self.tester.detectLadderBottom()):
        start_ladderFromTop(self)
        return

    # If detect enemy damage
    if (self.tester.detectEnemyDamage()):
        start_hitState(self)
        return

    # If detect water
    if (self.tester.detectWater()):
        # stop orientation
        self.orientManager.stopOrientation(self)
        # start swim state
        start_swimState(self)
    # else we can move or wait
    elif (self.respectGroundRule(end_walkState(self))):
        if (self.tester.switchLevel()):
            # cancel state
            return
        # if arrow key is pressed
        if (forward_force != 0.0):
            # use walk movement
            if walkForce(self, forward_force):
                # stop orientation
                self.orientManager.stopOrientation(self)
                # go to idle state
                self.switchState(PlayerState.RUN_STATE)
            else:
                # play walk animation
                self.rig.playWalk(speedAnim)
                # play step sound
                self.audio.playStepSound(self.rig.getActionFrame(1), [4, 13])
                # active orientation movement
                self.orientManager.orient_player(self)
        else:
            # stop orientation
            self.orientManager.stopOrientation(self)
            # go to idle state
            self.switchState(PlayerState.IDLE_STATE)
    # go to fall
    else:
        # go to fall state
        start_fallState(self)
예제 #7
0
def walkState(self):
	# get forward force
	forward_force = self.getForwardForce()
	speedAnim = 1.0#abs(self.gamepad.getJoyAxis1Value())

	if (self.tester.detectLadderBottom()):
		start_ladderFromTop(self)
		return

	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		start_hitState(self)
		return

	# If detect water
	if (self.tester.detectWater()):
		# stop orientation
		self.orientManager.stopOrientation(self)
		# start swim state
		start_swimState(self)
	# else we can move or wait
	elif ( self.respectGroundRule(end_walkState(self)) ):
		if (self.tester.switchLevel()):
			# cancel state
			return
		# if arrow key is pressed
		if (forward_force != 0.0):
			# use walk movement
			if walkForce(self, forward_force):
				# stop orientation
				self.orientManager.stopOrientation(self)
				# go to idle state
				self.switchState(PlayerState.RUN_STATE)
			else:
				# play walk animation
				self.rig.playWalk(speedAnim)
				# play step sound
				self.audio.playStepSound(self.rig.getActionFrame(1), [4, 13])
				# active orientation movement
				self.orientManager.orient_player(self)
		else:
			# stop orientation
			self.orientManager.stopOrientation(self)
			# go to idle state
			self.switchState(PlayerState.IDLE_STATE)
	# go to fall
	else:
		# go to fall state
		start_fallState(self)
예제 #8
0
def firstLookViewState(self):
    # If detect enemy damage
    if (self.tester.detectEnemyDamage()):
        endLook(self)
        start_hitState(self)
        return

    # Look mode (Skills/object) Default bow
    if (self.objectManager.use):
        # Play target with object mode
        self.rig.playObjectTargetIdle()
        # * Object
        self.rig.playWaitBow()
    else:
        self.rig.playWait()

    # if cancel state
    if (self.gamepad.isActionPressed()):
        # re activate tps camera mode
        self.camManager.activeTrackPlayer()
        # go to idle state
        self.switchState(PlayerState.IDLE_STATE)
    # else use the first look view mode
    else:
        #init var
        LeftRight = 0.0
        UpDown = 0.0

        # Control part
        if (self.gamepad.isLeftPressed()):
            LeftRight = 0.05
        elif (self.gamepad.isRightPressed()):
            LeftRight = -0.05

        if (self.gamepad.isUpPressed()):
            UpDown = 0.05
        elif (self.gamepad.isDownPressed()):
            UpDown = -0.05

        # apply roation
        self.camManager.applyLook(UpDown, LeftRight)
예제 #9
0
def firstLookViewState(self):
	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		endLook(self)
		start_hitState(self)
		return

	# Look mode (Skills/object) Default bow
	if (self.objectManager.use):
		# Play target with object mode
		self.rig.playObjectTargetIdle()
		# * Object
		self.rig.playWaitBow()
	else:
		self.rig.playWait()

	# if cancel state
	if ( self.gamepad.isActionPressed() ):
		# re activate tps camera mode
		self.camManager.activeTrackPlayer()
		# go to idle state
		self.switchState(PlayerState.IDLE_STATE)
	# else use the first look view mode
	else:
		#init var
		LeftRight = 0.0
		UpDown = 0.0

		# Control part
		if ( self.gamepad.isLeftPressed() ):
			LeftRight = 0.05
		elif ( self.gamepad.isRightPressed() ):
			LeftRight = -0.05

		if ( self.gamepad.isUpPressed() ):
			UpDown = 0.05
		elif ( self.gamepad.isDownPressed() ):
			UpDown = -0.05

		# apply roation
		self.camManager.applyLook(UpDown, LeftRight)
예제 #10
0
def rollState(self):
	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		start_hitState(self)
		return

	# If detect water
	if (self.tester.detectWater()):
		# stop orientation
		self.orientManager.stopOrientation(self)
		# go to swim
		start_swimState(self)
	else:
		# if detect always the ground continue the rolling
		if (self.respectGroundRule(goToJump, False)):
			wall, pos, normal = self.tester.wallRay()
			if (wall):
				start_rollWall(self)
				self.switchState(PlayerState.ROLLWALL_STATE)
			else:
				# test if finish rolling
				if (self.rig.getActionFrame(1) == 11):
					# change state
					self.switchState(PlayerState.IDLE_STATE)
예제 #11
0
def rollState(self):
	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		start_hitState(self)
		return

	# If detect water
	if (self.tester.detectWater()):
		# stop orientation
		self.orientManager.stopOrientation(self)
		# go to swim
		start_swimState(self)
	else:
		# if detect always the ground continue the rolling
		if (self.respectGroundRule(goToJump)):
			wall, pos, normal = self.tester.wallRay()
			if (wall):
				start_rollWall(self)
				self.switchState(PlayerState.ROLLWALL_STATE)
			else:
				# test if finish rolling
				if (self.rig.getActionFrame(1) == 11):
					# change state
					self.switchState(PlayerState.IDLE_STATE)
예제 #12
0
def runState(self):
    #playerHUD = logic.playerHUD
    # get forward force
    forward_force = self.getForwardForce()

    # If detect enemy damage
    if (self.tester.detectEnemyDamage()):
        start_hitState(self)
        return

    # If detect water
    if (self.tester.detectWater()):
        # stop orientation
        self.orientManager.stopOrientation(self)
        # start swim state
        start_swimState(self)
        # cancel method
    else:
        # if touch the ground ( else callback )
        if (self.respectGroundRule(end_runState)):
            # if arrow key is pressed
            if (forward_force != 0.0):
                # set action hud text
                #logic.playerHUD.changeActionText('Roll')
                if (self.tester.detectPath()):
                    start_pathFollowState(self)
                # if push to action key
                elif (self.gamepad.isActionPressed()):
                    # NEXT STATE : ROLL
                    # stop orientation
                    self.orientManager.stopOrientation(self)
                    # start roll
                    start_rollState(self)
                    # switch roll state
                    self.switchState(PlayerState.ROLL_STATE)
                else:
                    # run force
                    if (runForce(self, forward_force)):
                        # play run animation
                        self.rig.playRun()
                        frame = self.rig.getActionFrame(1)
                        #if (frame <= 1):
                        # PlayerEffect.addEffectFrame(frame, [4, 11], PlayerEffect.addGrassEffect())
                        # play with step sounds
                        self.audio.playStepSound(frame, [4, 11])
                    else:
                        # go to walk
                        self.switchState(PlayerState.WALK_STATE)
                    # active orientation movement
                    self.orientManager.orient_player(self)
            # else not movement go idle state
            else:
                # reset hud action text
                #logic.playerHUD.resetActionText()
                # stop orientation
                self.rig.stopArmLayer()
                self.orientManager.stopOrientation(self)
                # go to idle state
                self.switchState(PlayerState.IDLE_STATE)
        # if dont touch the ground go to jump state
        else:
            # reset hud action text
            #logic.playerHUD.resetActionText()
            # stop orientation
            self.orientManager.stopOrientation(self)
            # go to idle state
            self.switchState(PlayerState.JUMP_STATE)
예제 #13
0
def idleState(self):
	# stop movement
	self.stopMovement()

	# play wait animation
	if (self.heartContainer.isLow):
		self.rig.playHeavyWait()
	else:
		self.rig.playWait()

	# get forward force
	forward_force = self.getForwardForce()

	# If use object
	if (self.objectManager.useObject()):
		return

	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		start_hitState(self)
		return

	# If statetime is finish can do action
	if (self.playStateTime(1.0)):
		# If detect chest
		if ( self.tester.detectChest() ):
			if ( self.gamepad.isActionPressed() ):
				start_openChestState(self)
		# If detect bloc
		if (self.tester.detectBloc()):
			if (self.gamepad.isActionPressed()):
				start_waitPushState(self)
				return

		# If detect ledge ground from ground
		if (self.tester.detectLedgeGroundFromGround()):
			if (self.gamepad.isActionPressed()):
				# go to climb
				start_climbLedgeState(self)
				return

		# If detect pckable object
		if ( self.tester.detectObjectToPickUp() and self.pickManager.active == False ):
			if (self.gamepad.isActionPressed() ):
				start_pickObjectState(self)
				return

		# test if detect placard
		if (self.tester.detectInteractivePlacard()):
			if ( self.gamepad.isActionPressed(JUST_ACTIVATED) ):
				start_interactionState(self)
				return

	if (self.pickManager.active == True):
		# if action pressed
		if ( self.gamepad.isAttackPressed(JUST_ACTIVATED) ):
			start_throwObjectState(self)
			return

	# test if can target a object
	if ( self.targetManager.zTarget() ):#canTargetObject()
		self.switchState(PlayerState.IDLE_TARGET_STATE)
		return

	# if move go to walk animation
	if (forward_force != 0):
		if (self.targetManager.active):
			self.switchState(PlayerState.STRAFE_STATE)
		else:
			self.switchState(PlayerState.WALK_STATE)
	# other action
	else:
		# if detect key for look
		if ( self.gamepad.isLookPressed() ):
			# go to look state
			start_firstLookView(self)

		# detect ladder
		elif (self.tester.detectLadder()):
			# change hud action text
			#self.playerHUD().changeActionText('Monter')
			if ( self.gamepad.isActionPressed() ):
				# go to ladder state
				start_ladderState(self)

		# detect a door
		elif (self.tester.detectDoor()):
			if ( self.gamepad.isActionPressed() ):
				# g oto ladder state
				start_openDoorState(self)

		# go to get armed
		elif (self.gamepad.isAttackPressed() and self.fightManager.canUseSword()):
			if (self.fightManager.isUnsheated() ):
				start_basicSwordAttack1State(self)
			else:
				self.unsheat(True)
		# range sword an shield
		if ( self.fightManager.isUnsheated() ):
			if ( self.gamepad.isActionPressed() ):
				self.unsheat(False)
예제 #14
0
def runState(self):
	#playerHUD = logic.playerHUD
	# get forward force
	forward_force = self.getForwardForce()

	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		start_hitState(self)
		return

	# If detect water
	if (self.tester.detectWater()):
		# stop orientation
		self.orientManager.stopOrientation(self)
		# start swim state
		start_swimState(self)
		# cancel method
	else:
		# if touch the ground ( else callback )
		if ( self.respectGroundRule(end_runState) ):
			# if arrow key is pressed
			if ( forward_force != 0.0 ):
				# set action hud text
				#logic.playerHUD.changeActionText('Roll')
				if (self.tester.detectPath()):
				 	start_pathFollowState(self)
				# if push to action key
				elif (self.gamepad.isActionPressed()):
				# NEXT STATE : ROLL
					# stop orientation
					self.orientManager.stopOrientation(self)
					# start roll
					start_rollState(self)
					# switch roll state
					self.switchState(PlayerState.ROLL_STATE)
				else:
					# run force
					if ( runForce(self, forward_force) ):
						# play run animation
						self.rig.playRun()
						frame = self.rig.getActionFrame(1)
						#if (frame <= 1):
							# PlayerEffect.addEffectFrame(frame, [4, 11], PlayerEffect.addGrassEffect())
						# play with step sounds
						self.audio.playStepSound(frame, [4, 11])
					else:
						# go to walk
						self.switchState(PlayerState.WALK_STATE)
					# active orientation movement
					self.orientManager.orient_player(self)
			# else not movement go idle state
			else:
				# reset hud action text
				#logic.playerHUD.resetActionText()
				# stop orientation
				self.rig.stopArmLayer()
				self.orientManager.stopOrientation(self)
				# go to idle state
				self.switchState(PlayerState.IDLE_STATE)
		# if dont touch the ground go to jump state
		else:
			# reset hud action text
			#logic.playerHUD.resetActionText()
			# stop orientation
			self.orientManager.stopOrientation(self)
			# go to idle state
			self.switchState(PlayerState.JUMP_STATE)
예제 #15
0
def idleState(self):
	# stop movement
	self.stopMovement()

	# play wait animation
	self.rig.playWait()

	# get forward force
	forward_force = self.getForwardForce()

	if (self.onPick == True):
		# if action pressed
		if ( self.gamepad.isAttackPressed() ):
			start_throwObjectState(self)
			return
		else:
			self.rig.playPick()

	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		start_hitState(self)
		return

	# If detect ledge ground from ground
	if (self.tester.detectLedgeGroundFromGround()):
		if (self.gamepad.isActionPressed()):
			# go to climb
			start_climbGroundState(self)
			return

	# If detect pckable object
	if ( self.tester.detectObjectToPickUp() and self.onPick == False ):
		if (self.gamepad.isActionPressed() ):
			start_pickObjectState(self)
			return

	# test if detect placard
	if (self.tester.detectInteractivePlacard()):
		if ( self.gamepad.isActionPressed() ):
			start_interactionState(self)
			return

	# test if can target a object
	if ( self.targetManager.canTargetObject() ):
		self.switchState(PlayerState.IDLE_TARGET_STATE)
		return

	# if move go to walk animation
	if (forward_force != 0):
		if (self.targetManager.active):
			self.switchState(PlayerState.STRAFE_STATE)
		else:
			self.switchState(PlayerState.WALK_STATE)
	# other action
	else:
		# if detect key for look
		if ( self.gamepad.isLookPressed() ):
			# go to look state
			start_firstLookView(self)
		# detect lader
		elif (self.tester.detectLadder()):
			# change hud action text
			#self.playerHUD().changeActionText('Monter')
			if ( self.gamepad.isActionPressed() ):
				# go to ladder state
				start_ladderState(self)
		# detect a door
		elif (self.tester.detectDoor()):
			if ( self.gamepad.isActionPressed() ):
				# g oto ladder state
				start_openDoorState(self)
		# go to get armed
		elif (self.gamepad.isAttackPressed()):
			if (self.armed == False):
				# play get armed animation
				#self.rig.playGetArmed()
				# set to armed
				self.activeArmedMode()
			else:
				start_basicSwordAttack1State(self)
		# range sword an shield
		if (self.armed == True):
			if ( self.gamepad.isActionPressed() ):
				self.deactiveArmedMode()
예제 #16
0
def runState(self):
	#playerHUD = logic.playerHUD
	# get forward force
	forward_force = self.getForwardForce()

	# If detect enemy damage
	if (self.tester.detectEnemyDamage()):
		start_hitState(self)
		return

	# If detect water
	if (self.tester.detectWater()):
		# stop orientation
		self.orientManager.stopOrientation(self)
		# start swim state
		start_swimState(self)
		# cancel method
	else:
		# if touch the ground ( else callback )
		if ( self.respectGroundRule(end_runState) ):
			# if detect next-level
			if (self.tester.switchLevel()):
				# End run state
				end_runState(self)
				# cancel state
				return
			# if arrow key is pressed
			elif ( forward_force != 0.0 ):
				# set action hud text
				#logic.playerHUD.changeActionText('Roll')
				# if push to action key
				if (self.gamepad.isActionPressed()):
				# NEXT STATE : ROLL
					# stop orientation
					self.orientManager.stopOrientation(self)
					# start roll
					start_rollState(self)
					# switch roll state
					self.switchState(PlayerState.ROLL_STATE)
				else:
					# run force
					if ( runForce(self, forward_force) ):
						# play run animation
						self.rig.playRun()
						# Arm Hunk Animation
						if (self.armed):
							# Run with sword and shield arm
							self.rig.playRunArmArmed()
						else:
							self.rig.playRunArmBase()
						# play with step sounds
						self.audio.playStepSound(self.rig.getActionFrame(1), [4, 11])
					else:
						# go to walk
						self.switchState(PlayerState.WALK_STATE)
					# active orientation movement
					self.orientManager.orient_player(self)
			# else not movement go idle state
			else:
				# reset hud action text
				#logic.playerHUD.resetActionText()
				# stop orientation
				self.rig.stopArmLayer()
				self.orientManager.stopOrientation(self)
				# go to idle state
				self.switchState(PlayerState.IDLE_STATE)
		# if dont touch the ground go to jump state
		else:
			# reset hud action text
			#logic.playerHUD.resetActionText()
			# stop orientation
			self.orientManager.stopOrientation(self)
			# go to idle state
			self.switchState(PlayerState.JUMP_STATE)
예제 #17
0
def idleState(self):
    # stop movement
    self.stopMovement()

    # play wait animation
    if (self.heartContainer.isLow):
        self.rig.playHeavyWait()
    else:
        self.rig.playWait()

    # get forward force
    forward_force = self.getForwardForce()

    # If use object
    if (self.objectManager.useObject()):
        return

    # If detect enemy damage
    if (self.tester.detectEnemyDamage()):
        start_hitState(self)
        return

    # If statetime is finish can do action
    if (self.playStateTime(1.0)):
        # If detect chest
        if (self.tester.detectChest()):
            if (self.gamepad.isActionPressed()):
                start_openChestState(self)
        # If detect bloc
        if (self.tester.detectBloc()):
            if (self.gamepad.isActionPressed()):
                start_waitPushState(self)
                return

        # If detect ledge ground from ground
        if (self.tester.detectLedgeGroundFromGround()):
            if (self.gamepad.isActionPressed()):
                # go to climb
                start_climbLedgeState(self)
                return

        # If detect pckable object
        if (self.tester.detectObjectToPickUp()
                and self.pickManager.active == False):
            if (self.gamepad.isActionPressed()):
                start_pickObjectState(self)
                return

        # test if detect placard
        if (self.tester.detectInteractivePlacard()):
            if (self.gamepad.isActionPressed(JUST_ACTIVATED)):
                start_interactionState(self)
                return

    if (self.pickManager.active == True):
        # if action pressed
        if (self.gamepad.isAttackPressed(JUST_ACTIVATED)):
            start_throwObjectState(self)
            return

    # test if can target a object
    if (self.targetManager.zTarget()):  #canTargetObject()
        self.switchState(PlayerState.IDLE_TARGET_STATE)
        return

    # if move go to walk animation
    if (forward_force != 0):
        if (self.targetManager.active):
            self.switchState(PlayerState.STRAFE_STATE)
        else:
            self.switchState(PlayerState.WALK_STATE)
    # other action
    else:
        # if detect key for look
        if (self.gamepad.isLookPressed()):
            # go to look state
            start_firstLookView(self)

        # detect ladder
        elif (self.tester.detectLadder()):
            # change hud action text
            #self.playerHUD().changeActionText('Monter')
            if (self.gamepad.isActionPressed()):
                # go to ladder state
                start_ladderState(self)

        # detect a door
        elif (self.tester.detectDoor()):
            if (self.gamepad.isActionPressed()):
                # g oto ladder state
                start_openDoorState(self)

        # go to get armed
        elif (self.gamepad.isAttackPressed()
              and self.fightManager.canUseSword()):
            if (self.fightManager.isUnsheated()):
                start_basicSwordAttack1State(self)
            else:
                self.unsheat(True)
        # range sword an shield
        if (self.fightManager.isUnsheated()):
            if (self.gamepad.isActionPressed()):
                self.unsheat(False)