diff --git a/Readme.md b/Readme.md
index 18edb95..a4efb9a 100644
--- a/Readme.md
+++ b/Readme.md
@@ -14,10 +14,13 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
# Changelog
## To do
+- rename hypnosis
+- more icons
+- save global stats locally (sum of broken bricks, paddle hits, misses,)
## Done
--
+- new level : Blinky by Big Goober
- color coded perks (green = noob friendly, red = combo with reset condition)
- removed : instant_upgrade
- nerfed : helium : now need to be level 3 to have the same effect of keeping coins up
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 4caf31f..ea157f1 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -29,8 +29,8 @@ android {
applicationId = "me.lecaro.breakout"
minSdk = 21
targetSdk = 34
- versionCode = 29088680
- versionName = "29088680"
+ versionCode = 29088937
+ versionName = "29088937"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html
index b6636e3..491e7db 100644
--- a/app/src/main/assets/index.html
+++ b/app/src/main/assets/index.html
@@ -1 +1 @@
-
Breakout 71
\ No newline at end of file
+Breakout 71
\ No newline at end of file
diff --git a/dist/index.html b/dist/index.html
index 99f9b38..11f8401 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -1699,10 +1699,10 @@ const upgrades = (0, _upgrades.rawUpgrades).map((u)=>({
}));
},{"./data/palette.json":"ktRBU","./data/levels.json":"8JSUc","./data/version.json":"iyP6E","./upgrades":"1u3Dx","./getLevelBackground":"7OIPf","./levelIcon":"6rQoT","@parcel/transformer-js/src/esmodule-helpers.js":"gkKU3","./pure_functions":"6pQh7"}],"8JSUc":[function(require,module,exports,__globalThis) {
-module.exports = JSON.parse('[{"name":"71 mini","size":5,"bricks":"bbb____bt__btt__b_t___ttt","color":""},{"name":"Butterfly","bricks":"_________bb_t_t_bbbbb_t_bbbbbbbtbbbb_bbbtbbb____btb____bbbtbbb__bb_t_bb__________","size":9,"color":""},{"name":"Castle","size":7,"bricks":"s_s_s_ssssssssssBBBssssBBBssttbbbttttbbbtttbtbtbt","color":""},{"name":"Eyes","size":9,"bricks":"ttttttt__tWWWWWWW_tWrrWttW_tWWWWWWW_ttttttt_____t______ttttt____ttttt_____t_t","color":"","credit":"My favorite character in https://nuclearthrone.com/"},{"name":"Creeper","size":10,"bricks":"___________ccGGccGG__cGccGcGc__GBBccBBc__cBBGcBBc__GccBBGGc__ccBBBBcG__GGBBBBcG__cGBccBGc___________","credit":"https://en.wikipedia.org/wiki/Creeper_(Minecraft)","color":""},{"name":"Stairs","size":8,"bricks":"tt______tt______bbtt____bbtt____vvbbtt__vvbbtt__ppvvbbttppvvbbtt","color":""},{"name":"Dots","size":9,"bricks":"b_t_a_c_c__________b_t_a_c__________P_b_t_a_c__________P_b_t_a__________P_P_b_t_a","color":""},{"name":"Lines","size":9,"bricks":"aaaaaaaa___________tttttttt_________aaaaaaaa___________tttttttt_________aaaaaaaa","color":""},{"name":"Heart","size":15,"bricks":"__________________RRR___RRR_____RSSSR_RSSSR___RSWWSSRSSSSSR__RSWSSSSSSSSSR__RSSSSSSSSSSSR__RSWSSSSSSSSSR___RSSSSSSSSSR_____RSSSSSSSR_______RSSSSSR_________RSSSR___________RSR_____________R____________________________________","color":"","credit":"https://www.youtube.com/watch?v=gdWiTfzXb1g"},{"name":"Swiss","size":7,"bricks":"________RRRRR__RRWRR__RWWWR__RRWRR__RRRRR________","color":""},{"name":"Germany","size":4,"bricks":"____ggggrrrryyyy","color":"#5da3ea"},{"name":"France","size":6,"bricks":"______ttWWrrttWWrrttWWrrttWWrrttWWrr","color":""},{"name":"Smiley","size":8,"bricks":"_________yy__yy__yy__yy__________________yyyyyy___yyyy__________","color":""},{"name":"Labyrinthe","size":11,"bricks":"_______tttS_Stttt_S________t___S__Stt_ttttt____t_____S__ttt_S_S____t___t_tttt_t_S_t____tSt_t_t_Sttt___t_t_____Sttt_tttttS"},{"name":"Temple","size":11,"bricks":"_______________WWW______WWWWWWW___WWWWWWWWW___b_b_b_b____b_b_b_b____v_v_v_v____P_P_P_P____P_P_P_P____WWWWWWW___WWWWWWWWW_","color":""},{"name":"Pacman","size":12,"bricks":"____yyyy______yyyyyyyy___yyyyByyyyy__yyyyyyyyy__yyyyyyyy____yyyyyy______yyyyyy___S_Syyyyyyyy_____yyyyyyyyy___yyyyyyyyyy___yyyyyyyy______yyyy","color":"","credit":"https://en.wikipedia.org/wiki/Pacman"},{"name":"Ship","size":11,"bricks":"____sWW________sWWW_______sWWW_______s___OOOOOOOOOOOOOO_OBOBOBOBOO__OOOOOOOO_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb___________"},{"name":"We come in peace","size":13,"bricks":"________________a_____a_______a___a_______aaaaaaa_____aaBaaaBaa___aaaaaaaaaaa__aaaaaaaaaaa__a_aaaaaaa_a__a_a_____a_a_____aa_aa_____________________________","color":"","credit":"https://en.wikipedia.org/wiki/Space_invaders"},{"name":"Space mushroom","size":10,"bricks":"______________WW_______WWWW_____WWWWWW___WWBWWBWW__WWWWWWWW____W__W_____W_WW_W___W_W__W_W","color":"","credit":"https://en.wikipedia.org/wiki/Space_invaders"},{"name":"Wololo","size":9,"bricks":"____WW_OOW___WW__OWW__W___OWWWbbbW_WWW_WbW_WOW__WWb__OW__bbb__O___W_W__O___W_W__O","color":"","credit":"https://aoe.heavengames.com/theacademy/unitsboatsandbuildings/priest/"},{"name":"Small heart","size":15,"bricks":"________________________________RRRR___RRRR___RrWWrR_RWWrrR__RWWrrrRWWrrrR__RrrrrrrrrrrrR__RrrrrrrrrrrrR___RrrrrrrrrrR_____RrrrrrrrR_______RrrrrrR_________RrrrR___________RrR_____________R______________________","color":""},{"name":"Eye","size":9,"bricks":"____________ggg_____gWWWg___gWbbbWg_gWWbBbWWg_gWbbbWg___gWWWg_____ggg____________","color":"#5da3ea"},{"name":"Enderman","size":10,"bricks":"___________gggggggg__gggggggg__gggggggg__gggggggg__vvvggvvv__gggggggg__gggggggg__gggggggg_____________________","color":"#154b07","credit":"https://minecraft.wiki/w/Enderman"},{"name":"Mushroom","size":16,"bricks":"_____________________rrrrWW________WWrrrrWWWW_____WWrrrrrrWWWW____WrrWWWWrrWWW___rrrWWWWWWrrrrr__rrrWWWWWWrrWWr__WrrWWWWWWrWWWW__WWrrWWWWrrWWWW__WWrrrrrrrrrWWr__WrrWWWWWWWWrrr_____WWBWWBWW_______WWWBWWBWWW______WWWWWWWWWW_______WWWWWWWW____________________","color":"","credit":"https://pixelartmaker.com/art/cce4295a92035ea"},{"name":"Tulip","size":11,"bricks":"______________R_R_R______RRRRR______RRRRR______RRRRR_______RRR_________k________k_k_k______k_k_k_______kkk_________k________________","color":""},{"name":"Chain","size":7,"bricks":"yyy____yBy____yyyyy____yBy____yyyyy____yBy____yyy","color":""},{"name":"Marion","size":9,"bricks":"rr_____rr_rr___rr__rrr_rrr__rrrrrrr__rr_r_rr__rr___rr__rr___rr__rr___rr_rrr___rrr","color":""},{"name":"Renan","size":9,"bricks":"yyyyyyy___yyyyyyy__yy___yy__yy___yy__yyyyyy___yy_yy____yy__yy___yy___yy_yyy___yyy","color":""},{"name":"Violet Pairs","size":8,"bricks":"b_b_b_b_b_b_b_b__________t_t_t_t_t_t_t_t________b_b_b_b_b_b_b_b","color":""},{"name":"Red Cups","size":11,"bricks":"___________rBr_rBr_rBrrrr_rrr_rrr___________r_rBr_rBr_rr_rrr_rrr_r___________rBr_rBr_rBrrrr_rrr_rrr__________","color":""},{"name":"Cactus","size":10,"bricks":"____G______rG_Gk______G_Gk______kkkk_r_____kkk_G______GkGk_____rGkk_______Gk________kk________kk_____","color":""},{"name":"Sunny Face","size":11,"bricks":"____yyy______yyyyyyy___yyyyyyyyy__yyyyyyyyy_yyyWWyWWyyyyyyyyyyyyyyyyyyyyyyyyy_yyWWWWWyy__yyyWWWyyy___yyyyyyy______yyy","color":"#5da3ea"},{"name":"Mountain","size":9,"bricks":"_______________W_______WWW______GGWW__W_GGGGG_kkkGGGGG_kkkkGGGGkkkkkGGGGkkkkkkGGG_________","color":""},{"name":"Dollar","size":17,"bricks":"________________________G_G______________G_G____________GGGGGGG_________GGGGGGGGG_______GG__G_G__GG______GG__G_G__GG______GG__G_G___________GGGGGGGG__________GGGGGGGG___________G_G__GG______GG__G_G__GG______GG__G_G__GG_______GGGGGGGGG_________GGGGGGG____________G_G______________G_G________________________","color":""},{"name":"Waves","size":8,"bricks":"___bbb____bbb____bbttbbbbbttbbbbttttaatttttaattttaaaaaaa","color":""},{"name":"Box","size":8,"bricks":"yyyyyyyyy______yy_bbbb_yy_b__b_yy_b__b_yy_bbbb_yy______yyyyyyyyy","color":"","squared":false},{"name":"Rose","size":9,"bricks":"__SS______SSSS_____SSSS_____SSSS______SS_k______k_kk_____kk_k______kk________k","color":""},{"name":"Time","size":9,"bricks":"__________WWWWWWW___WWWWW_____yyy_______y________y_______WyW_____WyyyW___yyyyyyy__________","color":"","squared":false},{"name":"Watermelon","size":8,"bricks":"_____Sk_____SSBk___SBSSk__SSSSSk_SSBSSk_SBSSSSk_kSSSkk___kkk____","color":""},{"name":"Worms","size":13,"bricks":"___sssss_______sssssss______WWsWWsss_____WBsBWsss_____WBsBWsss_____WWsWWsss_____sssssss_______ssssss_____WWWWWWss_______WssWs__s_____ssss__sss___sssssssssss__sssssssss_ss","color":"","squared":false,"credit":"https://en.wikipedia.org/wiki/Worms_(series)"},{"name":"Ocean Sunrise","size":8,"bricks":"SSSSSSSSSSSyySSSSSyyyySSSyyyyyySbttttttbbbttttbbbbbttbbbbbbbbbbb","color":""},{"name":"Crosses","size":13,"bricks":"b___b___b___b__v___v___v___vvv_vvv_vvv___v___v___v__p___p___p___ppp_ppp_ppp_ppp___p___p___p__P___P___P___PPP_PPP_PPP___P___P___P__p___p___p___ppp_ppp_ppp_ppp___p___p___p","color":""},{"name":"Negative space","size":9,"bricks":"tttttttttt_t_t_t_t_________b_b_b_b_bbbbbbbbbb_b_b_b_b___________t_t_t_t_ttttttttt_________"},{"name":"UK","size":11,"bricks":"brbbWrWbbrbbbrbWrWbrbbbbbrWrWrbbbWWWWWrWWWWWrrrrrrrrrrrWWWWWrWWWWWbbbrWrWrbbbbbrbWrWbrbbbrbbWrWbbrb__________","color":""},{"name":"Greece","size":11,"bricks":"ttWttttttttttWttWWWWWWWWWWWttttttttWttWWWWWWttWttttttttWWWWWWWWWWWtttttttttttWWWWWWWWWWWttttttttttt__________","color":""},{"name":"Russia","size":8,"bricks":"________WWWWWWWWWWWWWWWWttttttttttttttttrrrrrrrrrrrrrrrr________________","color":""},{"name":"Ukraine","size":8,"bricks":"________ttttttttttttttttttttttttyyyyyyyyyyyyyyyyyyyyyyyy________","color":""},{"name":"Poland","size":7,"bricks":"________WWWWW__WWWWW__rrrrr__rrrrr_______________","color":""},{"name":"Yellow 71","size":9,"bricks":"_________yyyyy__yyyyyyy_yyy___yy__yy__yyy__yy_yyy___yy_yy____yy_yy____yy__________________","color":""},{"name":"71 on white","size":6,"bricks":"WWWWWWrrrWWrWWrWrrWrWWWrWrWWWrWWWWWW______"},{"name":"Blue 71","size":8,"bricks":"ttttt__bttttt_bb___ttbbb__tt__bb__tt__bb_tt___bb_tt___bb_tt___bb","color":""},{"name":"Seventy one","size":21,"bricks":"rr_yy_rrry_yrrry_yrrrr_ry_yr__y_yr_ry_y_r_rr_yy_rr_yy_r_ry_y_r_r_ry_yr__y_yr_ry_y_r_rr_y_yrrry_yrrryyy_r_yyy__________________y______________r_____yyyrrry_yrrryyyrr_y_y__yrr_y_yrr_y_yr__y_yyyyrrr_y_rrry_yrrryyy____________________yrrryyyrrr_________yy_r_ry_yrr_____________rrry_yrrryyyyyyyyyyyy_____________________________________________________________________________________________________________________________"},{"name":"B71","size":10,"bricks":"__________bbbtttt_b_b__b__tbb_b__b__t_b_bbb__t__b_b__b_t__b_b__bt___b_bbb_t__bbb__________"},{"name":"Pig","size":9,"bricks":"__________PP___PP__PPP_PPP__WWPPPWW__WBPPPBW__PPsssPP__PsBsBsP__PPsssPP___________"},{"name":"Big Pig","size":15,"bricks":"________________sss_______sss__ss__sssss__ss____sssssssss_____sWBsssssBWs___ssBBsssssBBss__ssss_____ssss__sss_sssss_sss__sss_sBsBs_sss__sss_sssss_sss___sss_____sss____sssssssssss__GGGsssssssssGGGGGGsGsssssGsGGGGGGssGGGGGssGGG_______________","color":""},{"name":"Donkey Kong","size":9,"bricks":"OOr__a___OOr__a___ppppppp_O______a________a____pppppppr_a______b_a___O__ppppppp__","color":""},{"name":"Banana","size":12,"bricks":"_________________e__________eee_________eee_________eee_________eeeyy_____yyeeyyyy___yyyyey_yC___yy_yyy___C_____yyyy_________yyyy_________yyyy"},{"name":"Fox","size":8,"bricks":"e______eee_OO_eeeeOOOOeeeOBOOBOeOOOOOOOO_WWBBWW___WWWW_____WW___"},{"name":"Wiki","size":10,"bricks":"_______________________GGGG_____GGkkGG___GkggggkG__GgWWWWgG__GkggggkG___GGkkGG_____GGGG_______________________","color":"#1c71d8"},{"name":"Baby Dog","size":8,"bricks":"_______W__eeeeWWWWeeWeWWWeBWeBeeeeWWWWee_eWBBWe__eWWWWe____WW___"},{"name":"dog 21","size":9,"bricks":"__________O_____O_OOOWWWOOOOOWWWWWOOOOeWWWWOO_eBeWWBW__eBeWWBW___eWBWW_____WRW____________","credit":"https://prohama.com/dog-21-pattern/"},{"name":"icon:extra_life","size":9,"bricks":"___________kk_Gk___kkGGkkG_kkGGkkGGkkGGkkGGkk_GkkGGkk___kGGkk_____Gkk_______k____"},{"name":"icon:streak_shots","size":8,"bricks":"_tttttt__ttWttt___W_W____W___W__W_____W__W___W____W_W_____rrr___"},{"name":"icon:base_combo","size":7,"bricks":"________ttttt__tytyt__ttttt__tytyt__ttttt________"},{"name":"icon:slow_down","size":10,"bricks":"_____________kk_______kkkk_____kkkkkkGG__kkkkkkGBG_kkkkkkGGGGkkkkkkGG__GGGGGG____GG__GG_____________"},{"name":"icon:bigger_puck","size":8,"bricks":"_________kkkkkk__kkkkkk______________________W___________GGGGGG_"},{"name":"icon:viscosity","size":8,"bricks":"________bb______ttbb__bbttttbbtttbttbtttttbttbtttttyttyttttttttt"},{"name":"icon:left_is_lava","size":8,"bricks":"r_______rtttttt_rtttttt_r_______r_______r____W__r_______r_WWW___"},{"name":"icon:right_is_lava","size":8,"bricks":"_______r_ttttttr_ttttttr_______r_______r_____W_r_______r__WWW__r"},{"name":"icon:telekinesis","size":8,"bricks":"_____GW_____G______G______G_______G_______G_______G_____kkkkk___"},{"name":"icon:top_is_lava","size":8,"bricks":"rrrrrrrr_tttttt__tttttt____________________W_______________WWW__"},{"name":"icon:coin_magnet","size":8,"bricks":"__y__y_yy_________y_y_y_y________y_y______________y______WWW____"},{"name":"icon:skip_last","size":5,"bricks":"kGGGkGkGkGGGkGGGkGkGkGGGk"},{"name":"icon:multiball","size":8,"bricks":"_________tttttt__tttttt___________W__W____________________WWW___"},{"name":"icon:smaller_puck","size":8,"bricks":"_________tttttt__tttttt_____________W_____________________WW____"},{"name":"icon:pierce","size":6,"bricks":"ttttttttttWtttt__ttt__ttt__ttt__tttt"},{"name":"icon:picky_eater","size":8,"bricks":"_rrr_______ry_____ryy_____r_y______yyy______________y_____WWWW__"},{"name":"icon:metamorphosis","size":8,"bricks":"aaaaaa__aaaa__________W___________ttaatt__tttttt_________WWW"},{"name":"icon:compound_interest","size":8,"bricks":"_________tttttt__ttt__t______y_____________W__y_________rrWWWrrr"},{"name":"icon:hot_start","size":7,"bricks":"_______rry_rrryyr_ryryry_ryryyr_ryrrry_rrr_______"},{"name":"icon:sapper","size":9,"bricks":"_____WW______W__W_tttWttt_yttgggtt__tgggggt__tgggggt__tgggggt__ttgggtt__ttttttt___________","color":"#000000"},{"name":"icon:bigger_explosions","size":8,"bricks":"__O_______Oy_OO___OyOy__OyyyWBOO_OOWyyy__ByOyOO__yOOyBOO_OO_____"},{"name":"icon:extra_levels","size":6,"bricks":"__________b__t_bb_ttt_b__t_bbb____________"},{"name":"icon:pierce_color","size":8,"bricks":"bb___bbbb__b_bbb_____bbb____bbbbb____bbbbb____bbbbb____bbbbb____"},{"name":"icon:soft_reset","size":9,"bricks":"__gg______ggg_yy__gggg_yyy_gggg_yyyy_____yyyy_yyyyyyyy_yyyyyyyy__yyyyyy____yyyy__"},{"name":"icon:ball_repulse_ball","size":8,"bricks":"WsP__PsWs______sP______P________________P______Ps______sWsP__PsW"},{"name":"icon:ball_attract_ball","size":8,"bricks":"__P__P____s__s__PsW__WsP________________PsW__WsP__s__s____P__P__"},{"name":"icon:puck_repulse_ball","size":8,"bricks":"__________________W_______s___W___P__s______P____________WWW__"},{"name":"A","size":7,"bricks":"__ttt___ttttt_ttt_ttttt___ttttttttttt___tttt___tt"},{"name":"B","size":9,"bricks":"_bbbbb_____bb_bb____bb_bb____bb_bb____bbbb_____bb_bb____bb_bb____bb_bb___bbbbb____"},{"name":"C","size":8,"bricks":"__rrrr___rrrrrr_rrr___rrrr______rr______rrr___rr_rrrrrr___rrrr"},{"name":"D","size":8,"bricks":"_GGGGG____GG__G___GG__GG__GG__GG__GG__GG__GG__GG__GG__G__GGGGG"},{"name":"e","size":8,"bricks":"__tttt___tttttt_tt____tttt____tttttttttttt_______tt__tt___tttt_"},{"name":"icon:wind","size":9,"bricks":"_ss______s___PPPP_s_________sssssss___________sssssss_s________s___PPPP__ss"},{"name":"icon:sturdy_bricks","size":7,"bricks":"ttbttttbtttbtt____W_____W_W___W___W_______WWW____"},{"name":"icon:respawn","size":9,"bricks":"tttt___ttttt__t__ttta_ttt_______________________________W_________________WWW"},{"name":"Elephant","size":18,"bricks":"_________________________llll_________lll_llllll_lll___lsssllllllllsssl__lsssllllllllsssl__lsssllBllBllsssl__lssllWllllWllssl___ll__llllll__ll_________llll_______________ll______________llll______________ll________________________________________________________________________________________________________________________________________","color":"","credit":"https://prohama.com/elephant-5-pattern/"},{"name":"Orca","size":20,"bricks":"____________________________________________________________________________________________ggggg____ggg_ggg___ggggggg____ggggg___ggggggggg____ggg___ggggWggWWW_____gggggggggggWWWW_____ggggggggggWWWWW_____gggggggggWWWWW_______gggggggWWWWW___________WWggWWW______________ggg_gg______________gg__g__________________________________________________________________________________________________________","color":"#1c71d8","credit":"https://prohama.com/whale-2-pattern/"},{"name":"Shark","size":17,"bricks":"__________________________________________g_______________ggg____________ggggggg_________ggggggggg_______ggggggggggg_____gggggWWWggggg____gBgWWWWWWWgBg___ggWWWWrWrWWWWgg__ggWWWrrrrrWWWgg_ggWWWrrrrrrrWWWggggWWrrrrrrrrrWWgggWWWrWrWrWrWrWWWggWWrrWWWWWWWrrWWggWWWWWWWWWWWWWWWg_________________","color":"#3584e4","credit":"https://prohama.com/shark-2-pattern/"},{"name":"Bird","size":13,"bricks":"_______RRR____R____RSSSR___RR__RSSWWWR__RSR_RSWWBWR__RSSRRSWWWWyy_RSSSRSWWWR___RSSSSSSRR_____RRSSyyyy______RSyyyyy___RRRRSyyyy____RSSSRyyy_____RRRR______________________","color":"","credit":"https://prohama.com/bird-1-size-13x12/"},{"name":"Tux","size":14,"bricks":"_____gggg________gggggggg_____gggggggggg____gggggggggg___gggggggggggg__gggWBggWBggg__gggBBggBBggg__ggggyyyygggg_ggggggyyggggggggggWWWWWWggggg_gWWWWWWWWg_g__WWWWWWWWWW____WWWWWWWWWW____yyy____yyy__","color":"#62a0ea","credit":"https://prohama.com/pingwin-4-pattern/"},{"name":"Armenia","size":6,"bricks":"_______rrrr__bbbb__yyyy_____________","color":""},{"name":"Austria","size":6,"bricks":"_______rrrr__WWWW__rrrr______","color":""},{"name":"Benin","size":8,"bricks":"_________kkyyyy__kkyyyy__kkrrrr__kkrrrr__________________________","color":""},{"name":"Botswana","size":10,"bricks":"___________tttttttt__tttttttt__tttttttt__WWWWWWWW__BBBBBBBB__WWWWWWWW__tttttttt__tttttttt__tttttttt___________","color":""},{"name":"Bulgaria","size":6,"bricks":"_______WWWW__cccc__rrrr_____________","color":""},{"name":"Canada","size":7,"bricks":"________rWWWr__rWrWr__rWWWr______________________","color":""},{"name":"Chad","size":8,"bricks":"_________bbyyRR__bbyyRR__bbyyRR","color":""},{"name":"China","size":6,"bricks":"______RRyRRRRyRyRRRRyRRRRRRRRR______","color":""},{"name":"Colombia","size":7,"bricks":"________yyyyy__yyyyy__bbbbb__RRRRR_______________","color":""},{"name":"Republic of the Congo","size":7,"bricks":"________kkkyy__kkyyr__kyyrr__yyrrr_______________","color":""},{"name":"C\xf4te d\'Ivoire","size":8,"bricks":"_________OOWWGG__OOWWGG__OOWWGG","color":""},{"name":"Denmark","size":8,"bricks":"_________rrWrrr__rrWrrr__WWWWWW__rrWrrr__rrWrrr","color":""},{"name":"El Salvador","size":8,"bricks":"_________bbbbbb__bbbbbb__WWWkWW__WWkWWW__bbbbbb__bbbbbb","color":""},{"name":"Egypt","size":8,"bricks":"_________RRRRRR__RRRRRR__WWWyWW__WWyWWW__gggggg__gggggg","color":"#1c71d8"},{"name":"Estonia","size":8,"bricks":"_________tttttt__tttttt__gggggg__gggggg__WWWWWW__WWWWWW","color":"#26a269"},{"name":"Finland","size":6,"bricks":"_______WtWW__tttt__WtWW_____________","color":""},{"name":"Gabon","size":5,"bricks":"______CCC__yyy__ttt______","color":""},{"name":"Georgia","size":9,"bricks":"__________WrWrWrW__WWWrWWW__rrrrrrr__WWWrWWW__WrWrWrW__________________","color":""},{"name":"Guinea","size":8,"bricks":"_________rryycc__rryycc__rryycc","color":""},{"name":"Indonesia","size":6,"bricks":"_______rrrr__rrrr__WWWW__WWWW_______","color":""},{"name":"icon:one_more_choice","size":7,"bricks":"ttt____tbbb___tbttt__tbtbbb__btbbb___tbbb____bbb_"},{"name":"icon:checkmark_checked","size":6,"bricks":"_ggggbgBBBbbbbBbbggbbbBggBbBBg_gggg_"},{"name":"icon:checkmark_unchecked","size":6,"bricks":"_gggg_gBBBBggBBBBggBBBBggBBBBg_gggg_"},{"name":"icon:concave_puck","size":7,"bricks":"___G_____________G__________k__G__kkk___kkkkkkkkk","color":""},{"name":"icon:helium","size":8,"bricks":"_y____y_yP____PyPP___yPPP____P_P_____P____y_y______y______WWW___","color":""},{"name":"icon:asceticism","size":8,"bricks":"_yyyyyy__yy__yy_____W_______r_________r____r_________r__WWW___r_","color":""},{"name":"icon:unbounded","size":8,"bricks":"ggttttggggttttggggttttgggg____gggg____gggg__W_gggg____ggggWWW_gg","color":""},{"name":"icon:shunt","size":8,"bricks":"_______y______yy______yy__yyyyyy__y__yyy_yy__yyy_yy__yyyyyy__yyy","color":""},{"name":"icon:yoyo","size":8,"bricks":"_GGGGGG_kkkkkkkkGGGGGGGG_WWWWWW_GWGGGGGGkkWkkkkk_GGWGGG_____W___","color":""},{"name":"icon:nbricks","size":6,"bricks":"yy__rryyy_yyyyyyyyyyyyyyyy_yyyrr__yy","color":""},{"name":"icon:etherealcoins","size":11,"bricks":"_____y_________yyy________WWW________WWW_______yWWWy_____yyWWWyy____yyWWWyy____yyWWWyy____y_WyW_y_______W________________","color":""},{"name":"icon:shocks","size":8,"bricks":"____y_Oy_WWWO_y__WWWOO_O_WWWy_yyyyOyyOO_OO_yWWW__yO_WWW_y__yWWW_","color":""},{"name":"icon:zen","size":12,"bricks":"________________bbbb_______bbbbbb_______bbbb________BrrB_______tttttt_____tttttttt_____tttttt______BrrrrB_____bbbbbbbb___bbbbbbbbbb___bbbbbbbb__","color":""},{"name":"icon:sacrifice","size":9,"bricks":"__t___t___ttt_ttt_ttWWWWWttttWbWbWttttWWbWWtt_ttWWWtt___tWtWt_____ttt_______t____","color":""},{"name":"icon:trampoline","size":8,"bricks":"rrrrrrrrrttttttrrttttttrr______rr___W__rr______rr______r__yyy___","color":""},{"name":"icon:ghost_coins","size":7,"bricks":"__yyy___yyyyy_yyOyOyyyyyyyyyyyOOOyyyyyyyyyyy_y_yy","color":""},{"name":"icon:forgiving","size":8,"bricks":"____y______y_y____y___y__y_____yy_____y__y___y____y_y____WWWWW__","color":""},{"name":"icon:ball_attracts_coins","size":8,"bricks":"WWW_____WWW_y___WWW____y__y_y____y____y_____y_____y____y___y_y__","color":""},{"name":"icon:reach","size":8,"bricks":"tttttttttttttttttt____ttrr____rr___________W_____________WWW____","color":""},{"name":"icon:passive_income","size":7,"bricks":"_ttttt__ttt_t______W____y____________y_____rgggr_","color":""},{"name":"icon:clairvoyant","size":9,"bricks":"__y___y__y__y_y__y_y__t__y____ttt_____tWWWt___tWWgWWt_tttWWWttt__________________","color":""},{"name":"icon:implosions","size":8,"bricks":"y______W___yW_W__y_BWW_____BWWWy_WWWB_____WWB___yW_Wy___W_____y_","color":""},{"name":"icon:corner_shot","size":9,"bricks":"___W____y___W_y______W___y____W_y______W___y____W______W_W_WWW_WW_W_WWWWWW_W_WWWW","color":""},{"name":"icon:premium","size":11,"bricks":"__g____g___g____g____g_g__gbg__g______g______gg_gbg_gg_gbbgbbbgbbggbbgbbbgbbg_gbgbbbgbg___ggggggg____ggggggg_____________","color":""},{"name":"icon:reroll","size":8,"bricks":"__llllll_llBlBlelllllleBWWWWWeeeWBWBWeBeWWWWWeeeWBWBWBe_WWWWWe__","color":""},{"name":"icon:addiction","size":9,"bricks":"__________________________l__WWWWW_lWWWrrllllr_WWWWW_lr_______l__________________","color":""},{"name":"icon:help","size":8,"bricks":"___bb_____bbbb___bb__bb__bb__bb_____bb_____bb______________bb___","color":""},{"name":"Pingwin","size":13,"bricks":"______gggg________ggWWgg_______gWWgWgy______ggWWWg_______ggggg_______gggWWW______gggggWWW___gggggggWWW____ggggggWWW_____ggggWWWW____gggWWWWW______ggWWWW________gWWyyy___","color":"#3584e4","credit":"https://prohama.com/pingwin-2-pattern/"},{"name":"Dog 8","size":17,"bricks":"_____________________________________gg_ggggg_gg____ggWWgWWWWWgWWgg__gWWgWWWWWWWgWWg__gWWgWWWWWWWgWWg__gggWWWWWWWWWggg___gWggWWWWWggWg____gWggWWWWWggWg____gWWWWgggWWWWg_____gWgWWgWWgWg______gWWggsggWWg_______gWgsssgWg_________ggsssgg____________ggg_________________________________________","color":"#62a0ea","credit":"https://prohama.com/dog-8-pattern/"},{"name":"Sunglasses","size":24,"bricks":"____________________________________________________ggggg______ggggg_______gg___g______g___gg_____gg________________gg___gg__________________gg_gggggggggg____gggggggggggggtttttggggggggbbbbbgggggtWWWttttggggbbbbWWWbgg_gtWttttttggggbbbbWbbbg__gtttttttgg__ggbbbbbbbg__gtttttttg____gbbbbbbbg__ggtttttgg____ggbbbbbgg___ggtttgg______ggbbbgg_____ggggg________ggggg___________________________________________________________________________________________________________________________________________________________________________________________________________________________","color":"#26a269","credit":"https://prohama.com/sunglasses-pattern-1/"},{"name":"Balloon","size":21,"bricks":"_____bbbWbbbWbbb_________PWbWPWbWPWbWP_______bWbbbWbbbWbbbWb_____WbbbWbbbWbbbWbbbW___WPWbWPWbWPWbWPWbWPW__bWbbbWbbbWbbbWbbbWb__bbbPbbbPbbbPbbbPbbb__bbPPPbPPPbPPPbPPPbb___PPWPPPWPPPWPPPWPP____PWbWPWbWPWbWPWbWP_____PWPPPWPPPWPPPWP_______PPWPPPWPPPWPP_________WbWPWbWPWbW___________bbbbbbbbb_____________b_____b______________b_____b______________b_____b______________WWWWWWW_______________PPPPP________________PPPPP________________PPPPP________","color":"#240a8b","credit":"https://prohama.com/balloon-1/"},{"name":"Opening","size":14,"bricks":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbyyyyyyyyyyyybbyB___BB___Bybby__________ybbyyy______yyybbbbyyB__Byybbbbbbbyy__yybbbbbbbbby__ybbbbbyyyyby__ybyyyy___yby__yby______yby__yby______yBy__yBy______yyy__yyy___","color":"#000000"},{"name":"Stripes","size":17,"bricks":"bbb______tttttt________tttttt________tttttt______bbtttttt______bbbbbttt______bbbbbb________bbbbbb________bbbbbb______ttbbbbbb______tttttbbb______tttttt________tttttt________tttttt______bbtttttt______bbbbbttt______bbbbbb________bbbbbb________bbbbbb________bbbbbb___________bbb______________","color":""},{"name":"icon:starting_perks","size":8,"bricks":"_________b_b_b___________g_g_g_g_________g_g_g_g_________g_g_g_g","color":""},{"name":"icon:download","size":8,"bricks":"___bb______bb______bb______bb______bb____bbbbbb___bbbb__gggbbggg","color":""},{"name":"icon:upload","size":8,"bricks":"gggbbggg__bbbb___bbbbbb____bb______bb______bb______bb______bb___","color":""},{"name":"icon:coins","size":8,"bricks":"__bbbb___bbggbb_bbggggbbbggggggbbggggggbbbggggbb_bbggbb___bbbb__","color":""},{"name":"icon:reset","size":8,"bricks":"bb____bbbbb__bbb_bbbbbb___bbbb____bbbb___bbbbbb_bbb__bbbbb____bb","color":""},{"name":"icon:fountain_toss","size":12,"bricks":"WWWWW_______WWWWW____y_________y______________y______y__y_____WWWWWWWW___WttttttttW_WtytttytyttWWtttyttttttWlWtyttttytWl_lWWWWWWWWl___llllllll__","color":""},{"name":"You are here","size":13,"bricks":"_____rrr_________rrrrr_______rrr_rrr______rr___rr______rr___rr_______rr_rr________rrrrr_________rrr__________rrr_________WWrWW_______WWWrWWW______WWWWWWW_______WWWWW____","color":""},{"name":"Gear","size":13,"bricks":"_________________l_l_l______l_lllll_l_____lllllll____lllll_lllll___lll___lll___lll_____lll___lll___lll___lllll_lllll____lllllll_____l_lllll_l______l_l_l_________________","color":""},{"name":"Play","size":15,"bricks":"_________________rrrrrrrrrrr___rrrrWWrrrrrrr__rrrrWWWrrrrrr__rrrrWWWWrrrrr__rrrrWWWWWrrrr__rrrrWWWWWWrrr__rrrrWWWWWrrrr__rrrrWWWWrrrrr__rrrrWWWrrrrrr__rrrrWWrrrrrrr___rrrrrrrrrrr_______________________________________________","color":""},{"name":"City","size":18,"bricks":"_______yyy___bbbbb________yyy__ybyyb________yyy__ybyyb__tt___yyy_b_ybbbb_tttt______bbbbbbbtttttt_______ybyybbbbbbb_______ybyybbyybyb_____b_ybbbbbyybyb_____bbbbbbbbbbbbb__bb___bbbbbbybyyb_bbbb__ybyybbybyybbbbbbb_ybyybbbbbbbtttttt_ybbbbbyybybtyyyyt_bbbbbbyybybtyyyyt_bbbbbbbbbbbtttttt_byybybybyybtytyyt_byybybybyybtttttt_byybb","color":""},{"name":"Wiggle","size":17,"bricks":"__________________cccccc_ccc_cccc__c____c_c_c_c__c__ccc_cc_c_ccc_cc____c_c__c_____c___ccc_cccc_ccc_cc__c________c_c__c__ccc_ccc_cc_cccc____c_c_c_c________ccc_c_c_ccccccc__c___c_________c__ccc_ccccccccccc____c______________ccc_ccc_ccc_ccc__c___c_c_c_c_c_c__ccccc_ccc_ccc_c__________________","color":""},{"name":"Graph","size":18,"bricks":"_______________________yy________________yyt__yytttt______tt_tttyy___t____yyt____t_____t____yy____tt_____t____t_____t______yy___t_____t______yy__tt_____yytttttt___tt___ttyy_____t___t____t__t_____t___yytttt__t_____t___yy______tt____t____t_______yy___t____ttt_____yyttyy______tyy___t___yy_______yytttt_________________________","color":""},{"name":"Lightbulb","size":14,"bricks":"_______________y__yyyyy___y____yyyyyyy______yyyyyyyyy_____yyyyyyyyy___y_yyyyyyyyy__y__yyyyyyyyy_____yyyyyyyyy_____yyyBBByyy___y__yyByByy___y____yByBy_________lllll______y___lll___y_______lll______","color":""},{"name":"Note","size":16,"bricks":"_____________WWW__________WWWWWW_______WWWWWW__W____WWWWWW_____W____WWW________W____W__________W____W__________W____W__________W____W__________W____W________WWW____W_______WWWW____W_______WWW___WWW____________WWWW____________WWW____________________________","color":""},{"name":"Rocket","size":13,"bricks":"______b___________bbb_________bbBbb________btttb________ttBtt________ttttt________ttBtt________ttttt________ttBtt_______bbtttbb_____bbbyyybbb____bbbyyybbb____bb_ByB_bb__","color":""},{"name":"Abstract","size":16,"bricks":"________________aaaaa_cccc_aaaaaaaaaa_cccc_aaaaa________________aaaa_cccc_aaaaaaaaaa_cccc_aaaaaa________________aaa_cccc_aaaaaaaaaa_cccc_aaaaaaa________________aa_cccc_aaaaaaaaaa_cccc_aaaaaaaa________________a_cccc_aaaaaaaaaa_cccc_aaaaaaaaa________________","color":""},{"name":"Fingerprint","size":15,"bricks":"___SSSSSSSS______S_______SS____S__SSSSS__SS__S__S____SS__S____S__SS__SS_S___S__S_SS__S__S_S__S___SS_SS__SS_S_____S___S__S_S__SS__S__SS_S_S_SS_S__S__S_S_S_S___S_S__S_S_S_S___S_S__S___S_S___S_S__S__S__S___S_S__S__S__S__S___S_S_","color":""},{"name":"Leaf","size":14,"bricks":"____________________________________________________________GGkGG________GGkGGkGG_____GGkGGkGGkkG_kkkkkkkkkkkGGG__GGkGGkGGkkG____GGkGGkGG_______GGkGG_______________________________________________","color":""},{"name":"Abstract 2","size":14,"bricks":"______________yyyy______yyyy______________bbb_bbbbbb_bbbbb___bbbb___bbb__y__bb__y__b______________bbb_bbbbbb_bbbbb___bbbb___bbb__y__bb__y__b______________bbb_bbbbbb_bbbbb___bbbb___bbb__y__bb__y__b","color":""},{"name":"Abstract 3","size":13,"bricks":"______________p_aaa_ppp_a__p___a_p___a__ppp_a_p_aaa_______________aaa_p_a_ppp__a___p_a___p__a_ppp_aaa_p_______________p_aaa_ppp_a__p___a_p___a__ppp_a_p_aaa______________","color":""},{"name":"Abstract 4","size":13,"bricks":"______________y_y_y_y_y_y__y_y_y_y_y_y__y_y_y_y_y_y_______________bbb_bbb_bbb_______________bbb_bbb_bbb_______________y_y_y_y_y_y__y_y_y_y_y_y__y_y_y_y_y_y______________","color":""},{"name":"Abstract 5","size":13,"bricks":"______________ccc_ccc_ccc__c_a_c_c_a_c__caa_aaa_aac_______________cca_aaa_acc__c_a_a_a_a_c__cca_aaa_acc_______________caa_aaa_aac__c_a_c_c_a_c__ccc_ccc_ccc______________","color":""},{"name":"Abstract 6","size":13,"bricks":"_vvvvv_vvvvv__v___v_v___v__v_bbbbbbb_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_vvv_b_v__v_b_____b_v__vvvvvvvvvvv_bbbb_____bbbb","color":""},{"name":"icon:new_run","size":7,"bricks":"_ggg____gbgg___gbbgg__gbbbg__gbbgg__gbgg___ggg___","color":""},{"name":"icon:settings","size":9,"bricks":"___g_g____g_ggg_g___ggbgg__gggbbbggg_gbb_bbg_gggbbbggg__ggbgg___g_ggg_g____g_g___","color":""},{"name":"icon:creative","size":7,"bricks":"bbg_bgg_______bbb_bgg_______bgg_bbg_______bbg_bbb","color":""},{"name":"icon:limitless","size":12,"bricks":"_________________________bbb____ttb_bbbbb__tttbbbb_bbbttt_bbbb__bbbt__bbbb_ttbbb__bbttttttbbbbbb_ttt___bbbb_____________________________________","color":""},{"name":"icon:history","size":8,"bricks":"__gggg___ggbggg_gggbgggggggbggggggggbbgggggggggg_gggggg___gggg__","color":""},{"name":"Hemiola","size":11,"bricks":"___gggg_____gggrrgg_____ggrrg_______gggg_____gggyygg_____ggyyg_______gggg_____gggCCgg_____ggCCg_______gggg________gg_____","color":"#240a8b","credit":"Left a wonderful review on the play store."},{"name":"Obigre","size":13,"bricks":"_______________________________________OOOORgRgRgOOOOWOORgRgRgOOOOOWORgRgRgOWOOWOORgRgRgOOWOOWORgRgRgOWOOWOORgRgRgOOOOOOORgRgRgOOO_______________________________________","color":"#62a0ea","credit":"Colin helped a lot with the game design https://colin-crapahute.bearblog.dev/"},{"name":"Noodlemire","size":15,"bricks":"_________________________________ggggggggg_____g_________g___g___________g_g_____________gg_____________gg_____yyy_____ggg__yyyyyyy__ggggtyyyyyyyyytggggtttttttttttgggg_ttttttttt_gg_____ttttt___________________________________","color":"#240a8b","credit":"Early adopter of the game"},{"name":"Bearded axe","size":12,"bricks":"______________WyyyOOy_____WyyyOOy_____Wyy_OO______Wyy_OO______Wyy_OO__________OO__________OO__________OO__________OO__________OO__________OO____","color":"","credit":"Did some nice bug reports"},{"name":"icon:minefield","size":7,"bricks":"W__B__WWWBBBWWB__W__BBBWWWBBW__B__WWWBBBWW_______","color":""},{"name":"icon:side_flip","size":7,"bricks":"________ttttt__rttty__rttty__rttty__ttttt________","color":""},{"name":"icon:side_kick","size":7,"bricks":"________ttttt__ytttr__ytttr__ytttr__ttttt________","color":""},{"name":"Lebanon","size":9,"bricks":"_________rrrrrrrrrWWWWkWWWWWWWkkkWWWWWkkkkkWWWWWWkWWWWrrrrrrrrr__________________","color":""},{"name":"Spain","size":9,"bricks":"_________rrrrrrrrryyyyyyyyyyWrWyyyyyyrWryyyyyyWrWyyyyyyyyyyyyyyrrrrrrrrr_________","color":""},{"name":"Uzbekistan","size":8,"bricks":"tWtttWttWtttWttttWtWtWttWWWWWWWWWWWWWWWWGGGGGGGGGGGGGGGGGGGGGGGG","color":""},{"name":"Pakistan","size":8,"bricks":"________WWkkkkkkWWkkWkWkWWkWkkkkWWkWkkWkWWkkWWkkWWkkkkkk________","color":""},{"name":"Korea","size":10,"bricks":"__________WWWWWWWWWWWgWWWWWWgWWgWrrrrWgWWWWrrbbWWWWWWrrbbWWWWgWbbbbWgWWgWWWWWWgWWWWWWWWWWW__________","color":"#62a0ea"},{"name":"icon:trickledown","size":8,"bricks":"_ytttttt_________y_y_y__tttttt____________y_y_y___tttttt_y______","color":""},{"name":"icon:transparency","size":9,"bricks":"__W_W_W___________W_W_W_W_W_________W_W_W_W_W_________W_W_W_W_W___________W_W_W__","color":""},{"name":"icon:superhot","size":11,"bricks":"____________________________________________W_W_WWW_WWWWWW_W_W__W_W_W_WWW__W_____________________________________________","color":""},{"name":"icon:bricks_attract_coins","size":7,"bricks":"_y__y___tttttyyttttt__ttttt_yttttty_ttttt___y__y_","color":""},{"name":"icon:rainbow","size":6,"bricks":"__rOyC_rOyCa_rOyCarOyCatrOyCatrOyCat","color":""},{"name":"icon:hypnosis","size":8,"bricks":"___WW______WW_______ay_____c__a______c______y_______a_c____c_y_a","color":""},{"name":"icon:bricks_attract_ball","size":8,"bricks":"llW_____ll_P________P________Pll____P_ll___P____llP_____ll_P____","color":""},{"name":"Chile","size":9,"bricks":"_________tttWWWWWWtWtWWWWWWtttWWWWWWrrrrrrrrrrrrrrrrrrrrrrrrrrr__________________","color":""},{"name":"T\xfcrkiye","size":12,"bricks":"____________rrrrrrrrrrrrrrrWWWrrrrrrrrWWrrrrrrrrrWWrrWrWrrrrrWWrrrWrrrrrrWWrrWrWrrrrrrWWrrrrrrrrrrrWWWrrrrrrrrrrrrrrrrrr________________________","color":""},{"name":"icon:editor","size":10,"bricks":"_______ggg______gggg_____ggggg____ggggg____ggggg____ggggg____ggggg____bgggg_____bbgg______bbb_______","color":""},{"color":"","size":11,"bricks":"_____e________WWWWW_____WWWWWWW____WWWWWWW____WWWWWWW__W__lllll__WWWeeeeeeeWWeeeeeWeeeeeeleeWWWeeleeeeWWWWWeeeeleWWlWWele","name":"Taj Mahal","credit":"An approximative reproduction "},{"color":"","size":9,"bricks":"__________SS_t_SS__S_____S____t_t____t_____t____t_t____S_____S__SS_t_SS__________","name":"Abstract 7","credit":""},{"color":"","size":8,"bricks":"PP_vv_PP_P__v__P________vv_PP_vvv__P__v_________PP_vv_PP_P__v__P","name":"Abstract 9","credit":""},{"color":"","size":9,"bricks":"____W_____WWWWWWW__WB_W_BW__W_____W_WWW_B_WWW_W_____W__WB_W_BW__WWWWWWW_____W____","name":"Crosshair","credit":""},{"color":"","size":15,"bricks":"bbbB_ttttt_BbbbbBbb_ttBtt_bbBbb____tt_tt____bbbbb_tt_tt_bbbb_______________ttttt_b_b_tttttt_____b_b_____tt_ttt_b_b_ttt_ttBtBt_bBb_tBtBtttt_t_bbb_t_ttt________________bb_ttttttt_bb__Bb_tB___Bt_bB__Bb_ttt_ttt_bB_bbb_________bbb","name":"Abstract 10","credit":""},{"color":"","size":6,"bricks":"SSSSSSSOOOOSSBOOBSSOOOOSSOOOOS_OSSO_","name":"Face","credit":""},{"color":"","size":11,"bricks":"_____O__________O__________O__________O_________OOO________OOO____k___O_O___kkk_OO_OO_kkkkkOOOOOkkkkkOOO_OOOkkkOOO___OOOk","name":"Eiffel tower","credit":""},{"color":"","size":9,"bricks":"P_t_s_t_PP_t___t_PP_ttttt_PP_______PPPPPPPPPPP_______PP_sssss_PP_s___s_PP_s_t_s_P","name":"Abstract 11","credit":""},{"color":"","size":8,"bricks":"BbBb____bbbb____BbBb____bbbb________tBtB____tttt____tBtB____tttt","name":"Abstract 12","credit":""},{"color":"","size":9,"bricks":"SSSSbSSSSSbbSbSbbSSbbS_SbbSSSSS_SSSSbb_____bbSSSS_SSSSSbbS_SbbSSbbSbSbbSSSSSbSSSS","name":"Abstract 13","credit":""},{"color":"","size":11,"bricks":"aa_tt_aa_ttaa_tt_aa_tt__B__B__B__bb_aa_bb_aabb_aa_bb_aa__B__B__B__aa_bb_tt_bbaa_bb_tt_bb__B__B__B__tt_aa_bb_aatt_aa_bb_aa","name":"Abstract 14","credit":""},{"color":"","size":10,"bricks":"___________Oyyyyyyy__Oyyyyyyy__Oyy__Oyy__Oyy_______Oyyyyyyy_______Oyy__Oyy__Oyy__Oyyyyyyy__Oyyyyyyy_","name":"S","credit":""},{"color":"","size":11,"bricks":"____________S_vvv_SSS__S___v___S__SSS_vvv_S__________S__S_vvv_SSS__S___v______SSS_vvv_S____S_____S__v_SSS_SSS____________","name":"Abstract 15","credit":"Just random strokes"},{"color":"","size":11,"bricks":"________________________RRRRR_____RRRRRRRRR__kkkOOkO___kOkOOOkOOO_kOkkOOOkOOOkkOOOOkkkk___OOOOOOO________________________","name":"Mario!","credit":"Suggested by Nicolas03. A Mario level ! Sprite taken from https://art.pixilart.com/sr2d5c0683c82aws3.png . The sprite belongs to Nintendo"},{"color":"","size":16,"bricks":"___llltCCttBC______lllCBBttCB______lttbBbtltt______ltBrBClttt______lttCCCttBt______llttCBtttt______ltCBCttlll______ltBCCtCtCt______lttCCBCBrB______llltBCCtrB______ttttttlltt______CBrttlllll______CBrBCttttl______ttCCBttBtl______tttCCCtCCt______tBttBtltBt___","name":"Minesweeper","credit":"Suggested by Noodlemire. For once, you\'ll want to trigger as many mines as possible."},{"color":"","size":19,"bricks":"__________________________________________________________________________________________________________________________WWW_______________WrrrW_____________WrWWWrW____________WrWBWrW____________WrWWWrW_____________WrrrW_______________WWW__________________________________________________________________________________________________________________________","name":"Target","credit":"Suggested by Noodlemire. Unusually small level, with lots of room to miss your shots. Acts as decent aim practice."},{"color":"","size":10,"bricks":"__________rrrrr_____WWrWWrrrrrWWrWWWWrWWWWrWWWWrWWrWrWWWWrWWWrWWWrWrWW_____WrWWW____________________","name":"The Boys","credit":"Suggested by Bearded-Axe. My boys initals"},{"color":"#115988","size":21,"bricks":"__________________________________________________yy_______________yy__yy__yy___________yy__yy__yy____________yy__yy_yy_________y__yy__yy_yy________yyy_yyy_yy_yy_________yy__yy_yyyyy__________yy_yyyyyyyy___yyy____yyyyygggyyy__yyy______yyygBBBgyy_yyy________ygBBBBBgyyyy__W______ygBBBBBgyyy__________yygBBBgyyyy___________yygBgyyyy____________yyyByyyy_____________yyyyByy_______________yyByy_________________r_________________________________","name":"A Very Dangerous High-Five","credit":"Suggested by Noodlemire. A unique shape, fun to bounce the ball between fingers. The palm was initially boring on its own, so I gave it a big bomb. It adds a distinct feeling between the top and bottom halves."},{"name":"icon:buoy","size":7,"bricks":"___b______b_____bbb__abbbbbaaatttaaaaataaaaaaaaaa","svg":null,"color":""},{"name":"icon:ottawa_treaty","size":8,"bricks":"BBtWWtBBBttWWttBtWWtttWtttWWWWtttttWWtttttWWWtttBWWtWttBBBtttWBB","svg":null,"color":""},{"name":"icon:three_cushion","size":8,"bricks":"BkkkkkkBk___W__kk__W_W_kk_W___WkkW___y_kk_W____kk__W___kBkkkkkkB","svg":null,"color":""},{"name":"icon:sticky_coins","size":8,"bricks":"__________yy_yy___tttty__ytttt___ytttt____tttty______yy_________","svg":null,"color":""},{"name":"icon:double_or_nothing","size":7,"bricks":"__yyy___yrrry_yOOOrOyyOOrOOyyOOOOOy_yOrOy___yyy__","svg":null,"color":""},{"name":"icon:wrap_left","size":8,"bricks":"WWWWWWWWW_W____WW__v___WW___v__WW____v_WWp____pWW_v____W__WWW___","svg":null,"color":""},{"name":"icon:wrap_right","size":8,"bricks":"WWWWWWWWW___W__WW__v___WW_v____WWp____pWW____v_WW___v__W__WWW___","svg":null,"color":""},{"name":"icon:unlocked_upgrades","size":9,"bricks":"___ggg_____ggbgg___ggbbbgg_ggbbgbbgggbbbgbbbggggbgbggg__gbgbg____gbgbg____ggggg__","svg":null,"color":""},{"name":"icon:unlocked_levels","size":9,"bricks":"ggggggggggbbbgbbbggbgggggbggbgbgbgbgggggggggggbgbgbgbggbgggggbggbbbgbbbgggggggggg","svg":null,"color":""},{"name":"icon:happy_family","size":9,"bricks":"___________tt_tt____tt_tt____tt_tt__W_tt_tt_W__________W_____W____W_W____________","svg":null,"color":""}]');
+module.exports = JSON.parse('[{"name":"71 mini","size":5,"bricks":"bbb____bt__btt__b_t___ttt","color":""},{"name":"Butterfly","bricks":"_________bb_t_t_bbbbb_t_bbbbbbbtbbbb_bbbtbbb____btb____bbbtbbb__bb_t_bb__________","size":9,"color":""},{"name":"Castle","size":7,"bricks":"s_s_s_ssssssssssBBBssssBBBssttbbbttttbbbtttbtbtbt","color":""},{"name":"Eyes","size":9,"bricks":"ttttttt__tWWWWWWW_tWrrWttW_tWWWWWWW_ttttttt_____t______ttttt____ttttt_____t_t","color":"","credit":"My favorite character in https://nuclearthrone.com/"},{"name":"Creeper","size":10,"bricks":"___________ccGGccGG__cGccGcGc__GBBccBBc__cBBGcBBc__GccBBGGc__ccBBBBcG__GGBBBBcG__cGBccBGc___________","credit":"https://en.wikipedia.org/wiki/Creeper_(Minecraft)","color":""},{"name":"Stairs","size":8,"bricks":"tt______tt______bbtt____bbtt____vvbbtt__vvbbtt__ppvvbbttppvvbbtt","color":""},{"name":"Dots","size":9,"bricks":"b_t_a_c_c__________b_t_a_c__________P_b_t_a_c__________P_b_t_a__________P_P_b_t_a","color":""},{"name":"Lines","size":9,"bricks":"aaaaaaaa___________tttttttt_________aaaaaaaa___________tttttttt_________aaaaaaaa","color":""},{"name":"Heart","size":15,"bricks":"__________________RRR___RRR_____RSSSR_RSSSR___RSWWSSRSSSSSR__RSWSSSSSSSSSR__RSSSSSSSSSSSR__RSWSSSSSSSSSR___RSSSSSSSSSR_____RSSSSSSSR_______RSSSSSR_________RSSSR___________RSR_____________R____________________________________","color":"","credit":"https://www.youtube.com/watch?v=gdWiTfzXb1g"},{"name":"Swiss","size":7,"bricks":"________RRRRR__RRWRR__RWWWR__RRWRR__RRRRR________","color":""},{"name":"Germany","size":4,"bricks":"____ggggrrrryyyy","color":"#5da3ea"},{"name":"France","size":6,"bricks":"______ttWWrrttWWrrttWWrrttWWrrttWWrr","color":""},{"name":"Smiley","size":8,"bricks":"_________yy__yy__yy__yy__________________yyyyyy___yyyy__________","color":""},{"name":"Labyrinthe","size":11,"bricks":"_______tttS_Stttt_S________t___S__Stt_ttttt____t_____S__ttt_S_S____t___t_tttt_t_S_t____tSt_t_t_Sttt___t_t_____Sttt_tttttS"},{"name":"Temple","size":11,"bricks":"_______________WWW______WWWWWWW___WWWWWWWWW___b_b_b_b____b_b_b_b____v_v_v_v____P_P_P_P____P_P_P_P____WWWWWWW___WWWWWWWWW_","color":""},{"name":"Pacman","size":12,"bricks":"____yyyy______yyyyyyyy___yyyyByyyyy__yyyyyyyyy__yyyyyyyy____yyyyyy______yyyyyy___S_Syyyyyyyy_____yyyyyyyyy___yyyyyyyyyy___yyyyyyyy______yyyy","color":"","credit":"https://en.wikipedia.org/wiki/Pacman"},{"name":"Ship","size":11,"bricks":"____sWW________sWWW_______sWWW_______s___OOOOOOOOOOOOOO_OBOBOBOBOO__OOOOOOOO_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb___________"},{"name":"We come in peace","size":13,"bricks":"________________a_____a_______a___a_______aaaaaaa_____aaBaaaBaa___aaaaaaaaaaa__aaaaaaaaaaa__a_aaaaaaa_a__a_a_____a_a_____aa_aa_____________________________","color":"","credit":"https://en.wikipedia.org/wiki/Space_invaders"},{"name":"Space mushroom","size":10,"bricks":"______________WW_______WWWW_____WWWWWW___WWBWWBWW__WWWWWWWW____W__W_____W_WW_W___W_W__W_W","color":"","credit":"https://en.wikipedia.org/wiki/Space_invaders"},{"name":"Wololo","size":9,"bricks":"____WW_OOW___WW__OWW__W___OWWWbbbW_WWW_WbW_WOW__WWb__OW__bbb__O___W_W__O___W_W__O","color":"","credit":"https://aoe.heavengames.com/theacademy/unitsboatsandbuildings/priest/"},{"name":"Small heart","size":15,"bricks":"________________________________RRRR___RRRR___RrWWrR_RWWrrR__RWWrrrRWWrrrR__RrrrrrrrrrrrR__RrrrrrrrrrrrR___RrrrrrrrrrR_____RrrrrrrrR_______RrrrrrR_________RrrrR___________RrR_____________R______________________","color":""},{"name":"Eye","size":9,"bricks":"____________ggg_____gWWWg___gWbbbWg_gWWbBbWWg_gWbbbWg___gWWWg_____ggg____________","color":"#5da3ea"},{"name":"Enderman","size":10,"bricks":"___________gggggggg__gggggggg__gggggggg__gggggggg__vvvggvvv__gggggggg__gggggggg__gggggggg_____________________","color":"#154b07","credit":"https://minecraft.wiki/w/Enderman"},{"name":"Mushroom","size":16,"bricks":"_____________________rrrrWW________WWrrrrWWWW_____WWrrrrrrWWWW____WrrWWWWrrWWW___rrrWWWWWWrrrrr__rrrWWWWWWrrWWr__WrrWWWWWWrWWWW__WWrrWWWWrrWWWW__WWrrrrrrrrrWWr__WrrWWWWWWWWrrr_____WWBWWBWW_______WWWBWWBWWW______WWWWWWWWWW_______WWWWWWWW____________________","color":"","credit":"https://pixelartmaker.com/art/cce4295a92035ea"},{"name":"Tulip","size":11,"bricks":"______________R_R_R______RRRRR______RRRRR______RRRRR_______RRR_________k________k_k_k______k_k_k_______kkk_________k________________","color":""},{"name":"Chain","size":7,"bricks":"yyy____yBy____yyyyy____yBy____yyyyy____yBy____yyy","color":""},{"name":"Marion","size":9,"bricks":"rr_____rr_rr___rr__rrr_rrr__rrrrrrr__rr_r_rr__rr___rr__rr___rr__rr___rr_rrr___rrr","color":""},{"name":"Renan","size":9,"bricks":"yyyyyyy___yyyyyyy__yy___yy__yy___yy__yyyyyy___yy_yy____yy__yy___yy___yy_yyy___yyy","color":""},{"name":"Violet Pairs","size":8,"bricks":"b_b_b_b_b_b_b_b__________t_t_t_t_t_t_t_t________b_b_b_b_b_b_b_b","color":""},{"name":"Red Cups","size":11,"bricks":"___________rBr_rBr_rBrrrr_rrr_rrr___________r_rBr_rBr_rr_rrr_rrr_r___________rBr_rBr_rBrrrr_rrr_rrr__________","color":""},{"name":"Cactus","size":10,"bricks":"____G______rG_Gk______G_Gk______kkkk_r_____kkk_G______GkGk_____rGkk_______Gk________kk________kk_____","color":""},{"name":"Sunny Face","size":11,"bricks":"____yyy______yyyyyyy___yyyyyyyyy__yyyyyyyyy_yyyWWyWWyyyyyyyyyyyyyyyyyyyyyyyyy_yyWWWWWyy__yyyWWWyyy___yyyyyyy______yyy","color":"#5da3ea"},{"name":"Mountain","size":9,"bricks":"_______________W_______WWW______GGWW__W_GGGGG_kkkGGGGG_kkkkGGGGkkkkkGGGGkkkkkkGGG_________","color":""},{"name":"Dollar","size":17,"bricks":"________________________G_G______________G_G____________GGGGGGG_________GGGGGGGGG_______GG__G_G__GG______GG__G_G__GG______GG__G_G___________GGGGGGGG__________GGGGGGGG___________G_G__GG______GG__G_G__GG______GG__G_G__GG_______GGGGGGGGG_________GGGGGGG____________G_G______________G_G________________________","color":""},{"name":"Waves","size":8,"bricks":"___bbb____bbb____bbttbbbbbttbbbbttttaatttttaattttaaaaaaa","color":""},{"name":"Box","size":8,"bricks":"yyyyyyyyy______yy_bbbb_yy_b__b_yy_b__b_yy_bbbb_yy______yyyyyyyyy","color":"","squared":false},{"name":"Rose","size":9,"bricks":"__SS______SSSS_____SSSS_____SSSS______SS_k______k_kk_____kk_k______kk________k","color":""},{"name":"Time","size":9,"bricks":"__________WWWWWWW___WWWWW_____yyy_______y________y_______WyW_____WyyyW___yyyyyyy__________","color":"","squared":false},{"name":"Watermelon","size":8,"bricks":"_____Sk_____SSBk___SBSSk__SSSSSk_SSBSSk_SBSSSSk_kSSSkk___kkk____","color":""},{"name":"Worms","size":13,"bricks":"___sssss_______sssssss______WWsWWsss_____WBsBWsss_____WBsBWsss_____WWsWWsss_____sssssss_______ssssss_____WWWWWWss_______WssWs__s_____ssss__sss___sssssssssss__sssssssss_ss","color":"","squared":false,"credit":"https://en.wikipedia.org/wiki/Worms_(series)"},{"name":"Ocean Sunrise","size":8,"bricks":"SSSSSSSSSSSyySSSSSyyyySSSyyyyyySbttttttbbbttttbbbbbttbbbbbbbbbbb","color":""},{"name":"Crosses","size":13,"bricks":"b___b___b___b__v___v___v___vvv_vvv_vvv___v___v___v__p___p___p___ppp_ppp_ppp_ppp___p___p___p__P___P___P___PPP_PPP_PPP___P___P___P__p___p___p___ppp_ppp_ppp_ppp___p___p___p","color":""},{"name":"Negative space","size":9,"bricks":"tttttttttt_t_t_t_t_________b_b_b_b_bbbbbbbbbb_b_b_b_b___________t_t_t_t_ttttttttt_________"},{"name":"UK","size":11,"bricks":"brbbWrWbbrbbbrbWrWbrbbbbbrWrWrbbbWWWWWrWWWWWrrrrrrrrrrrWWWWWrWWWWWbbbrWrWrbbbbbrbWrWbrbbbrbbWrWbbrb__________","color":""},{"name":"Greece","size":11,"bricks":"ttWttttttttttWttWWWWWWWWWWWttttttttWttWWWWWWttWttttttttWWWWWWWWWWWtttttttttttWWWWWWWWWWWttttttttttt__________","color":""},{"name":"Russia","size":8,"bricks":"________WWWWWWWWWWWWWWWWttttttttttttttttrrrrrrrrrrrrrrrr________________","color":""},{"name":"Ukraine","size":8,"bricks":"________ttttttttttttttttttttttttyyyyyyyyyyyyyyyyyyyyyyyy________","color":""},{"name":"Poland","size":7,"bricks":"________WWWWW__WWWWW__rrrrr__rrrrr_______________","color":""},{"name":"Yellow 71","size":9,"bricks":"_________yyyyy__yyyyyyy_yyy___yy__yy__yyy__yy_yyy___yy_yy____yy_yy____yy__________________","color":""},{"name":"71 on white","size":6,"bricks":"WWWWWWrrrWWrWWrWrrWrWWWrWrWWWrWWWWWW______"},{"name":"Blue 71","size":8,"bricks":"ttttt__bttttt_bb___ttbbb__tt__bb__tt__bb_tt___bb_tt___bb_tt___bb","color":""},{"name":"Seventy one","size":21,"bricks":"rr_yy_rrry_yrrry_yrrrr_ry_yr__y_yr_ry_y_r_rr_yy_rr_yy_r_ry_y_r_r_ry_yr__y_yr_ry_y_r_rr_y_yrrry_yrrryyy_r_yyy__________________y______________r_____yyyrrry_yrrryyyrr_y_y__yrr_y_yrr_y_yr__y_yyyyrrr_y_rrry_yrrryyy____________________yrrryyyrrr_________yy_r_ry_yrr_____________rrry_yrrryyyyyyyyyyyy_____________________________________________________________________________________________________________________________"},{"name":"B71","size":10,"bricks":"__________bbbtttt_b_b__b__tbb_b__b__t_b_bbb__t__b_b__b_t__b_b__bt___b_bbb_t__bbb__________"},{"name":"Pig","size":9,"bricks":"__________PP___PP__PPP_PPP__WWPPPWW__WBPPPBW__PPsssPP__PsBsBsP__PPsssPP___________"},{"name":"Big Pig","size":15,"bricks":"________________sss_______sss__ss__sssss__ss____sssssssss_____sWBsssssBWs___ssBBsssssBBss__ssss_____ssss__sss_sssss_sss__sss_sBsBs_sss__sss_sssss_sss___sss_____sss____sssssssssss__GGGsssssssssGGGGGGsGsssssGsGGGGGGssGGGGGssGGG_______________","color":""},{"name":"Donkey Kong","size":9,"bricks":"OOr__a___OOr__a___ppppppp_O______a________a____pppppppr_a______b_a___O__ppppppp__","color":""},{"name":"Banana","size":12,"bricks":"_________________e__________eee_________eee_________eee_________eeeyy_____yyeeyyyy___yyyyey_yC___yy_yyy___C_____yyyy_________yyyy_________yyyy"},{"name":"Fox","size":8,"bricks":"e______eee_OO_eeeeOOOOeeeOBOOBOeOOOOOOOO_WWBBWW___WWWW_____WW___"},{"name":"Wiki","size":10,"bricks":"_______________________GGGG_____GGkkGG___GkggggkG__GgWWWWgG__GkggggkG___GGkkGG_____GGGG_______________________","color":"#1c71d8"},{"name":"Baby Dog","size":8,"bricks":"_______W__eeeeWWWWeeWeWWWeBWeBeeeeWWWWee_eWBBWe__eWWWWe____WW___"},{"name":"dog 21","size":9,"bricks":"__________O_____O_OOOWWWOOOOOWWWWWOOOOeWWWWOO_eBeWWBW__eBeWWBW___eWBWW_____WRW____________","credit":"https://prohama.com/dog-21-pattern/"},{"name":"icon:extra_life","size":9,"bricks":"___________kk_Gk___kkGGkkG_kkGGkkGGkkGGkkGGkk_GkkGGkk___kGGkk_____Gkk_______k____"},{"name":"icon:streak_shots","size":8,"bricks":"_tttttt__ttWttt___W_W____W___W__W_____W__W___W____W_W_____rrr___"},{"name":"icon:base_combo","size":7,"bricks":"________ttttt__tytyt__ttttt__tytyt__ttttt________"},{"name":"icon:slow_down","size":10,"bricks":"_____________kk_______kkkk_____kkkkkkGG__kkkkkkGBG_kkkkkkGGGGkkkkkkGG__GGGGGG____GG__GG_____________"},{"name":"icon:bigger_puck","size":8,"bricks":"_________kkkkkk__kkkkkk______________________W___________GGGGGG_"},{"name":"icon:viscosity","size":8,"bricks":"________bb______ttbb__bbttttbbtttbttbtttttbttbtttttyttyttttttttt"},{"name":"icon:left_is_lava","size":8,"bricks":"r_______rtttttt_rtttttt_r_______r_______r____W__r_______r_WWW___"},{"name":"icon:right_is_lava","size":8,"bricks":"_______r_ttttttr_ttttttr_______r_______r_____W_r_______r__WWW__r"},{"name":"icon:telekinesis","size":8,"bricks":"_____GW_____G______G______G_______G_______G_______G_____kkkkk___"},{"name":"icon:top_is_lava","size":8,"bricks":"rrrrrrrr_tttttt__tttttt____________________W_______________WWW__"},{"name":"icon:coin_magnet","size":8,"bricks":"__y__y_yy_________y_y_y_y________y_y______________y______WWW____"},{"name":"icon:skip_last","size":5,"bricks":"kGGGkGkGkGGGkGGGkGkGkGGGk"},{"name":"icon:multiball","size":8,"bricks":"_________tttttt__tttttt___________W__W____________________WWW___"},{"name":"icon:smaller_puck","size":8,"bricks":"_________yyyyyy__yyyyyy_____________W_____________________WW____"},{"name":"icon:pierce","size":6,"bricks":"ttttttttttWtttt__ttt__ttt__ttt__tttt"},{"name":"icon:picky_eater","size":8,"bricks":"_rrr_______rt_____rtt_____r_t______ttt_______W____________WWWW__"},{"name":"icon:metamorphosis","size":8,"bricks":"aaaaaa__aaaa__________W___________ttaatt__tttttt_________WWW"},{"name":"icon:compound_interest","size":8,"bricks":"_________tttttt__ttt__t_____W________________r___________WWW__r_"},{"name":"icon:hot_start","size":7,"bricks":"tt__ttt__t_trt_t__tttt_____ttttWttt________WWW___"},{"name":"icon:sapper","size":9,"bricks":"_____WW______W__W_tttWttt_yttgggtt__tgggggt__tgggggt__tgggggt__ttgggtt__ttttttt___________","color":"#000000"},{"name":"icon:bigger_explosions","size":8,"bricks":"__O__Oy___Oyy_____OyOy__OyyyByOO_OOBBBy___yyByO__yOOy_OO_OO_____"},{"name":"icon:extra_levels","size":6,"bricks":"__________b__t_bb_ttt_b__t_bbb____________"},{"name":"icon:pierce_color","size":8,"bricks":"bb___bbbb__b_bbb_____bbb____bbbbb____bbbbb____bbbbb____bbbbb____"},{"name":"icon:soft_reset","size":9,"bricks":"__gg______ggg_yy__gggg_yyy_gggg_yyyy_____yyyy_yyyyyyyy_yyyyyyyy__yyyyyy____yyyy__"},{"name":"icon:ball_repulse_ball","size":8,"bricks":"WsP__PsWs______sP______P________________P______Ps______sWsP__PsW"},{"name":"icon:ball_attract_ball","size":8,"bricks":"__P__P____s__s__PsW__WsP________________PsW__WsP__s__s____P__P__"},{"name":"icon:puck_repulse_ball","size":8,"bricks":"__________________W_______s___W___P__s______P____________WWW__"},{"name":"A","size":7,"bricks":"__ttt___ttttt_ttt_ttttt___ttttttttttt___tttt___tt"},{"name":"B","size":9,"bricks":"_bbbbb_____bb_bb____bb_bb____bb_bb____bbbb_____bb_bb____bb_bb____bb_bb___bbbbb____"},{"name":"C","size":8,"bricks":"__rrrr___rrrrrr_rrr___rrrr______rr______rrr___rr_rrrrrr___rrrr"},{"name":"D","size":8,"bricks":"_GGGGG____GG__G___GG__GG__GG__GG__GG__GG__GG__GG__GG__G__GGGGG"},{"name":"e","size":8,"bricks":"__tttt___tttttt_tt____tttt____tttttttttttt_______tt__tt___tttt_"},{"name":"icon:wind","size":9,"bricks":"_ss______s___PPPP_s_________sssssss___________sssssss_s________s___PPPP__ss"},{"name":"icon:sturdy_bricks","size":7,"bricks":"yyyyyyyyyyyyyy____W_____W_W___W___W_______WWW____"},{"name":"icon:respawn","size":9,"bricks":"tttt___ttttt__t__tttt_ttt_t_____________________________W_________________WWW____"},{"name":"Elephant","size":18,"bricks":"_________________________llll_________lll_llllll_lll___lsssllllllllsssl__lsssllllllllsssl__lsssllBllBllsssl__lssllWllllWllssl___ll__llllll__ll_________llll_______________ll______________llll______________ll________________________________________________________________________________________________________________________________________","color":"","credit":"https://prohama.com/elephant-5-pattern/"},{"name":"Orca","size":20,"bricks":"____________________________________________________________________________________________ggggg____ggg_ggg___ggggggg____ggggg___ggggggggg____ggg___ggggWggWWW_____gggggggggggWWWW_____ggggggggggWWWWW_____gggggggggWWWWW_______gggggggWWWWW___________WWggWWW______________ggg_gg______________gg__g__________________________________________________________________________________________________________","color":"#1c71d8","credit":"https://prohama.com/whale-2-pattern/"},{"name":"Shark","size":17,"bricks":"__________________________________________g_______________ggg____________ggggggg_________ggggggggg_______ggggggggggg_____gggggWWWggggg____gBgWWWWWWWgBg___ggWWWWrWrWWWWgg__ggWWWrrrrrWWWgg_ggWWWrrrrrrrWWWggggWWrrrrrrrrrWWgggWWWrWrWrWrWrWWWggWWrrWWWWWWWrrWWggWWWWWWWWWWWWWWWg_________________","color":"#3584e4","credit":"https://prohama.com/shark-2-pattern/"},{"name":"Bird","size":13,"bricks":"_______RRR____R____RSSSR___RR__RSSWWWR__RSR_RSWWBWR__RSSRRSWWWWyy_RSSSRSWWWR___RSSSSSSRR_____RRSSyyyy______RSyyyyy___RRRRSyyyy____RSSSRyyy_____RRRR______________________","color":"","credit":"https://prohama.com/bird-1-size-13x12/"},{"name":"Tux","size":14,"bricks":"_____gggg________gggggggg_____gggggggggg____gggggggggg___gggggggggggg__gggWBggWBggg__gggBBggBBggg__ggggyyyygggg_ggggggyyggggggggggWWWWWWggggg_gWWWWWWWWg_g__WWWWWWWWWW____WWWWWWWWWW____yyy____yyy__","color":"#62a0ea","credit":"https://prohama.com/pingwin-4-pattern/"},{"name":"Armenia","size":6,"bricks":"_______rrrr__bbbb__yyyy_____________","color":""},{"name":"Austria","size":6,"bricks":"_______rrrr__WWWW__rrrr______","color":""},{"name":"Benin","size":8,"bricks":"_________kkyyyy__kkyyyy__kkrrrr__kkrrrr__________________________","color":""},{"name":"Botswana","size":10,"bricks":"___________tttttttt__tttttttt__tttttttt__WWWWWWWW__BBBBBBBB__WWWWWWWW__tttttttt__tttttttt__tttttttt___________","color":""},{"name":"Bulgaria","size":6,"bricks":"_______WWWW__cccc__rrrr_____________","color":""},{"name":"Canada","size":7,"bricks":"________rWWWr__rWrWr__rWWWr______________________","color":""},{"name":"Chad","size":8,"bricks":"_________bbyyRR__bbyyRR__bbyyRR","color":""},{"name":"China","size":6,"bricks":"______RRyRRRRyRyRRRRyRRRRRRRRR______","color":""},{"name":"Colombia","size":7,"bricks":"________yyyyy__yyyyy__bbbbb__RRRRR_______________","color":""},{"name":"Republic of the Congo","size":7,"bricks":"________kkkyy__kkyyr__kyyrr__yyrrr_______________","color":""},{"name":"C\xf4te d\'Ivoire","size":8,"bricks":"_________OOWWGG__OOWWGG__OOWWGG","color":""},{"name":"Denmark","size":8,"bricks":"_________rrWrrr__rrWrrr__WWWWWW__rrWrrr__rrWrrr","color":""},{"name":"El Salvador","size":8,"bricks":"_________bbbbbb__bbbbbb__WWWkWW__WWkWWW__bbbbbb__bbbbbb","color":""},{"name":"Egypt","size":8,"bricks":"_________RRRRRR__RRRRRR__WWWyWW__WWyWWW__gggggg__gggggg","color":"#1c71d8"},{"name":"Estonia","size":8,"bricks":"_________tttttt__tttttt__gggggg__gggggg__WWWWWW__WWWWWW","color":"#26a269"},{"name":"Finland","size":6,"bricks":"_______WtWW__tttt__WtWW_____________","color":""},{"name":"Gabon","size":5,"bricks":"______CCC__yyy__ttt______","color":""},{"name":"Georgia","size":9,"bricks":"__________WrWrWrW__WWWrWWW__rrrrrrr__WWWrWWW__WrWrWrW__________________","color":""},{"name":"Guinea","size":8,"bricks":"_________rryycc__rryycc__rryycc","color":""},{"name":"Indonesia","size":6,"bricks":"_______rrrr__rrrr__WWWW__WWWW_______","color":""},{"name":"icon:one_more_choice","size":7,"bricks":"ttt____tbbb___tbttt__tbtbbb__btbbb___tbbb____bbb_"},{"name":"icon:checkmark_checked","size":6,"bricks":"_ggggbgBBBbbbbBbbggbbbBggBbBBg_gggg_"},{"name":"icon:checkmark_unchecked","size":6,"bricks":"_gggg_gBBBBggBBBBggBBBBggBBBBg_gggg_"},{"name":"icon:concave_puck","size":7,"bricks":"___G_____________G__________k__G__kkk___kkkkkkkkk","color":""},{"name":"icon:helium","size":8,"bricks":"_y____y_yP____PyPP___yPPP____P_P_____P____________________WWW___","color":""},{"name":"icon:asceticism","size":8,"bricks":"_tttttt__tt__tt_____W_______r______________r_________r_____WWW__","color":""},{"name":"icon:unbounded","size":8,"bricks":"ggttttggggttttggggttttgggg____gggg____gggg__W_gggg____ggggWWW_gg","color":""},{"name":"icon:shunt","size":8,"bricks":"_______y______yy______yy__yttyyy__y__yyy_yy__yyy_yy__yyyyyy__yyy","color":""},{"name":"icon:yoyo","size":8,"bricks":"_GGGGGG_kkkkkkkkGGGGGGGG_WWWWWW_GWGGGGGGkkWkkkkk_GGWGGG_____W___","color":""},{"name":"icon:nbricks","size":7,"bricks":"________tttrt__ttr_r____________W__________WWW___","color":""},{"name":"icon:etherealcoins","size":11,"bricks":"_____y_________yyy________ttt________ttt_______yttty_____yytttyy____yytttyy____yytttyy____y__y__y________________________","color":""},{"name":"icon:shocks","size":8,"bricks":"____y_Oy_WWWO_y__WWWOO_O_WWWy_yyyyOyyOO_OO_yWWW__yO_WWW_y__yWWW_","color":""},{"name":"icon:zen","size":12,"bricks":"________________WWWW_______WWWWWW_______WWWW________BrrB_______tttttt_____tttttttt_____tttttt______BrrrrB_____WWWWWWWW___WWWWWWWWWW___WWWWWWWW__","color":""},{"name":"icon:sacrifice","size":9,"bricks":"__t___t___ttt_ttt_ttWWWWWttttWtWtWttttWWtWWtt_ttWWWtt___tWtWt_____ttt_______t____","color":""},{"name":"icon:trampoline","size":8,"bricks":"_r_r_r_rrtttttt__ttttttrr___________W__rr______________r__WWW___","color":""},{"name":"icon:ghost_coins","size":7,"bricks":"__yyy___yyyyy_yy_y_yyyyyyyyyyy___yyyyyyyyyyy_y_yy","color":""},{"name":"icon:forgiving","size":8,"bricks":"____y______y_y____y___y__y_____yy_____y__y___y____y_y____WWWWW__","color":""},{"name":"icon:ball_attracts_coins","size":8,"bricks":"WWW_____WWW_y___WWW____y__y_y____y____y_____y_____y____y___y_y__","color":""},{"name":"icon:reach","size":8,"bricks":"tttttttttttttttttt____ttrr____rr___________W_____________WWW____","color":""},{"name":"icon:passive_income","size":8,"bricks":"_ttttt___ttt_t______yW_____________y______________ggg_______y___","color":""},{"name":"icon:clairvoyant","size":9,"bricks":"__y___y__y__y_y__y_y__t__y____ttt_____tWWWt___tWWgWWt_tttWWWttt__________________","color":""},{"name":"icon:implosions","size":8,"bricks":"y______W___yW_W__y_BWW_____BWWWy_WWWB_____WWB___yW_Wy___W_____y_","color":""},{"name":"icon:corner_shot","size":9,"bricks":"___W____y___W_y______W___y____W_y______W___y____W______W_W_WWW_WW_W_WWWWWW_W_WWWW","color":""},{"name":"icon:premium","size":11,"bricks":"__g____g___g____g____g_g__gbg__g______g______gg_gbg_gg_gbbgbbbgbbggbbgbbbgbbg_gbgbbbgbg___ggggggg____ggggggg_____________","color":""},{"name":"icon:reroll","size":8,"bricks":"__llllll_llBlBlelllllleBWWWWWeeeWBWBWeBeWWWWWeeeWBWBWBe_WWWWWe__","color":""},{"name":"icon:addiction","size":9,"bricks":"__________________________t__WWWWW_tWWWrrttttr_WWWWW_tr_______t__________________","color":""},{"name":"icon:help","size":8,"bricks":"___bb_____bbbb___bb__bb__bb__bb_____bb_____bb______________bb___","color":""},{"name":"Pingwin","size":13,"bricks":"______gggg________ggWWgg_______gWWgWgy______ggWWWg_______ggggg_______gggWWW______gggggWWW___gggggggWWW____ggggggWWW_____ggggWWWW____gggWWWWW______ggWWWW________gWWyyy___","color":"#3584e4","credit":"https://prohama.com/pingwin-2-pattern/"},{"name":"Dog 8","size":17,"bricks":"_____________________________________gg_ggggg_gg____ggWWgWWWWWgWWgg__gWWgWWWWWWWgWWg__gWWgWWWWWWWgWWg__gggWWWWWWWWWggg___gWggWWWWWggWg____gWggWWWWWggWg____gWWWWgggWWWWg_____gWgWWgWWgWg______gWWggsggWWg_______gWgsssgWg_________ggsssgg____________ggg_________________________________________","color":"#62a0ea","credit":"https://prohama.com/dog-8-pattern/"},{"name":"Sunglasses","size":24,"bricks":"____________________________________________________ggggg______ggggg_______gg___g______g___gg_____gg________________gg___gg__________________gg_gggggggggg____gggggggggggggtttttggggggggbbbbbgggggtWWWttttggggbbbbWWWbgg_gtWttttttggggbbbbWbbbg__gtttttttgg__ggbbbbbbbg__gtttttttg____gbbbbbbbg__ggtttttgg____ggbbbbbgg___ggtttgg______ggbbbgg_____ggggg________ggggg___________________________________________________________________________________________________________________________________________________________________________________________________________________________","color":"#26a269","credit":"https://prohama.com/sunglasses-pattern-1/"},{"name":"Balloon","size":21,"bricks":"_____bbbWbbbWbbb_________PWbWPWbWPWbWP_______bWbbbWbbbWbbbWb_____WbbbWbbbWbbbWbbbW___WPWbWPWbWPWbWPWbWPW__bWbbbWbbbWbbbWbbbWb__bbbPbbbPbbbPbbbPbbb__bbPPPbPPPbPPPbPPPbb___PPWPPPWPPPWPPPWPP____PWbWPWbWPWbWPWbWP_____PWPPPWPPPWPPPWP_______PPWPPPWPPPWPP_________WbWPWbWPWbW___________bbbbbbbbb_____________b_____b______________b_____b______________b_____b______________WWWWWWW_______________PPPPP________________PPPPP________________PPPPP________","color":"#240a8b","credit":"https://prohama.com/balloon-1/"},{"name":"Opening","size":14,"bricks":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbyyyyyyyyyyyybbyB___BB___Bybby__________ybbyyy______yyybbbbyyB__Byybbbbbbbyy__yybbbbbbbbby__ybbbbbyyyyby__ybyyyy___yby__yby______yby__yby______yBy__yBy______yyy__yyy___","color":"#000000"},{"name":"Stripes","size":17,"bricks":"bbb______tttttt________tttttt________tttttt______bbtttttt______bbbbbttt______bbbbbb________bbbbbb________bbbbbb______ttbbbbbb______tttttbbb______tttttt________tttttt________tttttt______bbtttttt______bbbbbttt______bbbbbb________bbbbbb________bbbbbb________bbbbbb___________bbb______________","color":""},{"name":"icon:starting_perks","size":8,"bricks":"_________b_b_b___________g_g_g_g_________g_g_g_g_________g_g_g_g","color":""},{"name":"icon:download","size":8,"bricks":"___bb______bb______bb______bb______bb____bbbbbb___bbbb__gggbbggg","color":""},{"name":"icon:upload","size":8,"bricks":"gggbbggg__bbbb___bbbbbb____bb______bb______bb______bb______bb___","color":""},{"name":"icon:coins","size":8,"bricks":"__bbbb___bbggbb_bbggggbbbggggggbbggggggbbbggggbb_bbggbb___bbbb__","color":""},{"name":"icon:reset","size":8,"bricks":"bb____bbbbb__bbb_bbbbbb___bbbb____bbbb___bbbbbb_bbb__bbbbb____bb","color":""},{"name":"icon:fountain_toss","size":12,"bricks":"_____________________y_________y______________y______y__y_____WWWWWWWW___WttttttttW_WtytttytyttWWtttyttttttWlWtyttttytWl_lWWWWWWWWl___llllllll__","color":""},{"name":"You are here","size":13,"bricks":"_____rrr_________rrrrr_______rrr_rrr______rr___rr______rr___rr_______rr_rr________rrrrr_________rrr__________rrr_________WWrWW_______WWWrWWW______WWWWWWW_______WWWWW____","color":""},{"name":"Gear","size":13,"bricks":"_________________l_l_l______l_lllll_l_____lllllll____lllll_lllll___lll___lll___lll_____lll___lll___lll___lllll_lllll____lllllll_____l_lllll_l______l_l_l_________________","color":""},{"name":"Play","size":15,"bricks":"_________________rrrrrrrrrrr___rrrrWWrrrrrrr__rrrrWWWrrrrrr__rrrrWWWWrrrrr__rrrrWWWWWrrrr__rrrrWWWWWWrrr__rrrrWWWWWrrrr__rrrrWWWWrrrrr__rrrrWWWrrrrrr__rrrrWWrrrrrrr___rrrrrrrrrrr_______________________________________________","color":""},{"name":"City","size":18,"bricks":"_______yyy___bbbbb________yyy__ybyyb________yyy__ybyyb__tt___yyy_b_ybbbb_tttt______bbbbbbbtttttt_______ybyybbbbbbb_______ybyybbyybyb_____b_ybbbbbyybyb_____bbbbbbbbbbbbb__bb___bbbbbbybyyb_bbbb__ybyybbybyybbbbbbb_ybyybbbbbbbtttttt_ybbbbbyybybtyyyyt_bbbbbbyybybtyyyyt_bbbbbbbbbbbtttttt_byybybybyybtytyyt_byybybybyybtttttt_byybb","color":""},{"name":"Wiggle","size":17,"bricks":"__________________cccccc_ccc_cccc__c____c_c_c_c__c__ccc_cc_c_ccc_cc____c_c__c_____c___ccc_cccc_ccc_cc__c________c_c__c__ccc_ccc_cc_cccc____c_c_c_c________ccc_c_c_ccccccc__c___c_________c__ccc_ccccccccccc____c______________ccc_ccc_ccc_ccc__c___c_c_c_c_c_c__ccccc_ccc_ccc_c__________________","color":""},{"name":"Graph","size":18,"bricks":"_______________________yy________________yyt__yytttt______tt_tttyy___t____yyt____t_____t____yy____tt_____t____t_____t______yy___t_____t______yy__tt_____yytttttt___tt___ttyy_____t___t____t__t_____t___yytttt__t_____t___yy______tt____t____t_______yy___t____ttt_____yyttyy______tyy___t___yy_______yytttt_________________________","color":""},{"name":"Lightbulb","size":14,"bricks":"_______________y__yyyyy___y____yyyyyyy______yyyyyyyyy_____yyyyyyyyy___y_yyyyyyyyy__y__yyyyyyyyy_____yyyyyyyyy_____yyyBBByyy___y__yyByByy___y____yByBy_________lllll______y___lll___y_______lll______","color":""},{"name":"Note","size":16,"bricks":"_____________WWW__________WWWWWW_______WWWWWW__W____WWWWWW_____W____WWW________W____W__________W____W__________W____W__________W____W__________W____W________WWW____W_______WWWW____W_______WWW___WWW____________WWWW____________WWW____________________________","color":""},{"name":"Rocket","size":13,"bricks":"______b___________bbb_________bbBbb________btttb________ttBtt________ttttt________ttBtt________ttttt________ttBtt_______bbtttbb_____bbbyyybbb____bbbyyybbb____bb_ByB_bb__","color":""},{"name":"Abstract","size":16,"bricks":"________________aaaaa_cccc_aaaaaaaaaa_cccc_aaaaa________________aaaa_cccc_aaaaaaaaaa_cccc_aaaaaa________________aaa_cccc_aaaaaaaaaa_cccc_aaaaaaa________________aa_cccc_aaaaaaaaaa_cccc_aaaaaaaa________________a_cccc_aaaaaaaaaa_cccc_aaaaaaaaa________________","color":""},{"name":"Fingerprint","size":15,"bricks":"___SSSSSSSS______S_______SS____S__SSSSS__SS__S__S____SS__S____S__SS__SS_S___S__S_SS__S__S_S__S___SS_SS__SS_S_____S___S__S_S__SS__S__SS_S_S_SS_S__S__S_S_S_S___S_S__S_S_S_S___S_S__S___S_S___S_S__S__S__S___S_S__S__S__S__S___S_S_","color":""},{"name":"Leaf","size":14,"bricks":"____________________________________________________________GGkGG________GGkGGkGG_____GGkGGkGGkkG_kkkkkkkkkkkGGG__GGkGGkGGkkG____GGkGGkGG_______GGkGG_______________________________________________","color":""},{"name":"Abstract 2","size":14,"bricks":"______________yyyy______yyyy______________bbb_bbbbbb_bbbbb___bbbb___bbb__y__bb__y__b______________bbb_bbbbbb_bbbbb___bbbb___bbb__y__bb__y__b______________bbb_bbbbbb_bbbbb___bbbb___bbb__y__bb__y__b","color":""},{"name":"Abstract 3","size":13,"bricks":"______________p_aaa_ppp_a__p___a_p___a__ppp_a_p_aaa_______________aaa_p_a_ppp__a___p_a___p__a_ppp_aaa_p_______________p_aaa_ppp_a__p___a_p___a__ppp_a_p_aaa______________","color":""},{"name":"Abstract 4","size":13,"bricks":"______________y_y_y_y_y_y__y_y_y_y_y_y__y_y_y_y_y_y_______________bbb_bbb_bbb_______________bbb_bbb_bbb_______________y_y_y_y_y_y__y_y_y_y_y_y__y_y_y_y_y_y______________","color":""},{"name":"Abstract 5","size":13,"bricks":"______________ccc_ccc_ccc__c_a_c_c_a_c__caa_aaa_aac_______________cca_aaa_acc__c_a_a_a_a_c__cca_aaa_acc_______________caa_aaa_aac__c_a_c_c_a_c__ccc_ccc_ccc______________","color":""},{"name":"Abstract 6","size":13,"bricks":"_vvvvv_vvvvv__v___v_v___v__v_bbbbbbb_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_v_v_b_v__v_b_vvv_b_v__v_b_____b_v__vvvvvvvvvvv_bbbb_____bbbb","color":""},{"name":"icon:new_run","size":7,"bricks":"_ggg____gbgg___gbbgg__gbbbg__gbbgg__gbgg___ggg___","color":""},{"name":"icon:settings","size":9,"bricks":"___g_g____g_ggg_g___ggbgg__gggbbbggg_gbb_bbg_gggbbbggg__ggbgg___g_ggg_g____g_g___","color":""},{"name":"icon:creative","size":7,"bricks":"bbg_bgg_______bbb_bgg_______bgg_bbg_______bbg_bbb","color":""},{"name":"icon:limitless","size":12,"bricks":"_________________________bbb____ttb_bbbbb__tttbbbb_bbbttt_bbbb__bbbt__bbbb_ttbbb__bbttttttbbbbbb_ttt___bbbb_____________________________________","color":""},{"name":"icon:history","size":8,"bricks":"__gggg___ggbggg_gggbgggggggbggggggggbbgggggggggg_gggggg___gggg__","color":""},{"name":"Hemiola","size":11,"bricks":"___gggg_____gggrrgg_____ggrrg_______gggg_____gggyygg_____ggyyg_______gggg_____gggCCgg_____ggCCg_______gggg________gg_____","color":"#240a8b","credit":"Left a wonderful review on the play store."},{"name":"Obigre","size":13,"bricks":"_______________________________________OOOORgRgRgOOOOWOORgRgRgOOOOOWORgRgRgOWOOWOORgRgRgOOWOOWORgRgRgOWOOWOORgRgRgOOOOOOORgRgRgOOO_______________________________________","color":"#62a0ea","credit":"Colin helped a lot with the game design https://colin-crapahute.bearblog.dev/"},{"name":"Noodlemire","size":15,"bricks":"_________________________________ggggggggg_____g_________g___g___________g_g_____________gg_____________gg_____yyy_____ggg__yyyyyyy__ggggtyyyyyyyyytggggtttttttttttgggg_ttttttttt_gg_____ttttt___________________________________","color":"#240a8b","credit":"Early adopter of the game"},{"name":"Bearded axe","size":12,"bricks":"______________WyyyOOy_____WyyyOOy_____Wyy_OO______Wyy_OO______Wyy_OO__________OO__________OO__________OO__________OO__________OO__________OO____","color":"","credit":"Did some nice bug reports"},{"name":"icon:minefield","size":7,"bricks":"yB___Byyy___yy__ByB____yyy__yB___Byyy___yy_______","color":""},{"name":"icon:side_flip","size":7,"bricks":"________rtttt__rtttt____________W__________WWW___","color":""},{"name":"icon:side_kick","size":7,"bricks":"________ttttr__ttttr__________W______________WWW_","color":""},{"name":"Lebanon","size":9,"bricks":"_________rrrrrrrrrWWWWkWWWWWWWkkkWWWWWkkkkkWWWWWWkWWWWrrrrrrrrr__________________","color":""},{"name":"Spain","size":9,"bricks":"_________rrrrrrrrryyyyyyyyyyWrWyyyyyyrWryyyyyyWrWyyyyyyyyyyyyyyrrrrrrrrr_________","color":""},{"name":"Uzbekistan","size":8,"bricks":"tWtttWttWtttWttttWtWtWttWWWWWWWWWWWWWWWWGGGGGGGGGGGGGGGGGGGGGGGG","color":""},{"name":"Pakistan","size":8,"bricks":"________WWkkkkkkWWkkWkWkWWkWkkkkWWkWkkWkWWkkWWkkWWkkkkkk________","color":""},{"name":"Korea","size":10,"bricks":"__________WWWWWWWWWWWgWWWWWWgWWgWrrrrWgWWWWrrbbWWWWWWrrbbWWWWgWbbbbWgWWgWWWWWWgWWWWWWWWWWW__________","color":"#62a0ea"},{"name":"icon:trickledown","size":8,"bricks":"_ytttttt_________y___y__tttttt____________y___y___tttttt_y______","color":""},{"name":"icon:transparency","size":9,"bricks":"__W_W_W___________W_y_y_y_W_________W_y_y_y_W_________W_y_y_y_W___________W_W_W__","color":""},{"name":"icon:superhot","size":11,"bricks":"____________________________________________W_W_WWW_WWWWWW_W_W__W_W_W_WWW__W_____________________________________________","color":""},{"name":"icon:bricks_attract_coins","size":7,"bricks":"_y__y___ttttt__ttttt__ttttt__ttttty_ttttt______y_","color":""},{"name":"icon:rainbow","size":6,"bricks":"__rOyC_rOyCa_rOyCarOyCatrOyCatrOyCat","color":""},{"name":"icon:hypnosis","size":8,"bricks":"__________WW______WWy______y_y______y_y______y________y_________","color":""},{"name":"icon:bricks_attract_ball","size":8,"bricks":"ttW_____tt_P________P________Ptt____P_tt___P____ttP_____tt_P____","color":""},{"name":"Chile","size":9,"bricks":"_________tttWWWWWWtWtWWWWWWtttWWWWWWrrrrrrrrrrrrrrrrrrrrrrrrrrr__________________","color":""},{"name":"T\xfcrkiye","size":12,"bricks":"____________rrrrrrrrrrrrrrrWWWrrrrrrrrWWrrrrrrrrrWWrrWrWrrrrrWWrrrWrrrrrrWWrrWrWrrrrrrWWrrrrrrrrrrrWWWrrrrrrrrrrrrrrrrrr________________________","color":""},{"name":"icon:editor","size":10,"bricks":"_______ggg______gggg_____ggggg____ggggg____ggggg____ggggg____ggggg____bgggg_____bbgg______bbb_______","color":""},{"color":"","size":11,"bricks":"_____e________WWWWW_____WWWWWWW____WWWWWWW____WWWWWWW__W__lllll__WWWeeeeeeeWWeeeeeWeeeeeeleeWWWeeleeeeWWWWWeeeeleWWlWWele","name":"Taj Mahal","credit":"An approximative reproduction "},{"color":"","size":9,"bricks":"__________SS_t_SS__S_____S____t_t____t_____t____t_t____S_____S__SS_t_SS__________","name":"Abstract 7","credit":""},{"color":"","size":8,"bricks":"PP_vv_PP_P__v__P________vv_PP_vvv__P__v_________PP_vv_PP_P__v__P","name":"Abstract 9","credit":""},{"color":"","size":9,"bricks":"____W_____WWWWWWW__WB_W_BW__W_____W_WWW_B_WWW_W_____W__WB_W_BW__WWWWWWW_____W____","name":"Crosshair","credit":""},{"color":"","size":15,"bricks":"bbbB_ttttt_BbbbbBbb_ttBtt_bbBbb____tt_tt____bbbbb_tt_tt_bbbb_______________ttttt_b_b_tttttt_____b_b_____tt_ttt_b_b_ttt_ttBtBt_bBb_tBtBtttt_t_bbb_t_ttt________________bb_ttttttt_bb__Bb_tB___Bt_bB__Bb_ttt_ttt_bB_bbb_________bbb","name":"Abstract 10","credit":""},{"color":"","size":6,"bricks":"SSSSSSSOOOOSSBOOBSSOOOOSSOOOOS_OSSO_","name":"Face","credit":""},{"color":"","size":11,"bricks":"_____O__________O__________O__________O_________OOO________OOO____k___O_O___kkk_OO_OO_kkkkkOOOOOkkkkkOOO_OOOkkkOOO___OOOk","name":"Eiffel tower","credit":""},{"color":"","size":9,"bricks":"P_t_s_t_PP_t___t_PP_ttttt_PP_______PPPPPPPPPPP_______PP_sssss_PP_s___s_PP_s_t_s_P","name":"Abstract 11","credit":""},{"color":"","size":8,"bricks":"BbBb____bbbb____BbBb____bbbb________tBtB____tttt____tBtB____tttt","name":"Abstract 12","credit":""},{"color":"","size":9,"bricks":"SSSSbSSSSSbbSbSbbSSbbS_SbbSSSSS_SSSSbb_____bbSSSS_SSSSSbbS_SbbSSbbSbSbbSSSSSbSSSS","name":"Abstract 13","credit":""},{"color":"","size":11,"bricks":"aa_tt_aa_ttaa_tt_aa_tt__B__B__B__bb_aa_bb_aabb_aa_bb_aa__B__B__B__aa_bb_tt_bbaa_bb_tt_bb__B__B__B__tt_aa_bb_aatt_aa_bb_aa","name":"Abstract 14","credit":""},{"color":"","size":10,"bricks":"___________Oyyyyyyy__Oyyyyyyy__Oyy__Oyy__Oyy_______Oyyyyyyy_______Oyy__Oyy__Oyy__Oyyyyyyy__Oyyyyyyy_","name":"S","credit":""},{"color":"","size":11,"bricks":"____________S_vvv_SSS__S___v___S__SSS_vvv_S__________S__S_vvv_SSS__S___v______SSS_vvv_S____S_____S__v_SSS_SSS____________","name":"Abstract 15","credit":"Just random strokes"},{"color":"","size":11,"bricks":"________________________RRRRR_____RRRRRRRRR__kkkOOkO___kOkOOOkOOO_kOkkOOOkOOOkkOOOOkkkk___OOOOOOO________________________","name":"Mario!","credit":"Suggested by Nicolas03. A Mario level ! Sprite taken from https://art.pixilart.com/sr2d5c0683c82aws3.png . The sprite belongs to Nintendo"},{"color":"","size":16,"bricks":"___llltCCttBC______lllCBBttCB______lttbBbtltt______ltBrBClttt______lttCCCttBt______llttCBtttt______ltCBCttlll______ltBCCtCtCt______lttCCBCBrB______llltBCCtrB______ttttttlltt______CBrttlllll______CBrBCttttl______ttCCBttBtl______tttCCCtCCt______tBttBtltBt___","name":"Minesweeper","credit":"Suggested by Noodlemire. For once, you\'ll want to trigger as many mines as possible."},{"color":"","size":19,"bricks":"__________________________________________________________________________________________________________________________WWW_______________WrrrW_____________WrWWWrW____________WrWBWrW____________WrWWWrW_____________WrrrW_______________WWW__________________________________________________________________________________________________________________________","name":"Target","credit":"Suggested by Noodlemire. Unusually small level, with lots of room to miss your shots. Acts as decent aim practice."},{"color":"","size":10,"bricks":"__________rrrrr_____WWrWWrrrrrWWrWWWWrWWWWrWWWWrWWrWrWWWWrWWWrWWWrWrWW_____WrWWW____________________","name":"The Boys","credit":"Suggested by Bearded-Axe. My boys initals"},{"color":"#115988","size":21,"bricks":"__________________________________________________yy_______________yy__yy__yy___________yy__yy__yy____________yy__yy_yy_________y__yy__yy_yy________yyy_yyy_yy_yy_________yy__yy_yyyyy__________yy_yyyyyyyy___yyy____yyyyygggyyy__yyy______yyygBBBgyy_yyy________ygBBBBBgyyyy__W______ygBBBBBgyyy__________yygBBBgyyyy___________yygBgyyyy____________yyyByyyy_____________yyyyByy_______________yyByy_________________r_________________________________","name":"A Very Dangerous High-Five","credit":"Suggested by Noodlemire. A unique shape, fun to bounce the ball between fingers. The palm was initially boring on its own, so I gave it a big bomb. It adds a distinct feeling between the top and bottom halves."},{"name":"icon:buoy","size":7,"bricks":"___y______y_____yyy__tyyyyytttOOOtttttOtttttttttt","svg":null,"color":""},{"name":"icon:ottawa_treaty","size":8,"bricks":"BBtWWtBBBttWWttBtWWtttWtttWWWWtttttWWtttttWWWtttBWWtWttBBBtttWBB","svg":null,"color":""},{"name":"icon:three_cushion","size":7,"bricks":"tttttttttttttt____r______r______r______r__B__WWW_","svg":null,"color":""},{"name":"icon:sticky_coins","size":8,"bricks":"__________yy_yy___tttty__ytttt___ytttt____tttty______yy_________","svg":null,"color":""},{"name":"icon:double_or_nothing","size":7,"bricks":"__yyy___yyyyy_yyyyggyyyygggyyyggggy_ygggy___yyy__","svg":null,"color":""},{"name":"icon:wrap_left","size":8,"bricks":"WWWWWWWWW_W____WW__v___WW___v__WW____v_WWp____pWW_v____W__WWW___","svg":null,"color":""},{"name":"icon:wrap_right","size":8,"bricks":"WWWWWWWWW___W__WW__v___WW_v____WWp____pWW____v_WW___v__W__WWW___","svg":null,"color":""},{"name":"icon:unlocked_upgrades","size":9,"bricks":"___ggg_____ggbgg___ggbbbgg_ggbbgbbgggbbbgbbbggggbgbggg__gbgbg____gbgbg____ggggg__","svg":null,"color":""},{"name":"icon:unlocked_levels","size":9,"bricks":"ggggggggggbbbgbbbggbgggggbggbgbgbgbgggggggggggbgbgbgbggbgggggbggbbbgbbbgggggggggg","svg":null,"color":""},{"name":"icon:happy_family","size":9,"bricks":"__tt_tt____tt_tt____tt_tt____________________W_______W__W_W_W___________rrrWWWrrr","svg":null,"color":""},{"color":"#115988","size":20,"bricks":"____________________________gggg______________ggrrrrgg___________grrrrrrrrg_________grrrrrrrrrrg_______grrrWWrrrrWWrg______grrWWWWrrWWWWg______grrWWbbrrWWbbg_____grrrWWbbrrWWbbrg____grrrrWWrrrrWWrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrgrrrggrrrgrrg____grg_grg__grg_grg_____g___g____g___g_______________________________________________________________","name":"Blinky","credit":"Suggested by Big Goober. The red ghost, Blinky, from the arcade game \\"Pac Man\\""}]');
},{}],"iyP6E":[function(require,module,exports,__globalThis) {
-module.exports = JSON.parse("\"29088680\"");
+module.exports = JSON.parse("\"29088937\"");
},{}],"1u3Dx":[function(require,module,exports,__globalThis) {
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
@@ -1731,15 +1731,13 @@ const rawUpgrades = [
},
{
requires: "",
- threshold: 0,
- id: "base_combo",
- gift: true,
- max: 7,
- name: (0, _i18N.t)("upgrades.base_combo.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.base_combo.tooltip", {
- coins: 1 + lvl * 3
- }),
- fullHelp: (0, _i18N.t)("upgrades.base_combo.verbose_description")
+ threshold: 60000,
+ gift: false,
+ id: "concave_puck",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.concave_puck.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.concave_puck.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.concave_puck.verbose_description")
},
{
requires: "",
@@ -1753,6 +1751,26 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.slow_down.verbose_description")
},
+ {
+ requires: "",
+ threshold: 500,
+ id: "telekinesis",
+ gift: true,
+ max: 1,
+ name: (0, _i18N.t)("upgrades.telekinesis.name"),
+ help: (lvl)=>lvl == 1 ? (0, _i18N.t)("upgrades.telekinesis.tooltip") : (0, _i18N.t)("upgrades.telekinesis.help_plural"),
+ fullHelp: (0, _i18N.t)("upgrades.telekinesis.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 85000,
+ gift: false,
+ id: "yoyo",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.yoyo.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.yoyo.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.yoyo.verbose_description")
+ },
{
requires: "",
threshold: 0,
@@ -1763,16 +1781,6 @@ const rawUpgrades = [
help: ()=>(0, _i18N.t)("upgrades.bigger_puck.tooltip"),
fullHelp: (0, _i18N.t)("upgrades.bigger_puck.verbose_description")
},
- {
- requires: "",
- threshold: 0,
- gift: false,
- id: "viscosity",
- max: 3,
- name: (0, _i18N.t)("upgrades.viscosity.name"),
- help: ()=>(0, _i18N.t)("upgrades.viscosity.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.viscosity.verbose_description")
- },
{
requires: "",
threshold: 50,
@@ -1835,59 +1843,16 @@ const rawUpgrades = [
},
{
requires: "",
- threshold: 500,
- id: "telekinesis",
+ threshold: 4000,
+ id: "hot_start",
gift: true,
- max: 1,
- name: (0, _i18N.t)("upgrades.telekinesis.name"),
- help: (lvl)=>lvl == 1 ? (0, _i18N.t)("upgrades.telekinesis.tooltip") : (0, _i18N.t)("upgrades.telekinesis.help_plural"),
- fullHelp: (0, _i18N.t)("upgrades.telekinesis.verbose_description")
- },
- {
- requires: "",
- threshold: 700,
- gift: false,
- id: "coin_magnet",
max: 3,
- name: (0, _i18N.t)("upgrades.coin_magnet.name"),
- help: (lvl)=>lvl == 1 ? (0, _i18N.t)("upgrades.coin_magnet.tooltip") : (0, _i18N.t)("upgrades.coin_magnet.help_plural"),
- fullHelp: (0, _i18N.t)("upgrades.coin_magnet.verbose_description")
- },
- {
- requires: "",
- threshold: 800,
- id: "multiball",
- gift: true,
- max: 6,
- name: (0, _i18N.t)("upgrades.multiball.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.multiball.tooltip", {
- count: lvl + 1
+ name: (0, _i18N.t)("upgrades.hot_start.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.hot_start.tooltip", {
+ start: lvl * 30 + 1,
+ loss: lvl
}),
- fullHelp: (0, _i18N.t)("upgrades.multiball.verbose_description")
- },
- {
- requires: "",
- threshold: 1000,
- gift: false,
- id: "smaller_puck",
- max: 2,
- name: (0, _i18N.t)("upgrades.smaller_puck.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.smaller_puck.tooltip", {
- percent: 50 * lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.smaller_puck.verbose_description")
- },
- {
- requires: "",
- threshold: 1500,
- id: "pierce",
- gift: false,
- max: 3,
- name: (0, _i18N.t)("upgrades.pierce.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.pierce.tooltip", {
- count: 3 * lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.pierce.verbose_description")
+ fullHelp: (0, _i18N.t)("upgrades.hot_start.verbose_description")
},
{
requires: "",
@@ -1901,18 +1866,6 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.picky_eater.verbose_description")
},
- {
- requires: "",
- threshold: 2500,
- gift: false,
- id: "metamorphosis",
- max: 1,
- name: (0, _i18N.t)("upgrades.metamorphosis.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.metamorphosis.tooltip", {
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.metamorphosis.verbose_description")
- },
{
requires: "",
threshold: 3000,
@@ -1927,52 +1880,127 @@ const rawUpgrades = [
},
{
requires: "",
- threshold: 4000,
- id: "hot_start",
+ threshold: 150000,
gift: true,
+ id: "side_kick",
max: 3,
- name: (0, _i18N.t)("upgrades.hot_start.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.hot_start.tooltip", {
- start: lvl * 30 + 1,
- loss: lvl
+ name: (0, _i18N.t)("upgrades.side_kick.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.side_kick.tooltip", {
+ lvl,
+ loss: lvl * 2
}),
- fullHelp: (0, _i18N.t)("upgrades.hot_start.verbose_description")
+ fullHelp: (0, _i18N.t)("upgrades.side_kick.verbose_description")
},
{
requires: "",
- threshold: 6000,
- id: "sapper",
+ threshold: 135000,
+ // a bit too hard when starting up
gift: false,
- max: 7,
- name: (0, _i18N.t)("upgrades.sapper.name"),
- help: (lvl)=>lvl == 1 ? (0, _i18N.t)("upgrades.sapper.tooltip") : (0, _i18N.t)("upgrades.sapper.help_plural", {
+ id: "reach",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.reach.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.reach.tooltip", {
lvl
}),
- fullHelp: (0, _i18N.t)("upgrades.sapper.verbose_description")
+ fullHelp: (0, _i18N.t)("upgrades.reach.verbose_description")
},
{
- requires: "",
- threshold: 9000,
- id: "bigger_explosions",
+ requires: "multiball",
+ threshold: 245000,
gift: false,
+ id: "happy_family",
max: 1,
- name: (0, _i18N.t)("upgrades.bigger_explosions.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.bigger_explosions.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.bigger_explosions.verbose_description")
+ name: (0, _i18N.t)("upgrades.happy_family.name"),
+ help: ()=>(0, _i18N.t)("upgrades.happy_family.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.happy_family.verbose_description")
},
{
requires: "",
- threshold: 13000,
- gift: false,
- adventure: false,
- id: "extra_levels",
+ threshold: 150000,
+ gift: true,
+ id: "side_flip",
max: 3,
- name: (0, _i18N.t)("upgrades.extra_levels.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.extra_levels.tooltip", {
- count: lvl + 7
+ name: (0, _i18N.t)("upgrades.side_flip.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.side_flip.tooltip", {
+ lvl,
+ loss: lvl * 2
}),
- fullHelp: (0, _i18N.t)("upgrades.extra_levels.verbose_description")
+ fullHelp: (0, _i18N.t)("upgrades.side_flip.verbose_description")
},
+ {
+ requires: "",
+ threshold: 165000,
+ gift: false,
+ id: "addiction",
+ max: 7,
+ name: (0, _i18N.t)("upgrades.addiction.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.addiction.tooltip", {
+ lvl,
+ delay: (5 / lvl).toFixed(2)
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.addiction.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 90000,
+ gift: true,
+ id: "nbricks",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.nbricks.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.nbricks.tooltip", {
+ lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.nbricks.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 230000,
+ gift: false,
+ id: "three_cushion",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.three_cushion.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.three_cushion.tooltip", {
+ max: lvl * 3
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.three_cushion.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 115000,
+ gift: true,
+ id: "trampoline",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.trampoline.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.trampoline.tooltip", {
+ lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.trampoline.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 105000,
+ gift: true,
+ id: "zen",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.zen.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.zen.tooltip", {
+ lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.zen.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 70000,
+ gift: true,
+ id: "asceticism",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.asceticism.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.asceticism.tooltip", {
+ combo: lvl * 3
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.asceticism.verbose_description")
+ },
+ // Regular
{
requires: "",
threshold: 15000,
@@ -1985,18 +2013,6 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.pierce_color.verbose_description")
},
- {
- requires: "",
- threshold: 18000,
- gift: false,
- id: "soft_reset",
- max: 3,
- name: (0, _i18N.t)("upgrades.soft_reset.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.soft_reset.tooltip", {
- percent: Math.round((0, _pureFunctions.comboKeepingRate)(lvl) * 100)
- }),
- fullHelp: (0, _i18N.t)("upgrades.soft_reset.verbose_description")
- },
{
requires: "multiball",
threshold: 21000,
@@ -2039,19 +2055,45 @@ const rawUpgrades = [
},
{
requires: "",
- threshold: 40000,
+ threshold: 65000,
gift: false,
- id: "sturdy_bricks",
- max: 4,
- name: (0, _i18N.t)("upgrades.sturdy_bricks.name"),
- help: (lvl)=>// lvl == 1
- (0, _i18N.t)("upgrades.sturdy_bricks.tooltip", {
- lvl,
- percent: lvl * 50
+ id: "helium",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.helium.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.helium.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.helium.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 200000,
+ gift: false,
+ id: "bricks_attract_coins",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.bricks_attract_coins.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.bricks_attract_coins.tooltip", {
+ lvl
}),
- // ?
- // : t("upgrades.sturdy_bricks.help_plural"),
- fullHelp: (0, _i18N.t)("upgrades.sturdy_bricks.verbose_description")
+ fullHelp: (0, _i18N.t)("upgrades.bricks_attract_coins.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 240000,
+ gift: false,
+ id: "wrap_left",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.wrap_left.name"),
+ help: ()=>(0, _i18N.t)("upgrades.wrap_left.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.wrap_left.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 245000,
+ gift: false,
+ id: "wrap_right",
+ max: 1,
+ name: (0, _i18N.t)("upgrades.wrap_right.name"),
+ help: ()=>(0, _i18N.t)("upgrades.wrap_right.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.wrap_right.verbose_description")
},
{
requires: "",
@@ -2091,38 +2133,6 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.double_or_nothing.verbose_description")
},
- {
- requires: "",
- threshold: 60000,
- gift: false,
- id: "concave_puck",
- max: 1,
- name: (0, _i18N.t)("upgrades.concave_puck.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.concave_puck.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.concave_puck.verbose_description")
- },
- {
- requires: "",
- threshold: 65000,
- gift: false,
- id: "helium",
- max: 3,
- name: (0, _i18N.t)("upgrades.helium.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.helium.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.helium.verbose_description")
- },
- {
- requires: "",
- threshold: 70000,
- gift: true,
- id: "asceticism",
- max: 1,
- name: (0, _i18N.t)("upgrades.asceticism.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.asceticism.tooltip", {
- combo: lvl * 3
- }),
- fullHelp: (0, _i18N.t)("upgrades.asceticism.verbose_description")
- },
{
requires: "",
threshold: 75000,
@@ -2135,40 +2145,6 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.unbounded.verbose_description")
},
- {
- requires: "",
- threshold: 80000,
- gift: false,
- id: "shunt",
- max: 3,
- name: (0, _i18N.t)("upgrades.shunt.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.shunt.tooltip", {
- percent: Math.round((0, _pureFunctions.comboKeepingRate)(lvl) * 100)
- }),
- fullHelp: (0, _i18N.t)("upgrades.shunt.verbose_description")
- },
- {
- requires: "",
- threshold: 85000,
- gift: false,
- id: "yoyo",
- max: 1,
- name: (0, _i18N.t)("upgrades.yoyo.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.yoyo.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.yoyo.verbose_description")
- },
- {
- requires: "",
- threshold: 90000,
- gift: true,
- id: "nbricks",
- max: 3,
- name: (0, _i18N.t)("upgrades.nbricks.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.nbricks.tooltip", {
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.nbricks.verbose_description")
- },
{
requires: "",
threshold: 95000,
@@ -2189,18 +2165,6 @@ const rawUpgrades = [
help: (lvl)=>(0, _i18N.t)("upgrades.shocks.tooltip"),
fullHelp: (0, _i18N.t)("upgrades.shocks.verbose_description")
},
- {
- requires: "",
- threshold: 105000,
- gift: true,
- id: "zen",
- max: 1,
- name: (0, _i18N.t)("upgrades.zen.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.zen.tooltip", {
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.zen.verbose_description")
- },
{
requires: "extra_life",
threshold: 110000,
@@ -2213,18 +2177,6 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.sacrifice.verbose_description")
},
- {
- requires: "",
- threshold: 115000,
- gift: true,
- id: "trampoline",
- max: 1,
- name: (0, _i18N.t)("upgrades.trampoline.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.trampoline.tooltip", {
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.trampoline.verbose_description")
- },
{
requires: "",
threshold: 120000,
@@ -2257,32 +2209,6 @@ const rawUpgrades = [
help: (lvl)=>(0, _i18N.t)("upgrades.ball_attracts_coins.tooltip"),
fullHelp: (0, _i18N.t)("upgrades.ball_attracts_coins.verbose_description")
},
- {
- requires: "",
- threshold: 135000,
- // a bit too hard when starting up
- gift: false,
- id: "reach",
- max: 1,
- name: (0, _i18N.t)("upgrades.reach.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.reach.tooltip", {
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.reach.verbose_description")
- },
- {
- requires: "",
- threshold: 140000,
- gift: true,
- id: "passive_income",
- max: 4,
- name: (0, _i18N.t)("upgrades.passive_income.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.passive_income.tooltip", {
- time: lvl * 0.25,
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.passive_income.verbose_description")
- },
{
requires: "",
threshold: 145000,
@@ -2293,32 +2219,6 @@ const rawUpgrades = [
help: (lvl)=>(0, _i18N.t)("upgrades.clairvoyant.tooltip"),
fullHelp: (0, _i18N.t)("upgrades.clairvoyant.verbose_description")
},
- {
- requires: "",
- threshold: 150000,
- gift: true,
- id: "side_kick",
- max: 3,
- name: (0, _i18N.t)("upgrades.side_kick.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.side_kick.tooltip", {
- lvl,
- loss: lvl * 2
- }),
- fullHelp: (0, _i18N.t)("upgrades.side_kick.verbose_description")
- },
- {
- requires: "",
- threshold: 150000,
- gift: true,
- id: "side_flip",
- max: 3,
- name: (0, _i18N.t)("upgrades.side_flip.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.side_flip.tooltip", {
- lvl,
- loss: lvl * 2
- }),
- fullHelp: (0, _i18N.t)("upgrades.side_flip.verbose_description")
- },
{
requires: "",
threshold: 155000,
@@ -2339,29 +2239,6 @@ const rawUpgrades = [
help: (lvl)=>(0, _i18N.t)("upgrades.corner_shot.tooltip"),
fullHelp: (0, _i18N.t)("upgrades.corner_shot.verbose_description")
},
- {
- requires: "",
- threshold: 165000,
- gift: false,
- id: "addiction",
- max: 7,
- name: (0, _i18N.t)("upgrades.addiction.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.addiction.tooltip", {
- lvl,
- delay: (5 / lvl).toFixed(2)
- }),
- fullHelp: (0, _i18N.t)("upgrades.addiction.verbose_description")
- },
- {
- requires: "",
- threshold: 170000,
- gift: false,
- id: "fountain_toss",
- max: 7,
- name: (0, _i18N.t)("upgrades.fountain_toss.name"),
- help: ()=>(0, _i18N.t)("upgrades.fountain_toss.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.fountain_toss.verbose_description")
- },
{
requires: "",
threshold: 175000,
@@ -2374,18 +2251,6 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.limitless.verbose_description")
},
- {
- requires: "",
- threshold: 180000,
- gift: false,
- id: "minefield",
- max: 3,
- name: (0, _i18N.t)("upgrades.minefield.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.minefield.tooltip", {
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.minefield.verbose_description")
- },
{
requires: "",
threshold: 185000,
@@ -2423,18 +2288,6 @@ const rawUpgrades = [
}),
fullHelp: (0, _i18N.t)("upgrades.superhot.verbose_description")
},
- {
- requires: "",
- threshold: 200000,
- gift: false,
- id: "bricks_attract_coins",
- max: 3,
- name: (0, _i18N.t)("upgrades.bricks_attract_coins.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.bricks_attract_coins.tooltip", {
- lvl
- }),
- fullHelp: (0, _i18N.t)("upgrades.bricks_attract_coins.verbose_description")
- },
{
requires: "",
threshold: 205000,
@@ -2493,18 +2346,6 @@ const rawUpgrades = [
help: ()=>(0, _i18N.t)("upgrades.ottawa_treaty.tooltip"),
fullHelp: (0, _i18N.t)("upgrades.ottawa_treaty.verbose_description")
},
- {
- requires: "",
- threshold: 230000,
- gift: false,
- id: "three_cushion",
- max: 1,
- name: (0, _i18N.t)("upgrades.three_cushion.name"),
- help: (lvl)=>(0, _i18N.t)("upgrades.three_cushion.tooltip", {
- max: lvl * 3
- }),
- fullHelp: (0, _i18N.t)("upgrades.three_cushion.verbose_description")
- },
{
requires: "",
threshold: 235000,
@@ -2517,33 +2358,191 @@ const rawUpgrades = [
},
{
requires: "",
- threshold: 240000,
- gift: false,
- id: "wrap_left",
- max: 1,
- name: (0, _i18N.t)("upgrades.wrap_left.name"),
- help: ()=>(0, _i18N.t)("upgrades.wrap_left.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.wrap_left.verbose_description")
+ threshold: 0,
+ id: "base_combo",
+ gift: true,
+ max: 7,
+ name: (0, _i18N.t)("upgrades.base_combo.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.base_combo.tooltip", {
+ coins: 1 + lvl * 3
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.base_combo.verbose_description")
},
{
requires: "",
- threshold: 245000,
+ threshold: 0,
gift: false,
- id: "wrap_right",
- max: 1,
- name: (0, _i18N.t)("upgrades.wrap_right.name"),
- help: ()=>(0, _i18N.t)("upgrades.wrap_right.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.wrap_right.verbose_description")
+ id: "viscosity",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.viscosity.name"),
+ help: ()=>(0, _i18N.t)("upgrades.viscosity.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.viscosity.verbose_description")
},
{
- requires: "multiball",
- threshold: 245000,
+ requires: "",
+ threshold: 700,
gift: false,
- id: "happy_family",
+ id: "coin_magnet",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.coin_magnet.name"),
+ help: (lvl)=>lvl == 1 ? (0, _i18N.t)("upgrades.coin_magnet.tooltip") : (0, _i18N.t)("upgrades.coin_magnet.help_plural"),
+ fullHelp: (0, _i18N.t)("upgrades.coin_magnet.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 800,
+ id: "multiball",
+ gift: true,
+ max: 6,
+ name: (0, _i18N.t)("upgrades.multiball.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.multiball.tooltip", {
+ count: lvl + 1
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.multiball.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 1000,
+ gift: false,
+ id: "smaller_puck",
+ max: 2,
+ name: (0, _i18N.t)("upgrades.smaller_puck.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.smaller_puck.tooltip", {
+ percent: 50 * lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.smaller_puck.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 1500,
+ id: "pierce",
+ gift: false,
+ max: 3,
+ name: (0, _i18N.t)("upgrades.pierce.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.pierce.tooltip", {
+ count: 3 * lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.pierce.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 2500,
+ gift: false,
+ id: "metamorphosis",
max: 1,
- name: (0, _i18N.t)("upgrades.happy_family.name"),
- help: ()=>(0, _i18N.t)("upgrades.happy_family.tooltip"),
- fullHelp: (0, _i18N.t)("upgrades.happy_family.verbose_description")
+ name: (0, _i18N.t)("upgrades.metamorphosis.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.metamorphosis.tooltip", {
+ lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.metamorphosis.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 6000,
+ id: "sapper",
+ gift: false,
+ max: 7,
+ name: (0, _i18N.t)("upgrades.sapper.name"),
+ help: (lvl)=>lvl == 1 ? (0, _i18N.t)("upgrades.sapper.tooltip") : (0, _i18N.t)("upgrades.sapper.help_plural", {
+ lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.sapper.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 9000,
+ id: "bigger_explosions",
+ gift: false,
+ max: 1,
+ name: (0, _i18N.t)("upgrades.bigger_explosions.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.bigger_explosions.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.bigger_explosions.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 13000,
+ gift: false,
+ adventure: false,
+ id: "extra_levels",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.extra_levels.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.extra_levels.tooltip", {
+ count: lvl + 7
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.extra_levels.verbose_description")
+ },
+ // Combo boosters
+ {
+ requires: "",
+ threshold: 170000,
+ gift: false,
+ id: "fountain_toss",
+ max: 7,
+ name: (0, _i18N.t)("upgrades.fountain_toss.name"),
+ help: ()=>(0, _i18N.t)("upgrades.fountain_toss.tooltip"),
+ fullHelp: (0, _i18N.t)("upgrades.fountain_toss.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 180000,
+ gift: false,
+ id: "minefield",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.minefield.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.minefield.tooltip", {
+ lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.minefield.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 18000,
+ gift: false,
+ id: "soft_reset",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.soft_reset.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.soft_reset.tooltip", {
+ percent: Math.round((0, _pureFunctions.comboKeepingRate)(lvl) * 100)
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.soft_reset.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 80000,
+ gift: false,
+ id: "shunt",
+ max: 3,
+ name: (0, _i18N.t)("upgrades.shunt.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.shunt.tooltip", {
+ percent: Math.round((0, _pureFunctions.comboKeepingRate)(lvl) * 100)
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.shunt.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 140000,
+ gift: true,
+ id: "passive_income",
+ max: 4,
+ name: (0, _i18N.t)("upgrades.passive_income.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.passive_income.tooltip", {
+ time: lvl * 0.25,
+ lvl
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.passive_income.verbose_description")
+ },
+ {
+ requires: "",
+ threshold: 40000,
+ gift: false,
+ id: "sturdy_bricks",
+ max: 4,
+ name: (0, _i18N.t)("upgrades.sturdy_bricks.name"),
+ help: (lvl)=>(0, _i18N.t)("upgrades.sturdy_bricks.tooltip", {
+ lvl,
+ percent: lvl * 50
+ }),
+ fullHelp: (0, _i18N.t)("upgrades.sturdy_bricks.verbose_description")
}
];
@@ -3757,7 +3756,7 @@ function pickRandomUpgrades(gameState, count) {
icon: (0, _loadGameData.icons)["icon:" + u.id],
value: u.id,
help: u.help(gameState.perks[u.id] + 1),
- className: 'upgrade '
+ className: "upgrade "
}));
}
function schedulGameSound(gameState, sound, x, vol) {
@@ -4894,7 +4893,7 @@ function drawStraightLine(ctx, gameState, mode, x1, y1, x2, y2, alpha = 1) {
x2 = Math.round(x2);
y2 = Math.round(y2);
if (mode == "#FF0000") {
- ctx.strokeStyle = 'red';
+ ctx.strokeStyle = "red";
ctx.lineDashOffset = getDashOffset(gameState);
ctx.lineWidth = 2;
ctx.setLineDash(redBorderDash);
@@ -5901,7 +5900,7 @@ async function openCreativeModePerksPicker() {
text: u.name,
help: (creativeModePerks[u.id] || 0) + "/" + (u.max + (creativeModePerks.limitless || 0)),
value: u,
- className: ' upgrade ' + (creativeModePerks[u.id] ? " highlight" : " not-highlighed"),
+ className: " upgrade " + (creativeModePerks[u.id] ? " highlight" : " not-highlighed"),
tooltip: u.help(creativeModePerks[u.id] || 1)
})),
(0, _i18N.t)("lab.select_level"),
diff --git a/src/PWA/sw-b71.js b/src/PWA/sw-b71.js
index f8e64e5..b9f1dc2 100644
--- a/src/PWA/sw-b71.js
+++ b/src/PWA/sw-b71.js
@@ -1,5 +1,5 @@
// The version of the cache.
-const VERSION = "29088680";
+const VERSION = "29088937";
// The name of the cache
const CACHE_NAME = `breakout-71-${VERSION}`;
diff --git a/src/creative.ts b/src/creative.ts
index 2404eec..0afa5c6 100644
--- a/src/creative.ts
+++ b/src/creative.ts
@@ -100,9 +100,9 @@ export async function openCreativeModePerksPicker() {
"/" +
(u.max + (creativeModePerks.limitless || 0)),
value: u,
- className: ' upgrade '+(creativeModePerks[u.id]
- ? " highlight"
- : " not-highlighed"),
+ className:
+ " upgrade " +
+ (creativeModePerks[u.id] ? " highlight" : " not-highlighed"),
tooltip: u.help(creativeModePerks[u.id] || 1),
})),
t("lab.select_level"),
diff --git a/src/data/levels.json b/src/data/levels.json
index ccf690e..0891874 100644
--- a/src/data/levels.json
+++ b/src/data/levels.json
@@ -436,7 +436,7 @@
{
"name": "icon:smaller_puck",
"size": 8,
- "bricks": "_________tttttt__tttttt_____________W_____________________WW____"
+ "bricks": "_________yyyyyy__yyyyyy_____________W_____________________WW____"
},
{
"name": "icon:pierce",
@@ -446,7 +446,7 @@
{
"name": "icon:picky_eater",
"size": 8,
- "bricks": "_rrr_______ry_____ryy_____r_y______yyy______________y_____WWWW__"
+ "bricks": "_rrr_______rt_____rtt_____r_t______ttt_______W____________WWWW__"
},
{
"name": "icon:metamorphosis",
@@ -456,12 +456,12 @@
{
"name": "icon:compound_interest",
"size": 8,
- "bricks": "_________tttttt__ttt__t______y_____________W__y_________rrWWWrrr"
+ "bricks": "_________tttttt__ttt__t_____W________________r___________WWW__r_"
},
{
"name": "icon:hot_start",
"size": 7,
- "bricks": "_______rry_rrryyr_ryryry_ryryyr_ryrrry_rrr_______"
+ "bricks": "tt__ttt__t_trt_t__tttt_____ttttWttt________WWW___"
},
{
"name": "icon:sapper",
@@ -472,7 +472,7 @@
{
"name": "icon:bigger_explosions",
"size": 8,
- "bricks": "__O_______Oy_OO___OyOy__OyyyWBOO_OOWyyy__ByOyOO__yOOyBOO_OO_____"
+ "bricks": "__O__Oy___Oyy_____OyOy__OyyyByOO_OOBBBy___yyByO__yOOy_OO_OO_____"
},
{
"name": "icon:extra_levels",
@@ -537,12 +537,12 @@
{
"name": "icon:sturdy_bricks",
"size": 7,
- "bricks": "ttbttttbtttbtt____W_____W_W___W___W_______WWW____"
+ "bricks": "yyyyyyyyyyyyyy____W_____W_W___W___W_______WWW____"
},
{
"name": "icon:respawn",
"size": 9,
- "bricks": "tttt___ttttt__t__ttta_ttt_______________________________W_________________WWW"
+ "bricks": "tttt___ttttt__t__tttt_ttt_t_____________________________W_________________WWW____"
},
{
"name": "Elephant",
@@ -723,13 +723,13 @@
{
"name": "icon:helium",
"size": 8,
- "bricks": "_y____y_yP____PyPP___yPPP____P_P_____P____y_y______y______WWW___",
+ "bricks": "_y____y_yP____PyPP___yPPP____P_P_____P____________________WWW___",
"color": ""
},
{
"name": "icon:asceticism",
"size": 8,
- "bricks": "_yyyyyy__yy__yy_____W_______r_________r____r_________r__WWW___r_",
+ "bricks": "_tttttt__tt__tt_____W_______r______________r_________r_____WWW__",
"color": ""
},
{
@@ -741,7 +741,7 @@
{
"name": "icon:shunt",
"size": 8,
- "bricks": "_______y______yy______yy__yyyyyy__y__yyy_yy__yyy_yy__yyyyyy__yyy",
+ "bricks": "_______y______yy______yy__yttyyy__y__yyy_yy__yyy_yy__yyyyyy__yyy",
"color": ""
},
{
@@ -752,14 +752,14 @@
},
{
"name": "icon:nbricks",
- "size": 6,
- "bricks": "yy__rryyy_yyyyyyyyyyyyyyyy_yyyrr__yy",
+ "size": 7,
+ "bricks": "________tttrt__ttr_r____________W__________WWW___",
"color": ""
},
{
"name": "icon:etherealcoins",
"size": 11,
- "bricks": "_____y_________yyy________WWW________WWW_______yWWWy_____yyWWWyy____yyWWWyy____yyWWWyy____y_WyW_y_______W________________",
+ "bricks": "_____y_________yyy________ttt________ttt_______yttty_____yytttyy____yytttyy____yytttyy____y__y__y________________________",
"color": ""
},
{
@@ -771,25 +771,25 @@
{
"name": "icon:zen",
"size": 12,
- "bricks": "________________bbbb_______bbbbbb_______bbbb________BrrB_______tttttt_____tttttttt_____tttttt______BrrrrB_____bbbbbbbb___bbbbbbbbbb___bbbbbbbb__",
+ "bricks": "________________WWWW_______WWWWWW_______WWWW________BrrB_______tttttt_____tttttttt_____tttttt______BrrrrB_____WWWWWWWW___WWWWWWWWWW___WWWWWWWW__",
"color": ""
},
{
"name": "icon:sacrifice",
"size": 9,
- "bricks": "__t___t___ttt_ttt_ttWWWWWttttWbWbWttttWWbWWtt_ttWWWtt___tWtWt_____ttt_______t____",
+ "bricks": "__t___t___ttt_ttt_ttWWWWWttttWtWtWttttWWtWWtt_ttWWWtt___tWtWt_____ttt_______t____",
"color": ""
},
{
"name": "icon:trampoline",
"size": 8,
- "bricks": "rrrrrrrrrttttttrrttttttrr______rr___W__rr______rr______r__yyy___",
+ "bricks": "_r_r_r_rrtttttt__ttttttrr___________W__rr______________r__WWW___",
"color": ""
},
{
"name": "icon:ghost_coins",
"size": 7,
- "bricks": "__yyy___yyyyy_yyOyOyyyyyyyyyyyOOOyyyyyyyyyyy_y_yy",
+ "bricks": "__yyy___yyyyy_yy_y_yyyyyyyyyyy___yyyyyyyyyyy_y_yy",
"color": ""
},
{
@@ -812,8 +812,8 @@
},
{
"name": "icon:passive_income",
- "size": 7,
- "bricks": "_ttttt__ttt_t______W____y____________y_____rgggr_",
+ "size": 8,
+ "bricks": "_ttttt___ttt_t______yW_____________y______________ggg_______y___",
"color": ""
},
{
@@ -849,7 +849,7 @@
{
"name": "icon:addiction",
"size": 9,
- "bricks": "__________________________l__WWWWW_lWWWrrllllr_WWWWW_lr_______l__________________",
+ "bricks": "__________________________t__WWWWW_tWWWrrttttr_WWWWW_tr_______t__________________",
"color": ""
},
{
@@ -931,7 +931,7 @@
{
"name": "icon:fountain_toss",
"size": 12,
- "bricks": "WWWWW_______WWWWW____y_________y______________y______y__y_____WWWWWWWW___WttttttttW_WtytttytyttWWtttyttttttWlWtyttttytWl_lWWWWWWWWl___llllllll__",
+ "bricks": "_____________________y_________y______________y______y__y_____WWWWWWWW___WttttttttW_WtytttytyttWWtttyttttttWlWtyttttytWl_lWWWWWWWWl___llllllll__",
"color": ""
},
{
@@ -1097,19 +1097,19 @@
{
"name": "icon:minefield",
"size": 7,
- "bricks": "W__B__WWWBBBWWB__W__BBBWWWBBW__B__WWWBBBWW_______",
+ "bricks": "yB___Byyy___yy__ByB____yyy__yB___Byyy___yy_______",
"color": ""
},
{
"name": "icon:side_flip",
"size": 7,
- "bricks": "________ttttt__rttty__rttty__rttty__ttttt________",
+ "bricks": "________rtttt__rtttt____________W__________WWW___",
"color": ""
},
{
"name": "icon:side_kick",
"size": 7,
- "bricks": "________ttttt__ytttr__ytttr__ytttr__ttttt________",
+ "bricks": "________ttttr__ttttr__________W______________WWW_",
"color": ""
},
{
@@ -1145,13 +1145,13 @@
{
"name": "icon:trickledown",
"size": 8,
- "bricks": "_ytttttt_________y_y_y__tttttt____________y_y_y___tttttt_y______",
+ "bricks": "_ytttttt_________y___y__tttttt____________y___y___tttttt_y______",
"color": ""
},
{
"name": "icon:transparency",
"size": 9,
- "bricks": "__W_W_W___________W_W_W_W_W_________W_W_W_W_W_________W_W_W_W_W___________W_W_W__",
+ "bricks": "__W_W_W___________W_y_y_y_W_________W_y_y_y_W_________W_y_y_y_W___________W_W_W__",
"color": ""
},
{
@@ -1163,7 +1163,7 @@
{
"name": "icon:bricks_attract_coins",
"size": 7,
- "bricks": "_y__y___tttttyyttttt__ttttt_yttttty_ttttt___y__y_",
+ "bricks": "_y__y___ttttt__ttttt__ttttt__ttttty_ttttt______y_",
"color": ""
},
{
@@ -1175,13 +1175,13 @@
{
"name": "icon:hypnosis",
"size": 8,
- "bricks": "___WW______WW_______ay_____c__a______c______y_______a_c____c_y_a",
+ "bricks": "__________WW______WWy______y_y______y_y______y________y_________",
"color": ""
},
{
"name": "icon:bricks_attract_ball",
"size": 8,
- "bricks": "llW_____ll_P________P________Pll____P_ll___P____llP_____ll_P____",
+ "bricks": "ttW_____tt_P________P________Ptt____P_tt___P____ttP_____tt_P____",
"color": ""
},
{
@@ -1331,7 +1331,7 @@
{
"name": "icon:buoy",
"size": 7,
- "bricks": "___b______b_____bbb__abbbbbaaatttaaaaataaaaaaaaaa",
+ "bricks": "___y______y_____yyy__tyyyyytttOOOtttttOtttttttttt",
"svg": null,
"color": ""
},
@@ -1344,8 +1344,8 @@
},
{
"name": "icon:three_cushion",
- "size": 8,
- "bricks": "BkkkkkkBk___W__kk__W_W_kk_W___WkkW___y_kk_W____kk__W___kBkkkkkkB",
+ "size": 7,
+ "bricks": "tttttttttttttt____r______r______r______r__B__WWW_",
"svg": null,
"color": ""
},
@@ -1359,7 +1359,7 @@
{
"name": "icon:double_or_nothing",
"size": 7,
- "bricks": "__yyy___yrrry_yOOOrOyyOOrOOyyOOOOOy_yOrOy___yyy__",
+ "bricks": "__yyy___yyyyy_yyyyggyyyygggyyyggggy_ygggy___yyy__",
"svg": null,
"color": ""
},
@@ -1394,8 +1394,15 @@
{
"name": "icon:happy_family",
"size": 9,
- "bricks": "___________tt_tt____tt_tt____tt_tt__W_tt_tt_W__________W_____W____W_W____________",
+ "bricks": "__tt_tt____tt_tt____tt_tt____________________W_______W__W_W_W___________rrrWWWrrr",
"svg": null,
"color": ""
+ },
+ {
+ "color": "#115988",
+ "size": 20,
+ "bricks": "____________________________gggg______________ggrrrrgg___________grrrrrrrrg_________grrrrrrrrrrg_______grrrWWrrrrWWrg______grrWWWWrrWWWWg______grrWWbbrrWWbbg_____grrrWWbbrrWWbbrg____grrrrWWrrrrWWrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrgrrrggrrrgrrg____grg_grg__grg_grg_____g___g____g___g_______________________________________________________________",
+ "name": "Blinky",
+ "credit": "Suggested by Big Goober. The red ghost, Blinky, from the arcade game \"Pac Man\""
}
-]
\ No newline at end of file
+]
diff --git a/src/data/version.json b/src/data/version.json
index 96cd7de..783f29c 100644
--- a/src/data/version.json
+++ b/src/data/version.json
@@ -1 +1 @@
-"29088680"
+"29088937"
diff --git a/src/game.ts b/src/game.ts
index d25034b..80cc91c 100644
--- a/src/game.ts
+++ b/src/game.ts
@@ -297,11 +297,8 @@ export async function openUpgradesPicker(gameState: GameState) {
icon: string;
value: PerkId | "reroll";
help: string;
- className:string;
- }> = pickRandomUpgrades(
- gameState,
- 3 + gameState.perks.one_more_choice ,
- );
+ className: string;
+ }> = pickRandomUpgrades(gameState, 3 + gameState.perks.one_more_choice);
if (!actions.length) break;
if (gameState.rerolls)
diff --git a/src/gameStateMutators.ts b/src/gameStateMutators.ts
index 332890c..b48b84f 100644
--- a/src/gameStateMutators.ts
+++ b/src/gameStateMutators.ts
@@ -607,8 +607,7 @@ export function pickRandomUpgrades(gameState: GameState, count: number) {
icon: icons["icon:" + u.id],
value: u.id as PerkId,
help: u.help(gameState.perks[u.id] + 1),
- className: 'upgrade '
-
+ className: "upgrade ",
}));
}
@@ -1183,7 +1182,10 @@ export function gameStateTick(
Math.abs(coin.x - gameState.puckPosition) * 2 >
gameState.puckWidth + coin.size;
let dvy =
- frames * coin.weight * 0.8 * (flip ? 1-gameState.perks.helium*0.6 : 1);
+ frames *
+ coin.weight *
+ 0.8 *
+ (flip ? 1 - gameState.perks.helium * 0.6 : 1);
if (gameState.perks.etherealcoins) {
if (gameState.perks.helium) {
diff --git a/src/levelEditor.ts b/src/levelEditor.ts
index 55acd9e..e4d620f 100644
--- a/src/levelEditor.ts
+++ b/src/levelEditor.ts
@@ -1,270 +1,274 @@
-import {icons, transformRawLevel} from "./loadGameData";
-import {t} from "./i18n/i18n";
-import {getSettingValue, getTotalScore, setSettingValue} from "./settings";
-import {asyncAlert} from "./asyncAlert";
-import {Palette, RawLevel} from "./types";
-import {levelIconHTML} from "./levelIcon";
+import { icons, transformRawLevel } from "./loadGameData";
+import { t } from "./i18n/i18n";
+import { getSettingValue, getTotalScore, setSettingValue } from "./settings";
+import { asyncAlert } from "./asyncAlert";
+import { Palette, RawLevel } from "./types";
+import { levelIconHTML } from "./levelIcon";
import _palette from "./data/palette.json";
-import {restart} from "./game";
-import {describeLevel} from "./game_utils";
-import {automaticBackgroundColor, levelCodeToRawLevel, MAX_LEVEL_SIZE, MIN_LEVEL_SIZE} from "./pure_functions";
+import { restart } from "./game";
+import { describeLevel } from "./game_utils";
+import {
+ automaticBackgroundColor,
+ levelCodeToRawLevel,
+ MAX_LEVEL_SIZE,
+ MIN_LEVEL_SIZE,
+} from "./pure_functions";
const palette = _palette as Palette;
export function levelEditorMenuEntry() {
- const min = 10000;
- const disabled = getTotalScore() < min;
- return {
- icon: icons["icon:editor"],
- text: t("editor.title"),
- disabled,
- help: disabled ? t("editor.locked", {min}) : t("editor.help"),
- async value() {
- openLevelEditorLevelsList().then();
- },
- };
+ const min = 10000;
+ const disabled = getTotalScore() < min;
+ return {
+ icon: icons["icon:editor"],
+ text: t("editor.title"),
+ disabled,
+ help: disabled ? t("editor.locked", { min }) : t("editor.help"),
+ async value() {
+ openLevelEditorLevelsList().then();
+ },
+ };
}
async function openLevelEditorLevelsList() {
- const rawList = getSettingValue("custom_levels", []) as RawLevel[];
- const customLevels = rawList.map(transformRawLevel);
+ const rawList = getSettingValue("custom_levels", []) as RawLevel[];
+ const customLevels = rawList.map(transformRawLevel);
- let choice = await asyncAlert({
- title: t("editor.title"),
- content: [
- ...customLevels.map((l, li) => ({
- text: l.name,
- icon: levelIconHTML(l.bricks, l.size, l.color),
- value() {
- editRawLevelList(li);
- },
- help: l.credit || describeLevel(l),
- })),
- {
- text: t("editor.new_level"),
- icon: icons["icon:editor"],
- value() {
- rawList.push({
- color: "",
- size: 6,
- bricks: "____________________________________",
- name: "custom level" + (rawList.length + 1),
- credit: "",
- });
- setSettingValue("custom_levels", rawList);
- editRawLevelList(rawList.length - 1);
- },
- },
- {
- text: t("editor.import"),
- help: t("editor.import_instruction"),
- value() {
- const code = prompt(t("editor.import_instruction"))?.trim();
- if (code) {
- const lvl = levelCodeToRawLevel(code)
- if (lvl) {
- rawList.push(lvl);
- setSettingValue("custom_levels", rawList);
- }
- }
- openLevelEditorLevelsList();
- },
- },
- ],
- });
- if (typeof choice == "function") choice();
+ let choice = await asyncAlert({
+ title: t("editor.title"),
+ content: [
+ ...customLevels.map((l, li) => ({
+ text: l.name,
+ icon: levelIconHTML(l.bricks, l.size, l.color),
+ value() {
+ editRawLevelList(li);
+ },
+ help: l.credit || describeLevel(l),
+ })),
+ {
+ text: t("editor.new_level"),
+ icon: icons["icon:editor"],
+ value() {
+ rawList.push({
+ color: "",
+ size: 6,
+ bricks: "____________________________________",
+ name: "custom level" + (rawList.length + 1),
+ credit: "",
+ });
+ setSettingValue("custom_levels", rawList);
+ editRawLevelList(rawList.length - 1);
+ },
+ },
+ {
+ text: t("editor.import"),
+ help: t("editor.import_instruction"),
+ value() {
+ const code = prompt(t("editor.import_instruction"))?.trim();
+ if (code) {
+ const lvl = levelCodeToRawLevel(code);
+ if (lvl) {
+ rawList.push(lvl);
+ setSettingValue("custom_levels", rawList);
+ }
+ }
+ openLevelEditorLevelsList();
+ },
+ },
+ ],
+ });
+ if (typeof choice == "function") choice();
}
export async function editRawLevelList(nth: number, color = "W") {
- let rawList = getSettingValue("custom_levels", []) as RawLevel[];
- const level = rawList[nth];
- const bricks = level.bricks.split("");
- let grid = "";
- for (let y = 0; y < level.size; y++) {
- grid += '';
+ let rawList = getSettingValue("custom_levels", []) as RawLevel[];
+ const level = rawList[nth];
+ const bricks = level.bricks.split("");
+ let grid = "";
+ for (let y = 0; y < level.size; y++) {
+ grid += '
';
+ for (let x = 0; x < level.size; x++) {
+ const c = bricks[y * level.size + x];
+ grid += `${c == "B" ? "💣" : ""}`;
+ }
+ grid += "
";
+ }
+
+ const levelColors = new Set(bricks);
+ levelColors.delete("_");
+ levelColors.delete("B");
+
+ let colorList =
+ '
' +
+ Object.entries(palette)
+ .filter(([key, value]) => key !== "_")
+ .filter(
+ ([key, value]) =>
+ levelColors.size < 5 || levelColors.has(key) || key === "B",
+ )
+ .map(
+ ([key, value]) =>
+ `${key == "B" ? "💣" : ""}`,
+ )
+ .join("") +
+ "
";
+
+ const clicked = await asyncAlert
({
+ title: t("editor.editing.title", { name: level.name }),
+ content: [
+ t("editor.editing.color"),
+ colorList,
+ t("editor.editing.help"),
+ `${grid}
`,
+
+ {
+ icon: icons["icon:new_run"],
+ text: t("editor.editing.play"),
+ value: "play",
+ },
+ {
+ text: t("editor.editing.rename"),
+ value: "rename",
+ help: level.name,
+ },
+ {
+ text: t("editor.editing.credit"),
+ value: "credit",
+ help: level.credit,
+ },
+ {
+ text: t("editor.editing.delete"),
+ value: "delete",
+ },
+ {
+ text: t("editor.editing.copy"),
+ value: "copy",
+ help: t("editor.editing.copy_help"),
+ },
+ {
+ text: t("editor.editing.bigger"),
+ value: "size:+1",
+ disabled: level.size >= MAX_LEVEL_SIZE,
+ },
+ {
+ text: t("editor.editing.smaller"),
+ value: "size:-1",
+ disabled: level.size <= MIN_LEVEL_SIZE,
+ },
+ {
+ text: t("editor.editing.left"),
+ value: "move:-1:0",
+ },
+ {
+ text: t("editor.editing.right"),
+ value: "move:1:0",
+ },
+ {
+ text: t("editor.editing.up"),
+ value: "move:0:-1",
+ },
+ {
+ text: t("editor.editing.down"),
+ value: "move:0:1",
+ },
+ ],
+ });
+ if (!clicked) return;
+ if (typeof clicked === "string") {
+ const [action, a, b] = clicked.split(":");
+ if (action == "paint_brick") {
+ const x = parseInt(a),
+ y = parseInt(b);
+ bricks[y * level.size + x] =
+ bricks[y * level.size + x] === color ? "_" : color;
+ level.bricks = bricks.join("");
+ }
+ if (action == "set_color") {
+ color = a;
+ }
+ if (action == "size") {
+ const newSize = level.size + parseInt(a);
+ const newBricks = [];
+ for (let y = 0; y < newSize; y++) {
+ for (let x = 0; x < newSize; x++) {
+ newBricks.push(
+ (x < level.size && y < level.size && bricks[y * level.size + x]) ||
+ "_",
+ );
+ }
+ }
+ level.size = newSize;
+ level.bricks = newBricks.join("");
+ }
+ if (action == "move") {
+ const dx = parseInt(a),
+ dy = parseInt(b);
+ const newBricks = [];
+ for (let y = 0; y < level.size; y++) {
for (let x = 0; x < level.size; x++) {
- const c = bricks[y * level.size + x];
- grid += `${c == "B" ? "💣" : ""}`;
+ const tx = x - dx;
+ const ty = y - dy;
+ if (tx < 0 || tx >= level.size || ty < 0 || ty >= level.size) {
+ newBricks.push("_");
+ } else {
+ newBricks.push(bricks[ty * level.size + tx]);
+ }
}
- grid += " ";
+ }
+ level.bricks = newBricks.join("");
}
-
- const levelColors = new Set(bricks);
- levelColors.delete("_");
- levelColors.delete("B");
-
- let colorList =
- '' +
- Object.entries(palette)
- .filter(([key, value]) => key !== "_")
- .filter(
- ([key, value]) =>
- levelColors.size < 5 || levelColors.has(key) || key === "B",
- )
- .map(
- ([key, value]) =>
- `${key == "B" ? "💣" : ""}`,
- )
- .join("") +
- "
";
-
- const clicked = await asyncAlert({
- title: t("editor.editing.title", {name: level.name}),
- content: [
- t("editor.editing.color"),
- colorList,
- t("editor.editing.help"),
- `${grid}
`,
-
- {
- icon: icons["icon:new_run"],
- text: t("editor.editing.play"),
- value: "play",
- },
- {
- text: t("editor.editing.rename"),
- value: "rename",
- help: level.name,
- },
- {
- text: t("editor.editing.credit"),
- value: "credit",
- help: level.credit,
- },
- {
- text: t("editor.editing.delete"),
- value: "delete",
- },
- {
- text: t("editor.editing.copy"),
- value: "copy",
- help: t("editor.editing.copy_help"),
- },
- {
- text: t("editor.editing.bigger"),
- value: "size:+1",
- disabled: level.size >= MAX_LEVEL_SIZE,
- },
- {
- text: t("editor.editing.smaller"),
- value: "size:-1",
- disabled: level.size <= MIN_LEVEL_SIZE,
- },
- {
- text: t("editor.editing.left"),
- value: "move:-1:0",
- },
- {
- text: t("editor.editing.right"),
- value: "move:1:0",
- },
- {
- text: t("editor.editing.up"),
- value: "move:0:-1",
- },
- {
- text: t("editor.editing.down"),
- value: "move:0:1",
- },
- ],
- });
- if (!clicked) return;
- if (typeof clicked === "string") {
- const [action, a, b] = clicked.split(":");
- if (action == "paint_brick") {
- const x = parseInt(a),
- y = parseInt(b);
- bricks[y * level.size + x] =
- bricks[y * level.size + x] === color ? "_" : color;
- level.bricks = bricks.join("");
- }
- if (action == "set_color") {
- color = a;
- }
- if (action == "size") {
- const newSize = level.size + parseInt(a);
- const newBricks = [];
- for (let y = 0; y < newSize; y++) {
- for (let x = 0; x < newSize; x++) {
- newBricks.push(
- (x < level.size && y < level.size && bricks[y * level.size + x]) ||
- "_",
- );
- }
- }
- level.size = newSize;
- level.bricks = newBricks.join("");
- }
- if (action == "move") {
- const dx = parseInt(a),
- dy = parseInt(b);
- const newBricks = [];
- for (let y = 0; y < level.size; y++) {
- for (let x = 0; x < level.size; x++) {
- const tx = x - dx;
- const ty = y - dy;
- if (tx < 0 || tx >= level.size || ty < 0 || ty >= level.size) {
- newBricks.push("_");
- } else {
- newBricks.push(bricks[ty * level.size + tx]);
- }
- }
- }
- level.bricks = newBricks.join("");
- }
- if (action === "play") {
- restart({
- level: transformRawLevel(level),
- isEditorTrialRun: nth,
- perks: {
- base_combo: 7,
- },
- });
- return;
- }
- if (action === "copy") {
- let text =
- "```\n[" +
- (level.name || "unnamed level")?.replace(/\[|\]/gi, " ") +
- "]";
- bricks.forEach((b, bi) => {
- if (!(bi % level.size)) text += "\n";
- text += b;
- });
- text +=
- "\n[" +
- (level.credit?.replace(/\[|\]/gi, " ") || "Missing credits") +
- "]\n```";
- navigator.clipboard.writeText(text);
- // return
- }
- if (action === "rename") {
- const name = prompt(t("editor.editing.rename_prompt"), level.name);
- if (name) {
- level.name = name;
- }
- }
- if (action === "credit") {
- const credit = prompt(
- t("editor.editing.credit_prompt"),
- level.credit || "",
- );
- if (credit !== "null") {
- level.credit = credit || "";
- }
- }
- if (action === "delete") {
- rawList = rawList.filter((l, li) => li !== nth);
- setSettingValue("custom_levels", rawList);
- openLevelEditorLevelsList();
- return;
- }
+ if (action === "play") {
+ restart({
+ level: transformRawLevel(level),
+ isEditorTrialRun: nth,
+ perks: {
+ base_combo: 7,
+ },
+ });
+ return;
}
+ if (action === "copy") {
+ let text =
+ "```\n[" +
+ (level.name || "unnamed level")?.replace(/\[|\]/gi, " ") +
+ "]";
+ bricks.forEach((b, bi) => {
+ if (!(bi % level.size)) text += "\n";
+ text += b;
+ });
+ text +=
+ "\n[" +
+ (level.credit?.replace(/\[|\]/gi, " ") || "Missing credits") +
+ "]\n```";
+ navigator.clipboard.writeText(text);
+ // return
+ }
+ if (action === "rename") {
+ const name = prompt(t("editor.editing.rename_prompt"), level.name);
+ if (name) {
+ level.name = name;
+ }
+ }
+ if (action === "credit") {
+ const credit = prompt(
+ t("editor.editing.credit_prompt"),
+ level.credit || "",
+ );
+ if (credit !== "null") {
+ level.credit = credit || "";
+ }
+ }
+ if (action === "delete") {
+ rawList = rawList.filter((l, li) => li !== nth);
+ setSettingValue("custom_levels", rawList);
+ openLevelEditorLevelsList();
+ return;
+ }
+ }
- level.color = automaticBackgroundColor(bricks);
+ level.color = automaticBackgroundColor(bricks);
- setSettingValue("custom_levels", rawList);
- editRawLevelList(nth, color);
+ setSettingValue("custom_levels", rawList);
+ editRawLevelList(nth, color);
}
-
diff --git a/src/level_editor/levels_editor.tsx b/src/level_editor/levels_editor.tsx
index 002c3d4..e2903d8 100644
--- a/src/level_editor/levels_editor.tsx
+++ b/src/level_editor/levels_editor.tsx
@@ -6,7 +6,10 @@ import { getLevelBackground, hashCode } from "../getLevelBackground";
import { createRoot } from "react-dom/client";
import { useCallback, useEffect, useState } from "react";
import { moveLevel, resizeLevel, setBrick } from "./levels_editor_util";
-import {levelCodeToRawLevel} from "../pure_functions";
+import {
+ automaticBackgroundColor,
+ levelCodeToRawLevel,
+} from "../pure_functions";
const backgrounds = _backgrounds as string[];
@@ -91,12 +94,13 @@ function App() {
height: 40,
position: "absolute",
}}
- >{ (color=="black" && '💣')||' '},
+ >
+ {(palette[bricks[index]] == "black" && "💣") || " "}
+ ,
);
}
}
-
return (
{brickButtons}
@@ -163,7 +168,9 @@ function App() {
border: "1px solid black",
}}
onClick={() => setSelected(code)}
- >{(color=='' && 'x') || (color=="black" && '💣')||' '}
+ >
+ {(color == "" && "x") || (color == "black" && "💣") || " "}
+
))}