//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Saturday, September 02, 2017
|
//--------------------------------------------------------
|
|
using UnityEngine;
|
using UnityEngine.UI;
|
using UnityEngine.Events;
|
|
namespace vnxbqy.UI
|
{
|
|
public class CreateRoleWin : Window
|
{
|
[SerializeField] SelectRoleButton[] m_JobSelects;
|
|
[SerializeField] Button m_Create;
|
[SerializeField] Button m_Back;
|
[SerializeField] Text m_JobAttr;
|
|
|
LoginModel model { get { return ModelCenter.Instance.GetModel<LoginModel>(); } }
|
|
string m_MarkName = "abc";
|
|
int selectJob = 0;
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
for (int i = 0; i < m_JobSelects.Length; i++)
|
{
|
int index = i;
|
m_JobSelects[i].SetListener(() => {
|
selectJob = m_JobSelects[index].job;
|
SelectJob(selectJob);
|
ShowSelctBtn();
|
});
|
}
|
|
m_Back.SetListener(BackBtn);
|
m_Create.SetListener(CreateRole);
|
|
}
|
|
void ShowSelctBtn()
|
{
|
for (int i = 0; i < m_JobSelects.Length; i++)
|
{
|
if (m_JobSelects[i].job == selectJob)
|
{
|
m_JobSelects[i].SetSelected(true);
|
}
|
else
|
{
|
m_JobSelects[i].SetSelected(false);
|
}
|
}
|
|
m_JobAttr.text = PlayerPropertyConfig.GetFullDescription(CreateRoleConfig.Get(selectJob).baseAttrIDList[CreateRoleConfig.Get(selectJob).baseAttrIDList.Length - 1],
|
CreateRoleConfig.Get(selectJob).baseAttrValueList[CreateRoleConfig.Get(selectJob).baseAttrValueList.Length - 1]);
|
}
|
|
private void BackBtn()
|
{
|
GameNetSystem.Instance.LoginOut();
|
}
|
|
protected override void OnPreOpen()
|
{
|
model.onCreateRole = true;
|
selectJob = CreateRoleManager.Instance.selectedJob.Fetch();
|
ShowSelctBtn();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
model.onCreateRole = false;
|
}
|
|
|
#endregion
|
|
|
|
private void SelectJob(int job)
|
{
|
|
CreateRoleManager.Instance.View(job, true);
|
}
|
|
|
|
private void CreateRole()
|
{
|
if (GameNetSystem.Instance.netState == GameNetSystem.NetState.Connected)
|
{
|
return;
|
}
|
|
|
if (!ConfigInitiator.done)
|
{
|
SysNotifyMgr.Instance.ShowTip("configloading");
|
return;
|
}
|
|
|
if (Application.internetReachability == NetworkReachability.NotReachable)
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("L1116"));
|
return;
|
}
|
|
LanguageVerify.Instance.VerifyPlayerName(m_MarkName + UnityEngine.Random.Range(100, 10000), 0, string.Empty, 0, 0, (bool ok, string name) =>
|
{
|
DTC0132_tagCreateRoleSucess.isCreateRole = false;
|
C0105_tagCCreateRole createRole = new C0105_tagCCreateRole();//实例化C0105_tagCCreateRole
|
createRole.Job = (byte)CreateRoleManager.Instance.selectedJob.value;
|
createRole.Name = name;
|
createRole.Sex = 1;
|
createRole.Hair = 10002;
|
createRole.HairColor = 1;
|
createRole.Face = (uint)CreateRoleConfig.Get(createRole.Job).face;
|
createRole.FacePic = (uint)CreateRoleConfig.Get(createRole.Job).face;
|
createRole.PlayerType = 1;
|
GameNetSystem.Instance.SendInfo(createRole);//发送创角包
|
});
|
}
|
|
|
|
[System.Serializable]
|
public struct SelectRoleButton
|
{
|
public int job;
|
public Button select;
|
public Image backGround;
|
public Image icon;
|
|
public void SetListener(UnityAction action)
|
{
|
select.SetListener(action);
|
}
|
|
public void SetSelected(bool selected)
|
{
|
backGround.SetSprite(selected ? "CreateRole_ChoosenBottom_a" : "CreateRole_UnChoosenBottom_a");
|
backGround.SetNativeSize();
|
icon.SetSprite(UIHelper.GetHeadIcon(CreateRoleConfig.Get(job).face));
|
icon.SetNativeSize();
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|