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); } }