| //--------------------------------------------------------  | 
| //    [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;  | 
|         }  | 
|     }  | 
|   | 
| }  | 
|   | 
|   | 
|   | 
|   |