Example #1
0
    protected void SetCurrentMovement(PublicEnums.CurrentMovement movement)
    {
        if (currentMovement != PublicEnums.CurrentMovement.None ||
            movement == PublicEnums.CurrentMovement.None)
        {
            StopCurrentMovement();//If the current movement is None then stop whatever was happening
        }

        currentMovement = movement;
        FullStopMomentum();//Full stop so there aren't any surprises with the vectors adding together.
    }
Example #2
0
    // Use this for initialization
    private void Awake()
    {
        initGravity = gravity;
        direction   = PublicEnums.Direction.Right;

        initJumpForce = jumpForce;
        height        = transform.lossyScale.y;
        stun          = false;

        rigid           = GetComponent <Rigidbody2D>();
        currentMovement = PublicEnums.CurrentMovement.None;
        if (!controller)
        {
            controller = GetComponent <BaseController>();
        }
    }
Example #3
0
    public void StopCurrentMovement()
    {
        switch (currentMovement)
        {
        case PublicEnums.CurrentMovement.DiveKick:
            StopCoroutine("DiveDash");
            break;

        case PublicEnums.CurrentMovement.DashLeft:
            StopCoroutine("DashLeft");
            break;

        case PublicEnums.CurrentMovement.DashRight:
            StopCoroutine("DashRight");
            break;

        case PublicEnums.CurrentMovement.DashUp:
            StopCoroutine("DashUp");
            break;

        case PublicEnums.CurrentMovement.DashDown:
            StopCoroutine("DashDown");
            break;

        case PublicEnums.CurrentMovement.Step:
            StopCoroutine("StepAction");
            break;

        case PublicEnums.CurrentMovement.Charge:
            StopCoroutine("ChargeMove");
            break;

        default:
            break;
        }
        currentMovement = PublicEnums.CurrentMovement.None; //reset currentMovement to None
        controller.ReturnControl();                         //Some actions may remove control. This line is a failsafe.
    }
Example #4
0
    public IEnumerator StepAction()
    {
        SetCurrentMovement(PublicEnums.CurrentMovement.Step);
        Vector2 startPos = rigid.position;

        Vector2 dir = direction == PublicEnums.Direction.Right ? Vector2.right : Vector2.left;

        while (Vector2.Distance(rigid.position, startPos) < 0.5)
        {
            rigid.position += dir * maxSpeed * Time.fixedDeltaTime;
            yield return(new WaitForFixedUpdate());
        }

        startPos = rigid.position;
        dir      = -dir;
        while (Vector2.Distance(rigid.position, startPos) < 0.25)
        {
            rigid.position += dir * maxSpeed * Time.fixedDeltaTime;
            yield return(new WaitForFixedUpdate());
        }
        currentMovement = (PublicEnums.CurrentMovement.None);
        controller.ReturnControl();
    }