public async override UniTask ProcessAsync(GChess target) { Vector2Int targetLocation = target.location; VFXObserver vfxObserver = new VFXObserver(); vfxObserver.eEnterTile.AddListener((x) => { if (x != 0) { Vector2Int loc = (targetLocation - owner.location).Normalized() * x + owner.location; ElementSystem.ApplyElementAtAsync(loc, element); } }); await Shoot(targetLocation, vfxObserver); target.AddModifier(CreateInstance <Damp>(), owner); await ElementSystem.ApplyElementAtAsync(targetLocation, element); }
public override async UniTask ProcessAsync(GChess target) { await Shoot(target.location); target.AddModifier(addBuff, owner); }