public static Timed Instance(int time, Behavior behav) { var key = new Tuple<int, Behavior>(time, behav); Timed ret; if (!instances.TryGetValue(key, out ret)) ret = instances[key] = new Timed(time, behav); return ret; }
new QueuedBehavior( Timed.Instance(5000, Cooldown.Instance(700, (RingAttack.Instance(25, 10, projectileIndex: 3)))),