#strict 2 static PushExecuter; local requestedPushes; func Initialize() { if(PushExecuter) { RemoveObject(); return; } requestedPushes = []; PushExecuter = this; AddEffect("IntExecutePushes", this, 1, 1, this); } func InitializeDef() { if(!PushExecuter) { CreateObject(PUEX, 0, 0, NO_OWNER); } } func RequestPush(object clonk) { if(GetIndexOf(clonk, requestedPushes) == -1) { requestedPushes[GetLength(requestedPushes)] = clonk; } } func FxIntExecutePushesTimer(object target, int effectNumber) { ShuffleArray(requestedPushes); for(var requester in requestedPushes) { if(requester) { requester->ExecutePush(); } } requestedPushes = []; }