//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Monday, March 05, 2018
|
//--------------------------------------------------------
|
|
using System;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using vnxbqy.UI;
|
using System.Linq;
|
|
//境界地图难度选择;达到境界需加引导
|
public class MapLevelSelectWin : ILWindow
|
{
|
Button closeBtn;
|
Button selectBtn;
|
ScrollerController scrollControl;
|
TextEx info;
|
TextEx normal;
|
Image realmImg;
|
|
MapModel model { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
closeBtn = proxy.GetWidgtEx<Button>("CloseBtn");
|
selectBtn = proxy.GetWidgtEx<Button>("selectBtn");
|
scrollControl = proxy.GetWidgtEx<ScrollerController>("scroller");
|
info = proxy.GetWidgtEx<TextEx>("info");
|
normal = proxy.GetWidgtEx<TextEx>("normal");
|
realmImg = proxy.GetWidgtEx<Image>("realm");
|
}
|
|
protected override void AddListeners()
|
{
|
closeBtn.SetListener(() =>
|
{
|
WindowCenter.Instance.CloseIL<MapLevelSelectWin>();
|
});
|
selectBtn.SetListener(SelectMapLevel);
|
}
|
|
protected override void OnPreOpen()
|
{
|
//第一次设置选中正确的
|
if (PlayerDatas.Instance.baseData.realmLevel == MapLevelModel.Instance.realmSelects[0])
|
{
|
MapLevelModel.Instance.clickIndex = 1;
|
}
|
else
|
{
|
MapLevelModel.Instance.clickIndex = MapLevelModel.Instance.selectIndex;
|
}
|
scrollControl.OnRefreshCell += OnRefreshCell;
|
GameEvent.playerDataRefreshEvent += OnPlayerDataRefreshEvent;
|
MapLevelModel.Instance.OnSelectUpdate += OnSelectUpdate;
|
MapLevelModel.Instance.OnClickUpdate += OnClickUpdate;
|
}
|
|
|
|
protected override void OnPreClose()
|
{
|
scrollControl.OnRefreshCell -= OnRefreshCell;
|
GameEvent.playerDataRefreshEvent -= OnPlayerDataRefreshEvent;
|
MapLevelModel.Instance.OnSelectUpdate -= OnSelectUpdate;
|
MapLevelModel.Instance.OnClickUpdate -= OnClickUpdate;
|
}
|
|
|
protected override void OnAfterOpen()
|
{
|
Display();
|
OnCreateScroll();
|
}
|
|
|
|
#endregion
|
|
void Display()
|
{
|
var index = MapLevelModel.Instance.clickIndex;
|
var realm = MapLevelModel.Instance.GetRealmByIndex(index);
|
var curConfig = RealmConfig.Get(realm);
|
var nextRealm = MapLevelModel.Instance.GetRealmByIndex(index + 1);
|
if (index == 0)
|
{
|
Int2 lvRange = ILNPCRealmStrengthenConfig.GetLVRange(nextRealm);
|
//普通模式
|
info.text = Language.Get("MapLevelSelect2", 1, lvRange.x); //只处理低级的情况
|
realmImg.SetActiveIL(false);
|
normal.SetActiveIL(true);
|
}
|
else
|
{
|
realmImg.SetActiveIL(true);
|
realmImg.SetSprite(curConfig.Img);
|
normal.SetActiveIL(false);
|
Int2 lvRange = ILNPCRealmStrengthenConfig.GetLVRange(realm);
|
if (PlayerDatas.Instance.baseData.realmLevel >= realm && PlayerDatas.Instance.baseData.realmLevel < nextRealm)
|
{
|
info.text = Language.Get("MapLevelSelect1", lvRange.x, lvRange.y, curConfig.Name);
|
}
|
else if (PlayerDatas.Instance.baseData.realmLevel >= nextRealm)
|
{
|
info.text = Language.Get("MapLevelSelect2", lvRange.x, lvRange.y);
|
}
|
else
|
{
|
info.text = Language.Get("MapLevelSelect3", curConfig.Name);
|
}
|
}
|
|
}
|
|
void OnCreateScroll()
|
{
|
scrollControl.Refresh();
|
scrollControl.AddCell(ScrollerDataType.Header, 0);
|
for (int i = 1; i <= MapLevelModel.Instance.realmSelects.Count; i++)
|
{
|
scrollControl.AddCell(ScrollerDataType.Header, i);
|
}
|
scrollControl.Restart();
|
scrollControl.JumpIndex(MapLevelModel.Instance.selectIndex);
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var Record = cell.GetILBehaviour<MapLevelCell>();
|
Record?.Display(cell.index);
|
}
|
|
void SelectMapLevel()
|
{
|
if (PlayerDatas.Instance.baseData.MapID == 10010 && !ClientDungeonStageUtility.isClientDungeon)
|
{
|
var realm = MapLevelModel.Instance.GetRealmByIndex(MapLevelModel.Instance.clickIndex);
|
if (PlayerDatas.Instance.baseData.realmLevel < realm)
|
{
|
SysNotifyMgr.Instance.ShowTip("MapLevelSelect3");
|
return;
|
}
|
|
if (PlayerDatas.Instance.baseData.realmLevel > realm + 3)
|
{
|
SysNotifyMgr.Instance.ShowTip("MapLevelSelect2");
|
}
|
|
var pack = new CA235_tagCMSelectRealmDifficulty();
|
if (MapLevelModel.Instance.clickIndex == 0)
|
{
|
pack.RealmDifficulty = 0;
|
}
|
else
|
{
|
pack.RealmDifficulty = (ushort)(1000 + realm);
|
}
|
|
GameNetSystem.Instance.SendInfo(pack);
|
}
|
else
|
{
|
ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("MapLevelSelect4"), (bool isOk) =>
|
{
|
if (isOk)
|
{
|
model.RequestMapTransport(10010);
|
}
|
|
});
|
}
|
}
|
|
|
void OnPlayerDataRefreshEvent(PlayerDataType dataType)
|
{
|
if (dataType != PlayerDataType.default9)
|
{
|
return;
|
}
|
//显示特效
|
}
|
|
void OnSelectUpdate()
|
{
|
scrollControl.m_Scorller.RefreshActiveCellViews();
|
}
|
|
void OnClickUpdate()
|
{
|
scrollControl.m_Scorller.RefreshActiveCellViews();
|
Display();
|
}
|
}
|