From: Mischa Poslawsky Date: Sun, 25 Jun 2000 19:23:48 +0000 (+0200) Subject: version 0.97: weapon fixes and updates X-Git-Url: http://git.shiar.net/nemesis.git/commitdiff_plain/7f06b198f64d0300897f8df9c0eb5308aa372985 version 0.97: weapon fixes and updates # new random procedure: stars don't appear on one line anymore * weapons appear centered at multiples * laser properties can be changed (damage, charge) + weapon can be combination of bullets/lasers (max. of 3 per weapon) * bullet-icon is removed when laser is selected * enemy sprite table integrated in enemy specs (-1 byte/enemy) --- diff --git a/nemesis.z80 b/nemesis.z80 index 2a6d8ad..9e8bcfa 100644 --- a/nemesis.z80 +++ b/nemesis.z80 @@ -3,9 +3,9 @@ ;---------------------------------------------------------------------------- ; Title : Nemesis -; Version : 0.96 -; Release Date : 30.X.99 -; Filename : nemesis.86p (5kb) +; Version : 0.97 +; Release Date : 25.VI.00 +; Filename : nemesis.86p (6kb) ; Author(s) : Shiar ; Email Address : shiar0@hotmail.com ; ICQ ; #43840958 @@ -43,38 +43,34 @@ storepos2 = _asm_exec_ram+6200 ;141 OF 167 ;---------------------- in-game vars ---------------------------------------- -just_fired = storepos+2 ; +2 ;counts how long a blast lasts -menuitem = storepos+2 ; +2 ;used to store menu location -hiscorepos = storepos+2 ; +2 -timer = storepos+4 ; +4 ;frame counter - ;--------YOU -x = storepos+5 ; +5 ;your ship's position -y = x+1 ; +6 ;your y-pos -firex = y+1 ; +7 ;(1 byte) -firey = firex+1 ; +8 ;(1 byte) - ; ** - ;--------LEVEL -eventtime = storepos+10 ;+10 ;enemy frequency -eventleft = eventtime+1 ;+11 ;nr. of enemies still to come -nextevent = eventleft+1 ;+12 ;time to next event -level_enemy = nextevent+1 ;+13 ;enemy type -level_info = level_enemy+1 ;+14 ;info (see below) -level_move = level_info+1 ;+15 ;= -level_fire = level_move+1 ;+16 - ; ** - ;--------OBJECTS +just_fired = storepos ; +0 ;counts how long a blast lasts +menuitem = storepos ; +0 ;used to store menu location +hiscorepos = storepos ; +0 ;entering hiscore name + ; ;--------YOU +x = storepos+1 ; +1 ;your ship's position +y = x+1 ; +2 ;your y-pos +firex = y+1 ; +3 ;(1 byte) +firey = firex+1 ; +4 ;(1 byte) + ; ;--------LEVEL +eventleft = storepos+5 ; +5 ;nr. of enemies still to come +nextevent = eventleft+1 ; +6 ;time to next event +level_enemy = nextevent+1 ; +7 ;enemy type +level_info = level_enemy+1 ; +8 ;info (see below) +level_move = level_info+1 ; +9 ;= +level_fire = level_move+1 ;+10 + ; ;--------OBJECTS spacespace = storepos+19 ;+19 groundinfo = spacespace+1 ;+20 groundpos = groundinfo+1 ;+21 $10 ceilingpos = groundpos+16 ;+37 $10 - ; ^^ ;--------STARS + ; ;--------STARS stars1 = ceilingpos+16 ;+53 stars2 = stars1+1 ;+54 nrstars1 = 7 starx1 = storepos+55 ;+55 nrstars2 = 7 starx2 = starx1+(nrstars1*2) ;+69 - ; ^^ ;--------MULTIPLES + ; ;--------MULTIPLES mx = starx2+(nrstars2*2) ;+83 ;position of multiple#1 my = mx+1 ;+84 ;multiple y-pos m2x = my+1 ;+85 @@ -89,12 +85,10 @@ enemysize = 7 ;infobytes per enemy nrenemies = 16 ;max. nr of enemies ybullets = enemies+(nrenemies*enemysize) ;60 bytes = 20(state,damg,x,y) -nrybuls = 32 ; +80\ +nrybuls = 64 ; +80\ ebullets = ybullets+(nrybuls*4) ;+110 ;30 bytes = 10(state,x,y) nrebuls = 16 - -ybuls = ebullets+(nrebuls*3) ;+140 -maxbullets = 32 +lvlenemies = ebullets+(nrebuls*3) ;^-----------------------------------<2 ;-141=$8D ;level_info: @@ -111,7 +105,7 @@ maxbullets = 32 .dw Title ;pointer to description (all shells) .dw Icon ;pointer to YAS icon -Title: .db "Nemesis v0.96 by Shiar",0 +Title: .db "Nemesis v0.97 by SHIAR",0 Icon: .db 8,1 ;icon for YAS: width = 1byte; height = 9bytes .db %11100000 ; ███ @@ -285,8 +279,9 @@ Clear_screen: ld bc,896 ;loop 896 times = (128/8) * (64-8 for scorebar) ldir ;all clear! - ld a,(timer) - and %11 + ld a,0 ;current frame/turn 0-255 +timer =$-1 + and %11 ;a=0 once every 4 turns jr z,movestarsdone ;don't move stars once every 4 frames cal movestars1 ;move the stars on the FRONT layer cal movestars2 ;move the distant stars @@ -403,48 +398,36 @@ Handle_ground: ld a,(groundinfo) ;what kind of ground dec a ;type 1: jr z,ground_tunnel ;tunnel effect - jr ground_boring +ground_boring: + ld a,(groundpos) ;type 0 ground_tunnel: ld a,(groundpos+14) - ld (groundpos+15),a + ld d,a ld hl,spacespace ld bc,$201 ;range=1..3 cal Random ;a=1-3 dec a - jr z,ground_previous ;same if a=1 + jr z,newground ;same if a=1 dec a jr z,gtunneldown ;down if a=2 gtunnelup: ;up if a=3 ld a,(hl) or a - jr z,ground_previous ;a>=0 (a=0 actually) + jr z,newground ;a>=0 (a=0 actually) inc (hl) - ld a,(groundpos+15) - inc a + inc d jr newground gtunneldown: - ld a,(groundpos+15) - dec a - jr z,ground_previous + ld a,1 + cp d + jr z,newground + dec d dec (hl) - jr newground - -ground_previous: - ld a,(groundpos+14) ;type 1 - jr newground -ground_boring: - ld a,(groundpos) ;type 0 newground: + ld a,d ld (groundpos+15),a ;save new byte on the right - ld a,(hl) - cp -25 - jr nc,Display_ground - ld a,b ;&&&random - and %1 - ld b,0 - jr nz,gtunnelup Display_ground: ld b,16 ;screen width @@ -500,54 +483,40 @@ Handle_ceiling: ld bc,15 ;scroll all 15 bytes (16th is new position) ld hl,ceilingpos+1 ;from.. ld de,ceilingpos ;to (one byte to the left) - ld a,(de) ;load byte on left (will be lost after scroll) ldir ;LoaDIncreaseRepeat = scroll! ld a,(groundinfo) ;what kind of ceiling dec a ;type 1: jr z,ceiling_tunnel ;tunnel effect - jr ceiling_boring +ceiling_boring: ceiling_tunnel: ld a,(ceilingpos+14) - ld (ceilingpos+15),a + ld d,a ;d=new ceiling ld hl,spacespace ld bc,$201 ;range=1..3 cal Random ;a=1-3 dec a - jr z,ceiling_previous ;1:same + jr z,newceiling ;1:same dec a jr z,ctunnelup ;2:up ctunneldown: ;3:down ld a,(hl) - or a - jr z,ceiling_previous + or a ;(spacespace)=0: + jr z,newceiling+2 ;keep same ceiling inc (hl) - ld a,(ceilingpos+15) - inc a + inc d jr newceiling ctunnelup: - ld a,(ceilingpos+15) - dec a - jr z,ceiling_previous + ld a,1 + cp d ;if size=1 then don't + jr z,newceiling + dec d dec (hl) - jr newceiling - -ceiling_previous: - ld a,(ceilingpos+14) ;type 1 - jr newceiling -ceiling_boring: - ld a,(ceilingpos) ;type 0 newceiling: + ld a,d ld (ceilingpos+15),a ;save the new byte - ld a,(hl) - cp -25 - jr nc,Display_ceiling - ld a,b - and %1 - ld b,0 - jr nz,ctunneldown Display_ceiling: ld b,16 ;screen width @@ -859,12 +828,15 @@ handle_multiples: inc hl ;and ld c,(hl) ;old y-pos ld (mx),bc ;save multiple position in (mx) - ld (hl),e ;save current pos. for 16 turns into the future + ld (hl),d ;save current pos. for 16 turns into the future dec hl ;yes... - ld (hl),d ;...both + ld (hl),e ;...both mult_adv: ld de,(mx) + ld a,d + ld d,e + ld e,a ;ex d,e ld ix,spr_multiple ;sprite of the multiple jp putsprite ;display it + @@ -900,22 +872,7 @@ damage_you: ;damages you B points sub b ;decrease hp by B jp m,no_armor ;<0hp left so explode ld (hl),a ;no, so save decreased hp - cal disp_armor ;and display new value - - ld a,(your_pickup) ;how many pickups do you have? - dec a ;is the armor-icon selected - ret nz ;return if not - - psh de \ psh ix ;&&& just2Bsave - ld hl,VIDEO_MEM+(16*56) - ld (PutWhere),hl - ld ix,spr_icon ;if so, highlight armorIcon again - ld de,$1901 ;position - cal putwidesprite ;display icon - ld hl,GRAPH_MEM - ld (PutWhere),hl - pop ix \ pop de - ret ;and return + jp disp_armor ;and display new value no_armor: ld a,%01 ;occ %xxxxxx01 = explode ld (your_occ),a ;too bad, you're dead meat @@ -1009,63 +966,51 @@ Fire_bullet: fireOK: ld hl,(x) ;yes: first fire from ship position (x) - ld (firex),hl ;set firepos ld a,(your_multiples) ;any multiples? and %11 ;nope? jr z,fireany ;then just fire somethin' cal fireany ;and blast - ld hl,(my) ;then, fire from multiple position (mx) - ld a,(mx) ; - ld h,a ; ^^^^^^ - ld (firex),hl ;set firepos + ld hl,(mx) ;then, fire from multiple position (mx) + dec h ;one up (-2 height: keeps weapons centered) ;blast again and -fireany: +fireany: ;HL=(x,y) + ld (firex),hl ;set position to fire from cal fire_torp ;&&& ld a,(your_weapon) ;do you have laser? - dec a ;1=yes - jr z,fire_laser - - ld ix,weapondata-6 + ld ix,weapondata-6-(256*3) add a,a ;weap*2 add a,a ; *4 add a,a ; *8 ld c,a - ld b,0 + ld b,3 ;go to current weapon (bc=a) add ix,bc - ld c,(ix) - cal fire_ybullet - inc ix +fire_weapon: ;b=3 + psh bc ;save counter + ld a,(ix) ;load this weapon + cp %11110000 ;%11110000=laser + cal z,fire_laser ;fire laser (will set a=0 when done) + or a ;<>0=bullet + cal nz,fire_ybullet inc ix - ld c,(ix) - cal fire_ybullet inc ix - inc ix - ld c,(ix) - cal fire_ybullet - ret - -fire_torp: - ld de,(firex) - ld hl,torp_occ ;torpedo... - ld a,(hl) ;load torpInfo - dec a ;do you have (unused) torpedoes? - ret nz ;nope (a must be 1) - ld (hl),2 ;yes; use torpedo - ld (torp_pos),de ;save torpedo position (in de) + pop bc ;weapon counter (do 3 weapons) + dnz fire_weapon ret ;-----fire LASER----- -fire_laser: ;yes, fire that laser instead - ld a,(firex) ;a = your x-pos - ld d,a +fire_laser: + ld b,0 ;overflow counter + ld hl,firex + ld d,(hl) ;d = your x-pos + inc hl - ld hl,GRAPH_MEM ;save-location - ld a,(firey) ;y-coord - add a,3 ;at middle of your ship (y+3) + ld a,(hl) ;base y-coord (firey) + add a,(ix+1) ;at specified offset (most likely the middle) ld e,a ;save laser-y in e + psh de ;save unmodified (x,y) add a,a ;y*2 add a,a ;y*4 add a,a ;y*8 @@ -1078,10 +1023,12 @@ fire_laser: ;yes, fire that laser instead srl d ;X/4 srl d ;X/8 add a,d ;a = (Y*16+X/8) mod 256 (c set on overflow) + jr nc,_nolc ;jump if no carry = no overflow = a<=255 inc b ;a>255 so increase bc by 256 _nolc: ld c,a ;c = (Y*16+X/8) mod 256 - add hl,bc ;bc = Y*16+X/8 + ld hl,GRAPH_MEM ;save-location + add hl,bc ;bc = Y*16+X/8: hl=screen address ld a,15 ;128/8=16=screen width ** minus one (inc a ^^) sub d ;minus x-start (d=X/8) ld b,a @@ -1090,16 +1037,15 @@ drawlaser: inc hl ;Go to next byte dnz drawlaser handle_laser: - ld a,(firex) - ld d,a ;d was divided, so reload the laser-x + pop de ;de=(firex): x-pos unmodified check_laserhits: ;de = (x,y) - ld b,nrenemies - ld hl,enemies+1 -laserhits: ;Hits with normal enemies + ld b,nrenemies ;check all enemies + ld hl,enemies+1 ;enemy#1+occ/hp00 +laserhits: ;hits with normal enemies psh hl - ld a,(hl) - and %00000010 + ld a,(hl) ;occ+hp00 + and %00000010 ;normal/moving occ.=%1x jr z,nolashit ;no hit when enemy_occ <> 2/3 inc hl ;enemy type ld a,(hl) @@ -1117,24 +1063,38 @@ laserhits: ;Hits with normal enemies add a,5 ;add enemy height&&& jp m,nolashit ;a-e>0 = hit enemy_lashit: - ld a,1 ;damage - cal enemy_hit - jr nolashit + ld a,(curweapdamage) ;damage + cal enemy_hit ;hl=enemy+y nolashit: - pop hl + pop hl ;enemy+1 ld a,b ;psh bc ld bc,enemysize add hl,bc ;go to next enemy ld b,a ;pop bc dnz laserhits ;check all enemies + xor a ;a=0 otherwise weird things might happen :P + ld (weapincs),a ;reset damage ret -;-----fire BULLET----- +;-----misc----- + +fire_torp: + ld de,(firex) + ld hl,torp_occ ;torpedo... + ld a,(hl) ;load torpInfo + dec a ;do you have (unused) torpedoes? + ret nz ;nope (a must be 1) + ld (hl),2 ;yes; use torpedo + ld (torp_pos),de ;save torpedo position (in de) + ret + +;-----fire BULLETs----- fire_ybullet: - ld hl,ybullets + ld c,a ;save bulletType in c + ld hl,ybullets ;check for unused bullet ld de,4 - ld b,maxbullets + ld b,nrybuls find_ybullet: ld a,(hl) or a @@ -1145,9 +1105,6 @@ find_ybullet: ret ;so ret twice found_ybullet: - xor a - cp c - ret z ld (hl),c ;use the bullet and set correct bullet-type inc hl ;@damage ld (hl),1 ;set bullet damage @@ -1222,7 +1179,7 @@ remove_bullet: Handle_bullets: ld hl,ybullets - ld b,maxbullets + ld b,nrybuls scan_bullets: psh bc ;bullet counter psh hl ;save enemy+type @@ -1412,7 +1369,8 @@ Level_event: or a ;has it reached zero? ret nz ;nope: get outta here! - ld a,(eventtime) ;enemy frequency (lvl) + ld a,0 ;enemy frequency (lvl) +eventtime =$-1 ld (nextevent),a ;set time to next event ld hl,eventleft dec (hl) ;update enemy-counter @@ -1431,10 +1389,12 @@ Level_event: ret ;don't place any more enemies place_boss: + ld a,1 + ld (nrlvlenemies),a ;just one enemy: the BOSS ld hl,(levelp) ;the leveldata (including the boss) dec hl ;points to leveldata\boss\enemynr ld a,(hl) ;load it - ld (level_enemy),a ;set new enemy (boss) + ld (lvlenemies),a ;set new enemy (boss) dec hl ;points to level\boss\movement ld a,(hl) ;load ld (level_move),a ;set boss movement @@ -1471,12 +1431,18 @@ chk_noenemy: ex de,hl ;de=hl=usable enemy place_enemy: - ld a,(level_enemy) ;enemy type to place (lvl) + ld bc,0 ;0..0 +nrlvlenemies =$-1 ;=nr of enemies minus 1 + cal Random ;random enemy b..b+c = 0..nrenemies-1 + ld b,0 + ld c,a ;bc=a + ld hl,lvlenemies + add hl,bc ;go to a random enemy + ld a,(hl) ;load enemy nr of this mysterious random enemy ld hl,XLenemyinfos-4 ;enemy "0" specs (1 before enemy #1) add a,a ;a=type*2 add a,a ;a=type*4 - ld c,a ;c=type - ld b,0 ;bc = enemy nr.&&&XX + ld c,a ;b=0; c=bc=type add hl,bc ;hl = enemy specs ld a,(hl) ;load hitpoints+occ of this enemy class ld (de),a ;save occ @@ -1514,10 +1480,8 @@ lure_enemy: ;2nd possibility: luring enemy ld a,(y) ;place at same y-pos as YOUR ship jr ypos_OK random_enemy: - ld bc,256*51 ;range=0..51 - cal Random -; ld b,e ;b will be added to random-value -; cal Random50 ;make a (in a) random value 0-51 + ld bc,256*51 ;range=0..51 + cal Random ypos_OK: ;random value successfully created ld (de),a ;save y-position @@ -2122,15 +2086,20 @@ no_torp: ld de,$2901 ;icon #2 cal putwidesprite ;display - ld ix,spr_icon03 ;bulletIcon - ld de,$3901 ;icon #3 - cal putwidesprite ;display icon + ld ix,spr_icon00 + ld a,(your_weapon) ;ur weapon + dec a ;1=laser + jr z,no_bullets ld hl,$3945 ;position to display bullet-type digit ld a,(your_weapon) ;digit dec a ;minus one (1=laser) ld (_penCol),hl ;set location add a,'0' ;make digit cal _vputmap ;display char + ld ix,spr_icon03 ;bulletIcon +no_bullets: + ld de,$3901 ;icon #3 + cal putwidesprite ;display icon ld ix,spr_icon00 ;emptyIcon ld a,(your_weapon) @@ -2258,12 +2227,11 @@ disp_lives: ;--------------------------- proc ------------------------------------------- -Random: ;a=b=b jr nc,Random ;then add again add a,c ;a>2f ; 7 - .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;16 - .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;16 - .db 1,1 ; 2 - .db $10,$07,$09 ; 3 + .db 3,$01,$02,$03 + .db $1b,$2f,%00010001 + .db 0,255 + .db 0,0 + .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ;16 + .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + .db 1,1 + + .db $10,$07,$09 .db 0 .db $01,01,"And the storyline conti", @@ -3254,48 +3231,53 @@ level01: ;efrequency must be odd if halfluring! .db "anet =)",0,0,1,20 .db $FF - .db $10,$07,$09 ; 3 -level02: ;44 - .db $02,$13,$4b,%00100101,0,064,0,0 + .db $10,$07,$09 +level02: + .db 1,$02 + .db $13,$4b,%00100101,0,064,0,0 .db 1,2,3,4,5,6,6,5,4,3,4,5,4,3,2,1 .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 .db 1,1 - .db $0E,$07,$09 .db 0 .db $01,01,"Blablabla...",0,1 .db $01,34,"this storyline sux",0,0,1,39 - .DB $FF + .db $FF .db $0E,$07,$09 level03: - .db $03,$2d,$3f,%00010110,0,255,-9,1 + .db 1,$03 + .db $2d,$3f,%00010110,0,255,-9,1 .db 3,2,4,3,2,2,1,1,1,1 ,1,1,21,17,18,20 .db 1,1,1,1,1,1,1,3,6,12,9,1,21,19,18,18 - .db -1,-1 + .db -1,-1 ;=%11111111=line .db $0D,$07,$08 level04: - .db $04,$11,$41,%00100001,0,057,0,0 + .db 1,$04 + .db $11,$41,%00100001,0,057,0,0 .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 .db 1,1 .db $0C,$07,$09 level05: - .db $05,$11,$45,%00100101,%10,031,-7,1 + .db 1,$05 + .db $11,$45,%00100101,%10,031,-7,1 .db 14,12,11,9,10,7,7,5,4,3,4,4,2,3,1,2 .db 1, 1, 1, 1,1, 1,1,1,1,1,1,1,1,1,1,1 .db 1,1 .db $0B,$07,$08 level06: - .db $06,$19,$3a,%00100111,0,255,-4,1 + .db 1,$06 + .db $19,$3a,%00100111,0,255,-4,1 .db 20,22,18,15,9,1,1,1,1,1,1,1,1,1,1,1 .db 20,22,18,15,9,1,1,1,1,1,1,1,1,1,1,1 .db 1,1 .db $08,$07,$09 level07: - .db $07,$09,$ff,%00100001,0,043,0,0 + .db 1,$07 + .db $09,$ff,%00100001,0,043,0,0 .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 .db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 .db 1,1 @@ -3403,38 +3385,20 @@ spr_boss0_2: .db %00001111,%10001111 ; █████ ████ .db %11111110,%00000000 ; ███████ -XLenemytable: - .db $00 ;00 - .db (spr_enemy01-spr_enemy00)/2 ;01 - .db (spr_enemy02-spr_enemy00)/2 ;02 - .db (spr_enemy03-spr_enemy00)/2 ;03 - .db (spr_enemy04-spr_enemy00)/2 ;04 - .db (spr_enemy05-spr_enemy00)/2 ;05 - .db (spr_enemy06-spr_enemy00)/2 ;06 - .db (spr_enemy07-spr_enemy00)/2 ;07 - .db (spr_boss0_1-spr_enemy00)/2 ;08 - .db (spr_boss0_2-spr_enemy00)/2 ;09 - .db (spr_enemy08-spr_enemy00)/2 ;0A - .db (spr_enemy00-spr_enemy00)/2 ;0B - .db (spr_enemy00-spr_enemy00)/2 ;0C - .db (spr_enemy00-spr_enemy00)/2 ;0D - .db (spr_enemy00-spr_enemy00)/2 ;0E - .db (spr_enemy00-spr_enemy00)/2 ;0F - ;format: [000000:HP 00:occ] [HP64] [appearance(ypos)] [unused] XLenemyinfos: - .db %00100110,0,1,1 ;#1 HP:1 app:random - .db %00101010,0,2,3 ;#2 HP:1 app:halflure - .db %00001111,0,3,2 ;#3 HP:1 app:lure + .db %00100110,0,(spr_enemy01-spr_enemy00)/2,1 ;#1 + .db %00101010,0,(spr_enemy02-spr_enemy00)/2,3 ;#2 + .db %00001111,0,(spr_enemy03-spr_enemy00)/2,2 ;#3 - .db %00000110,0,4,2 ;#4 HP:2 app:lure - .db %00000111,0,5,3 ;#5 HP:2 app:random moving - .db %00001011,0,6,2 ;#6 HP:3 app:lure moving + .db %00000110,0,(spr_enemy04-spr_enemy00)/2,2 ;#4 + .db %00000111,0,(spr_enemy05-spr_enemy00)/2,3 ;#5 + .db %00001011,0,(spr_enemy06-spr_enemy00)/2,2 ;#6 - .db %00011011,0,7,3 ;#7 HP:7 app:halflure moving + .db %00011011,0,(spr_enemy07-spr_enemy00)/2,3 ;#7 - .db %00110011,1,8,1 ;boss1 - .db %00111011,0,9,3 ;boss2 + .db %00110011,1,(spr_boss0_1-spr_enemy00)/2,1 ;boss1 + .db %01001011,1,(spr_boss0_2-spr_enemy00)/2,3 ;boss2 .db %00000000,0,0,0 .db %00000000,0,0,0 @@ -3479,7 +3443,7 @@ logo_nemesis: ;---------------------------------------------------------------------------- ;---------------------------------------------------------------------------- -; 0.97.624 -- 24.VI.00 -- size 5803 +; 0.97.625 -- 25.VI.00 -- size 5753 ; ; # bullets do damage in all levels ; * more armor at armor-upgrade and extra armor at end of a level @@ -3503,6 +3467,12 @@ logo_nemesis: ; # game doesn't continue again after death (stack messed up) ; # game over when lives<0 (didn't work in v0.96+) ; * using some self-modifiing code (so it's smaller) +; # new random procedure: stars don't appear on one line anymore +; * weapons appear centered at multiples +; * laser properties can be changed (damage, charge) +; + weapon can be combination of bullets/lasers (max. of 3 per weapon) +; * bullet-icon is removed when laser is selected +; * enemy sprite table integrated in enemy specs (-1 byte/enemy) ; ; ; + added - removed * changed # bug fixed \ No newline at end of file