| Main/System/Hero/HeroInfo.Properties.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Hero/HeroManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroGiftEatWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroLVBreakWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroPosWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroTrainWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroUIManager.OnTeam.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroUIManager.Reborn.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/HeroUI/HeroUIManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Main/PlayerMainDate.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Team/TeamBase.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/Hero/HeroInfo.Properties.cs
@@ -107,7 +107,7 @@ long tmpFightPower = 0; public long CalculatePower(bool forceRefresh = true) public long CalculateFightPower(bool forceRefresh = true) { if (forceRefresh || tmpFightPower == 0) { Main/System/Hero/HeroManager.cs
@@ -116,8 +116,8 @@ heroList.Sort((a, b) => { long power1 = a.CalculatePower(false); long power2 = b.CalculatePower(false); long power1 = a.CalculateFightPower(false); long power2 = b.CalculateFightPower(false); if (power1 == power2) { Main/System/HeroUI/HeroGiftEatWin.cs
@@ -128,7 +128,7 @@ HeroUIManager.Instance.selectHeroGuidForGiftFuncForSuccessWin = HeroUIManager.Instance.selectHeroGuidForGiftFunc; HeroUIManager.Instance.heroBeforeGiftIDList = new List<int>(hero.talentIDList); HeroUIManager.Instance.heroBeforeGiftLevelList = new List<int>(hero.talentLvList); HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false)); HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculateFightPower(false)); //设置个等待回复的标识 显示成功界面 HeroUIManager.Instance.waitResponse = new WaitHeroFuncResponse() Main/System/HeroUI/HeroLVBreakWin.cs
@@ -106,7 +106,7 @@ var pack = new CB232_tagCSHeroBreak(); pack.ItemIndex = (ushort)hero.itemHero.gridIndex; GameNetSystem.Instance.SendInfo(pack); HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false)); HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculateFightPower(false)); CloseWindow(); //设置个等待回复的标识 显示成功界面 HeroUIManager.Instance.waitResponse = new WaitHeroFuncResponse() Main/System/HeroUI/HeroPosWin.cs
@@ -472,10 +472,33 @@ var guidList = HeroUIManager.Instance.SelectRecommend(); var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType); team.RemoveAllHeroes(); for (int i = 0; i < guidList.Count; i++) if (NewBieCenter.Instance.inGuiding && NewBieCenter.Instance.currentGuide == HeroUIManager.Instance.onekeyGuideID) { team.AddHero(HeroManager.Instance.GetHero(guidList[i]), i, true); //第二个强制排在5号位 if (guidList.Count > 1) { team.AddHero(HeroManager.Instance.GetHero(guidList[1]), 4, true); guidList.RemoveAt(1); } for (int i = 0; i < guidList.Count; i++) { int index = i; if (i >= 4) { index = i + 1; } team.AddHero(HeroManager.Instance.GetHero(guidList[i]), index, true); } } else { for (int i = 0; i < guidList.Count; i++) { team.AddHero(HeroManager.Instance.GetHero(guidList[i]), i, true); } } TeamChangeEvent(new List<int>() { 0, 1, 2, 3, 4, 5 }, -1, Vector3.zero); Main/System/HeroUI/HeroTrainWin.cs
@@ -225,7 +225,7 @@ jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(hero.heroConfig.Class)); jobPosNameText.text = HeroUIManager.Instance.GetJobName(hero.heroConfig.Class); descText.text = hero.heroConfig.Desc; fightPowerText.text = UIHelper.ReplaceLargeArtNum(hero.CalculatePower()); fightPowerText.text = UIHelper.ReplaceLargeArtNum(hero.CalculateFightPower()); PlayerMainDate.Instance.AddPowerNotOnTeam(hero); lockImg.SetActive(hero.isLock); unLockImg.SetActive(!hero.isLock); @@ -468,7 +468,7 @@ ReturnCell(cell); }); HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false)); HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculateFightPower(false)); } } @@ -712,7 +712,7 @@ { if (teamType != TeamType.Story) return; fightPowerText.text = UIHelper.ReplaceLargeArtNum(hero.CalculatePower()); fightPowerText.text = UIHelper.ReplaceLargeArtNum(hero.CalculateFightPower()); } void RefreshFreeze() Main/System/HeroUI/HeroUIManager.OnTeam.cs
@@ -292,12 +292,8 @@ //推荐阵容 public List<string> SelectRecommend() { //推荐阵容的算法逻辑 //自动选择优先级:武将等级>突破等级>武将觉醒阶级>武将品质>武将吞噬星级>武将ID var tmpList = HeroManager.Instance.GetHeroGuidList(); tmpList.Sort(CmpHeroRecommend); //推荐最多6个,存在相同heroid,则跳过 List<string> selectHeroList = new List<string>(); List<int> selectHeroIDList = new List<int>(); @@ -309,6 +305,7 @@ string guid = tmpList[i]; HeroInfo heroInfo = HeroManager.Instance.GetHero(guid); if (selectHeroIDList.Contains(heroInfo.heroId)) //重复英雄 continue; //如果重复了,跳过 if (selectHeroList.Contains(guid)) @@ -316,10 +313,16 @@ selectHeroList.Add(guid); selectHeroIDList.Add(heroInfo.heroId); } // 再按 肉盾>控制>输出>辅助 selectHeroList.Sort(CmpByJob); return selectHeroList; } //!!!新排序规则 //若在新手引导(引导ID)中,如果5号位为空,则优先放置5号位 //按战力排序 int CmpHeroRecommend(string guidA, string guidB) { HeroInfo heroA = HeroManager.Instance.GetHero(guidA); @@ -329,29 +332,46 @@ return 0; } // 排序规则:武将等级>突破等级>武将觉醒阶级>武将品质>武将吞噬星级>武将ID if (heroA.heroLevel != heroB.heroLevel) { return heroA.heroLevel > heroB.heroLevel ? -1 : 1; } if (heroA.breakLevel != heroB.breakLevel) { return heroA.breakLevel > heroB.breakLevel ? -1 : 1; } if (heroA.awakeLevel != heroB.awakeLevel) { return heroA.awakeLevel > heroB.awakeLevel ? -1 : 1; } if (heroA.Quality != heroB.Quality) { return heroA.Quality > heroB.Quality ? -1 : 1; } if (heroA.heroStar != heroB.heroStar) { return heroA.heroStar > heroB.heroStar ? -1 : 1; } // // 排序规则:武将等级>突破等级>武将觉醒阶级>武将品质>武将吞噬星级>武将ID // if (heroA.heroLevel != heroB.heroLevel) // { // return heroA.heroLevel > heroB.heroLevel ? -1 : 1; // } // if (heroA.breakLevel != heroB.breakLevel) // { // return heroA.breakLevel > heroB.breakLevel ? -1 : 1; // } // if (heroA.awakeLevel != heroB.awakeLevel) // { // return heroA.awakeLevel > heroB.awakeLevel ? -1 : 1; // } // if (heroA.Quality != heroB.Quality) // { // return heroA.Quality > heroB.Quality ? -1 : 1; // } // if (heroA.heroStar != heroB.heroStar) // { // return heroA.heroStar > heroB.heroStar ? -1 : 1; // } return heroA.heroId.CompareTo(heroB.heroId); return heroB.CalculateFightPower(false).CompareTo(heroA.CalculateFightPower(false)); } int CmpByJob(string guidA, string guidB) { HeroInfo heroA = HeroManager.Instance.GetHero(guidA); HeroInfo heroB = HeroManager.Instance.GetHero(guidB); if (heroA == null || heroB == null) { return 0; } int indexA = Array.IndexOf(teamSortByJob, heroA.heroConfig.Class); int indexB = Array.IndexOf(teamSortByJob, heroB.heroConfig.Class); return indexA.CompareTo(indexB); } @@ -362,6 +382,10 @@ public int[][] lockHeroCountLimit; public List<int> lockIndexList = new List<int>(); public int[] teamSortByJob; public int onekeyGuideID; public int onekeyGuideFirstPos; //一键上阵在引导下的最优先推荐位置 public Action OnUnLockHeroCountEvent; public int lockState { Main/System/HeroUI/HeroUIManager.Reborn.cs
@@ -265,7 +265,7 @@ pack.ItemIndex = (ushort)hero.itemHero.gridIndex; GameNetSystem.Instance.SendInfo(pack); lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false)); lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculateFightPower(false)); } } Main/System/HeroUI/HeroUIManager.cs
@@ -69,6 +69,10 @@ config = FuncConfigConfig.Get("HeroOnTeam"); lockHeroCountLimit = JsonMapper.ToObject<int[][]>(config.Numerical1); teamSortByJob = JsonMapper.ToObject<int[]>(config.Numerical2); onekeyGuideID = int.Parse(config.Numerical3); onekeyGuideFirstPos = int.Parse(config.Numerical4); } public void OnBeforePlayerDataInitialize() Main/System/Main/PlayerMainDate.cs
@@ -109,7 +109,7 @@ return; } prowNum = hero.CalculatePower(); prowNum = hero.CalculateFightPower(); prowNumChange = prowNum - HeroUIManager.Instance.lastFightPower.Value; HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(); isAdd = prowNumChange > 0; Main/System/Team/TeamBase.cs
@@ -345,6 +345,7 @@ } //checkLock :是否验证上阵人数限制 //targetPosition 从0开始 public void AddHero(HeroInfo heroInfo, int targetPosition, bool checkLock) { if (targetPosition < 0 || targetPosition >= tempHeroes.Length)