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