| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Wednesday, September 06, 2017 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | using TableConfig; |
| | | using System; |
| | | |
| | | namespace Snxxz.UI |
| | | { |
| | | |
| | | public class WorldMapAreaBehaviour : MonoBehaviour |
| | | { |
| | | [SerializeField] GameObject m_Conainter; |
| | | public GameObject container { |
| | | get { return m_Conainter; } |
| | | } |
| | | |
| | | [SerializeField] BoundedDrag m_BoundedDrag; |
| | | [SerializeField] PointerDownUp m_MapButton; |
| | | [SerializeField] ScaleTween m_ScaleTween; |
| | | [SerializeField] Image m_MapBackGround; |
| | | [SerializeField] Text m_AreaName; |
| | | [SerializeField] Text m_AreaCamp; |
| | | [SerializeField] Transform m_Locked; |
| | | [SerializeField] Transform m_PlayerHead; |
| | | [SerializeField] MaterialsContainer m_Materials; |
| | | [SerializeField] PressTip m_PressTip; |
| | | [SerializeField] WorldMapUnLockTip m_UnLockTip; |
| | | [SerializeField] Transform m_NewUnLockArrowPoint; |
| | | [SerializeField] RectTransform m_NewUnLockTip; |
| | | |
| | | public Transform newUnLockArrowPoint { |
| | | get { return m_NewUnLockArrowPoint; } |
| | | } |
| | | |
| | | public Transform playerHead { |
| | | get { |
| | | return m_PlayerHead; |
| | | } |
| | | } |
| | | |
| | | WorldMapArea m_MapArea; |
| | | float downTime = 0f; |
| | | |
| | | MapModel model { get { return ModelCenter.Instance.GetModel<MapModel>(); } } |
| | | TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } |
| | | |
| | | private void Awake() |
| | | { |
| | | m_MapButton.AddPointerDownListener(OnPointerDown); |
| | | m_MapButton.AddPointerUpListener(OnPointerUp); |
| | | m_MapButton.AddPointerClickListener(OnPointerClick); |
| | | } |
| | | |
| | | public void Init(WorldMapArea _area) |
| | | { |
| | | m_MapArea = _area; |
| | | m_ScaleTween.SetStartState(); |
| | | DrawArea(); |
| | | m_PressTip.enabled = !model.IsMapUnLocked(m_MapArea.id); |
| | | |
| | | if (m_NewUnLockTip != null) |
| | | { |
| | | m_NewUnLockTip.gameObject.SetActive(m_MapArea.id != model.newUnLockedMap && model.newUnLockMapsTip == m_MapArea.id); |
| | | } |
| | | |
| | | CheckAchievementGuide(); |
| | | } |
| | | |
| | | public void SetMaterial(string _materialName) |
| | | { |
| | | m_MapBackGround.material = m_Materials.GetMaterial(_materialName); |
| | | } |
| | | |
| | | public void BeginUnLockShow() |
| | | { |
| | | StartCoroutine("Co_UnLockShow"); |
| | | } |
| | | |
| | | private void DrawArea() |
| | | { |
| | | try |
| | | { |
| | | var unLocked = model.IsMapUnLocked(m_MapArea.id); |
| | | var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(m_MapArea.id); |
| | | m_AreaName.text = mapConfig.Name; |
| | | m_Locked.gameObject.SetActive(!unLocked); |
| | | m_MapBackGround.material = unLocked ? m_Materials.GetMaterial("Normal") : m_Materials.GetMaterial("Gray"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | DesignDebug.Log(ex); |
| | | } |
| | | } |
| | | |
| | | private void OnDisable() |
| | | { |
| | | StopAllCoroutines(); |
| | | } |
| | | |
| | | private void OnPointerDown() |
| | | { |
| | | m_ScaleTween.Play(false); |
| | | downTime = Time.time; |
| | | var mapId = m_MapArea.id; |
| | | if (!model.IsMapUnLocked(mapId)) |
| | | { |
| | | m_UnLockTip.Display(mapId); |
| | | } |
| | | } |
| | | |
| | | private void OnPointerUp() |
| | | { |
| | | m_ScaleTween.Play(true); |
| | | } |
| | | |
| | | private void OnPointerClick() |
| | | { |
| | | var isUnLocked = model.IsMapUnLocked(m_MapArea.id); |
| | | if (isUnLocked || Time.time - downTime < 0.3f) |
| | | { |
| | | if (isUnLocked) |
| | | { |
| | | if (m_MapArea.id == PlayerDatas.Instance.baseData.MapID) |
| | | { |
| | | SysNotifyMgr.Instance.ShowTip("NowWorldMap"); |
| | | } |
| | | else |
| | | { |
| | | if (PlayerDatas.Instance.hero != null) |
| | | { |
| | | PlayerDatas.Instance.hero.StopAll(); |
| | | } |
| | | |
| | | MapTransferUtility.Instance.Clear(); |
| | | model.RequestMapTransport(m_MapArea.id); |
| | | model.ConfirmNewMap(m_MapArea.id); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | IEnumerator Co_UnLockShow() |
| | | { |
| | | m_MapBackGround.material = m_Materials.GetMaterial("Lerp"); |
| | | var timer = 0f; |
| | | while (timer < 1f) |
| | | { |
| | | timer += Time.deltaTime; |
| | | var t = Mathf.Clamp01(timer); |
| | | m_MapBackGround.material.SetFloat("_GrayScale", t); |
| | | yield return null; |
| | | } |
| | | |
| | | m_MapBackGround.material = m_Materials.GetMaterial("Normal"); |
| | | } |
| | | |
| | | private void CheckAchievementGuide() |
| | | { |
| | | if (AchievementGoto.guideAchievementId != 0) |
| | | { |
| | | var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(AchievementGoto.guideAchievementId); |
| | | if (config.Type == 37 && config.Condition[0] == m_MapArea.id) |
| | | { |
| | | var guideEffect = AchievementGuideEffectPool.Require(4); |
| | | guideEffect.transform.SetParentEx(m_MapButton.transform, Vector3.zero, Vector3.zero, Vector3.one); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Wednesday, September 06, 2017
|
| | | //--------------------------------------------------------
|
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | | using UnityEngine.UI;
|
| | | using TableConfig;
|
| | | using System;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | | public class WorldMapAreaBehaviour : MonoBehaviour
|
| | | {
|
| | | [SerializeField] GameObject m_Conainter;
|
| | | public GameObject container {
|
| | | get { return m_Conainter; }
|
| | | }
|
| | |
|
| | | [SerializeField] BoundedDrag m_BoundedDrag;
|
| | | [SerializeField] PointerDownUp m_MapButton;
|
| | | [SerializeField] ScaleTween m_ScaleTween;
|
| | | [SerializeField] Image m_MapBackGround;
|
| | | [SerializeField] Text m_AreaName;
|
| | | [SerializeField] Text m_AreaLevel;
|
| | | [SerializeField] Text m_AreaCamp;
|
| | | [SerializeField] Transform m_Locked;
|
| | | [SerializeField] Transform m_PlayerHead;
|
| | | [SerializeField] MaterialsContainer m_Materials;
|
| | | [SerializeField] PressTip m_PressTip;
|
| | | [SerializeField] WorldMapUnLockTip m_UnLockTip;
|
| | | [SerializeField] Transform m_NewUnLockArrowPoint;
|
| | | [SerializeField] RectTransform m_NewUnLockTip;
|
| | |
|
| | | public Transform newUnLockArrowPoint {
|
| | | get { return m_NewUnLockArrowPoint; }
|
| | | }
|
| | |
|
| | | public Transform playerHead {
|
| | | get {
|
| | | return m_PlayerHead;
|
| | | }
|
| | | }
|
| | |
|
| | | WorldMapArea m_MapArea;
|
| | | float downTime = 0f;
|
| | |
|
| | | MapModel model { get { return ModelCenter.Instance.GetModel<MapModel>(); } }
|
| | | TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
| | |
|
| | | private void Awake()
|
| | | {
|
| | | m_MapButton.AddPointerDownListener(OnPointerDown);
|
| | | m_MapButton.AddPointerUpListener(OnPointerUp);
|
| | | m_MapButton.AddPointerClickListener(OnPointerClick);
|
| | | }
|
| | |
|
| | | public void Init(WorldMapArea _area)
|
| | | {
|
| | | m_MapArea = _area;
|
| | | m_ScaleTween.SetStartState();
|
| | | DrawArea();
|
| | | m_PressTip.enabled = !model.IsMapUnLocked(m_MapArea.id);
|
| | |
|
| | | if (m_NewUnLockTip != null)
|
| | | {
|
| | | m_NewUnLockTip.gameObject.SetActive(m_MapArea.id != model.newUnLockedMap && model.newUnLockMapsTip == m_MapArea.id);
|
| | | }
|
| | |
|
| | | CheckAchievementGuide();
|
| | | }
|
| | |
|
| | | public void SetMaterial(string _materialName)
|
| | | {
|
| | | m_MapBackGround.material = m_Materials.GetMaterial(_materialName);
|
| | | }
|
| | |
|
| | | public void BeginUnLockShow()
|
| | | {
|
| | | StartCoroutine("Co_UnLockShow");
|
| | | }
|
| | |
|
| | | private void DrawArea()
|
| | | {
|
| | | try
|
| | | {
|
| | | var unLocked = model.IsMapUnLocked(m_MapArea.id);
|
| | | var mapConfig = ConfigManager.Instance.GetTemplate<MapConfig>(m_MapArea.id);
|
| | | m_AreaName.text = mapConfig.Name;
|
| | | m_AreaLevel.text = mapConfig.LV.ToString();
|
| | | m_Locked.gameObject.SetActive(!unLocked);
|
| | | m_MapBackGround.material = unLocked ? m_Materials.GetMaterial("Normal") : m_Materials.GetMaterial("Gray");
|
| | | }
|
| | | catch (Exception ex)
|
| | | {
|
| | | DebugEx.Log(ex);
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnDisable()
|
| | | {
|
| | | StopAllCoroutines();
|
| | | }
|
| | |
|
| | | private void OnPointerDown()
|
| | | {
|
| | | m_ScaleTween.Play(false);
|
| | | downTime = Time.time;
|
| | | var mapId = m_MapArea.id;
|
| | | if (!model.IsMapUnLocked(mapId))
|
| | | {
|
| | | m_UnLockTip.Display(mapId);
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnPointerUp()
|
| | | {
|
| | | m_ScaleTween.Play(true);
|
| | | }
|
| | |
|
| | | private void OnPointerClick()
|
| | | {
|
| | | var isUnLocked = model.IsMapUnLocked(m_MapArea.id);
|
| | | if (isUnLocked || Time.time - downTime < 0.3f)
|
| | | {
|
| | | if (isUnLocked)
|
| | | {
|
| | | if (m_MapArea.id == PlayerDatas.Instance.baseData.MapID)
|
| | | {
|
| | | SysNotifyMgr.Instance.ShowTip("NowWorldMap");
|
| | | }
|
| | | else
|
| | | {
|
| | | if (PlayerDatas.Instance.hero != null)
|
| | | {
|
| | | PlayerDatas.Instance.hero.StopAll();
|
| | | }
|
| | |
|
| | | MapTransferUtility.Instance.Clear();
|
| | | model.RequestMapTransport(m_MapArea.id);
|
| | | model.ConfirmNewMap(m_MapArea.id);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | IEnumerator Co_UnLockShow()
|
| | | {
|
| | | m_MapBackGround.material = m_Materials.GetMaterial("Lerp");
|
| | | var timer = 0f;
|
| | | while (timer < 1f)
|
| | | {
|
| | | timer += Time.deltaTime;
|
| | | var t = Mathf.Clamp01(timer);
|
| | | m_MapBackGround.material.SetFloat("_GrayScale", t);
|
| | | yield return null;
|
| | | }
|
| | |
|
| | | m_MapBackGround.material = m_Materials.GetMaterial("Normal");
|
| | | }
|
| | |
|
| | | private void CheckAchievementGuide()
|
| | | {
|
| | | if (AchievementGoto.guideAchievementId != 0)
|
| | | {
|
| | | var config = ConfigManager.Instance.GetTemplate<SuccessConfig>(AchievementGoto.guideAchievementId);
|
| | | if (config.Type == 37 && config.Condition[0] == m_MapArea.id)
|
| | | {
|
| | | var guideEffect = AchievementGuideEffectPool.Require(4);
|
| | | guideEffect.transform.SetParentEx(m_MapButton.transform, Vector3.zero, Vector3.zero, Vector3.one);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|