Files
JJBB/Assets/Project/Script/GUI/Marry/MarryPanelCtr.cs

237 lines
7.4 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
using GCGame.Table;
using GCGame;
using System;
using Games.GlobeDefine;
public class MarryPanelCtr : MonoBehaviour {
public static MarryPanelCtr Instance;
private void Awake()
{
Instance = this;
}
private void OnDestroy()
{
Instance = null;
}
public enum CoupType
{
Husband = 1,
Wife = 2,
}
public GameObject marriedPanel;
public GameObject noMarriedPanel;
public List<UICameraTexture> modelCameraList;
public List<Text> roleNameTextList;
public Text marriedTime;
public Text marryRuleText;
public Text _MarryCoup;
public Text _OperationBtnDesc;
public Image roleHeadIcon;
public void OnEnable()
{
ShowMarriedOrNoMarriedPanel();
InitBtnDesc();
}
void InitBtnDesc()
{
var str = StrDictionary.GetClientDictionaryString("#{86226}");
if (_OperationBtnDesc.text.Equals(str))
_OperationBtnDesc.text = str;
}
public void ShowMarriedOrNoMarriedPanel()
{
if(IsMarried())
{
marriedPanel.SetActive(true);
noMarriedPanel.SetActive(false);
//请求当前结婚的时间 显示对应的模型(需要知道对象的职业 或者服务器存的就是两个任务结婚时的CharModelId)
ReqMarriedInfo();
}
else
{
marriedPanel.SetActive(false);
noMarriedPanel.SetActive(true);
InitHeadIcon();
InitMarryRuleTip();
}
}
//请求协议接口
public void ReqMarriedInfo()
{
ReqMarryDetailData req = new ReqMarryDetailData();
req.flag = 1;
req.SendMsg();
}
//协议返回如果是显示的结婚礼服那么服务器最好保存的是CharModelId
private List<int> professionList;
private List<string> nameList;
public void OnReceivePacket(RetMarryDetailData packet)
{
_MarryCoup.text = StrDictionary.GetClientDictionaryString("#{47205}", packet.marryTotal);
professionList = new List<int>();
nameList = new List<string>();
if (GameManager.gameManager.PlayerDataPool.IsMarried)
{
GameManager.gameManager.PlayerDataPool.MyRingInfoData.SetLoverName(packet.name);
}
if (packet.huabandWifeFlag == (int)CoupType.Husband)
{
professionList.Add(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession);
nameList.Add(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.RoleName);
professionList.Add(packet.loverCareer);
nameList.Add(packet.name);
}
else
{
professionList.Add(packet.loverCareer);
nameList.Add(packet.name);
professionList.Add(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession);
nameList.Add(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.RoleName);
}
//显示模型 时间
SetMarryTime(packet.marryTm);
InitCharModelAndName(packet.marryType);
}
public void InitCharModelAndName(int weedingType)
{
Tab_WeedingConfig config = TableManager.GetWeedingConfigByID(weedingType, 0);
if(config == null)
{
return;
}
Tab_FashionItem fashionItemTab = TableManager.GetFashionItemByID(config.GainFashionId, 0);
if(fashionItemTab == null)
{
return;
}
Tab_ItemVisual itemVisual = TableManager.GetItemVisualByID(fashionItemTab.ItemVisualId, 0);
if(itemVisual == null)
{
return;
}
int charModelId = -1;
for(int index = 0; index < professionList.Count; index++)
{
switch (professionList[index])
{
case (int)CharacterDefine.PROFESSION.XUANNV:
charModelId = itemVisual.CharModelIDXiaoYao;
break;
case (int)CharacterDefine.PROFESSION.LIUSHAN:
charModelId = itemVisual.CharModelIDTianShan;
break;
case (int)CharacterDefine.PROFESSION.SHUSHAN:
charModelId = itemVisual.CharModelIDDaLi;
break;
case (int)CharacterDefine.PROFESSION.TIANJI:
charModelId = itemVisual.CharModelIDShaoLin;
break;
}
if(charModelId == -1)
{
continue;
}
modelCameraList[index].InitModel(professionList[index], charModelId);
roleNameTextList[index].text = nameList[index];
}
}
public void SetMarryTime(long time)
{
System.DateTime startTime = new System.DateTime(1970, 1, 1).ToLocalTime();
System.DateTime curTime = startTime.AddSeconds(time);
marriedTime.text = StrDictionary.GetClientDictionaryString("#{25123}", curTime.Year, curTime.Month, curTime.Day);
}
public bool IsMarried()
{
return GameManager.gameManager.PlayerDataPool.IsMarried;
}
public void InitMarryRuleTip()
{
marryRuleText.text = StrDictionary.GetClientDictionaryString("#{47011}");
}
public void InitHeadIcon()
{
LoadAssetBundle.Instance.SetImageSprite(roleHeadIcon, Utils.GetProfessionSpriteName(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession));
}
private const int marryNpcAutosearchId = 9008;
public void OnGotoMarryBtnClick()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
//UIManager.ShowUI(UIInfo.WeddingOperationPanel);
Tab_AutoSearch autoSearch = TableManager.GetAutoSearchByID(marryNpcAutosearchId, 0);
if (autoSearch == null)
{
return;
}
Vector3 pos = new Vector3();
pos.x = autoSearch.X;
pos.z = autoSearch.Z;
int sceneId = autoSearch.DstSceneID;
AutoSearchPoint targetPoint = new AutoSearchPoint(sceneId, pos.x, pos.z);
if (GameManager.gameManager && GameManager.gameManager.AutoSearch)
{
GameManager.gameManager.AutoSearch.BuildPath(targetPoint);
Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(autoSearch.DataId, 0);
if (null != RoleBase && null != GameManager.gameManager.AutoSearch.Path)
{
GameManager.gameManager.AutoSearch.Path.AutoSearchTargetName = RoleBase.Name;
GameManager.gameManager.AutoSearch.Path.autoSearchRadius = RoleBase.DialogRadius;
}
}
CloseCurPanel();
}
public void CloseCurPanel()
{
MarryRoot.Instance.OnCloseBtnClick();
}
public void PlayWeddingMovie()
{
if (GameManager.gameManager.m_RunningScene == 658)
{
GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{79512}"));
return;
}
const string movieName = "/Audio/3333.mp4";
if (MarryMovieCtr.Instance)
{
MarryMovieCtr.Instance.PlayMovie(movieName);
}
else
{
UIManager.ShowUI(UIInfo.MarryMovieCtr, (sucess, param) =>
{
MarryMovieCtr.Instance.PlayMovie(movieName);
});
}
}
}