From 1281a03bcc87b5b017e2a064a74adfb6daf6e60f Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Fri, 5 Feb 2021 22:32:06 +0000 Subject: [PATCH] Explosion animations and... DEATH --- !TheEscape/!RunImage,ffb | Bin 14143 -> 15673 bytes !TheEscape/!RunImage,ffb.bas | 68 ++++++++++++++++++++++++++++------- !TheEscape/Spr,ff9 | Bin 48456 -> 52332 bytes 3 files changed, 56 insertions(+), 12 deletions(-) diff --git a/!TheEscape/!RunImage,ffb b/!TheEscape/!RunImage,ffb index a3f20fa6de5c9afad806a0554505890db8e172ca..344859aa392c130fc80a7e00a4c230d24f2f654a 100644 GIT binary patch delta 5293 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 delta 4113 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�XehQ4w-7%YNQ4HK4yW)wX6b>x);gzUAv*ZXZFrWn zrU9FuWjXw|wbW*b;_7sZ)78McWfQfm@xs$n^Wl7}S!3DUpuQX0945=7# 0 THEN + PROCinputs + + + REM NPCs + PROCenemy_ship_collide_player + REM PROCenemy_ship_collide_npc + PROCplayer_arc_calculatetarget + PROCspecks_move + ENDIF + REM Still not sure about this bollocks, but it does seem to work now SYS "OS_Byte",19 @@ -136,14 +144,42 @@ ENDPROC DEF PROCplayer_ship_handle_damage IF PlayerStructuralIntegrity% <= 0 THEN - PlayerSprite$ = "explode_shp1" + IF TIME > PlayerExplodeNextFrame% THEN + PlayerExplodeNextFrame% = TIME + 4 + IF PlayerSprite$ = "player_ship" THEN + DieEnd% = TIME + 100 + ENDIF + CASE PlayerSprite$ OF + WHEN "player_ship": PlayerSprite$ = "explode_shp1" + WHEN "explode_shp1": PlayerSprite$ = "explode_shp2" + WHEN "explode_shp2": PlayerSprite$ = "explode_shp3" + WHEN "explode_shp3": PlayerSprite$ = "explode_shp4" + WHEN "explode_shp4": PlayerSprite$ = "explode_shp1" + ENDCASE + ENDIF + IF TIME > DieEnd% THEN + PlayerSprite$ = "default" + CLS + PRINT "YOU DED" + END + ENDIF ENDIF ENDPROC DEF PROCenemy_ship_handle_damage FOR Enemy%=0 TO MaxEnemies% - 1 IF EnemyHealth%(Enemy%) <= 0 THEN - EnemySprites$(Enemy%) = "explode_shp1" + IF TIME > EnemyExplodeNextFrame%(Enemy%) THEN + EnemyExplodeNextFrame%(Enemy%) = TIME + 4 + CASE EnemySprites$(Enemy%) OF + WHEN "durno_ship": EnemySprites$(Enemy%) = "explode_shp1" + WHEN "durno_ship2": EnemySprites$(Enemy%) = "explode_shp1" + WHEN "explode_shp1": EnemySprites$(Enemy%) = "explode_shp2" + WHEN "explode_shp2": EnemySprites$(Enemy%) = "explode_shp3" + WHEN "explode_shp3": EnemySprites$(Enemy%) = "explode_shp4" + WHEN "explode_shp4": EnemySprites$(Enemy%) = "explode_shp1" + ENDCASE + ENDIF ENDIF NEXT Enemy% ENDPROC @@ -158,6 +194,7 @@ DEF PROCrespawn_enemy(Enemy%) EnemyHealth%(Enemy%) = 100 EnemyCollidable%(Enemy%) = 1 EnemyCollideForce%(Enemy%) = 1000 + EnemyExplodeNextFrame% = 0 IF EnemyHitboxID%(Enemy%) = 1 THEN EnemySprites$(Enemy%) = "durno_ship2" EnemyVelocity%(Enemy%,X) = RND(3) - 2 @@ -172,6 +209,12 @@ DEF PROCspecks_draw FOR Speck%=0 TO 49 GCOL 0,0 LINE SpeckLocations%(Speck%,X),SpeckLocations%(Speck%,Y),SpeckLocations%(Speck%,X),(PlayerVelocity% / 3) + SpeckLocations%(Speck%,Y) + NEXT Speck% +ENDPROC + +DEF PROCspecks_move + REM Specks / stars + FOR Speck%=0 TO 49 SpeckLocations%(Speck%,Y) = SpeckLocations%(Speck%,Y) - ((Cents% - LastCents%) * PlayerVelocity%/10) IF SpeckLocations%(Speck%,Y) < 0 THEN SpeckLocations%(Speck%,Y) = SCREENGFXHEIGHT% @@ -408,7 +451,8 @@ DEF PROCdebugoutput PRINT "Right: " + STR$(RightID%) FOR Enemy%=0 TO MaxEnemies% - 1 - PRINT "NPC:" STR$(Enemy%) + " " + FNpad(STR$(EnemyLocations%(Enemy%,X)),4) + " " + FNpad(STR$(EnemyLocations%(Enemy%,Y)),4) + " " + FNpad(STR$(EnemyVelocity%(Enemy%,X)),3) + " " + FNpad(STR$(EnemyVelocity%(Enemy%,Y)),3) + " " + FNpad(STR$(EnemyHealth%(Enemy%)),3) + PRINT "NPC:" STR$(Enemy%) + " " + FNpad(STR$(EnemyLocations%(Enemy%,X)),4) + " " + FNpad(STR$(EnemyLocations%(Enemy%,Y)),4) + " " + FNpad(STR$(EnemyVelocity%(Enemy%,X)),3) + " " + FNpad(STR$(EnemyVelocity%(Enemy%,Y)),3) + PRINT FNpad(STR$(EnemyHealth%(Enemy%)),3) + " " + EnemySprites$(Enemy%) + " " + STR$(EnemyExplodeNextFrame%) NEXT Enemy% diff --git a/!TheEscape/Spr,ff9 b/!TheEscape/Spr,ff9 index 3ab16a1922e7074c051f30ab3eb2ce3b7c08f98f..329f01a3cb9961bdc68ed1efec2fb6fab38806c7 100644 GIT binary patch delta 1782 zcmZvdOHUI~6vuBZk9KHFX{VtN5Ee|LF`6k(x=|ObTu4j#rWRR1vi>2_bNNjDFNGt+%otl&xDnV|cJ?_&mSm-0)74d9JnW=I)K zZ7HQ%1oL5t1T%)Ri#%4ddr=L;GJRhSDGbX}#9Z>3Xh>PJc$ijzglJe``Z)wcxa!kk z;+)f>jOwH@|>P z_Ezn(y2Pm%T3uLY?~+ZsmWshUpDwTjGiD7@ttxxZCo>g-f<7~XAlTGno{=}N`m9c| z`FT2C*3+Giw}QVNL3f?B))W;Hp5h{EX3 zh7tyhbz0ae(2HAFlya~4DtC|eO37H=Q*V$id>&py#C1hot6hl*$BJ@kB%Il}UQ$B z(c^WE7TjriT}smA+(@X@l|~jS9ROpSB%L1cyQ@xCyT?;d?Kpf5(4td_BWU{J7L$H0 zL6)X7Mo+f-*GhR-X3V15!y|~Xc)6~QD8kCdPwCez$~~xe!>H3nYmC-fxgiuX_d~ut zT4;@v-73&bt1u*ts`n43i$v4