Esempio n. 1
0
        private List <AirborneGameRunningItemVo> CreateItmeTimeLine(GameJumpItemPB jumpItem)
        {
            GameJumpItemRulePB   itemPb     = GameInfo.GetGameJumpItemRulePB(jumpItem.ReourceId, jumpItem.ItemType);
            GameJumpLevelRulePB  levelPb    = GameInfo.GetGameJumpLevelRule(jumpItem.ItemType);
            GameJumpAppearInfoPB AppearInto = itemPb.AppearInfo;
            int leftCount = jumpItem.Count;

            List <AirborneGameRunningItemVo> list = new List <AirborneGameRunningItemVo>();

            while (leftCount > 0)
            {
                AirborneGameRunningItemVo vo = new AirborneGameRunningItemVo();
                vo.Speed      = itemPb.Speed;
                vo.Itemtype   = itemPb.ItemType;
                vo.ResourceId = itemPb.ReourceId;
                vo.Resource   = (ResourcePB)itemPb.Reource;
                if (leftCount >= levelPb.Num)
                {
                    vo.Count = levelPb.Num;
                }
                else
                {
                    Debug.LogError(" leftCount  is not enough ");
                    vo.Count = leftCount;
                }
                leftCount = leftCount - vo.Count;
                list.Add(vo);
            }
            return(list);
        }
Esempio n. 2
0
        /// <summary>
        /// 设置时间轴
        /// </summary>
        /// <param name="list"></param>
        /// <param name="rulePb"></param>
        private void SetItmeTimeLine(List <AirborneGameRunningItemVo> list, GameJumpItemRulePB rulePb)
        {
            switch (rulePb.AppearInfo.AppearType)
            {
            case AppearTypeEnum.FixedNum:
                SetAppearFixedNum(list, rulePb.AppearInfo);
                break;

            case AppearTypeEnum.Frequency:
                SetAppearFrequency(list, rulePb.AppearInfo);
                break;

            default:
                break;
            }
        }
Esempio n. 3
0
        public void InitRuningData(MyGameJumpStartRes res)
        {
            //需要按照ItemTypeEnum初始化时间轴
            _gameJumpItemDir = new Dictionary <int, Dictionary <ItemTypeEnum, List <AirborneGameRunningItemVo> > >();
            foreach (var v in res.Items)
            {
                GameJumpItemRulePB rulepb = GameInfo.GetGameJumpItemRulePB(v.ReourceId, v.ItemType);
                if (!_gameJumpItemDir.ContainsKey(v.Group))
                {
                    _gameJumpItemDir[v.Group] = new Dictionary <ItemTypeEnum, List <AirborneGameRunningItemVo> >();
                }
                Dictionary <ItemTypeEnum, List <AirborneGameRunningItemVo> > group = _gameJumpItemDir[v.Group];
                if (!group.ContainsKey(v.ItemType))
                {
                    group[v.ItemType] = new List <AirborneGameRunningItemVo>();
                }
                group[v.ItemType].AddRange(CreateItmeTimeLine(v));
            }


            foreach (var v in _gameJumpItemDir)
            {
                foreach (var v1 in v.Value)
                {
                    GameJumpItemRulePB rulepb = GameInfo.GetGameJumpItemRulePB(v1.Value[1].ResourceId, v1.Value[1].Itemtype);
                    Debug.LogError("SetItmeTimeLine     group   " + v.Key + "  AppearTypeEnum  " + rulepb.AppearInfo.AppearType + "  ItemType  " + v1.Key + "   ItemType   " + rulepb.ItemType);
                    Shuffle(v1.Value);
                    SetItmeTimeLine(v1.Value, rulepb);
                    RunningInfo.AddRunningItemsByGroupId(v.Key, v1.Value);
                }
            }

            RunningInfo.SortRunningItems();

            //GenerateRunningInfo();
        }