public BulletEmitter(int defState, params BulletPattern[] pats) { myPats = new List <BulletPattern>(pats); curState = new EmitterState(defState); changes = new LayeredLinkedList <EmitterState>(0, st => st.StartTime, 1000, 100, 10, 1); changes.Add(curState); }
public GameEvent ChangePattern(double time, int pat, double offset = 0) { EmitterState es = null; return(new GameEvent(time, (g, st) => { if (st == GameEventState.Unprocessed) { es = new EmitterState(pat, time, offset); changes.Add(es); } }, GameEvent.DoNothing, (g, st) => { if (st != GameEventState.Unprocessed) { if (es != null) { changes.Remove(es); } } })); }