/// <summary> /// 传承人或被传承人、传承类型选择 /// </summary> /// <param name="userID"></param> /// <param name="generalHeritagesList"></param> /// <param name="type"></param> public static void HeritageGeneral(GameUser user, int type) { if (user.HeritageList.Count == 0) { return; } GeneralHeritage heritage = user.HeritageList.Find(m => m.Type == HeritageType.Heritage); GeneralHeritage hGernal = user.HeritageList.Find(m => m.Type == HeritageType.IsHeritage); if (heritage == null || hGernal == null) { return; } var cacheSet = new GameDataCacheSet <UserGeneral>(); UserGeneral ugeneral = cacheSet.FindKey(user.UserID, heritage.GeneralID); UserGeneral general = cacheSet.FindKey(user.UserID, hGernal.GeneralID); if (ugeneral == null || general == null) { return; } heritage.GeneralLv = ugeneral.GeneralLv; OpsInfo info = HeritageOpsInfo(type); if (info != null) { int generLv = (heritage.GeneralLv * info.Num).ToFloorInt(); //().ToShort(); if (generLv < general.GeneralLv) { generLv = general.GeneralLv; } hGernal.GeneralLv = generLv.ToShort(); hGernal.opsType = type; } }
public override bool TakeAction() { int generalID = 0; int heGeneralID = 0; short generalLv = 0; List <UserGeneral> generalList = new List <UserGeneral>(); if (ContextUser.HeritageList.Count > 0) { GeneralHeritage heritageGenral = ContextUser.HeritageList.Find(m => m.Type == HeritageType.IsHeritage); if (heritageGenral != null) { generalLv = MathUtils.Addition(heritageGenral.GeneralLv, 3.ToShort()); heGeneralID = heritageGenral.GeneralID; } } if (heritageType == HeritageType.Heritage) { generalList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID, u => u.GeneralID != heGeneralID && u.GeneralLv >= generalLv && u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralType != GeneralType.Soul); } else if (heritageType == HeritageType.IsHeritage) { int isGeneralID = 0; GeneralHeritage IsGenral = ContextUser.HeritageList.Find(m => m.Type == HeritageType.IsHeritage); if (IsGenral != null) { isGeneralID = IsGenral.GeneralID; } generalList = new GameDataCacheSet <UserGeneral>().FindAll(ContextUser.UserID, u => u.GeneralStatus == GeneralStatus.DuiWuZhong && u.GeneralID != generalID && u.GeneralID != isGeneralID && u.GeneralID != heGeneralID && u.GeneralType != GeneralType.Soul); } foreach (var userGeneral in generalList) { if (!EmbattleHelper.IsEmbattleGeneral(userGeneral.UserID, userGeneral.GeneralID)) { generalArray.Add(userGeneral); } } return(true); }
public override bool TakeAction() { UserGeneral userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (userGeneral == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St1405_GeneralIDNotEnough; return(false); } if (ops == 1) { //佣兵离队时,传承清空 if (ContextUser.HeritageList.Count > 0) { GeneralHeritage heritage = ContextUser.HeritageList.Find(m => m.GeneralID == generalID); if (heritage != null) { ContextUser.HeritageList = new CacheList <GeneralHeritage>(); } } List <UserEmbattle> embattleArray = new GameDataCacheSet <UserEmbattle>().FindAll(ContextUser.UserID, u => u.GeneralID == generalID); foreach (UserEmbattle embattle in embattleArray) { embattle.GeneralID = 0; } if (userGeneral.GeneralID == LanguageManager.GetLang().GameUserGeneralID) { this.ErrorCode = LanguageManager.GetLang().ErrorCode; this.ErrorInfo = LanguageManager.GetLang().St1405_LiDuiNotFilter; return(false); } userGeneral.GeneralStatus = GeneralStatus.LiDui; } return(true); }
public override bool TakeAction() { CacheList <GeneralHeritage> heritageList = new CacheList <GeneralHeritage>(); GeneralHeritage heritage = new GeneralHeritage(); UserGeneral general = new PersonalCacheStruct <UserGeneral>().FindKey(ContextUser.UserID, generalID); if (general == null) { return(false); } if (ContextUser.HeritageList.Count > 0) { heritageList = ContextUser.HeritageList; if (heritageList.Find(m => m.Type == heritageType) != null) { heritage = heritageList.Find(m => m.Type == heritageType); } } if (heritageType == HeritageType.Heritage) { int opsid = 0; OpsInfo opsInfo = GeneralHelper.HeritageOpsInfo(opsid); GeneralHeritage gHeritage = heritageList.Find(m => m.Type == HeritageType.IsHeritage); if (opsInfo != null) { short genlv = MathUtils.Addition(gHeritage == null ? 0.ToShort() : gHeritage.GeneralLv, 3.ToShort()); if (gHeritage != null && general.GeneralLv < genlv) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1418_HeritageLvLow; return(false); } ContextUser.HeritageList.Remove(heritage); heritage.GeneralID = generalID; heritage.Type = heritageType; heritage.GeneralLv = MathUtils.RoundCustom(heritage.GeneralLv * opsInfo.Num).ToShort(); heritage.GeneralLv = general.GeneralLv; heritage.PowerNum = MathUtils.RoundCustom(heritage.PowerNum * opsInfo.Num).ToShort(); if (heritage.PowerNum < general.TrainingPower) { heritage.PowerNum = general.TrainingPower; } heritage.SoulNum = MathUtils.RoundCustom(heritage.SoulNum * opsInfo.Num).ToShort(); if (heritage.SoulNum < general.SoulNum) { heritage.SoulNum = general.TrainingSoul; } heritage.IntellectNum = MathUtils.RoundCustom(heritage.IntellectNum * opsInfo.Num).ToShort(); if (heritage.IntellectNum < general.IntellectNum) { heritage.IntellectNum = general.TrainingIntellect; } heritage.opsType = 1; ContextUser.HeritageList.Add(heritage); } } else if (heritageType == HeritageType.IsHeritage) { ContextUser.HeritageList = new CacheList <GeneralHeritage>(); heritage.GeneralID = generalID; heritage.GeneralLv = general.GeneralLv; heritage.Type = heritageType; heritage.PowerNum = general.TrainingPower; heritage.SoulNum = general.TrainingSoul; heritage.IntellectNum = general.TrainingIntellect; ContextUser.HeritageList.Add(heritage); } return(true); }
public override bool TakeAction() { List <GeneralHeritage> heritageList = new List <GeneralHeritage>(); if (ContextUser.HeritageList.Count > 0) { heritageList = ContextUser.HeritageList.ToList(); GeneralHeritage heritage = heritageList.Find(m => m.Type == HeritageType.Heritage); GeneralHeritage gheritage = heritageList.Find(m => m.Type == HeritageType.IsHeritage); if (heritage == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1418_HeritageNotEnough; return(false); } else if (gheritage == null) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1419_IsHeritageNotEnough; return(false); } var cacheSet = new GameDataCacheSet <UserGeneral>(); UserGeneral general = cacheSet.FindKey(ContextUser.UserID, heritage.GeneralID); UserGeneral heritagegeneral = cacheSet.FindKey(ContextUser.UserID, gheritage.GeneralID); if (general == null || heritagegeneral == null || general.GeneralID == heritagegeneral.GeneralID) { return(false); } if (general.GeneralID == heritagegeneral.GeneralID) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1419_HeritageNotInIsHeritage; return(false); } if (general.HeritageType == HeritageType.Heritage) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1419_HeritageInUse; return(false); } int useGold = 0; int opsType = 0; int vipLv = 0; if (ops == 1) { ErrorCode = ops; if (!IsNomalHeritage(ContextUser.UserID, ops)) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St1419_DanInsufficientHeritage; return(false); } } else if (ops == 2) { opsType = 2; useGold = HeritageUseGold(opsType, out vipLv); ErrorCode = ops; ErrorInfo = string.Format(LanguageManager.GetLang().St1419_GoldHeritage, useGold); return(false); } else if (ops == 3) { opsType = 2; useGold = HeritageUseGold(opsType, out vipLv); if (ContextUser.GoldNum < useGold) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough; return(false); } if (gheritage.opsType != opsType) { return(false); } ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold); } else if (ops == 4) { opsType = 3; useGold = HeritageUseGold(opsType, out vipLv); ErrorCode = ops; ErrorInfo = string.Format(LanguageManager.GetLang().St1419_ExtremeHeritage, useGold); return(false); } else if (ops == 5) { opsType = 3; useGold = HeritageUseGold(opsType, out vipLv); if (vipLv > ContextUser.VipLv) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_VipNotEnough; return(false); } if (ContextUser.GoldNum < useGold) { ErrorCode = LanguageManager.GetLang().ErrorCode; ErrorInfo = LanguageManager.GetLang().St_GoldNotEnough; return(false); } if (gheritage.opsType != opsType) { return(false); } ContextUser.UseGold = MathUtils.Addition(ContextUser.UseGold, useGold); } ErrorCode = ops; heritagegeneral.GeneralLv = gheritage.GeneralLv; general.GeneralStatus = GeneralStatus.YinCang; var embattleList = new GameDataCacheSet <UserEmbattle>().FindAll(ContextUser.UserID, s => s.GeneralID == general.GeneralID); foreach (var embattle in embattleList) { embattle.GeneralID = 0; } //heritagegeneral.TrainingPower = gheritage.PowerNum; //heritagegeneral.TrainingSoul = gheritage.SoulNum; //heritagegeneral.TrainingIntellect = gheritage.IntellectNum; //heritagegeneral.HeritageType = HeritageType.IsHeritage; //general.HeritageType = HeritageType.Heritage; ContextUser.HeritageList = new CacheList <GeneralHeritage>(); ErrorInfo = LanguageManager.GetLang().St1419_HeritageSuccess; } return(true); }