using System.Collections; using System.Collections.Generic; using UnityEngine; using GCGame.Table; using Module.Log; using UnityEngine.UI; using Games.Events; using System; public class ExerciseRoomPanel : MonoBehaviour { public static ExerciseRoomPanel Instance; void Awake() { Instance = this; } private void OnDestroy() { Instance = null; } public Text _SceneName; public Text _RecommendMonsterName; public Text _RemainAwardTime; private void OnEnable() { OnBtnShow(); ReqCurSceneInfo(); InitCurSceneNameInfo(); } void ReqCurSceneInfo() { ReqExerciseRoomInfo req = new ReqExerciseRoomInfo(); req.flag = 1; req.SendMsg(); } //当前场景名称(RetEnterExerciseRoom 成功的时候获取当前场景ID ) void InitCurSceneNameInfo() { var sceneClass = TableManager.GetSceneClassByID(GameManager.gameManager.RunningScene, 0); if(sceneClass == null) { LogModule.ErrorLog("ScenClass is null, id : " + GameManager.gameManager.RunningScene); return; } RefreshRecommendInfo(); } //当前推荐(等级变化的时候这边需要刷新) string _MonsterPos = null; int _RecommondMonsterId = -1; public void RefreshRecommendInfo() { var fubenId = -1; foreach (var fuben in TableManager.GetFuben()) { if (fuben.Value.GetSceneIdbyIndex(0) == GameManager.gameManager.RunningScene) { fubenId = fuben.Value.Id; break; } } var exerciseRoomTab = TableManager.GetExerciseRoomByID(fubenId, 0); if(exerciseRoomTab == null) { LogModule.ErrorLog("exerciseRoomTab is null , id : " + GameManager.gameManager.RunningScene); return; } _SceneName.text = TableManager.GetSceneClassByID(GameManager.gameManager.RunningScene, 0).Name; var mainPlayerLevel = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level; var hasRecommend = false; for(int index = 0; index < exerciseRoomTab.getLevelCount(); index++) { if (exerciseRoomTab.GetLevelbyIndex(index) == -1) break; if (mainPlayerLevel < exerciseRoomTab.GetLevelbyIndex(index)) { hasRecommend = true; var recommondIndex = Mathf.Clamp(index - 1, 0, exerciseRoomTab.getLevelCount() - 1); _MonsterPos = exerciseRoomTab.GetPosbyIndex(recommondIndex); _RecommondMonsterId = exerciseRoomTab.GetMonsterIdbyIndex(recommondIndex); break; } } if (!hasRecommend) { _MonsterPos = exerciseRoomTab.GetPosbyIndex(exerciseRoomTab.getLevelCount() - 1); _RecommondMonsterId = exerciseRoomTab.GetMonsterIdbyIndex(exerciseRoomTab.getLevelCount() - 1); } if(_RecommondMonsterId == -1) { LogModule.ErrorLog("recommondMonsterId is -1"); return; } var roleBaseAttr = TableManager.GetRoleBaseAttrByID(_RecommondMonsterId, 0); if(roleBaseAttr == null) { LogModule.ErrorLog("roleBaseAttr is null, id : " + _RecommondMonsterId); return; } _RecommendMonsterName.text = roleBaseAttr.Name; } public void OnMonsterName() { GameEvent gameEvent = new GameEvent(); gameEvent.Reset(); gameEvent.EventID = Games.GlobeDefine.GameDefine_Globe.EVENT_DEFINE.EVENT_KILLMONSTER; AutoSearchPoint point = new AutoSearchPoint(GameManager.gameManager.RunningScene, float.Parse(_MonsterPos.Split('|')[0]), float.Parse(_MonsterPos.Split('|')[1])); if (GameManager.gameManager && GameManager.gameManager.AutoSearch) { Tab_RoleBaseAttr role = TableManager.GetRoleBaseAttrByID(_RecommondMonsterId, 0); GameManager.gameManager.AutoSearch.BuildPath(point); if (role != null) { GameManager.gameManager.AutoSearch.Path.AutoSearchTargetName = role.Name; GameManager.gameManager.AutoSearch.Path.FinishCallBackEvent = gameEvent; } } } //刷新当前剩余奖励次数 public void RefreshRemainAwardTime(int remainTime = 0) { _RemainAwardTime.text = remainTime + ""; } public void OnExitBtn() { MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{2345}"), "", delegate() { ReqExitExerciseRoom req = new ReqExitExerciseRoom(); req.flag = 1; req.SendMsg(); }); } #region tween operation public ObjectTween _MoveTo; public RectTransform _TitleBGRec; public GameObject _ShowBtn; public GameObject _HideBtn; public GameObject _InfoPanel; private bool isShow = false; public void OnBtnShow() { ShowPanel(); _ShowBtn.SetActive(false); _HideBtn.SetActive(true); isShow = true; L_ShowExpBtn(); } public void OnBtnHide() { HidePanel(); _ShowBtn.SetActive(true); _HideBtn.SetActive(false); isShow = false; } public void OnTitleBtn() { if (isShow) { OnBtnHide(); } else { OnBtnShow(); } } public void ShowPanel() { _MoveTo.Reset(); _MoveTo.destantPos = new Vector3(0, 0, 0); GCGame.Utils.HideMainTopRightUI(); _TitleBGRec.sizeDelta = new Vector2(300, _TitleBGRec.sizeDelta.y); _InfoPanel.gameObject.SetActive(true); } public void HidePanel() { _MoveTo.Reset(); _MoveTo.destantPos = new Vector3(0, -192, 0); GCGame.Utils.ShowMainTopRightUI(); _TitleBGRec.sizeDelta = new Vector2(240, _TitleBGRec.sizeDelta.y); _InfoPanel.gameObject.SetActive(false); } #endregion #region 试炼谷(副本id=6200到6210)增加一个界面按钮 public GameObject L_OutLine; public void L_ShowExpBtn() { var L_fubenId = -1; foreach (var fuben in TableManager.GetFuben()) { if (fuben.Value.GetSceneIdbyIndex(0) == GameManager.gameManager.RunningScene) { L_fubenId = fuben.Value.Id; break; } } for (int SceneId = 6200; SceneId <= 6210; SceneId++) { if (L_fubenId == SceneId) { L_OutLine.SetActive(true); return; } else { L_OutLine.SetActive(false); } } } //按钮点击事件 public void L_OnShowUseItemPanelBtnClick() { DailyCopyInfoItemsPanelCtr.L_Show(70); } #endregion }