Beispiel #1
0
    private void HandleMovement()
    {
        if (pathVectorList != null)
        {
            Vector3 targetPosition = pathVectorList[currentPathIndex];
            if (Vector3.Distance(transform.position, targetPosition) > 1f)
            {
                Vector3 moveDir = (targetPosition - transform.position).normalized;

                float distanceBefore = Vector3.Distance(transform.position, targetPosition);
                characterBase.PlayMoveAnim(moveDir);
                transform.position = transform.position + moveDir * SPEED * Time.deltaTime;
            }
            else
            {
                currentPathIndex++;
                if (currentPathIndex >= pathVectorList.Count)
                {
                    StopMoving();
                    characterBase.PlayIdleAnim();
                }
            }
        }
        else
        {
            characterBase.PlayIdleAnim();
        }
    }
Beispiel #2
0
    private void HandleMovement()
    {
        float moveX = 0f;
        float moveY = 0f;

        if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
        {
            moveY = +1f;
        }
        if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
        {
            moveY = -1f;
        }
        if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow))
        {
            moveX = -1f;
        }
        if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow))
        {
            moveX = +1f;
        }

        Vector3 moveDir = new Vector3(moveX, moveY).normalized;
        bool    isIdle  = moveX == 0 && moveY == 0;

        if (isIdle)
        {
            playerBase.PlayIdleAnim();
        }
        else
        {
            playerBase.PlayMoveAnim(moveDir);
            transform.position += moveDir * SPEED * Time.deltaTime;
        }
    }
Beispiel #3
0
    private void HandleMovement()
    {
        if (Vector3.Distance(transform.position, targetPosition) > 1f)
        {
            Vector3 moveDir = (targetPosition - transform.position).normalized;

            playerBase.PlayMoveAnim(moveDir);
            transform.position += moveDir * SPEED * Time.deltaTime;
        }
        else
        {
            playerBase.PlayIdleAnim();
        }
    }
Beispiel #4
0
    private void FixedUpdate()
    {
        bool isIdle = moveDir.x == 0 && moveDir.y == 0;

        if (isIdle)
        {
            playerBase.PlayIdleAnim();
        }
        else
        {
            playerBase.PlayMoveAnim(moveDir);
            //transform.position += moveDir * SPEED * Time.deltaTime;
            playerRigidbody2D.MovePosition(transform.position + moveDir * SPEED * Time.fixedDeltaTime);
        }
    }
    private void ShootUnit(UnitGridCombat unitGridCombat, Action onShootComplete)
    {
        GetComponent <IMoveVelocity>().Disable();
        Vector3 attackDir = (unitGridCombat.GetPosition() - transform.position).normalized;

        //UtilsClass.ShakeCamera(.6f, .1f);
        GameHandler_GridCombatSystem.Instance.ScreenShake();

        characterBase.PlayShootAnimation(attackDir, (Vector3 vec) => {
            Shoot_Flash.AddFlash(vec);
            WeaponTracer.Create(vec, unitGridCombat.GetPosition() + GetRandomDir() * UnityEngine.Random.Range(-2f, 4f));
            unitGridCombat.Damage(this, UnityEngine.Random.Range(4, 12));
        }, () => {
            characterBase.PlayIdleAnim();
            GetComponent <IMoveVelocity>().Enable();

            onShootComplete();
        });
    }
Beispiel #6
0
    private void Update()
    {
        switch (state)
        {
        case State.Normal:
            if (enemyRTS != null)
            {
                float attackRange = 70f;
                if (Vector3.Distance(transform.position, enemyRTS.GetPosition()) < attackRange)
                {
                    MoveTo(transform.position);
                    GetComponent <IMoveVelocity>().Disable();
                    Vector3 attackDir = (enemyRTS.GetPosition() - transform.position).normalized;
                    UtilsClass.ShakeCamera(.6f, .1f);

                    characterBase.PlayShootAnimation(attackDir, (Vector3 vec) => {
                        Shoot_Flash.AddFlash(vec);
                        WeaponTracer.Create(vec, enemyRTS.GetPosition());
                        enemyRTS.Damage(this, Random.Range(5, 15));
                    }, () => {
                        characterBase.PlayIdleAnim();
                        GetComponent <IMoveVelocity>().Enable();
                        state = State.Normal;
                    });
                    state = State.Attacking;
                }
                else
                {
                    // Move Closer
                    MoveTo(enemyRTS.GetPosition());
                }
            }
            else
            {
                // No enemy
            }
            break;

        case State.Attacking:
            break;
        }
    }
    private void Update()
    {
        if (isDead)
        {
            return;
        }

        if (IsGrounded())
        {
            if (Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.UpArrow))
            {
                float jumpVelocity = 100f;
                rigidbody2d.velocity = Vector2.up * jumpVelocity;
            }
        }

        HandleMovement();

        // Set Animations
        if (IsGrounded())
        {
            if (rigidbody2d.velocity.x == 0)
            {
                playerBase.PlayIdleAnim();
            }
            else
            {
                playerBase.PlayMoveAnim(new Vector2(rigidbody2d.velocity.x, 0f));
            }
        }
        else
        {
            playerBase.PlayJumpAnim(rigidbody2d.velocity);
        }

        if (rigidbody2d.velocity.y < -300f)
        {
            // Falling way too fast, dead
            Die();
        }
    }
Beispiel #8
0
 public void PlayIdleAnim()
 {
     characterAimBase.PlayIdleAnim();
     playerBase.PlayIdleAnim();
 }