| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Wednesday, November 22, 2017 |
| | | //-------------------------------------------------------- |
| | | |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | namespace Snxxz.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.gameObject.SetActive(false); |
| | | m_ImgBGRt.gameObject.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.gameObject.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.gameObject.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.gameObject.SetActive(true); |
| | | } |
| | | } |
| | | return target; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Wednesday, November 22, 2017
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | namespace Snxxz.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.gameObject.SetActive(false);
|
| | | m_ImgBGRt.gameObject.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.gameObject.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.gameObject.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.gameObject.SetActive(true);
|
| | | }
|
| | | }
|
| | | return target;
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|