200 lines
6.6 KiB
C#
200 lines
6.6 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Xml.Schema;
|
||
using TMPro;
|
||
using UnityEngine;
|
||
using UnityEngine.UI;
|
||
|
||
public class UI_InformationPanel : MonoBehaviour
|
||
{
|
||
public Transform UpdateBuilding;
|
||
public Transform SetBlob;
|
||
|
||
[SerializeField] private Transform OnOffButton;
|
||
[SerializeField] private Transform SecondInfoPanel;
|
||
|
||
[SerializeField] private GameObject TechItemPrefab;
|
||
|
||
public GameObject CeremonyButton;
|
||
|
||
public Transform itemPanel;
|
||
public GameObject YishiUIObject;
|
||
|
||
[SerializeField] private AudioClip OverClip;
|
||
[SerializeField] private AudioClip ClickClip;
|
||
private AudioSource audioSource;
|
||
|
||
private Dictionary<SpecailBuff_Buildings.BuildingTechItem,GameObject> items = new Dictionary<SpecailBuff_Buildings.BuildingTechItem,GameObject>();
|
||
|
||
//下方成就
|
||
private List<Transform> UpgradeItems = new List<Transform>();
|
||
private List<Transform> UnlockedItems = new List<Transform>();
|
||
|
||
private Buildings buildings;
|
||
[System.Serializable]
|
||
public class BTInfo
|
||
{
|
||
public string BITName;
|
||
public string BTIDescription;
|
||
public string BTIWordDescription;
|
||
public int currentNum;
|
||
|
||
public BTInfo(string name, string description, string btiWordDescription, int currentNum = 0)
|
||
{
|
||
BITName = name;
|
||
BTIDescription = description;
|
||
BTIWordDescription = btiWordDescription;
|
||
this.currentNum = currentNum;
|
||
}
|
||
}
|
||
|
||
void Start()
|
||
{
|
||
//GetComponent<CanvasGroup>().alpha = 0;
|
||
//YishiUIObject = GameObject.Find("仪式UI");
|
||
gameObject.SetActive(false);
|
||
buildings = transform.parent.GetComponent<Buildings>();
|
||
audioSource = GetComponent<AudioSource>();
|
||
}
|
||
|
||
public void PlayUIAudio(int index)
|
||
{
|
||
if (index == 0)
|
||
{
|
||
audioSource.PlayOneShot(OverClip);
|
||
}
|
||
|
||
if (index == 1)
|
||
{
|
||
audioSource.PlayOneShot(ClickClip);
|
||
}
|
||
}
|
||
|
||
private void FixedUpdate()
|
||
{
|
||
/*//每帧逐个【建筑科技项】检测,是否资源足够
|
||
foreach (SpecailBuff_Buildings.BuildingTechItem bti in items.Keys)
|
||
{
|
||
if (CheckUnlock(bti.faithCost,bti.blobCost,bti.woodCost))
|
||
{
|
||
items[bti].transform.Find("AddTuanZi").GetComponent<Button>().interactable = true;
|
||
foreach (TMP_Text tmpText in items[bti].transform.GetChild(0).GetChild(3).GetComponentsInChildren<TMP_Text>())
|
||
{
|
||
tmpText.color = Color.white;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
items[bti].GetComponent<Button>().interactable = false;
|
||
foreach (TMP_Text tmpText in items[bti].transform.GetChild(0).GetChild(3).GetComponentsInChildren<TMP_Text>())
|
||
{
|
||
tmpText.color = Color.red;
|
||
}
|
||
}
|
||
|
||
}*/
|
||
}
|
||
|
||
//临时,为建筑升级特制的建筑科技项
|
||
/*public void SetBuildingUpgradeStatus(int current, int faith, int blob,int wood)
|
||
{
|
||
UpdateBuilding.GetChild(3).GetComponent<TMP_Text>().text = current.ToString();
|
||
|
||
bool unlocked = CheckUnlock(faith,blob,wood);
|
||
if (unlocked)
|
||
{
|
||
UpdateBuilding.GetComponent<Button>().interactable = true;
|
||
foreach (TMP_Text tmpText in UpdateBuilding.GetChild(5).GetComponentsInChildren<TMP_Text>())
|
||
{
|
||
tmpText.color = Color.white;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
UpdateBuilding.GetComponent<Button>().interactable = false;
|
||
foreach (TMP_Text tmpText in UpdateBuilding.GetChild(5).GetComponentsInChildren<TMP_Text>())
|
||
{
|
||
tmpText.color = Color.red;
|
||
}
|
||
}
|
||
}*/
|
||
//临时,为团子增加特指的建筑科技项
|
||
/*public void SetBlobUpgradeStatus(int current)
|
||
{
|
||
SetBlob.GetChild(3).GetComponent<TMP_Text>().text = current.ToString();
|
||
//bool unlocked = CheckUnlock(0,1,0);
|
||
if (unlocked)
|
||
{
|
||
SetBlob.GetComponent<Button>().interactable = true;
|
||
foreach (TMP_Text tmpText in SetBlob.GetChild(5).GetComponentsInChildren<TMP_Text>())
|
||
{
|
||
tmpText.color = Color.white;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
SetBlob.GetComponent<Button>().interactable = false;
|
||
foreach (TMP_Text tmpText in SetBlob.GetChild(5).GetComponentsInChildren<TMP_Text>())
|
||
{
|
||
tmpText.color = Color.red;
|
||
}
|
||
}
|
||
}*/
|
||
|
||
//还没太写好,可能有BUG
|
||
public void InstantiateCeremony(string CeremonyName, int index)
|
||
{
|
||
CeremonyButton.SetActive(true);
|
||
CeremonyButton.transform.GetChild(0).GetChild(0).GetComponent<TMP_Text>().text = CeremonyName;
|
||
CeremonyButton.transform.GetChild(0).GetComponent<Button>().onClick.AddListener(delegate ()
|
||
{
|
||
YiShiUI.Instance.YiShiMode = index;
|
||
YishiUIObject.SetActive(true);
|
||
//Destroy(ceremonyButton);
|
||
});
|
||
}
|
||
|
||
//增加新的【建筑科技项】
|
||
public void AddTechItem(SpecailBuff_Buildings.BuildingTechItem techItem,int siblingIndex=-1)
|
||
{
|
||
GameObject techItemObject = Instantiate(TechItemPrefab, itemPanel);
|
||
if (siblingIndex >= 0)
|
||
{
|
||
techItemObject.transform.SetSiblingIndex(siblingIndex);
|
||
|
||
}
|
||
techItemObject.GetComponent<BuildingTechItemUI>().CreateBuildingTechItemUI(techItem,this);
|
||
items.Add(techItem, techItemObject);
|
||
//点击后如果解锁,删除当前【建筑科技项】,消耗对应资源
|
||
//-----------------------------------------------------
|
||
//注意!如果团子消耗方式与建筑物高度相关,请把团子消耗写在Buff里!
|
||
//-----------------------------------------------------
|
||
}
|
||
|
||
public int RemoveTechItem(SpecailBuff_Buildings.BuildingTechItem bti)
|
||
{
|
||
int index = items[bti].transform.GetSiblingIndex();
|
||
Destroy(items[bti]);
|
||
items.Remove(bti);
|
||
return index;
|
||
}
|
||
|
||
|
||
|
||
//生成【建筑科技项】的资源需求,基于需求和父物体
|
||
|
||
|
||
public void OpenSecondInfo(string techName)
|
||
{
|
||
SecondInfoPanel.gameObject.SetActive(true);
|
||
BTInfo tmpInfo = Singleton<TreeControl>.Instance.GetTechInfo(techName);
|
||
SecondInfoPanel.gameObject.GetComponent<SecondInfo>().SetSecondPanel(tmpInfo);
|
||
}
|
||
public void CloseSecondInfo()
|
||
{
|
||
SecondInfoPanel.gameObject.SetActive(false);
|
||
}
|
||
|
||
}
|