Author Topic: Attack of the Killer Dandelions  (Read 994 times)

0 Members and 1 Guest are viewing this topic.

Offline pforpond

  • Newbie
  • Posts: 76
  • I am me
Attack of the Killer Dandelions
« on: June 18, 2020, 01:33:10 pm »
Code: QB64: [Select]
  1. REM attack of the killer dandelions
  2. REM dp 2020
  3.  
  4. REM roomtypes
  5. REM 0 - TUTORIAL ROOM
  6. REM 1 - LOOT ROOM
  7. REM 2 - ENEMY ROOM
  8. REM 3 - LOOT AND ENEMY ROOM
  9. REM 4 - STORE ROOM
  10.  
  11. setup:
  12. REM sets up game
  13. REM error handler
  14. ON ERROR GOTO errorhandler
  15. SCREEN _NEWIMAGE(255, 302, 32)
  16. _TITLE "Attack of the Killer Dandelions"
  17. '_MOUSEHIDE
  18. REM launches developer console
  19. REM launches timer
  20. LET itime = TIMER
  21. LET ctime = 0
  22. REM checks data folder exists
  23. IF _DIREXISTS("dandedata\") THEN
  24.     REM nothing :)
  25.     ERROR 666
  26. REM loads and applies font
  27. LET fontsize = 12
  28. LET gamefont = _LOADFONT("dandedata\gamefont.ttf", fontsize)
  29. _FONT gamefont
  30. REM loads sfx
  31. LET bombhit = _SNDOPEN("dandedata\bomb.ogg")
  32. LET swordhit = _SNDOPEN("dandedata\sword.ogg")
  33. LET magichit = _SNDOPEN("dandedata\magic.ogg")
  34. LET gameover = _SNDOPEN("dandedata\gameover.ogg")
  35. LET highscore = _SNDOPEN("dandedata\highscore.ogg")
  36. LET pickup = _SNDOPEN("dandedata\pickup.ogg")
  37. LET store = _SNDOPEN("dandedata\store.ogg")
  38. LET opendoor = _SNDOPEN("dandedata\door.ogg")
  39. REM loads sprites
  40. LET dandelion1$ = "TA30 L40 R20 E10 G10 U10 D10 H10 F10 TA0"
  41. LET dandelion2$ = "L40 R20 E10 G10 U10 D10 H10 F10 TA0"
  42. LET dandelion3$ = "TA330 L40 R20 E10 G10 U10 D10 H10 F10 TA0"
  43. LET door$ = "U50 R40 D50 U25 H3 G3 L3 R3 F3 E3 TA0"
  44. LET decal1$ = "U5 R10 D5 L10 R10 D5 R10 U5 L10 TA0"
  45. LET decal2$ = "U5 R10 D5 L10 U5 R20 D5 L10 TA0"
  46. LET decal3$ = "U5 R10 D5 L10 U5 R20 D5 L10 U5 L5 U5 R10 D5 TA0"
  47. LET decal4$ = "TA180 U5 R10 D5 L10 R10 D5 R10 U5 L10 TA0"
  48. LET decal5$ = "TA180 U5 R10 D5 L10 U5 R20 D5 L10 U5 L5 U5 R10 D5 TA0"
  49. LET decal6$ = "U5 R10 D5 L10 TA0"
  50. LET decal7$ = "U5 R10 D5 L10 U5 R5 U5 R10 D5 L10 TA0"
  51. LET decal8$ = "TA180 U5 R10 D5 L10 U5 R5 U5 R10 D5 L10 TA0"
  52. LET decal9$ = "E6 F6 H3 G3 D3 U3 H3 E3 U302 TA0"
  53. LET decal10$ = "U5 R10 D5 L10 U5 R5 U5 R10 D5 L20 U5 R5 L2 U5 R10 D5 L10 TA0"
  54. LET decal11$ = "TA180 U5 R10 D5 L10 U5 R5 U5 R10 D5 L20 U5 R5 L2 U5 R10 D5 L10 TA0"
  55. LET decal12$ = "U5 R10 D5 L10 U5 R5 U5 R10 D5 L20 U5 R5 U5 R10 D5 L10 TA0"
  56. LET decal13$ = "U40 R40 D40 L40 U20 R40 U20 L20 D40 TA0"
  57. LET decal14$ = "U5 R10 D5 L10 U5 R10 U5 R10 D5 L10 R10 D5 R10 U5 L10 TA0"
  58. LET decal15$ = "TA180 U5 R10 D5 L10 U5 R10 U5 R10 D5 L10 R10 D5 R10 U5 L10 TA0"
  59. LET chestclosed$ = "U20 E10 R10 F10 D20 L30 U20 R30 L15 F2 G2 H2 E2 E2 H2 G2 F2 TA0"
  60. LET chestopen$ = "U20 U5 R30 D25 L30 U20 R30 L15 F2 G2 H2 E2 TA0"
  61. LET stem$ = "U40 D40 H10 F10 E10 TA0"
  62. LET shopbody1$ = "G20 D40 TA0"
  63. LET shopbody2$ = "F20 D40 TA0"
  64. LET titledisplay = _LOADIMAGE("dandedata\title.png")
  65. REM displays loading visuals
  66.     LET temp = INT(RND * 302)
  67.     LINE (0, temp)-(302, temp), &HFF5454FC
  68.     _DELAY 0.05
  69.     LET temp2 = temp2 + 1
  70.     CLS
  71. LOOP UNTIL temp2 >= 20
  72. COLOR &HFF5454FC
  73. _PRINTSTRING ((225 / 2), (302 / 2)), "ROM OK"
  74. GOSUB titlescreen
  75. GOTO playgame
  76.  
  77. errorhandler:
  78. REM handles errors
  79. COLOR &HFFFC5454
  80. PRINT "ERROR: "; ERR
  81. PRINT "LINE: "; _ERRORLINE
  82. IF ERR = 666 THEN PRINT "DATA FOLDER NOT FOUND"
  83. PRINT "ATTACK OF THE KILLER DANDELIONS WILL NOW CLOSE"
  84.  
  85. drawhud:
  86. REM draws the game hud (score and health)
  87. COLOR &HFF5454FC
  88. _PRINTSTRING (1, 1), "HEALTH: " + STR$(health)
  89. _PRINTSTRING (180, 1), "SCORE: " + STR$(score)
  90. REM draws seperator lines
  91. LINE (0, 13)-(302, 13), &HFF5454FC
  92. LINE (0, 15)-(302, 15), &HFF5454FC
  93.  
  94. titlescreen:
  95. REM titlescreen
  96. _PUTIMAGE (0, 0)-(255, 302), titledisplay
  97.  
  98. inputter:
  99. REM game input
  100. IF a$ = "Q" THEN GOTO endgame
  101. IF a$ = " " THEN
  102.     GOSUB menuprocess
  103.     IF monsterhealth > 0 THEN GOSUB monsterattacks
  104. IF z = 18432 THEN LET menuloc = menuloc - 1: REM up
  105. IF z = 20480 THEN LET menuloc = menuloc + 1: REM down
  106. IF z = 19712 THEN
  107.     REM right
  108.     IF menuloc = 1 THEN LET menuloc = 4
  109.     IF menuloc = 2 THEN LET menuloc = 5
  110.     IF menuloc = 3 THEN LET menuloc = 6
  111. IF z = 19200 THEN
  112.     REM left
  113.     IF menuloc = 4 THEN LET menuloc = 1
  114.     IF menuloc = 5 THEN LET menuloc = 2
  115.     IF menuloc = 6 THEN LET menuloc = 3
  116. IF menuloc <= 0 THEN LET menuloc = 1
  117. IF menuloc >= 7 THEN LET menuloc = 6
  118.  
  119. monsterattacks:
  120. REM when the monster deals damage to the player
  121. LET monsterattack = (INT(RND * 5) + 1) * level
  122. LET health = health - (monsterattack - armour)
  123. LET armourxp = armourxp + INT(RND * 10) + 1
  124. GOSUB drawhud
  125. GOSUB drawroom
  126. GOSUB drawmenu
  127. COLOR &HFFFC5454
  128. _PRINTSTRING (20, 210), "DANDELION DELT" + STR$(monsterattack - armour) + " DAMAGE!"
  129.  
  130. drawmonster:
  131. REM draws world monsters
  132. IF monsterhealth > 0 THEN
  133.     PSET (monsterx, 200), &HFF54FC54
  134.     DRAW stem$
  135.     IF monstertype = 1 THEN
  136.         PSET (monsterx + 18, 150), &HFFFCFC54
  137.         DRAW dandelion1$
  138.     END IF
  139.     IF monstertype = 2 THEN
  140.         PSET (monsterx + 20, 160), &HFFFCFC54
  141.         DRAW dandelion2$
  142.     END IF
  143.     IF monstertype = 3 THEN
  144.         PSET (monsterx + 18, 170), &HFFFCFC54
  145.         DRAW dandelion3$
  146.     END IF
  147.  
  148. drawdoors:
  149. REM draws room doors
  150. IF roomtype = 4 THEN RETURN
  151. IF roomexit = 1 THEN
  152.     REM draws one exit
  153.     IF exitc1 = 1 THEN PSET ((255 / 2) - 20, 199), &HFFFCFCFC
  154.     IF exitc1 = 2 THEN PSET ((255 / 2) - 20, 199), &HFFFC54FC
  155.     IF exitc1 = 3 THEN PSET ((255 / 2) - 20, 199), &HFFFC5454
  156.     IF exitc1 = 4 THEN PSET ((255 / 2) - 20, 199), &HFF5454FC
  157.     IF exitc1 = 5 THEN PSET ((255 / 2) - 20, 199), &HFF54FCFC
  158.     DRAW door$
  159. IF roomexit = 2 THEN
  160.     REM draws two exits
  161.     IF exitc1 = 1 THEN PSET ((255 / 2) - 80, 199), &HFFFCFCFC
  162.     IF exitc1 = 2 THEN PSET ((255 / 2) - 80, 199), &HFFFC54FC
  163.     IF exitc1 = 3 THEN PSET ((255 / 2) - 80, 199), &HFFFC5454
  164.     IF exitc1 = 4 THEN PSET ((255 / 2) - 80, 199), &HFF5454FC
  165.     IF exitc1 = 5 THEN PSET ((255 / 2) - 80, 199), &HFF54FCFC
  166.     DRAW door$
  167.     IF exitc2 = 1 THEN PSET ((255 / 2) + 40, 199), &HFFFCFCFC
  168.     IF exitc2 = 2 THEN PSET ((255 / 2) + 40, 199), &HFFFC54FC
  169.     IF exitc2 = 3 THEN PSET ((255 / 2) + 40, 199), &HFFFC5454
  170.     IF exitc2 = 4 THEN PSET ((255 / 2) + 40, 199), &HFF5454FC
  171.     IF exitc2 = 5 THEN PSET ((255 / 2) + 40, 199), &HFF54FCFC
  172.     DRAW door$
  173. IF roomexit = 3 THEN
  174.     REM draws three exits
  175.     IF exitc1 = 1 THEN PSET ((255 / 2) - 100, 199), &HFFFCFCFC
  176.     IF exitc1 = 2 THEN PSET ((255 / 2) - 100, 199), &HFFFC54FC
  177.     IF exitc1 = 3 THEN PSET ((255 / 2) - 100, 199), &HFFFC5454
  178.     IF exitc1 = 4 THEN PSET ((255 / 2) - 100, 199), &HFF5454FC
  179.     IF exitc1 = 5 THEN PSET ((255 / 2) - 100, 199), &HFF54FCFC
  180.     DRAW door$
  181.     IF exitc2 = 1 THEN PSET ((255 / 2) - 20, 199), &HFFFCFCFC
  182.     IF exitc2 = 2 THEN PSET ((255 / 2) - 20, 199), &HFFFC54FC
  183.     IF exitc2 = 3 THEN PSET ((255 / 2) - 20, 199), &HFFFC5454
  184.     IF exitc2 = 4 THEN PSET ((255 / 2) - 20, 199), &HFF5454FC
  185.     IF exitc2 = 5 THEN PSET ((255 / 2) - 20, 199), &HFF54FCFC
  186.     DRAW door$
  187.     IF exitc3 = 1 THEN PSET ((255 / 2) + 60, 199), &HFFFCFCFC
  188.     IF exitc3 = 2 THEN PSET ((255 / 2) + 60, 199), &HFFFC54FC
  189.     IF exitc3 = 3 THEN PSET ((255 / 2) + 60, 199), &HFFFC5454
  190.     IF exitc3 = 4 THEN PSET ((255 / 2) + 60, 199), &HFF5454FC
  191.     IF exitc3 = 5 THEN PSET ((255 / 2) + 60, 199), &HFF54FCFC
  192.     DRAW door$
  193.  
  194. menuprocess:
  195. REM processes menu choices
  196. IF menuloc = 1 THEN GOSUB doormenu
  197. IF menuloc = 2 THEN GOSUB attackmenu
  198. IF menuloc = 3 THEN GOSUB lootmenu
  199. IF menuloc = 4 THEN GOSUB pocketmenu
  200. IF menuloc = 5 THEN GOSUB statsmenu
  201. IF menuloc = 6 THEN GOTO endgame
  202.  
  203. doormenu:
  204. REM shows door menu
  205. IF roomexit <= 0 THEN
  206.     REM return for if no doors present
  207.     COLOR &HFFFC5454
  208.     _PRINTSTRING (20, 210), "NO DOORS PRESENT!"
  209.     _DELAY 1
  210.     CLS
  211.     RETURN
  212. IF monsterhealth > 0 THEN
  213.     REM return for if monster present
  214.     COLOR &HFFFC5454
  215.     _PRINTSTRING (20, 210), "CANNOT LEAVE - ENEMY PRESENT!"
  216.     _DELAY 1
  217.     CLS
  218.     RETURN
  219. LET menuloc2 = 1
  220. LINE (0, 201)-(256, 303), &HFF000000, BF
  221.     COLOR &HFFFC5454
  222.     _PRINTSTRING (20, 210), "ENTER DOOR..."
  223.     COLOR &HFFFCFCFC
  224.     FOR x = 1 TO roomexit
  225.         IF menuloc2 = 1 THEN
  226.             COLOR &HFF54FC54
  227.         ELSE
  228.             IF exitc1 = 1 THEN COLOR &HFFFCFCFC
  229.             IF exitc1 = 2 THEN COLOR &HFFFC54FC
  230.             IF exitc1 = 3 THEN COLOR &HFFFC5454
  231.             IF exitc1 = 4 THEN COLOR &HFF5454FC
  232.             IF exitc1 = 5 THEN COLOR &HFF54FCFC
  233.         END IF
  234.         IF x = 1 THEN _PRINTSTRING (20, 230), "DOOR 1"
  235.         IF menuloc2 = 2 THEN
  236.             COLOR &HFF54FC54
  237.         ELSE
  238.             IF exitc2 = 1 THEN COLOR &HFFFCFCFC
  239.             IF exitc2 = 2 THEN COLOR &HFFFC54FC
  240.             IF exitc2 = 3 THEN COLOR &HFFFC5454
  241.             IF exitc2 = 4 THEN COLOR &HFF5454FC
  242.             IF exitc2 = 5 THEN COLOR &HFF54FCFC
  243.         END IF
  244.         IF x = 2 THEN _PRINTSTRING (20, 240), "DOOR 2"
  245.         IF menuloc2 = 3 THEN
  246.             COLOR &HFF54FC54
  247.         ELSE
  248.             IF exitc3 = 1 THEN COLOR &HFFFCFCFC
  249.             IF exitc3 = 2 THEN COLOR &HFFFC54FC
  250.             IF exitc3 = 3 THEN COLOR &HFFFC5454
  251.             IF exitc3 = 4 THEN COLOR &HFF5454FC
  252.             IF exitc3 = 5 THEN COLOR &HFF54FCFC
  253.         END IF
  254.         IF x = 3 THEN _PRINTSTRING (20, 250), "DOOR 3"
  255.     NEXT x
  256.     IF menuloc2 > roomexit THEN
  257.         COLOR &HFF54FC54
  258.     ELSE
  259.         COLOR &HFFFCFCFC
  260.     END IF
  261.     _PRINTSTRING (20, 270), "CANCEL"
  262.     DO
  263.         LET b$ = UCASE$(INKEY$)
  264.         LET xx = _KEYHIT
  265.     LOOP UNTIL xx OR b$ = " "
  266.     IF b$ = " " AND menuloc2 > roomexit THEN CLS: RETURN
  267.     IF b$ = " " AND menuloc2 <= roomexit THEN _SNDPLAY opendoor: GOSUB newroom: CLS: RETURN
  268.     IF xx = 18432 THEN LET menuloc2 = menuloc2 - 1: REM up
  269.     IF xx = 20480 THEN LET menuloc2 = menuloc2 + 1: REM down
  270.     IF menuloc2 <= 0 THEN LET menuloc2 = 1
  271.     IF menuloc2 > roomexit + 1 THEN LET menuloc2 = roomexit + 1
  272.  
  273. newroom:
  274. REM generates a new room
  275. REM adds up values
  276. LET room = room + 1
  277. LET xp = xp + 1
  278. LET score = score + 5
  279. REM generates new room values
  280. IF roomtype = 4 OR roomtype = 0 OR level = 1 THEN
  281.         LET roomtype = INT(RND * 3) + 1
  282.         LET roomtype = INT(RND * 4) + 1
  283. LET roomexit = INT(RND * 3) + 1
  284. REM generates door colours
  285. LET exitc1 = INT(RND * 5) + 1
  286. LET exitc2 = INT(RND * 5) + 1
  287. LET exitc3 = INT(RND * 5) + 1
  288. REM generates room decal
  289. LET roomdecal = INT(RND * 15) + 1
  290. LET decalx = INT(RND * 240) + 1
  291. 10 LET decaly = INT(RND * 125) + 1
  292. IF decaly < 20 THEN GOTO 10
  293. LET decalc = INT(RND * 6) + 1
  294. LET lootamount = 0
  295. LET lootreward = 0
  296. LET lootopen = 0
  297. IF roomtype = 1 OR roomtype = 3 THEN
  298.     REM loot room
  299.     LET lootreward = INT(RND * 6) + 1
  300.     LET lootamount = INT(RND * 10) + 1
  301.    20 LET lootx = INT(RND * 230) + 1
  302.     IF roomexit = 1 THEN
  303.         REM loot location for rooms with one door
  304.         IF lootx >= ((255 / 2) - 50) AND lootx <= ((255 / 2) + 20) THEN GOTO 20
  305.     END IF
  306.     IF roomexit = 2 THEN
  307.         IF lootx >= ((255 / 2) - 110) AND lootx <= ((255 / 2) - 40) THEN GOTO 20
  308.         IF lootx >= ((255 / 2) + 10) AND lootx <= ((255 / 2) + 80) THEN GOTO 20
  309.     END IF
  310.     IF roomexit = 3 THEN
  311.         IF lootx >= ((255 / 2) - 130) AND lootx <= ((255 / 2) - 60) THEN GOTO 20
  312.         IF lootx >= ((255 / 2) - 50) AND lootx <= ((255 / 2) + 20) THEN GOTO 20
  313.         IF lootx >= ((255 / 2) + 30) AND lootx <= ((255 / 2) + 100) THEN GOTO 20
  314.     END IF
  315. LET monsterhealth = 0
  316. IF roomtype = 2 OR roomtype = 3 THEN
  317.     REM monster room
  318.     LET monsterhealth = (INT(RND * 5) + 1) * level
  319.     LET monstertype = INT(RND * 3) + 1
  320.    30 LET monsterx = INT(RND * 230) + 1
  321.     IF monsterx <= 20 THEN GOTO 30
  322. IF roomtype = 4 THEN
  323.     LET storeoffer = INT(RND * 5) + 1
  324.     LET storecost = INT(RND * 10) + 1
  325.     LET storeamount = INT(RND * 5) + 1
  326.  
  327. attackmenu:
  328. REM shows attack menu
  329. IF monsterhealth <= 0 THEN
  330.     REM return for if no monsters present
  331.     COLOR &HFFFC5454
  332.     _PRINTSTRING (20, 210), "NO MONSTER PRESENT!"
  333.     _DELAY 1
  334.     CLS
  335.     RETURN
  336. LET menuloc2 = 1
  337. LINE (0, 201)-(256, 303), &HFF000000, BF
  338.     COLOR &HFFFC5454
  339.     _PRINTSTRING (20, 210), "ATTACK..."
  340.     IF menuloc2 = 1 THEN
  341.         COLOR &HFF54FC54
  342.     ELSE
  343.         COLOR &HFFFCFCFC
  344.     END IF
  345.     _PRINTSTRING (20, 230), "SWORD ATTACK"
  346.     IF menuloc2 = 2 THEN
  347.         COLOR &HFF54FC54
  348.     ELSE
  349.         IF magic > 0 THEN
  350.             COLOR &HFFFCFCFC
  351.         ELSE
  352.             COLOR &HFF545454
  353.         END IF
  354.     END IF
  355.     _PRINTSTRING (20, 240), "MAGIC ATTACK (" + STR$(magic) + " )"
  356.     IF menuloc2 = 3 THEN
  357.         COLOR &HFF54FC54
  358.     ELSE
  359.         IF bomb > 0 THEN
  360.             COLOR &HFFFCFCFC
  361.         ELSE
  362.             COLOR &HFF545454
  363.         END IF
  364.     END IF
  365.     _PRINTSTRING (20, 250), "BOMB ATTACK (" + STR$(bomb) + " )"
  366.     IF menuloc2 = 4 THEN
  367.         COLOR &HFF54FC54
  368.     ELSE
  369.         COLOR &HFFFCFCFC
  370.     END IF
  371.     _PRINTSTRING (20, 270), "CANCEL"
  372.     DO
  373.         LET b$ = UCASE$(INKEY$)
  374.         LET xx = _KEYHIT
  375.     LOOP UNTIL xx OR b$ = " "
  376.     IF b$ = " " AND menuloc2 = 4 THEN CLS: RETURN
  377.     IF b$ = " " AND menuloc2 = 1 THEN GOSUB swordattack: CLS: RETURN
  378.     IF b$ = " " AND menuloc2 = 2 THEN GOSUB magicattack: CLS: RETURN
  379.     IF b$ = " " AND menuloc2 = 3 THEN GOSUB bombattack: CLS: RETURN
  380.     IF xx = 18432 THEN LET menuloc2 = menuloc2 - 1: REM up
  381.     IF xx = 20480 THEN LET menuloc2 = menuloc2 + 1: REM down
  382.     IF menuloc2 <= 0 THEN LET menuloc2 = 1
  383.     IF menuloc2 >= 5 THEN LET menuloc2 = 4
  384.  
  385. magicattack:
  386. REM calculates a magic attack
  387. IF magic <= 0 THEN
  388.     REM return for if no magic
  389.     CLS
  390.     GOSUB drawhud
  391.     GOSUB drawroom
  392.     GOSUB drawmenu
  393.     COLOR &HFFFC5454
  394.     _PRINTSTRING (20, 210), "CANNOT ATTACK - NO MAGIC!"
  395.     _DELAY 1
  396.     RETURN
  397. LET attack = (magic * level)
  398. LET magic = 0
  399. LET monsterhealth = monsterhealth - attack
  400. REM displays attack animation
  401. LET animation = 10
  402. LET anix = monsterx
  403. LET aniy = 175
  404. _SNDPLAY magichit
  405.     CIRCLE (anix, aniy), animation, &HFFFC54FC
  406.     LET animation = animation - 1
  407.     _DELAY 0.05
  408. LOOP UNTIL animation = 1
  409. REM redraw room
  410. GOSUB drawhud
  411. GOSUB drawroom
  412. REM display messages
  413. COLOR &HFF54FC54
  414. _PRINTSTRING (20, 230), "DELT" + STR$(attack) + " MAGIC DAMAGE!"
  415. IF monsterhealth > 0 THEN
  416.     _PRINTSTRING (20, 240), "ENEMY HAS" + STR$(monsterhealth) + " HEALTH LEFT!"
  417.     _PRINTSTRING (20, 240), "ENEMY IS DEAD!"
  418.     LET xp = xp + INT(RND * 10) + 1
  419.     LET score = score + (10 * level)
  420.  
  421. bombattack:
  422. REM calculates a bomb attack
  423. IF bomb <= 0 THEN
  424.     REM return for if no bombs
  425.     CLS
  426.     GOSUB drawhud
  427.     GOSUB drawroom
  428.     GOSUB drawmenu
  429.     COLOR &HFFFC5454
  430.     _PRINTSTRING (20, 210), "CANNOT ATTACK - NO BOMBS!"
  431.     _DELAY 1
  432.     RETURN
  433. LET attack = 5
  434. LET monsterhealth = monsterhealth - attack
  435. REM displays attack animation
  436. LET animation = 1
  437. LET anix = monsterx
  438. LET aniy = 175
  439. _SNDPLAY bombhit
  440.     CIRCLE (anix, aniy), animation, &HFFA85400
  441.     LET animation = animation + 1
  442.     _DELAY 0.05
  443. LOOP UNTIL animation = 10
  444. REM redraw room
  445. GOSUB drawhud
  446. GOSUB drawroom
  447. REM display messages
  448. COLOR &HFF54FC54
  449. _PRINTSTRING (20, 230), "DELT" + STR$(attack) + " BOMB DAMAGE!"
  450. IF monsterhealth > 0 THEN
  451.     _PRINTSTRING (20, 240), "ENEMY HAS" + STR$(monsterhealth) + " HEALTH LEFT!"
  452.     _PRINTSTRING (20, 240), "ENEMY IS DEAD!"
  453.     LET xp = xp + INT(RND * 10) + 1
  454.     LET score = score + (10 * level)
  455.  
  456. swordattack:
  457. REM calculates a sword attack
  458. LET attack = (INT(RND * 5) + 1) * sword
  459. LET monsterhealth = monsterhealth - attack
  460. REM displays attack animation
  461. LET animation = 0
  462. LET anix = monsterx - 20
  463. LET aniy = 200
  464. _SNDPLAY swordhit
  465.     LINE (monsterx - 20, 200)-(anix, aniy), &HFFA8A8A8
  466.     LET animation = animation + 1
  467.     LET anix = anix + 1
  468.     LET aniy = aniy - 1
  469.     _DELAY 0.005
  470. LOOP UNTIL animation = 40
  471. REM redraw room
  472. GOSUB drawhud
  473. GOSUB drawroom
  474. REM display messages
  475. COLOR &HFF54FC54
  476. _PRINTSTRING (20, 230), "DELT" + STR$(attack) + " SWORD DAMAGE!"
  477. IF monsterhealth > 0 THEN
  478.     _PRINTSTRING (20, 240), "ENEMY HAS" + STR$(monsterhealth) + " HEALTH LEFT!"
  479.     _PRINTSTRING (20, 240), "ENEMY IS DEAD!"
  480.     LET swordxp = swordxp + INT(RND * 10) + 1
  481.     LET xp = xp + INT(RND * 10) + 1
  482.     LET score = score + (10 * level)
  483.  
  484. pocketmenu:
  485. REM shows pockets
  486. LINE (0, 201)-(256, 303), &HFF000000, BF
  487. COLOR &HFF54FC54
  488. _PRINTSTRING (20, 210), pockettext$
  489. COLOR &HFFFCFCFC
  490. _PRINTSTRING (20, 230), "SWORD LEVEL: " + STR$(sword)
  491. _PRINTSTRING (20, 240), "ARMOUR LEVEL: " + STR$(armour)
  492. _PRINTSTRING (20, 250), "MAGIC: " + STR$(magic)
  493. _PRINTSTRING (20, 260), "HEALTHKITS: " + STR$(healthkit)
  494. _PRINTSTRING (20, 270), "GOLD: " + STR$(gold)
  495. _PRINTSTRING (20, 280), "BOMBS: " + STR$(bomb)
  496. IF healthkit >= 1 THEN
  497.     REM use healthkit?
  498.     COLOR &HFF54FC54
  499.     _PRINTSTRING (150, 260), "H = USE KIT"
  500.     DO
  501.         LET b$ = UCASE$(INKEY$)
  502.     LOOP UNTIL b$ = " " OR b$ = "H"
  503.     IF b$ = "H" THEN
  504.         REM use healthkit
  505.         LET healthkit = healthkit - 1
  506.         LET addhealth = 25
  507.         LET recovered = 0
  508.         DO
  509.             LET health = health + 1
  510.             LET addhealth = addhealth - 1
  511.             LET recovered = recovered + 1
  512.         LOOP UNTIL health = 100 OR addhealth = 0
  513.         CLS
  514.         GOSUB drawhud
  515.         GOSUB drawroom
  516.         GOSUB drawmenu
  517.         COLOR &HFF54FC54
  518.         _PRINTSTRING (20, 210), "RECOVERED" + STR$(recovered) + " HEALTH!"
  519.         _DELAY 1
  520.         CLS
  521.         RETURN
  522.     END IF
  523.     DO: LOOP UNTIL INKEY$ = " "
  524.  
  525. statsmenu:
  526. REM shows stats menu
  527. LINE (0, 201)-(256, 303), &HFF000000, BF
  528. COLOR &HFF54FC54
  529. _PRINTSTRING (20, 210), stattext$
  530. COLOR &HFFFCFCFC
  531. _PRINTSTRING (20, 230), "LEVEL: " + STR$(level)
  532. _PRINTSTRING (20, 240), "XP: " + STR$(xp)
  533. _PRINTSTRING (20, 250), "KILLS: " + STR$(killcount)
  534. _PRINTSTRING (20, 260), "ROOM: " + STR$(room)
  535. _PRINTSTRING (20, 270), "SWORD XP: " + STR$(swordxp)
  536. _PRINTSTRING (20, 280), "ARMOUR XP: " + STR$(armourxp)
  537.  
  538. lootmenu:
  539. REM shows loot menu
  540. IF lootamount <= 0 THEN
  541.     REM return for if no loot present
  542.     COLOR &HFFFC5454
  543.     _PRINTSTRING (20, 210), "NO LOOT PRESENT!"
  544.     _DELAY 1
  545.     CLS
  546.     RETURN
  547. IF lootopen = 1 THEN
  548.     REM return for if loot already collected
  549.     COLOR &HFFFC5454
  550.     _PRINTSTRING (20, 210), "LOOT ALREADY TAKEN!"
  551.     _DELAY 1
  552.     CLS
  553.     RETURN
  554. LET lootopen = 1
  555. LET score = score + INT(RND * 10) + 1
  556. COLOR &HFF54FC54
  557. _SNDPLAY pickup
  558. IF lootreward = 1 THEN LET gold = gold + lootamount: _PRINTSTRING (20, 210), "FOUND" + STR$(lootamount) + " GOLD!"
  559. IF lootreward = 2 THEN LET armourxp = armourxp + lootamount: _PRINTSTRING (20, 210), "FOUND" + STR$(lootamount) + " ARMOUR XP!"
  560. IF lootreward = 3 THEN LET swordxp = swordxp + lootamount: _PRINTSTRING (20, 210), "FOUND" + STR$(lootamount) + " SWORD XP!"
  561. IF lootreward = 4 THEN
  562.     LET bomb = bomb + lootamount
  563.     IF lootamount = 1 THEN
  564.         _PRINTSTRING (20, 210), "FOUND" + STR$(lootamount) + " BOMB!"
  565.     ELSE
  566.         _PRINTSTRING (20, 210), "FOUND" + STR$(lootamount) + " BOMBS!"
  567.     END IF
  568. IF lootreward = 5 THEN LET magic = magic + lootamount: _PRINTSTRING (20, 210), "FOUND" + STR$(lootamount) + " MAGIC!"
  569. IF lootreward = 6 THEN LET healthkit = healthkit + 1: _PRINTSTRING (20, 210), "FOUND HEALTHKIT!"
  570. LET xp = xp + INT(RND * 10) + 1
  571.  
  572. playgame:
  573. REM playgame
  574. LET frames = 60: REM frames per second
  575. LET health = 100: REM player heatlth
  576. LET room = 1: REM room number
  577. LET score = 0: REM player score
  578. LET roomtype = 0: REM room type
  579. LET roomexit = 1: REM number of doors in room
  580. LET roommonster = 0: REM number of monsters in room
  581. LET lootreward = 0: REM type of loot
  582. LET lootamount = 0: REM amount of loot
  583. LET menuloc = 1: REM menu cursor location
  584. LET level = 1: REM player level
  585. LET xp = 0: REM player xp
  586. LET healthkit = 0: REM amount of health kits
  587. LET gold = 0: REM amount of gold
  588. LET bomb = 0: REM amount of bombs
  589. LET sword = 1: REM sword level
  590. LET armour = 1: REM armour level
  591. LET swordxp = 0: REM amount of sword xp
  592. LET armourxp = 0: REM amount of armour xp
  593. LET magic = 0: REM amount of magic
  594. LET killcount = 0: REM amount of kills
  595. LET roomdecal = 0: REM room decal
  596. LET decalx = 0: REM x loc of room decal
  597. LET decaly = 0: REM y loc of room decal
  598. LET decalc = 0: REM colour of room decal
  599. LET doortext$ = "DOOR"
  600. LET attacktext$ = "ATTACK"
  601. LET loottext$ = "LOOT"
  602. LET pockettext$ = "BACKPACK"
  603. LET stattext$ = "STATUS"
  604. LET endgametext$ = "LEAVE"
  605. LET exitc1 = INT(RND * 5) + 1: REM door 1 colour
  606. LET exitc2 = INT(RND * 5) + 1: REM door 2 colour
  607. LET exitc3 = INT(RND * 5) + 1: REM door 3 colour
  608.     GOSUB drawhud
  609.     GOSUB inputter
  610.     GOSUB drawroom
  611.     GOSUB drawmenu
  612.     GOSUB timekeeper
  613.     LET a$ = UCASE$(INKEY$)
  614.     LET z = _KEYHIT
  615.     _LIMIT frames
  616.  
  617. timekeeper:
  618. REM keeps game time
  619. LET ctime = (TIMER - itime)
  620. LET ctime = INT(ctime)
  621. IF xp >= 100 THEN
  622.     REM level up!
  623.     LET xp = 0
  624.     LET level = level + 1
  625.     COLOR &HFF54FC54
  626.     _PRINTSTRING (20, 210), "LEVEL POINT GAINED!"
  627.     _DELAY 1
  628.     CLS
  629. IF swordxp >= 100 THEN
  630.     REM sword power up
  631.     LET swordxp = 0
  632.     LET sword = sword + 1
  633.     COLOR &HFF54FC54
  634.     _PRINTSTRING (20, 210), "YOU HAVE FOUND A BETTER SWORD!"
  635.     _DELAY 1
  636.     CLS
  637. IF armourxp >= 100 THEN
  638.     REM armour power up
  639.     LET armourxp = 0
  640.     LET armour = armour + 1
  641.     COLOR &HFF54FC54
  642.     _PRINTSTRING (20, 210), "YOU HAVE FOUND BETTER ARMOUR!"
  643.     _DELAY 1
  644.     CLS
  645. IF health <= 0 THEN
  646.     REM game over
  647.     GOSUB gameover
  648.  
  649. gameover:
  650. REM game over
  651. COLOR &HFF5454FC
  652. _SNDPLAY gameover
  653. _PRINTSTRING (1, 1), "GAME OVER!"
  654. _PRINTSTRING (1, 15), "SCORE: " + STR$(score)
  655. GOSUB highscores
  656. GOTO endgame
  657.  
  658. highscores:
  659. REM high score table
  660. OPEN "dandedata\highscores.ddf" FOR INPUT AS #1
  661. INPUT #1, high1, name1$, high2, name2$, high3, name3$, high4, name4$, high5, name5$, high6, name6$, high7, name7$, high8, name8$, high9, name9$, high10, name10$
  662. LET x = 10000
  663. PRINT "HIGH SCORES!"
  664. LET highest$ = ""
  665. LET lowest$ = ""
  666. LET highest = 0
  667. LET lowest = 0
  668.     IF high1 = x THEN
  669.         PRINT STR$(high1) + " - " + name1$
  670.         IF high1 > 0 THEN LET lowest$ = name1$: LET lowest = high1
  671.         IF highest$ = "" THEN LET highest$ = name1$: LET highest = high1
  672.     END IF
  673.     IF high2 = x THEN
  674.         PRINT STR$(high2) + " - " + name2$
  675.         LET lowest$ = name2$: LET lowest = high2
  676.         IF highest$ = "" THEN LET highest$ = name2$: LET highest = high2
  677.     END IF
  678.     IF high3 = x THEN
  679.         PRINT STR$(high3) + " - " + name3$
  680.         LET lowest$ = name3$: LET lowest = high3
  681.         IF highest$ = "" THEN LET highest$ = name3$: LET highest = high3
  682.     END IF
  683.     IF high4 = x THEN
  684.         PRINT STR$(high4) + " - " + name4$
  685.         LET lowest$ = name4$: LET lowest = high4
  686.         IF highest$ = "" THEN LET highest$ = name4$: LET highest = high4
  687.     END IF
  688.     IF high5 = x THEN
  689.         PRINT STR$(high5) + " - " + name5$
  690.         LET lowest$ = name5$: LET lowest = high5
  691.         IF highest$ = "" THEN LET highest$ = name5$: LET highest = high5
  692.     END IF
  693.     IF high6 = x THEN
  694.         PRINT STR$(high6) + " - " + name6$
  695.         LET lowest$ = name6$: LET lowest = high6
  696.         IF highest$ = "" THEN LET highest$ = name6$: LET highest = high6
  697.     END IF
  698.     IF high7 = x THEN
  699.         PRINT STR$(high7) + " - " + name7$
  700.         LET lowest$ = name7$: LET lowest = high7
  701.         IF highest$ = "" THEN LET highest$ = name7$: LET highest = high7
  702.     END IF
  703.     IF high8 = x THEN
  704.         PRINT STR$(high8) + " - " + name8$
  705.         LET lowest$ = name8$: LET lowest = high8
  706.         IF highest$ = "" THEN LET highest$ = name8$: LET highest = high8
  707.     END IF
  708.     IF high9 = x THEN
  709.         PRINT STR$(high9) + " - " + name9$
  710.         LET lowest$ = name9$: LET lowest = high9
  711.         IF highest$ = "" THEN LET highest$ = name9$: LET highest = high9
  712.     END IF
  713.     IF high10 = x THEN
  714.         PRINT STR$(high10) + " - " + name10$
  715.         LET lowest$ = name10$: LET lowest = high10
  716.         IF highest$ = "" THEN LET highest$ = name10$: LET highest = high10
  717.     END IF
  718.     LET x = x - 1
  719. LOOP UNTIL x < 0
  720. IF score > lowest THEN
  721.         _SNDPLAY highscore
  722.     IF score > lowest THEN PRINT "HIGH SCORE!"
  723.     IF score > highest THEN PRINT "HIGHEST SCORE!"
  724.     INPUT "WHAT IS YOUR NAME? "; playername$
  725.     IF high1 = lowest THEN LET high1 = score: LET name1$ = playername$: LET lowest = -1
  726.     IF high2 = lowest THEN LET high2 = score: LET name2$ = playername$: LET lowest = -1
  727.     IF high3 = lowest THEN LET high3 = score: LET name3$ = playername$: LET lowest = -1
  728.     IF high4 = lowest THEN LET high4 = score: LET name4$ = playername$: LET lowest = -1
  729.     IF high5 = lowest THEN LET high5 = score: LET name5$ = playername$: LET lowest = -1
  730.     IF high6 = lowest THEN LET high6 = score: LET name6$ = playername$: LET lowest = -1
  731.     IF high7 = lowest THEN LET high7 = score: LET name7$ = playername$: LET lowest = -1
  732.     IF high8 = lowest THEN LET high8 = score: LET name8$ = playername$: LET lowest = -1
  733.     IF high9 = lowest THEN LET high9 = score: LET name9$ = playername$: LET lowest = -1
  734.     IF high10 = lowest THEN LET high10 = score: LET name10$ = playername$: LET lowest = -1
  735.     OPEN "dandedata\highscores.ddf" FOR OUTPUT AS #1
  736.     WRITE #1, high1, name1$, high2, name2$, high3, name3$, high4, name4$, high5, name5$, high6, name6$, high7, name7$, high8, name8$, high9, name9$, high10, name10$
  737.     CLOSE #1
  738.     PRINT
  739. PRINT "THANK YOU FOR PLAYING!"
  740.  
  741. storemenu:
  742. REM draws the store menu
  743. LET menuloc2 = 1
  744. GOSUB drawhud
  745. COLOR &HFFFCFCFC
  746. IF storeoffer = 1 THEN _PRINTSTRING (50, 230), STR$(storeamount) + " BOMBS FOR" + STR$(storecost) + " GOLD?"
  747. IF storeoffer = 2 THEN _PRINTSTRING (50, 230), STR$(storeamount) + " MAGIC FOR" + STR$(storecost) + " GOLD?"
  748. IF storeoffer = 3 THEN _PRINTSTRING (50, 230), STR$(storeamount) + " ARMOUR XP FOR" + STR$(storecost) + " GOLD?"
  749. IF storeoffer = 4 THEN _PRINTSTRING (50, 230), STR$(storeamount) + " SWORD XP FOR" + STR$(storecost) + " GOLD?"
  750. IF storeoffer = 5 THEN _PRINTSTRING (50, 230), "1 HEALTHKIT FOR" + STR$(storecost) + " GOLD?"
  751. _PRINTSTRING (50, 240), "GOLD:" + STR$(gold)
  752.     IF gold >= storecost THEN
  753.         COLOR &HFFFCFCFC
  754.     ELSE
  755.         COLOR &HFF545454
  756.     END IF
  757.     IF menuloc2 = 1 THEN COLOR &HFF54FC54
  758.     _PRINTSTRING (50, 260), "SURE!"
  759.     IF menuloc2 = 2 THEN
  760.         COLOR &HFF54FC54
  761.     ELSE
  762.         COLOR &HFFFCFCFC
  763.     END IF
  764.     _PRINTSTRING (130, 260), "NO THANKS!"
  765.     DO
  766.         LET b$ = UCASE$(INKEY$)
  767.         LET xx = _KEYHIT
  768.     LOOP UNTIL xx OR b$ = " "
  769.     IF xx = 19712 THEN LET menuloc2 = 2
  770.     IF xx = 19200 THEN LET menuloc2 = 1
  771.     IF b$ = " " AND menuloc2 = 2 THEN GOSUB newroom: CLS: RETURN
  772.     IF b$ = " " AND menuloc2 = 1 THEN
  773.         REM attempt purchase
  774.         IF gold < storecost THEN
  775.             REM return for if not enough money
  776.             COLOR &HFFFC5454
  777.             _PRINTSTRING (20, 210), "NOT ENOUGH GOLD!"
  778.             _DELAY 1
  779.             CLS
  780.             RETURN
  781.         END IF
  782.         LET gold = gold - storecost
  783.         COLOR &HFF54FC54
  784.         _SNDPLAY store
  785.         IF storeoffer = 1 THEN
  786.             LET bomb = bomb + storeamount
  787.             IF storeamount = 1 THEN
  788.                 _PRINTSTRING (20, 210), "BOUGHT" + STR$(storeamount) + " BOMB!"
  789.             ELSE
  790.                 _PRINTSTRING (20, 210), "BOUGHT" + STR$(storeamount) + " BOMBS!"
  791.             END IF
  792.         END IF
  793.         IF storeoffer = 2 THEN LET magic = magic + storeamount: _PRINTSTRING (20, 210), "BOUGHT" + STR$(storeamount) + " MAGIC!"
  794.         IF storeoffer = 3 THEN LET armourxp = armourxp + storeamount: _PRINTSTRING (20, 210), "BOUGHT" + STR$(storeamount) + " ARMOUR XP!"
  795.         IF storeoffer = 4 THEN LET swordxp = swordxp + storeamount: _PRINTSTRING (20, 210), "BOUGHT" + STR$(storeamount) + " SWORD XP!"
  796.         IF storeoffer = 5 THEN LET healthkit = healthkit + 1: _PRINTSTRING (20, 210), "BOUGHT 1 HEALTHKIT!"
  797.         _DELAY 1
  798.         GOSUB newroom
  799.         CLS
  800.         RETURN
  801.     END IF
  802.  
  803. drawmenu:
  804. REM draws the menu
  805. REM divert for store menu
  806. IF roomtype = 4 THEN GOSUB storemenu: RETURN
  807. REM door menu
  808. IF roomexit > 0 THEN
  809.     COLOR &HFFFCFCFC
  810.     COLOR &HFF545454
  811. IF menuloc = 1 THEN COLOR &HFF54FC54
  812. _PRINTSTRING (20, 230), doortext$
  813. REM attack menu
  814. IF monsterhealth > 0 THEN
  815.     COLOR &HFFFCFCFC
  816.     COLOR &HFF545454
  817. IF menuloc = 2 THEN COLOR &HFF54FC54
  818. _PRINTSTRING (20, 250), attacktext$
  819. REM loot menu
  820. IF lootamount > 0 AND lootopen <= 0 THEN
  821.     COLOR &HFFFCFCFC
  822.     COLOR &HFF545454
  823. IF menuloc = 3 THEN COLOR &HFF54FC54
  824. _PRINTSTRING (20, 270), loottext$
  825. REM pockets menu
  826. COLOR &HFFFCFCFC
  827. IF menuloc = 4 THEN COLOR &HFF54FC54
  828. _PRINTSTRING (100, 230), pockettext$
  829. REM stats menu
  830. COLOR &HFFFCFCFC
  831. IF menuloc = 5 THEN COLOR &HFF54FC54
  832. _PRINTSTRING (100, 250), stattext$
  833. COLOR &HFFFCFCFC
  834. IF menuloc = 6 THEN COLOR &HFF54FC54
  835. _PRINTSTRING (100, 270), endgametext$
  836.  
  837. drawroom:
  838. REM draws a room
  839. LINE (0, 200)-(256, 200), &HFFFCFCFC
  840. IF roomtype = 0 THEN
  841.     REM print tutorial
  842.     COLOR &HFF5454FC
  843.     _PRINTSTRING (10, 40), "WELCOME TO THE DANDELION DUNGEON!"
  844.     _PRINTSTRING (10, 60), "NOW GO THROUGH THE DOOR TO PLAY!"
  845. IF roomtype = 4 THEN
  846.     REM display store message
  847.     COLOR &HFF5454FC
  848.     _PRINTSTRING (10, 40), "WELCOME TO THE STORE! SEE OUR DEAL!"
  849.     CIRCLE (255 / 2, 100), 25, &HFF5454FC
  850.     LINE (115, 90)-(120, 90), &HFF5454FC
  851.     LINE (135, 90)-(140, 90), &HFF5454FC
  852.     LINE (120, 110)-(135, 110), &HFF5454FC
  853.     PSET(108, 115), &HFF5454FC
  854.     DRAW shopbody1$
  855.     PSET(150, 115), &HFF5454FC
  856.     DRAW shopbody2$
  857. GOSUB drawdecal: REM draws room decal
  858. GOSUB drawdoors: REM draws room doors
  859. GOSUB drawloot: REM draws room loot
  860. GOSUB drawmonster: REM draws monster
  861.  
  862. drawloot:
  863. REM draws room loot
  864. IF lootamount > 0 THEN
  865.     IF decalc = 1 THEN PSET (lootx, 205), &HFFA8A8A8
  866.     IF decalc = 2 THEN PSET (lootx, 205), &HFFA85400
  867.     IF decalc = 3 THEN PSET (lootx, 205), &HFF545454
  868.     IF decalc = 4 THEN PSET (lootx, 205), &HFF0000A8
  869.     IF decalc = 5 THEN PSET (lootx, 205), &HFFA80000
  870.     IF decalc = 6 THEN PSET (lootx, 205), &HFF00A800
  871.     IF lootopen = 0 THEN
  872.         DRAW chestclosed$
  873.     ELSE
  874.         DRAW chestopen$
  875.     END IF
  876.  
  877. drawdecal:
  878. REM draws room decal
  879. IF roomtype = 4 THEN RETURN
  880. IF roomdecal > 0 THEN
  881.     REM draws decal
  882.     IF decalc = 1 THEN PSET (decalx, decaly), &HFFA8A8A8
  883.     IF decalc = 2 THEN PSET (decalx, decaly), &HFFA85400
  884.     IF decalc = 3 THEN PSET (decalx, decaly), &HFF545454
  885.     IF decalc = 4 THEN PSET (decalx, decaly), &HFF0000A8
  886.     IF decalc = 5 THEN PSET (decalx, decaly), &HFFA80000
  887.     IF decalc = 6 THEN PSET (decalx, decaly), &HFF00A800
  888.     IF roomdecal = 1 THEN DRAW decal1$
  889.     IF roomdecal = 2 THEN DRAW decal2$
  890.     IF roomdecal = 3 THEN DRAW decal3$
  891.     IF roomdecal = 4 THEN DRAW decal4$
  892.     IF roomdecal = 5 THEN DRAW decal5$
  893.     IF roomdecal = 6 THEN DRAW decal6$
  894.     IF roomdecal = 7 THEN DRAW decal7$
  895.     IF roomdecal = 8 THEN DRAW decal8$
  896.     IF roomdecal = 9 THEN DRAW decal9$
  897.     IF roomdecal = 10 THEN DRAW decal10$
  898.     IF roomdecal = 11 THEN DRAW decal11$
  899.     IF roomdecal = 12 THEN DRAW decal12$
  900.     IF roomdecal = 13 THEN DRAW decal13$
  901.     IF roomdecal = 14 THEN DRAW decal14$
  902.     IF roomdecal = 15 THEN DRAW decal15$
  903.  
  904. endgame:
  905. REM unloads all files from memory and quits game
  906. REM unloads images
  907. _FREEIMAGE titledisplay
  908. REM unloads audio
  909. _SNDCLOSE bombhit
  910. _SNDCLOSE swordhit
  911. _SNDCLOSE magichit
  912. _SNDCLOSE highscore
  913. _SNDCLOSE gameover
  914. _SNDCLOSE dooropen
  915. _SNDCLOSE store
  916. _SNDCLOSE pickup
  917. REM Danni Pond
  918.  

dandedata folder needed :)

Controls - Arrow keys and Space
* dandedata.zip (Filesize: 330.6 KB, Downloads: 77)
« Last Edit: June 18, 2020, 01:56:38 pm by pforpond »
Loading Signature...