|
@@ -16,7 +16,12 @@ namespace Fort23.Mono
|
|
|
HeroPowerUpConfig heroPowerUpConfig;
|
|
|
|
|
|
List<BreakthroughItemWidget> breakthroughItemWidgets = new List<BreakthroughItemWidget>();
|
|
|
- private HeroInfo heroInfo = new HeroInfo();
|
|
|
+ private HeroInfo nextHeroInfo = new HeroInfo();
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 1.正常渡劫 2.渡劫预览
|
|
|
+ /// </summary>
|
|
|
+ private int type;
|
|
|
|
|
|
|
|
|
private void Init()
|
|
@@ -30,7 +35,7 @@ namespace Fort23.Mono
|
|
|
|
|
|
private void RefenceBreakthrough(IEventData e)
|
|
|
{
|
|
|
- RefenceSuccessProbability();
|
|
|
+ RefenceSuccessProbability(PlayerManager.Instance.myHero);
|
|
|
}
|
|
|
|
|
|
protected override void DelEvent()
|
|
@@ -46,6 +51,13 @@ namespace Fort23.Mono
|
|
|
|
|
|
Btn_Affirm.onClick.AddListener(async () =>
|
|
|
{
|
|
|
+ if (type == 2)
|
|
|
+ {
|
|
|
+ TipMessagePanel.OpenTipMessagePanel("修为等级还未达到,暂不可预览");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
if (PlayerManager.Instance.myHero.heroData.exp + HeroHerlp.GetHeroExp() < PlayerManager.Instance.myHero.powerUpConfig.levelUpExp)
|
|
|
{
|
|
|
return;
|
|
@@ -100,7 +112,7 @@ namespace Fort23.Mono
|
|
|
if (ramdomValue < list[0])
|
|
|
{
|
|
|
bool isTuPoSuccess = true;
|
|
|
- if (PlayerManager.Instance.myHero.powerUpConfig.jingjie1 != heroInfo.powerUpConfig.jingjie1)
|
|
|
+ if (PlayerManager.Instance.myHero.powerUpConfig.jingjie1 != nextHeroInfo.powerUpConfig.jingjie1)
|
|
|
{
|
|
|
if (PlayerManager.Instance.myHero.powerUpConfig.LeijieDamages != null && PlayerManager.Instance.myHero.powerUpConfig.LeijieDamages.Length > 1)
|
|
|
{
|
|
@@ -135,6 +147,9 @@ namespace Fort23.Mono
|
|
|
|
|
|
Btn_StartCombat.onClick.AddListener(() =>
|
|
|
{
|
|
|
+ if (type == 2)
|
|
|
+ return;
|
|
|
+
|
|
|
if (PlayerManager.Instance.myHero.heroData.isCombat)
|
|
|
return;
|
|
|
|
|
@@ -150,7 +165,7 @@ namespace Fort23.Mono
|
|
|
AccountFileInfo.Instance.SavePlayerData();
|
|
|
Btn_StartCombat.gameObject.SetActive(false);
|
|
|
CombatTrue.gameObject.SetActive(true);
|
|
|
- RefenceSuccessProbability();
|
|
|
+ RefenceSuccessProbability(PlayerManager.Instance.myHero);
|
|
|
UIManager.Instance.ShowLastHindAllShowPanel();
|
|
|
}
|
|
|
});
|
|
@@ -172,7 +187,7 @@ namespace Fort23.Mono
|
|
|
|
|
|
private async CTask UpHero()
|
|
|
{
|
|
|
- var heroAttributData = HeroHerlp.GetHeroChageHeroAttributeData(PlayerManager.Instance.myHero, heroInfo);
|
|
|
+ var heroAttributData = HeroHerlp.GetHeroChageHeroAttributeData(PlayerManager.Instance.myHero, nextHeroInfo);
|
|
|
PlayerManager.Instance.myHero.Upgrade();
|
|
|
HeroBreakthroughSuccessPanel heroBreakthroughSuccessPanel = await HeroBreakthroughSuccessPanel.OpenPanel(heroAttributData);
|
|
|
await heroBreakthroughSuccessPanel.UIClosed();
|
|
@@ -181,18 +196,19 @@ namespace Fort23.Mono
|
|
|
|
|
|
public async CTask CustomInit()
|
|
|
{
|
|
|
+ type = 1;
|
|
|
heroPowerUpConfig = PlayerManager.Instance.myHero.powerUpConfig;
|
|
|
- heroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, PlayerManager.Instance.myHero.heroData.heroPowerId + 1);
|
|
|
+ nextHeroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, PlayerManager.Instance.myHero.heroData.heroPowerId + 1);
|
|
|
|
|
|
Text_CurrrentJIngjie.text = LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[0]) +
|
|
|
LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[1]) +
|
|
|
LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[2]);
|
|
|
|
|
|
- Text_NextJinfjie.text = LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[0]) +
|
|
|
- LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[1]) +
|
|
|
- LanguageManager.Instance.Text(heroInfo.powerUpConfig.jingjieLanIDs[2]);
|
|
|
+ Text_NextJinfjie.text = LanguageManager.Instance.Text(nextHeroInfo.powerUpConfig.jingjieLanIDs[0]) +
|
|
|
+ LanguageManager.Instance.Text(nextHeroInfo.powerUpConfig.jingjieLanIDs[1]) +
|
|
|
+ LanguageManager.Instance.Text(nextHeroInfo.powerUpConfig.jingjieLanIDs[2]);
|
|
|
|
|
|
- if (heroPowerUpConfig.jingjie1 != heroInfo.powerUpConfig.jingjie1)
|
|
|
+ if (heroPowerUpConfig.jingjie1 != nextHeroInfo.powerUpConfig.jingjie1)
|
|
|
{
|
|
|
Text_TitleName.text = "渡劫";
|
|
|
Text_Affirm.text = "逆天而行";
|
|
@@ -246,7 +262,9 @@ namespace Fort23.Mono
|
|
|
CombatRoot.gameObject.SetActive(false);
|
|
|
}
|
|
|
|
|
|
- RefenceSuccessProbability();
|
|
|
+ RefenceSuccessProbability(PlayerManager.Instance.myHero);
|
|
|
+
|
|
|
+ Btn_Affirm.transform.RecoverColor();
|
|
|
|
|
|
|
|
|
using (CTaskAwaitBuffer<BreakthroughItemWidget> cTaskAwaitBuffer = new CTaskAwaitBuffer<BreakthroughItemWidget>())
|
|
@@ -282,21 +300,21 @@ namespace Fort23.Mono
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void RefenceSuccessProbability()
|
|
|
+ private void RefenceSuccessProbability(HeroInfo hero)
|
|
|
{
|
|
|
bool isCan = true;
|
|
|
|
|
|
- if (heroPowerUpConfig.DujieLevelbattleID != -1 && !PlayerManager.Instance.myHero.heroData.isCombat)
|
|
|
+ if (heroPowerUpConfig.DujieLevelbattleID != -1 && !hero.heroData.isCombat)
|
|
|
{
|
|
|
isCan = false;
|
|
|
}
|
|
|
|
|
|
- for (var i = 0; i < PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs.Length; i++)
|
|
|
+ for (var i = 0; i < hero.powerUpConfig.DujieMustItemIDs.Length; i++)
|
|
|
{
|
|
|
bool isHave = false;
|
|
|
for (var i1 = 1; i1 < breakthroughItemWidgets.Count; i1++)
|
|
|
{
|
|
|
- if (breakthroughItemWidgets[i1].itemInfo != null && PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs[i] == breakthroughItemWidgets[i1].itemInfo.itemID)
|
|
|
+ if (breakthroughItemWidgets[i1].itemInfo != null && hero.powerUpConfig.DujieMustItemIDs[i] == breakthroughItemWidgets[i1].itemInfo.itemID)
|
|
|
{
|
|
|
isHave = true;
|
|
|
}
|
|
@@ -315,7 +333,7 @@ namespace Fort23.Mono
|
|
|
|
|
|
var list = GetBl();
|
|
|
|
|
|
- failbl = list[1] == 0 ? PlayerManager.Instance.myHero.powerUpConfig.FailureExpReduce : (float)(PlayerManager.Instance.myHero.powerUpConfig.FailureExpReduce * list[1] * 0.01f);
|
|
|
+ failbl = list[1] == 0 ? hero.powerUpConfig.FailureExpReduce : (float)(hero.powerUpConfig.FailureExpReduce * list[1] * 0.01f);
|
|
|
successBl = list[0];
|
|
|
|
|
|
if (isCan)
|
|
@@ -325,7 +343,7 @@ namespace Fort23.Mono
|
|
|
// failbl = list[1] == 0 ? PlayerManager.Instance.myHero.powerUpConfig.FailureExpReduce : (float)(PlayerManager.Instance.myHero.powerUpConfig.FailureExpReduce * list[1] * 0.01f);
|
|
|
// successBl = list[0];
|
|
|
|
|
|
- if (PlayerManager.Instance.myHero.powerUpConfig.jingjie1 != heroInfo.powerUpConfig.jingjie1)
|
|
|
+ if (hero.powerUpConfig.jingjie1 != nextHeroInfo.powerUpConfig.jingjie1)
|
|
|
{
|
|
|
Text_AffirmTips.text = "是否确认渡劫";
|
|
|
}
|
|
@@ -338,13 +356,13 @@ namespace Fort23.Mono
|
|
|
{
|
|
|
//提示需要什么道具
|
|
|
string tips = "需要 破除心魔 ";
|
|
|
- foreach (var dujieMustItemID in PlayerManager.Instance.myHero.powerUpConfig.DujieMustItemIDs)
|
|
|
+ foreach (var dujieMustItemID in hero.powerUpConfig.DujieMustItemIDs)
|
|
|
{
|
|
|
ItemConfig itemConfig = ConfigComponent.Instance.Get<ItemConfig>(dujieMustItemID);
|
|
|
tips += " " + LanguageManager.Instance.Text(itemConfig.itemName);
|
|
|
}
|
|
|
|
|
|
- if (PlayerManager.Instance.myHero.powerUpConfig.jingjie1 != heroInfo.powerUpConfig.jingjie1)
|
|
|
+ if (hero.powerUpConfig.jingjie1 != nextHeroInfo.powerUpConfig.jingjie1)
|
|
|
{
|
|
|
Text_AffirmTips.text = tips;
|
|
|
}
|
|
@@ -357,7 +375,7 @@ namespace Fort23.Mono
|
|
|
// successBl = 0;
|
|
|
}
|
|
|
|
|
|
- failXw = (int)(PlayerManager.Instance.myHero.powerUpConfig.levelUpExp * failbl * 0.01f);
|
|
|
+ failXw = (int)(hero.powerUpConfig.levelUpExp * failbl * 0.01f);
|
|
|
|
|
|
|
|
|
Text_FailDesc.text = $"失败损失修为:{failXw}修为";
|
|
@@ -405,6 +423,121 @@ namespace Fort23.Mono
|
|
|
return heroBreakthroughPanel;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //渡劫预览
|
|
|
+ public async static CTask<HeroBreakthroughPanel> OpenPanel1(HeroInfo heroInfo1)
|
|
|
+ {
|
|
|
+ HeroBreakthroughPanel heroBreakthroughPanel = await UIManager.Instance.LoadAndOpenPanel<HeroBreakthroughPanel>(null);
|
|
|
+ heroBreakthroughPanel.CustomInit(heroInfo1);
|
|
|
+ return heroBreakthroughPanel;
|
|
|
+ }
|
|
|
+
|
|
|
+ public async CTask CustomInit(HeroInfo heroInfo1)
|
|
|
+ {
|
|
|
+ type = 2;
|
|
|
+ heroPowerUpConfig = heroInfo1.powerUpConfig;
|
|
|
+ nextHeroInfo.InitHero(PlayerManager.Instance.myHero.heroData.heroModelId, heroInfo1.heroData.heroPowerId + 1);
|
|
|
+
|
|
|
+ Text_CurrrentJIngjie.text = LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[0]) +
|
|
|
+ LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[1]) +
|
|
|
+ LanguageManager.Instance.Text(heroPowerUpConfig.jingjieLanIDs[2]);
|
|
|
+
|
|
|
+ Text_NextJinfjie.text = LanguageManager.Instance.Text(nextHeroInfo.powerUpConfig.jingjieLanIDs[0]) +
|
|
|
+ LanguageManager.Instance.Text(nextHeroInfo.powerUpConfig.jingjieLanIDs[1]) +
|
|
|
+ LanguageManager.Instance.Text(nextHeroInfo.powerUpConfig.jingjieLanIDs[2]);
|
|
|
+
|
|
|
+ if (heroPowerUpConfig.jingjie1 != nextHeroInfo.powerUpConfig.jingjie1)
|
|
|
+ {
|
|
|
+ Text_TitleName.text = "渡劫预览";
|
|
|
+ Text_Affirm.text = "逆天而行";
|
|
|
+ Text_AffirmTips.text = "是否确认渡劫";
|
|
|
+
|
|
|
+ if (heroPowerUpConfig.LeijieDamages != null && heroPowerUpConfig.LeijieDamages.Length > 1)
|
|
|
+ {
|
|
|
+ LeiJieRooot.gameObject.SetActive(true);
|
|
|
+ Text_LeiJieHarm.text = $"{heroPowerUpConfig.LeijieDamages[0]}-{heroPowerUpConfig.LeijieDamages[1]}";
|
|
|
+ Text_HeroHp.text = PlayerManager.Instance.myHero.hp.Value.ToString();
|
|
|
+
|
|
|
+ if (PlayerManager.Instance.myHero.hp.Value < heroPowerUpConfig.LeijieDamages[0])
|
|
|
+ {
|
|
|
+ Text_HeroHp.color = Color.red;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Text_HeroHp.color = Color.black;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LeiJieRooot.gameObject.SetActive(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Text_AffirmTips.text = "是否确认突破";
|
|
|
+ Text_Affirm.text = "突破";
|
|
|
+ Text_TitleName.text = "突破";
|
|
|
+ LeiJieRooot.gameObject.SetActive(false);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (heroPowerUpConfig.DujieLevelbattleID != -1)
|
|
|
+ {
|
|
|
+ CombatRoot.gameObject.SetActive(true);
|
|
|
+ if (heroInfo1.heroData.isCombat)
|
|
|
+ {
|
|
|
+ Btn_StartCombat.gameObject.SetActive(false);
|
|
|
+ CombatTrue.gameObject.SetActive(true);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ Btn_StartCombat.gameObject.SetActive(true);
|
|
|
+ CombatTrue.gameObject.SetActive(false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ CombatRoot.gameObject.SetActive(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ RefenceSuccessProbability(heroInfo1);
|
|
|
+
|
|
|
+ Btn_Affirm.transform.Gray(false);
|
|
|
+
|
|
|
+
|
|
|
+ using (CTaskAwaitBuffer<BreakthroughItemWidget> cTaskAwaitBuffer = new CTaskAwaitBuffer<BreakthroughItemWidget>())
|
|
|
+ {
|
|
|
+ for (int i = 0; i < 1 + heroPowerUpConfig.DujieMustItemIDs.Length + heroPowerUpConfig.DujieItemIDs.Length; i++)
|
|
|
+ {
|
|
|
+ cTaskAwaitBuffer.AddTask(UIManager.Instance.CreateGComponent<BreakthroughItemWidget>(null, Content));
|
|
|
+ }
|
|
|
+
|
|
|
+ breakthroughItemWidgets = await cTaskAwaitBuffer.WaitAll();
|
|
|
+
|
|
|
+ breakthroughItemWidgets[0].CustomInit(1, 0);
|
|
|
+
|
|
|
+
|
|
|
+ //必选道具
|
|
|
+ for (var i = 0; i < heroPowerUpConfig.DujieMustItemIDs.Length; i++)
|
|
|
+ {
|
|
|
+ breakthroughItemWidgets[i + 1].CustomInit(2, heroPowerUpConfig.DujieMustItemIDs[i]);
|
|
|
+ }
|
|
|
+
|
|
|
+ //可选道具
|
|
|
+ for (var i = 0; i < heroPowerUpConfig.DujieItemIDs.Length; i++)
|
|
|
+ {
|
|
|
+ breakthroughItemWidgets[i + heroPowerUpConfig.DujieMustItemIDs.Length + 1].CustomInit(2, heroPowerUpConfig.DujieItemIDs[i]);
|
|
|
+ }
|
|
|
+
|
|
|
+ for (var i = 0; i < breakthroughItemWidgets.Count; i++)
|
|
|
+ {
|
|
|
+ breakthroughItemWidgets[i].transform.anchoredPosition = new Vector2((breakthroughItemWidgets[i].transform.sizeDelta.x + 48) * i, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ Content.sizeDelta = new Vector2((breakthroughItemWidgets[0].transform.sizeDelta.x + 48) * breakthroughItemWidgets.Count, 200);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public override void Close()
|
|
|
{
|
|
|
foreach (var breakthroughItemWidget in breakthroughItemWidgets)
|
|
@@ -414,6 +547,10 @@ namespace Fort23.Mono
|
|
|
|
|
|
breakthroughItemWidgets.Clear();
|
|
|
|
|
|
+ heroPowerUpConfig = default;
|
|
|
+
|
|
|
+ type = 0;
|
|
|
+
|
|
|
base.Close();
|
|
|
}
|
|
|
}
|