Example #1
0
    public static Dictionary <long, StoreTreeNode> getStoreTreeNodeFromList(List <ITreeNode> treeNodeList)
    {
        Dictionary <long, StoreTreeNode> treeNodeDict = new Dictionary <long, StoreTreeNode>();

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

        return(treeNodeDict);
    }
Example #2
0
        public IEnumerable <StoreTreeNode> LoadStore(string canViewStores)
        {
            // 查询一级区域
            var     areaRows = this._query.FindAll <Area>(n => n.Level == 1);
            dynamic param    = new ExpandoObject();

            string where = "";
            if (!string.IsNullOrEmpty(canViewStores))
            {
                where += "and t0.Id in @CanViewStore ";
                param.CanViewStore = canViewStores.Split(',').ToIntArray();
            }
            string sql = "select * from Store t0 where 1=1 {0}";

            sql = string.Format(sql, where);
            var stores = this._query.FindAll <Store>(sql, param) as List <Store>;
            // 组装ztree树形结构
            List <StoreTreeNode> list = new List <StoreTreeNode>();

            foreach (var area in areaRows)
            {
                // 找当前区域门店
                var areaID     = area.Id.Substring(0, 2);
                var areaStores = stores.Where(n => n.AreaId.IndexOf(areaID) == 0);
                //只加载有门店的区域
                if (!areaStores.Any())
                {
                    continue;
                }
                List <StoreTreeNode> storelist = new List <StoreTreeNode>();
                foreach (var store in areaStores)
                {
                    var secondLayer = new StoreTreeNode()
                    {
                        id   = store.Id,
                        code = store.Code,
                        name = store.Name
                    };
                    storelist.Add(secondLayer);
                }
                var firtLayer = new StoreTreeNode()
                {
                    id   = Convert.ToInt32(area.Id),
                    code = area.FullName,
                    name = area.Name
                };
                firtLayer.children = storelist;
                list.Add(firtLayer);
            }
            return(list);
        }
Example #3
0
    //given a gameDataSet, and global flags, return the list of items (and prices) sold
    //dont return items with 0 price (specials, etc)
    public List <StoreItem> getSellList(GameDataSet gameDataSet, Random r)
    {
        List <StoreItem> storeList = new List <StoreItem>();

        var infoNode = treeNodeDictionary[1];

        foreach (var branch in infoNode.getBranchList(this))
        {
            StoreTreeNode storeNode = (StoreTreeNode)this.getNode(branch.linkIndex);
            if (storeNode.content.nodeType == StoreNodeType.ItemClass)
            {
                storeList.AddRange(getSellItemTypeList(storeNode.content.itemType, storeNode.content.sellPrice, storeNode.content.count, storeNode.content.linkIndex, gameDataSet, r));
            }
            else if (storeNode.content.nodeType == StoreNodeType.ItemIndex)
            {
                storeList.Add(getSellItem(storeNode.content.linkIndex, storeNode.content.sellPrice, storeNode.content.count, gameDataSet));
            }
        }
        return(storeList);
    }
Example #4
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);
    }
Example #5
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;
        }