Esempio n. 1
0
    void DigBelow(float delta)
    {
        if (!initLerp)
        {
            initLerp = true;
            startPos = transform.position;

            t = 0;

            int t_x = (movingLeft) ? curNode.x + 1 : curNode.x - 1;

            Node originNode = gameControl.GetNode(t_x, curNode.y + 3);

            List <Node> nodes = CheckNode(originNode, 6);

            if (nodes.Count == 0 || digBCount > digBelowLimit)
            {
                ChangeAbility(Ability.walker);
                return;
            }
            digBCount++;

            gameControl.AddNodePossibilitiesForRemoval(nodes);
            Node n = gameControl.GetNode(curNode.x, curNode.y - 1);
            if (n == null)
            {
                ChangeAbility(Ability.walker);
                return;
            }

            targetNode = n;
            targetPos  = gameControl.GetWorldPosFromNode(targetNode);

            float distance = Vector3.Distance(targetPos, startPos);
            moveSpeed = dig_d_speed / distance;
        }
        else
        {
            LerpIntoPosition(delta);
        }
    }