//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, November 22, 2017
|
//--------------------------------------------------------
|
|
using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class DungeonMultipleTaskWin : Window
|
{
|
[SerializeField] RectTransform m_ContainerTitle;
|
[SerializeField] Text m_TitleTxt;
|
[SerializeField] Button firstlyTaskBtn;
|
[SerializeField] Button secondaryTaskBtn;
|
[SerializeField] Text firstlyTaskBtnText;
|
[SerializeField] Text secondaryTaskBtnText;
|
[SerializeField] RectTransform contentRt;
|
[SerializeField] RectTransform m_ImgBGRt;
|
|
GameObject firstlyTaskTarget;
|
GameObject secondaryTaskTarget;
|
|
string firstlyTaskPrefabName;
|
string secondaryTaskPrefabName;
|
|
[SerializeField] SelectEffect m_SelectEffect;
|
|
[Serializable]
|
public struct SelectEffect
|
{
|
[Header("选中时字体颜色")]
|
public Color selectTextColor;
|
[Header("未选中时字体颜色")]
|
public Color unSelectTextColor;
|
[Header("选中时按钮透明度"), Range(0, 1.0f)]
|
public float selectAlpha;
|
[Header("未选中时按钮透明度"), Range(0, 1.0f)]
|
public float unselectAlpha;
|
}
|
#region Built-in
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
firstlyTaskBtn.onClick.AddListener(OnFirstlyTask);
|
secondaryTaskBtn.onClick.AddListener(OnSecondaryTask);
|
}
|
|
private void OnSecondaryTask()
|
{
|
if (secondaryTaskTarget != null)
|
return;
|
var _sizeDelta = m_ImgBGRt.sizeDelta;
|
secondaryTaskTarget = LoadTaskTarget(secondaryTaskPrefabName);
|
switch (PlayerDatas.Instance.baseData.MapID)
|
{
|
case 31170:
|
{
|
DungeonRankBehaviour dungeonRankBehaviour = secondaryTaskTarget.GetComponent<DungeonRankBehaviour>();
|
if (dungeonRankBehaviour != null)
|
dungeonRankBehaviour.Init(PlayerDatas.Instance.baseData.MapID);
|
}
|
break;
|
case 31160:
|
{
|
AchieveTargetBehaviour achieveTargetBehaviour = secondaryTaskTarget.GetComponent<AchieveTargetBehaviour>();
|
if (achieveTargetBehaviour != null)
|
achieveTargetBehaviour.Init(PlayerDatas.Instance.baseData.MapID);
|
_sizeDelta.y = 204;
|
}
|
break;
|
case FairyLeagueModel.FAIRY_LEAGUE_DUNGEON:
|
break;
|
}
|
var _color = firstlyTaskBtn.targetGraphic.color;
|
_color.a = m_SelectEffect.unselectAlpha;
|
firstlyTaskBtn.targetGraphic.color = _color;
|
firstlyTaskBtnText.color = m_SelectEffect.unSelectTextColor;
|
_color = secondaryTaskBtn.targetGraphic.color;
|
_color.a = m_SelectEffect.selectAlpha;
|
secondaryTaskBtn.targetGraphic.color = _color;
|
secondaryTaskBtnText.color = m_SelectEffect.selectTextColor;
|
ReleaseFirstlyTask();
|
m_ImgBGRt.sizeDelta = _sizeDelta;
|
}
|
|
private void OnFirstlyTask()
|
{
|
if (firstlyTaskTarget != null)
|
return;
|
var _sizeDelta = m_ImgBGRt.sizeDelta;
|
firstlyTaskTarget = LoadTaskTarget(firstlyTaskPrefabName);
|
switch (PlayerDatas.Instance.baseData.MapID)
|
{
|
case 31160:
|
case 31170:
|
DungeonTargetBehaviour dungeonTargetBehaviour = firstlyTaskTarget.GetComponent<DungeonTargetBehaviour>();
|
if (dungeonTargetBehaviour != null)
|
dungeonTargetBehaviour.Init(PlayerDatas.Instance.baseData.MapID);
|
_sizeDelta.y = 233;
|
break;
|
case FairyLeagueModel.FAIRY_LEAGUE_DUNGEON:
|
break;
|
}
|
var _color = firstlyTaskBtn.targetGraphic.color;
|
_color.a = m_SelectEffect.selectAlpha;
|
firstlyTaskBtn.targetGraphic.color = _color;
|
firstlyTaskBtnText.color = m_SelectEffect.selectTextColor;
|
_color = secondaryTaskBtn.targetGraphic.color;
|
_color.a = m_SelectEffect.unselectAlpha;
|
secondaryTaskBtn.targetGraphic.color = _color;
|
secondaryTaskBtnText.color = m_SelectEffect.unSelectTextColor;
|
ReleaseSecondaryTask();
|
|
|
m_ImgBGRt.sizeDelta = _sizeDelta;
|
}
|
|
protected override void OnPreOpen()
|
{
|
m_ContainerTitle.SetActive(false);
|
m_ImgBGRt.SetActive(false);
|
switch (PlayerDatas.Instance.baseData.MapID)
|
{
|
case 31170:
|
{
|
firstlyTaskPrefabName = "Container_DungeonTarget";
|
secondaryTaskPrefabName = "Container_DamageRank";
|
firstlyTaskBtnText.text = Language.Get("GuardTheEmperor1");
|
secondaryTaskBtnText.text = Language.Get("GuardSkyRankTitle");
|
}
|
break;
|
case 31160:
|
{
|
m_ImgBGRt.SetActive(true);
|
firstlyTaskPrefabName = "Container_DungeonTarget";
|
secondaryTaskPrefabName = "Container_AchieveTarget";
|
firstlyTaskBtnText.text = Language.Get("AncientBattle");
|
secondaryTaskBtnText.text = Language.Get("AncientTarget");
|
}
|
break;
|
case FairyLeagueModel.FAIRY_LEAGUE_DUNGEON:
|
{
|
firstlyTaskPrefabName = "Container_FairyLeagueResource";
|
secondaryTaskPrefabName = "Container_IntegralRank";
|
firstlyTaskBtnText.text = Language.Get("FairyLeagueResourceTitle");
|
secondaryTaskBtnText.text = Language.Get("IntergralRankTitle");
|
m_ContainerTitle.SetActive(true);
|
m_TitleTxt.text = Language.Get("FamilyMatchName");
|
}
|
break;
|
}
|
OnFirstlyTask();
|
}
|
|
protected override void OnAfterOpen()
|
{
|
}
|
|
protected override void OnPreClose()
|
{
|
ReleaseFirstlyTask();
|
ReleaseSecondaryTask();
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
#endregion
|
|
|
private void ReleaseFirstlyTask()
|
{
|
if (firstlyTaskTarget != null)
|
{
|
var prefab = UILoader.LoadPrefab(firstlyTaskPrefabName);
|
var pool = GameObjectPoolManager.Instance.RequestPool(prefab);
|
firstlyTaskTarget.SetActive(false);
|
pool.Release(firstlyTaskTarget);
|
firstlyTaskTarget = null;
|
}
|
}
|
|
private void ReleaseSecondaryTask()
|
{
|
if (secondaryTaskTarget != null)
|
{
|
var prefab = UILoader.LoadPrefab(secondaryTaskPrefabName);
|
var pool = GameObjectPoolManager.Instance.RequestPool(prefab);
|
secondaryTaskTarget.SetActive(false);
|
pool.Release(secondaryTaskTarget);
|
secondaryTaskTarget = null;
|
}
|
}
|
|
private GameObject LoadTaskTarget(string prefabName)
|
{
|
var prefab = UILoader.LoadPrefab(prefabName);
|
var pool = GameObjectPoolManager.Instance.RequestPool(prefab);
|
GameObject target = null;
|
if (pool != null)
|
{
|
target = pool.Request();
|
if (target != null)
|
{
|
target.transform.SetParent(contentRt);
|
target.transform.localScale = Vector3.one;
|
target.transform.localPosition = Vector3.zero;
|
target.SetActive(true);
|
}
|
}
|
return target;
|
}
|
}
|
|
}
|
|
|
|
|