Files
JJBB/Assets/Project/Script/GUI/StroyCopy/ExerciseRoomPanel.cs

244 lines
6.8 KiB
C#
Raw Permalink Normal View History

2024-08-23 15:49:34 +08:00
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=62006210
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
}