public ResearchAction CreateResearch(ResearchBase research)
        {
            ResearchAction researchAction = ScriptableObject.CreateInstance <ResearchAction>();

            researchAction.research = research;

            return(researchAction);
        }
Exemple #2
0
 private void UpdateUI()
 {
     foreach (GameObject researchButton in m_ResearchButtons)
     {
         ResearchBase research = researchButton.GetComponentInChildren <ResearchView>().Research;
         bool         fulfilledPrerequisites = research.prerequesites.All(prerequesite => m_ResearchState.AlreadyResearched.Contains(prerequesite));
         researchButton.GetComponentInChildren <Button>().interactable = !m_ResearchState.AlreadyResearched.Contains(research) && fulfilledPrerequisites;
     }
 }
Exemple #3
0
        private void CreateResearchButton(ResearchBase research, Transform parent)
        {
            GameObject researchButton = Instantiate(m_ResearchButtonPrefab, parent);

            GameObject researchViewPrefab = m_ResearchController.GetResearchPrefab(research);
            GameObject researchViewObject = Instantiate(researchViewPrefab, researchButton.transform);

            researchButton.GetComponentInChildren <TextMeshProUGUI>().text = research.displayName;
            researchButton.GetComponentInChildren <Image>().sprite         = researchViewPrefab.GetComponent <ResearchView>().Sprite;
            researchButton.GetComponentInChildren <Button>().onClick.AddListener(() =>
            {
                ResearchButtonClickedInput researchButtonClickedInput = new ResearchButtonClickedInput()
                {
                    research = research
                };
                m_InputController.RegisterInputEvent(researchButtonClickedInput);
            });

            m_ResearchButtons.Add(researchButton);
        }
 public GameObject GetResearchPrefab(ResearchBase research)
 {
     return(availableResearch.Find(researchView => researchView.Research.name == research.name).gameObject);
 }