예제 #1
0
    public override void Execute(Fighter fighterRef, PlayerCombatScript combatScript)
    {
        this.gameObject.SetActive(true);
        this.gameObject.GetComponent<SpriteRenderer>().enabled = true;
        _fighterRef = fighterRef;
        _combatScript = combatScript;
        _fighterRef.disableAnimator();
        //turn off collisions for fighter ref

        Rigidbody2D body = this.gameObject.GetComponent<Rigidbody2D>();

        if (_airAttack)
        {
            //If air attack, dont stop momentum, but pause it on hit.
            //Create on hit function
            body.gravityScale = _fighterRef.GetComponent<Rigidbody2D>().gravityScale;
            Vector2 v = _fighterRef.GetComponent<Rigidbody2D>().velocity;
            body.velocity = v;
            if(_isDiveKick)
            {
                Vector2 diveSpeed = new Vector2(4, -3);
                body.velocity = diveSpeed;
                fighterRef.GetComponent<Rigidbody2D>().velocity = diveSpeed;
            }
        }
        else if(_translate && fighterRef.GetComponent<PlayerControllerScript>())
        {
            Debug.Log("Translate");
            fighterRef.GetComponent<PlayerDash>().ForceEndDash();
        }
        else if (_fighterRef.tag == "Player")
            _fighterRef.GetComponent<PlayerControllerScript>().StopMovement();

        if (!_fighterRef.FacingRight)
            transform.localScale = new Vector3(1, transform.localScale.y, transform.localScale.z);
        else
            transform.localScale = new Vector3(-1, transform.localScale.y, transform.localScale.z);
    }