public void states_update(AICombatState combatState) { // Determine if our controller is already moving bool isMoving = this.is_moving(); // Set our combat state directly this.combatState = combatState; // Based on our movement, determine what our movement state is (Run when have aquired the target) this.movementState = (isMoving || this.combatState == AICombatState.Charging) ? (this.combatState == AICombatState.Charging) ? AIMovementState.Running : AIMovementState.Walking : AIMovementState.Idle; }
public float move_speed(AIMovementState movementState, AICombatState combatState = AICombatState.Idle) { // Based on our movement and combat state, return the correct movement speed switch (movementState) { case (AIMovementState.Idle): return(0f); case AIMovementState.Walking: return(this.walkSpeed); case AIMovementState.Running: return(this.walkSpeed * this.runSpeedMultiplier); default: return(this.walkSpeed); } }
public float movement_magnitude(AIMovementState movementState) { // <NOTE> // These values are based on the velocity-transition values you have in // your enemy's animator. // </NOTE> // Based on the movement state, determine what the magnitude is switch (movementState) { case (AIMovementState.Idle): return(0f); case AIMovementState.Walking: return(1f); case AIMovementState.Running: return(2f); default: return(0f); } }