void Start()
    {
        CurrentState = BaseNodeState.Idle;

        gameObject.layer = LayerMask.NameToLayer(Team.ToString());
        setMaterialProperties.SetMaterial(0f, TeamColors.Hues[Team], BaseNodeData.sprite);

        health.Initialize(BaseNodeData);
    }
    void Update()
    {
        if (CurrentState == BaseNodeState.Idle && CurrentResearch != null)
        {
            CurrentState = BaseNodeState.Researching;
            setMaterialProperties.SetMaterial(1f, TeamColors.Hues[Team], BaseNodeData.sprite);
        }

        if (CurrentState == BaseNodeState.Researching && researchProgress >= CurrentResearch.cost)
        {
            CurrentState     = BaseNodeState.Idle;
            researchProgress = 0;

            ResearchCompleted?.Invoke(CurrentResearch, Team);

            int[] techResearched = uiController.Store["TechResearched"];
            techResearched[Team]++;
            uiController.SetValue("TechResearched", techResearched);

            CurrentResearch = null;
            setMaterialProperties.SetMaterial(0f, TeamColors.Hues[Team], BaseNodeData.sprite);
        }
    }