public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
    {
        if ((PlayerController.PlayerState & PlayerState.Locked) == 0)
        {
            return(PlayerStateUpdateResult.Unhandled);
        }

        return(PlayerStateUpdateResult.CreateHandled(_animationStateName));
    }
    public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
    {
        if ((PlayerController.PlayerState & PlayerState.Sliding) == 0)
        {
            return(PlayerStateUpdateResult.Unhandled);
        }

        return(PlayerStateUpdateResult.CreateHandled("Slide"));
    }
    public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
    {
        if (PlayerController.IsGrounded())
        {
            return(PlayerStateUpdateResult.Unhandled);
        }

        return(PlayerController.CharacterPhysicsManager.Velocity.y >= 0f
      ? PlayerStateUpdateResult.CreateHandled("Jump")
      : PlayerStateUpdateResult.CreateHandled("Fall"));
    }
  public void UpdatePlayerState(XYAxisState axisState)
  {
    var playerStateUpdateResult = PlayerStateUpdateResult.Max(
        UpdatePlayerStateControllers(axisState),
        UpdateWeaponControllers(axisState));

    AdjustSpriteScale(axisState);

    if (playerStateUpdateResult.AnimationClipInfo != null)
    {
      PlayAnimation(playerStateUpdateResult.AnimationClipInfo);
    }
  }
    public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
    {
        if ((PlayerController.PlayerState & PlayerState.Crouching) == 0)
        {
            return(PlayerStateUpdateResult.Unhandled);
        }

        if (axisState.IsInHorizontalSensitivityDeadZone())
        {
            return(PlayerStateUpdateResult.CreateHandled("PlayerCrouchIdle"));
        }

        return(PlayerStateUpdateResult.CreateHandled("PlayerCrouchRun"));
    }
示例#6
0
    public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
    {
        if (
            IsSlidingDownWall(
                () => (PlayerController.CharacterPhysicsManager.LastMoveCalculationResult.CollisionState.CharacterWallState & CharacterWallState.OnRightWall) != 0,
                () => PlayerController.Sprite.transform.localScale.x < 1f)
            ||
            IsSlidingDownWall(
                () => (PlayerController.CharacterPhysicsManager.LastMoveCalculationResult.CollisionState.CharacterWallState & CharacterWallState.OnLeftWall) != 0,
                () => PlayerController.Sprite.transform.localScale.x > -1f))
        {
            return(PlayerStateUpdateResult.CreateHandled("PlayerWallAttached"));
        }

        return(PlayerStateUpdateResult.Unhandled);
    }
    public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
    {
        if ((PlayerController.PlayerState & PlayerState.ClimbingLadder) == 0 &&
            (PlayerController.PlayerState & PlayerState.ClimbingLadderTop) == 0)
        {
            return(PlayerStateUpdateResult.Unhandled);
        }

        var animationSpeed = (PlayerController.PlayerState & PlayerState.ClimbingLadderTop) == 0 &&
                             axisState.IsInVerticalSensitivityDeadZone()
        ? 0f
        : 1f;

        return((PlayerController.PlayerState & PlayerState.ClimbingLadderTop) != 0
      ? PlayerStateUpdateResult.CreateHandled("Climb Laddertop", animationSpeed: animationSpeed)
      : PlayerStateUpdateResult.CreateHandled("Climb", animationSpeed: animationSpeed));
    }
    public override PlayerStateUpdateResult Update(XYAxisState axisState)
    {
        if (CanFire(axisState))
        {
            var direction = GetDirectionVector(axisState);

            var spawnLocation = GetSpawnLocation(direction);

            var projectile = _objectPoolingManager.GetObject(
                _projectileWeaponSettings.ProjectilePrefab.name,
                spawnLocation);

            if (projectile != null)
            {
                var projectileBehaviour = projectile.GetComponent <PlayerProjectileBehaviour>();

                projectileBehaviour.StartMove(
                    spawnLocation,
                    direction * _projectileWeaponSettings.DistancePerSecond);

                _lastBulletTime = Time.time;

                _lastAnimationName = GetAnimationName(axisState);

                return(PlayerStateUpdateResult.CreateHandled(
                           _lastAnimationName,
                           1));
            }
        }

        if ((PlayerController.PlayerState & PlayerState.EnemyContactKnockback) == 0 &&
            IsAttacking())
        {
            return(PlayerStateUpdateResult.CreateHandled(GetAnimationName(axisState), 1));
        }

        return(PlayerStateUpdateResult.Unhandled);
    }
示例#9
0
    public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
    {
        if (!PlayerController.IsGrounded())
        {
            return(PlayerStateUpdateResult.Unhandled);
        }

        if (PlayerController.CrouchSettings.EnableCrouching)
        {
            var result = _crouchController.UpdatePlayerState(axisState);

            if (result.IsHandled)
            {
                return(result);
            }
        }

        if (axisState.IsInHorizontalSensitivityDeadZone())
        {
            return(PlayerStateUpdateResult.CreateHandled("Idle"));
        }

        return(PlayerStateUpdateResult.CreateHandled("Run Start", linkedAnimationNames: new string[] { "Run" }));
    }
 public override PlayerStateUpdateResult GetPlayerStateUpdateResult(XYAxisState axisState)
 {
     return(PlayerStateUpdateResult.CreateHandled("Enemy Contact Knockback"));
 }