using cfg.SummonCfg; using Gameplay.Summon.Logic; using Gameplay.Unit; namespace Gameplay.Summon { public class SummonSmoke : LogicCombineSummon { public int smokeDistance; public float emitBulletTime; public int emitBulletId; public SummonSmoke(DataSummon configData, uint id, GameUnit creator) : base(configData, id, creator) { smokeDistance = _ReadIntParam(0); emitBulletTime = _ReadFloatParam(1); emitBulletId = _ReadIntParam(2); } protected override void _OnInited() { base._OnInited(); var smokeLogic = new SLogicSetSmoke(this); smokeLogic.centerCellIndex = transData.cellIndex; smokeLogic.distance = smokeDistance; _AddLogic(smokeLogic); if (emitBulletTime > 0 && emitBulletId > 0) { var emitLogic = new SLogicDelayEmitBulletToSelf(this); emitLogic.bulletId = emitBulletId; emitLogic.delayTime = emitBulletTime; _AddLogic(emitLogic); } } } }