mergemilitary/Assets/MMOModule/Scripts/MMOUIs/MMOUIInvites/MMOUIInviteVerify.cs

93 lines
2.4 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace MMO
{
public class MMOUIInviteVerify : MMOUIPop
{
public Action DelInvited;
[SerializeField] GameObject mGobVerify;
[SerializeField] GameObject mGobResult;
[SerializeField] GameObject mGobSuccess;
[SerializeField] GameObject mGobFail;
[SerializeField] InputField mIptCode;
[SerializeField] Button mBtnSubmit;
[SerializeField] Button mBtnOK;
private bool mIsSuccessful = false;
protected override void OnInit()
{
base.OnInit();
BindBtn(mBtnSubmit, OnClickSubmit);
BindBtn(mBtnOK, OnClickOK);
}
public override void OnOpen()
{
base.OnOpen();
ShowInfo(true);
}
private void ShowInfo(bool pIsVerify, bool pSuccess = false)
{
mGobVerify.SetActive(pIsVerify);
mGobResult.SetActive(!pIsVerify);
if (!pIsVerify)
{
mGobSuccess.SetActive(pSuccess);
mGobFail.SetActive(!pSuccess);
}
}
private void OnClickSubmit()
{
if (string.IsNullOrEmpty(mIptCode.text))
{
MMOModule.Instance.ShowTip("Code can't be empty!");
return;
}
MMOModule.Instance.UIMgr.OpenUI<MMOUIWaiting>();
MMOAPIRequestManager.Instance.SendRequest<MMORequestSetInvite, string>(new MMORequestSetInvite(mIptCode.text), OnSuccess, OnFail);
}
private void OnClickOK()
{
if (mIsSuccessful)
{
PopOut();
}
else
{
ShowInfo(true);
}
}
private void OnSuccess(string pStr)
{
MMOModule.Instance.UIMgr.CloseUI<MMOUIWaiting>();
MMOInnerSDKManager.Instance.LogInviteAction(MMOEventValue.Code_Enter);
mIsSuccessful = true;
ShowInfo(false, true);
MMOUserData.Instance.HasBeenInvited = true;
DelInvited?.Invoke();
}
private void OnFail(int pErrorCode)
{
MMOModule.Instance.UIMgr.CloseUI<MMOUIWaiting>();
mIsSuccessful = false;
ShowInfo(false, false);
}
}
}