Skip to content

Instantly share code, notes, and snippets.

@ChadSki
Created October 29, 2016 05:31
Show Gist options
  • Select an option

  • Save ChadSki/afd9729a62bf9ca69b037a489e125166 to your computer and use it in GitHub Desktop.

Select an option

Save ChadSki/afd9729a62bf9ca69b037a489e125166 to your computer and use it in GitHub Desktop.
Battle System
DECLARE SUB spellatk ()
DECLARE SUB Battle ()
DECLARE SUB border ()
DECLARE SUB msattle ()
DECLARE SUB deleteone ()
DECLARE SUB cdisplay ()
DECLARE SUB deletemenu ()
DECLARE SUB delete ()
DECLARE SUB savechar ()
DECLARE SUB charback ()
DECLARE SUB anthem ()
DECLARE SUB character ()
DECLARE SUB title ()
DECLARE SUB msorder ()
DECLARE SUB win ()
DECLARE SUB plyr1 ()
DECLARE SUB itemstart ()
DECLARE SUB selection ()
DECLARE SUB Itemclass4 ()
DECLARE SUB Itemclass3 ()
DECLARE SUB Itemclass2 ()
DECLARE SUB Itemclass1 ()
DECLARE SUB itemclass0 ()
DECLARE SUB turns ()
DECLARE SUB charback ()
COMMON SHARED ans.$, ws, y, ms, taken, redtep, bluestep, spellchk, skip()
COMMON SHARED hp(), mp(), ws(), ws(), ms(), ms(), y(), y(), item1(), item2()
COMMON SHARED item3(), armor1(), armor2(), pack1(), pack2(), pack3(), pack4()
COMMON SHARED pack5(), name.$(), player.$(), plyr, call.$, dfsplyr
COMMON SHARED spell1(), spell2(), spell3(), atk
COMMON SHARED wsmin, wsmax, msmin, msmax, wsval, msval, mssval, item.$, rditem
COMMON SHARED cv1, cvb1, cvb2, cv2, cv3, cv4, cv5, cv6, cv7, cv8, cv9, cv10, cv11, cv12
COMMON SHARED ctimes, freeze, direct, charge, mgmin, mgmax, level, mgval
DIM name.$(2), ws(2), ms(2), y(2), item1(2), item2(2)
DIM item3(2), armor1(2), armor2(2), pack1(2), pack2(2), pack3(2), pack4(2)
DIM pack5(2), hp(2), mp(2), player.$(2), spell1(2), spell2(2), spell3(2), skip(2)
cv1 = 2 'Border Color
cvb1 = 2 'Menu
cvb2 = 2 'Menu
cv2 = 3 'Text/Heading
cv3 = 9 'Text/Heading
cv4 = 15 'Heading
cv5 = 8 'Text/Label
cv6 = 7 'Text
cv7 = 4 'Graph Low
cv8 = 14 'Graph Mid
cv9 = 10 'Graph High
cv10 = 12 'Speciality
cv11 = 29 'Speciality
cv12 = 1 'Speciality
DO
CLS
SCREEN 13
CALL title
DO
'CALL anthem
menu.$ = INKEY$
LOOP WHILE menu.$ <> "1" AND menu.$ <> "2" AND menu.$ <> "3" AND menu.$ <> "4" AND menu.$ <> "5" AND menu.$ <> "z"
IF menu.$ = "1" THEN
CALL Battle
END IF
IF menu.$ = "2" THEN
CALL character
END IF
IF menu.$ = "3" THEN
CALL deletemenu
END IF
IF menu.$ = "4" THEN
CALL cdisplay
END IF
IF menu.$ = "z" THEN
CALL anthem
END IF
LOOP WHILE menu.$ <> "5"
COLOR cv6
SUB anthem
SOUND 200, 12
SOUND 150, 18
SOUND 200, 5
SOUND 20000, .5
SOUND 200, 3
SOUND 225, 2.75
SOUND 250, 2.75
SOUND 275, 3
SOUND 300, 12
SOUND 20000, 30
SOUND 400, 12
SOUND 300, 18
SOUND 400, 5
SOUND 20000, .5
SOUND 400, 3
SOUND 450, 2.75
SOUND 500, 2.75
SOUND 525, 3
SOUND 600, 14
SOUND 225, 2.75
SOUND 100, 2.75
SOUND 225, 6
END SUB
SUB Battle
hp(1) = 100
hp(2) = 100
mp(1) = 10
mp(2) = 10
taken = 0
plyr = 1
CALL selection
IF call.$ = "q" THEN
ELSE
plyr = 2
CALL selection
IF call.$ = "q" THEN
ELSE
plyr = 0
CALL turns
END IF
END IF
END SUB
SUB border
COLOR cv1
PRINT "////////////////////////////////////////"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "/ /"
PRINT "////////////////////////////////////////"
COLOR cv6
END SUB
SUB cdisplay
opencheck = 0
DIM c(9)
DIM filename.$(9)
CALL charback
LOCATE 2, 11
PRINT " Character Stats "
filename.$(1) = "c:char1.adv"
filename.$(2) = "c:char2.adv"
filename.$(3) = "c:char3.adv"
filename.$(4) = "c:char4.adv"
filename.$(5) = "c:char5.adv"
filename.$(6) = "c:char6.adv"
filename.$(7) = "c:char7.adv"
filename.$(8) = "c:char8.adv"
filename.$(9) = "c:char9.adv"
LOCATE 4, 3
PRINT "Choose a character to view it's stats"
OPEN "c:charlist.adv" FOR INPUT AS #1
FOR x = 1 TO 9
INPUT #1, c(x)
NEXT x
CLOSE #1
FOR z = 1 TO 9
IF c(z) = 0 THEN
COLOR cv5
LOCATE 5 + z, 3
PRINT z
ELSE
COLOR cv2
OPEN filename.$(z) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
LOCATE 5 + z, 3
PRINT z; " - "; name.$
CLOSE #1
END IF
NEXT z
COLOR cv2
LOCATE 17, 3
PRINT " Q";
DO
call.$ = INKEY$
LOOP WHILE call.$ <> "1" AND call.$ <> "2" AND call.$ <> "3" AND call.$ <> "4" AND call.$ <> "5" AND call.$ <> "6" AND call.$ <> "7" AND call.$ <> "8" AND call.$ <> "9" AND call.$ <> "q"
IF call.$ = "1" AND c(1) = 1 THEN
c(1) = 1
opencheck = 1
OPEN filename.$(1) FOR INPUT AS #1
END IF
IF call.$ = "2" AND c(2) = 1 THEN
c(2) = 1
opencheck = 1
OPEN filename.$(2) FOR INPUT AS #1
END IF
IF call.$ = "3" AND c(3) = 1 THEN
c(3) = 1
opencheck = 1
OPEN filename.$(3) FOR INPUT AS #1
END IF
IF call.$ = "4" AND c(4) = 1 THEN
c(4) = 1
opencheck = 1
OPEN filename.$(4) FOR INPUT AS #1
END IF
IF call.$ = "5" AND c(5) = 1 THEN
c(5) = 1
opencheck = 1
OPEN filename.$(5) FOR INPUT AS #1
END IF
IF call.$ = "6" AND c(6) = 1 THEN
c(6) = 1
opencheck = 1
OPEN filename.$(6) FOR INPUT AS #1
END IF
IF call.$ = "7" AND c(7) = 1 THEN
c(7) = 1
opencheck = 1
OPEN filename.$(7) FOR INPUT AS #1
END IF
IF call.$ = "8" AND c(8) = 1 THEN
c(8) = 1
opencheck = 1
OPEN filename.$(8) FOR INPUT AS #1
END IF
IF call.$ = "9" AND c(9) = 1 THEN
c(9) = 1
opencheck = 1
OPEN filename.$(9) FOR INPUT AS #1
END IF
IF opencheck = 1 THEN
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CALL charback
LOCATE 2, 11
PRINT " Character Stats "
LOCATE 4, 3
PRINT name.$; " is:"
highest = ws + 1
IF highest < ms + 1 THEN highest = ms + 1
IF highest < y + 1 THEN highest = y + 1
IF highest < 11 THEN highest = 11
space = highest / 11
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
COLOR cv2
LOCATE 6, 3
IF ws <= 3 THEN
PRINT "NOT VERY ";
lockr = 12
COLOR cv7
END IF
IF ws >= 3.5 AND ws <= 6.5 THEN
PRINT "";
lockr = 3
COLOR cv8
END IF
IF ws >= 7 THEN
PRINT "VERY";
lockr = 8
COLOR cv9
END IF
LOCATE 6, 28
PRINT ws
COLOR cv2
LOCATE 6, lockr
PRINT "BATTLE ORIENTED"
COLOR cv3
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
COLOR cv2
LOCATE 8, 3
IF ms <= 3 THEN
PRINT "NOT VERY ";
lockb = 12
COLOR cv7
END IF
IF ms >= 3.5 AND ms <= 6.5 THEN
PRINT "";
lockb = 3
COLOR cv8
END IF
IF ms >= 7 THEN
PRINT "VERY";
lockb = 8
COLOR cv9
END IF
LOCATE 8, 28
PRINT ms
COLOR cv2
LOCATE 8, lockb
PRINT "MAGIC ORIENTED"
COLOR cv3
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
COLOR cv2
LOCATE 10, 3
IF y < 3.5 THEN
PRINT "NOT VERY ";
locky = 12
COLOR cv7
END IF
IF y >= 3.5 AND y < 7 THEN
PRINT "";
locky = 3
COLOR cv8
END IF
IF y >= 7 THEN
PRINT "VERY";
locky = 8
COLOR cv9
END IF
LOCATE 10, 28
PRINT y
COLOR cv2
LOCATE 10, locky
PRINT "INTELLIGENT"
COLOR cv3
':+:+:+:+:+:+:+:+:+:+:+:+:+:+:+:
LOCATE 12, 5
COLOR cv5
PRINT "Weapons"
COLOR cv2
rditem = item1
CALL itemstart
LOCATE 13, 5
PRINT USING " \ \"; item.$
rditem = item2
CALL itemstart
LOCATE 14, 5
PRINT USING " \ \"; item.$
LOCATE 16, 5
COLOR cv5
PRINT "Spells"
COLOR cv2
rditem = spell1
CALL itemstart
LOCATE 17, 5
PRINT USING " \ \"; item.$
rditem = spell2
CALL itemstart
LOCATE 18, 5
PRINT USING " \ \"; item.$
rditem = spell3
CALL itemstart
LOCATE 19, 5
PRINT USING " \ \"; item.$
LOCATE 12, 25
COLOR cv5
PRINT "Pack"
COLOR cv2
rditem = pack1
CALL itemstart
LOCATE 13, 25
PRINT USING " \ \"; item.$
rditem = pack2
CALL itemstart
LOCATE 14, 25
PRINT USING " \ \"; item.$
rditem = pack3
CALL itemstart
LOCATE 15, 25
PRINT USING " \ \"; item.$
rditem = pack4
CALL itemstart
LOCATE 16, 25
PRINT USING " \ \"; item.$
rditem = pack5
CALL itemstart
LOCATE 17, 25
PRINT USING " \ \"; item.$
CLOSE #1
DO: LOOP WHILE INKEY$ = ""
END IF
IF opencheck <> 1 AND call.$ <> "q" THEN
LOCATE 17, 3
PRINT "Character does not exist!"
DO: LOOP WHILE INKEY$ = ""
END IF
END SUB
SUB character
ms = 0
ws = 0
y = 0
'Question #1
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "1) DO YOU PREFER BATTLE:"
LOCATE 6, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "LONG-RANGE"
LOCATE 7, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "HAND-TO-HAND?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ms = ms + 2
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ws = ws + 2
END IF
'End question #1
'###############################################################
'Question #2
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "2) ARE YOU MORE MOTIVATED BY: "
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "ACHEIVEMENTS"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "KNOWLEDGE?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ws = ws + 2
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
y = y + 2
END IF
'End question #2
'###############################################################
'Question #3
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "3) DO YOU: "
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "CAREFULLY CONSIDER YOUR OPTIONS"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "RUSH TO A DECISION?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
y = y + 2
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ms = ms + 2
END IF
'End question #3
'###############################################################
'Question #4
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "4) WHICH CONSTELLATION "
LOCATE 5, 3
PRINT " DO YOU PREFER:"
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "MAGUS, THE SORCERER";
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "HERUK, THE HUNTER?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ms = ms + 1.5
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ws = ws + 1.5
END IF
'End question #4
'###############################################################
'Question #5
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "5) WHICH ARE YOU MORE LIKELT TO DO: "
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "BEAT UP PUNCHING BAGS"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "CONTEMPLATE?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ws = ws + 1.5
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
y = y + 1.5
END IF
'End question #5
'###############################################################
'Question #6
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "6) WOULD YOU RATHER: "
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "WORK HARD AND GAIN"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "MAGICALLY FINISH YOUR WORK"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
y = y + 1.5
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ms = ms + 1.5
END IF
'End question #6
'###############################################################
'Question #7
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "7) WOULD YOU RATHER BE: "
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "UNHINDERED BY ARMOR"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "SLOW BUT PROTECTED?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ms = ms + 1
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ws = ws + 1
END IF
'End question #7
'###############################################################
'Question #8
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "8) WOULD YOU RATHER HAVE "
LOCATE 5, 3
PRINT " HAVE YOUR WEAPONS: ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "EXTRA-SHARP AND BROKEN IN"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "INSCRIBED WITH RUNES?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ws = ws + 1
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
y = y + 1
END IF
'End question #8
'##################################################################
'Question #9
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "9) WOULD YOU RATHER HAVE: "
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "A LIBRARY OF OLD SCROLLS"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "A GIANT MAGIC CRYSTAL?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
y = y + 1
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ms = ms + 1
END IF
'End question #9
'###############################################################
'Question #10
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "10) WOULD YOU RATHER BE";
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "INTELLIGENT"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "BRAWNY?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ms = ms + .5
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ws = ws + .5
END IF
'End question #10
'###############################################################
'Question #11
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "11) DO YOU PREFER: "
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "WAR MOVIES"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "DOCUMENTARIES?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
ws = ws + .5
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
y = y + .5
END IF
'End question #11
'###############################################################
'Question #12
CALL charback
COLOR cv2
LOCATE 4, 3
PRINT "12) ARE YOU MORE OF A:"
LOCATE 5, 3
PRINT " ";
LOCATE 7, 3
COLOR cv2
PRINT "A) ";
COLOR cv3
PRINT "BUDDHIST MONK"
LOCATE 8, 3
COLOR cv2
PRINT "B) ";
COLOR cv3
PRINT "GLADIATOR?"
COLOR cv6
DO
ans.$ = INKEY$
LOOP WHILE ans.$ <> "a" AND ans.$ <> "b"
IF ans.$ = "a" OR ans.$ = "A" THEN
y = y + .5
END IF
IF ans.$ = "b" OR ans.$ = "B" THEN
ms = ms + .5
END IF
'End question #12
'###############################################################
CALL charback
LOCATE 4, 3
PRINT "New Character is:"
highest = ms + 1
IF highest < ws + 1 THEN highest = ws + 1
IF highest < y + 1 THEN highest = y + 1
IF highest < 11 THEN highest = 11
space = highest / 11
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
COLOR cv2
LOCATE 8, 3
IF ws <= 3 THEN
PRINT "NOT VERY ";
lockr = 12
COLOR cv7
END IF
IF ws >= 3.5 AND ws <= 6.5 THEN
PRINT "";
lockr = 3
COLOR cv8
END IF
IF ws >= 7 THEN
PRINT "VERY";
lockr = 8
COLOR cv9
END IF
LOCATE 8, 28
FOR graphr = 1 TO (ws + 1) / space
PRINT CHR$(219);
NEXT graphr
COLOR cv2
LOCATE 8, lockr
PRINT "BATTLE ORIENTED"
COLOR cv3
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
COLOR cv2
LOCATE 10, 3
IF ms <= 3 THEN
PRINT "NOT VERY ";
lockb = 12
COLOR cv7
END IF
IF ms >= 3.5 AND ms <= 6.5 THEN
PRINT "";
lockb = 3
COLOR cv8
END IF
IF ms >= 7 THEN
PRINT "VERY";
lockb = 8
COLOR cv9
END IF
LOCATE 10, 28
FOR graphb = 1 TO (ms + 1) / space
PRINT CHR$(219);
NEXT graphb
COLOR cv2
LOCATE 10, lockb
PRINT "MAGIC ORIENTED"
COLOR cv3
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
COLOR cv2
LOCATE 12, 3
IF y < 3.5 THEN
PRINT "NOT VERY ";
locky = 12
COLOR cv7
END IF
IF y >= 3.5 AND y < 7 THEN
PRINT "";
locky = 3
COLOR cv8
END IF
IF y >= 7 THEN
PRINT "VERY";
locky = 8
COLOR cv9
END IF
LOCATE 12, 28
FOR graphy = 1 TO (y + 1) / space
PRINT CHR$(219);
NEXT graphy
COLOR cv2
LOCATE 12, locky
PRINT "INTELLIGENT"
COLOR cv3
':+:+:+:+:+:+:+:+:+:+:+:+:+:+:+:
LOCATE 14, 3
PRINT "SAVE THIS CHARACTER? (Y/N)"
DO
call.$ = INKEY$
LOOP WHILE call.$ <> "y" AND call.$ <> "n"
IF call.$ = "y" THEN
CALL savechar
END IF
END SUB
SUB charback
CLS
CALL border
PRINT
PRINT
COLOR cv2
LOCATE 2, 11
PRINT "CREATE A CHARACTER"
END SUB
SUB delete
OPEN "c:charlist.adv" FOR OUTPUT AS #1
FOR x = 1 TO 9
WRITE #1, slot
NEXT x
CLOSE #1
END SUB
SUB deletemenu
CLS
CALL border
PRINT
PRINT
COLOR cv2
LOCATE 3, 11
PRINT "DELETE A CHARACTER"
COLOR cv6
LOCATE 8, 7
PRINT "1)";
COLOR cv1
PRINT " Delete one character"
LOCATE 9, 7
COLOR cv6
PRINT "2)";
COLOR cv1
PRINT " Reset all characters"
DO
delmenu.$ = INKEY$
LOOP UNTIL delmenu.$ = "1" OR delmenu.$ = "2"
IF delmenu.$ = "1" THEN CALL deleteone
IF delmenu.$ = "2" THEN CALL delete
END SUB
SUB deleteone
DIM c(9)
DIM filename.$(9)
CALL charback
filename.$(1) = "c:char1.adv"
filename.$(2) = "c:char2.adv"
filename.$(3) = "c:char3.adv"
filename.$(4) = "c:char4.adv"
filename.$(5) = "c:char5.adv"
filename.$(6) = "c:char6.adv"
filename.$(7) = "c:char7.adv"
filename.$(8) = "c:char8.adv"
filename.$(9) = "c:char9.adv"
LOCATE 4, 3
PRINT "Choose a character to delete"
OPEN "c:charlist.adv" FOR INPUT AS #1
FOR x = 1 TO 9
INPUT #1, c(x)
NEXT x
CLOSE #1
FOR z = 1 TO 9
IF c(z) = 0 THEN
COLOR cv5
LOCATE 5 + z, 3
PRINT z
ELSE
COLOR cv2
OPEN filename.$(z) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
LOCATE 5 + z, 3
PRINT z; " - "; name.$
CLOSE #1
END IF
NEXT z
COLOR cv2
LOCATE 17, 3
PRINT " Q";
DO
call.$ = INKEY$
LOOP WHILE call.$ <> "1" AND call.$ <> "2" AND call.$ <> "3" AND call.$ <> "4" AND call.$ <> "5" AND call.$ <> "1" AND call.$ <> "6" AND call.$ <> "7" AND call.$ <> "8" AND call.$ <> "9" AND call.$ <> "q"
del = ASC(call.$)
del = del - 48
OPEN "c:charlist.adv" FOR OUTPUT AS #1
FOR w = 1 TO 9
IF w = del THEN c(w) = 0
WRITE #1, c(w)
NEXT w
CLOSE #1
END SUB
SUB itemclass0
'Item Class 0: battle Weapons
'Nothing
IF rditem = 0 THEN
item.$ = "Nothing"
wsmin = 0
wsmax = 0
msmin = 0
msmax = 0
msbst = 0
END IF
'Dagger
IF rditem >= 1 AND rditem <= 999 THEN
item.$ = "Dagger"
wsmin = 1
wsmax = 12
msmin = 0
msmax = 0
msbst = 0
IF rditem = 2 THEN
item.$ = "Red Dagger"
wsmax = wsmax + redstep
msmax = msmax + redstep
END IF
IF rditem = 3 THEN
item.$ = "Blue Dagger"
wsmin = wsmin + bluestep
msmin = msmin + bluestep
END IF
END IF
'Sword
IF rditem >= 1000 AND rditem <= 1999 THEN
item.$ = "Sword"
wsmin = 2
wsmax = 17
msmin = 1
msmax = 7
msbst = 4
IF rditem = 2 THEN
item.$ = "Red Sword"
wsmax = wsmax + redstep
msmax = msmax + redstep
END IF
IF rditem = 3 THEN
item.$ = "Blue Sword"
wsmin = wsmin + bluestep
msmin = msmin + bluestep
END IF
END IF
'Longsword
IF rditem >= 2000 AND rditem <= 2999 THEN
item.$ = "Longsword"
wsmin = 5
wsmax = 21
msmin = 4
msmax = 6
msbst = 5
IF rditem = 2001 THEN
item.$ = "Red Longsword"
wsmax = wsmax + redstep
msmax = msmax + redstep
END IF
IF rditem = 2002 THEN
item.$ = "Blue Longsword"
wsmin = wsmin + bluestep
msmin = msmin + bluestep
END IF
END IF
END SUB
SUB Itemclass1
'Item Class 1: Magic Weapons
'Wooden Staff
IF rditem >= 10000 AND rditem <= 10999 THEN
item.$ = "Wooden Staff"
wsmin = 1
wsmax = 7
msmin = 2
msmax = 9
msbst = 5
IF rditem = 10001 THEN
item.$ = "Red Staff"
wsmax = wsmax + redstep
msmax = msmax + redstep
END IF
IF rditem = 10002 THEN
item.$ = "Blue Staff"
wsmin = wsmin + bluestep
msmin = msmin + bluestep
END IF
END IF
'Battlestaff
IF rditem >= 11000 AND rditem <= 11999 THEN
item.$ = "Battlestaff"
wsmin = 1
wsmax = 12
msmin = 4
msmax = 25
msbst = 7
IF rditem = 11001 THEN
item.$ = "Red Battlestaff"
wsmax = wsmax + redstep
msmax = msmax + redstep
END IF
IF rditem = 11002 THEN
item.$ = "Blue Battlestaff"
wsmin = wsmin + bluestep
msmin = msmin + bluestep
END IF
END IF
END SUB
SUB Itemclass2
'Item Class 2: Magic Spells
'Water
IF rditem >= 20000 AND rditem <= 20999 THEN
item.$ = "Water"
level = 1
spellchk = 1
ctimes = 1
freeze = 0
direct = 0
mpcost = 2
mgmin = 10
mgmax = 25
END IF
'Fire
IF rditem <= 21000 AND rditem <= 21999 THEN
item.$ = "Fire"
level = 1
spellchk = 1
ctimes = 3
freeze = 0
direct = 0
mpcost = 5
mgmin = 8
mgmax = 15
END IF
'Earth
IF rditem <= 22000 AND rditem <= 22999 THEN
item.$ = "Earth"
level = 1
spellchk = 1
ctimes = 1
freeze = 0
direct = 0
mpcost = 5
mgmin = 50
mgmax = 80
END IF
'Air
IF rditem <= 23000 AND rditem <= 23999 THEN
item.$ = "Air"
level = 1
spellchk = 1
ctimes = 1
freeze = 0
direct = 0
mpcost = 1
mgmin = 0
mgmax = 30
END IF
'Ice
IF rditem >= 24000 AND rditem <= 24999 THEN
item.$ = "Ice"
level = 1
spellchk = 1
ctimes = 1
freeze = 1
direct = 0
mpcost = 6
mgmin = 3
mgmax = 7
END IF
END SUB
SUB Itemclass3
'Item Class 0: Amulets / Modifiers
' 'Amulet
' IF rditem >= 30000 AND rditem <= 30999 THEN
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
'
' END IF
'
' 'Ring
' IF rditem >= 1000 AND rditem <= 1999 THEN
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
'
' END IF
'
' 'Talisman
' IF rditem >= 2000 AND rditem <= 2999 THEN
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
' END IF
END SUB
SUB Itemclass4
'Item Class 0: Armor / Clothing
'Peasant Robes
IF rditem <= 4000 AND rditem <= 40999 THEN
wsmin = 0
wsmax = 0
msmin = 0
msmax = 0
msbst = 0
wsval = (wsmin + wsmax) + (msmin + msmax) / 2 + msbst
msval = (msmin + msmax) + (wsmin + wsmax) / 2 + msbst
mssval = msbst + (wsmin + wsmax) / 2 + (msmin + msmax) / 2
END IF
' 'Dark wsobes
' IF rditem <= 41000 AND rditem <= 41999 THEN
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
' END IF
'
' 'Mystic wsobes
' IF rditem <= 42000 AND rditem <= 42999 THEN
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
' END IF
'
' 'Armor
' IF rditem <= 43000 AND rditem <= 43999 THEN
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
' END IF
'
' 'More Armor
' IF rditem <= 4000 AND rditem <= 4999 THEN
'
' 'Leather
' IF rditem >= 4000 AND rditem <= 4099 THEN :
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
' 'Chainlink
'
' wsmin = 0
' wsmax = 0
' msmin = 0
' msmax = 0
' msbst = 0
'
' wsval = (wsmin+wsmax) + (msmin + msmax)/2 + msbst
' msval = (msmin+msmax) + (wsmin + wsmax)/2 + msbst
' mssval = msbst + (wsmin+wsmax)/2+(msmin+msmax)/2
'
' IF rditem >= 4100 AND rditem <= 4199 THEN :
'
' END IF
END SUB
SUB itemstart
redstep = 2: bluestep = 2: spellchk = 0
IF rditem >= 0 AND rditem <= 9999 THEN : CALL itemclass0
IF rditem >= 10000 AND rditem <= 19999 THEN : CALL Itemclass1
IF rditem >= 20000 AND rditem <= 29999 THEN : CALL Itemclass2
IF rditem >= 30000 AND rditem <= 39999 THEN : CALL Itemclass3
IF rditem >= 40000 AND rditem <= 49999 THEN : CALL Itemclass4
wsval = wsmin + wsmax
msval = msmin + msmax
mssval = msbst * 2
mgval = ((mgmin + mgmax) * ctimes * (freeze + 1) * (direct + 1)) - mpcost
END SUB
SUB savechar
DIM c(9)
DIM filename.$(9)
CALL charback
wssav = ws
mssav = ms
ysav = y
wssv = ws
mssv = ms
ysv = y
filename.$(1) = "c:char1.adv"
filename.$(2) = "c:char2.adv"
filename.$(3) = "c:char3.adv"
filename.$(4) = "c:char4.adv"
filename.$(5) = "c:char5.adv"
filename.$(6) = "c:char6.adv"
filename.$(7) = "c:char7.adv"
filename.$(8) = "c:char8.adv"
filename.$(9) = "c:char9.adv"
LOCATE 4, 3
PRINT "Choose a slot to save your character"
OPEN "c:charlist.adv" FOR INPUT AS #1
FOR x = 1 TO 9
INPUT #1, c(x)
NEXT x
CLOSE #1
FOR z = 1 TO 9
IF c(z) = 0 THEN
COLOR cv5
LOCATE 5 + z, 3
PRINT z
ELSE
COLOR cv2
OPEN filename.$(z) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
LOCATE 5 + z, 3
PRINT z; " - "; name.$
CLOSE #1
END IF
NEXT z
COLOR cv2
LOCATE 17, 3
PRINT " Q";
DO
call.$ = INKEY$
LOOP WHILE call.$ <> "1" AND call.$ <> "2" AND call.$ <> "3" AND call.$ <> "4" AND call.$ <> "5" AND call.$ <> "1" AND call.$ <> "6" AND call.$ <> "7" AND call.$ <> "8" AND call.$ <> "9" AND call.$ <> "q"
IF call.$ = "1" THEN
c(1) = 1
OPEN filename.$(1) FOR OUTPUT AS #1
END IF
IF call.$ = "2" THEN
c(2) = 1
OPEN filename.$(2) FOR OUTPUT AS #1
END IF
IF call.$ = "3" THEN
c(3) = 1
OPEN filename.$(3) FOR OUTPUT AS #1
END IF
IF call.$ = "4" THEN
c(4) = 1
OPEN filename.$(4) FOR OUTPUT AS #1
END IF
IF call.$ = "5" THEN
c(5) = 1
OPEN filename.$(5) FOR OUTPUT AS #1
END IF
IF call.$ = "6" THEN
c(6) = 1
OPEN filename.$(6) FOR OUTPUT AS #1
END IF
IF call.$ = "7" THEN
c(7) = 1
OPEN filename.$(7) FOR OUTPUT AS #1
END IF
IF call.$ = "8" THEN
c(8) = 1
OPEN filename.$(8) FOR OUTPUT AS #1
END IF
IF call.$ = "9" THEN
c(9) = 1
OPEN filename.$(9) FOR OUTPUT AS #1
END IF
ws = 0: ms = 0: y = 0
item1 = 1: item2 = 10000: item3 = 0: armor1 = 0: armor2 = 0
pack1 = 0: pack2 = 0: pack3 = 0: pack4 = 0: pack5 = 0
spell1 = 20000: spell2 = 0: spell3 = 0
IF call.$ <> "q" THEN
LOCATE 17, 3
INPUT "Desired name"; name.$
WRITE #1, name.$, wssav, mssav, ysav, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CLOSE #1
END IF
OPEN "c:charlist.adv" FOR OUTPUT AS #1
FOR w = 1 TO 9
WRITE #1, c(w)
NEXT w
CLOSE #1
END SUB
SUB selection
DIM c(10)
DIM filename.$(9)
DO
opencheck = 0
CALL charback
LOCATE 2, 11
PRINT "CHOOSE A CHARACTER"
filename.$(1) = "c:char1.adv"
filename.$(2) = "c:char2.adv"
filename.$(3) = "c:char3.adv"
filename.$(4) = "c:char4.adv"
filename.$(5) = "c:char5.adv"
filename.$(6) = "c:char6.adv"
filename.$(7) = "c:char7.adv"
filename.$(8) = "c:char8.adv"
filename.$(9) = "c:char9.adv"
COLOR cv2
LOCATE 4, 3
PRINT "Player "; plyr; ": Choose Character"
OPEN "c:charlist.adv" FOR INPUT AS #1
FOR x = 1 TO 9
INPUT #1, c(x)
NEXT x
CLOSE #1
FOR z = 1 TO 9
IF c(z) = 0 THEN
COLOR cv5
LOCATE 5 + z, 3
PRINT z
ELSE
COLOR cv2
OPEN filename.$(z) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
LOCATE 5 + z, 3
PRINT z; " - "; name.$
CLOSE #1
END IF
NEXT z
COLOR cv2
LOCATE 17, 3
PRINT " Q";
DO
call.$ = INKEY$
LOOP WHILE call.$ <> "1" AND call.$ <> "2" AND call.$ <> "3" AND call.$ <> "4" AND call.$ <> "5" AND call.$ <> "6" AND call.$ <> "7" AND call.$ <> "8" AND call.$ <> "9" AND call.$ <> "q"
IF call.$ = "q" THEN
ELSE
sel = ASC(call.$) - 48
IF sel >= 1 AND sel <= 9 AND sel <> taken AND call.$ <> "q" THEN
IF c(sel) = 1 THEN
opencheck = 1
taken = sel
OPEN filename.$(sel) FOR INPUT AS #1
INPUT #1, name.$(plyr), ws(plyr), ms(plyr), y(plyr), item1(plyr), item2(plyr), item3(plyr), armor1(plyr), armor2(plyr), pack1(plyr), pack2(plyr), pack3(plyr), pack4(plyr), pack5(plyr), spell1(plyr), spell2(plyr), spell3(plyr)
CLOSE #1
player.$(plyr) = filename.$(sel)
END IF
END IF
IF opencheck = 0 THEN
LOCATE 17, 3
PRINT "Character does not exist!"
DO: LOOP WHILE INKEY$ = ""
END IF
END IF
LOOP WHILE opencheck = 0 AND call.$ <> "q"
END SUB
SUB spellatk
nope = 0
DO
COLOR 0
LOCATE 5, 15
PRINT " "
LOCATE 5, 15
PRINT item.$
COLOR 0
LOCATE 7, 10
PRINT "Weapon Strength: "; wsval
LOCATE 8, 10
PRINT "Magic Strength: "; msval
LOCATE 9, 10
PRINT "Channel Strength: "; mssval
LOCATE 11, 8
PRINT "Attack as: ";
PRINT "W, M, C, or R"
COLOR cv2
LOCATE 5, 10
PRINT "Choose Spell"
rditem = spell1(plyr)
CALL itemstart
LOCATE 7, 13
COLOR cv2
PRINT "A: "; item.$; " Lv."; level
LOCATE 8, 13
COLOR cv5
PRINT "Magic Value:"; mgval
rditem = spell2(plyr)
CALL itemstart
LOCATE 10, 13
COLOR cv2
PRINT "B: "; item.$; " Lv."; level
LOCATE 11, 13
COLOR cv5
PRINT "Magic Value:"; mgval
rditem = spell3(plyr)
CALL itemstart
LOCATE 13, 13
COLOR cv2
PRINT "C: "; item.$; " Lv."; level
LOCATE 14, 13
COLOR cv5
PRINT "Magic Value:"; mgval
DO: call.$ = INKEY$: LOOP WHILE call.$ <> "a" AND call.$ <> "b" AND call.$ <> "c"
IF call.$ = "a" THEN : rditem = spell1
IF call.$ = "b" THEN : rditem = spell2
IF call.$ = "c" THEN : rditem = spell3
CALL itemstart
IF mp(plyr) - mpcost < 0 THEN nope = 1 ELSE mp(plyr) = mp(plyr) - mpcost
IF nope = 1 THEN : ELSE : atk = (INT(RND * (mgmax - mgmin)) + mgmin) * ctimes
PRINT nope; mgmax; mgmin; ctimes
INPUT go.$
LOOP WHILE nope = 1
END SUB
SUB title
'*******************
'Border
a = cv1
'Author
b = cv2
'*******************
'ASCII letters
c = 7
'Non-ASCII letters
d = cvb1
'*******************
'"Press:"
e = 0
'Option numbers
f = 7
'Options
g = cvb2
'*******************
'Version
h = 4
COLOR a
PRINT "////////////////////////////////////////"
PRINT "/ /"
PRINT "/ ";
COLOR b
PRINT "CHAD ZAWISTOWSKI'S";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "____";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "| \";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "| /\ \ _";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "| \/ / / \";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "| / | | |";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "| \ ";
COLOR d
PRINT "ATTLE";
COLOR c
PRINT " | | |";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "| /\ \ \ \ ";
COLOR d
PRINT "YSTEM";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "| \/ / | | |";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "|___/ | | |";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR c
PRINT "\_/";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR e
PRINT "PRESS:";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR f
PRINT " 1)";
COLOR g
PRINT " BATTLE ";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR f
PRINT " 2)";
COLOR g
PRINT " CREATE A CHARACTER";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR f
PRINT " 3)";
COLOR g
PRINT " DELETE CHARACTERS ";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR f
PRINT " 4)";
COLOR g
PRINT " VIEW STATS ";
COLOR a
PRINT " /"
PRINT "/ ";
COLOR f
PRINT " 5)";
COLOR g
PRINT " EXIT GAME ";
COLOR a
PRINT " /"
PRINT "/";
COLOR h
PRINT " v0.35";
COLOR a
PRINT "/"
PRINT "////////////////////////////////////////"
'PRINT "/ /"
END SUB
SUB turns
OPEN player.$(1) FOR INPUT AS #1
INPUT #1, name.$(1), ws(1), ms(1), y(1), item1(1), item2(1), item3(1), armor1(1), armor2(1), pack1(1), pack2(1), pack3(1), pack4(1), pack5(1), spell1(1), spell2(1), spell3(1)
CLOSE #1
OPEN player.$(2) FOR INPUT AS #1
INPUT #1, name.$(2), ws(2), ms(2), y(2), item1(2), item2(2), item3(2), armor1(2), armor2(2), pack1(2), pack2(2), pack3(2), pack4(2), pack5(2), spell1(2), spell2(2), spell3(2)
CLOSE #1
DO
':+:+: Displays border, health bars, turn, and player :+:+:
CLS
CALL border
COLOR cv5
IF plyr <> 0 THEN
IF plyr = 1 THEN
LOCATE 16, 35
ELSE
LOCATE 16, 4
END IF
PRINT "-"; dmg
END IF
IF plyr = 1 THEN
plyr = 2
dfsplyr = 1
ELSE
plyr = 1
dfsplyr = 2
turn = turn + 1
END IF
'Displays Health bars
hplayer = 128
COLOR cv3
IF hp(1) <= 66 THEN COLOR cv8
IF hp(1) <= 33 THEN COLOR cv7
FOR health1 = hplayer TO hplayer - hp(1) STEP -1
PSET (8, health1)
NEXT health1
COLOR cv3
IF hp(2) <= 50 THEN COLOR cv8
IF hp(2) <= 25 THEN COLOR cv7
FOR health2 = hplayer TO hplayer - hp(2) STEP -1
PSET (310, health2)
NEXT health2
LOCATE 18, 3
IF plyr = 1 THEN COLOR 7 ELSE COLOR 8
PRINT name.$(1)
LOCATE 20, 3
COLOR cv10
PRINT "W:"; ws(1);
COLOR cv8
PRINT "M:"; ms(1)
LOCATE 18, 31
IF plyr = 2 THEN COLOR 7 ELSE COLOR 8
PRINT name.$(2)
LOCATE 20, 30
COLOR cv10
PRINT "W:"; ws(2);
COLOR cv8
PRINT "M:"; ms(2)
COLOR cv3
LOCATE 3, 2
PRINT "Turn:"; turn
LOCATE 3, 17
PRINT name.$(plyr)
LOCATE 3, 30
PRINT "Player:"; plyr;
IF hp(plyr) <= 0 THEN
CALL win: wind = 1
ELSE
':+:+: Player Attack :+:+:
DO
OPEN player.$(plyr) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CLOSE #1
COLOR cv2
LOCATE 5, 15
PRINT "Choose"
COLOR cv2
rditem = item1
CALL itemstart
LOCATE 7, 13
PRINT "A: "; item.$
rditem = item2
CALL itemstart
LOCATE 8, 13
PRINT "B: "; item.$
' rditem = item3 ' Item3 slot will be for Also, don't forget
' CALL itemstart ' amulets and other objects to add armor and
' ' of power in the next wselease amulets to the
' LOCATE 9, 13 ' don't forget to add the prize thingy!
' PRINT "C: "; item.$ ' "c" to the DO LOOP
DO: call.$ = INKEY$: LOOP WHILE call.$ <> "a" AND call.$ <> "b"
IF call.$ = "a" THEN rditem = item1
IF call.$ = "b" THEN rditem = item2
CALL itemstart
LOCATE 5, 15
PRINT " "
LOCATE 5, 15
COLOR cv2
PRINT item.$
COLOR cv2
LOCATE 7, 10
PRINT "Weapon Strength: "; wsval
LOCATE 8, 10
PRINT "Magic Strength: "; msval
LOCATE 9, 10
PRINT "Channel Strength: "; mssval
LOCATE 11, 8
COLOR cv3
PRINT "Attack as: ";
COLOR cv3
PRINT "W, M, C, or R"
DO: call.$ = INKEY$: LOOP WHILE call.$ <> "w" AND call.$ <> "m" AND call.$ <> "c" AND call.$ <> "r"
IF call.$ = "r" THEN
ELSE
IF call.$ = "w" THEN atk = INT(RND * (wsmax - wsmin + ws(plyr)) + wsmin): atk.$ = "ws"
IF call.$ = "m" THEN atk = INT(RND * (msmax - msmin + ms(plyr)) + wsmin): atk.$ = "ms"
IF call.$ = "c" THEN CALL spellatk
END IF
LOOP WHILE call.$ = "r"
IF atk.$ = "ws" THEN
dfs = ws(dfsplyr)
END IF
IF atk.$ = "ms" THEN
dfs = ms(dfsplyr)
END IF
IF atk.$ = "c" THEN
dfs = ms(dfsplyr)
END IF
IF spellcheck = 1 THEN
IF direct = 1 THEN dfs = 0
IF freeze > 0 AND skip(dfsplyr) = 0 THEN skip(dfsplyr) = freeze
IF charge > 0 AND skip(plyr) = 0 THEN skip(plyr) = charge
END IF
dmg = atk - dfs
PRINT atk; dfs; dmg
INPUT go.$
IF dmg < 0 THEN dmg = 0
hp(dfsplyr) = hp(dfsplyr) - dmg
IF call.$ = "q" THEN wind = 1
END IF
LOOP WHILE wind <> 1
END SUB
SUB win
RANDOMIZE TIMER
winner = dfsplyr
ws(winner) = INT(ws(winner) + ((ws(plyr) + 1) * (y(winner) + 1)) / (((ws(winner) + 1) * 2)))
ms(winner) = INT(ms(winner) + ((ms(plyr) + 1) * (y(winner) + 1)) / (((ms(winner) + 1) * 2)))
prize = INT(RND * 18)
IF prize = 0 THEN
' Dagger
pz = 1
END IF
IF prize = 1 THEN
' Red Dagger
pz = 2
END IF
IF prize = 2 THEN
' Blue Sword
pz = 3
END IF
IF prize = 3 THEN
' Sword
pz = 1000
END IF
IF prize = 4 THEN
' Red Sword
pz = 1001
END IF
IF prize = 5 THEN
' Blue Sword
pz = 1002
END IF
IF prize = 6 THEN
' Longsword
pz = 2000
END IF
IF prize = 7 THEN
' Read Longsword
pz = 2001
END IF
IF prize = 8 THEN
' Blue Longsword
pz = 2002
END IF
IF prize = 9 THEN
' Wooden Staff
pz = 10000
END IF
IF prize = 10 THEN
' Read Staff
pz = 10001
END IF
IF prize = 11 THEN
' Blue Staff
pz = 10002
END IF
IF prize = 12 THEN
' Battlestaff
pz = 11000
END IF
IF prize = 13 THEN
' Read Battlestaff
pz = 11001
END IF
IF prize = 14 THEN
' Blue Battlestaff
pz = 11002
END IF
IF prize = 15 THEN
' Weapon Skill Boost
boost = 1
END IF
IF prize = 16 THEN
' Magic Skill Boost
boost = 2
END IF
IF prize = 17 THEN
' Intelligence Skill Boost
boost = 3
END IF
IF boost > 0 THEN
CLS
CALL border
LOCATE 3, 3
COLOR cv10
PRINT "Player"; winner; " won!"
COLOR cv5
LOCATE 5, 3
PRINT "Prize: "; item.$
IF boost = 1 THEN ws(winner) = ws(winner) + 2: item.$ = "Weapon Skill Boost"
IF boost = 2 THEN ms(winner) = ms(winner) + 2: item.$ = "Magic Skill Boost"
IF boost = 3 THEN y(winner) = y(winner) + 2: item.$ = "Intelligence Skill Boost"
CLS
CALL border
LOCATE 3, 3
COLOR cv10
PRINT "Player"; winner; " won!"
COLOR cv5
LOCATE 5, 3
PRINT "Prize: "; item.$
OPEN player.$(winner) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CLOSE #1
ws = ws(winner): ms = ms(winner): y = y(winner)
OPEN player.$(winner) FOR OUTPUT AS #1
WRITE #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CLOSE #1
ELSE
DO: Reado = 0
rditem = pz
CALL itemstart
CLS
CALL border
LOCATE 3, 3
COLOR cv10
PRINT "Player"; winner; " won!"
COLOR cv5
LOCATE 5, 3
PRINT "Prize: "; item.$
COLOR cv3
LOCATE 7, 3
PRINT "Weapon Strength: "; wsval
LOCATE 8, 3
PRINT "Magic Strength: "; msval
LOCATE 9, 3
PRINT "Channel Strength: "; mssval
OPEN player.$(winner) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CLOSE #1
LOCATE 13, 5
COLOR cv5
PRINT "Equipped"
COLOR cv2
rditem = item1
CALL itemstart
LOCATE 14, 5
PRINT USING "A: \ \"; item.$
rditem = item2
CALL itemstart
LOCATE 15, 5
PRINT USING "B: \ \"; item.$
LOCATE 18, 5
PRINT "Q: "; "Toss Prize"
LOCATE 13, 25
COLOR cv5
PRINT "Pack"
COLOR cv2
rditem = pack1
CALL itemstart
LOCATE 14, 25
PRINT USING "C: \ \"; item.$
rditem = pack2
CALL itemstart
LOCATE 15, 25
PRINT USING "D: \ \"; item.$
rditem = pack3
CALL itemstart
LOCATE 16, 25
PRINT USING "E: \ \"; item.$
rditem = pack4
CALL itemstart
LOCATE 17, 25
PRINT USING "F: \ \"; item.$
rditem = pack5
CALL itemstart
LOCATE 18, 25
PRINT USING "G: \ \"; item.$
DO: call.$ = INKEY$
LOOP WHILE call.$ <> "a" AND call.$ <> "b" AND call.$ <> "c" AND call.$ <> "d" AND call.$ <> "e" AND call.$ <> "f" AND call.$ <> "g" AND call.$ <> "q"
IF call.$ = "q" THEN
ELSE
OPEN player.$(winner) FOR INPUT AS #1
INPUT #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CLOSE #1
IF call.$ = "a" THEN rditem = item1: CALL itemstart: item1 = pz
IF call.$ = "b" THEN rditem = item2: CALL itemstart: item2 = pz
IF call.$ = "c" THEN rditem = pack1: CALL itemstart: pack1 = pz
IF call.$ = "d" THEN rditem = pack2: CALL itemstart: pack2 = pz
IF call.$ = "e" THEN rditem = pack3: CALL itemstart: pack3 = pz
IF call.$ = "f" THEN rditem = pack4: CALL itemstart: pack4 = pz
IF call.$ = "g" THEN rditem = pack5: CALL itemstart: pack5 = pz
CLS
COLOR cv1
CALL border
LOCATE 2, 10
COLOR cv4
PRINT "Erase "; item.$; "? <y/n>"
COLOR cv6
DO: call.$ = INKEY$: LOOP WHILE call.$ <> "y" AND call.$ <> "n"
IF call.$ = "y" THEN
OPEN player.$(winner) FOR OUTPUT AS #1
WRITE #1, name.$, ws, ms, y, item1, item2, item3, armor1, armor2, pack1, pack2, pack3, pack4, pack5, spell1, spell2, spell3
CLOSE #1
END IF
END IF
LOOP WHILE Reado = 1
END IF
END SUB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment