예제 #1
0
        List <InventoryItemDTO> GetInventoryItemList(List <INVENTORY> inventorys)
        {
            List <InventoryItemDTO> inventoryItemDtos = new List <InventoryItemDTO>();

            for (int i = 0; i < inventorys.Count; i++)
            {
                InventoryInitial inventoryInitial = InventoryInItialProperty.idToInventoryInitial[inventorys[i].Inventoryid];
                InventoryItemDTO itemDto          = new InventoryItemDTO();
                InventoryDto     inventoryDto     = new InventoryDto();
                inventoryDto.id            = inventorys[i].Inventoryid;
                inventoryDto.applyValue    = inventoryInitial.applyValue;
                inventoryDto.equipType     = inventoryInitial.equipType;
                inventoryDto.icon          = inventoryInitial.icon;
                inventoryDto.info          = inventoryInitial.info;
                inventoryDto.infoType      = inventoryInitial.infoType;
                inventoryDto.inventoryType = inventoryInitial.inventoryType;
                inventoryDto.modelName     = inventoryInitial.modelName;
                inventoryDto.name          = inventoryInitial.name;
                inventoryDto.price         = inventoryInitial.price;
                inventoryDto.sell          = inventoryInitial.sell;
                itemDto.inventory          = inventoryDto;
                itemDto.id              = inventorys[i].Id;
                itemDto.userId          = inventorys[i].UserId;
                itemDto.shortcutid      = inventorys[i].ShortcutId;
                itemDto.inventoryGridId = inventorys[i].InventoryGridId;
                itemDto.level           = inventorys[i].Level;
                itemDto.count           = inventorys[i].Count;
                itemDto.IsDressed       = inventorys[i].IsDressed;
                itemDto.starLevel       = inventorys[i].StarLevel;
                itemDto.quality         = inventorys[i].Quality;
                itemDto.attack          = inventorys[i].Attack;
                itemDto.armour          = inventorys[i].Armour;
                itemDto.def             = inventorys[i].Def;
                itemDto.crit            = inventorys[i].Crit;
                itemDto.exemptCrit      = inventorys[i].ExemptCrit;
                itemDto.mp              = inventorys[i].Mp;
                itemDto.speed           = inventorys[i].Speed;
                itemDto.hp              = inventorys[i].Hp;
                inventoryItemDtos.Add(itemDto);
            }
            return(inventoryItemDtos);
        }
예제 #2
0
        InventoryItemDTO GetInventoryItem(INVENTORY inventory)
        {
            InventoryInitial inventoryInitial = InventoryInItialProperty.idToInventoryInitial[inventory.Inventoryid];

            InventoryItemDTO itemDto      = new InventoryItemDTO();
            InventoryDto     inventoryDto = new InventoryDto();

            inventoryDto.id            = inventory.Inventoryid;
            inventoryDto.applyValue    = inventoryInitial.applyValue;
            inventoryDto.equipType     = inventoryInitial.equipType;
            inventoryDto.icon          = inventoryInitial.icon;
            inventoryDto.info          = inventoryInitial.info;
            inventoryDto.infoType      = inventoryInitial.infoType;
            inventoryDto.inventoryType = inventoryInitial.inventoryType;
            inventoryDto.modelName     = inventoryInitial.modelName;
            inventoryDto.name          = inventoryInitial.name;
            inventoryDto.price         = inventoryInitial.price;
            inventoryDto.sell          = inventoryInitial.sell;
            itemDto.inventory          = inventoryDto;
            itemDto.id              = inventory.Id;
            itemDto.userId          = inventory.UserId;
            itemDto.shortcutid      = inventory.ShortcutId;
            itemDto.inventoryGridId = inventory.InventoryGridId;
            itemDto.level           = inventory.Level;
            itemDto.count           = inventory.Count;
            itemDto.IsDressed       = inventory.IsDressed;
            itemDto.starLevel       = inventory.StarLevel;
            itemDto.quality         = inventory.Quality;
            itemDto.attack          = inventory.Attack;
            itemDto.armour          = inventory.Armour;
            itemDto.def             = inventory.Def;
            itemDto.crit            = inventory.Crit;
            itemDto.exemptCrit      = inventory.ExemptCrit;
            itemDto.mp              = inventory.Mp;
            itemDto.speed           = inventory.Speed;
            itemDto.hp              = inventory.Hp;
            return(itemDto);
        }
예제 #3
0
        public InventoryItemDTO AddInventory(NetFrame.UserToken userToken, int inventoryId)
        {
            int userid = userCache.GetUserId(userToken);


            InventoryInitial inventoryInitial = InventoryInItialProperty.idToInventoryInitial[inventoryId];

            if (inventoryInitial.inventoryType == InventoryType.Equip)//是装备类型,不管什么情况都增加一条记录
            {
                INVENTORY inventory = new INVENTORY();
                inventory.Id = index;
                index++;
                inventory.Inventoryid     = inventoryId;
                inventory.UserId          = userid;
                inventory.ShortcutId      = 0;
                inventory.InventoryGridId = -1;
                inventory.Level           = 1;
                inventory.Count           = 1;
                inventory.IsDressed       = false;
                long   tick    = DateTime.Now.Ticks;
                Random random1 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 50));
                Random random2 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
                Random random3 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 42));
                Random random4 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 82));
                Random random5 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 45));
                Random random6 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 16));
                Random random7 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 26));
                Random random8 = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 106));

                inventory.StarLevel  = random6.Next(1, 5);
                inventory.Quality    = random8.Next(1, 5);
                inventory.Attack     = (int)GetValue(random1, inventoryInitial.attack, inventory.StarLevel, inventory.Quality);
                inventory.Armour     = (int)GetValue(random2, inventoryInitial.armour, inventory.StarLevel, inventory.Quality);
                inventory.Def        = (int)GetValue(random3, inventoryInitial.def, inventory.StarLevel, inventory.Quality);
                inventory.Crit       = (int)GetValue(random4, inventoryInitial.crit, inventory.StarLevel, inventory.Quality);
                inventory.ExemptCrit = (int)GetValue(random5, inventoryInitial.exemptCrit, inventory.StarLevel, inventory.Quality);
                inventory.Mp         = (int)GetValue(random7, inventoryInitial.mp, inventory.StarLevel, inventory.Quality);
                inventory.Speed      = 0;
                if (inventoryInitial.speed > 0)
                {
                    float  max   = ((inventoryInitial.speed + ((inventory.StarLevel + inventory.Quality) * 0.05f)));
                    float  min   = max * 0.5f;
                    double speed = random6.NextDouble() * (max - min) + min;
                    inventory.Speed = (float)Math.Round(speed, 1);
                }

                inventory.Hp = (int)GetValue(random8, inventoryInitial.hp, inventory.StarLevel, inventory.Quality);

                return(GetInventoryItem(InventoryCache.AddInventory(userid, inventory)));
            }
            else//非装备类型
            {
                INVENTORY inventory;
                if (InventoryCache.isInInventoryDic(userid, inventoryId))              //判断是否有相同类型的物品
                {
                    inventory = GetInventoryByItem(GetInventory(userid, inventoryId)); //获取相同的物品使数量增加
                    if (inventory != null)
                    {
                        inventory.Count++;
                        return(GetInventoryItem(inventory));
                    }
                }
                inventory    = new INVENTORY(); //没有相同物品,则自己增加一条记录
                inventory.Id = index;
                index++;
                inventory.Inventoryid     = inventoryId;
                inventory.UserId          = userid;
                inventory.ShortcutId      = 0;
                inventory.InventoryGridId = -1;
                inventory.Count           = 1;
                inventory.Level           = 1;
                inventory.IsDressed       = false;
                inventory.StarLevel       = 0;
                inventory.Quality         = 0;
                inventory.Attack          = 0;
                inventory.Armour          = 0;
                inventory.Def             = 0;
                inventory.Crit            = 0;
                inventory.ExemptCrit      = 0;
                inventory.Mp    = 0;
                inventory.Speed = 0;
                inventory.Hp    = 0;
                return(GetInventoryItem(InventoryCache.AddInventory(userid, inventory)));
            }
        }