using Gameplay.Bullet; using LTGame; namespace Gameplay.Summon { public class SummonStateEmitBulletToLocal : BaseSummonState { public SummonEmitBulletToLocal _summonInst; private float _remainTime; public SummonStateEmitBulletToLocal(BaseSummon summon) : base(summon, ESummonState.Idle) { _summonInst = summon as SummonEmitBulletToLocal; } protected override void _OnEnter(NBaseState exitState, object param) { base._OnEnter(exitState, param); _remainTime = _summonInst.emitInterval; } protected override void _OnRunning() { base._OnRunning(); _remainTime -= deltaTime; if (_remainTime < 0) { _remainTime += _summonInst.emitInterval; _EmitBulletToSelfCellIndex(); } } private void _EmitBulletToSelfCellIndex() { var bulletId = _summonInst.emitBulletId; BulletManager.instance.EmitBulletFromSummon(bulletId, _summonInst.transData.cellIndex, _summonInst); } } }