Level CreateLevel(int index) { var entity = new GameObject($"Level-{index}"); entity.transform.SetParent(transform); var level = entity.AddComponent <Level>() .Init( LevelDef.CreateLevelDef(index, CoinDensity, Colors), BlockPrefab, ExitPrefab, CoinPrefab, GemPrefab, Seed, Colors ); level.OnGroupDestroyed += blockCount => { PRNG.Shuffle(DigSounds, blockCount).ToList().ForEach(PlaySound); int sum = blockCount; for (int i = 0; i < blockCount; i++) { sum += i; } Purse.Increment(sum); }; return(level); }