static bool InnerDealMix(DTOSkillCardItem dst, out int newLevel) { newLevel = 0; if (null == dst || !SkillCardConvert.FillSkillCardConfig(dst, true)) { return(false); } newLevel = dst.Cfg.SkillLevel + 1; //int addExp = dst.Exp + 10; //if (!SkillCardCache.Instance().TryCheckSkillLevel(dst.Cfg.SkillClass, addExp, out newLevel)) // return false; //if (dst.Cfg.SkillLevel == newLevel) //{ // dst.Exp = addExp; // return true; //} string newCode = string.Empty; if (!SkillCardCache.Instance().TryGetSkillCode(dst.Cfg.SkillRoot, newLevel, out newCode)) { return(false); } // dst.Exp = addExp; dst.ItemCode = newCode; SkillCardConvert.FillSkillCardConfig(dst, true); return(true); }
List <DTOSkillCardItem> GetShowList(ICollection <DTOSkillCardItem> rawList) { foreach (var item in rawList) { SkillCardConvert.FillSkillCardConfig(item, false); } return(rawList.OrderByDescending(i => i.SkillClass).ThenByDescending(i => i.ItemCode).ThenByDescending(i => i.Exp).ToList()); }
public static RootResponse <DTOSkillSetView> SkillSet(Guid mid, string cids, bool hasTask) { if (string.IsNullOrEmpty(cids) || cids.Length >= 400) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetInvalidArgs)); } string[] skills = cids.Split(','); if (skills.Length != SkillCardConfig.SKILLCardMAXSkillCellSize) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetInvalidArgs)); } int managerLevel = (int)FrameConvert.GetWorthValue(mid, EnumWorthType.ManagerLevel); int maxCells = GetMaxSkillCells(managerLevel); var bag = SkillCardConvert.GetSkillBagWrap(mid); var onlib = new Dictionary <string, DTOSkillSetItem>(bag.SetList.Count); foreach (var item in bag.SetList.Values) { item.Index = 0; onlib[item.ItemId] = item; } int cntCells = 0; DTOSkillSetItem setItem = null; var dicChk = new Dictionary <string, byte>(skills.Length); for (int i = 0; i < skills.Length; ++i) { if (skills[i] == string.Empty) { continue; } if (!onlib.TryGetValue(skills[i], out setItem)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissCard)); } if (!SkillCardConvert.FillSkillCardConfig(setItem, false)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillMissConfig)); } if (dicChk.ContainsKey(setItem.Cfg.SkillRoot)) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetLimitRepeat)); } ++cntCells; setItem.Index = i + 1; dicChk[setItem.Cfg.SkillRoot] = 0; skills[i] = setItem.ItemCode; } if (cntCells > maxCells) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(MessageCode.SkillSetLackofCells)); } string setSkills = string.Join(",", skills); string setMap = bag.SetMap; MemcachedFactory.SolutionClient.Delete(mid); int errorCode = 0; NbManagerskillbagMgr.Set(mid, setSkills, null, setMap, bag.RawBag.RowVersion, ref errorCode); if (errorCode != (int)MessageCode.Success) { return(ResponseHelper.CreateRoot <DTOSkillSetView>(errorCode)); } var data = new DTOSkillSetView(); data.MaxSetCells = maxCells; data.CntSetCells = cntCells; data.SetList = bag.GetShowSet(); //if (hasTask) //{ data.PopMsg = TaskHandler.Instance.SkillSet(mid); //} //data.CardList = bag.GetShowBag(); return(ResponseHelper.CreateRoot <DTOSkillSetView>(data)); }