def respectGroundRule(self, function): from link_scripts.StarterState import start_fallState if (self.tester.detectGround()): return True else: if (function != None): function(self) # go t ofall start_fallState(self) return False
def respectGroundRule(self, function, goToFall=True): from link_scripts.StarterState import start_fallState if (self.tester.detectGround()): return True else: if (function != None): function(self) # go tofall if (goToFall): start_fallState(self) return False
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)
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)
def specialAttack1State(self): frame = self.rig.getActionFrame(5) if (frame >= 13): start_fallState(self) else: # Movement if (frame <= 8): if (self.getDistanceTo(self.targetManager.targetObject) > 2.0): self.linearVelocity[0] = 0 self.linearVelocity[1] = 5 else: self.stopMovement() # Sound self.audio.playAttack1Sound(frame, 1, 2) # Attack power if (frame >= 0 and frame <= 8): setDamage(5) else: setDamage(0)
def forwardSwimState(self): """ Forward swim state If detect ground specially g ot idle STATE """ # get forward force forward_force = self.getForwardForce() * 0.6 # past player to water toWaterPos(self) # if detect the grounded if ( self.tester.detectGroundFromWater() ): # go to ground swimToGround(self) return # If always in water if (self.tester.detectWater()): # if move go to forward swim state if (forward_force != 0): # forward movement forwardForce(self, forward_force) # play animation self.rig.playSwimForward() # active orientation movement self.orientManager.orient_player(self) # else don"t move, go to wait swim state else: # stop orientation self.orientManager.stopOrientation(self) # go to wait swim self.switchState(PlayerState.WAIT_SWIM_STATE) # else out of water go to fall else: # stop orientation self.orientManager.stopOrientation(self) # stop movement self.stopMovement() # deactivate water self.onWater = False # go to fall start_fallState(self)
def specialAttack1State(self): frame = self.rig.getActionFrame(5) if frame >= 13: start_fallState(self) else: # Movement if frame <= 8: if self.getDistanceTo(self.targetManager.targetObject) > 2.0: self.linearVelocity[0] = 0 self.linearVelocity[1] = 5 else: self.stopMovement() # Sound self.audio.playAttack1Sound(frame, 1, 2) # Attack power if frame >= 0 and frame <= 8: setDamage(5) else: setDamage(0)