void Show() { Clear(); foreach (SOResearch researchData in Researches) { GameObject newResearchOptionComponent = Instantiate(ResearchComponent, Vector3.zero, Quaternion.identity, (Transform)researchOptionsPanel); ResearchComponent researchComponent = newResearchOptionComponent.GetComponent <ResearchComponent>(); bool isDisabled = uiController.Store["CompletedResearch"][selectedNode.Team].Contains(researchData) || researchData.prerequisites.Any(prerequisite => !uiController.Store["CompletedResearch"][selectedNode.Team].Contains(prerequisite)); researchComponent.Initialize(isDisabled, researchData); researchComponent.Clicked += OnResearchComponentClicked; } view.DOAnchorPos(new Vector2(362, 75), 0.2f); shown = true; }
void OnStoreUpdated(string storeKey) { if (storeKey == "Selection" && uiController.Store[storeKey] != null && uiController.Store[storeKey].GetComponent <BaseNode>() != null) { selectedNode = uiController.Store[storeKey].GetComponent <BaseNode>(); Show(); } if (storeKey == "Selection" && (uiController.Store[storeKey] == null || uiController.Store[storeKey].GetComponent <BaseNode>() == null) && shown) { Hide(); } if (storeKey == "CompletedResearch" && selectedNode != null) { foreach (Transform researchOptionTransform in (Transform)researchOptionsPanel) { ResearchComponent researchComponent = researchOptionTransform.GetComponent <ResearchComponent>(); if (researchComponent.Research.prerequisites.All(prerequisite => uiController.Store["CompletedResearch"][selectedNode.Team].Contains(prerequisite))) { researchComponent.Enable(); } if (uiController.Store["CompletedResearch"][selectedNode.Team].Contains(researchComponent.Research)) { researchComponent.Disable(); } } } if (storeKey == "GameState" && uiController.Store[storeKey] == GameState.Over && shown) { Hide(); } }