Beispiel #1
0
 public void Register(BuildingTreeNode node, int questIdx)
 {
     if (_UnlockData.ContainsKey(questIdx))
     {
         _UnlockData[questIdx].Nodes.Add(node);
     }
     else
     {
         _UnlockData.Add(questIdx, new UnlockData());
         Register(node, questIdx);
     }
 }
Beispiel #2
0
    private void Start()
    {
        //Convert EditorTree to Tree
        var placedNodes = new Dictionary <Vector2Int, BuildingTreeNode>();

        _Tree = new List <BuildingTreeNode>();

        foreach (var data in EditorTree)
        {
            var node = new BuildingTreeNode();

            node.Id = data.Id;
            node.NrPrerequisiteNodes = data.NrRequiredNodes;
            node.Cost             = data.Cost;
            node.BuildTime        = data.BuildTime;
            node.AttachedBuilding = data.AttachedBuilding;
            if (data.IsActive)
            {
                node.Activate();
            }

            if (data.QuestIdx >= 0)
            {
                node.IsUnlocked = false;
                ObjectiveManager.Instance.Register(node, data.QuestIdx);
            }

            placedNodes.Add(node.Id, node);
            _Tree.Add(node);
        }

        foreach (var data in EditorTree)
        {
            if (data.UpgradesFrom != new Vector2Int(0, 0))
            {
                placedNodes[data.Id].PrevNode = placedNodes[data.UpgradesFrom];
            }
            if (data.NextNode == new Vector2Int(0, 0))
            {
                continue;
            }

            var node = placedNodes[data.Id];
            node.NextNode = placedNodes[data.NextNode];
        }
    }
Beispiel #3
0
 public void BuildingStarted(BuildingTreeNode node)
 {
     _BuildingsBeingBuilt++;
     _BuildQueue.Add(node);
 }
Beispiel #4
0
 public void BuildingFinished(BuildingTreeNode node)
 {
     _BuildingsBeingBuilt--;
     _BuildQueue.Remove(node);
 }
Beispiel #5
0
 public void FinishedBuilding(BuildingTreeNode node)
 {
     _BuildQueue.Remove(node);
     _NrBuildingsBuilt--;
 }
Beispiel #6
0
 public void AddBuilding(BuildingTreeNode node)
 {
     _BuildQueue.Add(node);
     _NrBuildingsBuilt++;
 }