Ejemplo n.º 1
0
 public static string GenItemsMap(GenItemProdu itemProdu)
 {
     if (null == itemProdu)
     {
         return(string.Empty);
     }
     return(itemProdu.ItemMap);
 }
Ejemplo n.º 2
0
 public static void GenItems(GenItemProdu produ, IEnumerable <GenItemProto> protos, bool clearFlag = false)
 {
     if (clearFlag)
     {
         produ.Clear();
     }
     foreach (var item in protos)
     {
         GenItem(produ, item);
     }
 }
Ejemplo n.º 3
0
        public static GenItemProdu GenItemProdu(IEnumerable <GenItemProto> protos)
        {
            if (null == protos)
            {
                return(null);
            }
            var obj = new GenItemProdu();

            GenItems(obj, protos);
            return(obj);
        }
Ejemplo n.º 4
0
        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));
            }
        }