97 lines
3.3 KiB
C#
97 lines
3.3 KiB
C#
using Animancer;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using Logic;
|
||
using Logic.Action;
|
||
using UnityEngine;
|
||
using RuntimeData;
|
||
using TH1_Core.Events;
|
||
using TH1_Core.Managers;
|
||
using UI;
|
||
|
||
public class CityUpgradeActionUI
|
||
{
|
||
/*public MapData MapData;
|
||
private Main _main;
|
||
public CityLogic CityLogic;
|
||
private GameObject _roCityUpgradeActionUI;
|
||
private GameObject _actionArea;
|
||
private CityData _cityData;
|
||
public CityUpgradeActionUI(Main main,MapData mapData)
|
||
{
|
||
MapData = mapData;
|
||
_main = main;
|
||
_roCityUpgradeActionUI = UIManager.Instance.ROUIManager.transform.Find("CityUpgradeActionPanel").gameObject;;
|
||
_actionArea = _roCityUpgradeActionUI.transform.Find("ActionArea").gameObject;
|
||
_roCityUpgradeActionUI.SetActive(false);
|
||
ActionAreaClickHandler();
|
||
}*/
|
||
// Update is called once per frame
|
||
|
||
/*
|
||
void UpdateUIInfo()
|
||
{
|
||
foreach (Transform act in _actionArea.transform)
|
||
{
|
||
act.gameObject.SetActive(false);
|
||
var fakeActionId = act.GetComponent<ActionIdMono>().ActionId;
|
||
var actionDict = ActionLogicFactory.GetActionLogicDict();
|
||
foreach (var action in actionDict.Values)
|
||
{
|
||
var commonActionParams = new CommonActionParams(mapData:MapData,playerData:MapData.PlayerMap.SelfPlayerData,
|
||
cityData:_cityData,mainObjectType:MainObjectType.City);
|
||
if(ActionLogicFactory.GetActionLogic(fakeActionId).CheckCan(commonActionParams))
|
||
act.gameObject.SetActive(true);
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
public void ActionAreaClickHandler()//让每个action挂一个点击监听事件
|
||
{
|
||
ActionClickedEvent[] items = _actionArea.GetComponentsInChildren<ActionClickedEvent>(true);//这里设为true,会遍历所有inactive的对象
|
||
|
||
foreach (ActionClickedEvent item in items)
|
||
{
|
||
item.OnItemClicked += ActionAreaClicked;
|
||
}
|
||
}
|
||
|
||
public void FadeOut()
|
||
{
|
||
AnimancerComponent animancer = _roCityUpgradeActionUI.GetComponent<AnimancerComponent>();
|
||
AnimationClip animationB = Resources.Load<AnimationClip>("Animations/UI/CityUpgradeActionPanelFadeOut");
|
||
animancer.Play(animationB);
|
||
Timer.Instance.TimerRegister(_roCityUpgradeActionUI, OnFadeOutComplete, 0.2f,"CityUpgradeActionUI_FadeOut");
|
||
}
|
||
|
||
|
||
|
||
public void OnFadeOutComplete()
|
||
{
|
||
_roCityUpgradeActionUI.SetActive(false);
|
||
}
|
||
|
||
|
||
public void FadeIn()
|
||
{
|
||
_roCityUpgradeActionUI.SetActive(true);
|
||
_roCityUpgradeActionUI.GetComponent<CanvasGroup>().alpha = 0;
|
||
AnimancerComponent animancer = _roCityUpgradeActionUI.GetComponent<AnimancerComponent>();
|
||
AnimationClip animationB = Resources.Load<AnimationClip>("Animations/UI/CityUpgradeActionPanelFadeIn");
|
||
animancer.Play(animationB);
|
||
}
|
||
|
||
public void ActionAreaClicked(GameObject clickedItem)
|
||
{
|
||
var fakeActionId = clickedItem.GetComponent<ActionIdMono>().ActionId;
|
||
var commonActionParams = new CommonActionParams(mapData:MapData,playerData:MapData.PlayerMap.SelfPlayerData,
|
||
cityData:_cityData,mainObjectType:MainObjectType.City);
|
||
if(ActionLogicFactory.GetActionLogic(fakeActionId).Execute(commonActionParams, false))
|
||
FadeOut();
|
||
|
||
}
|
||
*/
|
||
|
||
}
|