Пример #1
0
    public void TryBuild(GameObject building)
    {
        if (!building.GetComponent <ConstructionPlan>() || !building.GetComponentInChildren <SpriteRenderer>() || !building.GetComponent <BuildingDisplay>())
        {
            return;
        }

        playerInput.CurrentState = State.build;
        currentBuilding          = building;
        currentBuildingDisplay   = currentBuilding.GetComponent <BuildingDisplay>();
        currentBuildingDisplay.Init();
        currentConstructionPlan = currentBuilding.GetComponent <ConstructionPlan>();
        offset = currentConstructionPlan.offset;
    }
Пример #2
0
    protected void Init()
    {
        villagerList.AddRange(FindObjectsOfType <BaseVillager>());

        cameraReference = Camera.main;

        controller = cameraReference.GetComponent <PlayerController>();

        mainUI       = Instantiate(Resources.Load("UI/MainUI")) as GameObject;
        woodText     = mainUI.GetComponentsInChildren <Text>()[0];
        stoneText    = mainUI.GetComponentsInChildren <Text>()[1];
        foodText     = mainUI.GetComponentsInChildren <Text>()[2];
        villagerText = mainUI.GetComponentsInChildren <Text>()[3];


        questMenu        = Instantiate(Resources.Load("UI/QuestMenuPanel")) as GameObject;
        characterMenu    = Instantiate(Resources.Load("UI/CharacterMenuPanel")) as GameObject;
        characterScroll  = characterMenu.GetComponentInChildren <CharacterDisplay>().gameObject;
        characterDisplay = characterScroll.GetComponent <CharacterDisplay>();
        characterInfo    = Instantiate(Resources.Load("UI/SelectedCharacterInfo")) as GameObject;

        buildingMenu    = Instantiate(Resources.Load("UI/BuildingMenuPanel")) as GameObject;
        buildingPanel   = buildingMenu.GetComponentInChildren <HorizontalLayoutGroup>().gameObject;
        buildingInfo    = Instantiate(Resources.Load("UI/BuildingInfoPanel")) as GameObject;
        buildingDisplay = buildingInfo.GetComponentInChildren <BuildingDisplay>();

        lossPanel = Instantiate(Resources.Load("UI/GameOverPanel")) as GameObject;

        inventoryPanel = Instantiate(Resources.Load("UI/InventoryPanel")) as GameObject;
        inventoryPanel.GetComponentInChildren <Dropdown>().onValueChanged.AddListener(delegate { inventoryReference.SortItems(inventoryPanel.GetComponentInChildren <Dropdown>().value); });

        pauseMenu = Instantiate(Resources.Load("UI/PauseMenu")) as GameObject;

        if (!GetComponent <InventoryBase>())
        {
            inventoryReference = gameObject.AddComponent <InventoryBase>();
        }
        else
        {
            inventoryReference = GetComponent <InventoryBase>();
        }

        if (!GetComponent <QuestManager>())
        {
            questManager = gameObject.AddComponent <QuestManager>();
        }
        else
        {
            questManager = GetComponent <QuestManager>();
        }

        pauseMenu.GetComponentsInChildren <Button>()[0].onClick.AddListener(delegate { TogglePauseMenu(true); });
        pauseMenu.GetComponentsInChildren <Button>()[1].onClick.AddListener(RestartGame);
        pauseMenu.GetComponentsInChildren <Button>()[2].onClick.AddListener(SaveQuit);

        questMenu.GetComponentInChildren <Button>().onClick.AddListener(delegate { ToggleQuestMenu(true); });
        characterMenu.GetComponentInChildren <Button>().onClick.AddListener(ToggleCharacterMenu);

        //Incident Panel
        incidentPanel = Instantiate(Resources.Load("UI/AttackArrivalPanel")) as GameObject;

        //Loss Panel
        lossPanel.GetComponentsInChildren <Button>()[0].onClick.AddListener(RestartGame);
        lossPanel.GetComponentsInChildren <Button>()[1].onClick.AddListener(ReturnToMenu);

        //Build Menu
        buildingText = buildingMenu.transform.GetChild(1).gameObject;
        buildingText.GetComponentsInChildren <Button>()[0].onClick.AddListener(CreateBuilding);
        buildingText.GetComponentsInChildren <Button>()[1].onClick.AddListener(CloseBuildingMenu);

        buildingMenu.GetComponentsInChildren <Button>()[0].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingTownHall") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[1].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingWall") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[2].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingHouse") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[3].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingFarm") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[4].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingLumbercamp") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[5].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingMiningcamp") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[6].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingBarracks") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[7].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingOutpost") as GameObject); });
        buildingMenu.GetComponentsInChildren <Button>()[8].onClick.AddListener(delegate { SelectBuilding(Resources.Load("Buildings/BuildingBlacksmith") as GameObject); });

        //Barracks Buttons
        buildingInfo.GetComponentsInChildren <Button>()[0].onClick.AddListener(delegate { AddingCharacter(0); });
        buildingInfo.GetComponentsInChildren <Button>()[1].onClick.AddListener(delegate { AddingCharacter(1); });
        buildingInfo.GetComponentsInChildren <Button>()[2].onClick.AddListener(delegate { AddingCharacter(2); });
        buildingInfo.GetComponentsInChildren <Button>()[3].onClick.AddListener(delegate { AddingCharacter(3); });

        //Blacksmith Buttons
        buildingInfo.GetComponentsInChildren <Button>()[4].onClick.AddListener(delegate { AddingCharacter(0); });
        buildingInfo.GetComponentsInChildren <Button>()[5].onClick.AddListener(delegate { AddingCharacter(1); });

        //Farm Buttons
        buildingInfo.GetComponentsInChildren <Button>()[7].onClick.AddListener(delegate { AddingCharacter(0); });
        buildingInfo.GetComponentsInChildren <Button>()[8].onClick.AddListener(delegate { AddingCharacter(1); });
        buildingInfo.GetComponentsInChildren <Button>()[9].onClick.AddListener(delegate { AddingCharacter(2); });
        buildingInfo.GetComponentsInChildren <Button>()[10].onClick.AddListener(delegate { AddingCharacter(3); });

        //Lumbermill Buttons
        buildingInfo.GetComponentsInChildren <Button>()[11].onClick.AddListener(delegate { AddingCharacter(0); });
        buildingInfo.GetComponentsInChildren <Button>()[12].onClick.AddListener(delegate { AddingCharacter(1); });
        buildingInfo.GetComponentsInChildren <Button>()[13].onClick.AddListener(delegate { AddingCharacter(2); });
        buildingInfo.GetComponentsInChildren <Button>()[14].onClick.AddListener(delegate { AddingCharacter(3); });

        //MiningCamp Buttons
        buildingInfo.GetComponentsInChildren <Button>()[15].onClick.AddListener(delegate { AddingCharacter(0); });
        buildingInfo.GetComponentsInChildren <Button>()[16].onClick.AddListener(delegate { AddingCharacter(1); });
        buildingInfo.GetComponentsInChildren <Button>()[17].onClick.AddListener(delegate { AddingCharacter(2); });
        buildingInfo.GetComponentsInChildren <Button>()[18].onClick.AddListener(delegate { AddingCharacter(3); });

        //Outpost Buttons
        buildingInfo.GetComponentsInChildren <Button>()[19].onClick.AddListener(delegate { AddingCharacter(0); });
        buildingInfo.GetComponentsInChildren <Button>()[20].onClick.AddListener(delegate { AddingCharacter(1); });

        //Townhall Buttons
        buildingInfo.GetComponentsInChildren <Button>()[21].onClick.AddListener(delegate { AddingCharacter(0); });
        buildingInfo.GetComponentsInChildren <Button>()[22].onClick.AddListener(delegate { AddingCharacter(1); });
        buildingInfo.GetComponentsInChildren <Button>()[23].onClick.AddListener(delegate { AddingCharacter(2); });
        buildingInfo.GetComponentsInChildren <Button>()[24].onClick.AddListener(delegate { AddingCharacter(3); });

        controller.Init(inventoryPanel, characterInfo, buildingInfo, this);
        characterDisplay.Init(this, characterMenu.GetComponentInChildren <Scrollbar>());
        questManager.Init(questMenu, questMenu.GetComponentInChildren <HorizontalLayoutGroup>().gameObject);
        inventoryReference.Init(inventoryPanel, controller);

        buildingPanelPositionStart = buildingPanel.transform.position;
        buildingPanelPositionEnd   = new Vector3(buildingPanel.transform.position.x - 570, buildingPanel.transform.position.y, buildingPanel.transform.position.z);

        buildingMenu.GetComponentInChildren <Scrollbar>().onValueChanged.AddListener(ScrollBuildingMenu);

        buildingDisplay.Init();

        mainUI.GetComponentsInChildren <Button>()[0].onClick.AddListener(controller.OpenInventory);
        mainUI.GetComponentsInChildren <Button>()[1].onClick.AddListener(ToggleBuildingMenu);
        mainUI.GetComponentsInChildren <Button>()[2].onClick.AddListener(OpenQuestMenu);
        mainUI.GetComponentsInChildren <Button>()[3].onClick.AddListener(ToggleCharacterMenu);
        mainUI.GetComponentsInChildren <Button>()[4].onClick.AddListener(RestartGame);
        mainUI.GetComponentsInChildren <Button> () [5].onClick.AddListener(delegate { TogglePauseMenu(false); });

        Debug.Log("Init Successful");
    }