0 DECLARE SUB wilderness () DECLARE SUB cureit () DECLARE SUB getitem () DECLARE SUB restartgame () DECLARE SUB itemch () DECLARE SUB slashatt () DECLARE SUB magicb () DECLARE SUB starrain () DECLARE SUB mainbattle () DECLARE SUB HELP () DECLARE SUB helmetch () DECLARE SUB CREATURES () DECLARE SUB ARMTOWN () DECLARE SUB weaponch () DECLARE SUB armorch () DECLARE SUB HAGENF () DECLARE SUB SEWERS () DECLARE SUB OMRISR () DECLARE SUB FELSGOR () DECLARE SUB GANDOWL () DECLARE SUB NOBWY () DECLARE SUB CAMMENDALE () DECLARE SUB AEON () DECLARE SUB DESERTHEART () DECLARE SUB SILANUS () DECLARE SUB RAVENTAIL () DECLARE SUB DRAGONHOLLOW () DECLARE SUB MERINSACAB () DECLARE SUB DAMONHORD () DECLARE SUB GAIANTEMPLE () DECLARE SUB APIBIA () DECLARE SUB DOMALAS () DECLARE SUB VERMIA () DECLARE SUB CRCHECK () DECLARE SUB CHTOWN () DECLARE SUB armory () DECLARE SUB astrike () DECLARE SUB aura () DECLARE SUB battle () DECLARE SUB batwin () DECLARE SUB bolt () DECLARE SUB character () DECLARE SUB cone () DECLARE SUB GETCREATURE () DECLARE SUB cure () DECLARE SUB ender1 () DECLARE SUB fire () DECLARE SUB fstorm () DECLARE SUB iceflash () DECLARE SUB INTROTEXT () DECLARE SUB items () DECLARE SUB playdrag () DECLARE SUB rshackles () DECLARE SUB soundb () DECLARE SUB shieldch () DECLARE SUB statusscr () DECLARE SUB TOWNS () DECLARE SUB MAINCREATURE () DIM SHARED cn$ 'Name of character DIM SHARED cr$ 'Race of character DIM SHARED catt% 'Attack of character DIM SHARED cdef% 'Total defense of character DIM SHARED cshd% 'Sheild Defense of character DIM SHARED card% 'Armor Defense of character DIM SHARED ched% 'Helmet defense of character DIM SHARED ci% 'Intelligence of character DIM SHARED ce% 'Endurance of character DIM SHARED chp% 'Hit points of character DIM SHARED cmp% 'Magic points of character DIM SHARED gold% 'Charcters gold DIM SHARED agold% 'gold from enemies DIM SHARED store% 'store choice DIM SHARED cw$ 'Character weapon DIM SHARED reviv% 'Number of life charms DIM SHARED elixer% 'Revives magic and hit points DIM SHARED ch$ 'Character helmet DIM SHARED csh$ 'Character shield DIM SHARED car$ ' Character armor DIM SHARED healp% 'hp potions DIM SHARED xhealp% 'mp potions DIM SHARED ene% 'random number to select enemy DIM SHARED ename$ 'name of enemy DIM SHARED ehp% 'hp of enemy DIM SHARED eth% 'thaco of enemy DIM SHARED eatt% 'attack power of enemy DIM SHARED edef% 'defense power of enemy DIM SHARED edmg% 'Damage done by enemy DIM SHARED xp% 'xperience gained from enemy DIM SHARED cp% 'current hp DIM SHARED cm% 'current mp DIM SHARED todo$ 'battle select DIM SHARED clvl% 'character level DIM SHARED cexp& 'character experience DIM SHARED rn% 'running variable DIM SHARED spel% 'spell number for selection DIM SHARED cur% 'variable for spell graphic DIM SHARED item% 'choosing an item DIM SHARED stit$(10) 'store items DIM SHARED stic%(10) 'store item costs DIM SHARED type$(10) 'store items type DIM SHARED town$(100) 'name of towns DIM SHARED spell$(30) 'name of spells DIM SHARED cost%(30) 'cost of store items DIM SHARED choice$(10) 'choices for moving around DIM SHARED resetg 'reset game variable DIM SHARED x(2) 'var DIM SHARED y(2) 'var DIM SHARED position 'city position DIM SHARED choose 'spell choosing variable DIM SHARED magic 'spell variable DIM SHARED magiclvl 'level of magic DIM SHARED chcr$ 'character checking variable DIM SHARED switch$(10) 'sewer switch variable DIM SHARED ib$ 'in battle variable DIM SHARED matt% 'modified attack DIM SHARED mched% 'helmet modified DIM SHARED mcard% 'armor modified DIM SHARED mcshd% ' sheild modified DIM SHARED mcdef% DIM SHARED po$ DIM SHARED main DIM SHARED ssold% DIM SHARED xpsold% DIM SHARED psold% DIM SHARED asold% DIM SHARED hsold% DIM SHARED wsold% DIM SHARED crfrt$ DIM SHARED tonext% DIM SHARED slotname$(10) DIM SHARED tent% DIM SHARED bag DIM SHARED itembuy(5) DIM SHARED charm DIM SHARED amulet DIM SHARED sk DIM SHARED omtaled DIM SHARED scabbard$ DIM SHARED ring$ DIM SHARED mirror$ DIM SHARED gauntlets$ DIM SHARED spelled(11) DIM SHARED inven$(20) DIM SHARED invennum(20) DIM SHARED healvalue(20) DIM SHARED itemnum DIM SHARED itemtype(20) DIM SHARED randit DIM SHARED exit$ DIM SHARED sew DIM SHARED mertalk DIM SHARED amcount DIM SHARED dis DIM SHARED olddis DIM SHARED oldpos DIM SHARED reached DIM SHARED cur DIM SHARED healvalue DIM SHARED newpos DIM SHARED mcatt% DIM SHARED book$ DIM SHARED hpp DIM SHARED dfp DIM SHARED atp DIM SHARED er CHDIR "c:\dknight" 1 DATA MUSHROOM, PHASE BEING, HUMAN, DWARVE, CENTAUR, HOBBIT, ELF, SHADOWEN, FERAL, SHARIL,SPAM 2 DATA 1,-2,-2,3,-2 3 DATA 1,1,1,1,1 4 DATA -1,1,1,-1,-1 5 DATA 3,-2,-1,1,-2 6 DATA 1,-1,1,2,-1 7 DATA -2,1,2,-1,1 8 DATA -2,3,-1,-2,3 9 DATA 2,-3,1,2,-3 10 DATA 1,-3,3,2,-1 11 DATA -3,3,-2,1,3 12 DATA 2,2,-2,1,-1 13 DATA 0,10, General Store, Althes House, West Gate, East Gate, North Gate, South Gate, Strange House, Large Shed, Temple of Rhen, City Square,HAGENF 14 DATA 1,10, Gate 1, Gate 2, Gate 3, Gate 4, Gate 5, Gate 6, Gate 7, Gate 8, Gate 9, Gate 10,SEWERS 15 DATA 0,10, Palace of Earth, City Square, Merlon's Shop, General Store, Statue, Tomb of Omr'Isr, Sewer Entrance, South Road, East Road, Guard Office,OMRISR 16 DATA 10, East, West, North, South, Travel Pool, Store, Fire, Wind, Water, Earth,AEON 17 DATA 0,9, Elevator, General Store, West Road, Dragon Claw, Dock, Ace of Diamonds, Dojo, Wishing Well, Cave,CAMMENDALE 18 DATA 10, North Up Tunnel, General Store, North Down Tunnel, Worm Pit, Spirit Shop, Stone Grinder's Place, East Up Tunnel, Hall of Thor, Lore Room, Lava Tube,FELSGOR 19 DATA 10, Palace of Air, Teleporter, General Store, Temple of Ra, Wing Rider Office, North Down Tunnel, South Tunnel, The Seeing Eye, Worthing Grounds, Sylph's Ruins, City Square,GANDOWL 20 DATA 10, Building, Building, Building, Old Palace, Ruined Shop, Store, Strange Hut, Altar, City Square, Teleporter,NOBWY 21 DATA 10, Iron Gate, City Square, Imp's Fork, Orc's Club, Palace of Ramas, Prison, Forq's House, South Cliff, River Bank, General Store,DAMON HORD 22 DATA 0,10, General Store, City Square, Play House, Murphy's Inn, North Road, Mythero's Shop, Palace of Dark, Caravan Outings, Haven, Arena of Ancients,MERINSACAB 23 DATA 7, Well, Master's Tent, Desert, Your Tent, Spring of Life, Cave, Center of Hope,DESERT HEART 24 DATA 10, Cavern Enterance, General Store, Crystal's Shop, Glass Eye Inn, Klear's Tear, Palace of Light, Southern Light Cave, Graveyard, The Shard, Void's Enterance,SILANUS 25 DATA 10, Excavating Pit, Library of Legend, General Store, Hyuman Hall, Strange Hall, Palace of Fire, Lycal's Shop, Statue of Spam-Kiln, City Square, The Tiger's Pit,RAVENTAIL 26 DATA 10, General Store, Maji Travel, Palace of Water, Draco's Shop, Wings of Glory, Scorched Pale Inn, City Square, Long Staicase, Rider's Hideout, Deep Well,DRAGONHOLLOW 27 DATA 10, Gaia's Eyes, Gaia's Ears, Gaia's Heart, Gaia's Head, Gaia's Body, Gaia's Spirit, Gaia's Hands, Gate to Stairs, Wings of Gaia, Gaia's General Store,GAIANTEMPLE 28 DATA 10, Palace of the Deep, Frog Palace, General Store, City Square, Phibia's Shop, Flip's Inn, Pond's Arena, Wings of Gaia, Trail of Darkness,APIBIA 29 DATA 10, Trail of Light, General Store, Gate to Death, Shor's Shop, Viel's Inn, City Square, Palace of Inferno, Gaia's Hope, Iron Bar, Ryna's House,DOMALAS 30 DATA 3, Dark Path 1, Dark Path 2, Dark Path 3,VERMIA 31 DATA 32 DATA 33 DATA 34 DATA 35 DATA 36 DATA 37 DATA 38 DATA 39 DATA 40 DATA 41 DATA 42 DATA 43 DATA 44 DATA 45 DATA 46 DATA 47 DATA 48 DATA Breath of Gaia,5,Aneant's Wrath,10,Opened Sky,15,Pure Heart,25,Winter's Fate,40,Lyre's Nightmare,65,Illumini's Rage,105,Life Net,120,Hell's Gate,170,Santa's Revenge,200,Star Rain, 350 49 DATA 25, 1 50 DATA 15, 2 51 DATA 5, 3 52 DATA 5 53 DATA 5, 4 54 DATA 6 55 DATA 7 145 DATA 6,3, Old Merchant Road, New Merchant Road, Merchant 146 DATA 6,2, Old Trail, New Trail 147 DATA 6,2, Old Plains Path, New Plains Path 148 DATA 6,2, Old Rocky Path, New Rocky Path 149 DATA 6,2, Old Forest Path, New Forest Path 150 DATA Rusty Imp Killer, 50, weapon,Toothpick Spliter, 65,weapon, Cloth Jacket, 60, armor, Stitched Wool, 80, armor, Bark Barrier, 50, shield, Plated Wood, 70, shield, Leather Cap, 60, hel, Face Mask, 70, hel,Healing Scent, 35, item, Mage Pots, 50,item 151 DATA Training Blade, 100, weapon, Weighted Pole,125,weapon,Layered Hide,120,armor,Stitched Leather,165,armor,Strapped Wood, 100,shield,Striped Iron,150,shield,Face Guard,90,hel,Iron mask,100,hel,Healing Scent, 35, item, Mage Pots,50,item 152 DATA 153 DATA 154 DATA Bronze Pole, 250, weapon, False Chain, 300, armor, Spiked Sheild, 200, shield, Horned Helmet, 210, hel, Healing Scent, 35, item, Insta-Tent, 70, item, Anti-Poison, 40, item, Mage Pots, 50, item, Purple Potion, 150, item, Green Potion, 10, item 155 DATA 156 DATA 157 DATA 158 DATA 159 DATA 160 DATA 161 DATA 162 DATA 163 DATA 164 DATA 165 DATA 166 DATA 167 DATA 168 DATA 169 DATA 170 DATA 171 DATA 182 DATA 193 DATA 194 DATA 195 DATA 196 DATA 197 DATA 198 DATA 199 DATA 200 DATA 201 DATA 202 DATA 203 DATA 204 DATA 205 DATA 206 DATA 207 DATA '''' DATA Name, HP, Attack, Defense, Poison, Drain 1000 DATA Green Puddle,4,4,3,0,0 1001 DATA Lint Ball,3,4,5,0,0 1002 DATA Dancing Light,4,3,5,0,0 1003 DATA Sewer Bat,3,3,3,0,0 1004 DATA Spider,5,3,4,0,0 1005 DATA Bum,4,3,1,0,0 1006 DATA Strange Rodent,4,4,4,0,0 1007 DATA Imp,4,4,3,0,0 1008 DATA Posessed Cat,4,2,6,0,0 1009 DATA Colored Snake,3,3,2,1,0 1010 DATA Undead Fur-Thing,3,4,4,0,1 1011 DATA Spirit Dog,4,4,3,0,0 1012 DATA Poison Bubble, 3,3,1,1,0 1013 DATA Ball of Fuzz,6,5,6,0,0 1014 DATA Skull,19,10,15,0,1 1015 DATA Drunken Fool,16,13,20,0,0 1016 DATA Paper Elemental,14,14,10,0,0 1017 DATA Big Frog,14,15,16,0,0 1018 DATA Rotten Mushroom,15,16,19,0,0 1019 DATA Green Goblin,16,18,25,0,0 1020 DATA Girl Scout Cookie,22,20,20,1,0 1021 DATA Shadow, 25, 22, 30, 0,1 1022 DATA Grunt, 27, 25, 35, 0,0 1023 DATA Diabolic Traveler, 29, 27, 40, 0,0 1024 DATA Green Jell, 30, 29, 34, 1,0 1025 DATA Veltric Demon-Hawk, 32, 37, 50,0,0 1026 DATA Giant Leech, 34, 40,60,0,1 1027 DATA Tree Demon, 36, 43, 80,0,0 1028 DATA Wind Wraith, 38, 47, 80,0,0 1100 DATA Giant Octopus,37,15,16,1,0 1101 DATA Undead Octopus,40,10,20,0,1 1102 DATA Spirit of Omr'Isr, 100, 30, 45, 0,1 CLEAR upper = 1 resetg = 0 position = 1 clvl% = 1 cexp& = 0 RANDOMIZE TIMER SCREEN 12 COLOR 7 car$ = "Clothes" csh$ = "None" ch$ = "None" cw$ = "Rusty Axe" ssold% = 0 asold% = 0 hsold% = 0 wsold% = 5 tonext% = 40 CALL TOWNS DO UNTIL begin$ = "l" OR begin$ = "n" INPUT "Do you want to (L)oad a new game or start a (N)ew one"; begin$ begin$ = LCASE$(begin$) LOOP IF begin$ = "l" THEN GOTO newload startnew: CALL INTROTEXT CALL playdrag GOTO 0 newload: CLS CHDIR "c:\dknight" OPEN "saves.lst" FOR INPUT AS #1 INPUT #1, slotname$ CLOSE #1 dl: CLS INPUT "What filename?(NEW for new game)", file$ file$ = LCASE$(file$) IF file$ = "new" THEN GOTO startnew CALL restartgame ON ERROR GOTO checkfile OPEN file$ FOR INPUT AS #1 IF er = 1 THEN er = 0: GOTO dl INPUT #1, cn$, cr$, catt%, cdef%, cshd%, card%, ched%, ci%, ce%, chp%, cmp%, gold%, cw$ INPUT #1, ch$, car$, csh$, cp%, cm%, clvl%, cexp&, position, magic, magiclvl INPUT #1, matt%, mched%, mcard%, mcshd%, mcdef%, po$, ssold%, asold% INPUT #1, hsold%, wsold%, crfrt$, tonext%, exit$, itemnum, sew, omtaled INPUT #1, amulet, charm, scabbard$, ring$, mirror$, gauntlets$, oldpos, newpos INPUT #1, amcount, book$ FOR t = 1 TO itemnum INPUT #1, inven$(t), invennum(t), healvalue(t) NEXT t FOR t = 1 TO 11 INPUT #1, spelled(t) NEXT t CLOSE #1 ON ERROR GOTO 0 PRINT "Loaded... Press a key" DO WHILE INKEY$ = "" LOOP CALL playdrag GOTO 0 checkfile: IF ERDEV = 2 THEN GOTO nofile nofile: PRINT "There is no such file" er = 1 RESUME NEXT SUB AEON IF choose = 1 THEN GOTO AEONA IF choose = 2 THEN GOTO AEONB IF choose = 3 THEN GOTO AEONC IF choose = 4 THEN GOTO AEOND IF choose = 5 THEN GOTO AEONE IF choose = 6 THEN GOTO AEONF IF choose = 7 THEN GOTO AEONG IF choose = 8 THEN GOTO AEONH IF choose = 9 THEN GOTO AEONI IF choose = 10 THEN GOTO AEONJ AEONA: AEONB: AEONC: AEOND: AEONE: AEONF: AEONG: AEONH: AEONI: AEONJ: END SUB SUB APIBIA IF choose = 1 THEN GOTO APIBIAA IF choose = 2 THEN GOTO APIBIAB IF choose = 3 THEN GOTO APIBIAC IF choose = 4 THEN GOTO APIBIAD IF choose = 5 THEN GOTO APIBIAE IF choose = 6 THEN GOTO APIBIAF IF choose = 7 THEN GOTO APIBIAG IF choose = 8 THEN GOTO APIBIAH IF choose = 9 THEN GOTO APIBIAI IF choose = 10 THEN GOTO APIBIAJ APIBIAA: APIBIAB: APIBIAC: APIBIAD: APIBIAE: APIBIAF: APIBIAG: APIBIAH: APIBIAI: APIBIAJ: END SUB SUB armorch IF car$ = "Cloth Jacket" THEN mcard% = card% + 1 IF car$ = "Stiched Wool" THEN mcard% = card% + 2 IF car$ = "Layered Hide" THEN mcard% = card% + 3 IF car$ = "Stitched Leather" THEN mcard% = card% + 4 IF car$ = "False Chain" THEN mcard% = card% + 5 'IF stit$(store%) = "Cloth Jacket" THEN mcard% = card% + 1 'IF stit$(store%) = "Stiched Wool" THEN mcard% = card% + 2 'IF stit$(store%) = "Layered Hide" THEN mcard% = card% + 3 'IF stit$(store%) = "Stitched Leather" THEN mcard% = card% + 4 'IF stit$(store%) = "False Chain" THEN mcard% = card% + 5 endar: END SUB SUB armory arm = 1 100 PRINT "Press any key to continue" DO WHILE INKEY$ = "" LOOP CALL ARMTOWN CLS FOR t = 1 TO 10 READ stit$(t), stic%(t), type$(t) NEXT t CALL CHTOWN PRINT "Welcome to "; town$ PRINT "This is what's available today for purchase" FOR t = 1 TO 10 PRINT t; ") "; stit$(t); stic%(t); type$(t) NEXT t PRINT "11) Exit" PRINT "12) Sell items" PRINT gold%; "coins left" INPUT "Which would you like"; store% IF store% = 11 THEN 103 IF store% = 12 THEN GOTO sell IF store% < 1 OR store% > 12 THEN 100 ELSE 101 101 IF type$(store%) = "weapon" THEN cw$ = stit$(store%): wsold% = (INT(stic%(store%))) / 2: CALL weaponch IF type$(store%) = "armor" THEN car$ = stit$(store%): asold% = (INT(stic%(store%))) / 2: CALL armorch IF type$(store%) = "hel" THEN ch$ = stit$(store%): hsold% = (INT(stic%(store%))) / 2: CALL helmetch IF type$(store%) = "shield" THEN csh$ = stit$(store%): ssold% = (INT(stic%(store%))) / 2: CALL shieldch IF type$(store%) = "item" THEN GOTO 104 102 gold% = gold% - stic%(store%) GOTO 100 103 PRINT "Be careful and come again" GOTO 110 104 gold% = gold% - stic%(store%) FOR t = 1 TO itemnum IF inven$(t) = stit$(store%) THEN invennum(t) = invennum(t) + 1: GOTO 100 NEXT t itemnum = itemnum + 1 inven$(itemnum) = stit$(store%) invennum(itemnum) = invennum(itemnum) + 1 GOTO 100 sell: CLS PRINT "Sell what?" PRINT "1) Armor for"; asold% PRINT "2) Weapon for"; wsold% PRINT "3) Helmet for"; hsold% PRINT "4) Sheild for"; ssold% PRINT "5) An item" PRINT "6) Nothing" PRINT gold%; "gold left" INPUT "Which one"; sellit% IF sellit% < 1 OR sellit% > 6 THEN GOTO sell IF sellit% = 6 THEN GOTO 100 IF sellit% = 5 THEN GOTO sellitem INPUT "Are you sure"; checksell$ checksell$ = LCASE$(checksell$) IF checksell$ = "y" THEN GOTO sellit ELSE GOTO sell sellit: IF sellit% = 1 AND car$ <> "" THEN car$ = "": mcard% = card%: gold% = gold% + asold%: asold% = 0 IF sellit% = 2 AND cw$ <> "" THEN cw$ = "": matt% = catt%: gold% = gold% + wsold%: wsold% = 0 IF sellit% = 3 AND ch$ <> "" THEN ch$ = "": mched% = ched%: gold% = gold% + hsold%: hsold% = 0 IF sellit% = 4 AND csh$ <> "" THEN csh$ = "": mcshd% = cshd%: gold% = gold% + ssold%: ssold% = 0 IF sellit% = 5 AND healp% > 0 THEN healp% = healp% - 1: gold% = gold% + psold%: IF healp% < 1 THEN psold% = 0 ELSE PRINT "You don't have any": DO WHILE INKEY$ = "": LOOP IF sellit% = 6 AND xhealp% > 0 THEN xhealp% = xhealp% - 1: gold% = gold% + xpsold%: IF xhealp < 1 THEN xpsold% = 0 ELSE PRINT "You don't have any": DO WHILE INKEY$ = "": LOOP GOTO sell sellitem: GOTO 100 110 arm = 0 END SUB SUB ARMTOWN IF position = 1 THEN RESTORE 150 IF position = 3 THEN RESTORE 151 IF position = 4 THEN RESTORE 153 IF position = 5 THEN RESTORE 154 IF position = 6 THEN RESTORE 155 IF position = 7 THEN RESTORE 156 IF position = 8 THEN RESTORE 157 IF position = 9 THEN RESTORE 158 IF position = 10 THEN RESTORE 159 IF position = 11 THEN RESTORE 160 IF position = 12 THEN RESTORE 161 IF position = 13 THEN RESTORE 162 IF position = 14 THEN RESTORE 163 IF position = 15 THEN RESTORE 164 IF position = 16 THEN RESTORE 165 IF position = 17 THEN RESTORE 166 IF position = 18 THEN RESTORE 167 END SUB SUB astrike IF spelled(7) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO norage IF cm% < 105 THEN PRINT "Not enough power left.": GOTO norage IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO norage a = 0 DO WHILE a < 50 FOR l = 1 TO 2 x(l) = (RND(10) * 600) + 1 y(l) = (RND(10) * 400) + 1 c = (RND * 14) + 1 NEXT l LINE (x(1), y(1))-(x(2), y(2)), c CIRCLE (x(2), y(1)), 10, c a = a + 1 LOOP dmg% = (RND * 5000) + 1 ehp% = ehp% - dmg% PRINT "You did"; dmg%; "points of damage" cm% = cm% - 105 norage: END SUB SUB aura IF spelled(4) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO noaura IF cm% < 25 THEN PRINT "Not enough power left.": GOTO noaura IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO noaura y% = 200 x% = 0 DO WHILE y% > 0 y% = y% - 4 x% = x% + 1 CIRCLE (200, 200), y%, x% FOR t = 1 TO 1: NEXT t IF x% = 15 THEN x% = 1 LOOP y% = 200 DO WHILE y% > 0 y% = y% - 1 CIRCLE (200, 200), y%, 0 LOOP dmg% = ((RND(40) * 100) + clvl%) PRINT "You did"; dmg%; "points of damage" ehp% = ehp% - dmg% cm% = cm% - 25 noaura: END SUB SUB battle CALL shieldch CALL helmetch CALL armorch mcdef% = mcard% + mcshd% + mched% + cdef% RANDOMIZE TIMER oldb = 1 ib$ = "in" pot = clvl% * 2 ene% = (RND * 10) + pot + 1 IF ene% > 29 THEN ene% = 29 IF main > 0 THEN CALL MAINCREATURE: GOTO 68 CALL CREATURES 68 READ ename$, ehp%, eatt%, edef%, poison%, drain% 70 LOCATE 27, 5 DO WHILE INKEY$ = "" LOOP IF resetg = 1 THEN GOTO endbat IF turn = 1 THEN 80 IF ehp% < 1 THEN CALL batwin: GOTO endbat CLS IF cp% > 9 THEN modl = 1 IF cm% > 9 THEN modl1 = 1 IF cp% > 99 THEN modl = 2 IF cm% > 99 THEN modl1 = 2 IF cp% > 999 THEN modl = 3 IF cm% > 999 THEN modl1 = 3 LINE (10, 10)-(250, 10), 14 LINE (10, 10)-(10, 300), 14 LINE (10, 300)-(250, 300), 14 LINE (250, 10)-(250, 300), 14 LINE (15, 15)-(15, 295), 14 LINE (15, 15)-(245, 15), 14 LINE (245, 295)-(15, 295), 14 LINE (245, 15)-(245, 295), 14 LINE (15, 200)-(245, 200), 14 LINE (15, 205)-(245, 205), 14 LINE (110, 205)-(110, 295), 14 LINE (115, 205)-(115, 295), 14 LOCATE 2, 13 PRINT ename$ LOCATE 14, 5 PRINT "1 Attack" IF magic <> 1 THEN GOTO msk LOCATE 15, 5 PRINT "2 Spell" msk: LOCATE 16, 5 PRINT "3 Item" LOCATE 17, 5 PRINT "4 Special" LOCATE 18, 5 PRINT "5 Run" LOCATE 14, 17 PRINT "HP:" LOCATE 16, 17 PRINT "MP:" LOCATE 15, 20 - modl PRINT cp%; "/"; chp% LOCATE 17, 20 - modl1 PRINT cm%; "/"; cmp% IF po$ = "on" AND amulet = 1 AND amcount > 0 THEN CALL cureit IF po$ = "on" THEN LOCATE 23, 4: PRINT "You're posioned.": cp% = cp% - 1 LOCATE 21, 4 INPUT "Choose an option(1-5)"; batcho IF batcho = 6 THEN ehp% = 0 IF batcho < 1 OR batcho > 5 THEN 70 IF batcho = 1 THEN 71 IF batcho = 2 THEN 75 IF batcho = 3 THEN CALL items IF batcho = 4 THEN GOTO specialty IF batcho = 5 THEN 78 71 a% = (RND(1) * 20) thit% = cth% - edef% IF a% >= thit% THEN 72 ELSE 73 72 dmg% = (RND * mcatt%) + (clvl% * 2) - edef% IF dmg% < 1 THEN dmg% = 0 PRINT "You hit the "; ename$; " for"; dmg%; "points of damage" ehp% = ehp% - dmg% turn = 1 IF ehp% < 1 THEN CALL batwin: GOTO 210 GOTO 80 73 PRINT "You missed the "; ename$ turn = 1 GOTO 70 75 CALL magicb turn = 1 GOTO 70 78 rn% = (RND * 10) + 1 IF rn% > 5 THEN PRINT "Ran": GOTO 210 IF rn% < 5 THEN PRINT "Too scared to run": turn = 1: GOTO 70 80 PRINT "The "; ename$; " attacks" ifat = INT(RND * 20) + 1 + eatt% thit% = 10 + eatt% IF ifat >= thit% THEN 81 ELSE 82 81 dmg% = INT((RND * eatt%) + eatt%) dmg% = dmg% - ce% / 2 IF dmg% < 1 THEN dmg% = 0 PRINT "The "; ename$; " hits for"; dmg%; "points of damage" cp% = cp% - dmg% IF poison% = 1 AND dmg% > 0 THEN po$ = "on" IF drain% = 1 AND dmg% > 0 THEN ehp% = ehp% + dmg% + 1: cp% = cp% - 1: PRINT "You have been drained"; dmg% + 1; "points of life" IF cp% < 0 THEN 83 turn = 0 GOTO 70 82 PRINT "The "; ename$; " misses you" turn = 0 GOTO 70 83 PRINT "It seems the fatal blow has been struck." IF charm > 0 THEN PRINT "From no where a bolt of magic hits you." ELSE CALL ender1 SLEEP 1 cp% = chp%: cm% = cmp%: charm = charm - 1: po$ = "off" GOTO 70 specialty: PRINT "1) Exit" IF ring$ = "yes" THEN PRINT "2) Ring of Life" INPUT "Which one:", ar IF ar < 1 THEN GOTO specialty IF ar = 2 THEN GOTO ringit ELSE GOTO 70 GOTO 70 ringit: su = cm% * 5 cm% = 0 cp% = cp% + su IF cp% > chp% THEN cp% = chp% PRINT "The ring drains your magic and replenishes your body" DO WHILE INKEY$ = "" LOOP GOTO 70 210 endbat: END SUB SUB batwin gold% = gold% + (edef% * 2) cexp& = cexp& + (eatt% * 4) PRINT "You earned"; eatt% * 4; "experiance points" PRINT "You now have"; cexp&; "experience points" PRINT "You earned"; edef% * 2; "gold pieces" PRINT "You now have"; gold%; "gold pieces" freeitem = INT(RND * 10) + 1 IF freeitem > 8 THEN CALL getitem IF cexp& > tonext% THEN GOTO LEVELUP ELSE 601 LEVELUP: clvl% = clvl% + 1 upper = upper + 2 tonext% = tonext% * upper chp% = chp% + (RND * 5) + 1 + clvl% cmp% = cmp% + (RND * 5) + 1 + clvl% ci% = ci% + (RND * 5) + 1 + clvl% catt% = catt% + (RND * 5) + 1 + clvl% ce% = ce% + (RND * 5) + 1 + clvl% cdef% = cdef% + (RND * 5) + 1 + clvl% 599 PRINT "You gained an experience level" PRINT "Your level is now"; clvl% PRINT "Your endurance is"; ce% PRINT "Your intelligence is"; ci% PRINT "Your base attack is"; catt% PRINT "Your base defense is"; cdef% DO WHILE INKEY$ = "" LOOP GOTO 601 601 END SUB SUB bolt IF spelled(3) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nobolt IF cm% < 15 THEN PRINT "Not enough power left.": GOTO nobolt IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO nobolt l% = 0 i% = 40 DO WHILE i% < 5000 l% = l% - 5 i% = i% + 35 LINE (560, 0)-(l%, i%), 14 FOR t = 1 TO 5: NEXT t LOOP dmg% = ((RND * 75) + (ci% / 2)) PRINT "You did"; dmg%; "points of damage" ehp% = ehp% - dmg% cm% = cm% - 15 nobolt: END SUB SUB CAMMENDALE IF choose = 1 THEN GOTO CAMMENDALEA IF choose = 2 THEN GOTO CAMMENDALEB IF choose = 3 THEN GOTO CAMMENDALEC IF choose = 4 THEN GOTO CAMMENDALED IF choose = 5 THEN GOTO CAMMENDALEE IF choose = 6 THEN GOTO CAMMENDALEF IF choose = 7 THEN GOTO CAMMENDALEG IF choose = 8 THEN GOTO CAMMENDALEH IF choose = 9 THEN GOTO CAMMENDALEI IF choose = 10 THEN GOTO CAMMENDALEJ CAMMENDALEA: CAMMENDALEB: CALL armory GOTO enc CAMMENDALEC: PRINT "You start on the West Road" oldpos = 5 newpos = 3 position = 100 reached = 0 GOTO enc CAMMENDALED: CAMMENDALEE: CAMMENDALEF: CAMMENDALEG: CAMMENDALEH: CAMMENDALEI: PRINT "An ancient well stands in the middle of the square." PRINT "A sign reads:" PRINT " A drop in the bucket..." PRINT " Can do wonders..." INPUT "Drop in a few coins?", wi$ IF wi$ = "y" THEN GOTO wis ELSE GOTO enc wis: INPUT "How many?", co IF co > gold% THEN PRINT "You don't have that much.": GOTO wis IF co = 0 THEN GOTO enc IF co > 0 AND co < 10 THEN PRINT "Nothing happens.": GOTO enc IF co > 10 AND co < 100 THEN PRINT "You feel refreshed.": cp% = cp% + (co / 2): mp% = mp% + (co / 2): GOTO enc IF co > 100 AND co <> 1648 THEN PRINT "You feel much better": cp% = chp%: cm% = cmp%: GOTO enc IF co = 1648 THEN PRINT "Something's happening!" gold% = gold% - co IF book$ = "yes" OR book$ = "used" THEN GOTO nobook PRINT "The well glows with an erie light. Slowly a book rises out of the well." book$ = "yes" PRINT "The book opens it self to a page with strange writing on it." PRINT "Light flashes and you are knocked to the ground." PRINT "You hear a woman's voice, 'You have a destiny......'" GOTO enc nobook: PRINT "The well glows and a voice says 'Become your destiny'" GOTO enc CAMMENDALEJ: enc: END SUB SUB character RANDOMIZE TIMER PRINT "Partial List:" PRINT "Mushroom, Phase Being, Human, Hobbit, Elf, Dwarve, Sharil" PRINT "Spam, Shadowen, Feral" 61 INPUT "ALTHES: I need to know your race"; cr$ IF cr$ = "" THEN 61 CALL CRCHECK IF cr$ <> chcr$ THEN 61 catt% = INT(RND * 5) + 5 ched% = INT(RND * 2) + 1 cshd% = INT(RND * 2) + 1 card% = INT(RND * 2) + 2 ci% = INT(RND * 5) + 5 ce% = INT(RND * 5) + 5 chp% = INT(RND * 10) + 10 cmp% = INT(RND * 10) + 10 mcard% = card% mched% = ched% mcshd% = cshd% cdef% = ched% + card% + cshd% mcdef% = mched% + mcard% + mcshd% READ endm, intm, attm, hpm, mpm catt% = catt% + attm ci% = ci% + intm ce% = ce% + endm chp% = chp% + hpm cmp% = cmp% + mpm 62 cth% = 20 matt% = catt% cp% = chp% cm% = cmp% PRINT "Stats:" PRINT catt%; "attack points" PRINT cdef%; "defense points" PRINT ci%; "I. Q. points" PRINT ce%; "endurance points" PRINT chp%; "hit points" PRINT cmp%; "magic points" PRINT "ALTHES: You have great powers, use them." agold% = (RND * 100) + 30 gold% = gold% + agold% PRINT "ALTHES: You have my life savings;"; gold%; "gold coins " PRINT "Good luck, and remember there are friends everywhere" PRINT "Press any key to continue" DO WHILE INKEY$ = "" cr$ = LCASE$(cr$) crfrt$ = UCASE$(LEFT$(cr$, 1)) LOOP END SUB SUB CHTOWN IF position = 1 THEN RESTORE 13 IF position = 2 THEN RESTORE 14 IF position = 3 THEN RESTORE 15 IF position = 4 THEN RESTORE 16 IF position = 5 THEN RESTORE 17 IF position = 6 THEN RESTORE 18 IF position = 7 THEN RESTORE 19 IF position = 8 THEN RESTORE 20 IF position = 9 THEN RESTORE 21 IF position = 10 THEN RESTORE 22 IF position = 11 THEN RESTORE 23 IF position = 12 THEN RESTORE 24 IF position = 13 THEN RESTORE 25 IF position = 14 THEN RESTORE 26 IF position = 15 THEN RESTORE 27 IF position = 16 THEN RESTORE 28 IF position = 17 THEN RESTORE 29 IF position = 18 THEN RESTORE 30 IF position = 100 THEN GOTO wild ELSE GOTO endchec wild: IF reached = 0 THEN GOTO set ELSE GOTO go set: dis = INT(RND * 3) + 3 olddis = dis reached = 0 go: randwild = INT(RND * 4) + 1 IF randwild = 1 THEN RESTORE 145 IF randwild = 2 THEN RESTORE 146 IF randwild = 3 THEN RESTORE 147 IF randwild = 4 THEN RESTORE 148 IF randwild = 5 THEN RESTORE 149 endchec: END SUB SUB cone IF spelled(5) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nocone IF cm% < 40 THEN PRINT "Not enough power left.": GOTO nocone IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO nocone FOR t = 1 TO 4 a% = 2 B% = 1 c% = 20 IF t = 1 THEN d% = 9 IF t = 2 THEN d% = 15 IF t = 3 THEN d% = 0 DO WHILE B% < 101 CIRCLE (c%, 50), B%, d%, , , a% a% = a% + .5 B% = B% + 1 c% = c% + 3 LOOP NEXT t dmg% = (RND * 300) ehp% = ehp% - dmg% PRINT "You did"; dmg%; "points of damage" cm% = cm% - 40 nocone: END SUB SUB CRCHECK RESTORE 1 cr$ = UCASE$(cr$) FOR t = 1 TO 11 READ chcr$ IF chcr$ = cr$ THEN GOTO 501 NEXT t IF chcr$ = cr$ THEN GOTO 501 501 IF cr$ = "MUSHROOM" THEN RESTORE 2 IF cr$ = "PHASE BEING" THEN RESTORE 3 IF cr$ = "HUMAN" THEN RESTORE 4 IF cr$ = "DWARVE" THEN RESTORE 5 IF cr$ = "CENTAUR" THEN RESTORE 6 IF cr$ = "HOBBIT" THEN RESTORE 7 IF cr$ = "ELF" THEN RESTORE 8 IF cr$ = "SHADOWEN" THEN RESTORE 9 IF cr$ = "FERAL" THEN RESTORE 10 IF cr$ = "SHARIL" THEN RESTORE 11 IF cr$ = "SPAM" THEN RESTORE 12 END SUB SUB CREATURES IF ene% = 2 THEN RESTORE 1000 IF ene% = 3 THEN RESTORE 1001 IF ene% = 4 THEN RESTORE 1002 IF ene% = 5 THEN RESTORE 1003 IF ene% = 6 THEN RESTORE 1004 IF ene% = 7 THEN RESTORE 1005 IF ene% = 8 THEN RESTORE 1006 IF ene% = 9 THEN RESTORE 1007 IF ene% = 10 THEN RESTORE 1008 IF ene% = 11 THEN RESTORE 1009 IF ene% = 12 THEN RESTORE 1010 IF ene% = 13 THEN RESTORE 1011 IF ene% = 14 THEN RESTORE 1012 IF ene% = 15 THEN RESTORE 1013 IF ene% = 16 THEN RESTORE 1014 IF ene% = 17 THEN RESTORE 1015 IF ene% = 18 THEN RESTORE 1016 IF ene% = 19 THEN RESTORE 1017 IF ene% = 20 THEN RESTORE 1018 IF ene% = 21 THEN RESTORE 1019 IF ene% = 22 THEN RESTORE 1020 IF ene% = 23 THEN RESTORE 1021 IF ene% = 24 THEN RESTORE 1022 IF ene% = 25 THEN RESTORE 1023 IF ene% = 26 THEN RESTORE 1024 IF ene% = 27 THEN RESTORE 1025 IF ene% = 28 THEN RESTORE 1026 IF ene% = 29 THEN RESTORE 1027 creatend: END SUB SUB cure IF spelled(1) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nocure IF sk = 1 THEN GOTO sone IF cm% < 5 THEN PRINT "Not enough power left": GOTO nocure IF cm% < 0 THEN cm% = 0 sone: FOR r = 1 TO 30 IF ch = 0 THEN d = 15 IF ch = 1 THEN d = 2 IF ch = 1 THEN ch = 0 ELSE ch = 1 FOR t = 1 TO 5 CIRCLE (200, 150), c, d c = c + 1 NEXT t NEXT r c = 0 FOR r = 1 TO 30 IF ch = 0 THEN d = 15 IF ch = 1 THEN d = 0 IF ch = 1 THEN ch = 0 ELSE ch = 1 FOR t = 1 TO 5 CIRCLE (200, 150), c, d c = c + 1 NEXT t NEXT r c = 0 FOR r = 1 TO 30 IF ch = 0 THEN d = 0 IF ch = 1 THEN d = 0 IF ch = 1 THEN ch = 0 ELSE ch = 1 FOR t = 1 TO 5 CIRCLE (200, 150), c, d c = c + 1 NEXT t NEXT r IF sk = 1 THEN GOTO stwo cur% = (RND * 20) + clvl% + ci% PRINT "You regained"; cur%; "points of life" cp% = cp% + cur% cm% = cm% - 5 IF cp% > chp% THEN cp% = chp% po$ = "off" pois = 0 stwo: nocure: END SUB SUB cureit LOCATE 27, 5 PRINT "Your amulet glows and absorbs the poison." amcount = amcount - 1 po$ = "off" pois = 0 cp% = cp% + 5 IF amcount < 1 THEN PRINT "Your amulet uses its last ounce of magic and shatters": amulet = 0 DO WHILE INKEY$ = "" LOOP END SUB SUB DAMONHORD IF choose = 1 THEN GOTO DAMONHORDA IF choose = 2 THEN GOTO DAMONHORDB IF choose = 3 THEN GOTO DAMONHORDC IF choose = 4 THEN GOTO DAMONHORDD IF choose = 5 THEN GOTO DAMONHORDE IF choose = 6 THEN GOTO DAMONHORDF IF choose = 7 THEN GOTO DAMONHORDG IF choose = 8 THEN GOTO DAMONHORDH IF choose = 9 THEN GOTO DAMONHORDI IF choose = 10 THEN GOTO DAMONHORDJ DAMONHORDA: DAMONHORDB: DAMONHORDC: DAMONHORDD: DAMONHORDE: DAMONHORDF: DAMONHORDG: DAMONHORDH: DAMONHORDI: DAMONHORDJ: END SUB SUB DESERTHEART IF choose = 1 THEN GOTO DESERTHEARTA IF choose = 2 THEN GOTO DESERTHEARTB IF choose = 3 THEN GOTO DESERTHEARTC IF choose = 4 THEN GOTO DESERTHEARTD IF choose = 5 THEN GOTO DESERTHEARTE IF choose = 6 THEN GOTO DESERTHEARTF IF choose = 7 THEN GOTO DESERTHEARTG IF choose = 8 THEN GOTO DESERTHEARTH IF choose = 9 THEN GOTO DESERTHEARTI IF choose = 10 THEN GOTO DESERTHERATJ DESERTHEARTA: DESERTHEARTB: DESERTHEARTC: DESERTHEARTD: DESERTHEARTE: DESERTHEARTF: DESERTHEARTG: DESERTHEARTH: DESERTHEARTI: DESERTHERATJ: END SUB SUB DOMALAS IF choose = 1 THEN GOTO DOMALASA IF choose = 2 THEN GOTO DOMALASB IF choose = 3 THEN GOTO DOMALASC IF choose = 4 THEN GOTO DOMALASD IF choose = 5 THEN GOTO DOMALASE IF choose = 6 THEN GOTO DOMALASF IF choose = 7 THEN GOTO DOMALASG IF choose = 8 THEN GOTO DOMALASH IF choose = 9 THEN GOTO DOMALASI IF choose = 10 THEN GOTO DOMALASJ DOMALASA: DOMALASB: DOMALASC: DOMALASD: DOMALASE: DOMALASF: DOMALASG: DOMALASH: DOMALASI: DOMALASJ: END SUB SUB DRAGONHOLLOW IF choose = 1 THEN GOTO DRAGONHOLLOWA IF choose = 2 THEN GOTO DRAGONHOLLOWB IF choose = 3 THEN GOTO DRAGONHOLLOWC IF choose = 4 THEN GOTO DRAGONHOLLOWD IF choose = 5 THEN GOTO DRAGONHOLLOWE IF choose = 6 THEN GOTO DRAGONHOLLOWF IF choose = 7 THEN GOTO DRAGONHOLLOWG IF choose = 8 THEN GOTO DRAGONHOLLOWH IF choose = 9 THEN GOTO DRAGONHOLLOWI IF choose = 10 THEN GOTO DRAGONHOLLOWJ DRAGONHOLLOWA: DRAGONHOLLOWB: DRAGONHOLLOWC: DRAGONHOLLOWD: DRAGONHOLLOWE: DRAGONHOLLOWF: DRAGONHOLLOWG: DRAGONHOLLOWH: DRAGONHOLLOWI: DRAGONHOLLOWJ: END SUB SUB ender1 est: CLS INPUT "Would you like to play again"; game$ IF game$ = "y" THEN GOTO NEWGAME IF game$ = "n" THEN GOTO ENDGAME ELSE GOTO est ENDGAME: PRINT "Thank you for playing Dragon Knight" PRINT "If you like or dislike the game write to:" PRINT " Mushroom Entertainment" PRINT " 1648 Leon Drive" PRINT " Hatfield, PA 19440" PRINT "and tell me about it" PRINT " Copyright Mushroom Entertainment 1995" PRINT "Press any key to return to DOS" DO WHILE INKEY$ = "" LOOP SYSTEM NEWGAME: resetg = 1 END SUB SUB FELSGOR IF choose = 1 THEN GOTO FELSGORA IF choose = 2 THEN GOTO FELSGORB IF choose = 3 THEN GOTO FELSGORC IF choose = 4 THEN GOTO FELSGORD IF choose = 5 THEN GOTO FELSGORE IF choose = 6 THEN GOTO FELSGORF IF choose = 7 THEN GOTO FELSGORG IF choose = 8 THEN GOTO FELSGORH IF choose = 9 THEN GOTO FELSGORI IF choose = 10 THEN GOTO FELSGORJ FELSGORA: FELSGORB: FELSGORC: FELSGORD: FELSGORE: FELSGORF: FELSGORG: FELSGORH: FELSGORI: FELSGORJ: END SUB SUB fire IF spelled(2) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nofire IF cm% < 10 THEN PRINT "Not enough power left.": GOTO nofire IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO nofire x% = 2000 y% = 10 DO WHILE y% < 4000 x% = x% - 20 y% = y% + 20 LINE (0, 0)-(x%, y%), 4 FOR t = 1 TO 1: NEXT t LOOP c = clvl% - 5 IF c < 2 THEN c = 2 dmg% = ((RND * 35) + (ci% / c)) PRINT "You did"; dmg%; "points of damage" ehp% = ehp% - dmg% cm% = cm% - 10 nofire: END SUB SUB fstorm IF spelled(9) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nostorm IF cm% < 170 THEN PRINT "Not enough power left.": GOTO nostorm IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO nostorm e% = 0 a% = 0 DO WHILE a% < h% + 1 DO WHILE e% < 2000 x% = (RND * 600) y% = (RND * 500) d% = (RND * 5) CIRCLE (x%, y%), d%, 4 d% = d% + 1 e% = e% + 1 LOOP a% = a% + 1 LOOP dmg% = (RND * 10000) ehp% = ehp% - dmg% PRINT "You did"; dmg%; "points of damage" cm% = cm% - 170 nostorm: END SUB SUB GAIANTEMPLE IF choose = 1 THEN GOTO GAIANTEMPLEA IF choose = 2 THEN GOTO GAIANTEMPLEB IF choose = 3 THEN GOTO GAIANTEMPLEC IF choose = 4 THEN GOTO GAIANTEMPLED IF choose = 5 THEN GOTO GAIANTEMPLEE IF choose = 6 THEN GOTO GAIANTEMPLEF IF choose = 7 THEN GOTO GAIANTEMPLEG IF choose = 8 THEN GOTO GAIANTEMPLEH IF choose = 9 THEN GOTO GAIANTEMPLEI IF choose = 10 THEN GOTO GAIANTEMPLEJ GAIANTEMPLEA: GAIANTEMPLEB: GAIANTEMPLEC: GAIANTEMPLED: GAIANTEMPLEE: GAIANTEMPLEF: GAIANTEMPLEG: GAIANTEMPLEH: GAIANTEMPLEI: GAIANTEMPLEJ: END SUB SUB GANDOWL IF choose = 1 THEN GOTO GANDOWLA IF choose = 2 THEN GOTO GANDOWLB IF choose = 3 THEN GOTO GANDOWLC IF choose = 4 THEN GOTO GANDOWLD IF choose = 5 THEN GOTO GANDOWLE IF choose = 6 THEN GOTO GANDOWLF IF choose = 7 THEN GOTO GANDOWLG IF choose = 8 THEN GOTO GANDOWLH IF choose = 9 THEN GOTO GANDOWLI IF choose = 10 THEN GOTO GANDOWLJ GANDOWLA: GANDOWLB: GANDOWLC: GANDOWLD: GANDOWLE: GANDOWLF: GANDOWLG: GANDOWLH: GANDOWLI: GANDOWLJ: END SUB SUB getitem getitem: whatitem = INT(RND * 24) + 1 IF whatitem > 0 AND whatitem <= 5 THEN ite$ = "Healing Scent" IF whatitem > 5 AND whatitem <= 10 THEN ite$ = "Mage Pots" IF whatitem > 10 AND whatitem <= 15 THEN ite$ = "Anti-Poison" IF whatitem > 15 AND whatitem <= 20 THEN ite$ = "Green Potion" IF whatitem > 20 AND whatitem <= 23 THEN ite$ = "Insta-Tent" IF whatitem > 23 AND whatitem <= 24 THEN ite$ = "Purple Potion" IF whatitem > 24 AND whatitem <= 25 THEN ite$ = "Pearly Potion" healu: nu = INT(RND * 5) - 2 IF nu < 1 THEN nu = 1 FOR t = 1 TO itemnum IF inven$(t) = ite$ THEN invennum(t) = invennum(t) + nu: GOTO found NEXT t itemnum = itemnum + 1 inven$(itemnum) = ite$ invennum(itemnum) = invennum(itemnum) + nu found: PRINT "You found"; nu; ite$; "(s)" DO WHILE INKEY$ = "" LOOP END SUB SUB HAGENF chbattle = 0 IF choose = 1 THEN 10000 IF choose = 2 THEN 10001 IF choose = 3 THEN 10002 IF choose = 4 THEN 10002 IF choose = 5 THEN 10002 IF choose = 6 THEN 10002 IF choose = 7 THEN 10006 IF choose = 8 THEN 10007 IF choose = 9 THEN 10008 IF choose = 10 THEN 10009 10000 PRINT "You step into Hagen Fall's General Store" CALL armory GOTO 234 10001 PRINT "You re-enter Althes house to find he is mysteriouly gone" GOTO 234 10002 PRINT "The gaurds tell you that the gate is locked, you can't get" PRINT "out this way." GOTO 234 10006 IF talked = 1 THEN GOTO altalk IF magic = 1 THEN 10010 IF bag = 1 THEN GOTO mag PRINT "You enter this strange house and are greeted by a withered old man." PRINT "He begs you to sits says that Althes said to watch for you" PRINT "Man: I am Philan, a mage, and here to help you on your" PRINT "quest." PRINT "I can teach you to use magic like I can. But even though" PRINT "Althes says I can trust you to be worthy I must test you." PRINT PRINT "I need you to go into the depths of the sewers below this" PRINT "town and bring me an ingredient for the rituals to be" PRINT "performed. But beware, a fierce beast lurks there." PRINT "Take this bag and bring back a red plant called 'Blood Root'." PRINT PRINT "Philan hands you a bag and wishes you luck." talked = 1 GOTO 234 mag: PRINT "PHILAN: Ah, I see you are successful. Good." PRINT "Now if you'll follow me I will start the ritual." PRINT "He takes you into the back of his house wearing" PRINT "strange clothes you've never seen before. You are" PRINT "laid on a table and are knocked unconcious. When you wake" PRINT "you feel invigorated and flow with a strange power. Philan" PRINT "returns and tells you of his rites. He then tells you that you" PRINT "now have the ability to cast spells. You have a spell," PRINT "Breath of Gaia, that will cure your wounds in battle. You take this" PRINT "information and leave the house a little stunned." magic = 1 spelled(1) = 1 GOTO 234 10007 PRINT "You open the door of the tool shed and find the enterance to a sewer" INPUT "system. Do you enter (y/n)"; sew$ sew$ = LCASE$(sew$) IF sew$ = "y" THEN position = 2 ELSE position = 1 GOTO 234 10008 PRINT "You enter the Temple of Rhen to find the usual patients" PRINT "being treated by the High Clerics. A cleric walks over" PRINT "and asks if you would like a treatment." PRINT "1) A medical treatment costs 10 gold pieces" PRINT "2) A magical treatment costs 10 gold pieces" PRINT "3) A dual treatment costs 15 gold pieces" PRINT "4) No treatment thank you" INPUT "Select a choice"; rhen IF rhen = 1 THEN GOTO 10011 IF rhen = 2 THEN GOTO 10012 IF rhen = 3 THEN GOTO 10011: dual = 1: ELSE GOTO 234 GOTO 234 10009 PRINT "In the town square you hear the talks of demons" PRINT "stalking the woods out at the edge of town and that" PRINT "They won't let anyone out through the gates." GOTO 234 10010 PRINT "You are again greeted by the old man and sit down once again." PRINT "After telling about you adventure you bid" PRINT "fare well and are on your way" GOTO 234 altalk: PRINT "What are you waiting for go and get the root" PRINT "Time is growing shorter every day!" PRINT "Philan pushes you hurridly back through the door." GOTO 234 10011 cp% = chp% gold% = gold% - 10 po$ = "off" pois = 0 IF dual <> 1 THEN GOTO 234 10012 cm% = cmp% gold% = gold% - 10 IF dual = 1 THEN gold% = gold% + 5 dual = 0 234 END SUB SUB helmetch IF arm = 1 THEN GOTO hecheck IF ch$ = "Leather Cap" THEN mched% = ched% + 1 IF ch$ = "Face Mask" THEN mched% = ched% + 2 IF ch$ = "Face Guard" THEN mched% = ched% + 3 IF ch$ = "Iron Mask" THEN mched% = ched% + 4 IF ch$ = "Horned Helmet" THEN mched% = ched% + 5 GOTO endch hecheck: IF stit$(store%) = "Leather Cap" THEN mched% = ched% + 1 IF stit$(store%) = "Face Mask" THEN mched% = ched% + 2 IF stit$(store%) = "Face Guard" THEN mched% = ched% + 3 IF stit$(store%) = "Iron Mask" THEN mched% = ched% + 4 IF stit$(store%) = "Horned Helmet" THEN mched% = ched% + 5 endch: END SUB SUB HELP men: CLS CHDIR "c:\dknight" CLS LINE (10, 10)-(300, 10), 14 LINE (15, 15)-(295, 15), 14 LINE (10, 10)-(10, 400), 14 LINE (15, 15)-(15, 395), 14 LINE (15, 395)-(295, 395), 14 LINE (10, 400)-(300, 400), 14 LINE (300, 400)-(300, 10), 14 LINE (295, 395)-(295, 15), 14 LINE (15, 100)-(295, 100), 14 LINE (15, 105)-(295, 105), 14 LINE (15, 200)-(295, 200), 14 LINE (15, 205)-(295, 205), 14 LINE (15, 300)-(295, 300), 14 LINE (15, 305)-(295, 305), 14 LOCATE 2, 4 PRINT "Save Current Game:" LOCATE 8, 4 PRINT "Load Old Game:" LOCATE 14, 4 PRINT "Start a New Game:" LOCATE 21, 4 PRINT "Return to Game:" DO IF cur < 1 THEN cur = 1 IF cur > 4 THEN cur = 4 IF cur = 1 THEN lo = 2: pr$ = "Save Current Game:" IF cur = 2 THEN lo = 8: pr$ = "Load Old Game:" IF cur = 3 THEN lo = 14: pr$ = "Start a New Game:" IF cur = 4 THEN lo = 21: pr$ = "Return to Game:" LOCATE lo, 4 COLOR 15 PRINT pr$ COLOR 7 LOCATE lo, 4 PRINT pr$ SELECT CASE INKEY$ CASE CHR$(0) + "H" cur = cur - 1 CASE CHR$(0) + "P" cur = cur + 1 CASE CHR$(13) IF cur = 1 THEN GOTO save IF cur = 2 THEN GOTO load IF cur = 3 THEN GOTO helped IF cur = 4 THEN GOTO endhelp END SELECT LOOP save: COLOR 7 INPUT "What filename"; file$ DO UNTIL ov$ = "y" OR ov$ = "n" LOCATE 10, 4 INPUT "Save game(y/n)"; ov$ ov$ = LCASE$(ov$) LOOP IF ov$ = "n" THEN GOTO men saveit: OPEN file$ FOR OUTPUT AS #1 WRITE #1, cn$, cr$, catt%, cdef%, cshd%, card%, ched%, ci%, ce%, chp%, cmp%, gold%, cw$ WRITE #1, ch$, car$, csh$, cp%, cm%, clvl%, cexp&, position, magic, magiclvl WRITE #1, matt%, mched%, mcard%, mcshd%, mcdef%, po$, ssold%, asold% WRITE #1, hsold%, wsold%, crfrt$, tonext%, exit$, itemnum, sew, omtaled WRITE #1, amulet, charm, scabbard$, ring$, mirror$, gauntlets$, oldpos, newpos WRITE #1, amcount, book$ FOR t = 1 TO itemnum WRITE #1, inven$(t), invennum(t), healvalue(t) NEXT t FOR t = 1 TO 11 WRITE #1, spelled(t) NEXT t CLOSE #1 GOTO men load: ov$ = "" INPUT "What filename"; file$ DO UNTIL ov$ = "y" OR ov$ = "n" LOCATE 11, 4 INPUT "Load Game(y/n):", ov$ ov$ = LCASE$(ov$) LOOP IF ov$ = "n" THEN GOTO men ON ERROR GOTO checkfile CALL restartgame OPEN file$ FOR INPUT AS #1 IF er = 1 THEN er = 0: GOTO men INPUT #1, cn$, cr$, catt%, cdef%, cshd%, card%, ched%, ci%, ce%, chp%, cmp%, gold%, cw$ INPUT #1, ch$, car$, csh$, cp%, cm%, clvl%, cexp&, position, magic, magiclvl INPUT #1, matt%, mched%, mcard%, mcshd%, mcdef%, po$, ssold%, asold% INPUT #1, hsold%, wsold%, crfrt$, tonext%, exit$, itemnum, sew, omtaled INPUT #1, amulet, charm, scabbard$, ring$, mirror$, gauntlets$, oldpos, newpos INPUT #1, amcount, book$ FOR t = 1 TO itemnum INPUT #1, inven$(t), invennum(t), healvalue(t) NEXT t FOR t = 1 TO 11 INPUT #1, spelled(t) NEXT t CLOSE #1 ON ERROR GOTO 0 GOTO men helped: INPUT "Are you sure"; sa$ sa$ = LCASE$(sa$) IF sa$ = "y" THEN GOTO n ELSE GOTO men n: resetg = 1 endhelp: END SUB SUB iceflash IF spelled(10) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO noice IF cm% < 200 THEN PRINT "Not enough power left.": GOTO noice IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO noice e% = 0 PAINT (1, 1), 9 DO WHILE e% < 200 f% = (RND * 600) g% = (RND * 500) h% = (RND * 100) CIRCLE (f%, g%), h%, 11 PAINT (f%, g%), 11 e% = e% + 1 LOOP dmg% = (RND * 20000) ehp% = ehp% - dmg% PRINT "You did"; dmg%; "points of damage" cm% = cm% - 200 noice: END SUB SUB INTROTEXT INPUT "What name shall you use"; cn$ CLS PRINT "'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" PRINT "' Dragon Knight Part 1: '" PRINT "' The Raising of the Sun Star '" PRINT "' Copyright 1995 Mushroom Entertainment '" PRINT "' '" PRINT "' D.N.P.1.T.R.o.t.S.S. is a 1-player RPG involving the raising of a '" PRINT "' ledgendary power to stop an unspeakable evil (It's so unspeakable that you'" PRINT "' have to play the game to find out). Most of the controls are selfexplained'" PRINT "' but remember that you can exit without saving by pressing Ctrl-Break. '" PRINT "' Press any key to continue '" PRINT "' '" PRINT "'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''" DO UNTIL inr$ = "y" OR inr$ = "n" INPUT "Do you want the intro"; inr$ inr$ = LCASE$(inr$) LOOP IF inr$ = "n" THEN GOTO introtextend PRINT "You were set out in the world at a young age." PRINT "You never knew your mother or father." PRINT "Your family heritage was allways a mystery to you." PRINT "Sometimes, strange dreams would come to you;" PRINT "Dreams of dragons and fierce warriors." PRINT "Now, at the age of 15, the dreams have become more" PRINT "common and more frightening to you." PRINT PRINT "Then one day, while chopping wood for your fire," PRINT "a strange man approaches you." PRINT DO WHILE INKEY$ = "" LOOP PRINT cn$; ": Who are you?" PRINT "STRANGE MAN: A friend here to help you" DO WHILE INKEY$ = "" LOOP PRINT cn$; ": And why should I trust you" PRINT "STRANGE MAN: Because I know of you, "; cn$ DO WHILE INKEY$ = "" LOOP PRINT cn$; ": How did you know my name?" PRINT "STRANGE MAN: I know many things" DO WHILE INKEY$ = "" LOOP PRINT cn$; ": Then what is your name?" PRINT "STRANGE MAN: Althes, I knew your parents" DO WHILE INKEY$ = "" LOOP PRINT cn$; ": My parents, what of them, they abandoned me" PRINT "ALTHES: Would you rather be dead?" DO WHILE INKEY$ = "" LOOP PRINT cn$; ": Die, why would I have died" PRINT "ALTHES: Because ..they.. knew of you" DO WHILE INKEY$ = "" LOOP PRINT cn$; ": Who? Who knew of me?" PRINT "ALTHES: The dark ones, the plague of the land" DO WHILE INKEY$ = "" LOOP PRINT "STRANGE VOICE: Enough old man, you've said too much" PRINT cn$; ": Who is there?" DO WHILE INKEY$ = "" LOOP PRINT "STRANGE VOICE: Your DOOM!!" PRINT "ALTHES: RUN "; cn$; "!!!" PRINT "A battle ensues behind you as you run into the darkness" PRINT "An hour later Althes catches up with you and" PRINT "leads you to a house in the town of Hagen Falls." introtextend: CALL character END SUB SUB itemch FOR t = 1 TO itemnum IF inven$(t) = "Healing Scent" THEN RESTORE 49: READ healvalue(t), itemtype(t) IF inven$(t) = "Mage Pots" THEN RESTORE 50: READ healvalue(t), itemtype(t) IF inven$(t) = "Green Potion" THEN RESTORE 51: READ healvalue(t), itemtype(t) IF inven$(t) = "Insta-Tent" THEN RESTORE 52: READ itemtype(t) IF inven$(t) = "Anti-Poison" THEN RESTORE 53: READ healvalue(t), itemtype(t) IF inven$(t) = "Purple Potion" THEN RESTORE 54: READ itemtype(t) IF inven$(t) = "Pearly Potion" THEN RESTORE 55: READ itemtype(t) NEXT t END SUB SUB items en: CALL itemch CLS LINE (150, 10)-(450, 10), 14 LINE (150, 10)-(150, 415), 14 LINE (450, 10)-(450, 415), 14 LINE (150, 415)-(450, 415), 14 LINE (155, 15)-(445, 15), 14 LINE (155, 15)-(155, 410), 14 LINE (445, 15)-(445, 410), 14 LINE (155, 410)-(445, 410), 14 LINE (150, 10)-(1, 10), 14 LINE (150, 15)-(6, 15), 14 LINE (6, 15)-(6, 80), 14 LINE (1, 10)-(1, 85), 14 LINE (1, 85)-(150, 85), 14 LINE (6, 80)-(150, 80), 14 FOR t = 1 TO itemnum LOCATE 1 + t, 25 PRINT inven$(t), invennum(t) NEXT t LOCATE 2, 4 PRINT " 1) Use Item" LOCATE 3, 4 PRINT " 2) Drop Item" LOCATE 4, 4 PRINT " 3) Return" LOCATE 5, 3 INPUT "Make selection:", it IF it < 1 THEN GOTO en IF it = 1 THEN GOTO itemselect IF it = 2 THEN GOTO dropitem ELSE GOTO enditems cur = 1 itemselect: IF itemnum = 0 THEN GOTO noitem DO IF cur < 1 THEN cur = 1 IF cur > 30 THEN cur = 30 IF cur > itemnum THEN cur = itemnum LOCATE 1 + cur, 22 PRINT "->" LOCATE 1 + cur, 25 COLOR 15 PRINT inven$(cur), invennum(cur) COLOR 7 COLOR 0 LOCATE 1 + cur, 22 PRINT "->" LOCATE 1 + cur, 25 COLOR 7 PRINT inven$(cur), invennum(cur) SELECT CASE INKEY$ CASE CHR$(0) + "H" cur = cur - 1 CASE CHR$(0) + "P" cur = cur + 1 CASE "q", CHR$(23) GOTO en CASE CHR$(13) IF dropit = 1 THEN invennum(cur) = invennum(cur) - 1: IF invennum(cur) < 1 THEN GOTO eraseit: GOTO useit END SELECT LOOP useit: '1 = healing '2 = magic '3 = poison '4 = anti-poison '5 = strange LOCATE 27, 1 IF itemtype(cur) = 1 THEN GOTO healers IF itemtype(cur) = 2 THEN GOTO magicup IF itemtype(cur) = 3 THEN GOTO poison IF itemtype(cur) = 4 THEN GOTO antipoison IF itemtype(cur) > 4 THEN GOTO strange healers: PRINT "Ahh, your body feels much better." SLEEP invennum(cur) = invennum(cur) - 1 cp% = cp% + healvalue(cur) IF cp% > chp% THEN cp% = chp% IF invennum(cur) < 1 THEN GOTO eraseit GOTO en magicup: PRINT "You feel your mind release its burden." SLEEP invennum(cur) = invennum(cur) - 1 cm% = cm% + healvalue(cur) IF cm% > cmp% THEN cm% = cmp% IF invennum(cur) < 1 THEN GOTO eraseit GOTO en poison: PRINT "You realize that was a horrid mistake!" PRINT "The poison enters your body quickly." SLEEP invennum(cur) = invennum(cur) - 1 cp% = cp% - healvalue(cur) po$ = "on" pois = 1 IF invennum(cur) < 1 THEN GOTO eraseit GOTO en antipoison: PRINT "The traces of poison has been flushed" PRINT "from your body." SLEEP invennum(cur) = invennum(cur) - 1 cp% = cp% + healvalue(cur) po$ = "off" pois = 0 IF cp% > chp% THEN cp% = chp% IF invennum(cur) < 1 THEN GOTO eraseit GOTO en strange: IF itemtype(cur) = 5 THEN GOTO tent IF itemtype(cur) = 6 THEN GOTO elix IF itemtype(cur) = 7 THEN GOTO upit IF itemtype(cur) = 8 THEN CALL slashatt elix: PRINT "Your body and mind equalize" invennum(cur) = invennum(cur) - 1 cp% = chp% cm% = cmp% IF invennum(cur) < 1 THEN GOTO eraseit GOTO en tent: IF ib$ = "on" THEN PRINT "Can't use in battle": GOTO en PRINT "The Port-A-Tent instantly unfolds and you" PRINT "settle into bed." cm% = cmp% cp% = chp% invennum(cur) = invennum(cur) - 1 IF invennum(cur) < 1 THEN GOTO eraseit GOTO en upit: PRINT "The liquid tingles as your chug it." u = INT(RND * 5) + 1 IF u = 1 THEN GOTO eup IF u = 2 THEN GOTO aup IF u = 3 THEN GOTO dup IF u = 4 THEN GOTO iup IF u = 5 THEN GOTO hup IF u = 6 THEN GOTO mup eup: uce% = INT(ce% / 5) PRINT "Incredible, your endurance went up"; uce%; " points" ce% = ce% + uce% GOTO ch aup: ucatt% = INT(catt% / 4) PRINT "Incredible, your attack went up"; ucatt%; " points" catt% = catt% + ucatt% GOTO ch dup: ucdef% = INT(cdef% / 4) PRINT "Incredible, your defense went up"; ucdef%; " points" cdef% = cdef% + ucdef% GOTO ch iup: uci% = INT(ci% / 3) PRINT "Incredible, your intelligence went up"; uci%; " points" ci% = ci% + uci% GOTO ch hup: uchp% = INT(chp% / 10) * clvl% PRINT "Incredible, your hit point total went up"; uchp%; " points" chp% = chp% + uchp% GOTO ch mup: ucmp% = INT(cmp% / 10) * clvl% PRINT "Incredible, your magic total went up"; ucmp%; "points" cmp% = cmp% + ucmp% GOTO ch ch: DO WHILE INKEY$ = "" LOOP invennum(cur) = invennum(cur) - 1 IF invennum(cur) < 1 THEN GOTO eraseit GOTO en eraseit: FOR t = cur + 1 TO itemnum inven$(t - 1) = inven$(t) invennum(t - 1) = invennum(t) healvalue(t - 1) = healvalue(t) itemtype(t - 1) = itemtype(t - 1) NEXT t itemnum = itemnum - 1 GOTO en dropitem: dropit = 1 GOTO itemselect noitem: LOCATE 15, 2 PRINT "NO ITEMS!!" GOTO en enditems: IF ib$ = "out" THEN CALL statusscr END SUB SUB magicb CLS CIRCLE (300, 440), 20, 6, 3, 6.1, .3 LINE (280, 440)-(280, 430), 6 LINE (320, 440)-(320, 430), 6 LINE (280, 430)-(10, 450), 6 LINE (320, 430)-(590, 450), 6 LINE (590, 450)-(590, 50), 6 LINE (10, 450)-(10, 50), 6 LINE (10, 50)-(280, 30), 6 LINE (590, 50)-(320, 30), 6 LINE (320, 30)-(320, 40), 6 LINE (280, 30)-(280, 40), 6 LINE (280, 40)-(320, 40), 6 PAINT (100, 100), 6 LINE (300, 30)-(300, 430), 7 CIRCLE (590, 450), 40, 14, 1.58, 3.07 LINE (590, 450)-(590, 410), 14 LINE (590, 450)-(550, 447), 14 PAINT (589, 440), 14 CIRCLE (10, 450), 40, 14, .1, 1.58 LINE (10, 450)-(10, 410), 14 LINE (10, 450)-(50, 447), 14 PAINT (11, 440), 14 CIRCLE (10, 50), 40, 14, 4.7, .08 LINE (10, 50)-(50, 46), 14 LINE (10, 50)-(10, 90), 14 PAINT (11, 51), 14 CIRCLE (590, 50), 40, 14, 3.06, 4.7 LINE (590, 50)-(550, 46), 14 LINE (590, 50)-(590, 90), 14 PAINT (589, 51), 14 'left side CIRCLE (225, 33), 75, 7, 0, 2.3, .2 CIRCLE (111, 6), 100, 7, 3.7, 5.4, .2 LINE (25, 16)-(25, 416), 7 CIRCLE (225, 433), 75, 7, 0, 2.3, .2 CIRCLE (111, 406), 100, 7, 3.7, 5.4, .2 PAINT (200, 200), 15, 7 FOR t = 1 TO 10 STEP 2 CIRCLE (225, 433 + t), 75, 15, 0, 2.3, .2 CIRCLE (111, 406 + t), 100, 15, 3.7, 5.4, .2 CIRCLE (225, 434 + t), 75, 7, 0, 2.3, .2 CIRCLE (111, 407 + t), 100, 7, 3.7, 5.4, .2 NEXT t 'right side CIRCLE (374, 33), 75, 7, .7, 3, .2 CIRCLE (480, 6), 100, 7, 4.21, 5.7, .2 LINE (565, 16)-(565, 416), 7 CIRCLE (374, 433), 75, 7, .7, 3, .2 CIRCLE (480, 406), 100, 7, 4.21, 5.7, .2 PAINT (400, 400), 15, 7 FOR t = 1 TO 10 STEP 2 CIRCLE (374, 433 + t), 75, 15, .7, 3, .2 CIRCLE (480, 406 + t), 100, 15, 4.21, 5.7, .2 CIRCLE (374, 434 + t), 75, 7, .7, 3, .2 CIRCLE (480, 407 + t), 100, 7, 4.21, 5.7, .2 NEXT t IF spelled(1) = 1 THEN LOCATE 4, 10: PRINT "Breath of Gaia" IF spelled(2) = 1 THEN LOCATE 6, 10: PRINT "Aneant's Wrath" IF spelled(3) = 1 THEN LOCATE 8, 10: PRINT "Opened Sky" IF spelled(4) = 1 THEN LOCATE 10, 10: PRINT "Pure Heart" IF spelled(5) = 1 THEN LOCATE 12, 10: PRINT "Winter's Fate" IF spelled(6) = 1 THEN LOCATE 14, 10: PRINT "Lyre's Nightmare" IF spelled(7) = 1 THEN LOCATE 16, 10: PRINT "Illumini's Rage" IF spelled(8) = 1 THEN LOCATE 18, 10: PRINT "Life Net" IF spelled(9) = 1 THEN LOCATE 20, 10: PRINT "Hell's Gate" IF spelled(10) = 1 THEN LOCATE 22, 10: PRINT "Santa's Revenge" IF spelled(11) = 1 THEN LOCATE 24, 10: PRINT "Star Rain" LOCATE 26, 10 PRINT "Return" DO IF cur < 4 THEN cur = 4 IF cur > 26 THEN cur = 26 IF cur = 26 THEN GOTO skipspch IF spelled((cur - 2) / 2) = 1 THEN COLOR 14 ELSE COLOR 4 skipspch: LOCATE cur, 6 PRINT "==>" COLOR 15 LOCATE cur, 6 PRINT "ллл" COLOR 7 SELECT CASE INKEY$ CASE CHR$(0) + "H" cur = cur - 2 CASE CHR$(0) + "P" cur = cur + 2 CASE CHR$(13) IF re = 1 THEN GOTO staten GOTO chspel END SELECT LOOP chspel: CLS IF cur = 4 THEN CALL cure IF cur = 6 THEN CALL fire IF cur = 8 THEN CALL bolt IF cur = 10 THEN CALL aura IF cur = 12 THEN CALL cone IF cur = 14 THEN CALL soundb IF cur = 16 THEN CALL astrike IF cur = 18 THEN CALL rshackles IF cur = 20 THEN CALL fstorm IF cur = 22 THEN CALL iceflash IF cur = 24 THEN CALL starrain IF cur = 26 THEN GOTO staten LOCATE 27, 5 staten: END SUB SUB MAINCREATURE IF main = 1 THEN RESTORE 1100 IF main = 2 THEN RESTORE 1101 IF main = 3 THEN RESTORE 1102 IF main = 4 THEN RESTORE 1002 IF main = 5 THEN RESTORE 1003 IF main = 6 THEN RESTORE 1004 IF main = 7 THEN RESTORE 1005 IF main = 8 THEN RESTORE 1006 IF main = 9 THEN RESTORE 1007 IF main = 10 THEN RESTORE 1008 IF main = 11 THEN RESTORE 1009 IF main = 12 THEN RESTORE 1010 IF main = 13 THEN RESTORE 1011 IF main = 14 THEN RESTORE 1012 IF main = 15 THEN RESTORE 1013 IF main = 16 THEN RESTORE 1014 IF main = 17 THEN RESTORE 1015 IF main = 18 THEN RESTORE 1016 IF main = 19 THEN RESTORE 1017 IF main = 20 THEN RESTORE 1018 IF main = 21 THEN RESTORE 1019 creaternd: ene% = 0 main = 0 END SUB SUB MERINSACAB IF choose = 1 THEN GOTO MERINSACABA IF choose = 2 THEN GOTO MERINSACABB IF choose = 3 THEN GOTO MERINSACABC IF choose = 4 THEN GOTO MERINSACABD IF choose = 5 THEN GOTO MERINSACABE IF choose = 6 THEN GOTO MERINSACABF IF choose = 7 THEN GOTO MERINSACABG IF choose = 8 THEN GOTO MERINSACABH IF choose = 9 THEN GOTO MERINSACABI IF choose = 10 THEN GOTO MERINSACABJ MERINSACABA: MERINSACABB: MERINSACABC: MERINSACABD: MERINSACABE: PRINT "You start on the North Road" reached = 0 newpos = 3 oldpos = 10 position = 100 MERINSACABF: MERINSACABG: MERINSACABH: MERINSACABI: MERINSACABJ: END SUB SUB NOBWY IF choose = 1 THEN GOTO NOBWYA IF choose = 2 THEN GOTO NOBWYB IF choose = 3 THEN GOTO NOBWYC IF choose = 4 THEN GOTO NOBWYD IF choose = 5 THEN GOTO NOBWYE IF choose = 6 THEN GOTO NOBWYF IF choose = 7 THEN GOTO NOBWYG IF choose = 8 THEN GOTO NOBWYH IF choose = 9 THEN GOTO NOBWYI IF choose = 10 THEN GOTO NOBWYJ NOBWYA: NOBWYB: NOBWYC: NOBWYD: NOBWYE: NOBWYF: NOBWYG: NOBWYH: NOBWYI: NOBWYJ: END SUB SUB OMRISR chbattle = 0 IF choose = 1 THEN GOTO OMISRA IF choose = 2 THEN GOTO OMISRB IF choose = 3 THEN GOTO OMISRC IF choose = 4 THEN GOTO OMISRD IF choose = 5 THEN GOTO OMISRE IF choose = 6 THEN GOTO OMISRF IF choose = 7 THEN GOTO OMISRG IF choose = 8 THEN GOTO OMISRH IF choose = 9 THEN GOTO OMISRI IF choose = 10 THEN GOTO OMISRJ OMISRA: IF omtaled = 0 THEN GOTO locked PRINT "You step in the palace and are greeted warmly by" PRINT "Aneant. He asks of your travels and is satisfied" PRINT "by your reply. You show him some tricks you've" PRINT "learned and tell some stories." PRINT INPUT "ANEANT: Have you learned the secret to real magic."; qe$ qe$ = LCASE$(qe$) IF qe$ = "y" THEN GOTO yesk ELSE GOTO nok nok: PRINT "ANEANT: Maybe some other time then, take care" PRINT "Press any key to continue" SLEEP GOTO 334 yesk: INPUT "ANEANT: Well then what is the secret?"; sec$ sec$ = LCASE$(sec$) IF sec$ = "balance of soul" THEN GOTO powk ELSE GOTO wrongk wrongk: PRINT "ANEANT: No that's not right. Come back when you know it." PRINT "Press any key to continue" SLEEP GOTO 334 powk: PRINT "ANEANT: That is exactly correct. You've done your homework" PRINT " Now for knowing that I shall trust you with a devastating" PRINT " power. The power of Star Rain." PRINT "Aneant glows and lifts off the ground as he transfers pure" PRINT "destructive power from his mind to yours." PRINT "ANEANT: Now use this wisely, it not only injures the enemy" PRINT " but you as well." PRINT PRINT "Press any key to continue" SLEEP spelled(11) = 1 GOTO 334 OMISRB: IF sk = 1 THEN GOTO omtal CLS PRINT "As you enter the city square a large crowd of people" PRINT "swarm around you. You hear a voice over the crowd trying" PRINT "to reach you. Then you stare in half shock as a small, winged" PRINT "human breaks through the crowd. He pushes the people and begs" PRINT "them to be quiet." PRINT "FAERIE: How did you get here?" PRINT cn$; ": Through the sewers, why?" PRINT "FAERIE: The sewers had been overrun by a monster!" PRINT cn$; ": If it was the octopus then its all settled" PRINT "FAERIE: I don't understand. Are you saying you killed it?" PRINT cn$; "Yes, but you don't seem assured." PRINT "FAERIE: We need to talk. My name is Aneant." PRINT cn$; ": What are you?" PRINT "ANEANT: I am an earth spirit. A servant of Gaia." PRINT "ANEANT: Now please can we talk?" PRINT PRINT "Press a key to continue" DO WHILE INKEY$ = "" LOOP CLS PRINT "Aneant takes you into the giant palace you saw when" PRINT "you first entered the city. It is totally made of stone," PRINT "even the door hinges. Aneant flies over and sits on" PRINT "one of the many alters in the central chamber." PRINT PRINT "ANEANT: What is your name warrior?" PRINT cn$; ": "; cn$; ", sir" PRINT "ANEANT: Why did you leave Hagen Falls?" PRINT cn$; ": I guess I'm on some type of quest." PRINT "ANEANT: A quest you say? What do you hope to accomplish?" PRINT cn$; ": One thing is to find out what happened to my parents." PRINT "ANEANT: And the other?" PRINT cn$; ": To rid the world of the plague." PRINT "ANEANT: The plague? I believe you've lost me." PRINT cn$; ": You know the enemies of Gaia." PRINT "ANEANT: Gaia has many enemies. How can one person hope" PRINT " to accomplish that all alone?" PRINT cn$; ": I will do what is neccessary to meet my goals." PRINT PRINT "Before Aneant can reply a peasent rushes in screaming" PRINT "that one of the nobles has fallen into a deep slumber." PRINT "PEASENT: Nothing wakes him! He just fell! Help him!" PRINT PRINT "Press any key" DO WHILE INKEY$ = "" LOOP PRINT "You step into the circle of people surrounding the" PRINT "fallen noble. Aneant flies over him and frowns." PRINT "ANEANT: He has been touched by the plague of monsters." PRINT " I can't help him. I'm sorry." PRINT cn$; ": Wait. Let me try." PRINT "ANEANT: OK, Go and try your best." PRINT cn$; ": BE HEALED BY GAIA!" SLEEP sk = 1 cm% = cm% + 5 CALL cure SLEEP CLS PRINT "Using the magic taught to you by Philan you push the" PRINT "plague from the noble's body. The peasants and Aneant" PRINT "watch with wonder as you help the noble off the ground." PRINT "You hand the noble to one of the peasants and walk back" PRINT "to Aneant." PRINT "ANEANT: You can use magic? I never would've guessed." PRINT cn$; ": Yes, but I'm not skilled at it." PRINT "ANEANT: So? Not everyone can even use magic." PRINT cn$; ": Can you?" PRINT "ANEANT: Well, yes, in a way. I was born with it." PRINT " But I can still teach it to others. I'm sure you're" PRINT "interested in learning more. Right? Thought so. Follow me." PRINT PRINT "Aneant takes you into a secret part of the temple" PRINT "into a room lined wall to wall with books. He examines" PRINT "you to see how skilled you are. Then walks over and" PRINT "retreives a book from the wall. He starts an envocation" PRINT "an you start glowing with a red aura." PRINT "ANEANT: Here, this spell will open the ground and let you" PRINT " burn your enemies with the fire of the earth." PRINT cn$; ": Thank you." PRINT "ANEANT: Feel free to explore the town." PRINT "Press any key to continue" SLEEP spelled(2) = 1 omtaled = 1 GOTO 334 OMISRC: IF mertalk = 1 THEN GOTO mertalked CLS PRINT "You step into this strange shop of curious nature" PRINT "and smell strange incense and other wonderous odors." PRINT "A small man comes out from his desk and greets you with" PRINT "an almost toothless smile." PRINT "MAN: Hello, adventurer. Haven't seen the likes of you" PRINT " here before. What brings ye' to my shop." PRINT cn$; ": The sign on the door intrigued me to look." PRINT "MAN: Well for what ever. My name is Merlon. I sell some" PRINT " exotics that you may be interested in." PRINT cn$; ": Like what? Weapons, armor, souveniers?" PRINT "MERLON: For the most part. Except I don't sell souveneirs." PRINT cn$; ": Well, I'm interested. What do you have." PRINT PRINT "Press any key to continue" SLEEP mertalk = 1 itembuy(1) = 10 itembuy(2) = 10 itembuy(3) = 1 itembuy(4) = 1 itembuy(5) = 1 mertalked: CLS PRINT "MERLON: Come and look, this is what I have today." PRINT "# ITEM PRICE DECRIPTION" PRINT IF itembuy(1) = 0 THEN GOTO bone PRINT "1 Life Charms 100 gold Ressurects you once "; itembuy(1); "Left" bone: IF itembuy(2) = 0 THEN GOTO btwo PRINT "2 Gold Amulet 65 gold Cures poison 5 times"; itembuy(2); "Left" btwo: IF itembuy(3) = 0 THEN GOTO bthree PRINT "3 Ruby Scabbard 800 gold Allows for ENERGY ATTACK" bthree: IF itembuy(4) = 0 THEN GOTO bfour PRINT "4 Ring of Life 450 gold When activated 1 MP = 5 HP" bfour: IF itembuy(5) = 0 THEN GOTO bfive PRINT "5 Black Mirror 1000 gold 25 MP reflects next enemy attack" bfive: PRINT "6 Nothing now, thank you", gold% INPUT "Which choice"; bch IF bch = 6 THEN GOTO leavestore IF bch = 1 THEN GOTO ccharm IF bch = 2 THEN GOTO camulet IF bch = 3 THEN GOTO scab IF bch = 4 THEN GOTO ring IF bch = 5 THEN GOTO mirr leavestore: GOTO 334 ccharm: IF gold% < 100 THEN GOTO notmoney IF itembuy(1) < 1 THEN GOTO noleft itembuy(1) = itembuy(1) - 1 gold% = gold% - 100 charm = charm + 1 PRINT "MERLON: Here, a charm for life." PRINT PRINT "Press any key to continue" SLEEP GOTO 334 camulet: IF amulet > 0 THEN GOTO have IF gold% < 65 THEN GOTO notmoney IF itembuy(2) < 1 THEN GOTO noleft itembuy(2) = itembuy(2) - 1 gold% = gold% - 65 amulet = amulet + 1 amcount = 5 PRINT "MERLON: Here, an amulet for purity." PRINT PRINT "Press any key to continue" SLEEP GOTO 334 scab: IF gold% < 800 THEN GOTO notmoney IF itembuy(3) < 1 THEN GOTO noleft itembuy(3) = itembuy(3) - 1 gold% = gold% - 800 PRINT "MERLON: Here, I hear the scabbard has special power" PRINT PRINT "Press any key to continue" SLEEP scabbard$ = "yes" GOTO 334 ring: IF gold% < 450 THEN GOTO notmoney IF itembuy(4) < 1 THEN GOTO noleft itembuy(4) = itembuy(4) - 1 gold% = gold% - 450 PRINT "MERLON: Here, this ring can heal you if you have inner peace." PRINT PRINT "Press any key to continue" SLEEP ring$ = "yes" GOTO 334 mirr: IF gold% < 1000 THEN GOTO notmoney IF itembuy(5) < 1 THEN GOTO noleft itembuy(5) = itembuy(5) - 1 gold% = gold% - 1000 PRINT "MERLON: Ah, this mirror can trick the enemy to destroy itself." PRINT PRINT "Press any key to continue" SLEEP mirror$ = "yes" GOTO 334 notmoney: PRINT "I'm sorry, you don't have enough money for that" PRINT PRINT "Press any key to continue" SLEEP noleft: PRINT "I'm afraid I don't have any more of that item." PRINT PRINT "Press any key to continue" SLEEP GOTO 334 OMISRD: PRINT "You step into Omr'Isr's store" CALL armory GOTO 334 OMISRE: PRINT "You walk over to the mysterious statue." PRINT "A warrior holding a curious sword." PRINT "You read the worn gold plaque at the bottom" PRINT "I cannot die for I'll always live again." PRINT "My powers can sear flesh or mend it." PRINT "What am I?" INPUT ph$ ph$ = LCASE$(ph$) IF ph$ = "pheonix" THEN GOTO ke ELSE 334 ke: PRINT "The plaque slides from the statue." PRINT "Left is a small key hole." IF jkey$ = "yes" THEN GOTO fit ELSE GOTO 334 fit: PRINT "You slide the key into the slot and twist." PRINT "There is a crackling of energy and the statue" PRINT "becomes animated." PRINT "STATUE: Prepare to be tested warrior." PRINT "The statue raises the sword." GOTO 334 OMISRF: PRINT "You enter the tomb to see an altar lit with candles." PRINT "Closed books line the walls." PRINT "A worker walks over to you." PRINT cn$; ": What are all these books for?" PRINT "WORKER: Omr was a scolar. He founded this town." IF book$ = "yes" THEN tex$ = ": Here maybe this book will help add to his collection" IF book$ <> "yes" THEN tex$ = ": I wish I could add to his cause." PRINT cn$; tex$ IF book$ = "yes" THEN GOTO omspirit ELSE GOTO 334 omspirit: IF spelled(3) = 1 THEN GOTO noth PRINT "WORKER??: Where did you get this book?" PRINT cn$; ": From a wishing well in Cammendale." PRINT "WORKER??: I hae been searching for ages." PRINT cn$; ": Who are you?" PRINT "????????: I am the spirit of Omr'Isr, and now that I have this book" PRINT " Thank you mortal! Now you can perish! Ha Ha Ha.... " PRINT PRINT "The candles flare and the worker grows to reach the ceiling." main = 3 hpp = ce% / 5 dfp = mcdef% / 5 atp = mcatt% / 5 CALL battle book$ = "used" PRINT "NOOOO......I CAN'T BE DESTROYED....I WAS SO CLOSE....." PRINT PRINT "A silence fills the tomb." PRINT PRINT "CALM VOICE: Thank you. You have rid my spirit of that plague." PRINT cn$; ": Who are you?" PRINT "CALM VOICE: I am the true spirit of Omr'Isr." PRINT " Now that the plague is gone I can sleep." PRINT "OMR'ISR: But you shall be rewarded, my friend." PRINT " This spell will jolt your enemies." spelled(3) = 1 PRINT "OMR'ISR: Once again... Thank you." PRINT GOTO 334 noth: PRINT "You step into the empty tomb." PRINT "You feel at peace for only a moment" GOTO 334 OMISRG: INPUT "Do you wish to enter the sewers(y/n)"; sew$ sew$ = LCASE$(sew$) IF sew$ = "y" THEN position = 2: PRINT "You step back into the sewers": GOTO 334 GOTO 334 OMISRH: PRINT "You enter the wilderness on the South Road" newpos = 10 oldpos = 3 position = 100 reached = 0 GOTO 334 OMISRI: PRINT "You start out into the wilderness on the East Road" oldpos = 3 newpos = 5 position = 100 reached = 0 GOTO 334 OMISRJ: PRINT "You enter the Gaurd Office." PRINT "Three large men are sitting in the room" PRINT "One looks at you and gets up." PRINT "MAN: You be the lad that saved the noble, right?" PRINT "MAN: Here, taste me special brew." PRINT "You chug the thick liquid and feel restored" cp% = chp% PRINT "MAN: Now becareful of the beasts and don't" PRINT " drink every thing ya' see." GOTO 334 omtal: PRINT "You re-enter the city square and talk to some of the" PRINT "peasants in the area. They thank you for saving the" PRINT "noble earlier. They warn you that once you leave the town" PRINT "you will be attacked by beasts. One peasant says the" PRINT "South Road will take you into a dead plain. And the" PRINT "East Road will take you to one of the Emperor's fortresses." GOTO 334 locked: PRINT "The doors to this massive palace are locked" PRINT "by a massive stone brace. After some searching" PRINT "you find no other way in." GOTO 334 have: PRINT "I'm sorry but you already have one of those" 334 END SUB SUB playdrag 115 mcdef% = mched% + mcard% + mcshd% PRINT "Press any key to continue" DO WHILE INKEY$ = "" LOOP IF resetg = 1 THEN GOTO newgamer CLS CALL weaponch LINE (10, 10)-(615, 10), 14 LINE (10, 10)-(10, 415), 14 LINE (615, 10)-(615, 415), 14 LINE (10, 415)-(615, 415), 14 LINE (15, 15)-(610, 15), 14 LINE (15, 15)-(15, 410), 14 LINE (610, 15)-(610, 410), 14 LINE (15, 410)-(610, 410), 14 LINE (315, 15)-(315, 410), 14 LINE (320, 15)-(320, 410), 14 LINE (15, 215)-(610, 215), 14 LINE (15, 220)-(610, 220), 14 PAINT (14, 14), 14 PAINT (316, 16), 14 PAINT (16, 216), 14 PAINT (609, 216), 14 PAINT (316, 409), 14 PAINT (316, 216), 4, 14 CALL CHTOWN READ battlin READ times row = 10 col = 16 FOR t = 1 TO times READ choice$ LOCATE col, row PRINT t; " "; choice$ col = col + 2 IF t = 5 THEN row = 48: col = 16 NEXT t LOCATE 2, 52 PRINT town$(position) spost: LOCATE 3, 10 PRINT cn$ LOCATE 5, 7 PRINT "HP:"; cp%; "/"; chp% LOCATE 7, 7 PRINT "MP:"; cm%; "/"; cmp% LOCATE 9, 7 PRINT "Level:"; clvl% LOCATE 11, 7 PRINT "11 = Status Screen" IF magic <> 1 THEN GOTO skmag LOCATE 13, 7 PRINT "12 = Cast Spell" skmag: LOCATE 11, 30 PRINT "13 = File" LOCATE 13, 30 PRINT "14 = Quit" IF po$ = "on" AND amulet = 1 AND amcount > 0 THEN CALL cureit IF po$ = "on" THEN LOCATE 8, 5: PRINT "Poisoned" IF battlin = 0 OR oldb = 1 THEN GOTO 134 ifat = (RND * 9) + 1 IF ifat > 7 THEN CALL battle: GOTO 115 IF oldb = 1 THEN oldb = 0 134 IF cp% < 1 THEN CALL ender1 LOCATE 27, 6 INPUT "Where shall you go"; choose cp% = cp% + .1 cm% = cm% + .2 IF po$ = "on" AND (choose < 1 OR choose > 14) THEN pois = pois + 1: IF pois > 5 THEN pois = 0: cp% = cp% - 1: GOTO 115 ELSE GOTO 115 IF choose < 1 OR choose > 14 OR choose = 0 THEN GOTO 115 IF choose = 11 THEN CALL statusscr: GOTO 115 IF choose = 13 THEN CALL HELP: GOTO 115 IF choose = 14 THEN CALL ender1: GOTO 115 IF magic <> 1 THEN GOTO skip IF choose = 12 THEN ib$ = "out": CALL magicb: GOTO 115 skip: IF po$ = "on" THEN pois = pois + 1: IF pois > 5 THEN cp% = cp% - 1: pois = 0 IF position = 1 THEN CALL HAGENF: GOTO 115 IF position = 2 THEN CALL SEWERS: GOTO 115 IF position = 3 THEN CALL OMRISR: GOTO 115 IF position = 4 THEN CALL AEON: GOTO 115 IF position = 5 THEN CALL CAMMENDALE: GOTO 115 IF position = 6 THEN CALL FELSGOR: GOTO 115 IF position = 7 THEN CALL GANDOWL: GOTO 115 IF position = 8 THEN CALL NOBWY: GOTO 115 IF position = 9 THEN CALL DAMONHORD: GOTO 115 IF position = 10 THEN CALL MERINSACAB: GOTO 115 IF position = 11 THEN CALL DESERTHEART: GOTO 115 IF position = 12 THEN CALL SILANUS: GOTO 115 IF position = 13 THEN CALL RAVENTAIL: GOTO 115 IF position = 14 THEN CALL DRAGONHOLLOW: GOTO 115 IF position = 15 THEN CALL GAIANTEMPLE: GOTO 115 IF position = 16 THEN CALL APIBIA: GOTO 115 IF position = 17 THEN CALL DOMALAS: GOTO 115 IF position = 18 THEN CALL VERMIA: GOTO 115 IF position = 100 THEN CALL wilderness: GOTO 115 newgamer: END SUB SUB RAVENTAIL IF choose = 1 THEN GOTO RAVENTAILA IF choose = 2 THEN GOTO RAVENTAILB IF choose = 3 THEN GOTO RAVENTAILC IF choose = 4 THEN GOTO RAVENTAILD IF choose = 5 THEN GOTO RAVENTAILE IF choose = 6 THEN GOTO RAVENTAILF IF choose = 7 THEN GOTO RAVENTAILG IF choose = 8 THEN GOTO RAVENTAILH IF choose = 9 THEN GOTO RAVENTAILI IF choose = 10 THEN GOTO RAVENTAILJ RAVENTAILA: RAVENTAILB: RAVENTAILC: RAVENTAILD: RAVENTAILE: RAVENTAILF: RAVENTAILG: RAVENTAILH: RAVENTAILI: RAVENTAILJ: END SUB SUB restartgame cn$ = "" cr$ = "" catt% = 0 cdef% = 0 cshd% = 0 card% = 0 ched% = 0 ci% = 0 ce% = 0 chp% = 0 cmp% = 0 gold% = 0 cw$ = "" ch$ = "" car$ = "" cp% = 0 cm% = 0 clvl% = 0 cexp& = 0 position = 0 magic = 0 magiclvl = 0 matt% = 0 mched% = 0 mcard% = 0 mcshd% = 0 mcdef% = 0 po$ = "" ssold% = 0 asold% = 0 hsold% = 0 wsold% = 0 crfrt$ = "" tonext% = 0 exit$ = "" itemnum = 0 END SUB SUB rshackles IF spelled(8) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nonet IF cm% < 120 THEN PRINT "Not enough power left.": GOTO nonet IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO nonet a% = 0 B% = 0 DO WHILE a% < 13 c% = (RND * 15) + 1 LINE (B%, 1)-(B%, 450), c% a% = a% + 1 B% = B% + 50 FOR t = 1 TO 100: NEXT t LOOP a% = 0 B% = 0 DO WHILE a% < 13 c% = (RND * 15) + 1 LINE (1, B%)-(615, B%), c% a% = a% + 1 B% = B% + 50 FOR t = 1 TO 100: NEXT t LOOP FOR h = 1 TO 6 FOR t = 1 TO 6 c% = (RND * 14) + 1 CIRCLE (125 + (t * 25), 125 + (h * 25)), 25, c% NEXT t NEXT h dmg% = (RND * 30) ehp% = ehp% - dmg% ram$ = "on" PRINT "You did"; dmg%; "points of damage" PRINT "Drain is now on" SLEEP 1 cm% = cm% - 120 nonet: END SUB SUB SEWERS chbattle = 5 IF choose = 1 THEN GOTO SEWERSA IF switch$(2) = "on" AND switch$(3) = "on" AND switch$(4) = "on" AND switch$(5) = "on" AND switch$(6) = "on" AND switch$(7) = "on" AND switch$(8) = "on" AND switch$(9) = "on" AND switch$(10) = "on" THEN exit$ = "on" IF exit$ = "on" THEN : PRINT "You hear a loud noise from one of the gates": DO WHILE INKEY$ = "": LOOP IF choose = 5 AND exit$ = "on" THEN GOTO sewersb IF choose <> 1 THEN GOTO SWITCHES SEWERSA: PRINT "You step out of the sewer and into a small house in a familiar" PRINT "village." position = 1 GOTO 114 SWITCHES: exit$ = "on" randit = INT(RND * 10) + 1 IF randit > 8 THEN CALL getitem PRINT "Room:"; choose, "Switch: "; switch$(choose) PRINT "You see a switch on then wall" INPUT "Pull it (y/n)"; sw$ sw$ = LCASE$(sw$) IF sw$ = "y" THEN switch$(choose) = "on" GOTO 114 sewersb: IF sew = 1 AND bag = 1 THEN GOTO skiped IF sew = 1 AND bag = 0 THEN GOTO plant IF sew = 2 THEN GOTO reoct PRINT "As you pass the rusted gate a tentecle grabs you and" PRINT "pulls you into a secret room. You stare in horror as" PRINT "a giant beak lunges at your throat." main = 1 sew = 1 CALL battle IF resetg = 1 THEN GOTO endsew IF talked <> 1 THEN GOTO nobag plant: PRINT "After killing the beast you find a single plant of" PRINT "Blood Root. Not knowing how much is needed you " PRINT "carefully dig out the plant and its roots and place" PRINT "it in the bag that Philan gave you." bag = 1 GOTO skiped nobag: PRINT "A funny red plant is growing in the corner of the room." PRINT "The dead octopus lies at your feet. You notice a bag hanging" PRINT "from one of its tentacles. Upon opening the bag you find 500 gold!" gold% = gold% + 500 sew = 2 GOTO endsew reoct: PRINT "You enter the area and find that the octopus" PRINT "is nothing but a pile of bones." PRINT "Slowly they rattle and begin to shake." PRINT "The bones reform and lunge at you!" main = 2 CALL battle IF resetg = 1 THEN GOTO endsew sew = 1 skiped: PRINT "You step into a room with a staircase" INPUT "Follow them(y/n)"; sta$ sta$ = LCASE$(sta$) IF sta$ = "y" THEN position = 3: PRINT "You step out into a town that is not familiar to you" 114 endsew: END SUB SUB shieldch IF arm = 1 THEN GOTO sheildchec IF cshd$ = "Bark Barrier" THEN mcshd% = cshd% + 1 IF cshd$ = "Plated Wood" THEN mcshd% = cshd% + 2 IF cshd$ = "Strapped Wood" THEN mcshd% = cshd% + 3 IF cshd$ = "Striped Iron" THEN mcshd% = cshd% + 4 IF cshd$ = "Spiked Sheild" THEN mcshd% = cshd% + 5 GOTO endsh sheildchec: IF stit$(store%) = "Bark Barrier" THEN mcshd% = cshd% + 1 IF stit$(store%) = "Plated Wood" THEN mcshd% = cshd% + 2 IF stit$(store%) = "Strapped Wood" THEN mcshd% = cshd% + 3 IF stit$(store%) = "Striped Iron" THEN mcshd% = cshd% + 4 IF stit$(store%) = "Spiked Sheild" THEN mcshd% = cshd% + 5 endsh: END SUB SUB SILANUS IF choose = 1 THEN GOTO SILANUSA IF choose = 2 THEN GOTO SILANUSB IF choose = 3 THEN GOTO SILANUSC IF choose = 4 THEN GOTO SILANUSD IF choose = 5 THEN GOTO SILANUSE IF choose = 6 THEN GOTO SILANUSF IF choose = 7 THEN GOTO SILANUSG IF choose = 8 THEN GOTO SILANUSH IF choose = 9 THEN GOTO SILANUSI IF choose = 10 THEN GOTO SILANUSJ SILANUSA: SILANUSB: SILANUSC: SILANUSD: SILANUSE: SILANUSF: SILANUSG: SILANUSH: SILANUSI: SILANUSJ: END SUB SUB slashatt END SUB SUB soundb IF spelled(6) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nosound IF cm% < 65 THEN PRINT "Not enough power left.": GOTO nosound IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO nosound a% = 0 FOR t = 1 TO 6 B = INT(RND * 300) + 200 c = INT(RND * 300) + 200 DO WHILE a% < 101 CIRCLE (B, c), a%, 14 a% = a% + 5 LOOP NEXT t dmg% = (RND * 1000) + ci% PRINT "You did"; dmg%; "points of damage" ehp% = ehp% - dmg% cm% = cm% - 65 nosound: END SUB SUB starrain IF spelled(11) <> 1 THEN PRINT "Sorry, you don't have this spell": GOTO nostar IF cm% < 350 THEN PRINT "Not enough power left.": GOTO nostar IF ib$ = "out" THEN PRINT "Sorry, only in battle": GOTO nostar r: d = 0 e = 0 lo: FOR t = 0 TO 6.28 STEP .3 x = 80 + f + (70 * SIN(t)) y = 50 + d + (30 * COS(t)) d = d + 1.2 CIRCLE (x, y), 5, 4 PAINT (x, y), 4 CIRCLE (x, y), 5, 0 PAINT (x, y), 0 PSET (x, y), 4 NEXT t e = e + 1 IF e = 3 THEN GOTO poof GOTO lo poof: FOR t = 1 TO 100 CIRCLE (x, y), t, 4 NEXT t FOR t = 1 TO 100 CIRCLE (x, y), t, 0 NEXT t f = f + 100 h = h + 1 IF h = 5 THEN GOTO w GOTO r w: dmg% = (RND * 40000) + ci% + 10000 ehp% = ehp% - dmg% sdmg% = (dmg% - (mcdef% - ce% - ci%)) cp% = cp% - sdmg% PRINT "You did"; dmg%; "points of damage to the enemy and" PRINT sdmg%; "points of damage to yourself" cm% = cm% - 350 nostar: END SUB SUB statusscr CALL weaponch CALL shieldch CALL helmetch CALL armorch mcdef% = mcard% + mcshd% + mched% + cdef% CLS LINE (10, 10)-(615, 10), 14 LINE (15, 15)-(610, 15), 14 LINE (10, 10)-(10, 415), 14 LINE (15, 15)-(15, 410), 14 LINE (15, 410)-(610, 410), 14 LINE (10, 415)-(615, 415), 14 LINE (615, 415)-(615, 10), 14 LINE (610, 410)-(610, 15), 14 LINE (15, 35)-(125, 35), 14 LINE (125, 15)-(125, 35), 14 LINE (15, 40)-(345, 40), 14 LINE (130, 15)-(130, 35), 14 LINE (130, 35)-(185, 35), 14 LINE (185, 35)-(185, 15), 14 LINE (125, 40)-(125, 195), 14 LINE (125, 195)-(15, 195), 14 LINE (130, 40)-(130, 200), 14 LINE (130, 200)-(15, 200), 14 LINE (130, 200)-(130, 410), 14 LINE (125, 200)-(125, 410), 14 LINE (15, 250)-(125, 250), 14 LINE (15, 245)-(125, 245), 14 LINE (15, 300)-(125, 300), 14 LINE (15, 295)-(125, 295), 14 LINE (190, 15)-(190, 40), 14 LINE (15, 350)-(125, 350), 14 LINE (15, 345)-(125, 345), 14 LINE (345, 15)-(345, 40), 14 LINE (190, 35)-(340, 35), 14 LINE (340, 15)-(340, 35), 14 LINE (340, 40)-(340, 245), 14 LINE (130, 245)-(340, 245), 14 LINE (345, 40)-(345, 250), 14 LINE (130, 250)-(345, 250), 14 LINE (340, 250)-(340, 410), 14 LINE (345, 250)-(345, 410), 14 LINE (130, 300)-(340, 300), 14 LINE (130, 295)-(340, 295), 14 LINE (230, 250)-(230, 295), 14 LINE (235, 250)-(235, 295), 14 LOCATE 2, 4 PRINT cn$ LOCATE 2, 18 PRINT "Lvl"; clvl% LOCATE 2, 26 PRINT "Race: "; cr$ LOCATE 4, 4 PRINT "Stats:" LOCATE 6, 4 PRINT "I.Q.:"; ci% LOCATE 8, 4 PRINT "End.:"; ce% LOCATE 10, 4 PRINT "Att.:"; mcatt% LOCATE 12, 4 PRINT "Def.:"; mcdef% LOCATE 14, 8 PRINT "HP:" LOCATE 15, 4 PRINT cp%; " /"; chp% LOCATE 17, 8 PRINT "MP:" LOCATE 18, 4 PRINT cm%; " /"; cmp% LOCATE 20, 6 PRINT "EXP.:" LOCATE 21, 5 PRINT cexp& LOCATE 23, 6 PRINT "To Next" LOCATE 24, 7 PRINT "Level" LOCATE 25, 5 PRINT tonext% LOCATE 4, 19 PRINT "Armor:" LOCATE 5, 25 PRINT car$ LOCATE 7, 19 PRINT "Weapon:" LOCATE 8, 25 PRINT cw$ LOCATE 10, 19 PRINT "Helmet:" LOCATE 11, 25 PRINT ch$ LOCATE 13, 19 PRINT "Sheild:" LOCATE 14, 25 PRINT csh$ LOCATE 17, 19 PRINT "GOLD:" LOCATE 18, 18 PRINT gold% LOCATE 17, 32 PRINT "Condition:" IF po$ = "on" THEN con$ = "Poisoned" ELSE con$ = " Normal" LOCATE 18, 33 PRINT con$ LOCATE 2, 45 PRINT "Artifacts:" LOCATE 21, 19 PRINT "1) Review Spells" LOCATE 22, 19 PRINT "2) Use an Item" LOCATE 23, 19 PRINT "3) Return to Game" LOCATE 2, 32 PRINT crfrt$ IF po$ = "on" AND amulet = 1 AND amcount > 0 THEN CALL cureit IF amulet = 1 THEN LOCATE 4, 45: PRINT "Golden Amulet "; amcount; "uses." IF charm > 0 THEN LOCATE 6, 45: PRINT "Life Charm" IF scabbard$ = "yes" THEN LOCATE 8, 45: PRINT "Ruby Scabbard" IF ring$ = "yes" THEN LOCATE 10, 45: PRINT "Ring of Life" IF mirror$ = "yes" THEN LOCATE 12, 45: PRINT "Mind's Mirror" IF gauntlets$ = "yes" THEN LOCATE 14, 45: PRINT "Titan's Gauntlets" IF book$ = "yes" THEN LOCATE 13, 45: PRINT "Worn Book" LOCATE 25, 19 INPUT "Pick an option:", ch IF ch = 1 THEN CALL magicb IF ch = 2 THEN CALL items LOCATE 29, 2 endstat: END SUB SUB TOWNS town$(1) = "Hagen Falls" town$(2) = "Sewers" town$(3) = "Omr'Isr" town$(4) = "Aeon" town$(5) = "Cammendale" town$(6) = "Felsgor" town$(7) = "Gandowl" town$(8) = "Nubwy" town$(9) = "Damonhord" town$(10) = "Merin Sacab" town$(11) = "Desert Heart" town$(12) = "Silanus" town$(13) = "Raven Tale" town$(14) = "Dragon Hallow" town$(15) = "Gaian Temple" town$(16) = "Apibia" town$(17) = "Domalas" town$(18) = "Vermia" town$(100) = "Elorian Wilderness" CLS END SUB SUB VERMIA IF choose = 1 THEN GOTO VERMIAA IF choose = 2 THEN GOTO VERMIAB IF choose = 3 THEN GOTO VERMIAC VERMIAA: PRINT "A dark trail begins to wind you down through a series" PRINT "of trails. The forest becomes too thick to see the sky" PRINT "above. As cautious as you are our senses don't let you" PRINT "know you've sprung a trap until it is too late. Minutes" PRINT "pass before you regain conciousness. A poison struck" PRINT "you in the thigh making you pass out, and give enough" PRINT "time for the hiding ogres to tie you to a tree." PRINT "You are drug off to a small village where you meet" PRINT "the king of ogres." position = 19 CALL playdrag VERMIAB: PRINT "You travel only a short while before you encounter a" PRINT "bridge with a sign. The sign reads:" PRINT " /-----------------------\" PRINT " | TOLL > 500,000 GOLD |" PRINT " \-----------------------/" PRINT "You laugh to yourself and walk across the bridge." PRINT "You reach halfway when a stong odor and stronger" PRINT "voice stops you. 'HEY BUDDY, CAN'T YOU READ?'" PRINT "A small man, barely a foot tall, walks up to you" PRINT "with his hand out for money. You ask him who he" PRINT "is and what he is doing out here. With a snort he" PRINT "replies, ' I'M MOYLE. I LIKE TO PLAY WITH BALLS'" position = 20 CALL playdrag VERMIAC: position = 21 CALL playdrag END SUB SUB weaponch IF cw$ = "Rusty Imp Killer" THEN mcatt% = catt% + 1 IF cw$ = "Toothpick Spliter" THEN mcatt% = catt% + 2 IF cw$ = "Training Blade" THEN mcatt% = catt% + 3 IF cw$ = "Weighted Pole" THEN mcatt% = catt% + 4 IF cw$ = "Bronze Pole" THEN mcatt% = catt% + 5 endchk: END SUB SUB wilderness IF randwild = 1 AND choose = 3 THEN GOTO merchant IF choose = 1 THEN GOTO old IF choose = 2 THEN GOTO new old: dis = dis + 1 IF dis > olddis THEN position = oldpos: PRINT "You return to "; town$(oldpos): reached = 1 randit = INT(RND * 10) + 1 IF randit > 8 THEN CALL getitem GOTO endwil new: dis = dis - 1 IF dis < 1 THEN position = newpos reached = 1 randit = INT(RND * 10) + 1 IF randit > 8 THEN CALL getitem GOTO endwil merchant: GOTO endwil endwil: END SUB