glados: working on the endgame

This commit is contained in:
Vince Weaver 2017-01-10 13:12:33 -05:00
parent c7d76640e6
commit ecbab820f9
4 changed files with 50 additions and 16 deletions

Binary file not shown.

View File

@ -56,6 +56,14 @@
106 HPLOT X+6,Y+2 TO X+7,Y+2:HPLOT X+6,Y+8 TO X+7,Y+8
107 HPLOT X+5,Y+1 TO X+6,Y+1:HPLOT X+5,Y+9 TO X+6,Y+9
'
115 HCOLOR=5
120 FOR X=0 TO 278 STEP 5:HPLOT X,0 TO 120,85:V=PEEK(-16336):NEXT X
122 FOR Y=0 TO 159 STEP 5:HPLOT 278,Y TO 120,85:V=PEEK(-16336):NEXT Y
124 FOR X=278 TO 0 STEP -5:HPLOT X,159 TO 120,85:V=PEEK(-16336):NEXT X
126 FOR Y=159 TO 0 STEP -5:HPLOT 0,Y TO 120,85:V=PEEK(-16336):NEXT Y
200 REM SPRITE EDIT
210 X=0:Y=0:ROT=0:SCALE=1
220 HIMEM:8170

Binary file not shown.

View File

@ -17,7 +17,7 @@
'
' Title Screen
'
1 HOME:HGR:PRINT CHR$(4)+"BLOAD PORTAL_TITLE.HGR"
1 HOME:HGR:D$=CHR$(4):PRINT D$;"BLOAD PORTAL_TITLE.HGR"
'
' Load Sound Library
' Violin sound, based on: https://gist.github.com/thelbane/9291cc81ed0d8e0266c8
@ -27,7 +27,7 @@
' Load Shape Table
' We just *barely* fit above the soud but below DOS vectors
8 POKE 232,38:POKE 233,3
9 PRINT CHR$(4)+"BLOAD OBJECTS.SHAPE,A$326"
9 PRINT D$;"BLOAD OBJECTS.SHAPE,A$326"
'
' Wait a few seconds, or until keypressed
'
@ -91,39 +91,46 @@
' Move X. Ensure we are always odd so colors are right
107 IF VX<2 AND VX>-2 THEN VX=0
110 CX=CX+VX
' Move the Level19 blob object
' Move the Level-19 blob object
115 IF L=19 AND JO=0 THEN JO=1:JX=45:JY=10:JA=5:SCALE=2:XDRAW 6 AT JX,JY:POKE 768,200:POKE 769,10:CALL 770
120 IF L=19 AND JO=1 THEN SCALE=2:XDRAW 6 AT JX,JY:JY=JY+JA:XDRAW 6 AT JX,JY
'
' COLLISION DETECTION
'
' Portals
' Portal/Chell
200 IF BO=0 OR GO=0 GOTO 210
202 IF CX>BX-6 AND CX<BX+6 AND CY<BY+12 AND CY>BY-12 THEN CX=GX+2*VX:CY=GY:POKE 768,180:POKE 769,40:CALL 770
204 IF CX>GX-6 AND CX<GX+6 AND CY<GY+12 AND CY>GY-12 THEN CX=BX+2*VX:CY=BY:POKE 768,180:POKE 769,40:CALL 770
201 IF CX>BX-6 AND CX<BX+6 AND CY<BY+12 AND CY>BY-12 THEN CX=GX+2*VX:CY=GY:POKE 768,180:POKE 769,40:CALL 770
202 IF CX>GX-6 AND CX<GX+6 AND CY<GY+12 AND CY>GY-12 THEN CX=BX+2*VX:CY=BY:POKE 768,180:POKE 769,40:CALL 770
' Portal/Blob
203 IF L=1 OR JO=0 GOTO 210
204 IF JX>BX-12 AND JX<BX+12 AND JY<BY+6 AND JY>BY-6 THEN SCALE=2:XDRAW 6 AT JX,JY:JX=GX:JY=GY-6:JA=-JA:XDRAW 6 AT JX,JY
205 IF JX>GX-12 AND JX<GX+12 AND JY<GY+6 AND JY>GY-6 THEN SCALE=2:XDRAW 6 AT JX,JY:JX=BX:JY=BY-6:JA=-JA:XDRAW 6 AT JX,JY
' Edges
210 IF CX<7 THEN CX=7:VX=0
211 IF L=1 AND CX>271 THEN L=19:GOTO 15
212 IF CX>271 THEN CX=271:VX=0
214 IF CY<7 THEN CY=7:VY=-VY
' Floors
220 IF L=1 THEN GOTO 227
220 IF L=1 THEN GOTO 233
' Level 19 Floors
221 IF CY > 112 THEN CY=112:VY=0:VX=VX/2
' Incinerator
222 IF CX > 240 AND CY>100 THEN GOTO 800
223 IF CX > 215 AND CY>105 THEN CX=215
' Dropping Blob
224 IF JO=1 AND JX>CX-5 AND JX<CX+5 AND JY>CY-7 AND JY<CY+7 THEN GOTO 800
225 IF JO=1 AND JY>120 THEN SCALE=2:XDRAW 6 AT JX,JY:JO=0
226 GOTO 240
224 IF JO<=0 GOTO 240
225 IF JX>CX-5 AND JX<CX+5 AND JY>CY-7 AND JY<CY+7 THEN GOTO 800
226 IF JY>120 THEN SCALE=2:XDRAW 6 AT JX,JY:JO=0
227 IF JA<0 AND JY<5 THEN SCALE=2:XDRAW 6 AT JX,JY:JO=0
228 IF JX>110 AND JX<130 AND JY>60 AND JY<85 THEN GOSUB 3000
230 GOTO 240
' Level 1 Floors
227 IF CX < 119 AND CY > 112 THEN CY=112:VY=0:VX=VX/2
228 IF CX > 161 AND CY > 112 THEN CY=112:VY=0:VX=VX/2
229 IF CX > 119 AND CX < 161 AND CY>140 THEN GOTO 800
233 IF CX < 119 AND CY > 112 THEN CY=112:VY=0:VX=VX/2
234 IF CX > 161 AND CY > 112 THEN CY=112:VY=0:VX=VX/2
235 IF CX > 119 AND CX < 161 AND CY>140 THEN GOTO 800
' LASER
232 IF ZY>CY-8 AND ZY<CY+8 AND CX+6>ZX AND CX-6<240 THEN GOTO 700
234 IF PY>CY-8 AND PY<CY+8 AND CX+6>0 AND CX-6<PX THEN GOTO 700
238 IF ZY>CY-8 AND ZY<CY+8 AND CX+6>ZX AND CX-6<240 THEN GOTO 700
239 IF PY>CY-8 AND PY<CY+8 AND CX+6>0 AND CX-6<PX THEN GOTO 700
'
240 REM
' DRAW AT UPDATE CO-ORDS
@ -208,11 +215,30 @@
1110 HCOLOR=6:HPLOT 278,100 TO 278,119
1199 RETURN
' LEVEL 19
2000 PRINT CHR$(4);"BLOAD GLADOS.HGR"
2000 PRINT D$;"BLOAD GLADOS.HGR"
' Draw the blue core
2005 SCALE=1:XDRAW 7 AT 150,65
2007 HTAB 3:VTAB 21: PRINT "Well, you found me. Congratulations."
2099 RETURN
' GLADOS INJURED
3000 HTAB 3:VTAB 21:HTAB 6:PRINT " Nice job breaking it, hero. "
3005 JO=-1
3010 FOR I=1 TO 10
3015 XDRAW 7 AT 110,60:V=PEEK(-16336):XDRAW 7 AT 130,60
3020 XDRAW 7 AT 130,85:V=PEEK(-16336):XDRAW 7 AT 110,85
3030 XDRAW 7 AT 120,85:V=PEEK(-16336)
3040 NEXT I
3099 RETURN
' GLADOS DESTROYED
4000 VTAB 20:PRINT:PRINT:PRINT:PRINT
4005 HCOLOR=5
4010 FOR X=0 TO 278 STEP 5:HPLOT X,0 TO 120,85:V=PEEK(-16336):NEXT X
4015 FOR Y=0 TO 159 STEP 5:HPLOT 278,Y TO 120,85:V=PEEK(-16336):NEXT Y
4020 FOR X=278 TO 0 STEP -5:HPLOT X,159 TO 120,85:V=PEEK(-16336):NEXT X
4025 FOR Y=159 TO 0 STEP -5:HPLOT 0,Y TO 120,85:V=PEEK(-16336):NEXT Y
4097 GET A$
4098 REM PRINT D$;"RUN STILL_ALIVE.BAS"
4099 END
' HELP
5000 REM HELP
5010 TEXT:HOME