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); }
/// <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; } }
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(); }