Example #1
0
    public bool BoxMatchPylone(ColoredBox box, PyloneNode pylone)
    {
        if (pylone.Type == box.Type)
        {
            return(true);
        }

        return(false);
    }
Example #2
0
    public PyloneNode GetNearestPylone(Vector3 boxPosition)
    {
        PyloneNode currentPylone = PyloneNodeR1;
        float      minDistance   = float.MaxValue;

        foreach (PyloneNode p in listPylones)
        {
            float currentDistance = Vector3.Distance(boxPosition, p.transform.position);
            if (currentDistance < minDistance)
            {
                currentPylone = p;
                minDistance   = currentDistance;
            }
        }

        return(currentPylone);
    }
Example #3
0
    public bool SetBoxOnClosestPylone(ColoredBox box)
    {
        PyloneNode closest = GetNearestPylone(box.transform.position);

        if (Vector3.Distance(box.transform.position, closest.transform.position) < 1)
        {
            box.UnGrab();
            box.transform.position = new Vector3(closest.transform.position.x, closest.transform.position.y + 1.5f, closest.transform.position.z);
            bool isMatching = BoxMatchPylone(box, closest);

            if (isMatching)
            {
                closest.ShineV();
                pyloneActived.Add(Array.IndexOf(listPylones, closest));
            }

            return(isMatching);
        }
        return(false);
    }