using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using Module.Log; using Games.GlobeDefine; using GCGame.Table; public class WorldMapItemInfo : MonoBehaviour { public Transform Child; public GameObject Fog; private Transform OPenObj; private Transform LockObj; private Text Name; private Text Level; private int m_SceneID = -1; public int ScenID { get { return m_SceneID; } private set { m_SceneID = value; } } public void UpdateInfo() { Tab_Fuben Fuben = TableManager.GetFubenByID(m_SceneID, 0); if (Fuben == null) return; Tab_SceneClass SceneClass = TableManager.GetSceneClassByID(m_SceneID, 0); if (SceneClass == null) return; int level = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level; if (Fuben != null && Fuben.PlayerLevelMin <= level) { Fog.SetActive(false); if (OPenObj != null) OPenObj.gameObject.SetActive(true); if(LockObj != null) LockObj.gameObject.SetActive(false); if(Name != null) Name.text = string.Format("<color=#42385cff>{0}</color>", SceneClass.Name); if(Level!=null) Level.text = string.Format("<color=#bdc3d5ff>{0}</color>", SceneClass.MapLevel); } else { Fog.SetActive(true); if (OPenObj != null) OPenObj.gameObject.SetActive(false); if (LockObj != null) LockObj.gameObject.SetActive(true); if (Name != null) Name.text = string.Format("<color=#1c1c2bff>{0}</color>", SceneClass.Name); if (Level != null) Level.text = string.Format("<color=#9ea0a5ff>{0}</color>", SceneClass.MapLevel); } } public void Init(int SceneId,GameObject MapInfoObj) { m_SceneID = SceneId; Tab_SceneClass SceneClass = TableManager.GetSceneClassByID(SceneId, 0); if (SceneClass == null) return; Button clickBtn = GetComponentInChildren<Button>(); if(clickBtn!=null) { clickBtn.onClick.AddListener(OnMapItemClick); } if(Child!=null) { MapInfoObj.SetActive(true); MapInfoObj.transform.SetParent(Child); MapInfoObj.transform.localPosition = Vector3.zero; MapInfoObj.transform.localScale = Vector3.one; OPenObj = MapInfoObj.transform.Find("OPen"); LockObj = MapInfoObj.transform.Find("Lock"); Transform NameObj = MapInfoObj.transform.Find("Name"); if(NameObj!=null) { Name = NameObj.GetComponent<Text>(); } Transform LevelObj = MapInfoObj.transform.Find("Level"); if (LevelObj != null) { Level = LevelObj.GetComponent<Text>(); } } UpdateInfo(); } public void OnMapItemClick() { //组队跟随,不响应 if (GameManager.gameManager.PlayerDataPool.IsFollowTeam) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5128}")); return; } Tab_Fuben scene = TableManager.GetFubenByID(m_SceneID, 0); if (scene != null) { if (Singleton<ObjManager>.Instance.MainPlayer != null && GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level < scene.PlayerLevelMin) { GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5327}")); return; } } if (m_SceneID >= 0 && Singleton<ObjManager>.GetInstance().MainPlayer != null && m_SceneID != GameManager.gameManager.RunningScene) { if (GCGame.Utils.IsCanPK(m_SceneID) && !GCGame.Utils.IsIncPKValue(m_SceneID)) { MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{2672}"), "", EnterNonePKValueSceneOK); } else { EnterNonePKValueSceneOK(); } } } void EnterNonePKValueSceneOK() { Tab_SceneClass tabSceneClass = TableManager.GetSceneClassByID(m_SceneID, 0); if (null == tabSceneClass) { return; } MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{1644}", tabSceneClass.Name), "", DoTeleport); } void ChangeScene() { Tab_SceneClass tabSceneClass = TableManager.GetSceneClassByID(m_SceneID, 0); if (null == tabSceneClass) { return; } // 传送时,停止主角移动并停止自动寻路 var mainPlayer = ObjManager.Instance.MainPlayer; if (mainPlayer != null) mainPlayer.StopMove(); GameManager.gameManager.AutoSearch.Stop(); if (Singleton<ObjManager>.Instance.MainPlayer.IsInPaoShang()) { GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("{#3937}")); return; } SceneData.RequestChangeScene((int)CG_REQ_CHANGE_SCENE.CHANGETYPE.WORLDMAP, 0, m_SceneID, -1, (int)tabSceneClass.SafeX, (int)tabSceneClass.SafeZ); UIManager.CloseUI(UIInfo.WorldMapWindow); } void DoTeleport() { if (GameManager.gameManager.ActiveScene.IsCopyScene()) { string strDic = StrDictionary.GetClientDictionaryString("#{2345}"); Tab_Fuben fuben = TableManager.GetFubenByID(GameManager.gameManager.PlayerDataPool.EnterSceneCache.EnterCopySceneID, 0); if (fuben != null && fuben.PositiveLeave > 1) { Tab_StrDictionary pDictionary = TableManager.GetStrDictionaryByID(fuben.PositiveLeave, 0); if (pDictionary != null) { strDic = pDictionary.StrDictionary; } } MessageBoxLogic.OpenOKCancelBox(strDic, "", ChangeScene); return; } ChangeScene(); } }