Esempio n. 1
0
 private void OnEnteredSubNode(Node node)
 {
     OnEnter?.Invoke(node);
     lastSubNode = (UpgradeSubNode)node;
     if (isActivatingNewLink && activatingSubNode == null)
     {
         lastSubNode.ActivatingLinkStart();
         Element.VisualElement.RemoveFromClassList(ActivatingLinkClass);
     }
 }
Esempio n. 2
0
        private void OnLeftSubNode(Node node)
        {
            OnLeave?.Invoke(node);
            if (lastSubNode == node)
            {
                lastSubNode = null;
            }

            if (isActivatingNewLink && activatingSubNode == null)
            {
                node.ActivatingLinkEnd();
                Element.VisualElement.AddToClassList(ActivatingLinkClass);
            }
        }
Esempio n. 3
0
        public UpgradeSubNode GetSubNode(UpgradeAction.UpgradeDetails upgradeDetails)
        {
            var subUpgradeHash = UpgradeSubNode.GenerateHash(upgradeDetails);
            var subNode        = subNodes.FirstOrDefault(n => n.GetHash() == subUpgradeHash);

            if (subNode == null)
            {
                var index = action.upgradeDetails.ToList().FindIndex(u => u.tech == upgradeDetails.tech);
                subNode = new UpgradeSubNode(this, upgradeDetails, index);
                subNodes.Add(subNode);
            }

            return(subNode);
        }
Esempio n. 4
0
        public override void ActivatingLinkEnd()
        {
            isActivatingNewLink = false;

            lastSubNode?.ActivatingLinkEnd();
            if (activatingSubNode != null)
            {
                activatingSubNode.ActivatingLinkEnd();
                activatingSubNode = null;
            }
            else
            {
                base.ActivatingLinkEnd();
            }
        }
Esempio n. 5
0
        public override void ActivatingLinkStart()
        {
            if (IsGroupActivatingNewLink)
            {
                return;
            }

            isActivatingNewLink = true;
            if (lastSubNode != null)
            {
                activatingSubNode = lastSubNode;
                activatingSubNode.ActivatingLinkStart();
            }
            else
            {
                base.ActivatingLinkStart();
            }
        }