using UnityEngine; using UnityEngine.UI; using vnxbqy.UI; public class CrossServerGodBattleFieldAssortSearchWin : Window { [SerializeField] GameObject Reasult; [SerializeField] TextEx txtLeaderName; [SerializeField] TextEx txtPowerNum; [SerializeField] TextEx txtTip; [SerializeField] InputField inputField; [SerializeField] ButtonEx btnSearch; [SerializeField] ButtonEx btnRequest; [SerializeField] ButtonEx btnCancel; [SerializeField] ButtonEx btnClose; bool isShow = false; CrossServerGodBattleFieldAssortModel model { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { btnSearch.SetListener(() => { if (inputField.text == null || inputField.text == string.Empty || inputField.text == "" || inputField.text == " ") return; uint funcMapID = model.FuncMapID; uint funcMapEx = 0; uint startIndex = 0; byte haveSpace = 1; byte iDLimitType = 0; model.SendQueryFuncTeam(funcMapID, funcMapEx, startIndex, model.QueryCount, haveSpace, iDLimitType, inputField.text); bool isShow = false; Reasult.SetActive(isShow); }); btnRequest.SetListener(() => { if (model.IsOpenAction()) { SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort03"); return; } if (inputField.text == null || inputField.text == string.Empty || inputField.text == "" || inputField.text == " ") return; //队伍申请个数已达上限 var teamIDList = model.GetPlayerRequestTeam(); if (teamIDList.Count >= FunctionTeamSetConfig.Get((int)model.FuncMapID).ReqApplyMax) { SysNotifyMgr.Instance.ShowTip("TeamReqJoinApplyFull"); return; } model.SendFuncTeamMemOP(uint.Parse(inputField.text), model.FuncMapID, 1); }); btnCancel.SetListener(() => { if (model.IsOpenAction()) { SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort03"); return; } if (inputField.text == null || inputField.text == string.Empty || inputField.text == "" || inputField.text == " ") return; model.SendFuncTeamMemOP(uint.Parse(inputField.text), model.FuncMapID, 2); model.SendQueryFuncTeam(model.FuncMapID, 0, 0, model.QueryCount, 1, model.isOnlyServerGroupIDLeader ? (byte)2 : (byte)0); }); btnClose.SetListener(() => { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); }); } protected override void OnPreOpen() { model.UpdateFindInfoEvent += OnUpdateFindInfoEvent; model.UpdateTeamInfoEvent += OnUpdateTeamInfoEvent; model.UpdateTeamDissolveEvent += OnUpdateTeamDissolveEvent; isShow = false; Reasult.SetActive(isShow); inputField.text = string.Empty; inputField.placeholder.GetComponent().text = Language.Get("GodBattleFieldAssort34"); } protected override void OnAfterOpen() { } protected override void OnAfterClose() { } void Display() { model.TryGetTeamInfo(uint.Parse(inputField.text), out AssortTeamInfo teamInfo); model.TryGetTeamCaptainMemberInfo(teamInfo, out var memberInfo); txtTip.SetActive(!model.IsRequest(uint.Parse(inputField.text)) && teamInfo.MinFightPower > PlayerDatas.Instance.baseData.FightPoint); btnCancel.SetActive(model.IsRequest(uint.Parse(inputField.text))); btnRequest.SetActive(!model.IsRequest(uint.Parse(inputField.text)) && teamInfo.MinFightPower <= PlayerDatas.Instance.baseData.FightPoint); txtTip.text = Language.Get("GodBattleFieldAssort45", UIHelper.ReplaceLargeNum(teamInfo.MinFightPower)); string serverName = ServerListCenter.Instance.GetServerName((int)memberInfo.ServerID); txtLeaderName.text = Language.Get("GodBattleFieldAssort06", Language.Get("BlessedLand043", serverName, model.IsNoTeamName() ? memberInfo.Name : teamInfo.TeamName)); txtPowerNum.text = UIHelper.ReplaceLargeNum(model.GetTeamTotalPower(teamInfo)); } protected override void OnPreClose() { model.UpdateFindInfoEvent -= OnUpdateFindInfoEvent; model.UpdateTeamInfoEvent -= OnUpdateTeamInfoEvent; model.UpdateTeamDissolveEvent -= OnUpdateTeamDissolveEvent; model.ClearTeamTypeList(); } void OnUpdateTeamDissolveEvent() { WindowCenter.Instance.Close(); } void SearchTeam() { if (model.SearchMsg == inputField.text) { if (model.SearchMsg == string.Empty) return; if (model.TeamCount <= 0) { SysNotifyMgr.Instance.ShowTip("TeamNotExist"); return; } if (!model.TryGetTeamInfo(uint.Parse(inputField.text), out AssortTeamInfo teamInfo)) { //提示没查询到 SysNotifyMgr.Instance.ShowTip("TeamNotExist"); return; } isShow = true; Reasult.SetActive(isShow); if (isShow) { Display(); } } else { if (isShow) { Display(); } } } void OnUpdateTeamInfoEvent() { SearchTeam(); } void OnUpdateFindInfoEvent() { SearchTeam(); } }