using System.Collections;
using UnityEngine;
using UI.RoleInfo;
using UI.Main;
using ET;
using FairyGUI;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace GFGGame
{
public class MainBgChooseView : BaseWindow
{
private UI_MainBgChooseUI _ui;
public override void Dispose()
{
if (_ui != null)
{
_ui.Dispose();
_ui = null;
}
base.Dispose();
}
protected override void OnInit()
{
base.OnInit();
packageName = UI_MainBgChooseUI.PACKAGE_NAME;
_ui = UI_MainBgChooseUI.Create();
this.viewCom = _ui.target;
isfullScreen = true;
isReturnView = true;
_ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_grsz");
_ui.m_bgList.itemRenderer = BgListItemRenderer;
_ui.m_bgList.onClickItem.Add(OnClickBgListItem);
_ui.m_btnBack.onClick.Add(OnClickBtnBack);
_ui.m_btnChange.target.onClick.Add(OnClickBtnChange);
_ui.m_bgList.numItems = MainBackgroundCfgArray.Instance.dataArray.Length;
_ui.m_btnRule.onClick.Add(OnBtnRuleClick);
_ui.m_btnSaveDressUpBg.target.onClick.Add(OnBtnSaveDressUpBgClick);
_ui.m_btnGoShop.onClick.Add(OnBtnGoShopClick);
PicAdaption();
}
protected override void OnShown()
{
base.OnShown();
SetDefaultSelectedBg();
InitMainUIPreview();
UpdateSaveDressUpBgBtn();
Timers.inst.AddUpdate(CheckGuide);
}
protected override void OnHide()
{
base.OnHide();
ReleaseMainUIPreview();
Timers.inst.Remove(CheckGuide);
}
private ValueBarController _valueBarController;
///
/// 同步主界面信息
///
private void InitMainUIPreview()
{
UI_MainUI mainUI = UI_MainUI.Proxy(_ui.m_mainUIShow);
_valueBarController = new ValueBarController(mainUI.m_valueBar);
_valueBarController.OnShown();
mainUI.m_type.SetSelectedIndex(1);
mainUI.m_headBar.m_txtLvl.text = "" + GameGlobal.myNumericComponent.GetAsInt(NumericType.Lvl);
RoleInfoManager.Instance.UpdateHead(mainUI.m_headBar.m_comHead, RoleDataManager.headId,
RoleDataManager.headBorderId);
mainUI.m_headBar.m_txtName.text = RoleDataManager.roleName;
mainUI.m_btnXiuFang.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(XiuFangView).Name, false);
mainUI.m_btnHaiZhiShi.m_loaLockIcons.visible = false;
mainUI.m_btnHuanZhuang.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(DressUpView).Name, false);
mainUI.m_btnCiPai.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(CardDetailView).Name, false);
mainUI.m_btnZhaiXing.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LuckyBoxView).Name, false);
mainUI.m_btnMain.m_loaLockIcons.visible = !FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StoryChapterListView).Name, false);
mainUI.m_btnGongGao.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(NoticeView).Name, false);
mainUI.m_btnYouJian.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(MailView).Name, false);
mainUI.m_list.GetChild("btnHaoYou").visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FriendView).Name, false);
mainUI.m_list.GetChild("btnLeague").visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(LeagueView).Name, false);
mainUI.m_list.GetChild("btnStore").visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(StoreView).Name, false);
mainUI.m_list.GetChild("btnTuJian").visible =
FunctionOpenDataManager.Instance.CheckIsFunOpenById(typeof(FieldGuideView).Name, false);
mainUI.m_list.ResizeToFit();
UI_MainUI.ProxyEnd();
}
private void ReleaseMainUIPreview()
{
_valueBarController.OnHide();
_valueBarController.Dispose();
}
private void OnClickBtnBack()
{
Hide();
}
private void BgListItemRenderer(int index, GObject item)
{
UI_bgItem bgItem = UI_bgItem.Proxy(item);
bgItem.m_bgImg.url = ResPathUtil.GetBgImgPath(MainBackgroundCfgArray.Instance.dataArray[index].res);
bgItem.m_name.text = MainBackgroundCfgArray.Instance.dataArray[index].name;
UI_bgItem.ProxyEnd();
item.data = MainBackgroundCfgArray.Instance.dataArray[index].id;
}
private void OnClickBgListItem(EventContext context)
{
GObject listItem = context.data as GObject;
string res = MainBackgroundCfgArray.Instance.GetCfg((int)listItem.data).res;
ChangeBg(res);
}
private void OnClickBtnChange()
{
PromptController.Instance.ShowFloatTextPrompt("主界面背景已更换");
RoleDataManager.SaveMainBgID((int)_ui.m_bgList.GetChildAt(_ui.m_bgList.selectedIndex).data);
Hide();
}
private void ChangeBg(string res)
{
UI_MainUI mainUI = UI_MainUI.Proxy(_ui.m_mainUIShow);
mainUI.m_loaBg.url = ResPathUtil.GetBgImgPath(res);
UI_MainUI.ProxyEnd();
}
///
/// 预览图适配
///
///
private async Task PicAdaption()
{
_ui.m_mainUIShow.visible = false;
_ui.m_frame.visible = false;
await Task.Delay(5);
float orginHeight = _ui.m_frame.height;
float curHeight = _ui.m_heightAdaptHelper.size.y;
if (orginHeight != curHeight)
{
float rate = curHeight * 1.0f / orginHeight;
_ui.m_frame.scale *= rate;
_ui.m_mainUIShow.scale *= rate;
// 预览图居中
_ui.m_mainUIShow.y = _ui.m_frame.y +
((_ui.m_frame.height * _ui.m_frame.scale.y) - (_ui.m_mainUIShow.height * _ui.m_mainUIShow.scale.y)) / 2;
}
_ui.m_mainUIShow.visible = true;
_ui.m_frame.visible = true;
}
private void OnBtnRuleClick()
{
ViewManager.Show();
}
private void SetDefaultSelectedBg()
{
_ui.m_bgList.selectedIndex = 0;
string res = MainBackgroundCfgArray.Instance.dataArray[0].res;
ChangeBg(res);
}
private void OnBtnSaveDressUpBgClick()
{
bool canChange =
GameGlobal.myNumericComponent.GetAsLong(NumericType.MonthCardGoldEndTime) > TimeHelper.ServerNow()
|| GameGlobal.myNumericComponent.GetAsLong(NumericType.MonthCardBlackGoldEndTime) > TimeHelper.ServerNow();
if (canChange)
{
if (RoleDataManager.saveDressUpBgToMainBg == 0)
{
AlertSystem.Show("特权开启后换装背景将用于主界面,是否前往更换?")
.SetLeftButton(true)
.SetRightButton(true, "确认", (object data) =>
{
RoleInfoSProxy.ReqSaveChangeGearSwitch(1);
ViewManager.Show(null, true);
ViewManager.DeleteViewStackCountDown("MainUIView");
});
}
else
{
AlertSystem.Show("特权关闭后仅可使用三个默认背景,是否确认关闭?")
.SetLeftButton(true)
.SetRightButton(true, "确认", (object data) =>
{
UpdateSaveDressUpBgToggleState(0);
RoleDataManager.SaveMainBgID(MainBackgroundCfgArray.Instance.dataArray[0].id);
});
}
}
else
{
PromptController.Instance.ShowFloatTextPrompt("该功能尚未开启~");
}
}
private void OnBtnGoShopClick()
{
GuideSimulationDataManager.Instance.GuideMonthlyJumpType = 2;
ViewManager.Show(new object[] { ConstStoreTabId.STORE_MONTH_CARD, ConstStoreSubId.STORE_MONTH_GOLD_CARD });
}
private async Task UpdateSaveDressUpBgToggleState(int isOn)
{
await RoleInfoSProxy.ReqSaveChangeGearSwitch(isOn);
UpdateSaveDressUpBgBtn();
}
private void UpdateSaveDressUpBgBtn()
{
UI_ButtonToggle2 buttonToggle2 = UI_ButtonToggle2.Proxy(_ui.m_btnSaveDressUpBg.target);
buttonToggle2.m_type.SetSelectedIndex(RoleDataManager.saveDressUpBgToMainBg);
UI_ButtonToggle2.ProxyEnd();
}
private void CheckGuide(object param)
{
if (GuideDataManager.IsGuideFinish(ConstGuideId.SHEZHI_ZHUJIEMBG) <= 0)
{
UpdateCheckGuide(null);
}
else
{
Timers.inst.Remove(CheckGuide);
}
}
protected void UpdateCheckGuide(object param)
{
if (!ViewManager.CheckIsTopView(this.viewCom)) return;
if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 1)
{
GuideController.TryGuide(_ui.m_btnSaveDressUpBg.target, ConstGuideId.SHEZHI_ZHUJIEMBG, 4, "开启背景更换特权");
}
else if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 2)
{
GuideController.TryGuide(_ui.m_btnSaveDressUpBg.target, ConstGuideId.SHEZHI_ZHUJIEMBG, 2, "开启背景更换特权");
}
}
protected override void TryCompleteGuide()
{
if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 1)
{
GuideController.TryCompleteGuideIndex(ConstGuideId.SHEZHI_ZHUJIEMBG, 4);
GuideController.TryCompleteGuide(ConstGuideId.SHEZHI_ZHUJIEMBG, 4);
}
else if (GuideSimulationDataManager.Instance.GuideMonthlyJumpType == 2)
{
GuideController.TryCompleteGuideIndex(ConstGuideId.SHEZHI_ZHUJIEMBG, 2);
GuideController.TryCompleteGuide(ConstGuideId.SHEZHI_ZHUJIEMBG, 2);
}
}
}
}