class Auratsts extends Effects; var() float TriggerDelay, RepeatDelay; var() int AuraTSTsToShootAfterDeactivated; var() int AuraTSTSpeed; var int AuraTSTCount; function Trigger(actor Other, pawn EventInstigator) { Instigator = EventInstigator; GoToState('Active'); } state Active { function Trigger( actor Other, pawn EventInstigator); function UnTrigger(actor Other, pawn EventInstigator) { AuraTSTCount = AuraTSTsToShootAfterDeactivated; if (AuraTSTCount<1) AuraTSTCount = 1; } function Timer() { local AuraTST a; If (AuraTSTCount > 0) { If (AuraTSTCount==1) { SetTimer(0.0, False); GoToState(''); } a = Spawn(class'AuraTST',, '', Location+Vector(Rotation)*20); a.Speed = AuraTSTSpeed; AuraTSTCount--; } else { a = Spawn(class'AuraTST',,, Location+Vector(Rotation)*20); a.Speed = AuraTSTSpeed; SetTimer(RepeatDelay, True); } } Begin: AuraTSTCount = 0; SetTimer(TriggerDelay, True); } defaultproperties { TriggerDelay=0.000100 RepeatDelay=0.000100 AuraTSTsToShootAfterDeactivated=1 AuraTSTSpeed=1000 bNetTemporary=False bDirectional=True DrawType=DT_Sprite }