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(); MMOAPIRequestManager.Instance.SendRequest(new MMORequestSetInvite(mIptCode.text), OnSuccess, OnFail); } private void OnClickOK() { if (mIsSuccessful) { PopOut(); } else { ShowInfo(true); } } private void OnSuccess(string pStr) { MMOModule.Instance.UIMgr.CloseUI(); 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(); mIsSuccessful = false; ShowInfo(false, false); } } }