70 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
} |