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

111 lines
3.2 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using Module.Log;
using Games.GlobeDefine;
using GCGame.Table;
using Games.LogicObj;
public class WorldMapWindow : MonoBehaviour {
public GameObject m_RoleHead;
public Image m_RoleHeadImage;
public GameObject GuildItem;
public int[] SceneIDs;
public WorldMapItemInfo[] WorldMapItems;
public GameObject WorldMapItemCloneObj;
public void OnEnable()
{
SetRoleHeadIcon();
if (GuildItem != null)
GuildItem.SetActive(GameManager.gameManager.PlayerDataPool.IsHaveGuild());
FogsShow();
}
public void FogsShow()
{
if (Singleton<ObjManager>.Instance.MainPlayer == null)
return;
int level = Singleton<ObjManager>.Instance.MainPlayer.BaseAttr.Level;
for(int i=0;i<SceneIDs.Length;i++)
{
if (WorldMapItems.Length <= i || WorldMapItems[i] == null)
continue;
if (WorldMapItems[i].ScenID == SceneIDs[i])
{
WorldMapItems[i].UpdateInfo();
}
else
{
GameObject newObj = GameObject.Instantiate(WorldMapItemCloneObj);
if (newObj != null)
{
WorldMapItems[i].Init(SceneIDs[i], newObj);
}
}
}
}
//帮会单独处理
public void ClickBackGuild()
{
if (GameManager.gameManager.PlayerDataPool.IsHaveGuild() == false)
return;
var guid = GameManager.gameManager.PlayerDataPool.GuildInfo.GuildGuid;
var mainPlayer = ObjManager.Instance.MainPlayer;
if (mainPlayer != null)
{
if (GameManager.gameManager.ActiveScene.IsCopyScene())
mainPlayer.AskLeaveCopy();
mainPlayer.BackGuildMap(guid);
}
else
{
// 保持之前玩家未创建也可以发送协议的逻辑
var send =
(CG_REQ_ENTER_GUILDMAP) PacketDistributed.CreatePacket(MessageID
.PACKET_CG_REQ_ENTER_GUILDMAP);
send.SetGuildGuid(guid);
send.SendPacket();
}
}
public void SetRoleHeadIcon()
{
if (m_RoleHeadImage == null)
return;
LoadAssetBundle.Instance.SetImageSprite(m_RoleHeadImage, GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.HeadPic);
bool find = false;
for(int i=0;i<SceneIDs.Length;i++)
{
if(SceneIDs[i] == GameManager.gameManager.RunningScene && WorldMapItems[i] != null)
{
Transform mapBtn = WorldMapItems[i].transform;
find = true;
m_RoleHead.SetActive(true);
m_RoleHead.transform.position = new Vector3(mapBtn.position.x +0.8f, mapBtn.position.y, 0);
}
}
if (find == false)
m_RoleHead.SetActive(false);
}
private int m_curShowSceneID = -1;
public void OnCloseClick()
{
UIManager.CloseUI(UIInfo.WorldMapWindow);
}
public void OnOpenCurrClick()
{
UIManager.CloseUI(UIInfo.WorldMapWindow);
UIManager.ShowUI(UIInfo.SceneMapRoot);
}
}