Example #1
0
    public void buildClicked(BuildingManager.structureData data)
    {
        if (!buildingMode)
        {
            startbuildingMode();
        }

        GameObject.Destroy(holoPlacement);
        holoPlacement = null;
        RaycastHit raycastHit;
        int        layerMask = LayerMask.GetMask("PlacementMask");

        Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out raycastHit, 200.0f, layerMask);
        Vector3 startPos = raycastHit.point;

        startPos.y -= 1.0f;

        holoPlacement     = GameObject.Instantiate(data.placement, startPos, data.placement.transform.rotation);
        currentlyBuilding = data.prefab;
        currentData       = data;

        initialRotation = holoPlacement.transform.rotation;

        Debug.Log("placing holo for " + name + " at" + startPos + " hitinfo: " + raycastHit);
    }
Example #2
0
    public void handleOption(string option)
    {
        Debug.Log("handling option: " + option);
        BuildingManager.structureData data;

        switch (option)
        {
        case "Info":
            displayInfo();
            break;

        case "BuildReactor":
            data = new BuildingManager.structureData(corePrefab, corePlacement, null, "reactorcore", "reactorcore", new List <ressourceStack> {
                new ressourceStack(250, ressources.Stone),
                new ressourceStack(50, ressources.Wood),
                new ressourceStack(20, ressources.Gold),
                new ressourceStack(200, ressources.Iron)
            },
                                                     isNearReactor);
            GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data);
            GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray());
            break;

        case "BuildBoiler":
            data = new BuildingManager.structureData(boilerPrefab, boilerPlacement, null, "reactorboiler", "reactorboiler", new List <ressourceStack> {
                new ressourceStack(200, ressources.Stone),
                new ressourceStack(200, ressources.Wood),
                new ressourceStack(500, ressources.Iron)
            },
                                                     isNearReactor);
            GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data);
            GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray());
            break;

        case "BuildWall":
            data = new BuildingManager.structureData(wallPrefab, wallPlacement, null, "reactorwall", "reactorwall", new List <ressourceStack> {
                new ressourceStack(100, ressources.Stone),
                new ressourceStack(50, ressources.Iron)
            },
                                                     isNearReactor);
            GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data);
            GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray());
            break;

        case "activate":
            this.gameObject.GetComponent <ReactorLogic>().activate();
            break;

        case "deactivate":
            this.gameObject.GetComponent <ReactorLogic>().deactivate();
            break;

        default:
            break;
        }
    }
Example #3
0
    private void buildingClicked(BuildingManager.structureData data)
    {
        clickDetector.overlayClicked = true;

        print("clicked building icon ! " + data.name);

        InfoClicked preview = Scene_Controller.getInstance().buildPreview.GetComponent <InfoClicked>();

        preview.show();
        preview.setTitle(data.name);
        preview.setDesc(data.description);
        preview.setPrice(data.cost);
        preview.setData(data);
    }
Example #4
0
    public override void handleOption(string option)
    {
        Debug.Log("handling option: " + option);
        BuildingManager.structureData data;

        switch (option)
        {
        case "Info":
            displayInfo();
            break;

        case "BuildHeatReflector":
            data = new BuildingManager.structureData(heatPrefab, heatPlacement, null, "reactorHeat", "reactorHeat",
                                                     new List <ressourceStack> {
                new ressourceStack(250, ressources.Stone),
                new ressourceStack(15, ressources.Gold),
            },
                                                     isNearReactor);
            GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data);
            GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray());
            break;

        case "BuildCoolingGrid":
            data = new BuildingManager.structureData(coolPrefab, coolPlacement, null, "reactorCool", "reactorCool",
                                                     new List <ressourceStack> {
                new ressourceStack(250, ressources.Stone),
                new ressourceStack(300, ressources.Iron)
            },
                                                     isNearReactor);
            GameObject.Find("Terrain").GetComponent <Building>().buildClicked(data);
            GameObject.Find("Terrain").GetComponent <Building>().setOverrideCost(data.cost.ToArray());
            break;

        default:
            break;
        }
    }
Example #5
0
 public void setData(BuildingManager.structureData data)
 {
     currentData = data;
 }