Files
JJBB/Assets/Project/Script/GUI/Map/CrossServerCopyInfoCtr.cs

237 lines
7.0 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using GCGame.Table;
using Games.Mission;
using Module.Log;
public class CrossServerCopyInfoCtr : MonoBehaviour {
public static CrossServerCopyInfoCtr Instance;
private void Awake()
{
Instance = this;
}
private void OnDestroy()
{
Instance = null;
}
public GameObject _ShowBtn;
public GameObject _HideBtn;
public UIContainerBase _RewContainer;
public Text _MissionInfoDesc;
public Text _MissionCountParam;
public Text _DailyReputation;
public Text _NpcName;
public GameObject _MissionPanel;
public GameObject _DailyMissionPanel;
public GameObject _CompleteMissionIcon;
public GameObject _RewPanel;
public GameObject _InfoPanel;
public int _MissionId = -1;
private void OnEnable()
{
OnShow();
if (ActivityDataManager.Instance.IsActivityState((int)ActivityDataManager.Activity_Type.ACTIVITY_TYPE_CROSSSERVERBOSS, ActivityDataManager.ActivityState.Playing))
{
gameObject.SetActive(false);
}
}
private SynCrossSerInfo _Packet;
public void OnPacket(SynCrossSerInfo packet)
{
_Packet = packet;
_MissionId = packet.killMissionid;
_DailyReputation.text = packet.todayscore + "/" + packet.totalscore;
if (_MissionId == -1)
{
_MissionPanel.SetActive(false);
InitRewAndNpcName();
return;
}
else
{
_MissionPanel.SetActive(true);
MissionOperation();
}
}
public void OnShop()
{
YuanBaoShopLogic.OpenShopForJiFenItem(10, -1);
//UIManager.ShowUI(UIInfo.YuanBaoShop, delegate(bool bSucess, object param) {
// if(bSucess)
// {
// YuanBaoShopLogic.OpenShopForJiFenItem(10, -1);
// }
//});
}
public void OnRule()
{
MessageHelpLogic.ShowHelpMessage(53);
}
public void OnExit()
{
//if (Singleton<ObjManager>.Instance.MainPlayer != null)
//{
// Singleton<ObjManager>.Instance.MainPlayer.AskLeaveCopy();
//}
var sceneInfo = TableManager.GetSceneClassByID(13, 0);
if (sceneInfo != null)
{
SceneData.RequestChangeScene((int)AutoSearchPoint.ChangeMap_Type.WORLDMAP, 0,13,
-1, (int)sceneInfo.SafeX, (int)sceneInfo.SafeZ);
}
}
public void OnShow()
{
_ShowBtn.SetActive(true);
_HideBtn.SetActive(false);
_InfoPanel.SetActive(true);
GCGame.Utils.HideMainTopRightUI();
}
public void OnHide()
{
_ShowBtn.SetActive(false);
_HideBtn.SetActive(true);
_InfoPanel.SetActive(false);
}
//不能每次同步声望的时候都刷新一次
private bool hasInitRew = false;
private const int _AcceptMissionNpcDataId = -1;
public void InitRewAndNpcName()
{
if (hasInitRew)
return;
//这边写死了一个接取护送任务的NPCID
Tab_RoleBaseAttr roleBaseAttr = null;
switch (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Force)
{
case 6:
roleBaseAttr = TableManager.GetRoleBaseAttrByID(912, 0);
break;
case 7:
roleBaseAttr = TableManager.GetRoleBaseAttrByID(913, 0);
break;
case 27:
roleBaseAttr = TableManager.GetRoleBaseAttrByID(914, 0);
break;
}
if (roleBaseAttr != null)
{
_NpcName.text = roleBaseAttr.Name;
}
List<int> rewList = new List<int>();
for(int index = 0; index < _Packet.rewardItem.Count; index++)
{
rewList.Add(_Packet.rewardItem[index].awardSubType);
}
if (rewList.Count > 0)
{
_RewPanel.SetActive(true);
_RewContainer.InitContentItem(rewList);
}else
{
_RewPanel.SetActive(false);
}
hasInitRew = true;
RefreshMisisonCountParam();
}
public void RefreshMisisonCountParam()
{
Tab_ActivityBase tab = ActivityDataManager.Instance.GetActivityTabByID(29);
int complete = ActivityDataManager.Instance.GetActivityCompleteTimes((int)ActivityDataManager.Activity_Type.CROSS_SER_ESCORT);
if(tab!=null)
{
_MissionCountParam.text = string.Format("({0}/{1})", complete < 0 ? 0 : complete, tab.ActityLimitTimes);
}
//var activityBase = TableManager.GetActivityBaseByID(29, 0); //这边写死很蛋疼跨服押镖有三个枚举服务器说用30但是表里面配的是31
//if (GlobalData.ActivityCompletedCount.ContainsKey((int)ActivityDataManager.Activity_Type.CROSS_SER_ESCORT))
// _MissionCountParam.text = "(" + GlobalData.ActivityCompletedCount[(int)ActivityDataManager.Activity_Type.CROSS_SER_ESCORT] + "/" + activityBase.ActityLimitTimes + ")";
}
public void MissionOperation()
{
RefreshMisisonParam();
InitRewAndNpcName();
RefreshMissionState();
}
public void RefreshMisisonParam()
{
if (_MissionId == -1)
return;
var missionDIc = TableManager.GetMissionDictionaryByID(_MissionId, 0);
if (missionDIc == null)
return;
var param = GameManager.gameManager.MissionManager.GetMissionParam(_MissionId, 0);
_MissionInfoDesc.text = string.Format(missionDIc.GetFollowTextbyIndex(0), param); //只显示默认的第一个描述
}
public void OnNpcName()
{
var npcID = -1;
switch (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Force)
{
case 6:
npcID = 912;
break;
case 7:
npcID = 913;
break;
case 27:
npcID = 914;
break;
}
Tab_AutoSearch sceneNpc = TableManager.GetAutoSearchByID(npcID, 0);
if (sceneNpc == null)
return;
AutoSearchPoint point = new AutoSearchPoint(sceneNpc.DstSceneID, sceneNpc.X, sceneNpc.Z);
if (GameManager.gameManager && GameManager.gameManager.AutoSearch)
{
Tab_RoleBaseAttr role = TableManager.GetRoleBaseAttrByID(sceneNpc.DataId, 0);
GameManager.gameManager.AutoSearch.BuildPath(point);
if (role != null)
{
GameManager.gameManager.AutoSearch.Path.AutoSearchTargetName = role.Name;
}
}
}
public void RefreshMissionState()
{
if (_CompleteMissionIcon != null)
_CompleteMissionIcon.SetActive(GameManager.gameManager.MissionManager.GetMissionState(_MissionId) == (int)MissionState.Mission_Completed);
}
public void OnMissionItem()
{
if (_MissionId == -1)
return;
GameManager.gameManager.MissionManager.MissionPathFinder(_MissionId);
}
}