private void OnEnteredSubNode(Node node) { OnEnter?.Invoke(node); lastSubNode = (UpgradeSubNode)node; if (isActivatingNewLink && activatingSubNode == null) { lastSubNode.ActivatingLinkStart(); Element.VisualElement.RemoveFromClassList(ActivatingLinkClass); } }
private void OnLeftSubNode(Node node) { OnLeave?.Invoke(node); if (lastSubNode == node) { lastSubNode = null; } if (isActivatingNewLink && activatingSubNode == null) { node.ActivatingLinkEnd(); Element.VisualElement.AddToClassList(ActivatingLinkClass); } }
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); }
public override void ActivatingLinkEnd() { isActivatingNewLink = false; lastSubNode?.ActivatingLinkEnd(); if (activatingSubNode != null) { activatingSubNode.ActivatingLinkEnd(); activatingSubNode = null; } else { base.ActivatingLinkEnd(); } }
public override void ActivatingLinkStart() { if (IsGroupActivatingNewLink) { return; } isActivatingNewLink = true; if (lastSubNode != null) { activatingSubNode = lastSubNode; activatingSubNode.ActivatingLinkStart(); } else { base.ActivatingLinkStart(); } }