2025-10-23 20:33:44 +08:00

70 lines
1.7 KiB
C#

/*
* @Author: 白哉
* @Description:
* @Date: 2025年07月01日 星期二 14:07:05
* @Modify:
*/
using RuntimeData;
using TH1_Anim.UnitAtomAnim;
using TH1_DataAssetsScript;
using TH1_Logic.Core;
using TH1_Renderer.UnitAtomAnim;
using TH1Renderer;
using UnityEngine;
namespace TH1_Anim.Fragments
{
public class FragmentDie : FragmentBase
{
public FragmentUnitData Data;
private ProjectileTypeInfo _attackInfo;
private bool _step1_die;
private float _step1_start;
public FragmentDie(FragmentUnitData data) : base()
{
Data = data;
_step1_start = 0;
Duration = 0.1f;
}
public override bool CheckDone(float progressTime)
{
//超时保险
if (progressTime > Duration * 2)
{
Debug.Log($"Fragement Timeout {this.GetType()}");
return true;
}
if (!_step1_die)
return false;
if (progressTime <= Duration)
return false;
return true;
}
public override void OnUpdate(float progressTime)
{
//Step #1执行第一步 -> 攻击
if (progressTime >= _step1_start && !_step1_die)
{
_step1_die = true;
//让对方死亡
Data.UnitRenderer.Die();
//更新死亡一方所属的城市的城市状态
Data.City.SetCityRenderer(Main.MapData);
//重置周围单位的高亮状态
MapRenderer.Instance.UpdateAroundHighlight(Main.MapData,Data.Grid);
return;
}
}
}
}