123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- using System.Collections.Generic;
- using Excel2Json;
- using Fort23.Core;
- using Fort23.UTool;
- using GameLogic.Player;
- namespace Fort23.Mono
- {
- [UIBinding(prefab = "OpenBoxScorePanel")]
- public partial class OpenBoxScorePanel : UIPanel
- {
- List<SummonScoreRuleWidget> summonScoreRuleWidgets = new List<SummonScoreRuleWidget>();
- List<SummonScoreAwardWidget> summonScoreAwardWidgets = new List<SummonScoreAwardWidget>();
- AccountFileInfo.SummonData summonData;
- private OpenBoxProgressReward[] openBoxProgressRewards;
-
- OpenBoxConfig openBoxConfig;
- private void Init()
- {
- isAddStack = true;
- IsShowAppBar = true;
- }
- protected override void AddEvent()
- {
- }
- protected override void DelEvent()
- {
- }
- public override void AddButtonEvent()
- {
- Btn_Ok.onClick.AddListener(() =>
- {
- summonData.isSummonSocre = true;
- AccountFileInfo.Instance.SavePlayerData();
- Btn_Ok.gameObject.SetActive(!summonData.isSummonSocre);
- StartRoot.gameObject.SetActive(summonData.isSummonSocre);
- });
- }
- public async override CTask<bool> AsyncInit(object[] uiData)
- {
- summonData = PlayerManager.Instance.SummonManager.summonDataMap[2];
- openBoxConfig = ConfigComponent.Instance.Get<OpenBoxConfig>(summonData.id);
- List<OpenBoxScoreRule> openBoxScoreRules = PlayerManager.Instance.SummonManager.openBoxScoreRuleMap[2];
- Btn_Ok.gameObject.SetActive(!summonData.isSummonSocre);
- StartRoot.gameObject.SetActive(summonData.isSummonSocre);
- if (summonData.isSummonSocre)
- {
- Text_JingDu.text = $"当前进度:{summonData.drawHistory.Count}/{openBoxConfig.ProgressRewardChoukaCount}";
- Text_Score.text = $"目前得分:{summonData.score}";
- }
- foreach (var openBoxScoreRule in openBoxScoreRules)
- {
- SummonScoreRuleWidget summonScoreRuleWidget = await UIManager.Instance.CreateGComponent<SummonScoreRuleWidget>(null, Content1);
- summonScoreRuleWidget.CustomInit(openBoxScoreRule);
- summonScoreRuleWidgets.Add(summonScoreRuleWidget);
- }
- openBoxProgressRewards = ConfigComponent.Instance.GetAll<OpenBoxProgressReward>();
- foreach (var openBoxProgressReward in openBoxProgressRewards)
- {
- SummonScoreAwardWidget summonScoreAwardWidget = await UIManager.Instance.CreateGComponent<SummonScoreAwardWidget>(null, Content2);
- summonScoreAwardWidget.CustomInit(openBoxProgressReward,AwardSummonScore);
- summonScoreAwardWidgets.Add(summonScoreAwardWidget);
- }
-
- for (var i = summonScoreAwardWidgets.Count - 1; i >= 0; i--)
- {
- if (summonData.score >= summonScoreAwardWidgets[i]._openBoxProgressReward.TotalScore)
- {
- summonScoreAwardWidgets[i].Icon_Select.gameObject.SetActive(true);
- if (summonData.drawHistory.Count >= openBoxConfig.ProgressRewardChoukaCount)
- {
- summonScoreAwardWidgets[i].Btn_LingQu.gameObject.SetActive(true);
- }
- break;
- }
- }
- return await base.AsyncInit(uiData);
- }
- private void AwardSummonScore()
- {
- //到达进度自动领取奖励
- if (openBoxConfig.ProgressRewardChoukaCount != -1 &&
- summonData.drawHistory.Count >= openBoxConfig.ProgressRewardChoukaCount)
- {
-
-
- for (var i =openBoxProgressRewards.Length-1; i >= 0; i--)
- {
- if (summonData.score >= openBoxProgressRewards[i].TotalScore)
- {
- for (var i1 = 0; i1 < openBoxProgressRewards[i].PrizeID.Length; i1++)
- {
- PlayerManager.Instance.BagController.AddItem(openBoxProgressRewards[i].PrizeID[i1],
- openBoxProgressRewards[i].PrizeCount[i1]);
- }
- break;
- }
- }
-
-
-
- summonData.isSummonSocre = false;
- summonData.score = 0;
- summonData.drawHistory.Clear();
- summonData.summonSocreData.Clear();
- AccountFileInfo.Instance.SavePlayerData();
- }
- else
- {
- LogTool.Error("领取失败!");
- }
-
-
- }
- public async static CTask OpenPanel()
- {
- await UIManager.Instance.LoadAndOpenPanel<OpenBoxScorePanel>(null, isShowBG: true);
- }
- public override void Close()
- {
- foreach (var summonScoreRuleWidget in summonScoreRuleWidgets)
- {
- UIManager.Instance.DormancyGComponent(summonScoreRuleWidget);
- }
- summonScoreRuleWidgets.Clear();
- foreach (var summonScoreRuleWidget in summonScoreAwardWidgets)
- {
- UIManager.Instance.DormancyGComponent(summonScoreRuleWidget);
- }
- summonScoreAwardWidgets.Clear();
- AwardSummonScore();
- base.Close();
- }
- }
- }
|