//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, September 14, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
namespace Snxxz.UI
|
{
|
|
public class FriendQuestWin : Window, SecondWindowInterface
|
{
|
|
#region 成员变量
|
private Button _allDisagreeBtn;
|
private Button _allAgreeBtn;
|
private ScrollerController _friendQuestCtrl;
|
#endregion
|
|
private Dictionary<uint, FriendPlayer> _friendQuestDict;
|
|
FriendsModel _friendsModel;
|
FriendsModel friendsModel {
|
get {
|
return _friendsModel ?? (_friendsModel = ModelCenter.Instance.GetModel<FriendsModel>());
|
}
|
}
|
|
private int selectID = 0;
|
|
#region Built-in
|
|
public Button close { get; set; }
|
|
protected override void BindController()
|
{
|
if (this is SecondWindowInterface)
|
{
|
var frame = this.GetComponentInChildren<SecondFrameLoader>();
|
frame.Create();
|
close = frame.GetComponentInChildren<Button>();
|
}
|
_allDisagreeBtn = transform.Find("NoBtn").GetComponent<Button>();
|
_allAgreeBtn = transform.Find("YesBtn").GetComponent<Button>();
|
_friendQuestCtrl = transform.Find("QuestCtrl").GetComponent<ScrollerController>();
|
_friendQuestCtrl.lockType = EnhanceLockType.KeepVertical;
|
}
|
|
protected override void AddListeners()
|
{
|
_allDisagreeBtn.onClick.AddListener(() => { OnClickAllDisAgreeBtn(); });
|
_allAgreeBtn.onClick.AddListener(() => { OnClickAllAgreeBtn(); });
|
close.onClick.AddListener(OnClickCloseBtn);
|
}
|
|
protected override void OnPreOpen()
|
{
|
selectID = 0;
|
_friendQuestCtrl.OnRefreshCell += RefreshFriendQuestCell;
|
RefreshFriendQuest();
|
|
}
|
|
protected override void OnAfterOpen()
|
{
|
|
}
|
|
protected override void OnPreClose()
|
{
|
}
|
|
protected override void OnAfterClose()
|
{
|
_friendQuestCtrl.OnRefreshCell -= RefreshFriendQuestCell;
|
}
|
#endregion
|
|
public void RefreshFriendQuest()
|
{
|
_friendQuestCtrl.Refresh();
|
_friendQuestDict = friendsModel.GetFriendQuestDict();
|
foreach (int friendId in _friendQuestDict.Keys)
|
{
|
_friendQuestCtrl.AddCell(ScrollerDataType.Header, friendId);
|
}
|
_friendQuestCtrl.Restart();
|
if (_friendQuestDict.Count < 1)
|
{
|
Close();
|
}
|
|
}
|
|
private void RefreshFriendQuestCell(ScrollerDataType type, CellView cell)
|
{
|
|
FriendPlayer friendInfo = _friendQuestDict[(uint)cell.index];
|
Text friendName = cell.transform.Find("NameText").GetComponent<Text>();
|
friendName.text = friendInfo.PlayerName;
|
Text friendLv = cell.transform.Find("Container_LV/LvText").GetComponent<Text>();
|
Image friendLvIcon = cell.transform.Find("Container_LV/LvBG").GetComponent<Image>();
|
Button agreeBtn = cell.transform.Find("agreeBtn").GetComponent<Button>();
|
Button cellBtn = cell.GetComponent<Button>();
|
Button disagreeBtn = cell.transform.Find("disagreeBtn").GetComponent<Button>();
|
GameObject selectImg = cell.transform.Find("SelectedImage").gameObject;
|
Image realmImg = cell.transform.Find("RealmImage").GetComponent<Image>();
|
DebugEx.Log("境界:" + friendInfo.RealmLV);
|
RealmConfig realmConfig = RealmConfig.Get(friendInfo.RealmLV);
|
if (friendInfo.RealmLV > 0 && RealmConfig.Has(friendInfo.RealmLV))
|
{
|
realmImg.gameObject.SetActive(true);
|
realmImg.SetSprite(realmConfig.Img);
|
}
|
else
|
{
|
realmImg.gameObject.SetActive(false);
|
}
|
|
int nirvanaLv = friendInfo.LV - friendsModel.OpenGreatLV;
|
if (nirvanaLv > 0)
|
{
|
friendLvIcon.gameObject.SetActive(true);
|
friendLv.text = nirvanaLv.ToString();
|
}
|
else
|
{
|
friendLvIcon.gameObject.SetActive(false);
|
friendLv.text = friendInfo.LV.ToString();
|
}
|
|
if (cell.index == selectID)
|
{
|
selectImg.SetActive(true);
|
}
|
else
|
{
|
selectImg.SetActive(false);
|
}
|
|
agreeBtn.onClick.RemoveAllListeners();
|
disagreeBtn.onClick.RemoveAllListeners();
|
agreeBtn.onClick.AddListener(() => { OnClickAgreeBtn(friendInfo); });
|
disagreeBtn.onClick.AddListener(() => { OnClickDisAgreeBtn(friendInfo); });
|
cellBtn.RemoveAllListeners();
|
cellBtn.AddListener(() => { ClickFriendCell(cell.index); });
|
}
|
|
private void ClickFriendCell(int friendID)
|
{
|
DebugEx.Log("ClickFriendCell:" + friendID);
|
selectID = friendID;
|
RefreshFriendQuest();
|
}
|
|
#region 按钮事件
|
|
private void OnClickDisAgreeBtn(FriendPlayer friendInfo)
|
{
|
CB303_tagCGJoinFriendAnswer answer = new CB303_tagCGJoinFriendAnswer();
|
answer.TagID = friendInfo.PlayerID;
|
answer.Answer = 0;
|
GameNetSystem.Instance.SendInfo(answer);
|
friendsModel.DeleteFriendQuest(friendInfo.PlayerID);
|
RefreshFriendQuest();
|
}
|
|
private void OnClickAgreeBtn(FriendPlayer friendInfo)
|
{
|
|
CB303_tagCGJoinFriendAnswer answer = new CB303_tagCGJoinFriendAnswer();
|
answer.TagID = friendInfo.PlayerID;
|
answer.Answer = 1;
|
GameNetSystem.Instance.SendInfo(answer);
|
Debug.Log("ID" + friendInfo.PlayerID + "answer" + answer.Answer);
|
friendsModel.DeleteFriendQuest(friendInfo.PlayerID);
|
RefreshFriendQuest();
|
}
|
|
private void OnClickAllAgreeBtn()
|
{
|
foreach (var key in _friendQuestDict.Keys)
|
{
|
CB303_tagCGJoinFriendAnswer answer = new CB303_tagCGJoinFriendAnswer();
|
answer.TagID = key;
|
answer.Answer = 1;
|
GameNetSystem.Instance.SendInfo(answer);
|
}
|
friendsModel.DeleteAllFriendQuest();
|
Close();
|
|
}
|
|
private void OnClickAllDisAgreeBtn()
|
{
|
foreach (var key in _friendQuestDict.Keys)
|
{
|
CB303_tagCGJoinFriendAnswer answer = new CB303_tagCGJoinFriendAnswer();
|
answer.TagID = key;
|
answer.Answer = 0;
|
GameNetSystem.Instance.SendInfo(answer);
|
}
|
friendsModel.DeleteAllFriendQuest();
|
Close();
|
}
|
#endregion
|
|
private void OnClickCloseBtn()
|
{
|
Close();
|
}
|
}
|
|
}
|