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

217 lines
7.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using Games.GlobeDefine;
using GCGame.Table;
using UnityEngine;
using UnityEngine.UI;
public class WeedingItem : MonoBehaviour
{
private Tab_WeedingConfig config;
public Text consumeDescAndValue;
public List<Text> coupTileList;
public Image markIcon;
public Transform titleIconParent;
public List<ViewFashionItem> viewFashionItemList;
public Text weedingClothRemainTime;
public int weedingId = -1;
public Text weedingName;
public List<GameObject> _TypeIcon;
public Text _WCName;
public Image _WCTypeIcon;
public Text _BanquetName;
public List<Image> _ItemQualityList;
public List<Image> _ItemIconList;
public void InitWeedingItem(int _WeedingId)
{
weedingId = _WeedingId;
config = TableManager.GetWeedingConfigByID(weedingId, 0);
if (config == null) return;
weedingName.gameObject.SetActive(false);
weedingName.text = config.WeedingName;
for(int index = 0; index < _TypeIcon.Count; index++)
{
_TypeIcon[index].SetActive(index +1 == weedingId);
}
if (config.ConsumeType == (int) CONSUM_TYPE.MONEY)
{
//var consumeDescId = "#{" + (6000 + config.ConsumeSubType) + "}";
consumeDescAndValue.text = config.ConsumeValue + GCGame.Utils.GetMoneyName(config.ConsumeSubType);
}
if (config.GainFashionId != -1) SetFashionItemInfo();
//设置特效Icon
SetViewFashionItem();
SetFashionItemInfo();
SetCanGainTitleDesc();
SetWC();
SetBanquet();
}
void SetWC()
{
if(config.WCName.Equals("-1"))
{
_WCName.gameObject.SetActive(false);
return;
}
_WCName.gameObject.SetActive(true);
_WCName.text = config.WCName;
LoadAssetBundle.Instance.SetImageSprite(_WCTypeIcon, config.WCTypeIcon);
}
void SetBanquet()
{
if(config.BanquetName.Equals("-1"))
{
_BanquetName.gameObject.SetActive(false);
return;
}
_BanquetName.gameObject.SetActive(true);
_BanquetName.text = config.BanquetName;
for(int index = 0; index < config.getRewIdCount() && index < _ItemIconList.Count; index++)
{
var commonItem = TableManager.GetCommonItemByID(config.GetRewIdbyIndex(index), 0);
if(commonItem == null)
{
_ItemIconList[index].gameObject.SetActive(false);
_ItemQualityList[index].gameObject.SetActive(false);
Debug.LogError("CommonItem is null : " + config.GetRewIdbyIndex(index));
return;
}
LoadAssetBundle.Instance.SetImageSprite(_ItemQualityList[index], GCGame.Utils.GetItemQualityFrame(commonItem.Quality));
LoadAssetBundle.Instance.SetImageSprite(_ItemIconList[index], commonItem.Icon);
}
}
public void OnItemIcon(int index)
{
ItemTooltipsLogic.ShowItemTooltip(config.GetRewIdbyIndex(index), ItemTooltipsLogic.ShowType.Info, _ItemIconList[index].transform.position);
}
public void SetViewFashionItem()
{
for (var index = 0; index < viewFashionItemList.Count; index++)
{
viewFashionItemList[index].InitItem(config.GainFashionId,
index == 0
? GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession
: GameManager.gameManager.PlayerDataPool.TeamInfo.GetTeamMember(1).Profession);
GetAndAddCharModelId(index, config.GainFashionId);
}
}
public void GetAndAddCharModelId(int index, int _FashionItemId)
{
var charModelId = -1;
if (GameManager.gameManager.PlayerDataPool.TeamInfo.GetTeamMember(index).IsValid())
{
var fashionItemTab = TableManager.GetFashionItemByID(_FashionItemId, 0);
if (fashionItemTab != null)
{
var itemVisual = TableManager.GetItemVisualByID(fashionItemTab.ItemVisualId, 0);
if (itemVisual != null)
switch (GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Profession)
{
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;
}
}
}
}
public void SetCanGainTitleDesc()
{
//取得当前队伍信息
var manName = GameManager.gameManager.PlayerDataPool.TeamInfo.GetTeamMember(0).MemberName;
var femaleName = GameManager.gameManager.PlayerDataPool.TeamInfo.GetTeamMember(1).MemberName;
coupTileList[0].text = string.Format(config.GetTitleNamebyIndex(0), manName);
coupTileList[1].text = string.Format(config.GetTitleNamebyIndex(1), femaleName);
}
public void SetTitleIcon()
{
var bundlePath = TableManager.GetBundlePathByID(config.BundlePathId, 0);
if (bundlePath == null) return;
LoadAssetBundle.Instance.LoadGameObject(LoadAssetBundle.BUNDLE_PATH_EFFECT, bundlePath.Name,
delegate(string assetName, GameObject resObj, Hashtable hashParam)
{
if (resObj != null)
{
var iconObj = Instantiate(resObj);
iconObj.transform.SetParent(titleIconParent);
iconObj.transform.localPosition = Vector3.zero;
iconObj.transform.localRotation = Quaternion.Euler(Vector3.zero);
iconObj.transform.localScale = Vector3.one * bundlePath.Scale;
}
}, new Hashtable());
}
public void SetFashionItemInfo()
{
var fashionItem = TableManager.GetFashionItemByID(config.GainFashionId, 0);
if (fashionItem == null)
{
Debug.LogErrorFormat("fashionItem is null, id is{0}", config.GainFashionId);
return;
}
var itemVisual = TableManager.GetItemVisualByID(fashionItem.ItemVisualId, 0);
if (itemVisual == null)
{
Debug.LogErrorFormat("itenmvisual is null, id is{0}", fashionItem.ItemVisualId);
return;
}
var _CurIndex = 0;
for (var index = 0; index < fashionItem.getCommonitemIdCount(); index++)
if (fashionItem.GetCommonitemIdbyIndex(index) == config.GainFashionItemId)
{
_CurIndex = index;
break;
}
CalculateFashionRemainTime(fashionItem.GetGainTimebyIndex(_CurIndex));
}
public void CalculateFashionRemainTime(int remainTime)
{
if (remainTime == -1) //永久
{
weedingClothRemainTime.text = StrDictionary.GetClientDictionaryString("#{1442}");
}
else
{
var remainDay = remainTime / 24 / 3600;
weedingClothRemainTime.text = StrDictionary.GetClientDictionaryString("#{2446}", remainDay);
}
}
public void ShowMarkIcon(bool isShow)
{
markIcon.gameObject.SetActive(isShow);
}
public void OnItemClick()
{
WeedingPanelCtr.Instance.OnWeedingItemClick(weedingId);
}
}