Автор: Революционный Матрос Железняк
// CONSTANTS F=#631616 M=#DF3232 R=#1159BC f=#327CE1 splash=" fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff. fRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRf. fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff. .................................................................................................................................................................................................................................................................. ....................................................................................................DF............................................................................................................................................................ ....................................................................................................FM............................................................................................................................................................ ....................................................................................................IMD........................................................................................................................................................... .fffffffffffffff...fffffffffffffff...fffffffffffffff...fffffffffffffff...fffffffffffffff............MMF............fffffffffffffff...fff.........fff...fffffffffffffff...fffffffffffffff...fffffffffffffff...fffffffffffffff...fffffffffffffff...fffffffffffffff.. .fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...........FMMM............fRRRRRRRRRRRRRf...fRf.........fRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf.. .fRYffffffffffff...fRYfffffffffYRf...fRYfffffffffYRf...fRYffffffffffff...fRYffffffffffff...........IMMMD...........fRYffffffffffff...fRf.........fRf...fRYfffffffffYRf...fRYfffffffffYRf...ffffffYRYffffff...fRYffffffffffff...fRYfffffffffYRf...fffffffffYRYfff.. .fRf...............fRf.........fRf...fRf.........fRf...fRf...............fRf.......................MMMMF...........fRf...............fRf.........fRf...fRf.........fRf...fRf.........fRf.........fRf.........fRf...............fRf.........fRf............fRf..... .fRf...............fRf.........fRf...fRf.........fRf...fRf...............fRf...............FMMMMMMMMMMMMMMMMMMI....fRf...............fRf.........fRf...fRf.........fRf...fRf.........fRf.........fRf.........fRf...............fRf.........fRf............fRf..... .fRf...............fRf.........fRf...fRf.........fRf...fRf...............fRf................DIMMMMMMMMMMMMMMMF.....fRf...............fRf.........fRf...fRf.........fRf...fRf.........fRf.........fRf.........fRf...............fRf.........fRf............fff..... .fRYffffffffffff...fRYfffffffffYRf...fRYfffffffffYRf...fRf...............fRYffffff............FMMMMMMMMMMMMID......fRYffffffffffff...fRYfffffffffYRf...fRf.........fRf...fRf.........fRf.........fRf.........fRYffffff.........fRYfffffffffYRf.........fff........ .fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRf...............fRRRRRRRf.............DMMMMMMMMMMFD.......fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf...fRf.........fRf...fRf.........fRf.........fRf.........fRRRRRRRf.........fRRRRRRRRRRRRRf.........fRf........ .ffffffffffffYRf...fRYffffffffffff...fRYfffffffffYRf...fRf...............fRYffffff...............MMMMMMMMF.........ffffffffffffYRf...fRYfffffffffYRf...fRf.........fRf...fRf.........fRf.........fRf.........fRYffffff.........fRYffffffYRYfff.........fff........ .............fRf...fRf...............fRf.........fRf...fRf...............fRf.....................MMMMMMMMF.....................fRf...fRf.........fRf...fRf.........fRf...fRf.........fRf.........fRf.........fRf...............fRf......fRf.........fff........... .............fRf...fRf...............fRf.........fRf...fRf...............fRf....................FMMMMMMMMI.....................fRf...fRf.........fRf...fRf.........fRf...fRf.........fRf.........fRf.........fRf...............fRf......fRf.........fRf........... .............fRf...fRf...............fRf.........fRf...fRf...............fRf....................IMMMIIMMMMD....................fRf...fRf.........fRf...fRf.........fRf...fRf.........fRf.........fRf.........fRf...............fRf......fff.........fRf........... .ffffffffffffYRf...fRf...............fRf.........fRf...fRYffffffffffff...fRYffffffffffff........MMMID.FMMMF........ffffffffffffYRf...fRf.........fRf...fRYfffffffffYRf...fRYfffffffffYRf.........fRf.........fRYffffffffffff...fRf.........fff...fffYRYfffffffff.. .fRRRRRRRRRRRRRf...fRf...............fRf.........fRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf.......DMMF.....IMI........fRRRRRRRRRRRRRf...fRf.........fRf...fRRRRRRRRRRRRRf...fRRRRRRRRRRRRRf.........fRf.........fRRRRRRRRRRRRRf...fRf.........fRf...fRRRRRRRRRRRRRf.. .fffffffffffffff...fff...............fff.........fff...fffffffffffffff...fffffffffffffff.......IID.......FMD.......fffffffffffffff...fff.........fff...fffffffffffffff...fffffffffffffff.........fff.........fffffffffffffff...fff.........fff...fffffffffffffff.. ...............................................................................................F..........DF...................................................................................................................................................... .................................................................................................................................................................................................................................................................. .................................................................................................................................................................................................................................................................. .................................................................................................................................................................................................................................................................. fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff. fRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRf. fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff. " make_pixi(splash) i = #FEFEFE a = #FF0000 o = #FF5C00 O = #F7772B D = #7973C2 d = #25177A stars_total = 200 enemy_in_line = 10 enemy_total = 10 * 3 gameovertime = 0 lvlcomplete = 0 star = " ..d.. .dDd. dDDDd .dDd. ..d.. + ..d.. ..d.. ddDdd ..d.. ..d.. + ..... ..d.. .dDd. ..d.. ..... + ..... ..... ..D.. ..... ..... + ..... ..... ..d.. ..... ..... + ..... ..... ..D.. ..... ..... + ..... ..d.. .dDd. ..d.. ..... + ..d.. ..d.. ddDdd ..d.. ..d.. " enemy=" .iiiii. ii.i.ii iiiiiii .i...i. iiiiiii i..i..i i..i..i " enemy_destroy=" ..o.. .oOo. oOOOo .oOo. ..o.. + ..o.. ..o.. ooOoo ..o.. ..o.. + ..... ..o.. .oOo. ..o.. ..... + ..... ..o.. .oOo. ..o.. ..... + ..o.. ..o.. ooOoo ..o.. ..o.. " battleship=" .i.i.i. ii.i.ii iiiiiii i.iii.i ..iii.. .i.i.i. i.iii.i + .i.i.i. ii.i.ii iiiiiii i.iii.i ..iii.. ...i... ..i.i.. + .i.i.i. ii.i.ii iiiiiii i.iii.i ..iii.. .i.i.i. ..iii.. " battleship_f=" .i.i.i. iioioii iiiiiii i.iii.i ..iii.. .i.i.i. i.iii.i + .i.i.i. iioioii iiiiiii i.iii.i ..iii.. ...i... ..i.i.. + .ioioi. iioioii iiiiiii i.iii.i ..iii.. .i.i.i. ..iii.. " bullet=" ....... ....... ..o.o.. ..ooo.. + ....... ..o.o.. ..ooo.. ..oOo.. + ..o.o.. ..ooo.. ..oOo.. ..oOo.. + ..ooo.. ..oOo.. ..oOo.. ..oOo.. " f = 0 px = -84 py = -84 bshx = 0 buly = 60 timecount = 1 isfiring = 0 eindex = 0 enempos = new_array (enemy_total) fille: enempos[eindex] = 10 if (eindex=enemy_total) {go donefille} eindex + 1 go fille donefille: stars_x = new_array ( stars_total ) stars_y = new_array ( stars_total ) stcount = 0 fillstar: stars_x[stcount] = (rand % 320) - (rand % 640) stars_y[stcount] = (rand % 200) - (rand % 400) stcount + 1 if (stcount = stars_total) {go filldone} go fillstar filldone: make_pixi(enemy) .(enemy_destroy) .(battleship) .(battleship_f) .(bullet) .(star) do_intro start_timer(2) start: handle_keys( {isfiring = 1}, {bshx = get_pen_x}, {isfiring = 0} ) clear ( BLACK ) check_for_line check_for_levelcomplete if (lvlcomplete) { leveldone } t1 = 3000 * timecount t2 = t1 + 1000 if ((get_timer(2)>t1)&(get_timer(2)<t2)){ timecount + 1 py + 18 } if (timecount = 7+gameovertime) { gameover } draw_stars draw_enemys draw_bsh if isfiring { draw_bullets enemy_line = 20 if (bshx>-89)&(bshx<94){ if ((bshx>-89)&(bshx<-71)) {enemy_d = 0} if ((bshx>-71)&(bshx<-53)) {enemy_d = 1} if ((bshx>-53)&(bshx<-35)) {enemy_d = 2} if ((bshx>-35)&(bshx<-17)) {enemy_d = 3} if ((bshx>-17)&(bshx<1)) {enemy_d = 4} if ((bshx>1)&(bshx<19)) {enemy_d = 5} if ((bshx>19)&(bshx<37)) {enemy_d = 6} if ((bshx>37)&(bshx<55)) {enemy_d = 7} if ((bshx>55)&(bshx<73)) {enemy_d = 8} if ((bshx>73)&(bshx<91)) {enemy_d = 9} enemyship_health = enempos[enemy_line+enemy_d] if (enemyship_health < 1) { enemy_line = 10 enemyship_health = enempos[enemy_line+enemy_d] if (enemyship_health < 1) { enemy_line = 0 enemyship_health = enempos[enemy_line+enemy_d] } } if (enemyship_health > 0){enemyship_health-5 enempos[enemy_line+enemy_d]=enemyship_health } } // battleship in and fires } frame(80) go start check_for_levelcomplete: lvindex = 0 lvlcomplete = 1 check_lvl: if (enempos[lvindex]>2) {lvlcomplete = 0} if (lvindex=29) {go check_lvl_done} lvindex + 1 go check_lvl check_lvl_done: ret check_for_line: lineindex = 0 uindex = 0 lcindex = 1 line_exists = 0 mcycle: check_now: if (enempos[uindex+lineindex]>1) {line_exists = 1} uindex+1 if (uindex = 9) {go check_done} go check_now check_done: if (line_exists=0) {gameovertime = lcindex} uindex = 0 lineindex + 10 line_exists = 0 lcindex + 1 if (lcindex = 4) {go mcycle_done} go mcycle mcycle_done: ret draw_bullets: bcount = 1 byy = buly tcoeff = 256 bdraw: transp(tcoeff) pixi(bullet, bshx, byy, 2) if bcount = 10 {go bdone} byy - 8 bcount + 1 tcoeff - 30 go bdraw bdone: transp(256) ret draw_bsh: if (isfiring) {pixi(battleship_f, bshx, 70, 2)} else {pixi(battleship, bshx, 70, 2)} ret draw_stars: stindex = 0 plot_a_star: fpixi(star, stars_x[stindex], stars_y[stindex], 0, 0, f+stindex) if stindex=stars_total {go plot_done} stindex + 1 go plot_a_star plot_done: f + 1 ret draw_enemys: xx = px yy = py cc = 0 ln = 1 drawthemall: if (enempos[cc]=0) { pixi(enemy_destroy,xx, yy, 2) enempos[cc]=-1 } if (enempos[cc]!=-1){ pixi(enemy,xx, yy, 2) } xx + 18 if ((cc=9)|(cc=19)|(cc=29)) { yy + 18 xx = px } if (cc = enemy_total-1) {go donedraw_en} cc + 1 go drawthemall donedraw_en: ret gameover: zm = 8 trval = 10 dozoom: //zoom (zm) transp(trval) print ("GAME OVER", -39, 0, WHITE) frame ( 60 ) if (zm=1) { go donezoom } zm - 1 trval + 70 go dozoom donezoom: frame(0) halt ret leveldone: zm = 8 trval = 10 dozoom1: //zoom (zm) transp(trval) print ("MISSION ACCOMPLISHED", -80, 0, WHITE) frame ( 60 ) if (zm=1) { go donezoom1 } zm - 1 trval + 70 go dozoom1 donezoom1: frame(0) halt ret do_intro: intro_start: clear (BLACK) draw_stars pixi(splash,0,0) frame(100) if (introindex=100) {go intro_done} introindex + 1 go intro_start intro_done: introindex = 0 outtro_start: draw_stars if (introindex=20) {go outtro_done} introindex + 1 transp(introindex*2) clear( BLACK ) frame (30) go outtro_start outtro_done: transp(256) ret
