备份CatanBuilding瘦身独立工程
This commit is contained in:
75
Assets/Scripts/EventGatherCore/EventGatherCoreTaskView.cs
Normal file
75
Assets/Scripts/EventGatherCore/EventGatherCoreTaskView.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using UnityEngine;
|
||||
using GameCore;
|
||||
using System.Threading.Tasks;
|
||||
using asap.core;
|
||||
using System;
|
||||
using Castle.Components.DictionaryAdapter.Xml;
|
||||
|
||||
public class EventGatherCoreTaskView : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private GameObject[] targetItems, fxReceivedList;
|
||||
[SerializeField] private RewardItemNew reward;
|
||||
[SerializeField] private RewardFlyBatchController _rewardFlyBatchController;
|
||||
[SerializeField] private Animation ani;
|
||||
// private GameObject CurrentEmptyTarget => targetItems.FirstOrDefault(x => !x.activeSelf);
|
||||
private int CurrentEmptyTargetIdx
|
||||
{
|
||||
get
|
||||
{
|
||||
int i = 0;
|
||||
for (i = 0; i < targetItems.Length; i++)
|
||||
{
|
||||
if (!targetItems[i].activeSelf)
|
||||
return i;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
private GameObject CurrentEmptyTarget => targetItems[CurrentEmptyTargetIdx];
|
||||
private GameObject CurrentReceiveFx => fxReceivedList[CurrentEmptyTargetIdx];
|
||||
private readonly string _full = "target_full", _normal = "target_normal";
|
||||
|
||||
public void Init(int coreItemCount, ItemData rewardItemData)
|
||||
{
|
||||
for (int i = 0; i < targetItems.Length; i++)
|
||||
{
|
||||
targetItems[i].SetActive(i < coreItemCount);
|
||||
fxReceivedList[i].SetActive(false);
|
||||
}
|
||||
reward.SetData(rewardItemData);
|
||||
// _eventAggregator.GetEvent<EventGatherCoreTriggerTaken>()
|
||||
// .Subscribe(OnTrigger).AddTo(this);
|
||||
}
|
||||
|
||||
public async Task OnTriggerAsync(int rewardItemId, float rewardIconSize, Vector3 position)
|
||||
{
|
||||
var request = new BatchedRewardFlyRequest
|
||||
{
|
||||
itemID = rewardItemId,
|
||||
// sourceIconSize = rewardIconSize,
|
||||
// targetIconSize = (CurrentEmptyTarget.transform as RectTransform).rect.width,
|
||||
// sourcePos = position,
|
||||
// destPos = CurrentEmptyTarget.transform.position,
|
||||
StartPoint = new BatchedRewardFlyPoint(position),
|
||||
EndPoint = new BatchedRewardFlyPoint(CurrentEmptyTarget.GetComponent<RectTransform>()),
|
||||
isDestinationRewardStash = false,
|
||||
AnimationParamIndex = 0,
|
||||
sourceTextRt = reward.transform.Find("text_num") as RectTransform
|
||||
};
|
||||
await _rewardFlyBatchController.OnRewardFlyRequestAsync(request);
|
||||
CurrentReceiveFx.SetActive(true);
|
||||
CurrentEmptyTarget.SetActive(true);
|
||||
if (GContext.container.Resolve<EventGatherCoreData>().StageData.IsStageCleared(EventGatherCoreAct.Ctx))
|
||||
{
|
||||
ani.Play(_full);
|
||||
await Task.Delay(TimeSpan.FromSeconds(ani.GetClip(_full).length));
|
||||
}
|
||||
}
|
||||
|
||||
public void RefreshView(ItemData rewardItemData)
|
||||
{
|
||||
for (int i = 0; i < targetItems.Length; i++)
|
||||
targetItems[i].SetActive(false);
|
||||
reward.SetData(rewardItemData);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user