@@ -856,6 +856,200 @@ <h2>You Win!</h2>
856856 'RRRRRRRRR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : 'normal' )
857857 ] ,
858858 ballSpeed : 1.6
859+ } ,
860+ // LEVEL 11: "Fortress"
861+ {
862+ rows : 8 ,
863+ cols : 12 ,
864+ bricks : [
865+ 'SUUUUUUUUUUS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'U' ? 'ultra' : 'normal' ) ,
866+ 'SIIIIIIIIIS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'I' ? 'indestructible' : 'normal' ) ,
867+ 'SINNNNNNNNIS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : 'normal' ) ,
868+ 'SINRRRRRRNIS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : 'normal' ) ,
869+ 'SINRRRRRRNIS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : 'normal' ) ,
870+ 'SINNNNNNNNIS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : 'normal' ) ,
871+ 'SIIIIIIIIIS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'I' ? 'indestructible' : 'normal' ) ,
872+ 'SUUUUUUUUUUS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'U' ? 'ultra' : 'normal' )
873+ ] ,
874+ ballSpeed : 1.7
875+ } ,
876+
877+ // LEVEL 12: "Checkerboard"
878+ {
879+ rows : 8 ,
880+ cols : 12 ,
881+ bricks : [
882+ 'SESESESESESE' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
883+ 'ESESESESESES' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
884+ 'SESESESESESE' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
885+ 'ESESESESESES' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
886+ 'SESESESESESE' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
887+ 'ESESESESESES' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
888+ 'SESESESESESE' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
889+ 'ESESESESESES' . split ( '' ) . map ( b => b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' )
890+ ] ,
891+ ballSpeed : 1.75
892+ } ,
893+
894+ // LEVEL 13: "The Path"
895+ {
896+ rows : 10 ,
897+ cols : 12 ,
898+ bricks : [
899+ 'IIIIIIIIIIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : 'normal' ) ,
900+ 'INNNNNNNNNNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : 'normal' ) ,
901+ 'INIIIIIIIIUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'U' ? 'ultra' : 'normal' ) ,
902+ 'INSSSSSSSRUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : 'normal' ) ,
903+ 'INIIIIIIIRUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : 'normal' ) ,
904+ 'INEREEEEEENI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : b === 'N' ? 'normal' : 'normal' ) ,
905+ 'INIIIIIIIIUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'U' ? 'ultra' : 'normal' ) ,
906+ 'INUUUUUUUUUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'U' ? 'ultra' : 'normal' ) ,
907+ 'INNNNNNNNNNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : 'normal' ) ,
908+ 'IIIIIIIIIIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : 'normal' )
909+ ] ,
910+ ballSpeed : 1.8
911+ } ,
912+
913+ // LEVEL 14: "Double Rainbow"
914+ {
915+ rows : 9 ,
916+ cols : 13 ,
917+ bricks : [
918+ 'NNNRRRRRRRNNN' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : 'normal' ) ,
919+ 'NRRRRRRRRRRRN' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : 'normal' ) ,
920+ 'RRRRRRRRRRRRR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : 'normal' ) ,
921+ 'SSSSSSSSSSSSS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : 'normal' ) ,
922+ 'UUUUUUUUUUUUU' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : 'normal' ) ,
923+ 'SSSSSSSSSSSSS' . split ( '' ) . map ( b => b === 'S' ? 'strong' : 'normal' ) ,
924+ 'RRRRRRRRRRRRR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : 'normal' ) ,
925+ 'NRRRRRRRRRRRN' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : 'normal' ) ,
926+ 'NNNRRRRRRRNNN' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : 'normal' )
927+ ] ,
928+ ballSpeed : 1.85
929+ } ,
930+
931+ // LEVEL 15: "Bomb Field"
932+ {
933+ rows : 10 ,
934+ cols : 14 ,
935+ bricks : [
936+ 'UUUUUUUUUUUUUU' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : 'normal' ) ,
937+ 'UEEUEEUEEUEEUS' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : 'normal' ) ,
938+ 'UEUUEUUEUUEUES' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : 'normal' ) ,
939+ 'UEEUEEUEEUEEUU' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : 'normal' ) ,
940+ 'UEUUEUUEUUEUSU' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : 'normal' ) ,
941+ 'UEUUEUUEUUEUSU' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : 'normal' ) ,
942+ 'UEEUEEUEEUEEUU' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : 'normal' ) ,
943+ 'UEUUEUUEUUEUES' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : 'normal' ) ,
944+ 'UEEUEEUEEUEEUS' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : 'normal' ) ,
945+ 'UUUUUUUUUUUUUU' . split ( '' ) . map ( b => b === 'U' ? 'ultra' : 'normal' )
946+ ] ,
947+ ballSpeed : 1.9
948+ } ,
949+
950+ // LEVEL 16: "The Grid"
951+ {
952+ rows : 10 ,
953+ cols : 14 ,
954+ bricks : [
955+ 'IRIRIRIRIRIR' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'R' ? 'rainbow' : 'normal' ) ,
956+ 'RNSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
957+ 'INSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
958+ 'RNSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
959+ 'INSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
960+ 'RNSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
961+ 'INSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
962+ 'RNSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'R' ? 'rainbow' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
963+ 'INSNSNSNSNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'S' ? 'strong' : 'normal' ) ,
964+ 'IRIRIRIRIRI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'R' ? 'rainbow' : 'normal' )
965+ ] ,
966+ ballSpeed : 1.95
967+ } ,
968+
969+ // LEVEL 17: "Target Practice"
970+ {
971+ rows : 11 ,
972+ cols : 11 ,
973+ bricks : [
974+ 'NNNNNNNNNNN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : 'normal' ) ,
975+ 'NRRRRRRRRRRN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : 'normal' ) ,
976+ 'NRSSSSSSSRN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'S' ? 'strong' : 'normal' ) ,
977+ 'NRSUUUUUSRN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'S' ? 'strong' : b === 'U' ? 'ultra' : 'normal' ) ,
978+ 'NRSUIEISURN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'S' ? 'strong' : b === 'U' ? 'ultra' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
979+ 'NRSUIRISURN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'S' ? 'strong' : b === 'U' ? 'ultra' : b === 'I' ? 'indestructible' : 'normal' ) ,
980+ 'NRSUIEISURN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'S' ? 'strong' : b === 'U' ? 'ultra' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
981+ 'NRSUUUUUSRN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'S' ? 'strong' : b === 'U' ? 'ultra' : 'normal' ) ,
982+ 'NRSSSSSSSRN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : b === 'S' ? 'strong' : 'normal' ) ,
983+ 'NRRRRRRRRN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : b === 'R' ? 'rainbow' : 'normal' ) ,
984+ 'NNNNNNNNNNN' . split ( '' ) . map ( b => b === 'N' ? 'normal' : 'normal' )
985+ ] ,
986+ ballSpeed : 2.0
987+ } ,
988+
989+ // LEVEL 18: "The Gauntlet"
990+ {
991+ rows : 12 ,
992+ cols : 15 ,
993+ bricks : [
994+ 'IIISSSSSSSSSIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : 'normal' ) ,
995+ 'IIISEEEEEEESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
996+ 'IIISEUUUUUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
997+ 'IIISEUIIUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
998+ 'IIISEUIIUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
999+ 'IIISEUIIUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
1000+ 'IIISEUIIUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
1001+ 'IIISEUIIUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
1002+ 'IIISEUIIUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
1003+ 'IIISEUUUUUESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
1004+ 'IIISEEEEEEESIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : b === 'E' ? 'explosive' : 'normal' ) ,
1005+ 'IIISSSSSSSSSIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'S' ? 'strong' : 'normal' )
1006+ ] ,
1007+ ballSpeed : 2.1
1008+ } ,
1009+
1010+ // LEVEL 19: "The Maze"
1011+ {
1012+ rows : 12 ,
1013+ cols : 14 ,
1014+ bricks : [
1015+ 'IIIIIIIIIIIIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : 'normal' ) ,
1016+ 'INNNNNNNNNNNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : 'normal' ) ,
1017+ 'INIIIIIIIIINI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : 'normal' ) ,
1018+ 'INIEEEEEEENNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'E' ? 'explosive' : 'normal' ) ,
1019+ 'INIENNNNNNNNI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'E' ? 'explosive' : 'normal' ) ,
1020+ 'INIENIIIIIIUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'E' ? 'explosive' : b === 'U' ? 'ultra' : 'normal' ) ,
1021+ 'INIENISSSSSUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : b === 'U' ? 'ultra' : 'normal' ) ,
1022+ 'INIENISRRRSUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : 'normal' ) ,
1023+ 'INIENISRNRSUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : 'normal' ) ,
1024+ 'INIENISRRRSUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'E' ? 'explosive' : b === 'S' ? 'strong' : b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : 'normal' ) ,
1025+ 'INIUUUUUUUUUI' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : b === 'N' ? 'normal' : b === 'U' ? 'ultra' : 'normal' ) ,
1026+ 'IIIIIIIIIIIIII' . split ( '' ) . map ( b => b === 'I' ? 'indestructible' : 'normal' )
1027+ ] ,
1028+ ballSpeed : 2.2
1029+ } ,
1030+
1031+ // LEVEL 20: "Final Challenge" (for now)
1032+ {
1033+ rows : 15 ,
1034+ cols : 15 ,
1035+ bricks : [
1036+ 'RRRRRRRRRRRRRRR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : 'normal' ) ,
1037+ 'RUUUUUUUUUUUUUR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : 'normal' ) ,
1038+ 'RUSSSSSSSSSSSUR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : 'normal' ) ,
1039+ 'RUSNNNNNNNNNUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : 'normal' ) ,
1040+ 'RUSNIIIIIINUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : 'normal' ) ,
1041+ 'RUSNIEEEEENUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
1042+ 'RUSNIERRREIUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
1043+ 'RUSNIERSREIUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
1044+ 'RUSNIERSREIUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
1045+ 'RUSNIERRREIUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
1046+ 'RUSNIEEEEEIUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : b === 'E' ? 'explosive' : 'normal' ) ,
1047+ 'RUSNIIIIIIIUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : b === 'N' ? 'normal' : b === 'I' ? 'indestructible' : 'normal' ) ,
1048+ 'RUSSSSSSSSSSUSR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : b === 'S' ? 'strong' : 'normal' ) ,
1049+ 'RUUUUUUUUUUUUUR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : b === 'U' ? 'ultra' : 'normal' ) ,
1050+ 'RRRRRRRRRRRRRRR' . split ( '' ) . map ( b => b === 'R' ? 'rainbow' : 'normal' )
1051+ ] ,
1052+ ballSpeed : 2.3
8591053 }
8601054 ] ;
8611055
0 commit comments