public void checkPlayerObjectCollision(Bounds playerBounds)
    {
        if (tileMapData != null)
        {
            currentNodeIndex = tileMapData.checkObjectCollision(playerBounds) + 1;
            if (currentNodeIndex > 0)
            {
                currentNode = (ZoneTreeNode)zoneTree.getNodeCheckingRootBranchList(currentNodeIndex);
                if (currentNode != null)
                {
                    //Enter battles automatically
                    if (currentNode.content.nodeType == ZoneNodeType.Battle)
                    {
                        ZoneNodeButtonClick();
                    }

                    panelText.text = currentNode.content.nodeName + " " + currentNode.content.description;
                    panelButton.enabled = true;
                }
                else
                {
                    panelText.text = "";
                    panelButton.enabled = false;
                }
            }
            else
            {
                panelText.text = "";
                panelButton.enabled = false;
            }

        }
    }
Beispiel #2
0
 public void checkPlayerObjectCollision(Bounds playerBounds)
 {
     if (tileMapData != null)
     {
         currentNodeIndex = tileMapData.checkObjectCollision(playerBounds) + 1;
         if (currentNodeIndex > 0)
         {
             currentNode = (ZoneTreeNode)zoneTree.getNodeCheckingRootBranchList(currentNodeIndex);
             if (currentNode != null)
             {
                 //Enter battles automatically
                 if (currentNode.content.nodeType == ZoneNodeType.Battle)
                 {
                     ZoneNodeButtonClick();
                 }
                 else if (currentNode.content.nodeType != ZoneNodeType.Lock)
                 {
                     panelText.text      = currentNode.content.nodeName + " " + currentNode.content.description;
                     panelButton.enabled = true;
                 }
             }
             else
             {
                 panelText.text      = "";
                 panelButton.enabled = false;
             }
         }
         else
         {
             panelText.text      = "";
             panelButton.enabled = false;
         }
     }
 }
Beispiel #3
0
    private void loadTileSprites()
    {
        //clear all the object sprites
        foreach (var sprite in objectSpriteList)
        {
            Destroy(sprite);
        }
        objectSpriteList.Clear();

        //only load sprites that match zone flags
        for (int i = 0; i < tileMapData.objectBounds.Count; i++)
        {
            ZoneTreeNode node = (ZoneTreeNode)zoneTree.getNodeCheckingRootBranchList(i + 1);
            if (node != null)
            {
                if (node.content.nodeType == ZoneNodeType.Lock && zoneTree.getLockNodeCollision(i + 1))
                {
                    objectSpriteList.Add(loadTileSprite(node.content.iconSpritesheetName, node.content.iconSpritesheetIndex, tileMapData.objectBounds[i].center));
                }
                else
                {
                    objectSpriteList.Add(loadTileSprite(node.content.spritesheetName, node.content.spritesheetIndex, tileMapData.objectBounds[i].center));
                }
            }
        }
    }
Beispiel #4
0
    public static Dictionary <long, ZoneTreeNode> getZoneTreeNodeFromList(List <ITreeNode> treeNodeList)
    {
        Dictionary <long, ZoneTreeNode> treeNodeDict = new Dictionary <long, ZoneTreeNode>();

        foreach (var node in treeNodeList)
        {
            ZoneTreeNode wNode = (ZoneTreeNode)node;
            treeNodeDict.Add(wNode.index, wNode);
        }

        return(treeNodeDict);
    }
    private void LoadTreeStore()
    {
        //dont select tree, get the tree node from current zone content
        //assuming the parent is a zone type for now
        ZoneTree     parentTree     = (ZoneTree)gameDataObject.treeStore.getCurrentTree();
        ZoneTreeNode parentTreeNode = (ZoneTreeNode)parentTree.getNode(parentTree.currentIndex);
        long         storeLink      = parentTreeNode.content.linkIndex;

        parentTreeLink = gameDataObject.treeStore.currentTreeIndex;

        gameDataObject.treeStore.SelectTree(storeLink);
        storeTree = (StoreTree)gameDataObject.treeStore.getCurrentTree();
    }
Beispiel #6
0
    //iterate through all child box2d colliders.  if the parent isn't collision, disable for collision
    //currently called from playerScript
    public void updateMapCollision()
    {
        var box2dList   = tileMapObject.GetComponentsInChildren <BoxCollider2D>();
        int objectCount = 0;

        foreach (var box2d in box2dList)
        {
            Transform parent = box2d.gameObject.transform.parent;

            string parentName = parent.name;
            if (parentName != "collision")
            {
                if (parentName == "objects")
                {
                    Debug.Log("Checking object collision");
                    //check for lock
                    ZoneTreeNode node = (ZoneTreeNode)zoneTree.getNodeCheckingRootBranchList(objectCount + 1);
                    if (node != null && node.content.nodeType == ZoneNodeType.Lock)
                    {
                        if (zoneTree.getLockNodeCollision(objectCount + 1))
                        {
                            Debug.Log("Removing collision for lock");
                            Physics2D.IgnoreCollision(box2d, playerScript.playerBoxCollider2D);
                        }
                        else
                        {
                            Debug.Log("Enabling collision for lock");
                            Physics2D.IgnoreCollision(box2d, playerScript.playerBoxCollider2D, false);
                        }
                    }
                    else
                    {
                        Physics2D.IgnoreCollision(box2d, playerScript.playerBoxCollider2D);
                    }
                    objectCount++;
                }
                else
                {
                    Physics2D.IgnoreCollision(box2d, playerScript.playerBoxCollider2D);
                }
            }
        }
    }
Beispiel #7
0
    //returns the ZoneTreeNode if its in the root branch list and meets conditions
    public ITreeNode getNodeCheckingRootBranchList(long index)
    {
        var          rootNode = treeNodeDictionary [1];
        ZoneTreeNode node     = (ZoneTreeNode)getNode(index);

        if (index == 1)
        {
            return(rootNode);            //always return the root node (entrance to the zone)
        }
        if (node.content.nodeType == ZoneNodeType.Lock)
        {
            //always return lock nodes, regardless of global flags
            return(node);
        }
        if (rootNode.getBranchList(this).Find(x => x.linkIndex == index) != null)
        {
            return(node);
        }
        return(null);
    }
Beispiel #8
0
    private static ITreeNode getTreeNodeFromDataStr(string nodeDataStr, TreeType treeType)
    {
        var dataList = ParseHelper.getSplitList(nodeDataStr, Environment.NewLine);

        ITreeNode node = null;

        switch (treeType)
        {
        case TreeType.World:

            var worldTreeNode = new WorldTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (WorldNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = worldTreeNode;
            break;

        case TreeType.Zone:
            var zoneTreeNode = new ZoneTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (ZoneNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = zoneTreeNode;
            break;

        case TreeType.Dialog:
            var dialogTreeNode = new DialogTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (DialogNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = dialogTreeNode;
            break;

        case TreeType.Quest:
            var questTreeNode = new QuestTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (QuestNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = questTreeNode;
            break;

        case TreeType.Battle:
            var battleTreeNode = new BattleTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (BattleNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = battleTreeNode;
            break;

        case TreeType.Info:
            var infoTreeNode = new InfoTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (InfoNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = infoTreeNode;
            break;

        case TreeType.Store:
            var storeTreeNode = new StoreTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (StoreNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = storeTreeNode;
            break;

        case TreeType.Cutscene:
            var cutsceneTreeNode = new CutsceneTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (CutsceneNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
            node = cutsceneTreeNode;
            break;

        default: break;
        }

        if (dataList.Count > 3)
        {
            node.flagSetList = getFlagSetFromDataStr(dataList[3]);
        }
        if (dataList.Count > 4)
        {
            node.actionList = getTreeNodeActionListFromDataStr(dataList[4]);
        }

        return(node);
    }
    private static ITreeNode getTreeNodeFromDataStr(string nodeDataStr, TreeType treeType)
    {
        var dataList = ParseHelper.getSplitList(nodeDataStr, Environment.NewLine);

            ITreeNode node = null;
            switch(treeType)
            {
                case TreeType.World:

                    var worldTreeNode =  new WorldTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (WorldNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
                    node = worldTreeNode;
                    break;
                case TreeType.Zone:
                    var zoneTreeNode = new ZoneTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (ZoneNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
                    node = zoneTreeNode;
                    break;
                case TreeType.Dialog:
                    var dialogTreeNode = new DialogTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (DialogNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
                node = dialogTreeNode;
                    break;
                case TreeType.Quest:
                    var questTreeNode = new QuestTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (QuestNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
                    node = questTreeNode;
                    break;
                case TreeType.Battle:
                    var battleTreeNode = new BattleTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (BattleNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
                    node = battleTreeNode;
                    break;
                case TreeType.Info:
                     var infoTreeNode = new InfoTreeNode(Int64.Parse(dataList[0]), dataList[1], null, null, (InfoNodeContent)getTreeNodeContentFromStr(dataList[2], treeType));
                   node = infoTreeNode;
                    break;
                default: break;
            }

            if (dataList.Count > 3)
            {
                node.flagSetList = getFlagSetFromDataStr(dataList[3]);
            }
            if (dataList.Count > 4)
            {
                node.actionList = getTreeNodeActionListFromDataStr(dataList[4]);
            }

            return node;
    }