using Gameplay.Area; using Gameplay.Bullet; namespace Gameplay.Buff { public class BuffEmitBulletToTargetEnemy : BaseBuff { private int _triggerDistance; private int _emitBulletId; protected override void _OnInit() { base._OnInit(); _triggerDistance = _TryGetIntParam(0); _emitBulletId = _TryGetIntParam(1); } protected override void _OnTrigger() { base._OnTrigger(); var targetEnemey = owner.controlData.targetEnemy; if (targetEnemey == null) { return; } var distance = AreaManager.instance.GetDistance(targetEnemey.transData.cellIndex, owner.transData.cellIndex); if (distance > _triggerDistance) { // 距离不满足 return; } // 发射子弹 BulletManager.instance.EmitBullet(_emitBulletId, targetEnemey, owner); } } }