208 lines
6.0 KiB
C#
208 lines
6.0 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using GCGame.Table;
|
|
|
|
public class TeamTargetRoot : MonoBehaviour
|
|
{
|
|
#region static call
|
|
|
|
private static TeamTargetRoot m_Instance;
|
|
public static TeamTargetRoot Instance()
|
|
{
|
|
return m_Instance;
|
|
}
|
|
public void Awake()
|
|
{
|
|
m_Instance = this;
|
|
}
|
|
|
|
public static void ShowTeamTarget(SelectTeamTarget selectTeamTarget)
|
|
{
|
|
Hashtable hash = new Hashtable();
|
|
hash.Add("SelectTeamTarget", selectTeamTarget);
|
|
|
|
UIManager.ShowUI(UIInfo.TeamTargetRoot, ShowUIOver, hash);
|
|
}
|
|
|
|
public static void ShowUIOver(bool sucess, object param)
|
|
{
|
|
Hashtable hash = param as Hashtable;
|
|
if (param == null)
|
|
return;
|
|
|
|
SelectTeamTarget selectTeamTarget = (SelectTeamTarget)hash["SelectTeamTarget"];
|
|
TeamTargetRoot.Instance().ShowUI(selectTeamTarget);
|
|
}
|
|
|
|
public static void SetDefaultLevel(int targetID, int level)
|
|
{
|
|
var levelMin = level - 10;
|
|
var levelMax = level + 10;
|
|
|
|
var targetTabs = TableManager.GetTeamTargetByID(targetID, 0);
|
|
|
|
if (targetTabs == null || level < targetTabs.MinLV)
|
|
{
|
|
GameManager.gameManager.PlayerDataPool.TeamInfo.LastTeamLevelMin = 0;
|
|
GameManager.gameManager.PlayerDataPool.TeamInfo.LastTeamLevelMax = 0;
|
|
GameManager.gameManager.PlayerDataPool.TeamInfo.AutoTeamTargetDest = -1;
|
|
if (targetTabs != null)
|
|
{
|
|
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5169}"));
|
|
}
|
|
return;
|
|
}
|
|
|
|
levelMin = Mathf.Max(targetTabs.MinLV, levelMin);
|
|
levelMax = Mathf.Min(targetTabs.MaxLv, levelMax);
|
|
|
|
GameManager.gameManager.PlayerDataPool.TeamInfo.LastTeamLevelMin = levelMin;
|
|
GameManager.gameManager.PlayerDataPool.TeamInfo.LastTeamLevelMax = levelMax;
|
|
GameManager.gameManager.PlayerDataPool.TeamInfo.AutoTeamTargetDest = targetID;
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
public delegate void SelectTeamTarget(Tab_TeamTarget target, int levelMin, int levelMax);
|
|
private SelectTeamTarget _SelectTeamTarget;
|
|
|
|
public UISubScollMenu _SubMenu;
|
|
public UIDialPanel _LevelMin;
|
|
public UIDialPanel _LevelMax;
|
|
|
|
private bool _InitUI = false;
|
|
private int _SelectMin = 0;
|
|
private int _SelectMax = 0;
|
|
|
|
public void ShowUI(SelectTeamTarget selectTeamTarget)
|
|
{
|
|
_SelectMin = GameManager.gameManager.PlayerDataPool.TeamInfo.LastTeamLevelMin;
|
|
_SelectMax = GameManager.gameManager.PlayerDataPool.TeamInfo.LastTeamLevelMax;
|
|
|
|
if (_SelectMin < 0)
|
|
{
|
|
_SelectMin = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level - 10;
|
|
}
|
|
|
|
if (_SelectMax < 0)
|
|
{
|
|
_SelectMax = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level + 10;
|
|
}
|
|
|
|
if (_InitUI)
|
|
{
|
|
_SubMenu.Refresh();
|
|
_LevelMin.SetSelectNum(_SelectMin);
|
|
_LevelMax.SetSelectNum(_SelectMax);
|
|
return;
|
|
}
|
|
|
|
_InitUI = true;
|
|
_SelectTeamTarget = selectTeamTarget;
|
|
|
|
var targetTabs = TableManager.GetTeamTarget().Values;
|
|
Dictionary<string, List<Tab_TeamTarget>> menuDict = new Dictionary<string, List<Tab_TeamTarget>>();
|
|
foreach (var targetTab in targetTabs)
|
|
{
|
|
if (!menuDict.ContainsKey(targetTab.ClassName))
|
|
{
|
|
menuDict.Add(targetTab.ClassName, new List<Tab_TeamTarget>());
|
|
}
|
|
menuDict[targetTab.ClassName].Add(targetTab);
|
|
}
|
|
|
|
foreach (var menu in menuDict)
|
|
{
|
|
if (menu.Value.Count == 1)
|
|
{
|
|
_SubMenu.PushMenu(menu.Value[0]);
|
|
}
|
|
else
|
|
{
|
|
_SubMenu.PushMenu(menu.Key, menu.Value.ToArray());
|
|
}
|
|
}
|
|
|
|
Tab_TeamTarget tartTab = TableManager.GetTeamTargetByID(GameManager.gameManager.PlayerDataPool.TeamInfo.AutoTeamTargetDest, 0);
|
|
if (tartTab == null)
|
|
{
|
|
_SubMenu.ShowDefaultFirst();
|
|
}
|
|
else
|
|
{
|
|
if (menuDict.ContainsKey(tartTab.ClassName))
|
|
{
|
|
if (menuDict[tartTab.ClassName].Count == 1)
|
|
{
|
|
_SubMenu.ShowMenu(tartTab);
|
|
}
|
|
else
|
|
{
|
|
_SubMenu.ShowMenu(tartTab.ClassName, tartTab);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
_SubMenu.ShowDefaultFirst();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void BtnMenu(object menuObj)
|
|
{
|
|
Tab_TeamTarget menuStr = menuObj as Tab_TeamTarget;
|
|
if (menuStr == null)
|
|
return;
|
|
|
|
_LevelMin.InitNum(menuStr.MinLV, menuStr.MaxLv);
|
|
_LevelMax.InitNum(menuStr.MinLV, menuStr.MaxLv);
|
|
|
|
int levelMin = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level - 10;
|
|
int levelMax = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level + 10;
|
|
|
|
_LevelMin.SetSelectNum(Mathf.Max(menuStr.MinLV, levelMin));
|
|
_LevelMax.SetSelectNum(Mathf.Min(menuStr.MaxLv, levelMax));
|
|
}
|
|
|
|
public void OnBtnEnsure()
|
|
{
|
|
_SelectMin = _LevelMin.GetSelectedNum();
|
|
_SelectMax = _LevelMax.GetSelectedNum();
|
|
|
|
var target1 = _SubMenu.SelectedSub1;
|
|
var target2 = _SubMenu.SelectedSub2;
|
|
|
|
Tab_TeamTarget target;
|
|
if (target2 != null)
|
|
{
|
|
target = target2 as Tab_TeamTarget;
|
|
}
|
|
else
|
|
{
|
|
target = target1 as Tab_TeamTarget;
|
|
}
|
|
|
|
|
|
_SelectTeamTarget(target, _SelectMin, _SelectMax);
|
|
|
|
|
|
UIManager.CloseUI(UIInfo.TeamTargetRoot);
|
|
// 在确认完毕后需要自动点击“自动匹配”
|
|
TeamInfoWindow.Instance().EnsureAutoTeam();
|
|
}
|
|
|
|
public void OnBtnClose()
|
|
{
|
|
UIManager.CloseUI(UIInfo.TeamTargetRoot);
|
|
}
|
|
|
|
public void OnHelp()
|
|
{
|
|
MessageHelpLogic.ShowHelpMessage(11);
|
|
}
|
|
}
|