Ejemplo n.º 1
0
    //COLOCA OBJETOS EN UNA CELDA DE LA CUADRICULA.
    void changeObjectCell()   //Función que asigna una celda de la cuadricula a un objeto nuevo o la reasigna cuando este ya estaba en la cuadricula.
    {
        setSceneState("InGame");

        MovableObject movObject = objectToMove.GetComponent <MovableObject>();

        bool isNew = true;

        if (movObject.objectCell)
        {
            movObject.objectCell.setOccupied(false);
            isNew = false;
        }

        //Guardamos en una lista el objeto colocado en escena si no estaba ya en ella.
        if (isNew)
        {
            if (movObject.gameObject.tag == "Tree")
            {
                gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), tree);
                GameData.currentGame.gridObjects = gridObjects;

                payTree(); //Se decrementa recursos por el precio del nuevo objeto Tree.
            }
            else if (movObject.gameObject.tag == "Pig")
            {
                gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), pigPrefab);
                GameData.currentGame.gridObjects = gridObjects;

                payPig(); //Se decrementa recursos por el precio del nuevo objeto Pig.
            }
        }
        else
        {
            if (gridObjects.Remove(movObject.objectCell.getIDCell()))
            {
                if (movObject.gameObject.tag == "Tree")
                {
                    gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), tree);
                }
                else if (movObject.gameObject.tag == "Pig")
                {
                    gridObjects.Add(cellToOcupate.GetComponent <Cell>().getIDCell(), pigPrefab);
                }

                GameData.currentGame.gridObjects = gridObjects;
            }
        }

        movObject.objectCell = cellToOcupate.GetComponent <Cell>();
        movObject.objectCell.setOccupied(true);

        movObject.objectCell.GetComponent <BoxCollider2D>().enabled = false;
        movObject.transform.position = movObject.objectCell.transform.position;

        Debug.Log("Hecho");

        cellToOcupate = null; objectToMove = null;

        movObject.adjustToPosition();
        movObject.objectState = "Waiting";
        movObject.getCollider().enabled = true;

        audioScript.MakePopSound(); //Genera sonido al colocar un objeto en la malla

        SaveGame();                 //Guardado estado del juego automatico.
    }