From f3ae8542aee4b5de78fc20d9543bb424b315708f Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 10 九月 2025 14:23:47 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/HeroUI/HeroUIManager.Reborn.cs | 129 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 126 insertions(+), 3 deletions(-)
diff --git a/Main/System/HeroUI/HeroUIManager.Reborn.cs b/Main/System/HeroUI/HeroUIManager.Reborn.cs
index 23064e3..18aee2a 100644
--- a/Main/System/HeroUI/HeroUIManager.Reborn.cs
+++ b/Main/System/HeroUI/HeroUIManager.Reborn.cs
@@ -1,17 +1,20 @@
锘縰sing System;
using System.Collections;
using System.Collections.Generic;
+using System.Linq;
using UnityEngine;
+//閲嶇敓 閬f暎
public partial class HeroUIManager : GameSystemManager<HeroUIManager>
{
-
- #region 閲嶇敓 閬f暎
public int awakeRebirthCnt { get; private set; }
public int payBackMoneyType;
public int rebornAwakeHeroMaxCount; //瑙夐啋姝﹀皢姣忔棩鐨勬渶澶ч噸鐢熸鏁�
+ public string rebornFormula; //閲嶇敓绛夌骇閲嶇疆鐨勬秷鑰楋紝鍙傛暟 heroLV姝﹀皢绛夌骇锛屾渶缁堟秷鑰椾负鍏紡+瑙夐啋娑堣��
+ public int rebornPayBackPer; //閲嶇敓杩旇繕鐨勭櫨鍒嗘瘮
+ public int deletePayBackPer; //閬f暎杩旇繕鐨勭櫨鍒嗘瘮
public List<string> heroDeleteSortList { get; private set; } = new List<string>();
public int selectHeroDeleteListJob = 0; //绛涢�夎亴涓�
@@ -143,7 +146,127 @@
}
- #endregion
+ public void ResetBtnClick(HeroInfo hero)
+ {
+ //鍗囩骇銆佺獊鐮淬�佽閱�
+ if (hero.heroLevel == 1 && hero.breakLevel == 0 && hero.awakeLevel == 0)
+ {
+ SysNotifyMgr.Instance.ShowTip("HeroCanNotReset");
+ return;
+ }
+ //娲楃偧鍜岃閱掔殑澶╄祴鏈鐞嗕笉鍙悶鍣�
+ if (hero.talentRandomIDList.Count > 0)
+ {
+ SysNotifyMgr.Instance.ShowTip("HeroGift4");
+ return;
+ }
+
+ if (hero.talentAwakeRandomIDList.Count > 0)
+ {
+ SysNotifyMgr.Instance.ShowTip("HeroGift5");
+ return;
+ }
+
+
+ List<Item> items = new List<Item>();
+ var payBack1 = CommonFunc.AddDict(GetHeroLVPayBack(hero.Quality, hero.heroLevel), GetHeroBreakPayBack(hero.Quality, hero.breakLevel));
+
+ Dictionary<string, double> rebornParam = new Dictionary<string, double>(); //閲嶇敓娑堣�楀叕寮忓弬鏁�
+ //鍏堣绠楁湁娌℃秷鑰�
+ rebornParam.Add("heroLV", hero.heroLevel);
+ int costCnt = (int)JaceCalculator.Calculate(rebornFormula, rebornParam);
+
+ //閲嶇敓绛夌骇閲嶇疆鐨勬秷鑰楋紝鍙傛暟 heroLV姝﹀皢绛夌骇锛屾渶缁堟秷鑰椾负鍏紡+瑙夐啋娑堣��
+ if (hero.awakeLevel == 0)
+ {
+ //璁$畻杩旇繕姣斾緥
+ var _list = payBack1.Keys.ToList();
+ foreach (var key in _list)
+ {
+ payBack1[key] = Math.Max((long)(payBack1[key] * rebornPayBackPer / 100.0), 1);
+ }
+
+ items = CommonFunc.ChangeToItemList(payBack1);
+
+ if (costCnt == 0)
+ {
+ //鏃犳秷鑰楁樉绀�
+ ConfirmCancel.ShowItemsConfirm(items, Language.Get("herocard42"), Language.Get("herocard43"), (bool isOk) =>
+ {
+ if (isOk)
+ {
+ //鍙戝寘
+ SendReborn(hero);
+ }
+ }, itemName:$"( {rebornPayBackPer}% )");
+ }
+ else
+ {
+ //鏈夋秷鑰楁樉绀�
+ ConfirmCancel.ShowItemsConfirm(items, Language.Get("herocard42"), Language.Get("herocard43"), (bool isOk) =>
+ {
+ if (isOk)
+ {
+ if (UIHelper.GetMoneyCnt(payBackMoneyType) < costCnt)
+ {
+ ItemTipUtility.ShowMoneyTip(payBackMoneyType);
+ return;
+ }
+ //鍙戝寘
+ SendReborn(hero);
+ }
+ }, "", "", costCnt, payBackMoneyType, $"( {rebornPayBackPer}% )");
+ }
+ }
+ else
+ {
+
+ if (awakeRebirthCnt >= rebornAwakeHeroMaxCount)
+ {
+ SysNotifyMgr.Instance.ShowTip("HeroRebornAwakeMax");
+ return;
+ }
+
+ payBack1 = CommonFunc.AddDict(payBack1, GetHeroQualityAwakePayBack(hero.Quality, hero.awakeLevel));
+
+ //璁$畻杩旇繕姣斾緥
+ var _list = payBack1.Keys.ToList();
+ foreach (var key in _list)
+ {
+ payBack1[key] = Math.Max((long)(payBack1[key] * rebornPayBackPer / 100.0), 1);
+ }
+
+
+ items = CommonFunc.ChangeToItemList(payBack1);
+ var info2 = Language.Get("herocard44", rebornAwakeHeroMaxCount - awakeRebirthCnt);
+ var payBackMoney = HeroQualityAwakeConfig.GetQualityAwakeConfig(hero.Quality, hero.awakeLevel).RebirthCostMoney + costCnt;
+ ConfirmCancel.ShowItemsConfirm(items, Language.Get("herocard42"), Language.Get("herocard43"), (bool isOk) =>
+ {
+ if (isOk)
+ {
+ if (UIHelper.GetMoneyCnt(payBackMoneyType) < payBackMoney)
+ {
+ ItemTipUtility.ShowMoneyTip(payBackMoneyType);
+ return;
+ }
+ //鍙戝寘
+ SendReborn(hero);
+ }
+ }, info2, "", payBackMoney, payBackMoneyType, $"( {rebornPayBackPer}% )");
+
+ }
+
+ }
+
+ void SendReborn(HeroInfo hero)
+ {
+ var pack = new CB239_tagCSHeroRebirth();
+ pack.ItemIndex = (ushort)hero.itemHero.gridIndex;
+ GameNetSystem.Instance.SendInfo(pack);
+
+ lastFightPower = new KeyValuePair<string, long>(hero.itemHero.guid, hero.CalculatePower(false));
+
+ }
}
--
Gitblit v1.8.0