JJBB/Assets/Project/Script/GUI/StroyCopy/ExerciseRoomPanel.cs
2024-08-23 15:49:34 +08:00

244 lines
6.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}