/* * @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; } } } }