From 973edc44a04dceb8b48a32ca912e6167f86189d4 Mon Sep 17 00:00:00 2001 From: yyl <yyl> Date: 星期一, 25 八月 2025 17:38:02 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts --- Main/System/HeroUI/HeroTrainWin.cs | 139 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 114 insertions(+), 25 deletions(-) diff --git a/Main/System/HeroUI/HeroTrainWin.cs b/Main/System/HeroUI/HeroTrainWin.cs index 513bb57..08b9b17 100644 --- a/Main/System/HeroUI/HeroTrainWin.cs +++ b/Main/System/HeroUI/HeroTrainWin.cs @@ -39,6 +39,7 @@ [SerializeField] Image countryImg; [SerializeField] Text awakeLVText; + //灞炴�у尯 [SerializeField] Button attrBtn; [SerializeField] Image unfoldImg; //灞曞紑鏃舵寜閽殑鍥炬爣 [SerializeField] Image foldImg; //鏀惰捣鏃舵寜閽殑鍥炬爣 @@ -59,8 +60,15 @@ [SerializeField] LongPressButton lvupBtn; [SerializeField] Button allAttrBtn; [SerializeField] Text allPotentialText; //娼滆兘 + [SerializeField] Text[] fetterText; //缇佺粖 + [SerializeField] Text[] fetterNameText; //缇佺粖 + + string guid; HeroInfo hero; + + + protected override void InitComponent() { showFuncBtn.AddListener(() => @@ -81,7 +89,7 @@ ChangeHero(-1); }); - lockBtn.AddListener(SetLockState); + lockBtn.AddListener(() => { hero.ChangeLockState(); }); resetBtn.AddListener(ResetBtnClick); deleteBtn.AddListener(DeleteHero); awakeBtn.AddListener(() => @@ -119,6 +127,7 @@ { PackManager.Instance.RefreshItemLockEvent += RefreshItemLockEvent; HeroManager.Instance.onHeroChangeEvent += RefreshHeroEvent; + UIManager.Instance.OnCloseWindow += OnCloseWindow; guid = HeroUIManager.Instance.selectHeroGuid; hero = HeroManager.Instance.GetHero(guid); unfoldState = false; @@ -130,17 +139,30 @@ { PackManager.Instance.RefreshItemLockEvent -= RefreshItemLockEvent; HeroManager.Instance.onHeroChangeEvent -= RefreshHeroEvent; + UIManager.Instance.OnCloseWindow -= OnCloseWindow; } - + private void OnCloseWindow(UIBase closeUI) + { + //鍏朵粬鐣岄潰鍒犻櫎姝﹀皢浼氬奖鍝嶉�昏緫 + if (closeUI is HeroDeleteWin) + { + HeroUIManager.Instance.SortHeroList(); + if (HeroManager.Instance.GetHero(guid) == null) + { + CloseWindow(); + } + } + } public override void Refresh() { - roleLhModel.Create(hero.SkinID, 0.6f, motionName: "", isLh: true); + roleLhModel.Create(hero.SkinID, HeroUIManager.lihuiScale, motionName: "", isLh: true); roleXsModel.Create(hero.SkinID); 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()); + PlayerMainDate.Instance.AddPowerNotOnTeam(hero); lockImg.SetActive(hero.isLock); unLockImg.SetActive(!hero.isLock); nameText.text = hero.breakLevel == 0 ? hero.heroConfig.Name : Language.Get("herocardbreaklv", hero.heroConfig.Name, hero.breakLevel); @@ -161,6 +183,7 @@ RefreshFoldState(); RefreshAttr(); RefreshAllPotential(); + RefreshFetter(); } void RefreshItemLockEvent(PackType type, string guid, bool lockState) @@ -210,14 +233,6 @@ Refresh(); } - void SetLockState() - { - var pack = new CB238_tagCSHeroLock(); - pack.ItemIndex = (ushort)hero.itemHero.gridIndex; - pack.IsLock = hero.isLock ? (byte)0 : (byte)1; - GameNetSystem.Instance.SendInfo(pack); - } - void ResetBtnClick() { //鍗囩骇銆佺獊鐮淬�佽閱� @@ -231,7 +246,7 @@ var payBack1 = CommonFunc.AddDict(HeroUIManager.Instance.GetHeroLVPayBack(hero.Quality, hero.heroLevel), - HeroUIManager.Instance.GetHeroBreakPayBack(hero.heroId, hero.breakLevel)); + HeroUIManager.Instance.GetHeroBreakPayBack(hero.Quality, hero.breakLevel)); //宸茶閱掔殑闇�瑕佹秷鑰楄揣甯� if (hero.awakeLevel == 0) @@ -248,17 +263,30 @@ } else { - payBack1 = CommonFunc.AddDict(payBack1, HeroUIManager.Instance.GetHeroQualityAwakePayBack(hero.heroId, hero.awakeLevel)); + + if (HeroUIManager.Instance.awakeRebirthCnt >= HeroUIManager.Instance.rebornAwakeHeroMaxCount) + { + SysNotifyMgr.Instance.ShowTip("HeroRebornAwakeMax"); + return; + } + + payBack1 = CommonFunc.AddDict(payBack1, HeroUIManager.Instance.GetHeroQualityAwakePayBack(hero.Quality, hero.awakeLevel)); items = CommonFunc.ChangeToItemList(payBack1); var info2 = Language.Get("herocard44", HeroUIManager.Instance.awakeRebirthCnt); + var payBackMoney = HeroQualityAwakeConfig.GetQualityAwakeConfig(hero.Quality, hero.awakeLevel).RebirthCostMoney; ConfirmCancel.ShowItemsConfirm(items, Language.Get("herocard42"), Language.Get("herocard43"), (bool isOk) => { if (isOk) { + if (UIHelper.GetMoneyCnt(HeroUIManager.Instance.payBackMoneyType) < payBackMoney) + { + ItemTipUtility.ShowMoneyTip(HeroUIManager.Instance.payBackMoneyType); + return; + } //鍙戝寘 SendReborn(hero.itemHero.gridIndex); } - }, info2, "", HeroUIManager.Instance.payBackMoney, HeroUIManager.Instance.payBackMoneyType); + }, info2, "", payBackMoney, HeroUIManager.Instance.payBackMoneyType); } @@ -269,15 +297,20 @@ var pack = new CB239_tagCSHeroRebirth(); pack.ItemIndex = (ushort)index; GameNetSystem.Instance.SendInfo(pack); + + HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false)); + } void DeleteHero() { - if (hero.isLock) - { - SysNotifyMgr.Instance.ShowTip("UnlockHero"); - return; - } + // if (hero.isLock) + // { + // SysNotifyMgr.Instance.ShowTip("UnlockHero"); + // return; + // } + + UIManager.Instance.OpenWindow<HeroDeleteWin>(); } void RefreshStars() @@ -376,14 +409,14 @@ lvupBtnText.text = Language.Get("L1111"); var breakConfig = HeroQualityBreakConfig.GetQualityBreakConfig(hero.Quality, hero.breakLevel); lvupMoneyIcon.SetOrgSprite(ItemConfig.Get(breakConfig.UPCostItem[0]).IconKey); - lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, breakConfig.UPCostItem[0], (ulong)breakConfig.UPCostItem[1]); + lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, breakConfig.UPCostItem[0], breakConfig.UPCostItem[1], TextColType.NavyBrown); } else { lvupBtnText.text = Language.Get("L1109"); var lvupConfig = HeroQualityLVConfig.GetQualityLVConfig(hero.Quality, hero.heroLevel); lvupMoneyIcon.SetOrgSprite(ItemConfig.Get(lvupConfig.UPCostItem[0]).IconKey); - lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, lvupConfig.UPCostItem[0], (ulong)lvupConfig.UPCostItem[1]); + lvupMoneyText.text = UIHelper.ShowUseItem(PackType.Item, lvupConfig.UPCostItem[0], lvupConfig.UPCostItem[1], TextColType.NavyBrown); } } @@ -400,7 +433,7 @@ void LVUp() { int itemID = 0; - ulong needCount = 0; + long needCount = 0; if (HeroUIManager.Instance.IsLVMaxByBreakLevel(hero)) { //绐佺牬 @@ -415,7 +448,7 @@ //鍗囩骇 var lvupConfig = HeroQualityLVConfig.GetQualityLVConfig(hero.Quality, hero.heroLevel); itemID = lvupConfig.UPCostItem[0]; - needCount = (ulong)lvupConfig.UPCostItem[1]; + needCount = lvupConfig.UPCostItem[1]; if (ItemLogicUtility.CheckItemCount(PackType.Item, itemID, needCount, 2)) { var pack = new CB230_tagCSHeroLVUP(); @@ -432,6 +465,7 @@ { addPerObject.SetActive(false); }); + HeroUIManager.Instance.lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false)); } } @@ -456,13 +490,26 @@ List<string> attrStrArr = new List<string>(); for (int j = 0; j < nextQualityBreakConfig.AttrIDList.Length; j++) { + if (nextQualityBreakConfig.AttrIDList[j] == 0) + continue; string format = i < hero.breakLevel ? "{0}" + UIHelper.AppendColor(TextColType.Green, "+{1}") : "{0}+{1}"; attrStrArr.Add(PlayerPropertyConfig.GetFullDescription(nextQualityBreakConfig.AttrIDList[j], nextQualityBreakConfig.AttrValueList[j], format)); } + if (nextQualityBreakConfig.SkillID != 0) { - attrStrArr.Add(SkillConfig.Get(nextQualityBreakConfig.SkillID)?.Description); + var skill = SkillConfig.Get(nextQualityBreakConfig.SkillID); + if (skill != null) + { + attrStrArr.Add(skill.Description); + } + else + { + Debug.LogError("鏈厤缃妧鑳�" + nextQualityBreakConfig.SkillID); + } } + + if (i < hero.breakLevel) { allAttrStr += Language.Get("herocard63", i + 1, string.Join(Language.Get("L1112"), attrStrArr)) + "\n"; @@ -475,6 +522,48 @@ } allPotentialText.text = allAttrStr.Trim(); - + } + + //缇佺粖 + void RefreshFetter() + { + for (int i = 0; i < fetterText.Length; i++) + { + if (i < hero.heroConfig.FetterIDList.Length) + { + fetterText[i].SetActive(true); + var fetterID = hero.heroConfig.FetterIDList[i]; + HeroFetterConfig fetterConfig = HeroFetterConfig.Get(fetterID); + List<string> heroNames = new List<string>(); + bool isAllCollect = true; //鏄惁鍏ㄦ敹闆� + foreach (var tmpHeroID in fetterConfig.HeroIDList) + { + heroNames.Add(HeroConfig.Get(tmpHeroID).Name); + if (HeroManager.Instance.GetHeroCountByID(tmpHeroID) == 0) + { + isAllCollect = false; + } + } + var attrStr = string.Join(Language.Get("SplitString1"), heroNames) + Language.Get("herocard38"); + + for (int j = 0; j < fetterConfig.AttrIDList.Length; j++) + { + string format = !isAllCollect ? "{0}+{1}" : "{0}+" + UIHelper.AppendColor(TextColType.Green, "{1}"); + attrStr += Language.Get("L1112") + PlayerPropertyConfig.GetFullDescription(fetterConfig.AttrIDList[j], fetterConfig.AttrValueList[j], format); + } + fetterText[i].text = attrStr; + fetterText[i].color = UIHelper.GetUIColor(isAllCollect ? TextColType.NavyBrown : TextColType.Gray); + fetterNameText[i].text = fetterConfig.FetterName; + fetterNameText[i].color = UIHelper.GetUIColor(isAllCollect ? TextColType.NavyBrown : TextColType.Gray); + + } + else + { + fetterText[i].SetActive(false); + } + } + + + } } \ No newline at end of file -- Gitblit v1.8.0