NoCli WBStartup ; ; Galaga Wars ; ; contact: ; ; Michael Rosskopf ; Saarlandstrasse 25 ; 44866 Bochum ; Germany ; ; Tel.: +49-2327-31546 ; E-mail: Michael_Rosskopf@gmx.de ; ; ------------------------------- ; ; Translated into English (kinda) by ; Wiremu Te Kani ; E-Mail: tekani@yahoo.com ; wtekani@netscape.net .Initialisation : ; Initialisation ; Some constants #interleavemod=320/8 ; Taken from Starfield demo 0.01 by FISH 1996 DEFTYPE .l a DEFTYPE .l x,y,cnt DEFTYPE .l bmapx,bmapy DEFTYPE .w *coppnt ;; Taken from Blitzlibs:bb2objtypes.bb2 ;NEWTYPE.sprite ;size=16 ; _data.l ;00: NULL if no sprite present, else pointer to sprite data ; _height.w ;04: height of sprite, in pixels, plus an extra 1 ; _channels.w ;06: number of sprite channels required to display sprite ; _flags.w ;08: low byte = pix width of sprite, hi bit = 1 if 16 colour sprite ; _nextoff.w ;10: difference in bytes between seperate sprites for separate sprite channels ; _xhandle.w ;12: horizontal handle for sprite ; _yhandle.w ;14: vertical handle for sprite ;End NEWTYPE Statement init_star_data{spr.l,spd.l} UNLK a4 MOVE.l d0,a0 ; Move address of sprite data to addr reg MOVE.l d1,a1 ; Move address of speed data to addr reg MOVE.l #48,d0 ; Start line of sprites on display MOVE.l #49,d1 ; Stop line of sprite on display MOVE.l #15,d2 ; Counter = 24 times MOVE.l #0,d3 ; Spread value loop1: MOVE.b d0,(a0) ; Set vert start position ADD.l #1,a0 ; ----Next byte---- MOVE.b d3,(a0) ; Set horiz start position ADD.l #1,a0 ; ----Next byte---- MOVE.b d1,(a0) ; Set vertical stop pos ADD.l #1,a0 ; ----Next byte---- MOVE.b #0,(a0) ; Set byte to 0 MOVE.l d0,d4 ; Copy vert pos to d4 AND.w #$ff00,d4 ; Are we over the 256 boundary? BEQ l1 ; If not skip... MOVE.b #6,(a0) ; ...Move %00000110 l1: ADD.l #1,a0 ; ----Next byte---- CLR d4 MOVE.l #$00000020,d4 ; Sprite image 2 planes (!!change this!!) MOVE.l d4,(a0) ; Set sprite image ADD.l #4,a0 ; ----Next sprite---- ADD.l #16,d0 ; Vert start pos += 8 ADD.l #16,d1 ; Vert stop pos += 8 ADD.b #179,d3 ; Next spread value (17 seems good) MOVE.w (a1)+,d4 ADD.b d4,d3 ; add the speed. (This seems better) DBF d2,loop1 RTS End Statement Statement scroll_stars_x{spr.l,speed.l} UNLK a4 MOVE.l d0,a0 ; Move address of sprite data to addr reg MOVE.l d1,d3 ; Move speed to d3 reg ADD.l #1,a0 ; Push sprite data addr to point to horiz pos MOVE.l #15,d2 ; Counter = 24 times loop2: MOVE.b (a0),d0 ; Get current horizonal pos ADD.b d3,d0 ; Add speed MOVE.b d0,(a0) ; Store new horiz pos ADD.l #8,a0 ; Next sprite image DBF d2,loop2 RTS End Statement Statement scroll_stars_y_down{spr.l,speed.l} UNLK a4 MOVE.l d0,a0 ; Move address of sprite data to addr reg MOVE.l a0,a2 ; Copy of the sprite data address MOVE.l d1,d3 ; Move speed to d3 reg MOVE.b (a0),d0 ADD.b d3,d0 AND.b #$f0,d0 MOVE.b (a0),d1 AND.b #$f0,d1 SUB.b d1,d0 MOVE.b d0,temp_data1 MOVE.l #15,d2 ; Counter = 24 times loop3: MOVE.b (a0),d0 ; Get current vert start pos ADD.b d3,d0 ; Add speed AND.b #$f,d0 ; Mask out all but lower 3 bits MOVE.b (a0),d4 ; Get current vert start pos AND.b #$f0,d4 ; Mask out lower 3 bits ADD.b d4,d0 ; Add the d0 MOVE.b d0,(a0) ; Store new vert start pos ADD.l #2,a0 ; ----Move to vert stop pos ADD.b #1,d0 ; Add 1 to vert start pos MOVE.b d0,(a0) ; Store new vert stop pos ADD.l #6,a0 ; Next sprite image DBF d2,loop3 MOVE.b temp_data1,d0 ; Get vert pos CMP.b #0,d0 ; Zero...? BEQ lab1 ; ...if not - leave MOVE.l a2,a0 ; Set addr of sprite data ADD.l #8*15+1,a0 ; Add offset for image 24 + horiz pos MOVE.b (a0),d0 ; Get horiz pos at image 24 MOVE.b d0,temp_data1 ; Store in temp MOVE.l a0,a1 ; a0=source , a1=dest SUB.l #8,a0 ; Set source to image 23 MOVE.l #14,d2 ; Counter 23 times loop4: MOVE.b (a0),d0 ; Get horiz pos MOVE.b d0,(a1) ; Store in next image SUB.l #8,a0 ; Prev source image SUB.l #8,a1 ; Prev dest image DBF d2,loop4 MOVE.l a2,a0 ; Get addr of sprite data ADD.l #1,a0 ; Offset for horiz pos MOVE.b temp_data1,d0 ; Get temp data MOVE.b d0,(a0) ; Place in first image lab1: RTS temp_data1: Dc.l 0 End Statement Statement display_star { spr.l } DEFTYPE .sprite *sprpnt DEFTYPE .l a *sprpnt=Addr Sprite (spr) : a=*sprpnt\_height : *sprpnt\_height=1 DisplaySprite 0,spr,160,0,spr : *sprpnt\_height=a End Statement Statement PLoc{x,y,a$} Colour 1 Locate x,y Print a$ End Statement Statement patchcookie{n} ;Fix cookie for "1-plane" 32 col shapes *s.shape=Addr Shape(n) cook.l=*s\_cookie hg=0:Repeat width=0:Repeat cval.w=0 i=0:Repeat cval | Peek.w(cook + width + i * *s\_ebwidth) i+1:Until i=5 i=0:Repeat Poke.w(cook + width + i * *s\_ebwidth),cval i+1:Until i=5 width+2:Until width=*s\_ebwidth hg+5 cook+(*s\_ebwidth LSL2)+*s\_ebwidth Until hg > *s\_pixheight-5 End Statement ; patchbitmap{source,destination} ; ; converts big 1-plane bitmap into 5-plane interleaved bitmap ; initialises a new pseudo-bitmap to be used in the conventional ; fashion (destination) and setting the 1-plane bitmap (source) ; up for display onscreen. ; If you want to use interleaved system, use the source. If you ; want standard planar bitmap use destination. Statement patchbitmap{s.b,d.b} ;now cludge 5-plane version *bit1.bitmap = Addr BitMap(s) CludgeBitMap d,320,256,5,*bit1\_data *bit0.bitmap = Addr BitMap(d) For i=1 To 4 *bit0\_data[i] = *bit0\_data[i-1] + #interleavemod Next *bit0\_bitplanemod=#interleavemod *bit0\_ebwidth=#interleavemod*5 End Statement NEWTYPE .Ship ; ship ; Variables for Pictexpenditure SPict.b ; Ship no. WPict.b ; Bullet no. SWidth.b ; Ship Width SHeight.b ; Ship Height WWidth.b ; Bullet Width WHeight.b ; Bullet Height WXplus.b ; Times ships needs to get hit (?) WeaponDb.b ; Flickery bullets (0=off; 1=on) ; Ship and Bullet characteristics Sx.w ; bullet X-Position Sy.w ; bullet Y-Position WStatus.b[2] ; Weapon Status (0=Not firing, 1=Firing) Wx.w[2] ; Salvo X-Position Wy.w[2] ; Salvo Y-Position SSpeed.b ; Bulletspeed WSpeed.b ; Salvospeed WPause.w ; Pause between every Salvo Shield.b ; Sheilds Damage.b ; Damage that weapon causes End NEWTYPE NEWTYPE .Nasty ; Baddies ; Screen Variables SPict.b ; Ship No SWidth.b ; Ship width SHeight.b ; Ship height WXplus.b ; postponement of the Weaponshapes opposite for Shipshapes WeaponDb.b ; Exhaust trail shimmering (0=off; 1=on) ; Baddie Characteristics (Nasty) SMovTyp.b ; 0=Normal movement, 1=Fly to the Bereich, 2=Kamikaze, 3=Follow Headtrail Intel.b ; 0=No Intelligence, 1=Firing only when strike possible WeaponNr1.b ; Nr of the Ship belonging to Weapon 1 WeaponNr2.b ; Nr of the Ship belonging to Weapon 2 WeaponNr3.b ; Nr of the Ship belonging to Weapon 3 WeaponNr4.b ; Nr of the Ship belonging to Weapon 4 Shield.w ; Sheilds Points.w ; Score for shooting down the ship ; Admins Variables SStatus.b ; Status of the Ships (0=not vorhanden, 1=on display) Sx.w ; X-Position of the Shipes on display Sy.w ; Y-Position of the Shipes on display SSpeedX.b ; Speed in X-direction SSpeedY.b ; Speed in Y-direction SBorderX1.w ; X-coordinate, bei the Ship course movement (links) SBorderX2.w ; X-coordinate, bei the Ship course movement (rechts) SBorderY1.w ; Y-coordinate, bei the Ship course movement (oben) SBorderY2.w ; Y-coordinate, bei the Ship course movement (unten) trailNr.b ; Nr for the Headtrail that the Ship follows trailSek.b ; Actual pathway trailCounter.w; Actual Pointage of the pathway End NEWTYPE NEWTYPE .Shot Pict.b ; Nr of the Shot-Shapes Width.b ; Width of the Shots-Shapes Height.b ; Height of the Shot-Shapes WeaponDb.b ; Flimmern of the Shots (0=aus; 1=an) Typ.b ; 0=Nach vorne gefire, 1=Gezielt gefire, 2=Gelenkt Status.b ; Shot vorhanden oder nicht x.q ; X-Position of the Shots on dem display y.q ; Y-Position of the Shots on dem display SpeedX.q ; speed in X-direction SpeedY.q ; speed in Y-direction End NEWTYPE NEWTYPE .trail x.w ; Pointer X-Position y.w ; Pointer Y-Position Counter.w[20] ; Counting down until direction change SpeedX.b[20] ; speed in X-direction SpeedY.b[20] ; speed in Y-direction End NEWTYPE NEWTYPE .Level R.b ; Red-Word G.b ; Green-Word B.b ; Blue-Word Counter.b ; Place in Level NastyComing.b[11] ; Nasties in current attackwave NastyKilled.b[11] ; Nasties destroyed in attackwave NastyCount.b[11] ; amount of Nasties on screen at one time ShotCount.b[11] ; amount of shots on screen at one time NastyType1.b[11] ; Nr of the NastyType1 in attackwaves NastyType2.b[11] ; Nr of the NastyType2 in attackwaves NastyType3.b[11] ; Nr of the NastyType3 in attackwaves NastyType4.b[11] ; Nr of the NastyType4 in attackwaves NastySpace.b[11] ; Distances between each Nasty NShotSpace.b[11] ; Probability for Nastyshots End NEWTYPE ; Highscore array Dim HighscoreNamen$(5) Dim HighscorePoints.l(5) Dim HighscoreLevel.b(5) For i.b=0 To 4 MaxLen HighscoreNamen$(i)=8 Next i ; Highscore Zugriff.b=OpenFile(0,"Galagawars.Highscore") Fields 0,HighscoreNamen$(0) Fields 0,HighscoreNamen$(1) Fields 0,HighscoreNamen$(2) Fields 0,HighscoreNamen$(3) Fields 0,HighscoreNamen$(4) Fields 0,HighscorePoints(0) Fields 0,HighscorePoints(1) Fields 0,HighscorePoints(2) Fields 0,HighscorePoints(3) Fields 0,HighscorePoints(4) Fields 0,HighscoreLevel(0) Fields 0,HighscoreLevel(1) Fields 0,HighscoreLevel(2) Fields 0,HighscoreLevel(3) Fields 0,HighscoreLevel(4) Get 0,0 CloseFile 0 ; Shapeloader .Shapeloader DecodeShapes 0,110,?b_allshapes For xxx=0 To 110 If xxx<>43 patchcookie{xxx} EndIf Next xxx DecodePalette 0,?bpalt0 DecodePalette 1,?bpalt1 InitPalette 2,31 ; Soundloader CludgeSound 0,?s0 CludgeSound 1,?s1 CludgeSound 2,?s2 CludgeSound 3,?s3 CludgeSound 4,?s4 CludgeSound 5,?s5 CludgeSound 6,?s6 CludgeSound 7,?s7 CludgeSound 8,?s8 CludgeSound 9,?s9 CludgeSound 10,?sa CludgeSound 11,?sb CludgeSound 12,?sc CludgeSound 13,?sd CludgeSound 14,?se ;LoadBlitzFont 0,"2001.font" .VarShipe: ; Ship variables Dim S.Ship(6) S(1)\ SPict=25 S(1)\ WPict=30 S(1)\ SWidth=ShapeWidth(S(1)\SPict) S(1)\ SHeight=ShapeHeight(S(1)\SPict)/5 S(1)\ WWidth=ShapeWidth(S(1)\WPict) S(1)\ WHeight=ShapeHeight(S(1)\WPict)/5 S(1)\ SSpeed=5 S(1)\ WSpeed=10 S(1)\ WPause=11 S(1)\ Shield=20 S(1)\Damage=2 S(1)\ WXplus=4 S(1)\ WeaponDb=0 S(2)\ SPict=26 S(2)\ WPict=31 S(2)\ SWidth=ShapeWidth(S(2)\SPict) S(2)\ SHeight=ShapeHeight(S(2)\SPict)/5 S(2)\ WWidth=ShapeWidth(S(2)\WPict) S(2)\ WHeight=ShapeHeight(S(2)\WPict)/5 S(2)\ SSpeed=4 S(2)\ WSpeed=10 S(2)\ WPause=9 S(2)\ Shield=40 S(2)\Damage=4 S(2)\ WXplus=0 S(2)\ WeaponDb=0 S(3)\ SPict=27 S(3)\ WPict=32 S(3)\ SWidth=ShapeWidth(S(3)\SPict) S(3)\ SHeight=ShapeHeight(S(3)\SPict)/5 S(3)\ WWidth=ShapeWidth(S(3)\WPict) S(3)\ WHeight=ShapeHeight(S(3)\WPict)/5 S(3)\ SSpeed=3 S(3)\ WSpeed=10 S(3)\ WPause=10 S(3)\ Shield=80 S(3)\Damage=8 S(3)\ WXplus=2 S(3)\ WeaponDb=0 S(4)\ SPict=28 S(4)\ WPict=33 S(4)\ SWidth=ShapeWidth(S(4)\SPict) S(4)\ SHeight=ShapeHeight(S(4)\SPict)/5 S(4)\ WWidth=ShapeWidth(S(4)\WPict) S(4)\ WHeight=ShapeHeight(S(4)\WPict)/5 S(4)\ SSpeed=4 S(4)\ WSpeed=12 S(4)\ WPause=8 S(4)\ Shield=60 S(4)\Damage=6 S(4)\ WXplus=8 S(4)\ WeaponDb=0 S(5)\ SPict=29 S(5)\ WPict=34 S(5)\ SWidth=ShapeWidth(S(5)\SPict) S(5)\ SHeight=ShapeHeight(S(5)\SPict)/5 S(5)\ WWidth=ShapeWidth(S(5)\WPict) S(5)\ WHeight=ShapeHeight(S(5)\WPict)/5 S(5)\ SSpeed=3 S(5)\ WSpeed=8 S(5)\ WPause=10 S(5)\ Shield=99 S(5)\Damage=12 S(5)\ WXplus=10 S(5)\ WeaponDb=1 ; Specifications for meanies bullets .VarNstshooters: ; VarMeanyBullets Dim Nastyshooters.Shot(28) ; Meanybullets.bullet(28) ; Bombe1 Nastyshooters(0)\ Pict=45 Nastyshooters(0)\ Width=ShapeWidth(Nastyshooters(0)\Pict) Nastyshooters(0)\ Height=ShapeHeight(Nastyshooters(0)\Pict)/5 Nastyshooters(0)\ WeaponDb=0 Nastyshooters(0)\ Typ=0 Nastyshooters(0)\SpeedX=0 Nastyshooters(0)\SpeedY=4 ; Drohne3Shot Nastyshooters(1)\ Pict=47 Nastyshooters(1)\ Width=ShapeWidth(Nastyshooters(1)\Pict) Nastyshooters(1)\ Height=ShapeHeight(Nastyshooters(1)\Pict)/5 Nastyshooters(1)\ WeaponDb=0 Nastyshooters(1)\ Typ=0 Nastyshooters(1)\SpeedX=1 Nastyshooters(1)\SpeedY=3 ; ZielShot1 Nastyshooters(2)\ Pict=48 Nastyshooters(2)\ Width=ShapeWidth(Nastyshooters(2)\Pict) Nastyshooters(2)\ Height=ShapeHeight(Nastyshooters(2)\Pict)/5 Nastyshooters(2)\ WeaponDb=0 Nastyshooters(2)\ Typ=1 Nastyshooters(2)\SpeedX=3 Nastyshooters(2)\SpeedY=3 ; EndNasty1Shot Nastyshooters(3)\ Pict=49 Nastyshooters(3)\ Width=ShapeWidth(Nastyshooters(3)\Pict) Nastyshooters(3)\ Height=ShapeHeight(Nastyshooters(3)\Pict)/5 Nastyshooters(3)\ WeaponDb=0 Nastyshooters(3)\ Typ=0 Nastyshooters(3)\SpeedX=3 Nastyshooters(3)\SpeedY=3 ; Jaeger1Shot Nastyshooters(4)\ Pict=51 Nastyshooters(4)\ Width=ShapeWidth(Nastyshooters(4)\Pict) Nastyshooters(4)\ Height=ShapeHeight(Nastyshooters(4)\Pict)/5 Nastyshooters(4)\ WeaponDb=0 Nastyshooters(4)\ Typ=0 Nastyshooters(4)\SpeedX=0 Nastyshooters(4)\SpeedY=4 ; Bombe2 Nastyshooters(5)\ Pict=46 Nastyshooters(5)\ Width=ShapeWidth(Nastyshooters(5)\Pict) Nastyshooters(5)\ Height=ShapeHeight(Nastyshooters(5)\Pict)/5 Nastyshooters(5)\ WeaponDb=0 Nastyshooters(5)\ Typ=0 Nastyshooters(5)\SpeedX=0 Nastyshooters(5)\SpeedY=4 ; Alienjaeger1Shot Nastyshooters(6)\ Pict=56 Nastyshooters(6)\ Width=ShapeWidth(Nastyshooters(6)\Pict) Nastyshooters(6)\ Height=ShapeHeight(Nastyshooters(6)\Pict)/5 Nastyshooters(6)\ WeaponDb=0 Nastyshooters(6)\ Typ=0 Nastyshooters(6)\SpeedX=0 Nastyshooters(6)\SpeedY=4 ; Alienjaeger2Shot Nastyshooters(7)\ Pict=57 Nastyshooters(7)\ Width=ShapeWidth(Nastyshooters(7)\Pict) Nastyshooters(7)\ Height=ShapeHeight(Nastyshooters(7)\Pict)/5 Nastyshooters(7)\ WeaponDb=0 Nastyshooters(7)\ Typ=0 Nastyshooters(7)\SpeedX=0 Nastyshooters(7)\SpeedY=4 ; Alienjaeger3Shot Nastyshooters(8)\ Pict=58 Nastyshooters(8)\ Width=ShapeWidth(Nastyshooters(8)\Pict) Nastyshooters(8)\ Height=ShapeHeight(Nastyshooters(8)\Pict)/5 Nastyshooters(8)\ WeaponDb=0 Nastyshooters(8)\ Typ=0 Nastyshooters(8)\SpeedX=0 Nastyshooters(8)\SpeedY=4 ; EndNasty2Shot Nastyshooters(9)\ Pict=60 Nastyshooters(9)\ Width=ShapeWidth(Nastyshooters(9)\Pict) Nastyshooters(9)\ Height=ShapeHeight(Nastyshooters(9)\Pict)/5 Nastyshooters(9)\ WeaponDb=0 Nastyshooters(9)\ Typ=0 Nastyshooters(9)\SpeedX=5 Nastyshooters(9)\SpeedY=4 ; AlienDrohne2Shot Nastyshooters(10)\ Pict=62 Nastyshooters(10)\ Width=ShapeWidth(Nastyshooters(10)\Pict) Nastyshooters(10)\ Height=ShapeHeight(Nastyshooters(10)\Pict)/5 Nastyshooters(10)\ WeaponDb=0 Nastyshooters(10)\ Typ=0 Nastyshooters(10)\SpeedX=2 Nastyshooters(10)\SpeedY=4 ; Jaeger2Shot Nastyshooters(11)\ Pict=71 Nastyshooters(11)\ Width=ShapeWidth(Nastyshooters(11)\Pict) Nastyshooters(11)\ Height=ShapeHeight(Nastyshooters(11)\Pict)/5 Nastyshooters(11)\ WeaponDb=0 Nastyshooters(11)\ Typ=0 Nastyshooters(11)\SpeedX=0 Nastyshooters(11)\SpeedY=8 ; RaketenJaegerShot Nastyshooters(12)\ Pict=72 Nastyshooters(12)\ Width=ShapeWidth(Nastyshooters(12)\Pict) Nastyshooters(12)\ Height=ShapeHeight(Nastyshooters(12)\Pict)/5 Nastyshooters(12)\ WeaponDb=1 Nastyshooters(12)\ Typ=0 Nastyshooters(12)\SpeedX=4 Nastyshooters(12)\SpeedY=4 ; BomberShot Nastyshooters(13)\ Pict=74 Nastyshooters(13)\ Width=ShapeWidth(Nastyshooters(13)\Pict) Nastyshooters(13)\ Height=ShapeHeight(Nastyshooters(13)\Pict)/5 Nastyshooters(13)\ WeaponDb=1 Nastyshooters(13)\ Typ=0 Nastyshooters(13)\SpeedX=2 Nastyshooters(13)\SpeedY=3 ; Jaeger3Shot Nastyshooters(14)\ Pict=76 Nastyshooters(14)\ Width=ShapeWidth(Nastyshooters(14)\Pict) Nastyshooters(14)\ Height=ShapeHeight(Nastyshooters(14)\Pict)/5 Nastyshooters(14)\ WeaponDb=0 Nastyshooters(14)\ Typ=0 Nastyshooters(14)\SpeedX=0 Nastyshooters(14)\SpeedY=4 ; KanoneShot Nastyshooters(15)\ Pict=77 Nastyshooters(15)\ Width=ShapeWidth(Nastyshooters(15)\Pict) Nastyshooters(15)\ Height=ShapeHeight(Nastyshooters(15)\Pict)/5 Nastyshooters(15)\ WeaponDb=0 Nastyshooters(15)\ Typ=0 Nastyshooters(15)\SpeedX=0 Nastyshooters(15)\SpeedY=3 ; AsteroidShot Nastyshooters(16)\ Pict=78 Nastyshooters(16)\ Width=ShapeWidth(Nastyshooters(16)\Pict) Nastyshooters(16)\ Height=ShapeHeight(Nastyshooters(16)\Pict)/5 Nastyshooters(16)\ WeaponDb=0 Nastyshooters(16)\ Typ=0 Nastyshooters(16)\SpeedX=12 Nastyshooters(16)\SpeedY=12 ; ZielShot2 Nastyshooters(17)\ Pict=79 Nastyshooters(17)\ Width=ShapeWidth(Nastyshooters(17)\Pict) Nastyshooters(17)\ Height=ShapeHeight(Nastyshooters(17)\Pict)/5 Nastyshooters(17)\ WeaponDb=1 Nastyshooters(17)\ Typ=1 Nastyshooters(17)\SpeedX=4 Nastyshooters(17)\SpeedY=4 ; ZielShot3 Nastyshooters(18)\ Pict=88 Nastyshooters(18)\ Width=ShapeWidth(Nastyshooters(18)\Pict) Nastyshooters(18)\ Height=ShapeHeight(Nastyshooters(18)\Pict)/5 Nastyshooters(18)\ WeaponDb=0 Nastyshooters(18)\ Typ=1 Nastyshooters(18)\SpeedX=3 Nastyshooters(18)\SpeedY=3 ; PlantAlien1Shot Nastyshooters(19)\ Pict=89 Nastyshooters(19)\ Width=ShapeWidth(Nastyshooters(19)\Pict) Nastyshooters(19)\ Height=ShapeHeight(Nastyshooters(19)\Pict)/5 Nastyshooters(19)\ WeaponDb=0 Nastyshooters(19)\ Typ=0 Nastyshooters(19)\SpeedX=0 Nastyshooters(19)\SpeedY=5 ; PlantAlien2Shot Nastyshooters(20)\ Pict=90 Nastyshooters(20)\ Width=ShapeWidth(Nastyshooters(20)\Pict) Nastyshooters(20)\ Height=ShapeHeight(Nastyshooters(20)\Pict)/5 Nastyshooters(20)\ WeaponDb=0 Nastyshooters(20)\ Typ=0 Nastyshooters(20)\SpeedX=0 Nastyshooters(20)\SpeedY=5 ; PlantAlien3Shot Nastyshooters(21)\ Pict=91 Nastyshooters(21)\ Width=ShapeWidth(Nastyshooters(21)\Pict) Nastyshooters(21)\ Height=ShapeHeight(Nastyshooters(21)\Pict)/5 Nastyshooters(21)\ WeaponDb=1 Nastyshooters(21)\ Typ=0 Nastyshooters(21)\SpeedX=0 Nastyshooters(21)\SpeedY=3 ; EndNasty4Shot Nastyshooters(22)\ Pict=94 Nastyshooters(22)\ Width=ShapeWidth(Nastyshooters(22)\Pict) Nastyshooters(22)\ Height=ShapeHeight(Nastyshooters(22)\Pict)/5 Nastyshooters(22)\ WeaponDb=0 Nastyshooters(22)\ Typ=0 Nastyshooters(22)\SpeedX=0 Nastyshooters(22)\SpeedY=4 ; Dreadnought1Shot Nastyshooters(23)\ Pict=99 Nastyshooters(23)\ Width=ShapeWidth(Nastyshooters(23)\Pict) Nastyshooters(23)\ Height=ShapeHeight(Nastyshooters(23)\Pict)/5 Nastyshooters(23)\ WeaponDb=0 Nastyshooters(23)\ Typ=0 Nastyshooters(23)\SpeedX=0 Nastyshooters(23)\SpeedY=5 ; Dreadnought2Shot Nastyshooters(24)\ Pict=100 Nastyshooters(24)\ Width=ShapeWidth(Nastyshooters(24)\Pict) Nastyshooters(24)\ Height=ShapeHeight(Nastyshooters(24)\Pict)/5 Nastyshooters(24)\ WeaponDb=0 Nastyshooters(24)\ Typ=0 Nastyshooters(24)\SpeedX=0 Nastyshooters(24)\SpeedY=4 ; Dreadnought3Shot Nastyshooters(25)\ Pict=101 Nastyshooters(25)\ Width=ShapeWidth(Nastyshooters(25)\Pict) Nastyshooters(25)\ Height=ShapeHeight(Nastyshooters(25)\Pict)/5 Nastyshooters(25)\ WeaponDb=0 Nastyshooters(25)\ Typ=0 Nastyshooters(25)\SpeedX=0 Nastyshooters(25)\SpeedY=6 ; Lenkrakete Nastyshooters(26)\ Pict=105 Nastyshooters(26)\ Width=ShapeWidth(Nastyshooters(26)\Pict) Nastyshooters(26)\ Height=ShapeHeight(Nastyshooters(26)\Pict)/5 Nastyshooters(26)\ WeaponDb=1 Nastyshooters(26)\ Typ=2 Nastyshooters(26)\SpeedX=0 Nastyshooters(26)\SpeedY=4 ; EndNasty6Shot Nastyshooters(27)\ Pict=107 Nastyshooters(27)\ Width=ShapeWidth(Nastyshooters(27)\Pict) Nastyshooters(27)\ Height=ShapeHeight(Nastyshooters(27)\Pict)/5 Nastyshooters(27)\ WeaponDb=0 Nastyshooters(27)\ Typ=0 Nastyshooters(27)\SpeedX=8 Nastyshooters(27)\SpeedY=4 ; Meanies ship specs .VarNasty: ; Meany variables Dim Nastychoice.Nasty(37) ; Meanybits.Meany(37) ; Drohne 1 Nastychoice(0)\ SPict=36 Nastychoice(0)\ SWidth=ShapeWidth(Nastychoice(0)\SPict) Nastychoice(0)\ SHeight=ShapeHeight(Nastychoice(0)\SPict)/5 Nastychoice(0)\ WeaponNr1=0 Nastychoice(0)\ WeaponNr2=0 Nastychoice(0)\ WeaponNr3=0 Nastychoice(0)\ WeaponNr4=0 Nastychoice(0)\ WXplus=(Nastychoice(0)\SWidth ASR 1)-(Nastyshooters(Nastychoice(0)\WeaponNr1)\Width ASR 1) Nastychoice(0)\ WeaponDb=0 Nastychoice(0)\ SMovTyp=3 Nastychoice(0)\ Intel=0 Nastychoice(0)\ Shield=1 Nastychoice(0)\ Points=15 Nastychoice(0)\ SSpeedX=0 Nastychoice(0)\ SSpeedY=0 Nastychoice(0)\ trailNr=0 ; Drohne 2 Nastychoice(1)\ SPict=37 Nastychoice(1)\ SWidth=ShapeWidth(Nastychoice(1)\SPict) Nastychoice(1)\ SHeight=ShapeHeight(Nastychoice(1)\SPict)/5 Nastychoice(1)\ WeaponNr1=0 Nastychoice(1)\ WeaponNr2=0 Nastychoice(1)\ WeaponNr3=0 Nastychoice(1)\ WeaponNr4=0 Nastychoice(1)\ WXplus=(Nastychoice(1)\SWidth ASR 1)-(Nastyshooters(Nastychoice(1)\WeaponNr1)\Width ASR 1) Nastychoice(1)\ WeaponDb=0 Nastychoice(1)\ SMovTyp=3 Nastychoice(1)\ Intel=0 Nastychoice(1)\ Shield=2 Nastychoice(1)\ Points=20 Nastychoice(1)\ SSpeedX=0 Nastychoice(1)\ SSpeedY=0 Nastychoice(1)\ trailNr=1 ; Drohne 3 Nastychoice(2)\ SPict=38 Nastychoice(2)\ SWidth=ShapeWidth(Nastychoice(2)\SPict) Nastychoice(2)\ SHeight=ShapeHeight(Nastychoice(2)\SPict)/5 Nastychoice(2)\ WeaponNr1=1 Nastychoice(2)\ WeaponNr2=1 Nastychoice(2)\ WeaponNr3=1 Nastychoice(2)\ WeaponNr4=1 Nastychoice(2)\ WXplus=(Nastychoice(2)\SWidth ASR 1)-(Nastyshooters(Nastychoice(2)\WeaponNr1)\Width ASR 1) Nastychoice(2)\ WeaponDb=0 Nastychoice(2)\ SMovTyp=1 Nastychoice(2)\ Intel=0 Nastychoice(2)\ Shield=5 Nastychoice(2)\ Points=40 Nastychoice(2)\ SSpeedX=1 Nastychoice(2)\ SSpeedY=1 Nastychoice(2)\SBorderX1=0 Nastychoice(2)\SBorderX2=320-Nastychoice(2)\SHeight Nastychoice(2)\SBorderY1=40 Nastychoice(2)\SBorderY2=128-Nastychoice(2)\SWidth ; Jaeger1 Nastychoice(3)\ SPict=50 Nastychoice(3)\ SWidth=ShapeWidth(Nastychoice(3)\SPict) Nastychoice(3)\ SHeight=ShapeHeight(Nastychoice(3)\SPict)/5 Nastychoice(3)\ WeaponNr1=4 Nastychoice(3)\ WeaponNr2=4 Nastychoice(3)\ WeaponNr3=4 Nastychoice(3)\ WeaponNr4=4 Nastychoice(3)\ WXplus=(Nastychoice(3)\SWidth ASR 1)-(Nastyshooters(Nastychoice(3)\WeaponNr1)\Width ASR 1) Nastychoice(3)\ WeaponDb=0 Nastychoice(3)\ SMovTyp=0 Nastychoice(3)\ Intel=0 Nastychoice(3)\ Shield=2 Nastychoice(3)\ Points=25 Nastychoice(3)\ SSpeedX=1 Nastychoice(3)\ SSpeedY=2 ; Drohne4 Nastychoice(4)\ SPict=39 Nastychoice(4)\ SWidth=ShapeWidth(Nastychoice(4)\SPict) Nastychoice(4)\ SHeight=ShapeHeight(Nastychoice(4)\SPict)/5 Nastychoice(4)\ WeaponNr1=5 Nastychoice(4)\ WeaponNr2=5 Nastychoice(4)\ WeaponNr3=5 Nastychoice(4)\ WeaponNr4=5 Nastychoice(4)\ WXplus=(Nastychoice(4)\SWidth ASR 1)-(Nastyshooters(Nastychoice(4)\WeaponNr1)\Width ASR 1) Nastychoice(4)\ WeaponDb=0 Nastychoice(4)\ SMovTyp=3 Nastychoice(4)\ Intel=0 Nastychoice(4)\ Shield=2 Nastychoice(4)\ Points=25 Nastychoice(4)\ SSpeedX=1 Nastychoice(4)\ SSpeedY=2 Nastychoice(4)\ trailNr=3 ; Drohne5 Nastychoice(5)\ SPict=40 Nastychoice(5)\ SWidth=ShapeWidth(Nastychoice(5)\SPict) Nastychoice(5)\ SHeight=ShapeHeight(Nastychoice(5)\SPict)/5 Nastychoice(5)\ WeaponNr1=0 Nastychoice(5)\ WeaponNr2=0 Nastychoice(5)\ WeaponNr3=0 Nastychoice(5)\ WeaponNr4=0 Nastychoice(5)\ WXplus=(Nastychoice(5)\SWidth ASR 1)-(Nastyshooters(Nastychoice(5)\WeaponNr1)\Width ASR 1) Nastychoice(5)\ WeaponDb=0 Nastychoice(5)\ SMovTyp=0 Nastychoice(5)\ Intel=0 Nastychoice(5)\ Shield=2 Nastychoice(5)\ Points=25 Nastychoice(5)\ SSpeedX=2 Nastychoice(5)\ SSpeedY=2 ; Drohne6 Nastychoice(6)\ SPict=41 Nastychoice(6)\ SWidth=ShapeWidth(Nastychoice(6)\SPict) Nastychoice(6)\ SHeight=ShapeHeight(Nastychoice(6)\SPict)/5 Nastychoice(6)\ WeaponNr1=2 Nastychoice(6)\ WeaponNr2=2 Nastychoice(6)\ WeaponNr3=2 Nastychoice(6)\ WeaponNr4=2 Nastychoice(6)\ WXplus=(Nastychoice(6)\SWidth ASR 1)-(Nastyshooters(Nastychoice(6)\WeaponNr1)\Width ASR 1) Nastychoice(6)\ WeaponDb=0 Nastychoice(6)\ SMovTyp=0 Nastychoice(6)\ Intel=0 Nastychoice(6)\ Shield=4 Nastychoice(6)\ Points=50 Nastychoice(6)\ SSpeedX=0 Nastychoice(6)\ SSpeedY=1 ; EndNasty1 Nastychoice(7)\ SPict=44 Nastychoice(7)\ SWidth=ShapeWidth(Nastychoice(7)\SPict) Nastychoice(7)\ SHeight=ShapeHeight(Nastychoice(7)\SPict)/5 Nastychoice(7)\ WeaponNr1=2 Nastychoice(7)\ WeaponNr2=2 Nastychoice(7)\ WeaponNr3=3 Nastychoice(7)\ WeaponNr4=3 Nastychoice(7)\ WXplus=(Nastychoice(7)\SWidth ASR 1)-(Nastyshooters(Nastychoice(7)\WeaponNr1)\Width ASR 1) Nastychoice(7)\ WeaponDb=0 Nastychoice(7)\ SMovTyp=3 Nastychoice(7)\ Intel=0 Nastychoice(7)\ Shield=75 Nastychoice(7)\ Points=1000 Nastychoice(7)\ SSpeedX=0 Nastychoice(7)\ SSpeedY=1 Nastychoice(7)\ trailNr=2 ; AlienDrohne1 Nastychoice(8)\ SPict=52 Nastychoice(8)\ SWidth=ShapeWidth(Nastychoice(8)\SPict) Nastychoice(8)\ SHeight=ShapeHeight(Nastychoice(8)\SPict)/5 Nastychoice(8)\ WeaponNr1=0 Nastychoice(8)\ WeaponNr2=0 Nastychoice(8)\ WeaponNr3=0 Nastychoice(8)\ WeaponNr4=0 Nastychoice(8)\ WXplus=(Nastychoice(8)\SWidth ASR 1)-(Nastyshooters(Nastychoice(8)\WeaponNr1)\Width ASR 1) Nastychoice(8)\ WeaponDb=0 Nastychoice(8)\ SMovTyp=3 Nastychoice(8)\ Intel=0 Nastychoice(8)\ Shield=4 Nastychoice(8)\ Points=30 Nastychoice(8)\ SSpeedX=0 Nastychoice(8)\ SSpeedY=0 Nastychoice(8)\ trailNr=4 ; AlienHunter1 (Jaeger) Nastychoice(9)\ SPict=53 Nastychoice(9)\ SWidth=ShapeWidth(Nastychoice(9)\SPict) Nastychoice(9)\ SHeight=ShapeHeight(Nastychoice(9)\SPict)/5 Nastychoice(9)\ WeaponNr1=6 Nastychoice(9)\ WeaponNr2=6 Nastychoice(9)\ WeaponNr3=6 Nastychoice(9)\ WeaponNr4=6 Nastychoice(9)\ WXplus=(Nastychoice(9)\SWidth ASR 1)-(Nastyshooters(Nastychoice(9)\WeaponNr1)\Width ASR 1) Nastychoice(9)\ WeaponDb=0 Nastychoice(9)\ SMovTyp=0 Nastychoice(9)\ Intel=0 Nastychoice(9)\ Shield=4 Nastychoice(9)\ Points=40 Nastychoice(9)\ SSpeedX=1 Nastychoice(9)\ SSpeedY=3 ; AlienHunter2 (Jaeger) Nastychoice(10)\ SPict=54 Nastychoice(10)\ SWidth=ShapeWidth(Nastychoice(10)\SPict) Nastychoice(10)\ SHeight=ShapeHeight(Nastychoice(10)\SPict)/5 Nastychoice(10)\ WeaponNr1=7 Nastychoice(10)\ WeaponNr2=7 Nastychoice(10)\ WeaponNr3=7 Nastychoice(10)\ WeaponNr4=7 Nastychoice(10)\ WXplus=(Nastychoice(10)\SWidth ASR 1)-(Nastyshooters(Nastychoice(10)\WeaponNr1)\Width ASR 1) Nastychoice(10)\ WeaponDb=0 Nastychoice(10)\ SMovTyp=0 Nastychoice(10)\ Intel=0 Nastychoice(10)\ Shield=8 Nastychoice(10)\ Points=60 Nastychoice(10)\ SSpeedX=1 Nastychoice(10)\ SSpeedY=2 ; AlienJaeger3 Nastychoice(11)\ SPict=55 Nastychoice(11)\ SWidth=ShapeWidth(Nastychoice(11)\SPict) Nastychoice(11)\ SHeight=ShapeHeight(Nastychoice(11)\SPict)/5 Nastychoice(11)\ WeaponNr1=8 Nastychoice(11)\ WeaponNr2=8 Nastychoice(11)\ WeaponNr3=8 Nastychoice(11)\ WeaponNr4=8 Nastychoice(11)\ WXplus=(Nastychoice(11)\SWidth ASR 1)-(Nastyshooters(Nastychoice(11)\WeaponNr1)\Width ASR 1) Nastychoice(11)\ WeaponDb=0 Nastychoice(11)\ SMovTyp=0 Nastychoice(11)\ Intel=0 Nastychoice(11)\ Shield=10 Nastychoice(11)\ Points=80 Nastychoice(11)\ SSpeedX=1 Nastychoice(11)\ SSpeedY=2 ; EndNasty2 Nastychoice(12)\ SPict=59 Nastychoice(12)\ SWidth=ShapeWidth(Nastychoice(12)\SPict) Nastychoice(12)\ SHeight=ShapeHeight(Nastychoice(12)\SPict)/5 Nastychoice(12)\ WeaponNr1=2 Nastychoice(12)\ WeaponNr2=9 Nastychoice(12)\ WeaponNr3=9 Nastychoice(12)\ WeaponNr4=9 Nastychoice(12)\ WXplus=(Nastychoice(12)\SWidth ASR 1)-(Nastyshooters(Nastychoice(12)\WeaponNr1)\Width ASR 1) Nastychoice(12)\ WeaponDb=0 Nastychoice(12)\ SMovTyp=1 Nastychoice(12)\ Intel=0 Nastychoice(12)\ Shield=150 Nastychoice(12)\ Points=1500 Nastychoice(12)\ SSpeedX=1 Nastychoice(12)\ SSpeedY=1 Nastychoice(12)\SBorderX1=0 Nastychoice(12)\SBorderX2=320-Nastychoice(12)\SHeight Nastychoice(12)\SBorderY1=8 Nastychoice(12)\SBorderY2=255-Nastychoice(12)\SWidth ; AlienDrohne2 Nastychoice(13)\ SPict=61 Nastychoice(13)\ SWidth=ShapeWidth(Nastychoice(13)\SPict) Nastychoice(13)\ SHeight=ShapeHeight(Nastychoice(13)\SPict)/5 Nastychoice(13)\ WeaponNr1=10 Nastychoice(13)\ WeaponNr2=10 Nastychoice(13)\ WeaponNr3=10 Nastychoice(13)\ WeaponNr4=10 Nastychoice(13)\ WXplus=(Nastychoice(13)\SWidth ASR 1)-(Nastyshooters(Nastychoice(13)\WeaponNr1)\Width ASR 1) Nastychoice(13)\ WeaponDb=0 Nastychoice(13)\ SMovTyp=1 Nastychoice(13)\ Intel=0 Nastychoice(13)\ Shield=15 Nastychoice(13)\ Points=100 Nastychoice(13)\ SSpeedX=1 Nastychoice(13)\ SSpeedY=1 Nastychoice(13)\SBorderX1=0 Nastychoice(13)\SBorderX2=320-Nastychoice(13)\SHeight Nastychoice(13)\SBorderY1=8 Nastychoice(13)\SBorderY2=127-Nastychoice(13)\SWidth ; Jaeger2 Nastychoice(14)\ SPict=63 Nastychoice(14)\ SWidth=ShapeWidth(Nastychoice(14)\SPict) Nastychoice(14)\ SHeight=ShapeHeight(Nastychoice(14)\SPict)/5 Nastychoice(14)\ WeaponNr1=11 Nastychoice(14)\ WeaponNr2=11 Nastychoice(14)\ WeaponNr3=11 Nastychoice(14)\ WeaponNr4=11 Nastychoice(14)\ WXplus=(Nastychoice(14)\SWidth ASR 1)-(Nastyshooters(Nastychoice(14)\WeaponNr1)\Width ASR 1) Nastychoice(14)\ WeaponDb=0 Nastychoice(14)\ SMovTyp=0 Nastychoice(14)\ Intel=0 Nastychoice(14)\ Shield=8 Nastychoice(14)\ Points=150 Nastychoice(14)\ SSpeedX=1 Nastychoice(14)\ SSpeedY=2 ; RaketenJaeger Nastychoice(15)\ SPict=64 Nastychoice(15)\ SWidth=ShapeWidth(Nastychoice(15)\SPict) Nastychoice(15)\ SHeight=ShapeHeight(Nastychoice(15)\SPict)/5 Nastychoice(15)\ WeaponNr1=12 Nastychoice(15)\ WeaponNr2=12 Nastychoice(15)\ WeaponNr3=12 Nastychoice(15)\ WeaponNr4=12 Nastychoice(15)\ WXplus=(Nastychoice(15)\SWidth ASR 1)-(Nastyshooters(Nastychoice(15)\WeaponNr1)\Width ASR 1) Nastychoice(15)\ WeaponDb=0 Nastychoice(15)\ SMovTyp=1 Nastychoice(15)\ Intel=0 Nastychoice(15)\ Shield=16 Nastychoice(15)\ Points=200 Nastychoice(15)\ SSpeedX=4 Nastychoice(15)\ SSpeedY=1 Nastychoice(15)\SBorderX1=0 Nastychoice(15)\SBorderX2=320-Nastychoice(15)\SHeight Nastychoice(15)\SBorderY1=8 Nastychoice(15)\SBorderY2=127-Nastychoice(15)\SWidth ; Bomber Nastychoice(16)\ SPict=65 Nastychoice(16)\ SWidth=ShapeWidth(Nastychoice(16)\SPict) Nastychoice(16)\ SHeight=ShapeHeight(Nastychoice(16)\SPict)/5 Nastychoice(16)\ WeaponNr1=2 Nastychoice(16)\ WeaponNr2=13 Nastychoice(16)\ WeaponNr3=13 Nastychoice(16)\ WeaponNr4=13 Nastychoice(16)\ WXplus=(Nastychoice(16)\SWidth ASR 1)-(Nastyshooters(Nastychoice(16)\WeaponNr1)\Width ASR 1) Nastychoice(16)\ WeaponDb=0 Nastychoice(16)\ SMovTyp=0 Nastychoice(16)\ Intel=0 Nastychoice(16)\ Shield=24 Nastychoice(16)\ Points=250 Nastychoice(16)\ SSpeedX=1 Nastychoice(16)\ SSpeedY=1 ; Jaeger3 Nastychoice(17)\ SPict=66 Nastychoice(17)\ SWidth=ShapeWidth(Nastychoice(17)\SPict) Nastychoice(17)\ SHeight=ShapeHeight(Nastychoice(17)\SPict)/5 Nastychoice(17)\ WeaponNr1=14 Nastychoice(17)\ WeaponNr2=14 Nastychoice(17)\ WeaponNr3=26 Nastychoice(17)\ WeaponNr4=26 Nastychoice(17)\ WXplus=(Nastychoice(17)\SWidth ASR 1)-(Nastyshooters(Nastychoice(17)\WeaponNr1)\Width ASR 1) Nastychoice(17)\ WeaponDb=0 Nastychoice(17)\ SMovTyp=0 Nastychoice(17)\ Intel=0 Nastychoice(17)\ Shield=8 Nastychoice(17)\ Points=150 Nastychoice(17)\ SSpeedX=2 Nastychoice(17)\ SSpeedY=3 ; Kanone Nastychoice(18)\ SPict=67 Nastychoice(18)\ SWidth=ShapeWidth(Nastychoice(18)\SPict) Nastychoice(18)\ SHeight=ShapeHeight(Nastychoice(18)\SPict)/5 Nastychoice(18)\ WeaponNr1=15 Nastychoice(18)\ WeaponNr2=15 Nastychoice(18)\ WeaponNr3=15 Nastychoice(18)\ WeaponNr4=15 Nastychoice(18)\ WXplus=(Nastychoice(18)\SWidth ASR 1)-(Nastyshooters(Nastychoice(18)\WeaponNr1)\Width ASR 1) Nastychoice(18)\ WeaponDb=0 Nastychoice(18)\ SMovTyp=0 Nastychoice(18)\ Intel=0 Nastychoice(18)\ Shield=24 Nastychoice(18)\ Points=300 Nastychoice(18)\ SSpeedX=0 Nastychoice(18)\ SSpeedY=1 ; Drohne7 Nastychoice(19)\ SPict=68 Nastychoice(19)\ SWidth=ShapeWidth(Nastychoice(19)\SPict) Nastychoice(19)\ SHeight=ShapeHeight(Nastychoice(19)\SPict)/5 Nastychoice(19)\ WeaponNr1=17 Nastychoice(19)\ WeaponNr2=17 Nastychoice(19)\ WeaponNr3=17 Nastychoice(19)\ WeaponNr4=17 Nastychoice(19)\ WXplus=(Nastychoice(19)\SWidth ASR 1)-(Nastyshooters(Nastychoice(19)\WeaponNr1)\Width ASR 1) Nastychoice(19)\ WeaponDb=0 Nastychoice(19)\ SMovTyp=3 Nastychoice(19)\ Intel=0 Nastychoice(19)\ Shield=5 Nastychoice(19)\ Points=45 Nastychoice(19)\ SSpeedX=1 Nastychoice(19)\ SSpeedY=1 Nastychoice(19)\ trailNr=5 ; Asteroid Nastychoice(20)\ SPict=69 Nastychoice(20)\ SWidth=ShapeWidth(Nastychoice(20)\SPict) Nastychoice(20)\ SHeight=ShapeHeight(Nastychoice(20)\SPict)/5 Nastychoice(20)\ WeaponNr1=16 Nastychoice(20)\ WeaponNr2=16 Nastychoice(20)\ WeaponNr3=16 Nastychoice(20)\ WeaponNr4=16 Nastychoice(20)\ WXplus=(Nastychoice(20)\SWidth ASR 1)-(Nastyshooters(Nastychoice(20)\WeaponNr1)\Width ASR 1) Nastychoice(20)\ WeaponDb=0 Nastychoice(20)\ SMovTyp=0 Nastychoice(20)\ Intel=0 Nastychoice(20)\ Shield=32 Nastychoice(20)\ Points=200 Nastychoice(20)\ SSpeedX=1 Nastychoice(20)\ SSpeedY=2 ; EndNasty3 Nastychoice(21)\ SPict=70 Nastychoice(21)\ SWidth=ShapeWidth(Nastychoice(21)\SPict) Nastychoice(21)\ SHeight=ShapeHeight(Nastychoice(21)\SPict)/5 Nastychoice(21)\ WeaponNr1=5 Nastychoice(21)\ WeaponNr2=13 Nastychoice(21)\ WeaponNr3=14 Nastychoice(21)\ WeaponNr4=17 Nastychoice(21)\ WXplus=(Nastychoice(21)\SWidth ASR 1)-(Nastyshooters(Nastychoice(21)\WeaponNr1)\Width ASR 1) Nastychoice(21)\ WeaponDb=0 Nastychoice(21)\ SMovTyp=1 Nastychoice(21)\ Intel=0 Nastychoice(21)\ Shield=300 Nastychoice(21)\ Points=2000 Nastychoice(21)\ SSpeedX=2 Nastychoice(21)\ SSpeedY=2 Nastychoice(21)\SBorderX1=0 Nastychoice(21)\SBorderX2=320-Nastychoice(21)\SHeight Nastychoice(21)\SBorderY1=8 Nastychoice(21)\SBorderY2=255-Nastychoice(21)\SWidth ; PlantAlien1 Nastychoice(22)\ SPict=81 Nastychoice(22)\ SWidth=ShapeWidth(Nastychoice(22)\SPict) Nastychoice(22)\ SHeight=ShapeHeight(Nastychoice(22)\SPict)/5 Nastychoice(22)\ WeaponNr1=19 Nastychoice(22)\ WeaponNr2=19 Nastychoice(22)\ WeaponNr3=19 Nastychoice(22)\ WeaponNr4=19 Nastychoice(22)\ WXplus=(Nastychoice(22)\SWidth ASR 1)-(Nastyshooters(Nastychoice(22)\WeaponNr1)\Width ASR 1) Nastychoice(22)\ WeaponDb=0 Nastychoice(22)\ SMovTyp=0 Nastychoice(22)\ Intel=0 Nastychoice(22)\ Shield=12 Nastychoice(22)\ Points=120 Nastychoice(22)\ SSpeedX=1 Nastychoice(22)\ SSpeedY=2 ; PlantAlien2 Nastychoice(23)\ SPict=82 Nastychoice(23)\ SWidth=ShapeWidth(Nastychoice(23)\SPict) Nastychoice(23)\ SHeight=ShapeHeight(Nastychoice(23)\SPict)/5 Nastychoice(23)\ WeaponNr1=20 Nastychoice(23)\ WeaponNr2=20 Nastychoice(23)\ WeaponNr3=20 Nastychoice(23)\ WeaponNr4=20 Nastychoice(23)\ WXplus=(Nastychoice(23)\SWidth ASR 1)-(Nastyshooters(Nastychoice(23)\WeaponNr1)\Width ASR 1) Nastychoice(23)\ WeaponDb=0 Nastychoice(23)\ SMovTyp=0 Nastychoice(23)\ Intel=0 Nastychoice(23)\ Shield=12 Nastychoice(23)\ Points=180 Nastychoice(23)\ SSpeedX=1 Nastychoice(23)\ SSpeedY=4 ; PlantAlien3 Nastychoice(24)\ SPict=83 Nastychoice(24)\ SWidth=ShapeWidth(Nastychoice(24)\SPict) Nastychoice(24)\ SHeight=ShapeHeight(Nastychoice(24)\SPict)/5 Nastychoice(24)\ WeaponNr1=21 Nastychoice(24)\ WeaponNr2=21 Nastychoice(24)\ WeaponNr3=21 Nastychoice(24)\ WeaponNr4=21 Nastychoice(24)\ WXplus=(Nastychoice(24)\SWidth ASR 1)-(Nastyshooters(Nastychoice(24)\WeaponNr1)\Width ASR 1) Nastychoice(24)\ WeaponDb=0 Nastychoice(24)\ SMovTyp=0 Nastychoice(24)\ Intel=0 Nastychoice(24)\ Shield=6 Nastychoice(24)\ Points=100 Nastychoice(24)\ SSpeedX=2 Nastychoice(24)\ SSpeedY=1 ; PlantDrohne1 Nastychoice(25)\ SPict=84 Nastychoice(25)\ SWidth=ShapeWidth(Nastychoice(25)\SPict) Nastychoice(25)\ SHeight=ShapeHeight(Nastychoice(25)\SPict)/5 Nastychoice(25)\ WeaponNr1=18 Nastychoice(25)\ WeaponNr2=18 Nastychoice(25)\ WeaponNr3=18 Nastychoice(25)\ WeaponNr4=18 Nastychoice(25)\ WXplus=(Nastychoice(25)\SWidth ASR 1)-(Nastyshooters(Nastychoice(25)\WeaponNr1)\Width ASR 1) Nastychoice(25)\ WeaponDb=0 Nastychoice(25)\ SMovTyp=3 Nastychoice(25)\ Intel=0 Nastychoice(25)\ Shield=6 Nastychoice(25)\ Points=70 Nastychoice(25)\ SSpeedX=2 Nastychoice(25)\ SSpeedY=2 Nastychoice(25)\ trailNr=6 ; PlantDrohne2 Nastychoice(26)\ SPict=85 Nastychoice(26)\ SWidth=ShapeWidth(Nastychoice(26)\SPict) Nastychoice(26)\ SHeight=ShapeHeight(Nastychoice(26)\SPict)/5 Nastychoice(26)\ WeaponNr1=5 Nastychoice(26)\ WeaponNr2=5 Nastychoice(26)\ WeaponNr3=5 Nastychoice(26)\ WeaponNr4=5 Nastychoice(26)\ WXplus=(Nastychoice(26)\SWidth ASR 1)-(Nastyshooters(Nastychoice(26)\WeaponNr1)\Width ASR 1) Nastychoice(26)\ WeaponDb=0 Nastychoice(26)\ SMovTyp=3 Nastychoice(26)\ Intel=0 Nastychoice(26)\ Shield=6 Nastychoice(26)\ Points=50 Nastychoice(26)\ SSpeedX=2 Nastychoice(26)\ SSpeedY=2 Nastychoice(26)\ trailNr=7 ; PlantDrohne3 Nastychoice(27)\ SPict=86 Nastychoice(27)\ SWidth=ShapeWidth(Nastychoice(27)\SPict) Nastychoice(27)\ SHeight=ShapeHeight(Nastychoice(27)\SPict)/5 Nastychoice(27)\ WeaponNr1=2 Nastychoice(27)\ WeaponNr2=2 Nastychoice(27)\ WeaponNr3=2 Nastychoice(27)\ WeaponNr4=2 Nastychoice(27)\ WXplus=(Nastychoice(27)\SWidth ASR 1)-(Nastyshooters(Nastychoice(27)\WeaponNr1)\Width ASR 1) Nastychoice(27)\ WeaponDb=0 Nastychoice(27)\ SMovTyp=1 Nastychoice(27)\ Intel=0 Nastychoice(27)\ Shield=18 Nastychoice(27)\ Points=150 Nastychoice(27)\ SSpeedX=2 Nastychoice(27)\ SSpeedY=2 Nastychoice(27)\SBorderX1=0 Nastychoice(27)\SBorderX2=320-Nastychoice(27)\SHeight Nastychoice(27)\SBorderY1=8 Nastychoice(27)\SBorderY2=127-Nastychoice(27)\SWidth ; PlantKamikaze Nastychoice(28)\ SPict=87 Nastychoice(28)\ SWidth=ShapeWidth(Nastychoice(28)\SPict) Nastychoice(28)\ SHeight=ShapeHeight(Nastychoice(28)\SPict)/5 Nastychoice(28)\ WeaponNr1=17 Nastychoice(28)\ WeaponNr2=17 Nastychoice(28)\ WeaponNr3=17 Nastychoice(28)\ WeaponNr4=17 Nastychoice(28)\ WXplus=(Nastychoice(28)\SWidth ASR 1)-(Nastyshooters(Nastychoice(28)\WeaponNr1)\Width ASR 1) Nastychoice(28)\ WeaponDb=0 Nastychoice(28)\ SMovTyp=2 Nastychoice(28)\ Intel=0 Nastychoice(28)\ Shield=12 Nastychoice(28)\ Points=200 Nastychoice(28)\ SSpeedX=3 Nastychoice(28)\ SSpeedY=3 ; EndNasty4 Nastychoice(29)\ SPict=93 Nastychoice(29)\ SWidth=ShapeWidth(Nastychoice(29)\SPict) Nastychoice(29)\ SHeight=ShapeHeight(Nastychoice(29)\SPict)/5 Nastychoice(29)\ WeaponNr1=2 Nastychoice(29)\ WeaponNr2=2 Nastychoice(29)\ WeaponNr3=22 Nastychoice(29)\ WeaponNr4=22 Nastychoice(29)\ WXplus=(Nastychoice(29)\SWidth ASR 1)-(Nastyshooters(Nastychoice(29)\WeaponNr1)\Width ASR 1) Nastychoice(29)\ WeaponDb=0 Nastychoice(29)\ SMovTyp=1 Nastychoice(29)\ Intel=0 Nastychoice(29)\ Shield=150 Nastychoice(29)\ Points=1000 Nastychoice(29)\ SSpeedX=2 Nastychoice(29)\ SSpeedY=2 Nastychoice(29)\SBorderX1=0 Nastychoice(29)\SBorderX2=320-Nastychoice(29)\SHeight Nastychoice(29)\SBorderY1=8 Nastychoice(29)\SBorderY2=191-Nastychoice(29)\SWidth ; Dreadnought1 Nastychoice(30)\ SPict=95 Nastychoice(30)\ SWidth=ShapeWidth(Nastychoice(30)\SPict) Nastychoice(30)\ SHeight=ShapeHeight(Nastychoice(30)\SPict)/5 Nastychoice(30)\ WeaponNr1=23 Nastychoice(30)\ WeaponNr2=23 Nastychoice(30)\ WeaponNr3=23 Nastychoice(30)\ WeaponNr4=23 Nastychoice(30)\ WXplus=(Nastychoice(30)\SWidth ASR 1)-(Nastyshooters(Nastychoice(30)\WeaponNr1)\Width ASR 1) Nastychoice(30)\ WeaponDb=0 Nastychoice(30)\ SMovTyp=0 Nastychoice(30)\ Intel=0 Nastychoice(30)\ Shield=24 Nastychoice(30)\ Points=250 Nastychoice(30)\ SSpeedX=1 Nastychoice(30)\ SSpeedY=2 ; Dreadnought2 Nastychoice(31)\ SPict=96 Nastychoice(31)\ SWidth=ShapeWidth(Nastychoice(31)\SPict) Nastychoice(31)\ SHeight=ShapeHeight(Nastychoice(31)\SPict)/5 Nastychoice(31)\ WeaponNr1=2 Nastychoice(31)\ WeaponNr2=17 Nastychoice(31)\ WeaponNr3=24 Nastychoice(31)\ WeaponNr4=24 Nastychoice(31)\ WXplus=(Nastychoice(31)\SWidth ASR 1)-(Nastyshooters(Nastychoice(31)\WeaponNr1)\Width ASR 1) Nastychoice(31)\ WeaponDb=0 Nastychoice(31)\ SMovTyp=0 Nastychoice(31)\ Intel=0 Nastychoice(31)\ Shield=24 Nastychoice(31)\ Points=350 Nastychoice(31)\ SSpeedX=1 Nastychoice(31)\ SSpeedY=2 ; Dreadnought3 Nastychoice(32)\ SPict=97 Nastychoice(32)\ SWidth=ShapeWidth(Nastychoice(32)\SPict) Nastychoice(32)\ SHeight=ShapeHeight(Nastychoice(32)\SPict)/5 Nastychoice(32)\ WeaponNr1=25 Nastychoice(32)\ WeaponNr2=25 Nastychoice(32)\ WeaponNr3=2 Nastychoice(32)\ WeaponNr4=2 Nastychoice(32)\ WXplus=(Nastychoice(32)\SWidth ASR 1)-(Nastyshooters(Nastychoice(32)\WeaponNr1)\Width ASR 1) Nastychoice(32)\ WeaponDb=0 Nastychoice(32)\ SMovTyp=0 Nastychoice(32)\ Intel=0 Nastychoice(32)\ Shield=24 Nastychoice(32)\ Points=300 Nastychoice(32)\ SSpeedX=0 Nastychoice(32)\ SSpeedY=2 ; Drohne8 Nastychoice(33)\ SPict=102 Nastychoice(33)\ SWidth=ShapeWidth(Nastychoice(33)\SPict) Nastychoice(33)\ SHeight=ShapeHeight(Nastychoice(33)\SPict)/5 Nastychoice(33)\ WeaponNr1=12 Nastychoice(33)\ WeaponNr2=12 Nastychoice(33)\ WeaponNr3=12 Nastychoice(33)\ WeaponNr4=12 Nastychoice(33)\ WXplus=(Nastychoice(33)\SWidth ASR 1)-(Nastyshooters(Nastychoice(33)\WeaponNr1)\Width ASR 1) Nastychoice(33)\ WeaponDb=0 Nastychoice(33)\ SMovTyp=3 Nastychoice(33)\ Intel=0 Nastychoice(33)\ Shield=8 Nastychoice(33)\ Points=80 Nastychoice(33)\ SSpeedX=2 Nastychoice(33)\ SSpeedY=2 Nastychoice(33)\ trailNr=8 ; EndNasty5 Nastychoice(34)\ SPict=98 Nastychoice(34)\ SWidth=ShapeWidth(Nastychoice(34)\SPict) Nastychoice(34)\ SHeight=ShapeHeight(Nastychoice(34)\SPict)/5 Nastychoice(34)\ WeaponNr1=2 Nastychoice(34)\ WeaponNr2=3 Nastychoice(34)\ WeaponNr3=9 Nastychoice(34)\ WeaponNr4=17 Nastychoice(34)\ WXplus=(Nastychoice(34)\SWidth ASR 1)-(Nastyshooters(Nastychoice(34)\WeaponNr1)\Width ASR 1) Nastychoice(34)\ WeaponDb=0 Nastychoice(34)\ SMovTyp=1 Nastychoice(34)\ Intel=0 Nastychoice(34)\ Shield=400 Nastychoice(34)\ Points=2500 Nastychoice(34)\ SSpeedX=2 Nastychoice(34)\ SSpeedY=2 Nastychoice(34)\SBorderX1=0 Nastychoice(34)\SBorderX2=320-Nastychoice(34)\SHeight Nastychoice(34)\SBorderY1=8 Nastychoice(34)\SBorderY2=191-Nastychoice(34)\SWidth ; Basis Nastychoice(35)\ SPict=103 Nastychoice(35)\ SWidth=ShapeWidth(Nastychoice(35)\SPict) Nastychoice(35)\ SHeight=ShapeHeight(Nastychoice(35)\SPict)/5 Nastychoice(35)\ WeaponNr1=2 Nastychoice(35)\ WeaponNr2=2 Nastychoice(35)\ WeaponNr3=17 Nastychoice(35)\ WeaponNr4=17 Nastychoice(35)\ WXplus=(Nastychoice(35)\SWidth ASR 1)-(Nastyshooters(Nastychoice(35)\WeaponNr1)\Width ASR 1) Nastychoice(35)\ WeaponDb=0 Nastychoice(35)\ SMovTyp=0 Nastychoice(35)\ Intel=0 Nastychoice(35)\ Shield=12 Nastychoice(35)\ Points=200 Nastychoice(35)\ SSpeedX=0 Nastychoice(35)\ SSpeedY=1 ; EndNasty6 Nastychoice(36)\ SPict=104 Nastychoice(36)\ SWidth=ShapeWidth(Nastychoice(36)\SPict) Nastychoice(36)\ SHeight=ShapeHeight(Nastychoice(36)\SPict)/5 Nastychoice(36)\ WeaponNr1=27 Nastychoice(36)\ WeaponNr2=27 Nastychoice(36)\ WeaponNr3=17 Nastychoice(36)\ WeaponNr4=17 Nastychoice(36)\ WXplus=(Nastychoice(36)\SWidth ASR 1)-(Nastyshooters(Nastychoice(36)\WeaponNr1)\Width ASR 1) Nastychoice(36)\ WeaponDb=0 Nastychoice(36)\ SMovTyp=1 Nastychoice(36)\ Intel=0 Nastychoice(36)\ Shield=500 Nastychoice(36)\ Points=5000 Nastychoice(36)\ SSpeedX=1 Nastychoice(36)\ SSpeedY=2 Nastychoice(36)\SBorderX1=0 Nastychoice(36)\SBorderX2=320-Nastychoice(35)\SHeight Nastychoice(36)\SBorderY1=8 Nastychoice(36)\SBorderY2=255-Nastychoice(35)\SWidth ; Movements of the meanies (?) .VarHeadtrailen: Dim L.trail(9) ; Drohne1-trail L(0)\x=0 L(0)\y=8 L(0)\Counter[0]=100 L(0)\ SpeedX[0]=3 L(0)\ SpeedY[0]=0 L(0)\Counter[1]=9 L(0)\ SpeedX[1]=0 L(0)\ SpeedY[1]=3 L(0)\Counter[2]=100 L(0)\ SpeedX[2]=-3 L(0)\ SpeedY[2]=0 L(0)\Counter[3]=9 L(0)\ SpeedX[3]=0 L(0)\ SpeedY[3]=3 L(0)\Counter[4]=100 L(0)\ SpeedX[4]=3 L(0)\ SpeedY[4]=0 L(0)\Counter[5]=9 L(0)\ SpeedX[5]=0 L(0)\ SpeedY[5]=3 L(0)\Counter[6]=100 L(0)\ SpeedX[6]=-3 L(0)\ SpeedY[6]=0 L(0)\Counter[7]=9 L(0)\ SpeedX[7]=0 L(0)\ SpeedY[7]=3 L(0)\Counter[8]=100 L(0)\ SpeedX[8]=3 L(0)\ SpeedY[8]=0 L(0)\Counter[9]=9 L(0)\ SpeedX[9]=0 L(0)\ SpeedY[9]=3 L(0)\Counter[10]=100 L(0)\ SpeedX[10]=-3 L(0)\ SpeedY[10]=0 L(0)\Counter[11]=9 L(0)\ SpeedX[11]=0 L(0)\ SpeedY[11]=3 L(0)\Counter[12]=101 L(0)\ SpeedX[12]=3 L(0)\ SpeedY[12]=0 ; Drohne2-trail L(1)\x=298 L(1)\y=9 L(1)\Counter[0]=99 L(1)\ SpeedX[0]=-3 L(1)\ SpeedY[0]=1 L(1)\Counter[1]=49 L(1)\ SpeedX[1]=3 L(1)\ SpeedY[1]=1 L(1)\Counter[2]=50 L(1)\ SpeedX[2]=3 L(1)\ SpeedY[2]=-1 L(1)\Counter[3]=100 L(1)\ SpeedX[3]=-3 L(1)\ SpeedY[3]=-1 ; EndNasty1-trail L(2)\x=131 L(2)\y=8 L(2)\Counter[0]=50 L(2)\ SpeedX[0]=0 L(2)\ SpeedY[0]=1 ; Drohne4-trail L(3)\x=32 L(3)\y=8 L(3)\Counter[0]=8 L(3)\ SpeedX[0]=0 L(3)\ SpeedY[0]=4 L(3)\Counter[1]=60 L(3)\ SpeedX[1]=4 L(3)\ SpeedY[1]=0 L(3)\Counter[2]=8 L(3)\ SpeedX[2]=0 L(3)\ SpeedY[2]=4 L(3)\Counter[3]=60 L(3)\ SpeedX[3]=-4 L(3)\ SpeedY[3]=0 L(3)\Counter[4]=8 L(3)\ SpeedX[4]=0 L(3)\ SpeedY[4]=4 L(3)\Counter[5]=60 L(3)\ SpeedX[5]=4 L(3)\ SpeedY[5]=0 L(3)\Counter[6]=8 L(3)\ SpeedX[6]=0 L(3)\ SpeedY[6]=4 L(3)\Counter[7]=80 L(3)\ SpeedX[7]=-4 L(3)\ SpeedY[7]=0 L(3)\Counter[8]=0 L(3)\ SpeedX[8]=-4 L(3)\ SpeedY[8]=4 ; AlienDrohne1trail L(4)\x=153 L(4)\y=8 L(4)\Counter[0]=38 L(4)\ SpeedX[0]=-4 L(4)\ SpeedY[0]=1 L(4)\Counter[1]=38 L(4)\ SpeedX[1]=4 L(4)\ SpeedY[1]=1 L(4)\Counter[2]=38 L(4)\ SpeedX[2]=4 L(4)\ SpeedY[2]=-1 L(4)\Counter[3]=38 L(4)\ SpeedX[3]=-4 L(4)\ SpeedY[3]=-1 L(4)\Counter[4]=38 L(4)\ SpeedX[4]=-4 L(4)\ SpeedY[4]=2 L(4)\Counter[5]=38 L(4)\ SpeedX[5]=4 L(4)\ SpeedY[5]=2 L(4)\Counter[6]=38 L(4)\ SpeedX[6]=4 L(4)\ SpeedY[6]=-1 L(4)\Counter[7]=38 L(4)\ SpeedX[7]=-4 L(4)\ SpeedY[7]=-1 L(4)\Counter[8]=38 L(4)\ SpeedX[8]=-4 L(4)\ SpeedY[8]=2 L(4)\Counter[9]=50 L(4)\ SpeedX[9]=4 L(4)\ SpeedY[9]=2 ; Drohne7-trail L(5)\x=298 L(5)\y=9 L(5)\Counter[0]=74 L(5)\ SpeedX[0]=-4 L(5)\ SpeedY[0]=1 L(5)\Counter[1]=37 L(5)\ SpeedX[1]=4 L(5)\ SpeedY[1]=1 L(5)\Counter[2]=37 L(5)\ SpeedX[2]=4 L(5)\ SpeedY[2]=-1 L(5)\Counter[3]=100 L(5)\ SpeedX[3]=-4 L(5)\ SpeedY[3]=-1 ; PlantDrohne1-trail L(6)\x=150 L(6)\y=8 L(6)\Counter[0]=30 L(6)\ SpeedX[0]=0 L(6)\ SpeedY[0]=5 L(6)\Counter[1]=28 L(6)\ SpeedX[1]=-4 L(6)\ SpeedY[1]=-5 L(6)\Counter[2]=50 L(6)\ SpeedX[2]=5 L(6)\ SpeedY[2]=1 L(6)\Counter[3]=50 L(6)\ SpeedX[3]=-5 L(6)\ SpeedY[3]=2 L(6)\Counter[4]=50 L(6)\ SpeedX[4]=5 L(6)\ SpeedY[4]=-1 L(6)\Counter[5]=60 L(6)\ SpeedX[5]=-5 L(6)\ SpeedY[5]=-1 ; PlantDrohne2-trail L(7)\x=303 L(7)\y=8 L(7)\Counter[0]=75 L(7)\ SpeedX[0]=-4 L(7)\ SpeedY[0]=0 L(7)\Counter[1]=32 L(7)\ SpeedX[1]=0 L(7)\ SpeedY[1]=4 L(7)\Counter[2]=75 L(7)\ SpeedX[2]=4 L(7)\ SpeedY[2]=0 L(7)\Counter[3]=24 L(7)\ SpeedX[3]=0 L(7)\ SpeedY[3]=-4 L(7)\Counter[4]=65 L(7)\ SpeedX[4]=-4 L(7)\ SpeedY[4]=0 L(7)\Counter[5]=16 L(7)\ SpeedX[5]=0 L(7)\ SpeedY[5]=4 L(7)\Counter[6]=55 L(7)\ SpeedX[6]=4 L(7)\ SpeedY[6]=0 L(7)\Counter[7]=8 L(7)\ SpeedX[7]=0 L(7)\ SpeedY[7]=-4 L(7)\Counter[8]=75 L(7)\ SpeedX[8]=-4 L(7)\ SpeedY[8]=0 ; Drohne8-trail L(8)\x=0 L(8)\y=8 L(8)\Counter[0]=55 L(8)\ SpeedX[0]=0 L(8)\ SpeedY[0]=4 L(8)\Counter[1]=8 L(8)\ SpeedX[1]=4 L(8)\ SpeedY[1]=0 L(8)\Counter[2]=55 L(8)\ SpeedX[2]=0 L(8)\ SpeedY[2]=-4 L(8)\Counter[3]=20 L(8)\ SpeedX[3]=4 L(8)\ SpeedY[3]=0 L(8)\Counter[4]=55 L(8)\ SpeedX[4]=0 L(8)\ SpeedY[4]=4 L(8)\Counter[5]=8 L(8)\ SpeedX[5]=4 L(8)\ SpeedY[5]=0 L(8)\Counter[6]=55 L(8)\ SpeedX[6]=0 L(8)\ SpeedY[6]=-4 L(8)\Counter[7]=20 L(8)\ SpeedX[7]=4 L(8)\ SpeedY[7]=0 L(8)\Counter[8]=55 L(8)\ SpeedX[8]=0 L(8)\ SpeedY[8]=4 L(8)\Counter[9]=8 L(8)\ SpeedX[9]=4 L(8)\ SpeedY[9]=0 L(8)\Counter[10]=55 L(8)\ SpeedX[10]=0 L(8)\ SpeedY[10]=-4 L(8)\Counter[11]=20 L(8)\ SpeedX[11]=4 L(8)\ SpeedY[11]=0 ; variable instructions for each level .VarLevel: Dim Lev.Level(7) Lev(1)\ R=0 Lev(1)\ G=0 Lev(1)\ B=0 Lev(1)\ Counter=0 Lev(1)\NastyComing[0]=32 Lev(1)\NastyKilled[0]=32 Lev(1)\ NastyCount[0]=5 Lev(1)\ ShotCount[0]=3 Lev(1)\ NastyType1[0]=0 Lev(1)\ NastyType2[0]=0 Lev(1)\ NastyType3[0]=0 Lev(1)\ NastyType4[0]=0 Lev(1)\ NastySpace[0]=10 Lev(1)\NShotSpace[0]=32 Lev(1)\NastyComing[1]=32 Lev(1)\NastyKilled[1]=32 Lev(1)\ NastyCount[1]=3 Lev(1)\ ShotCount[1]=3 Lev(1)\ NastyType1[1]=1 Lev(1)\ NastyType2[1]=1 Lev(1)\ NastyType3[1]=1 Lev(1)\ NastyType4[1]=1 Lev(1)\ NastySpace[1]=10 Lev(1)\NShotSpace[1]=32 Lev(1)\NastyComing[2]=24 Lev(1)\NastyKilled[2]=24 Lev(1)\ NastyCount[2]=4 Lev(1)\ ShotCount[2]=4 Lev(1)\ NastyType1[2]=2 Lev(1)\ NastyType2[2]=2 Lev(1)\ NastyType3[2]=2 Lev(1)\ NastyType4[2]=2 Lev(1)\ NastySpace[2]=50 Lev(1)\NShotSpace[2]=32 Lev(1)\NastyComing[3]=24 Lev(1)\NastyKilled[3]=24 Lev(1)\ NastyCount[3]=5 Lev(1)\ ShotCount[3]=3 Lev(1)\ NastyType1[3]=3 Lev(1)\ NastyType2[3]=3 Lev(1)\ NastyType3[3]=3 Lev(1)\ NastyType4[3]=3 Lev(1)\ NastySpace[3]=25 Lev(1)\NShotSpace[3]=32 Lev(1)\NastyComing[4]=32 Lev(1)\NastyKilled[4]=32 Lev(1)\ NastyCount[4]=4 Lev(1)\ ShotCount[4]=3 Lev(1)\ NastyType1[4]=4 Lev(1)\ NastyType2[4]=4 Lev(1)\ NastyType3[4]=4 Lev(1)\ NastyType4[4]=4 Lev(1)\ NastySpace[4]=10 Lev(1)\NShotSpace[4]=32 Lev(1)\NastyComing[5]=32 Lev(1)\NastyKilled[5]=32 Lev(1)\ NastyCount[5]=5 Lev(1)\ ShotCount[5]=3 Lev(1)\ NastyType1[5]=0 Lev(1)\ NastyType2[5]=0 Lev(1)\ NastyType3[5]=5 Lev(1)\ NastyType4[5]=5 Lev(1)\ NastySpace[5]=10 Lev(1)\NShotSpace[5]=32 Lev(1)\NastyComing[6]=16 Lev(1)\NastyKilled[6]=16 Lev(1)\ NastyCount[6]=5 Lev(1)\ ShotCount[6]=3 Lev(1)\ NastyType1[6]=6 Lev(1)\ NastyType2[6]=6 Lev(1)\ NastyType3[6]=6 Lev(1)\ NastyType4[6]=6 Lev(1)\ NastySpace[6]=25 Lev(1)\NShotSpace[6]=32 Lev(1)\NastyComing[7]=32 Lev(1)\NastyKilled[7]=32 Lev(1)\ NastyCount[7]=4 Lev(1)\ ShotCount[7]=4 Lev(1)\ NastyType1[7]=2 Lev(1)\ NastyType2[7]=2 Lev(1)\ NastyType3[7]=3 Lev(1)\ NastyType4[7]=3 Lev(1)\ NastySpace[7]=25 Lev(1)\NShotSpace[7]=32 Lev(1)\NastyComing[8]=32 Lev(1)\NastyKilled[8]=32 Lev(1)\ NastyCount[8]=5 Lev(1)\ ShotCount[8]=3 Lev(1)\ NastyType1[8]=1 Lev(1)\ NastyType2[8]=4 Lev(1)\ NastyType3[8]=5 Lev(1)\ NastyType4[8]=6 Lev(1)\ NastySpace[8]=25 Lev(1)\NShotSpace[8]=32 Lev(1)\NastyComing[9]=1 Lev(1)\NastyKilled[9]=1 Lev(1)\ NastyCount[9]=1 Lev(1)\ ShotCount[9]=9 Lev(1)\ NastyType1[9]=7 Lev(1)\ NastyType2[9]=7 Lev(1)\ NastyType3[9]=7 Lev(1)\ NastyType4[9]=7 Lev(1)\ NastySpace[9]=1 Lev(1)\NShotSpace[9]=8 Lev(2)\ R=3 Lev(2)\ G=0 Lev(2)\ B=0 Lev(2)\ Counter=0 Lev(2)\NastyComing[0]=32 Lev(2)\NastyKilled[0]=32 Lev(2)\ NastyCount[0]=5 Lev(2)\ ShotCount[0]=3 Lev(2)\ NastyType1[0]=8 Lev(2)\ NastyType2[0]=8 Lev(2)\ NastyType3[0]=8 Lev(2)\ NastyType4[0]=8 Lev(2)\ NastySpace[0]=5 Lev(2)\NShotSpace[0]=32 Lev(2)\NastyComing[1]=32 Lev(2)\NastyKilled[1]=32 Lev(2)\ NastyCount[1]=4 Lev(2)\ ShotCount[1]=3 Lev(2)\ NastyType1[1]=9 Lev(2)\ NastyType2[1]=9 Lev(2)\ NastyType3[1]=9 Lev(2)\ NastyType4[1]=9 Lev(2)\ NastySpace[1]=25 Lev(2)\NShotSpace[1]=32 Lev(2)\NastyComing[2]=32 Lev(2)\NastyKilled[2]=32 Lev(2)\ NastyCount[2]=4 Lev(2)\ ShotCount[2]=3 Lev(2)\ NastyType1[2]=10 Lev(2)\ NastyType2[2]=10 Lev(2)\ NastyType3[2]=10 Lev(2)\ NastyType4[2]=10 Lev(2)\ NastySpace[2]=25 Lev(2)\NShotSpace[2]=32 Lev(2)\NastyComing[3]=16 Lev(2)\NastyKilled[3]=16 Lev(2)\ NastyCount[3]=4 Lev(2)\ ShotCount[3]=3 Lev(2)\ NastyType1[3]=13 Lev(2)\ NastyType2[3]=13 Lev(2)\ NastyType3[3]=13 Lev(2)\ NastyType4[3]=13 Lev(2)\ NastySpace[3]=50 Lev(2)\NShotSpace[3]=32 Lev(2)\NastyComing[4]=16 Lev(2)\NastyKilled[4]=16 Lev(2)\ NastyCount[4]=5 Lev(2)\ ShotCount[4]=4 Lev(2)\ NastyType1[4]=8 Lev(2)\ NastyType2[4]=8 Lev(2)\ NastyType3[4]=9 Lev(2)\ NastyType4[4]=9 Lev(2)\ NastySpace[4]=25 Lev(2)\NShotSpace[4]=32 Lev(2)\NastyComing[5]=32 Lev(2)\NastyKilled[5]=32 Lev(2)\ NastyCount[5]=4 Lev(2)\ ShotCount[5]=3 Lev(2)\ NastyType1[5]=11 Lev(2)\ NastyType2[5]=11 Lev(2)\ NastyType3[5]=11 Lev(2)\ NastyType4[5]=11 Lev(2)\ NastySpace[5]=50 Lev(2)\NShotSpace[5]=32 Lev(2)\NastyComing[6]=32 Lev(2)\NastyKilled[6]=32 Lev(2)\ NastyCount[6]=4 Lev(2)\ ShotCount[6]=3 Lev(2)\ NastyType1[6]=9 Lev(2)\ NastyType2[6]=9 Lev(2)\ NastyType3[6]=10 Lev(2)\ NastyType4[6]=10 Lev(2)\ NastySpace[6]=25 Lev(2)\NShotSpace[6]=32 Lev(2)\NastyComing[7]=32 Lev(2)\NastyKilled[7]=32 Lev(2)\ NastyCount[7]=5 Lev(2)\ ShotCount[7]=3 Lev(2)\ NastyType1[7]=8 Lev(2)\ NastyType2[7]=8 Lev(2)\ NastyType3[7]=13 Lev(2)\ NastyType4[7]=13 Lev(2)\ NastySpace[7]=25 Lev(2)\NShotSpace[7]=32 Lev(2)\NastyComing[8]=32 Lev(2)\NastyKilled[8]=32 Lev(2)\ NastyCount[8]=3 Lev(2)\ ShotCount[8]=3 Lev(2)\ NastyType1[8]=9 Lev(2)\ NastyType2[8]=9 Lev(2)\ NastyType3[8]=10 Lev(2)\ NastyType4[8]=11 Lev(2)\ NastySpace[8]=25 Lev(2)\NShotSpace[8]=32 Lev(2)\NastyComing[9]=1 Lev(2)\NastyKilled[9]=1 Lev(2)\ NastyCount[9]=1 Lev(2)\ ShotCount[9]=9 Lev(2)\ NastyType1[9]=12 Lev(2)\ NastyType2[9]=12 Lev(2)\ NastyType3[9]=12 Lev(2)\ NastyType4[9]=12 Lev(2)\ NastySpace[9]=1 Lev(2)\NShotSpace[9]=12 Lev(3)\ R=0 Lev(3)\ G=0 Lev(3)\ B=4 Lev(3)\ Counter=0 Lev(3)\NastyComing[0]=32 Lev(3)\NastyKilled[0]=32 Lev(3)\ NastyCount[0]=5 Lev(3)\ ShotCount[0]=2 Lev(3)\ NastyType1[0]=19 Lev(3)\ NastyType2[0]=19 Lev(3)\ NastyType3[0]=19 Lev(3)\ NastyType4[0]=19 Lev(3)\ NastySpace[0]=8 Lev(3)\NShotSpace[0]=32 Lev(3)\NastyComing[1]=32 Lev(3)\NastyKilled[1]=32 Lev(3)\ NastyCount[1]=3 Lev(3)\ ShotCount[1]=0 Lev(3)\ NastyType1[1]=20 Lev(3)\ NastyType2[1]=20 Lev(3)\ NastyType3[1]=20 Lev(3)\ NastyType4[1]=20 Lev(3)\ NastySpace[1]=25 Lev(3)\NShotSpace[1]=127 Lev(3)\NastyComing[2]=32 Lev(3)\NastyKilled[2]=32 Lev(3)\ NastyCount[2]=3 Lev(3)\ ShotCount[2]=3 Lev(3)\ NastyType1[2]=17 Lev(3)\ NastyType2[2]=17 Lev(3)\ NastyType3[2]=17 Lev(3)\ NastyType4[2]=20 Lev(3)\ NastySpace[2]=10 Lev(3)\NShotSpace[2]=32 Lev(3)\NastyComing[3]=32 Lev(3)\NastyKilled[3]=32 Lev(3)\ NastyCount[3]=4 Lev(3)\ ShotCount[3]=3 Lev(3)\ NastyType1[3]=15 Lev(3)\ NastyType2[3]=15 Lev(3)\ NastyType3[3]=15 Lev(3)\ NastyType4[3]=20 Lev(3)\ NastySpace[3]=25 Lev(3)\NShotSpace[3]=32 Lev(3)\NastyComing[4]=32 Lev(3)\NastyKilled[4]=32 Lev(3)\ NastyCount[4]=3 Lev(3)\ ShotCount[4]=3 Lev(3)\ NastyType1[4]=16 Lev(3)\ NastyType2[4]=16 Lev(3)\ NastyType3[4]=20 Lev(3)\ NastyType4[4]=20 Lev(3)\ NastySpace[4]=25 Lev(3)\NShotSpace[4]=32 Lev(3)\NastyComing[5]=32 Lev(3)\NastyKilled[5]=32 Lev(3)\ NastyCount[5]=4 Lev(3)\ ShotCount[5]=0 Lev(3)\ NastyType1[5]=20 Lev(3)\ NastyType2[5]=20 Lev(3)\ NastyType3[5]=20 Lev(3)\ NastyType4[5]=20 Lev(3)\ NastySpace[5]=10 Lev(3)\NShotSpace[5]=32 Lev(3)\NastyComing[6]=32 Lev(3)\NastyKilled[6]=32 Lev(3)\ NastyCount[6]=4 Lev(3)\ ShotCount[6]=4 Lev(3)\ NastyType1[6]=14 Lev(3)\ NastyType2[6]=14 Lev(3)\ NastyType3[6]=14 Lev(3)\ NastyType4[6]=14 Lev(3)\ NastySpace[6]=10 Lev(3)\NShotSpace[6]=64 Lev(3)\NastyComing[7]=16 Lev(3)\NastyKilled[7]=16 Lev(3)\ NastyCount[7]=1 Lev(3)\ ShotCount[7]=1 Lev(3)\ NastyType1[7]=15 Lev(3)\ NastyType2[7]=15 Lev(3)\ NastyType3[7]=18 Lev(3)\ NastyType4[7]=18 Lev(3)\ NastySpace[7]=25 Lev(3)\NShotSpace[7]=32 Lev(3)\NastyComing[8]=32 Lev(3)\NastyKilled[8]=32 Lev(3)\ NastyCount[8]=4 Lev(3)\ ShotCount[8]=2 Lev(3)\ NastyType1[8]=19 Lev(3)\ NastyType2[8]=19 Lev(3)\ NastyType3[8]=20 Lev(3)\ NastyType4[8]=20 Lev(3)\ NastySpace[8]=10 Lev(3)\NShotSpace[8]=32 Lev(3)\NastyComing[9]=1 Lev(3)\NastyKilled[9]=1 Lev(3)\ NastyCount[9]=1 Lev(3)\ ShotCount[9]=9 Lev(3)\ NastyType1[9]=21 Lev(3)\ NastyType2[9]=21 Lev(3)\ NastyType3[9]=21 Lev(3)\ NastyType4[9]=21 Lev(3)\ NastySpace[9]=127 Lev(3)\NShotSpace[9]=16 Lev(4)\ R=0 Lev(4)\ G=2 Lev(4)\ B=0 Lev(4)\ Counter=0 Lev(4)\NastyComing[0]=32 Lev(4)\NastyKilled[0]=32 Lev(4)\ NastyCount[0]=5 Lev(4)\ ShotCount[0]=4 Lev(4)\ NastyType1[0]=26 Lev(4)\ NastyType2[0]=26 Lev(4)\ NastyType3[0]=26 Lev(4)\ NastyType4[0]=26 Lev(4)\ NastySpace[0]=5 Lev(4)\NShotSpace[0]=48 Lev(4)\NastyComing[1]=32 Lev(4)\NastyKilled[1]=32 Lev(4)\ NastyCount[1]=4 Lev(4)\ ShotCount[1]=3 Lev(4)\ NastyType1[1]=22 Lev(4)\ NastyType2[1]=22 Lev(4)\ NastyType3[1]=22 Lev(4)\ NastyType4[1]=22 Lev(4)\ NastySpace[1]=25 Lev(4)\NShotSpace[1]=64 Lev(4)\NastyComing[2]=32 Lev(4)\NastyKilled[2]=32 Lev(4)\ NastyCount[2]=5 Lev(4)\ ShotCount[2]=4 Lev(4)\ NastyType1[2]=25 Lev(4)\ NastyType2[2]=25 Lev(4)\ NastyType3[2]=25 Lev(4)\ NastyType4[2]=25 Lev(4)\ NastySpace[2]=8 Lev(4)\NShotSpace[2]=2 Lev(4)\NastyComing[3]=32 Lev(4)\NastyKilled[3]=32 Lev(4)\ NastyCount[3]=4 Lev(4)\ ShotCount[3]=4 Lev(4)\ NastyType1[3]=23 Lev(4)\ NastyType2[3]=23 Lev(4)\ NastyType3[3]=23 Lev(4)\ NastyType4[3]=23 Lev(4)\ NastySpace[3]=25 Lev(4)\NShotSpace[3]=48 Lev(4)\NastyComing[4]=24 Lev(4)\NastyKilled[4]=24 Lev(4)\ NastyCount[4]=4 Lev(4)\ ShotCount[4]=4 Lev(4)\ NastyType1[4]=27 Lev(4)\ NastyType2[4]=27 Lev(4)\ NastyType3[4]=27 Lev(4)\ NastyType4[4]=28 Lev(4)\ NastySpace[4]=25 Lev(4)\NShotSpace[4]=32 Lev(4)\NastyComing[5]=24 Lev(4)\NastyKilled[5]=24 Lev(4)\ NastyCount[5]=4 Lev(4)\ ShotCount[5]=4 Lev(4)\ NastyType1[5]=24 Lev(4)\ NastyType2[5]=24 Lev(4)\ NastyType3[5]=24 Lev(4)\ NastyType4[5]=24 Lev(4)\ NastySpace[5]=15 Lev(4)\NShotSpace[5]=64 Lev(4)\NastyComing[6]=32 Lev(4)\NastyKilled[6]=32 Lev(4)\ NastyCount[6]=5 Lev(4)\ ShotCount[6]=4 Lev(4)\ NastyType1[6]=25 Lev(4)\ NastyType2[6]=25 Lev(4)\ NastyType3[6]=26 Lev(4)\ NastyType4[6]=26 Lev(4)\ NastySpace[6]=8 Lev(4)\NShotSpace[6]=32 Lev(4)\NastyComing[7]=32 Lev(4)\NastyKilled[7]=32 Lev(4)\ NastyCount[7]=4 Lev(4)\ ShotCount[7]=4 Lev(4)\ NastyType1[7]=22 Lev(4)\ NastyType2[7]=22 Lev(4)\ NastyType3[7]=27 Lev(4)\ NastyType4[7]=27 Lev(4)\ NastySpace[7]=25 Lev(4)\NShotSpace[7]=32 Lev(4)\NastyComing[8]=32 Lev(4)\NastyKilled[8]=32 Lev(4)\ NastyCount[8]=4 Lev(4)\ ShotCount[8]=4 Lev(4)\ NastyType1[8]=22 Lev(4)\ NastyType2[8]=23 Lev(4)\ NastyType3[8]=23 Lev(4)\ NastyType4[8]=28 Lev(4)\ NastySpace[8]=15 Lev(4)\NShotSpace[8]=32 Lev(4)\NastyComing[9]=2 Lev(4)\NastyKilled[9]=2 Lev(4)\ NastyCount[9]=1 Lev(4)\ ShotCount[9]=4 Lev(4)\ NastyType1[9]=29 Lev(4)\ NastyType2[9]=29 Lev(4)\ NastyType3[9]=29 Lev(4)\ NastyType4[9]=29 Lev(4)\ NastySpace[9]=50 Lev(4)\NShotSpace[9]=40 Lev(5)\ R=0 Lev(5)\ G=0 Lev(5)\ B=5 Lev(5)\ Counter=0 Lev(5)\NastyComing[0]=16 Lev(5)\NastyKilled[0]=16 Lev(5)\ NastyCount[0]=2 Lev(5)\ ShotCount[0]=5 Lev(5)\ NastyType1[0]=30 Lev(5)\ NastyType2[0]=30 Lev(5)\ NastyType3[0]=30 Lev(5)\ NastyType4[0]=30 Lev(5)\ NastySpace[0]=40 Lev(5)\NShotSpace[0]=64 Lev(5)\NastyComing[1]=16 Lev(5)\NastyKilled[1]=16 Lev(5)\ NastyCount[1]=2 Lev(5)\ ShotCount[1]=5 Lev(5)\ NastyType1[1]=31 Lev(5)\ NastyType2[1]=31 Lev(5)\ NastyType3[1]=32 Lev(5)\ NastyType4[1]=32 Lev(5)\ NastySpace[1]=25 Lev(5)\NShotSpace[1]=64 Lev(5)\NastyComing[2]=24 Lev(5)\NastyKilled[2]=24 Lev(5)\ NastyCount[2]=4 Lev(5)\ ShotCount[2]=5 Lev(5)\ NastyType1[2]=2 Lev(5)\ NastyType2[2]=2 Lev(5)\ NastyType3[2]=13 Lev(5)\ NastyType4[2]=13 Lev(5)\ NastySpace[2]=25 Lev(5)\NShotSpace[2]=32 Lev(5)\NastyComing[3]=16 Lev(5)\NastyKilled[3]=16 Lev(5)\ NastyCount[3]=2 Lev(5)\ ShotCount[3]=5 Lev(5)\ NastyType1[3]=30 Lev(5)\ NastyType2[3]=30 Lev(5)\ NastyType3[3]=31 Lev(5)\ NastyType4[3]=31 Lev(5)\ NastySpace[3]=25 Lev(5)\NShotSpace[3]=64 Lev(5)\NastyComing[4]=24 Lev(5)\NastyKilled[4]=24 Lev(5)\ NastyCount[4]=3 Lev(5)\ ShotCount[4]=5 Lev(5)\ NastyType1[4]=13 Lev(5)\ NastyType2[4]=15 Lev(5)\ NastyType3[4]=32 Lev(5)\ NastyType4[4]=32 Lev(5)\ NastySpace[4]=25 Lev(5)\NShotSpace[4]=48 Lev(5)\NastyComing[5]=32 Lev(5)\NastyKilled[5]=32 Lev(5)\ NastyCount[5]=5 Lev(5)\ ShotCount[5]=4 Lev(5)\ NastyType1[5]=33 Lev(5)\ NastyType2[5]=33 Lev(5)\ NastyType3[5]=33 Lev(5)\ NastyType4[5]=33 Lev(5)\ NastySpace[5]=5 Lev(5)\NShotSpace[5]=64 Lev(5)\NastyComing[6]=32 Lev(5)\NastyKilled[6]=32 Lev(5)\ NastyCount[6]=4 Lev(5)\ ShotCount[6]=4 Lev(5)\ NastyType1[6]=9 Lev(5)\ NastyType2[6]=10 Lev(5)\ NastyType3[6]=10 Lev(5)\ NastyType4[6]=11 Lev(5)\ NastySpace[6]=20 Lev(5)\NShotSpace[6]=48 Lev(5)\NastyComing[7]=24 Lev(5)\NastyKilled[7]=24 Lev(5)\ NastyCount[7]=3 Lev(5)\ ShotCount[7]=4 Lev(5)\ NastyType1[7]=15 Lev(5)\ NastyType2[7]=15 Lev(5)\ NastyType3[7]=27 Lev(5)\ NastyType4[7]=27 Lev(5)\ NastySpace[7]=25 Lev(5)\NShotSpace[7]=32 Lev(5)\NastyComing[8]=24 Lev(5)\NastyKilled[8]=24 Lev(5)\ NastyCount[8]=2 Lev(5)\ ShotCount[8]=5 Lev(5)\ NastyType1[8]=30 Lev(5)\ NastyType2[8]=30 Lev(5)\ NastyType3[8]=31 Lev(5)\ NastyType4[8]=32 Lev(5)\ NastySpace[8]=25 Lev(5)\NShotSpace[8]=64 Lev(5)\NastyComing[9]=1 Lev(5)\NastyKilled[9]=1 Lev(5)\ NastyCount[9]=1 Lev(5)\ ShotCount[9]=4 Lev(5)\ NastyType1[9]=34 Lev(5)\ NastyType2[9]=34 Lev(5)\ NastyType3[9]=34 Lev(5)\ NastyType4[9]=34 Lev(5)\ NastySpace[9]=127 Lev(5)\NShotSpace[9]=8 Lev(6)\ R=2 Lev(6)\ G=2 Lev(6)\ B=2 Lev(6)\ Counter=0 Lev(6)\NastyComing[0]=32 Lev(6)\NastyKilled[0]=32 Lev(6)\ NastyCount[0]=5 Lev(6)\ ShotCount[0]=3 Lev(6)\ NastyType1[0]=0 Lev(6)\ NastyType2[0]=0 Lev(6)\ NastyType3[0]=0 Lev(6)\ NastyType4[0]=0 Lev(6)\ NastySpace[0]=8 Lev(6)\NShotSpace[0]=32 Lev(6)\NastyComing[1]=32 Lev(6)\NastyKilled[1]=32 Lev(6)\ NastyCount[1]=4 Lev(6)\ ShotCount[1]=4 Lev(6)\ NastyType1[1]=3 Lev(6)\ NastyType2[1]=3 Lev(6)\ NastyType3[1]=14 Lev(6)\ NastyType4[1]=14 Lev(6)\ NastySpace[1]=15 Lev(6)\NShotSpace[1]=64 Lev(6)\NastyComing[2]=24 Lev(6)\NastyKilled[2]=24 Lev(6)\ NastyCount[2]=5 Lev(6)\ ShotCount[2]=5 Lev(6)\ NastyType1[2]=35 Lev(6)\ NastyType2[2]=35 Lev(6)\ NastyType3[2]=35 Lev(6)\ NastyType4[2]=35 Lev(6)\ NastySpace[2]=40 Lev(6)\NShotSpace[2]=48 Lev(6)\NastyComing[3]=32 Lev(6)\NastyKilled[3]=32 Lev(6)\ NastyCount[3]=5 Lev(6)\ ShotCount[3]=5 Lev(6)\ NastyType1[3]=25 Lev(6)\ NastyType2[3]=25 Lev(6)\ NastyType3[3]=26 Lev(6)\ NastyType4[3]=26 Lev(6)\ NastySpace[3]=8 Lev(6)\NShotSpace[3]=48 Lev(6)\NastyComing[4]=32 Lev(6)\NastyKilled[4]=32 Lev(6)\ NastyCount[4]=4 Lev(6)\ ShotCount[4]=4 Lev(6)\ NastyType1[4]=3 Lev(6)\ NastyType2[4]=3 Lev(6)\ NastyType3[4]=17 Lev(6)\ NastyType4[4]=17 Lev(6)\ NastySpace[4]=25 Lev(6)\NShotSpace[4]=64 Lev(6)\NastyComing[5]=24 Lev(6)\NastyKilled[5]=24 Lev(6)\ NastyCount[5]=3 Lev(6)\ ShotCount[5]=4 Lev(6)\ NastyType1[5]=30 Lev(6)\ NastyType2[5]=31 Lev(6)\ NastyType3[5]=32 Lev(6)\ NastyType4[5]=35 Lev(6)\ NastySpace[5]=20 Lev(6)\NShotSpace[5]=48 Lev(6)\NastyComing[6]=16 Lev(6)\NastyKilled[6]=16 Lev(6)\ NastyCount[6]=4 Lev(6)\ ShotCount[6]=5 Lev(6)\ NastyType1[6]=1 Lev(6)\ NastyType2[6]=4 Lev(6)\ NastyType3[6]=8 Lev(6)\ NastyType4[6]=19 Lev(6)\ NastySpace[6]=8 Lev(6)\NShotSpace[6]=48 Lev(6)\NastyComing[7]=24 Lev(6)\NastyKilled[7]=24 Lev(6)\ NastyCount[7]=4 Lev(6)\ ShotCount[7]=4 Lev(6)\ NastyType1[7]=22 Lev(6)\ NastyType2[7]=23 Lev(6)\ NastyType3[7]=24 Lev(6)\ NastyType4[7]=28 Lev(6)\ NastySpace[7]=15 Lev(6)\NShotSpace[7]=48 Lev(6)\NastyComing[8]=24 Lev(6)\NastyKilled[8]=24 Lev(6)\ NastyCount[8]=4 Lev(6)\ ShotCount[8]=4 Lev(6)\ NastyType1[8]=11 Lev(6)\ NastyType2[8]=16 Lev(6)\ NastyType3[8]=24 Lev(6)\ NastyType4[8]=35 Lev(6)\ NastySpace[8]=15 Lev(6)\NShotSpace[8]=48 Lev(6)\NastyComing[9]=1 Lev(6)\NastyKilled[9]=1 Lev(6)\ NastyCount[9]=1 Lev(6)\ ShotCount[9]=9 Lev(6)\ NastyType1[9]=36 Lev(6)\ NastyType2[9]=36 Lev(6)\ NastyType3[9]=36 Lev(6)\ NastyType4[9]=36 Lev(6)\ NastySpace[9]=127 Lev(6)\NShotSpace[9]=16 ; Array for equilateral appearing spaceships Dim G.Nasty(10) ; Array for meany bullets Dim F.Shot(10) BLITZ Statement Clear{} Cls 0 UnQueue 0 UnQueue 1 End Statement BlitzKeys On ; Initialise Bitmaps, 2 Queues (Double-Buffering) and Displays BitMap 0,320,256*5,1 ; Interleaved setup BitMap 1,320,256*5,1 ; patchbitmap{0,2} ; Display these pseudo-bitmaps patchbitmap{1,3} ; #txt=5 BitPlanesBitMap 2,#txt,2 BitPlanesBitMap 3,#txt+1,2 Queue 0,50 Queue 1,50 InitCopList 0,54,238,$5,8,32,16 ; #BPLCON2=%0000000000100100 ;DisplayAdjust 0,-4,8,-8,16,-16 ; NOW USING LESS SCREEN DisplayControls 0,#BPLCON2,0,0 DisplayBitMap 0,2 CreateDisplay 0 InitShape 160,16,256,2 GetaSprite 0,160 : GetaSprite 1,160 : GetaSprite 2,160 : GetaSprite 3,160 init_star_data { Peek.l (Addr Sprite(0)),?star_speeds } : display_star{0} init_star_data { Peek.l (Addr Sprite(1)),?star_speeds+14 } : display_star{1} init_star_data { Peek.l (Addr Sprite(2)),?star_speeds+29 } : display_star{2} init_star_data { Peek.l (Addr Sprite(3)),?star_speeds+44 } : display_star{3} starspeed.b=2 SetInt 5 b=QWrap(b+1,0,6) If b=0 Then scroll_stars_y_down{Peek.l(Addr Sprite(2)),starspeed} If b=0 OR b=3 Then scroll_stars_y_down{Peek.l(Addr Sprite(3)),starspeed} If b=0 OR b=2 OR b=4 Then scroll_stars_y_down{Peek.l(Addr Sprite(1)),starspeed} scroll_stars_y_down{Peek.l(Addr Sprite(0)),starspeed} End SetInt ;------------------------------------------------------------------ .TitelPict: Pictcurrent.w=-1 Sound 11,12 PickShip.b=1 ; Spaceship selection (1-5) PickLevel.b=1 ; Level selection (1-6) Points.l=0 ; Players Health - dies when it reaches 0(?) Dim LevelStatus.b(6) ; 0=Speedaft, 1=Anwaehlbar, 2=Muss erPlayt werden LevelStatus(0)=1 LevelStatus(1)=2 LevelStatus(2)=2 LevelStatus(3)=2 LevelStatus(4)=2 LevelStatus(5)=2 Dim ShipStatus.b(5) ; 0=destroyed, 1=Anwaehlbar, 2=Muss erPlayt werden ShipStatus(0)=1 ShipStatus(1)=2 ShipStatus(2)=2 ShipStatus(3)=2 ShipStatus(4)=2 PalRGB 0,0,0,0,0 DisplayBitMap 0,2 DisplayPalette 0,0 Use BitMap 0 Clear{} Format "" UnQueue 0 UnQueue 1 For i.b=1 To 50 QBlit 0,Rnd(20),Rnd(288),(Int(Rnd(55)+8))*5 QBlit 1,Rnd(20),Rnd(288),(Int(Rnd(55)+8))*5 Next i Blit 108,19,80 Blit 109,189,345 BitMapOutput #txt PLoc{0,13," BY MICHAEL ROSSKOPF & WIREMU TEKANI "} PLoc{0,15," Version 1.5 ---- September 1999 "} Fire.b=1 Repeat VWait j.b=Rnd(64) If j=0 Then Sound 0,Rnd(15)+1 Pictcurrent+1 If Pictcurrent=0 PLoc{0,17," "} PLoc{0,19," FREE PLAY "} PLoc{0,21," "} PLoc{0,23," PRESS FIRE TO LAUNCH THE MISSION, "} PLoc{0,25," ESC TO QUIT "} PLoc{0,27," HIGHSCORE FOLLOWS SHORTLY "} EndIf If Pictcurrent=400 PLoc{0,17," "} PLoc{0,19," "} PLoc{0,21," "} PLoc{0,23," "} PLoc{0,25," "} PLoc{0,27," "} PLoc{0,17," ALL TIME PILOTS (PRESS D TO DELETE) "} PLoc{0,19," 1. "+HighscoreNamen$(0)} PLoc{0,21," 2. "+HighscoreNamen$(1)} PLoc{0,23," 3. "+HighscoreNamen$(2)} PLoc{0,25," 4. "+HighscoreNamen$(3)} PLoc{0,27," 5. "+HighscoreNamen$(4)} PLoc{18,19,Str$(HighscorePoints(0))} PLoc{18,21,Str$(HighscorePoints(1))} PLoc{18,23,Str$(HighscorePoints(2))} PLoc{18,25,Str$(HighscorePoints(3))} PLoc{18,27,Str$(HighscorePoints(4))} PLoc{28,19,"Mission "+Str$(HighscoreLevel(0))} PLoc{28,21,"Mission "+Str$(HighscoreLevel(1))} PLoc{28,23,"Mission "+Str$(HighscoreLevel(2))} PLoc{28,25,"Mission "+Str$(HighscoreLevel(3))} PLoc{28,27,"Mission "+Str$(HighscoreLevel(4))} i=-1 Repeat i=i+1 If HighscoreLevel(i)=1 Then PLoc{35,19+(i ASL 1)," "} Until i=4 EndIf If Pictcurrent=799 Then Pictcurrent=-1 If RawStatus(69)=-1 AND Fire=0 Then Goto Ende If RawStatus(34)=-1 AND Pictcurrent>399 HighscoreNamen$(0)="Michael " HighscoreNamen$(1)="Marco " HighscoreNamen$(2)="Wiremu T" HighscoreNamen$(3)="Michael " HighscoreNamen$(4)="Marco " HighscorePoints(0)=50000 HighscorePoints(1)=40000 HighscorePoints(2)=30000 HighscorePoints(3)=20000 HighscorePoints(4)=10000 HighscoreLevel(0)=5 HighscoreLevel(1)=4 HighscoreLevel(2)=3 HighscoreLevel(3)=2 HighscoreLevel(4)=1 Pictcurrent=399 EndIf If RawStatus(96)=-1 OR Joyb(1)>0 AND Fire=0 Then Goto Levelstart If Joyb(1)=0 AND RawStatus(69)=0 AND RawStatus(96)=0 Then Fire=0 Forever ;------------------------------------------------------------------ .Levelstart: Sound 11,12 PalRGB 0,0,0,0,0 DisplayBitMap 0,2 DisplayPalette 0,0 Use BitMap 0 Clear{} BitMapOutput #txt ; Check which ship player can use i.b=0 j.b=5 Repeat j=j-1 If ShipStatus(j)=1 Then i=i+1:PickShip=j+1 Until j=0 If i=1 PLoc{0,21,"YOUR SHIP FOR THIS MISSION (PRESS FIRE) "} Else PLoc{0,21,"SELECT YOUR SHIP (LEFT, RIGHT, FIRE) "} EndIf PLoc{13,23,"NAME : "} PLoc{13,24,"CLASS : "} PLoc{13,26,"SPEED : "} PLoc{13,27,"SHIELD: "} PLoc{13,28,"WEAPON: "} ; Check which level player can do i.b=0 j.b=6 Repeat j=j-1 If LevelStatus(j)=1 Then i=i+1:PickLevel=j+1 Until j=0 If i>1 PLoc{0,19,"SELECT A MISSION (UP, DOWN) "} Else PLoc{0,19," "} EndIf Fire.b=1 i.b=10 Repeat VWait UnQueue 0 QBlit 0,S(PickShip)\SPict,51-(S(PickShip)\SWidth ASR 1),(231-S(PickShip)\SHeight)*5 Select PickLevel Case 1 PLoc{0,00,"LOOK FOR LOCATION "} PLoc{0,01," "} PLoc{0,02,"Our scanners have located an enormous "} PLoc{0,03,"planetoid which seems to have jumped "} PLoc{0,04,"into our system, heading for our main "} PLoc{0,05,"planet, NEW PORT. "} PLoc{0,06," "} PLoc{0,07,"We want you to fly to the planetoid "} PLoc{0,08,"to get more information, but be "} PLoc{0,09,"careful! "} PLoc{0,10," "} PLoc{0,11,"Longrange-scans show small objects "} PLoc{0,12,"that fly like our guardian drones. "} PLoc{0,13," "} PLoc{0,14,"We may be under attack. Clarify the "} PLoc{0,15,"situation. "} PLoc{0,16," "} PLoc{0,17,"Good luck! "} PLoc{0,18," "} Case 2 PLoc{0,00,"SHIELD GENERATOR: BLOOD FOG "} PLoc{0,01," "} PLoc{0,02,"One of the shield-generators is in "} PLoc{0,03,"a location called the Blood Fog, "} PLoc{0,04,"where there are gas molecules that "} PLoc{0,05,"gleam red in the sun. "} PLoc{0,06," "} PLoc{0,07,"You will be up aginst principal "} PLoc{0,08,"Gretchin-fighters. "} PLoc{0,09," "} PLoc{0,10,"Be careful, they manoevre quickly. "} PLoc{0,11,"In front of the generator is a "} PLoc{0,12,"very heavy battlecruiser. "} PLoc{0,13," "} PLoc{0,14,"For this mission, you'll need a "} PLoc{0,15,"combination of speed and firepower! "} PLoc{0,16," "} PLoc{0,17,"See you later (I hope!) "} PLoc{0,18," "} Case 3 PLoc{0,00,"SHIELD GENERATOR: ASTEROIDS "} PLoc{0,01," "} PLoc{0,02,"One of the shield-generators is on "} PLoc{0,03,"the dark side of the planetoid. "} PLoc{0,04," "} PLoc{0,05,"We believe there are many asteroids "} PLoc{0,06,"and objects that have broken off of "} PLoc{0,07,"it. "} PLoc{0,08," "} PLoc{0,09,"These asteroids are very hard to "} PLoc{0,10,"crack. Take a heavy ship with "} PLoc{0,11,"good shields and lots of firepower. "} PLoc{0,12," "} PLoc{0,13,"DO IT! "} PLoc{0,14," "} PLoc{0,15," "} PLoc{0,16," "} PLoc{0,17," "} PLoc{0,18," "} Case 4 PLoc{0,00,"SHIELD GENERATOR: STRANGE SHIPS "} PLoc{0,01," "} PLoc{0,02,"We've detected the shield generator is"} PLoc{0,03,"being protected by ships we think are "} PLoc{0,04,"from an UNKNOWN alien species. "} PLoc{0,05," "} PLoc{0,06,"We don't know how strong they are "} PLoc{0,07,"so we have to assume the worst. "} PLoc{0,08," "} PLoc{0,09,"Some of them are very fast so don't "} PLoc{0,10,"take a slow ship. "} PLoc{0,11," "} PLoc{0,12,"We need more information about them. "} PLoc{0,13,"They're not hard to find. They move "} PLoc{0,14,"in large green-cloud formations. "} PLoc{0,15," "} PLoc{0,16,"Show them what a good pilot can do! "} PLoc{0,17," "} PLoc{0,18," "} Case 5 PLoc{0,00,"ENEMY ATMOSPHERE "} PLoc{0,01," "} PLoc{0,02,"The generators and the planetoids "} PLoc{0,03,"shields are gone, but it's still "} PLoc{0,04,"heading for New Port. "} PLoc{0,05," "} PLoc{0,06,"We've seen a structure that looks like"} PLoc{0,07,"an interstellar cannon. It could turn "} PLoc{0,08,"New Port into an asteroid belt. "} PLoc{0,09," "} PLoc{0,10,"Dive into the thin atmosphere of the "} PLoc{0,11,"planetoid and find a weak-spot. "} PLoc{0,12," "} PLoc{0,13,"Everything counts on you! "} PLoc{0,14," "} PLoc{0,15,"P.S. Look out for LARGE ships. "} PLoc{0,16," "} PLoc{0,17," "} PLoc{0,18," "} Case 6 PLoc{0,00,"FINAL FIGHT"} PLoc{0,01," "} PLoc{0,02,"We found an entrance in the planetoid "} PLoc{0,03,"with ships flying in and out of it. "} PLoc{0,04,"This must be enemy command central. "} PLoc{0,05," "} PLoc{0,06,"Here lies the evil brain that wants to"} PLoc{0,07,"destroy our planet and our lives. Here"} PLoc{0,08,"you'll meet your final adversary. "} PLoc{0,09," "} PLoc{0,10,"But time is short: The space cannon on"} PLoc{0,11,"the planetoid has turned on New Port. "} PLoc{0,12," "} PLoc{0,13,"So pick a ship and show the evil brain"} PLoc{0,14,"who annaihilates who. Take him out! "} PLoc{0,15," "} PLoc{0,16,"A million lives are depending on you! "} PLoc{0,17," "} PLoc{0,18," "} End Select Select PickShip Case 1 PLoc{21,23,"HONEY BEE "} PLoc{21,24,"PATROL SHIP "} PLoc{21,26,"FAST "} PLoc{21,27,"VERY LOW "} PLoc{21,28,"2 SECURITY LASERS "} Case 2 PLoc{21,23,"VINDICATOR "} PLoc{21,24,"FIGHTER "} PLoc{21,26,"MEDIUM "} PLoc{21,27,"LOW "} PLoc{21,28,"4 ION GUNS "} Case 3 PLoc{21,23,"CANNONBOAT "} PLoc{21,24,"HEAVY SUPPORT "} PLoc{21,26,"SLOW "} PLoc{21,27,"GREAT "} PLoc{21,28,"8 MILITARY LASERS "} Case 4 PLoc{21,23,"SUPERNOVA "} PLoc{21,24,"EXPERIMENTAL CRAFT"} PLoc{21,26,"MEDIUM "} PLoc{21,27,"MEDIUM "} PLoc{21,28,"2 PLASMA GUNS "} Case 5 PLoc{21,23,"BATTLEMASTER "} PLoc{21,24,"DESTROYER "} PLoc{21,26,"SLOW "} PLoc{21,27,"MAXIMUM "} PLoc{21,28,"TORPEDO LAUNCHER "} End Select If RawStatus(69)=-1 Then Goto TitelPict If Joyx(1)=-1 OR RawStatus(79)=-1 AND PickShip>1 AND i=0 j.b=PickShip-1 Repeat j=j-1 If ShipStatus(j)=1 Then PickShip=PickShip-((PickShip-1)-j):i=2:j=0:Sound 11,12 Until j=0 EndIf If Joyx(1)=1 OR RawStatus(78)=-1 AND PickShip<5 AND i=0 j.b=PickShip-1 Repeat j=j+1 If ShipStatus(j)=1 Then PickShip=PickShip+(j-(PickShip-1)):i=2:j=4:Sound 11,12 Until j=4 EndIf If Joyy(1)=1 OR RawStatus(77)=-1 AND PickLevel>1 AND i=0 j.b=PickLevel-1 Repeat j=j-1 If LevelStatus(j)=1 Then PickLevel=PickLevel-((PickLevel-1)-j):i=2:j=0:Sound 11,12 Until j=0 EndIf If Joyy(1)=-1 OR RawStatus(76)=-1 AND PickLevel<6 AND i=0 j.b=PickLevel-1 Repeat j=j+1 If LevelStatus(j)=1 Then PickLevel=PickLevel+(j-(PickLevel-1)):i=2:j=5:Sound 11,12 Until j=5 EndIf If RawStatus(96)=-1 OR Joyb(1)>0 AND Fire=0 Then j=10 If i>0 Then i=i-1 If Joyb(1)=0 AND RawStatus(96)=0 Then Fire=0 Until j=10 BitMapOutput 2 For j.b=0 To 30 PLoc{0,j," "} Next j BitMapOutput #txt PalRGB 0,0,Lev(PickLevel)\R,Lev(PickLevel)\G,Lev(PickLevel)\B Flc.w=((Lev(PickLevel)\R+1)LSL8)+((Lev(PickLevel)\G+1)LSL4)+(Lev(PickLevel)\B+1) DisplayPalette 0,0 PLoc{0,10," Get Ready "} Sound 6,3 i.b=6 Repeat VWait(5) i=i-1 Format "0" PLoc{19,12,Str$(i)} Until i=0 PLoc{0,10," "} PLoc{19,12," "} Fire.b=1 ; Prevent own Ship from firing immediately ; Transfer of the powered Shipes out of List on users Variables S(0)\ SPict=S(PickShip)\SPict S(0)\ WPict=S(PickShip)\WPict S(0)\ SWidth=S(PickShip)\SWidth S(0)\ SHeight=S(PickShip)\SHeight S(0)\ WWidth=S(PickShip)\WWidth S(0)\ WHeight=S(PickShip)\WHeight S(0)\ SSpeed=S(PickShip)\SSpeed S(0)\ WSpeed=S(PickShip)\WSpeed S(0)\ Shield=S(PickShip)\Shield S(0)\Damage=S(PickShip)\Damage S(0)\ WXplus=S(PickShip)\WXplus S(0)\ WeaponDb=S(PickShip)\WeaponDb ; Fixing the Position of the Shipes S(0)\Sx=160-(S(0)\SWidth ASR 1) S(0)\Sy=235-S(0)\SHeight ; Transfer the powered Level on users Variables Lev(0)\R=Lev(PickLevel)\R Lev(0)\G=Lev(PickLevel)\G Lev(0)\B=Lev(PickLevel)\B Lev(0)\Counter=0 For i.b=0 To 10 Lev(0)\NastyComing[i]=Lev(PickLevel)\NastyComing[i] Lev(0)\NastyKilled[i]=Lev(PickLevel)\NastyKilled[i] Lev(0)\ NastyCount[i]=Lev(PickLevel)\NastyCount[i] Lev(0)\ ShotCount[i]=Lev(PickLevel)\ShotCount[i] Lev(0)\ NastyType1[i]=Lev(PickLevel)\NastyType1[i] Lev(0)\ NastyType2[i]=Lev(PickLevel)\NastyType2[i] Lev(0)\ NastyType3[i]=Lev(PickLevel)\NastyType3[i] Lev(0)\ NastyType4[i]=Lev(PickLevel)\NastyType4[i] Lev(0)\ NastySpace[i]=Lev(PickLevel)\NastySpace[i] Lev(0)\NShotSpace[i]=Lev(PickLevel)\NShotSpace[i] Next i ; shooters, Nasty and Nastyshooters sitting on Status 0 S(0)\WStatus[0]=0 S(0)\WStatus[1]=0 For i.b=0 To 9 G(i)\SStatus=0 F(i)\Status=0 Next i G(9)\trailCounter=0 ; Prevent, that Player by Hit eines Nastys finishing were BitMapOutput #txt Clear{} Format "000000" PLoc{0,0,"SCORE: "+Str$(Points)} Format "00" PLoc{20,0,"SHIELD: "+Str$(S(0)\Shield)+" / "+Str$(S(PickShip)\Shield)+" "} BitMapOutput #txt+1 Format "000000" PLoc{0,0,"SCORE: "+Str$(Points)} Format "00" PLoc{20,0,"SHIELD: "+Str$(S(0)\Shield)+" / "+Str$(S(PickShip)\Shield)+" "} ; Mainpart .Mainpart: ._Score If expenditure>0 ; Update of the Score and Shield BitMapOutput #txt+db Format "000000" PLoc{7,0,Str$(Points)} Format "00" PLoc{28,0,Str$(S(0)\Shield)} expenditure-1 EndIf VWait DisplayBitMap 0,2+db:db=1-db:Use BitMap db UnQueue db ._Boom ; Admin and description of the Explosionen i.b=-1 Repeat ; Cycle through 8 Ships blowing up + Your own i=i+1 If G(i)\SStatus=2 ; If exploding QBlit db,G(i)\trailCounter,G(i)\Sx,G(i)\Sy+((G(i)\Sy)LSL2) ; draw boom G(i)\trailCounter+1 ; next boompic If G(i)\trailCounter=25 Then G(i)\SStatus=0 ; finished? DEAD! If G(9)\trailCounter=25 Then Goto Ship_lost ; YOU'RE DEAD! EndIf Until i=9 ._PlayerFire ; Admin and description the Bulletshooters i.b=-1 Repeat i=i+1 If F(i)\Status=1 If F(i)\x<-F(i)\SpeedX OR F(i)\x>319-F(i)\Width-F(i)\SpeedX Then F(i)\x=319-F(i)\Width-F(i)\SpeedX:F(i)\Status=0 If F(i)\Typ=2 ; LenkWeaponn If S(0)\Sx+(S(0)\SWidth ASR 1)F(i)\x Then F(i)\x+1 EndIf If F(i)\y>253-F(i)\Height-F(i)\SpeedY Then F(i)\y=253-F(i)\Height-F(i)\SpeedY:F(i)\Status=0 F(i)\x=F(i)\x+F(i)\SpeedX F(i)\y=F(i)\y+F(i)\SpeedY QBlit db,F(i)\Pict+(db&F(i)\WeaponDb),F(i)\x,F(i)\y+((F(i)\y)ASL2) EndIf Until i=Lev(0)\ShotCount[Lev(0)\Counter] ._NastyShips ; Admin and description the Nastyischen Shipe i.b=-1 Repeat i=i+1 If G(i)\SStatus=1 If G(i)\SMovTyp=0 ; Normale movements If G(i)\Sx<-G(i)\SSpeedX OR G(i)\Sx>319-G(i)\SWidth-G(i)\SSpeedX Then G(i)\SSpeedX=-G(i)\SSpeedX If G(i)\Sy>253-G(i)\SHeight-G(i)\SSpeedY G(i)\Sy=253-G(i)\SHeight-G(i)\SSpeedY:G(i)\SStatus=0 Lev(0)\NastyKilled[Lev(0)\Counter]=Lev(0)\NastyKilled[Lev(0)\Counter]-1 EndIf EndIf If G(i)\SMovTyp=1 ; movements in vorbestimmten Bereich If G(i)\Sx<-G(i)\SSpeedX OR G(i)\SBorderX1>G(i)\Sx-G(i)\SSpeedX AND G(i)\SSpeedX<0 Then G(i)\SSpeedX=-G(i)\SSpeedX If G(i)\Sx>319-G(i)\SWidth-G(i)\SSpeedX OR G(i)\Sx>G(i)\SBorderX2+G(i)\SSpeedX AND G(i)\SSpeedX>0 G(i)\SSpeedX=-G(i)\SSpeedX EndIf If G(i)\Sy<-G(i)\SSpeedY+8 OR G(i)\SBorderY1>G(i)\Sy-G(i)\SSpeedY AND G(i)\SSpeedY<0 Then G(i)\SSpeedY=-G(i)\SSpeedY If G(i)\Sy>253-G(i)\SHeight-G(i)\SSpeedY OR G(i)\Sy>G(i)\SBorderY2-G(i)\SSpeedY AND G(i)\SSpeedY>0 G(i)\SSpeedY=-G(i)\SSpeedY EndIf EndIf If G(i)\SMovTyp=2 ; Kamikaze-movements If G(i)\SxS(0)\Sx AND G(i)\SSpeedX>0 Then G(i)\SSpeedX=-G(i)\SSpeedX If G(i)\Sy>253-G(i)\SHeight-G(i)\SSpeedY G(i)\Sy=253-G(i)\SHeight-G(i)\SSpeedY:G(i)\SStatus=0 Lev(0)\NastyKilled[Lev(0)\Counter]=Lev(0)\NastyKilled[Lev(0)\Counter]-1 EndIf EndIf If G(i)\SMovTyp=3 ; movements on Headtrail If G(i)\trailCounter=L(G(i)\trailNr)\Counter[G(i)\trailSek] G(i)\trailCounter=0 G(i)\trailSek=G(i)\trailSek+1 G(i)\SSpeedX=L(G(i)\trailNr)\SpeedX[G(i)\trailSek] G(i)\SSpeedY=L(G(i)\trailNr)\SpeedY[G(i)\trailSek] If L(G(i)\trailNr)\Counter[G(i)\trailSek]=0 G(i)\SSpeedX=L(G(i)\trailNr)\SpeedX[G(i)\trailSek] G(i)\SSpeedY=L(G(i)\trailNr)\SpeedY[G(i)\trailSek] G(i)\SMovTyp=1 EndIf EndIf If G(i)\Sx<-G(i)\SSpeedX OR G(i)\Sx>319-G(i)\SWidth-G(i)\SSpeedX G(i)\SSpeedX=-G(i)\SSpeedX:G(i)\SStatus=0 Lev(0)\NastyKilled[Lev(0)\Counter]=Lev(0)\NastyKilled[Lev(0)\Counter]-1 EndIf If G(i)\Sy>253-G(i)\SHeight-G(i)\SSpeedY G(i)\Sy=253-G(i)\SHeight-G(i)\SSpeedY:G(i)\SStatus=0 Lev(0)\NastyKilled[Lev(0)\Counter]=Lev(0)\NastyKilled[Lev(0)\Counter]-1 EndIf G(i)\trailCounter=G(i)\trailCounter+1 EndIf G(i)\Sx=G(i)\Sx+G(i)\SSpeedX G(i)\Sy=G(i)\Sy+G(i)\SSpeedY QBlit db,G(i)\SPict,G(i)\Sx,G(i)\Sy+((G(i)\Sy)ASL2) ._NastyFire ; NastyShip fire j.b=Rnd(Lev(0)\NShotSpace[Lev(0)\Counter]) If j=0 AND G(i)\Sy<192-G(i)\SHeight j.b=-1 Repeat j=j+1 If F(j)\Status=0 Sound 12,8 GS.b=Rnd(4) Select GS Case 0 ShotTyp.b=G(i)\WeaponNr1 Case 1 ShotTyp.b=G(i)\WeaponNr2 Case 2 ShotTyp.b=G(i)\WeaponNr3 Case 3 ShotTyp.b=G(i)\WeaponNr4 End Select F(j)\ Pict=Nastyshooters(ShotTyp)\Pict F(j)\ Width=Nastyshooters(ShotTyp)\Width F(j)\ Height=Nastyshooters(ShotTyp)\Height F(j)\ WeaponDb=Nastyshooters(ShotTyp)\WeaponDb F(j)\ Typ=Nastyshooters(ShotTyp)\Typ F(j)\Status=1 F(j)\ x=G(i)\Sx+G(i)\WXplus F(j)\ y=G(i)\Sy+4 F(j)\SpeedX=Rnd(Nastyshooters(ShotTyp)\SpeedX)*(Rnd(2)-1) F(j)\SpeedY=Nastyshooters(ShotTyp)\SpeedY If F(j)\Typ=1 Angle.q=QAngle(F(j)\x,F(j)\y,S(0)\Sx+(S(0)\SWidth ASR 1),S(0)\Sy+(S(0)\SHeight ASR 1)) Angle=Angle*6.283 F(j)\SpeedX=Int(Cos(Angle)*F(j)\SpeedY) F(j)\SpeedY=Int(Sin(Angle)*F(j)\SpeedY) EndIf j=Lev(0)\ShotCount[Lev(0)\Counter] EndIf Until j=Lev(0)\ShotCount[Lev(0)\Counter] EndIf EndIf Until i=Lev(0)\NastyCount[Lev(0)\Counter] ;MOVE #$444,$dff180 ._PlayerShip ; movements (Joystick selection) and description of the Shipes If RawStatus(69)=-1 Then Goto TitelPict If RawStatus(25)=-1 Repeat starspeed.b=0 VWait Until Joyb(1)>0 OR RawStatus(96)=-1 starspeed.b=2 Fire=1 EndIf If Joyx(1)=-1 OR RawStatus(79)=-1 AND S(0)\Sx>S(0)\SSpeed Then S(0)\Sx-S(0)\SSpeed ; links If Joyx(1)=1 OR RawStatus(78)=-1 AND S(0)\Sx<319-S(0)\SWidth-S(0)\SSpeed Then S(0)\Sx+S(0)\SSpeed If Joyb(1)>0 OR RawStatus(96)=-1 AND S(0)\WPause=0 AND Fire.b=0 If S(0)\WStatus[0]=0 S(0)\WStatus[0]=1:S(0)\Wx[0]=S(0)\Sx+S(0)\WXplus:S(0)\Wy[0]=S(0)\Sy:S(0)\WPause=S(PickShip)\WPause:Fire=1 Sound PickShip,1 Else If S(0)\WStatus[1]=0 S(0)\WStatus[1]=1:S(0)\Wx[1]=S(0)\Sx+S(0)\WXplus:S(0)\Wy[1]=S(0)\Sy:S(0)\WPause=S(PickShip)\WPause:Fire=1 Sound PickShip,1 EndIf EndIf EndIf If BlitColl(S(0)\SPict,S(0)\Sx,S(0)\Sy+((S(0)\Sy)ASL2)) ; own SpaceShip put Hit ein S(0)\Shield=S(0)\Shield-1 If S(0)\Shield>0 AND S(PickShip)\Shield<(S(0)\Shield ASL 2) Sound 7,2 Else If S(0)\Shield>0 Then Sound 8,2 EndIf expenditure=2 If S(0)\Shield=0 ; own SpaceShip destroyed Sound 10,15 G(9)\SStatus=2:G(9)\trailCounter=0 G(9)\Sx=QLimit(S(0)\Sx+((S(0)\SWidth-32) ASR 1),0,288) G(9)\Sy=QLimit(S(0)\Sy+((S(0)\SHeight-32) ASR 1),0,223) EndIf EndIf If G(9)\SStatus=0 Then QBlit db,S(0)\SPict,S(0)\Sx,S(0)\Sy+((S(0)\Sy)ASL2) ;MOVE #$440,$dff180 ; Admin and description the every Salvos and Hit If S(0)\WStatus[0]=1 S(0)\Wy[0]=S(0)\Wy[0]-S(0)\WSpeed If S(0)\Wy[0]<8 Then S(0)\WStatus[0]=0:S(0)\Wy[0]=8 If BlitColl(S(0)\WPict,S(0)\Wx[0],S(0)\Wy[0]+((S(0)\Wy[0])LSL2)) i.b=-1 Repeat i=i+1 If G(i)\SStatus=1 If ((G(i)\Sx+(G(i)\SWidth ASR 1))/40)=((S(0)\Wx[0]+(S(0)\WWidth ASR 1))/40) If (G(i)\Sy/40)=(S(0)\Wy[0]/40) S(0)\WStatus[0]=0 G(i)\Shield=G(i)\Shield-S(0)\Damage Sound 11,4 If G(i)\Shield<1 G(i)\SStatus=2:G(i)\trailCounter=0:Points=Points+G(i)\Points:expenditure=2 G(i)\Sx=QLimit(G(i)\Sx+((G(i)\SWidth-32) ASR 1),0,288) G(i)\Sy=QLimit(G(i)\Sy+((G(i)\SHeight-32) ASR 1),8,224) Lev(0)\NastyKilled[Lev(0)\Counter]=Lev(0)\NastyKilled[Lev(0)\Counter]-1 Sound 9,4 EndIf i=Lev(0)\NastyCount[Lev(0)\Counter] EndIf EndIf EndIf Until i=Lev(0)\NastyCount[Lev(0)\Counter] EndIf QBlit db,S(0)\WPict+(db&S(0)\WeaponDb),S(0)\Wx[0],S(0)\Wy[0]+((S(0)\Wy[0])LSL2) EndIf If S(0)\WStatus[1]=1 S(0)\Wy[1]=S(0)\Wy[1]-S(0)\WSpeed If S(0)\Wy[1]<8 Then S(0)\WStatus[1]=0:S(0)\Wy[1]=8 If BlitColl(S(0)\WPict,S(0)\Wx[1],S(0)\Wy[1]+((S(0)\Wy[1])LSL2)) i.b=-1 ; Kollishun detekshun makro Repeat i=i+1 If G(i)\SStatus=1 If ((G(i)\Sx+(G(i)\SWidth ASR 1))/40)=((S(0)\Wx[1]+(S(0)\WWidth ASR 1))/40) If (G(i)\Sy/40)=(S(0)\Wy[1]/40) S(0)\WStatus[1]=0 G(i)\Shield=G(i)\Shield-S(0)\Damage Sound 11,4 If G(i)\Shield<1 G(i)\SStatus=2:G(i)\trailCounter=0:Points=Points+G(i)\Points:expenditure=2 G(i)\Sx=QLimit(G(i)\Sx+((G(i)\SWidth-32) ASR 1),0,288) G(i)\Sy=QLimit(G(i)\Sy+((G(i)\SHeight-32) ASR 1),8,223) Lev(0)\NastyKilled[Lev(0)\Counter]=Lev(0)\NastyKilled[Lev(0)\Counter]-1 Sound 9,4 EndIf i=Lev(0)\NastyCount[Lev(0)\Counter] EndIf EndIf EndIf Until i=Lev(0)\NastyCount[Lev(0)\Counter] EndIf QBlit db,S(0)\WPict+(db&S(0)\WeaponDb),S(0)\Wx[1],S(0)\Wy[1]+((S(0)\Wy[1])LSL2) EndIf ;MOVE #$040,$dff180 ; Neue Nastyische Shipe erscheinen If Lev(0)\NastySpace[Lev(0)\Counter]=0 AND Lev(0)\NastyComing[Lev(0)\Counter]>0 Lev(0)\NastySpace[Lev(0)\Counter]=Lev(PickLevel)\NastySpace[Lev(0)\Counter] i.b=-1 Repeat i=i+1 If G(i)\SStatus=0 Sound Rnd(2)+13,2 Lev(0)\NastyComing[Lev(0)\Counter]=Lev(0)\NastyComing[Lev(0)\Counter]-1 GS.b=Rnd(4) Select GS Case 0 NastyShip.b=Lev(0)\NastyType1[Lev(0)\Counter] Case 1 NastyShip.b=Lev(0)\NastyType2[Lev(0)\Counter] Case 2 NastyShip.b=Lev(0)\NastyType3[Lev(0)\Counter] Case 3 NastyShip.b=Lev(0)\NastyType4[Lev(0)\Counter] End Select G(i)\ SPict=Nastychoice(NastyShip)\SPict G(i)\ SWidth=Nastychoice(NastyShip)\SWidth G(i)\ SHeight=Nastychoice(NastyShip)\SHeight G(i)\ WXplus=Nastychoice(NastyShip)\WXplus G(i)\ SMovTyp=Nastychoice(NastyShip)\SMovTyp G(i)\ WeaponNr1=Nastychoice(NastyShip)\WeaponNr1 G(i)\ WeaponNr2=Nastychoice(NastyShip)\WeaponNr2 G(i)\ WeaponNr3=Nastychoice(NastyShip)\WeaponNr3 G(i)\ WeaponNr4=Nastychoice(NastyShip)\WeaponNr4 G(i)\ Shield=Nastychoice(NastyShip)\Shield G(i)\ Points=Nastychoice(NastyShip)\Points j.b=Rnd(2) If j=0 G(i)\SSpeedX=Nastychoice(NastyShip)\SSpeedX Else G(i)\SSpeedX=-(Nastychoice(NastyShip)\SSpeedX) EndIf G(i)\ SSpeedY=Rnd(Nastychoice(NastyShip)\SSpeedY)+1 G(i)\ SBorderX1=Nastychoice(NastyShip)\SBorderX1 G(i)\ SBorderX2=Nastychoice(NastyShip)\SBorderX2 G(i)\ SBorderY1=Nastychoice(NastyShip)\SBorderY1 G(i)\ SBorderY2=Nastychoice(NastyShip)\SBorderY2 G(i)\ trailNr=Nastychoice(NastyShip)\trailNr G(i)\ SStatus=1 G(i)\ Sx=Rnd(320-Nastychoice(NastyShip)\SWidth) G(i)\ Sy=8 G(i)\ trailSek=0 G(i)\trailCounter=0 If G(i)\ SMovTyp=3 G(i)\Sx=L(G(i)\trailNr)\x G(i)\Sy=L(G(i)\trailNr)\y G(i)\SSpeedX=L(G(i)\trailNr)\SpeedX G(i)\SSpeedY=L(G(i)\trailNr)\SpeedY EndIf i=Lev(0)\NastyCount[Lev(0)\Counter] EndIf Until i=Lev(0)\NastyCount[Lev(0)\Counter] EndIf ; Counter If Joyb(1)=0 AND RawStatus(96)=0 Then Fire=0 If S(0)\WPause>0 Then S(0)\WPause-1 ; Firepause Lev(0)\NastySpace[Lev(0)\Counter]-1 ; Counter for new Nastys If Lev(0)\NastyComing[Lev(0)\Counter]<1 If Lev(0)\NastyKilled[Lev(0)\Counter]<1 i.b=-1:j.b=0 Repeat i+1 If G(i)\SStatus>0 Then j=1 Until i=Lev(0)\NastyCount[Lev(0)\Counter] i.b=-1 Repeat i+1 If F(i)\Status=1 Then j=1 Until i=Lev(0)\ShotCount[Lev(0)\Counter] If j=0 Lev(0)\Counter=Lev(0)\Counter+1 If Lev(0)\NastyComing[Lev(0)\Counter]=0 Then Goto Levelende EndIf EndIf EndIf ;Poke.w $dff180,Flc Goto Mainpart .Levelende: If PickLevel=1 LevelStatus(0)=0 LevelStatus(1)=1 LevelStatus(2)=1 LevelStatus(3)=1 ShipStatus(1)=1 EndIf If PickLevel=2 OR PickLevel=3 OR PickLevel=4 LevelStatus(PickLevel-1)=0 If ShipStatus(2)=2 ShipStatus(2)=1 Else If ShipStatus(3)=2 ShipStatus(3)=1 Else If ShipStatus(4)=2 ShipStatus(4)=2 EndIf EndIf EndIf If LevelStatus(1)=0 AND LevelStatus(2)=0 AND LevelStatus(3)=0 LevelStatus(4)=1 ShipStatus(4)=1 EndIf EndIf If PickLevel=5 Then LevelStatus(4)=0:LevelStatus(5)=1 If PickLevel=6 Then LevelStatus(5)=0:Gosub Endsequence DisplayBitMap 0,2 DisplayPalette 0,0 Use BitMap 0 Cls VWait 2 BitMapOutput #txt Select PickLevel Case 1 PLoc{0,00," Great work! Our carrier will meet you"} PLoc{0,01," shortly. "} PLoc{0,02," "} PLoc{0,03," Your scanners show us the planetoid "} PLoc{0,04," is in fact an enormous starship. "} PLoc{0,05," The darkside must have a large ion "} PLoc{0,06," pulse driver moving it toward us. "} PLoc{0,07," "} PLoc{0,08," There are radio messages from the "} PLoc{0,09," surface. They're in Terran and "} PLoc{0,10," Gretchin languages. "} PLoc{0,11," "} PLoc{0,12," We were at war with the Gretchin "} PLoc{0,13,"species long ago, but we've lived with "} PLoc{0,14,"them peacefully for the past 200 years."} PLoc{0,15," "} PLoc{0,16," We can't call for help because the "} PLoc{0,17," communication system on New Port has "} PLoc{0,18," been sabotaged, so we're launching an "} PLoc{0,19," attack. YOU. "} PLoc{0,20," "} PLoc{0,21," The planetoid is protected by a shield"} PLoc{0,22," held by three generators in space. "} PLoc{0,23," "} PLoc{0,24," You have to destroy these generators "} PLoc{0,25," first. Attack their defenders, then "} PLoc{0,26," shoot down the generator. "} PLoc{0,27," "} PLoc{0,28," You are our best pilot! "} PLoc{0,29," "} PLoc{0,30," PRESS FIRE TO CONTINUE "} Case 5 PLoc{0,10," MISSION COMPLETE! "} PLoc{0,12," IT'S TIME. "} PLoc{0,13," COME BACK TO THE CARRIER AND PREPARE "} PLoc{0,14," YOUR SHIP FOR THE FINAL BATTLE! "} PLoc{0,20," PRESS FIRE TO CONTINUE "} Case 6 PLoc{0,00," You have destroyed the evil brain. "} PLoc{0,01," "} PLoc{0,02," Our carrier fired torpedos into the "} PLoc{0,03," planetoids ion-drivers and it exploded"} PLoc{0,04," brighter than the sun. "} PLoc{0,05," "} PLoc{0,06,"After repairing communications, we were"} PLoc{0,07," contacted by other sun-systems and the"} PLoc{0,08," head of the Gretchin-Empire. "} PLoc{0,09," "} PLoc{0,10," We discovered the human and gretchin "} PLoc{0,11," attackers were followers of a strange "} PLoc{0,12," sect that disappeared five years ago "} PLoc{0,13," with a fleet of stolen battleships. "} PLoc{0,14," "} PLoc{0,15," Then there was a THIRD craft. Were "} PLoc{0,16," there unknown aliens in those ships? "} PLoc{0,17," "} PLoc{0,18," We found no wreckage of them. "} PLoc{0,19," "} PLoc{0,20," Are there intelligent beings out there"} PLoc{0,21," manipulating us to destroy ourselves? "} PLoc{0,22,"We don't know, but in future we'll work"} PLoc{0,23," with the Gretchin-Empire to prevent "} PLoc{0,24," further attacks. "} PLoc{0,25," "} PLoc{0,26," And now special thanks to you, pilot. "} PLoc{0,27," You saved the people of New Port. "} PLoc{0,28," T H A N K Y O U . "} PLoc{0,29," "} PLoc{0,30," PRESS FIRE TO CONTINUE "} Default PLoc{0,10," MISSION COMPLETE! "} PLoc{0,11," "} PLoc{0,12," YOU TOOK OUT THE DEFENCE PERFECTLY "} PLoc{0,13," AND BLEW UP THE SHIELD-GENERATOR! "} PLoc{0,14," "} PLoc{0,15," CONGRATULATIONS! "} PLoc{0,20," PRESS FIRE TO CONTINUE "} End Select Fire.b=1 Repeat VWait If RawStatus(69)=-1 For k.b=0 To 30 PLoc{0,k," "} Next k Goto TitelPict EndIf If RawStatus(96)=-1 OR Joyb(1)>0 AND Fire=0 For k.b=0 To 30 PLoc{0,k," "} Next k If PickLevel=6 Sound 11,12 PLoc{0,6," YOU PLAYED A GAME BY "} PLoc{0,8," MICHAEL ROSSKOPF & WIREMU TEKANI "} PLoc{0,12," ADDITIONAL STARSHIP-DESIGN: "} PLoc{0,14," MARCO CHRIST & WIREMU TEKANI "} PLoc{0,18," EMAIL ME: Michael_Rosskopf@gmx.de "} PLoc{0,19," Wtekani@netscape.net "} PLoc{0,22," PRESS FIRE TO CONTINUE "} Fire.b=1 Repeat VWait If RawStatus(69)=-1 For k.b=0 To 30 PLoc{0,k," "} Next k Goto TitelPict EndIf If RawStatus(96)=-1 OR Joyb(1)>0 AND Fire=0 For k.b=0 To 30 PLoc{0,k," "} Next k Goto Highscore ; Play Speedafft EndIf If Joyb(1)=0 AND RawStatus(96)=0 Then Fire=0 Forever EndIf Goto Levelstart EndIf If Joyb(1)=0 AND RawStatus(96)=0 Then Fire=0 Forever .Ship_lost: ShipStatus(PickShip-1)=0 i.b=-1:j.b=0 Repeat i=i+1 If ShipStatus(i)=1 Then j=j+1 Until i=4 DisplayBitMap 0,2 DisplayPalette 0,0 Use BitMap 0 BitMapOutput #txt Clear{} If j=0 PLoc{0,10," YOU FAILED "} PLoc{0,12," G A M E O V E R "} PLoc{0,20," PRESS FIRE TO CONTINUE "} Else PLoc{0,10," YOUR SHIP HAS BEEN DESTROYED! "} PLoc{0,12," YOU HAVE TO FLY THE MISSION AGAIN! "} PLoc{0,20," PRESS FIRE TO CONTINUE "} EndIf Fire.b=1 Repeat VWait If RawStatus(69)=-1 For k.b=0 To 30 PLoc{0,k," "} Next k Goto TitelPict EndIf If RawStatus(96)=-1 OR Joyb(1)>0 AND Fire=0 For k.b=0 To 30 PLoc{0,k," "} Next k If j=0 Then Goto Highscore ; GameOver Goto Levelstart EndIf If i>0 Then i=i-1 If Joyb(1)=0 AND RawStatus(96)=0 Then Fire=0 Forever Goto Levelstart .Highscore: If Points>=HighscorePoints(4) Sound 11,12 PLoc{0,10," YOU MADE THE HIGHSCORE! "} PLoc{0,12," PLEASE ENTER YOUR NAME! "} PLoc{15,14,">"}:PLoc{24,14,"<"} BitMapInput Locate 16,14:HighscoreName$=Edit$(8) If Points>=HighscorePoints(4) Then Platz.b=4 If Points>=HighscorePoints(3) Then Platz.b=3 If Points>=HighscorePoints(2) Then Platz.b=2 If Points>=HighscorePoints(1) Then Platz.b=1 If Points>=HighscorePoints(0) Then Platz.b=0 For i.b=4 To Platz Step -1 If i>0 HighscoreNamen$(i)=HighscoreNamen$(i-1) HighscorePoints(i)=HighscorePoints(i-1) HighscoreLevel(i)=HighscoreLevel(i-1) EndIf Next i HighscoreNamen$(Platz)=HighscoreName$ HighscorePoints(Platz)=Points If PickLevel=1 HighscoreLevel(Platz)=0 If PickLevel=2 OR PickLevel=3 OR PickLevel=4 HighscoreLevel(Platz)=1 If LevelStatus(1)=0 Then HighscoreLevel(Platz)=HighscoreLevel(Platz)+1 If LevelStatus(2)=0 Then HighscoreLevel(Platz)=HighscoreLevel(Platz)+1 If LevelStatus(3)=0 Then HighscoreLevel(Platz)=HighscoreLevel(Platz)+1 EndIf If PickLevel=5 HighscoreLevel(Platz)=4 If PickLevel=6 HighscoreLevel(Platz)=5 If PickLevel=6 AND LevelStatus(5)=0 Then HighscoreLevel(Platz)=6 Pictcurrent.w=399 Else Pictcurrent.w=-1 EndIf Goto TitelPict .Endsequence DisplayPalette 0,0 UnQueue 0 UnQueue 1 BitMapOutput #txt PLoc{0,0," "} BitMapOutput #txt+1 PLoc{0,0," "} BitMapOutput #txt DisplayBitMap 0,2 PLoc{0,10," NOW YOU'VE ANNIHILATED "} PLoc{0,12," THE EVIL BRAIN "} PLoc{0,14," THE REMAINING ENEMIES "} PLoc{0,16," FLEE IN A BLIND PANIC! "} Pictcurrent.w=-1 Repeat VWait Pictcurrent=Pictcurrent+1 Until Pictcurrent>400 For k.b=0 To 30 PLoc{0,k," "} Next k PalRGB 0,0,0,0,0 DisplayPalette 0,0 For i.b=0 To 9 G(i)\SStatus=0 F(i)\Status=0 Next i j.b=0:k.b=0 Repeat VWait DisplayBitMap 0,2+db:db=1-db:Use BitMap db UnQueue db j=j+1 i.b=-1 Repeat i=i+1 If G(i)\SStatus=1 If G(i)\Sx<-G(i)\SSpeedX OR G(i)\Sx>319-G(i)\SWidth-G(i)\SSpeedX Then G(i)\SSpeedX=-G(i)\SSpeedX If G(i)\Sy>253-G(i)\SHeight-G(i)\SSpeedY G(i)\Sy=253-G(i)\SHeight-G(i)\SSpeedY:G(i)\SStatus=0 Lev(0)\NastyKilled[Lev(0)\Counter]=Lev(0)\NastyKilled[Lev(0)\Counter]-1 EndIf G(i)\Sx=G(i)\Sx+G(i)\SSpeedX G(i)\Sy=G(i)\Sy+G(i)\SSpeedY QBlit db,G(i)\SPict,G(i)\Sx,G(i)\Sy+((G(i)\Sy)LSL2) EndIf Until i=4 If j=0 AND k<35 i.b=-1 Repeat i=i+1 If G(i)\SStatus=0 Sound Rnd(2)+13,2 NastyShip.b=k k=k+1 G(i)\ SPict=Nastychoice(NastyShip)\SPict G(i)\ SWidth=Nastychoice(NastyShip)\SWidth G(i)\ SHeight=Nastychoice(NastyShip)\SHeight j.b=Rnd(2) If j=0 G(i)\SSpeedX=Rnd(2)+1 Else G(i)\SSpeedX=-Rnd(2)+1 EndIf G(i)\ SSpeedY=Rnd(2)+1 G(i)\ SBorderX1=Nastychoice(NastyShip)\SBorderX1 G(i)\ SBorderX2=Nastychoice(NastyShip)\SBorderX2 G(i)\ SBorderY1=Nastychoice(NastyShip)\SBorderY1 G(i)\ SBorderY2=Nastychoice(NastyShip)\SBorderY2 G(i)\ SStatus=1 G(i)\ Sx=Rnd(320-Nastychoice(NastyShip)\SWidth) G(i)\ Sy=0 i=4 EndIf Until i=4 EndIf If j=48 Then j=-1 Until G(0)\SStatus=0 AND G(1)\SStatus=0 AND G(2)\SStatus=0 AND G(3)\SStatus=0 AND G(4)\SStatus=0 AND k=35 k.b=0:j.b=0 Repeat starspeed=0 VWait DisplayPalette 0,1 DisplayBitMap 0,2+db:db=1-db:Use BitMap db UnQueue db j=j+1 QBlit db,110,92,275 i.b=-1 Repeat i=i+1 If G(i)\SStatus=2 QBlit db,G(i)\trailCounter,G(i)\Sx,G(i)\Sy+((G(i)\Sy)LSL2) G(i)\trailCounter=G(i)\trailCounter+1 If G(i)\trailCounter=25 Then G(i)\SStatus=0 EndIf Until i=8 If j=0 i.b=-1 Repeat i=i+1 If G(i)\SStatus=0 Sound 9,Rnd(15)+1 G(i)\SStatus=2 G(i)\trailCounter=0 G(i)\Sx=Rnd(93)+92 G(i)\Sy=Rnd(103)+55 k=k+1 i=(k/14) EndIf Until i=(k/14) EndIf If j=2 Then j=-1 Until k=127 PalRGB 2,0,15,15,15 DisplayPalette 0,2 Sound 10,15 UnQueue 0:UnQueue 1 i.b=16 Repeat VWait(10) i=i-1 For i2=0 To 31 PalRGB 2,i2,i,i,i Next i2 DisplayPalette 0,2 Until i=0 DisplayPalette 0,0 starspeed=2 Return .Ende: AMIGA Zugriff.b=OpenFile(0,"Galagawars.Highscore") Fields 0,HighscoreNamen$(0) Fields 0,HighscoreNamen$(1) Fields 0,HighscoreNamen$(2) Fields 0,HighscoreNamen$(3) Fields 0,HighscoreNamen$(4) Fields 0,HighscorePoints(0) Fields 0,HighscorePoints(1) Fields 0,HighscorePoints(2) Fields 0,HighscorePoints(3) Fields 0,HighscorePoints(4) Fields 0,HighscoreLevel(0) Fields 0,HighscoreLevel(1) Fields 0,HighscoreLevel(2) Fields 0,HighscoreLevel(3) Fields 0,HighscoreLevel(4) Put 0,0 CloseFile 0 End .Binaries .b_allshapes IncBin "stl:gwars/allshapes.int" .bpalt0 IncBin "stl:gwars/P1" .bpalt1 IncBin "stl:gwars/P2" ; Soundloader s0: IncBin "GalagaWars:Sounds/Intro" s1: IncBin "GalagaWars:Sounds/Laser" s2: IncBin "GalagaWars:Sounds/Ion" s3: IncBin "GalagaWars:Sounds/SchwererLaser" s4: IncBin "GalagaWars:Sounds/Plasma" s5: IncBin "GalagaWars:Sounds/Torpedo" s6: IncBin "GalagaWars:Sounds/Start" s7: IncBin "GalagaWars:Sounds/Alarm1" s8: IncBin "GalagaWars:Sounds/Alarm2" s9: IncBin "GalagaWars:Sounds/Explosion1" sa: IncBin "GalagaWars:Sounds/Explosion2" sb: IncBin "GalagaWars:Sounds/Treffer" sc: IncBin "GalagaWars:Sounds/Feuer" sd: IncBin "GalagaWars:Sounds/Jet1" se: IncBin "GalagaWars:Sounds/Jet2" ;LoadBlitzFont 0,"2001.font" ; Players attributes Even star_speeds: Dc.b 41,53,61,23,21,81,25,26,03,37,24,15,26,39,08,42 Dc.b 51,84,95,70,42,63,36,25,14,09,22,31,55,66,81,62 Dc.b 05,81,94,57,68,39,46,23,22,51,64,15,76,88,05,32 Dc.b 51,14,85,88,44,11,65,50,12,25,54,14,62,35,57,44