Files
JJBB/Assets/Project/Script/GUI/Map/CrossServerCopyInfoCtr.cs
2024-08-23 15:49:34 +08:00

237 lines
7.0 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 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);
}
}