示例#1
0
        public void OnEndDependency(UpgradeDependencyMode mode)
        {
            if (startNode != null)
            {
                if (lastNode != null)
                {
                    var success = NodeDependencies.CreateDependency(startNode, lastNode, config.techConfig, mode);
                    if (success)
                    {
                        UpdateContents();
                    }
                    lastNode.ActivatingLinkEnd();
                }
                startNode.ActivatingLinkEnd();
                startNode = null;
            }

            if (depLine != null)
            {
                if (nodeRoot.Contains(depLine))
                {
                    nodeRoot.Remove(depLine);
                }
                depLine = null;
            }
        }
示例#2
0
        public static bool CreateDependency(Node from, Node to, TechConfig techConfig, UpgradeDependencyMode mode)
        {
            if (from.GetHashCode() == to.GetHashCode())
            {
                return(false);
            }

            switch (mode)
            {
            case UpgradeDependencyMode.AddAction:
                return(AddAction(from, to, techConfig));

            case UpgradeDependencyMode.CreateTechRequirement:
                return(AddTechRequirement(from, to, techConfig));

            case UpgradeDependencyMode.RemoveAction:
                return(RemoveAction(from, to, techConfig));

            case UpgradeDependencyMode.RemoveTechRequirement:
                return(RemoveTechRequirement(from, to, techConfig));

            default:
                Debug.LogWarning($"Unhandled dependency mode: {mode}");
                return(false);
            }
        }