using UnityEngine; using vnxbqy.UI; public class CrossServerGodBattleFieldAssortCell : CellView { [SerializeField] AvatarCell avatarCell; [SerializeField] TextEx txtLeaderName; [SerializeField] TextEx txtLv; [SerializeField] TextEx txtPowerNum; [SerializeField] TextEx txtOnline; [SerializeField] TextEx txtOffline; [SerializeField] ImageEx imgMyBG; [SerializeField] ImageEx imgTeamLeader; [SerializeField] ButtonEx btnDisbandTeam; [SerializeField] ButtonEx btnKickOutTeam; [SerializeField] ButtonEx btnLeaveTeam; bool isHaveTeam; bool isCaptain; uint teamID; AssortTeamInfo teamInfo; AssortMemberInfo memberInfo; CrossServerGodBattleFieldAssortModel model { get { return ModelCenter.Instance.GetModel(); } } public void Display(int index, CellView cell) { uint playerID = (uint)cell.info.Value.infoInt1; isHaveTeam = model.TryGetPlayerTeamInfo(out isCaptain, out teamID, out teamInfo); if (!isHaveTeam || teamInfo.MemberDict == null) return; if (!teamInfo.MemberDict.TryGetValue(playerID, out memberInfo)) return; bool isPlayerOnline = model.IsPlayerOnline(playerID); imgTeamLeader.SetActive(teamInfo.CaptainID == playerID); imgMyBG.SetActive(PlayerDatas.Instance.baseData.PlayerID == playerID); btnDisbandTeam.SetActive(PlayerDatas.Instance.baseData.PlayerID == playerID && isCaptain); btnKickOutTeam.SetActive(PlayerDatas.Instance.baseData.PlayerID != playerID && isCaptain); btnLeaveTeam.SetActive(PlayerDatas.Instance.baseData.PlayerID == playerID && !isCaptain); txtOnline.SetActive(PlayerDatas.Instance.baseData.PlayerID != playerID && isPlayerOnline); txtOffline.SetActive(PlayerDatas.Instance.baseData.PlayerID != playerID && !isPlayerOnline); string serverName = ServerListCenter.Instance.GetServerName((int)memberInfo.ServerID); if (memberInfo.RealmLV > 0) { txtLeaderName.text = Language.Get("GodBattleFieldAssort27", serverName, RealmConfig.Get(memberInfo.RealmLV).Name, model.IsNoTeamName() ? memberInfo.Name : teamInfo.TeamName); } else { txtLeaderName.text = Language.Get("BlessedLand043", serverName, model.IsNoTeamName() ? memberInfo.Name : teamInfo.TeamName); } txtLv.text = Language.Get("SkillActLevel", memberInfo.LV); txtPowerNum.text = UIHelper.ReplaceLargeNum((double)memberInfo.FightPower); avatarCell.InitUI(AvatarHelper.GetAvatarModel((int)memberInfo.PlayerID, (int)memberInfo.Face, (int)memberInfo.FacePic, memberInfo.Job)); btnDisbandTeam.SetListener(() => { string title = Language.Get("GodBattleFieldAssort14"); string info = Language.Get("GodBattleFieldAssort29"); ConfirmCancel.ShowPopConfirm(title, info, (bool isok) => { if (isok) { if (model.IsOpenAction()) { SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort03"); return; } model.SendFuncTeamMemOP(teamInfo.TeamID, model.FuncMapID, 8); } }); }); btnKickOutTeam.SetListener(() => { string title = Language.Get("KickTeam"); string info = Language.Get("GodBattleFieldAssort30", serverName, RealmConfig.Get(memberInfo.RealmLV).Name, model.IsNoTeamName() ? memberInfo.Name : teamInfo.TeamName); ConfirmCancel.ShowPopConfirm(title, info, (bool isok) => { if (isok) { if (model.IsOpenAction()) { SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort03"); return; } model.SendFuncTeamMemOP(teamInfo.TeamID, model.FuncMapID, 6, (uint)playerID); } }); }); btnLeaveTeam.SetListener(() => { string title = Language.Get("TeamListExitTeam"); string info = Language.Get("GodBattleFieldAssort31"); ConfirmCancel.ShowPopConfirm(title, info, (bool isok) => { if (isok) { if (model.IsOpenAction()) { SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort03"); return; } model.SendFuncTeamMemOP(teamInfo.TeamID, model.FuncMapID, 5); } }); }); } }