42 lines
1.0 KiB
C#
42 lines
1.0 KiB
C#
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);
|
|
}
|
|
|
|
}
|
|
}
|