public static string GenItemsMap(GenItemProdu itemProdu) { if (null == itemProdu) { return(string.Empty); } return(itemProdu.ItemMap); }
public static void GenItems(GenItemProdu produ, IEnumerable <GenItemProto> protos, bool clearFlag = false) { if (clearFlag) { produ.Clear(); } foreach (var item in protos) { GenItem(produ, item); } }
public static GenItemProdu GenItemProdu(IEnumerable <GenItemProto> protos) { if (null == protos) { return(null); } var obj = new GenItemProdu(); GenItems(obj, protos); return(obj); }
public static void GenItem(GenItemProdu produ, GenItemProto proto, int qty = 0) { if (null == produ || null == proto) { return; } if (qty <= 0) { qty = proto.Qty; } switch ((EnumItemGenType)proto.GenType) { case EnumItemGenType.Coin: produ.Coin += qty; return; case EnumItemGenType.Point: produ.Point += qty; return; case EnumItemGenType.Prestige: produ.Prestige += qty; return; } if (qty == 0) { qty = 1; } int itemCode = 0; for (int i = 0; i < qty; i++) { switch ((EnumItemGenType)proto.GenType) { case EnumItemGenType.SpecItem: itemCode = proto.ItemCode; break; case EnumItemGenType.RandItem: break; case EnumItemGenType.SpecRandItem: case EnumItemGenType.LibRandItem: case EnumItemGenType.MultiRandSuit: int cnt = null == proto.ItemList ? 0 : proto.ItemList.Count; if (cnt == 0) { return; } itemCode = cnt == 1 ? proto.ItemList[0] : proto.ItemList[RandomPicker.RandomInt(0, cnt - 1)]; break; } if (itemCode == 0) { return; } if (proto.GenType == (int)EnumItemGenType.MultiRandSuit) { var suits = LotteryCache.Instance.LotteryEquipmentSuitRange(itemCode, proto.ItemRank); if (null == suits || suits.Count == 0) { return; } foreach (int code in suits) { produ.PackItems.Add(new LotteryEntity(code, code.ToString(), proto.Strength, proto.BindFlag > 0)); } return; } if (proto.GenType == (int)EnumItemGenType.LibRandItem) { itemCode = LotteryCache.Instance.LotteryByLib(itemCode); if (itemCode == 0) { return; } } if (proto.ItemType == (int)EnumItemType.MallItem) { produ.PackItems.Add(new LotteryEntity(itemCode, itemCode.ToString(), proto.Strength, proto.BindFlag > 0, qty)); return; } produ.PackItems.Add(new LotteryEntity(itemCode, itemCode.ToString(), proto.Strength, proto.BindFlag > 0)); } }