public VibravaCounter(ref uint seed) { lazyGenerators = new Queue <CountDownValue>(); void OnCarried() { lazyGenerators.Enqueue(CountDownValue.CreateValue(1)); lazyGenerators.Enqueue(CountDownValue.CreateValue(31)); lazyGenerators.Enqueue(CountDownValue.CreateValue(31)); lazyGenerators.Enqueue(CountDownValue.CreateValue(31)); lazyGenerators.Enqueue(CountDownValue.CreateValue(101)); } root = new MapObjectCounter(ref seed, OnCarried); for (int i = 1; i < 8; i++) { root.InterruptChild(new MapObjectCounter(ref seed, OnCarried)); } }
/// <summary> /// 子カウンタを挟みこみます. /// </summary> /// <param name="newChild"></param> public void InterruptChild(MapObjectCounter newChild) { newChild.child = this.child; this.child = newChild; }