Esempio n. 1
0
    protected override void computeOne(GridElement gridElement, int value)
    {
        //UnityEngine.Debug.Log("move: try");
        if (value != 1)
        {
            return;
        }
        //UnityEngine.Debug.Log("move: compute");
        Debug.Log("move compute one");
        GameObject  temp    = gridElement.getAbsoluteXZ(0, 5);
        GridElement goalPos = isGridElement(temp);

        goalPos = setGoal(goalPos);
        Debug.Log("Goalpos (" + goalPos.x + "," + goalPos.z + ")");
        int x;
        int z;

        if (goalPos != null)
        {
            var move = Astar(gridElement, goalPos);
            x = move[0];
            z = move[1];
            Debug.Log("x: " + x);
            Debug.Log("z: " + z);
        }
        else
        {
            x = 0;
            z = 0;
        }

        // TODO A* for x,z
        GameObject gridElementObject = gridElement.getByXZ(x, z);//Względne

        if (gridElementObject != null && gridElementObject.GetComponent <GridElement>().unit == null)
        {
            GridElement oldGridElement = unitBase.transform.parent.gameObject.GetComponent <GridElement>();
            unitBase.transform.SetParent(gridElementObject.transform);
            gridElementObject.GetComponent <GridElement>().unit = unitBase.gameObject;
            unitBase.transform.position = new Vector3(gridElementObject.transform.position.x, gridElementObject.transform.position.y - 0.5f, gridElementObject.transform.position.z);
            oldGridElement.unit         = null;
            // TODO animation goes brrrrrr
        }
        else
        {
            //UnityEngine.Debug.Log("dupa");
        }
    }