//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, September 05, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
using UnityEngine.Events;
|
|
namespace Snxxz.UI
|
{
|
|
public class SelectRoleWin : Window
|
{
|
[SerializeField] Text m_PlayerName;
|
[SerializeField] Text m_PlayerLevel;
|
|
[SerializeField] Button m_Begin;
|
[SerializeField] Button m_Back;
|
|
[SerializeField] Image m_JobName;
|
|
[SerializeField] Image m_SpiritRadar;
|
[SerializeField] SpiritButton[] m_SpiritButtons;
|
|
LoginModel model { get { return ModelCenter.Instance.GetModel<LoginModel>(); } }
|
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
m_Begin.onClick.AddListener(BeginBtn);
|
m_Back.onClick.AddListener(BackToLogin);
|
|
m_SpiritButtons[0].SetListener(() =>
|
{
|
DisplaySpiritRadar(1);
|
SelectSpiritButton(1);
|
});
|
|
m_SpiritButtons[1].SetListener(() =>
|
{
|
DisplaySpiritRadar(2);
|
SelectSpiritButton(2);
|
});
|
|
m_SpiritButtons[2].SetListener(() =>
|
{
|
DisplaySpiritRadar(3);
|
SelectSpiritButton(3);
|
});
|
}
|
|
private void BackToLogin()
|
{
|
GameNetSystem.Instance.LoginOut();
|
}
|
|
protected override void OnPreOpen()
|
{
|
InitInfo();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
if (VersionConfig.Get().versionAuthority == VersionAuthority.InterTest && VersionConfig.Get().banHao == "test")
|
BeginBtn();
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
private void BeginBtn()
|
{
|
if (GameNetSystem.Instance.netState == GameNetSystem.NetState.Connected)
|
{
|
return;
|
}
|
|
if (Application.internetReachability == NetworkReachability.NotReachable)
|
{
|
ConfirmCancel.ShowPopConfirm(
|
Language.Get("Mail101"),
|
Language.Get("L1116")
|
);
|
|
NetLinkWin.Hide();
|
return;
|
}
|
if ((PlayerDatas.Instance.loginInfo.ExAttr17 & (1 << 4)) > 0)
|
{
|
SysNotifyMgr.Instance.ShowTip("LockRole");
|
return;
|
}
|
LoadingWin.targetMapResId = 2;
|
WindowCenter.Instance.Open<LoadingWin>();
|
model.EnterWorld(2);
|
}
|
|
private void InitInfo()
|
{
|
if (PlayerDatas.Instance.loginInfo == null)
|
{
|
return;
|
}
|
|
m_PlayerName.text = PlayerDatas.Instance.loginInfo.PlayerName.ToString();//玩家昵称
|
m_PlayerLevel.text = Language.Get("Z1024", PlayerDatas.Instance.loginInfo.LV);//玩家等级
|
var config = CreateRoleConfig.Get(PlayerDatas.Instance.loginInfo.Job);
|
m_JobName.SetSprite(config.jobName);
|
|
InitSpiritButtons(PlayerDatas.Instance.loginInfo.Job);
|
int selectint = InitSelectIndexByData();
|
SelectSpiritButton(selectint);
|
DisplaySpiritRadar(selectint);
|
|
new SelectRoleProcessor().Show();
|
}
|
|
private int InitSelectIndexByData()
|
{
|
uint maxLG = PlayerDatas.Instance.loginInfo.ExAttr16;
|
if (PlayerDatas.Instance.loginInfo.Job == 1)
|
{
|
switch (maxLG)
|
{
|
case 201:
|
case 203:
|
case 204:
|
return 1;
|
case 202:
|
return 2;
|
case 205:
|
return 3;
|
}
|
}
|
else
|
{
|
switch (maxLG)
|
{
|
case 201:
|
case 202:
|
case 205:
|
return 1;
|
case 204:
|
return 2;
|
case 203:
|
return 3;
|
}
|
}
|
return 1;
|
}
|
|
|
|
private void InitSpiritButtons(int job)
|
{
|
var config = CreateRoleConfig.Get(job);
|
for (int i = 1; i <= 3; i++)
|
{
|
m_SpiritButtons[i - 1].Init(config.spiritSelectedIcons[i - 1], config.spiritUnSelectedIcons[i - 1]);
|
}
|
}
|
|
private void SelectSpiritButton(int index)
|
{
|
if (index < 1 || index > 3)
|
{
|
return;
|
}
|
|
for (int i = 1; i <= 3; i++)
|
{
|
m_SpiritButtons[i - 1].SetSelected(i == index);
|
}
|
}
|
|
private void DisplaySpiritRadar(int index)
|
{
|
if (index < 1 || index > 3)
|
{
|
return;
|
}
|
|
var config = CreateRoleConfig.Get(PlayerDatas.Instance.loginInfo.Job);
|
m_SpiritRadar.SetSprite(config.spiritRadars[index - 1]);
|
}
|
|
[System.Serializable]
|
public struct SpiritButton
|
{
|
public Button button;
|
public Image selectedImgae;
|
public Image unSelectedImage;
|
public GameObject unSelectedImageFrame;
|
|
public void Init(string selectIconKey, string unSelectIconKey)
|
{
|
selectedImgae.SetSprite(selectIconKey);
|
unSelectedImage.SetSprite(unSelectIconKey);
|
}
|
|
public void SetListener(UnityAction action)
|
{
|
button.SetListener(action);
|
}
|
|
public void SetSelected(bool isSelected)
|
{
|
selectedImgae.SetActive(isSelected);
|
unSelectedImage.SetActive(!isSelected);
|
unSelectedImageFrame.SetActive(!isSelected);
|
}
|
|
}
|
|
}
|
|
|
}
|
|
|
|
|