This is the page for my AmigaBASIC experience point calculator program on my campaign World, Crestar.
I left out anything I felt was copyrighted.
‘ Experience points program CLEAR ,150000, 20000
‘ X = 0 : xpgp.all.get$ = “FALSE” : xpgp.all = 0
‘ setup of experience points tables
‘ DIM fighter&(23), thief&(23), magicuser&(23), cleric&(23), illusionist&(23), ranger&(23), paladin&(23) DIM druid&(23), monk&(23), bard&(23), barbarian&(23), cavalier&(23), minstrel&(23), thiefacr&(18) DIM CHINGRP$(150)
‘
‘ barbarian experience points
‘
‘ data goes here as array assignments‘
‘ bard experience points
‘
‘ data goes here‘
‘ cavalier experience points
‘
‘ data goes here‘
‘ cleric experience points
‘
‘ data goes here‘
‘ druid experience points
‘
‘ data goes here‘
‘ fighter experience points
‘
‘ data goes here‘
‘ illusionist experience points
‘
‘ data goes here‘
‘ magicuser experience points
‘
‘ data goes here‘
‘ monk experience points
‘
‘ data goes here‘
‘ paladin experience points
‘
‘ data goes here‘
‘ ranger experience points
‘
‘ data goes here‘
‘ thief experience points
‘
‘ data goes here‘
‘ minstrel experience points
‘
‘ data goes here‘
‘ thief acrobat experience points
‘
‘ data goes here‘
‘
‘ initialization of variables
‘
7000 total.silver = 0 : total.electrum = 0 : total.gold = 0 total.platinum = 0 : total.gem = 0 : total.jewelry = 0 misc.item.gp = 0 : total.copper = 0 : sold.magic.gp = 0 gem.eval = 0 : jewel.charges = 0 : jewel.eval = 0
‘ misc.item.charges = 0 : misc.item.eval = 0 : total.charges = 0 gem.charges = 0 : number.in.group = 1 : WW = 100
‘ charge.per.char = 0 : EW = 0 : total.xpgp = 0 : character.name$ = ““ char.class.1$ = “” : char.class.2$ = “” : char.class.3$ = “” class.1.bonus = 0 : class.2.bonus = 0 : class.3.bonus = 0
‘ total.xp.1 = 0 : total.xp.2 = 0 : total.xp.3 = 0
‘ total.magicxp.13 = 0 : total.xp.magic.123 = 0 : total.magicxp.23 = 0 total.magicxp.1 = 0 : total.magicxp.2 = 0 : total.magicxp.3 = 0 total.monster.xp = 0 : total.xpgp.1 = 0 : total.xpgp.2 = 0 total.magicxp.12 = 0 : total.xpgp.3 = 0 : total.xpgp.12 = 0 BP = 0 : total.sold.magic.gp = 0 : EY = 0 total.xpgp.123 = 0 : total.xpgp.23 = 0
‘ L$ = “ Magic Item XPs (0=continue)” : M$ = “ Total Magic XPs for “
‘ tot.a = 0 : tot.b = 0 : tot.c = 0 : tot.d = 0 : tot.e = 0 tot.f = 0 : tot.g = 0 : tot.h = 0 : tot.i = 0 : tot.j = 0
‘ next.xp.11 = 0 : next.xp.12 = 0 : next.xp.21 = 0 : NN$ = “” next.xp.22 = 0 : next.xp.31 = 0 : next.xp.32 = 0
‘ total.magic.gp = 0 : group.number = 0 GOTO 10860
‘
group: CLS : PRINT “ Enter number of group.” INPUT group.number RETURN
‘
all.get: CLS : PRINT : PRINT “Does all of this group get the same XPGP amount ?” INPUT all.xpgp$ IF UCASE$(all.xpgp$) = “Y” OR UCASE$(all.xpgp$) = “YES” THEN xpgp.all.get$ = “TRUE” PRINT : PRINT “Enter XPGP all of group gets.” : INPUT xpgp.all END IF
RETURN
‘
divide.it: CLS: PRINT: PRINT “ Divide two numbers.” : PRINT PRINT “enter first number of first / second.” : INPUT tot.a PRINT “Enter second number of first / second.” : INPUT tot.b PRINT: PRINT “first / second = “;tot.a/tot.b PRINT “ Pressto continue.” : INPUT echi$
RETURN
‘
multiply.it: CLS: PRINT: PRINT “ Multiply two numbers.” : PRINT PRINT “enter first number of first * second.” : INPUT tot.c PRINT “Enter second number of first * second.” : INPUT tot.d PRINT: PRINT “first * second = “;tot.c*tot.d PRINT “ Pressto continue.” : INPUT echi$
RETURN
‘
add.it: CLS: PRINT: PRINT “ Add two numbers.” : PRINT PRINT “enter first number of first + second.” : INPUT tot.e PRINT “Enter second number of first + second.” : INPUT tot.f PRINT: PRINT “first + second = “;tot.e+tot.f PRINT “ Pressto continue.” : INPUT echi$
RETURN
‘
add.multiple.it: CLS : PRINT : PRINT “Totalizer for a string of numbers.” PRINT “ Total = “; tot.g PRINT “ “;tot.h; “ (Just entered)” INPUT tot.h IF tot.h = 0 THEN RETURN tot.i = tot.h + tot.g : tot.g = tot.i : GOTO add.multiple.it
‘
list.it: PRINT : PRINT “LIST of characters.” FOR ggr = 1 TO 150 IF CHINGRP$(ggr) <> “” THEN PRINT ggr;”) “; CHINGRP$(ggr) END IF NEXT ggr PRINT : INPUT “ Pressfor Main Menu”; N$ : RETURN
RETURN
‘
redo.1: this.and.old.1 = total.xp.1 + old.1 level.next.11 = next.xp.11 – this.and.old.1 level.next.12 = next.xp.12 – this.and.old.1
RETURN
‘
redo.2: this.and.old.2 = total.xp.2 + old.2 level.next.21 = next.xp.21 – this.and.old.2 level.next.22 = next.xp.22 – this.and.old.2
RETURN
‘
redo.3: this.and.old.3 = total.xp.3 + old.3 level.next.31 = next.xp.31 – this.and.old.3 level.next.32 = next.xp.32 – this.and.old.3
RETURN
‘
enter.class: PRINT : PRINT “Pick the character class by typing the number in front of it.” PRINT : PRINT “ 1 Barbarian 2 Bard” PRINT “ 3 Cavalier 4 Cleric” PRINT “ 5 Druid 6 Fighter” PRINT “ 7 Illusionist 8 M-U” PRINT “ 9 Monk 10 Paladin” PRINT “11 Ranger 12 Thief” PRINT “13 Thief-Acrobat ( 6-23 )” INPUT samename
‘ IF samename = 1 THEN george$ = “Barbarian” ELSEIF samename = 2 THEN george$ = “Bard” ELSEIF samename = 3 THEN george$ = “Cavalier” ELSEIF samename = 4 THEN george$ = “Cleric” ELSEIF samename = 5 THEN george$ = “Druid” ELSEIF samename = 6 THEN george$ = “Fighter” ELSEIF samename = 7 THEN george$ = “Illusionist” ELSEIF samename = 8 THEN george$ = “M-U” ELSEIF samename = 9 THEN george$ = “Monk” ELSEIF samename = 10 THEN george$ = “Paladin” ELSEIF samename = 11 THEN george$ = “Ranger” ELSEIF samename = 12 THEN george$ = “Thief” ELSEIF samename = 13 THEN george$ = “Thief-Acrobat” END IF
RETURN
‘
‘ original group
CHART1:
‘
FOR J = 1 TO 16 CLS : PRINT “Enter names of characters and the players playing them in the adventure group. ( 1-15)” PRINT “In the form character name and classes ][ player name” PRINT : PRINT “Use any punctuation except double quotes !” PRINT : PRINT “Type QUIT or Q when finished.” PRINT : PRINT “Name; class & level/class & level/class & level” PRINT “ number just entered… “; J – 1 INPUT CHINGRP$(J)
‘ IF UCASE$(CHINGRP$(J)) = “QUIT” OR UCASE$(CHINGRP$(J)) = “Q” THEN PRINT “ 1. view list of starting characters.” PRINT “ 2. print list of starting characters.” PRINT “ [ printer nedds to be on.]” PRINT “ 3. just go back to main menu without printout or viewing.” INPUT GHD
‘ IF GHD = 1 THEN ‘ screen list J3 = J : J = 50 PRINT : PRINT TAB;“Starting Character list.” PRINT “ Dungeon/adventure name = “;name.of.dungeon$ PRINT “ Game Date = “; game.date$ : PRINT
‘ FOR L = 1 TO J3-1 IF CHINGRP$(L) <> “QUIT” OR CHINGRP$(L) <> “Q” THEN PRINT L;”) “;CHINGRP$(L) END IF NEXT L
‘ ELSEIF GHD = 2 THEN ‘ dump to disk J3 = J : J = 50 OPEN “A”,#5,“df2:starting.characters” PRINT #5, “ “ PRINT #5, TAB;“Starting Character list.” PRINT #5, “ Dungeon/adventure name = “;name.of.dungeon$ PRINT #5, “ Game Date = “; game.date$ PRINT #5, “ group number = “;group.number PRINT #5, “ “
‘ FOR L = 1 TO J3-1 IF CHINGRP$(L) <> “QUIT” OR CHINGRP$(L) <> “Q” THEN PRINT #5, L;”) “;CHINGRP$(L) END IF NEXT L CLOSE #5 ELSEIF GHD = 3 THEN RETURN END IF END IF
NEXT J
‘
PRINT : INPUT “ Pressfor Main Menu”; N$
RETURN‘ inactivating characters
CHART2: CLS : PRINT “Inactivating characters input.” PRINT “ Dungeon/adventure name = “;name.of.dungeon$ PRINT “ Game Date = “; game.date$ : PRINT
‘ FOR J3 = 1 TO 15 FOR LA = 1 TO 15 IF CHINGRP$(LA) <> “QUIT” OR CHINGRP$(LA) <> “Q” THEN PRINT LA;”) “;CHINGRP$(LA) END IF NEXT LA
‘ PRINT : PRINT “Number of character to inactivate ? (Q = Quit) “ INPUT, (LZZ)
‘ IF UCASE$(CHINGRP$(LZZ)) <> “Q” OR UCASE$(CHINGRP$(LZZ)) <> “QUIT” THEN CHINGRP$(LZZ+45) = CHINGRP$(LZZ) END IF
‘ IF UCASE$(CHINGRP$(L)) = “Q” OR UCASE$(CHINGRP$(L)) = “QUIT” THEN J4 = L
‘ PRINT “ 1. view list of inactivating characters.” PRINT “ 2. dump list to disk of inactivating characters.” PRINT “ 3. just go back to main menu without printout or viewing.” INPUT, GHD
‘ IF GHD = 1 THEN ‘ screen list J3 = J : J = 50 ELSEIF GHD = 2 THEN ‘ dump to disk J3 = J : J = 50 OPEN “A”,#5,“df2:inactivate.characters” PRINT #5, “ “ PRINT #5, TAB;“Inactivating character list.” PRINT #5, “ Dungeon/adventure name = “;name.of.dungeon$ PRINT #5, “ Game Date = “; game.date$ PRINT #5, “ “
‘ FOR MA = WW TO J4 IF UCASE$(CHINGRP$(MA)) <> “QUIT” OR UCASE$(CHINGRP$(MA)) <> “Q” THEN PRINT #5, MA;”) “;CHINGRP$(MA) END IF NEXT MA CLOSE #5
‘ END IF ELSEIF GHD = 3 THEN RETURN END IF
‘ CLS NEXT LZZ
PRINT : INPUT “ Pressfor Main Menu”; N$
RETURN‘ activating characters
CHART3: CLS : PRINT “ACTIVATING characters input” PRINT : INPUT “HAVE YOU DONE THIS EARLIER ON this ADVENTURE ? (Y/N) “,BB$
‘ IF UCASE$(BB$) = “YES” OR UCASE$(BB$) = “Y” THEN WW = J5 + 1 : WX = J5 + 16 ELSE WW = J4 + 1 : WX = J4 + 16 END IF
‘ FOR L = WW TO WX PRINT : PRINT “Name of the new character ? (Q = quit) “ PRINT “ new characters = “; L-1 INPUT CHINGRP$(L)
‘ IF UCASE$(CHINGRP$(L)) = “Q” OR UCASE$(CHINGRP$(L)) = “QUIT” THEN J5 = L : L = WX + 1
‘ PRINT “ 1. view activating character list.” PRINT “ 2. dump list to disk of activating character list.” PRINT “ 3. just go to main menu without viewing or printout.” INPUT GHS
‘ IF GHS = 1 THEN PRINT TAB;“ACTIVATING characters.” PRINT “ Dungeon/adventure name = “;name.of.dungeon$ PRINT “ Game Date = “; game.date$ : PRINT
‘ END IF FOR MA = WW TO J5 IF CHINGRP$(MA) <> “Q” OR CHINGRP$(MA) <> “QUIT” THEN PRINT #5, MA;”) “; CHINGRP$(MA) END IF NEXT MA ELSEIF GHS = 2 THEN OPEN “A”,#5,“df2:activate.characters” PRINT #5, “ “ PRINT #5, TAB;“ACTIVATING characters.” PRINT #5, “ Dungeon/adventure name = “;name.of.dungeon$ PRINT #5, “ Game Date = “; game.date$
‘ FOR MA = WW TO J5 IF CHNIGRP$(MA) <> “Q” OR CHINGRP$(MA) <> “QUIT” THEN PRINT #5, MA;”) “; CHINGRP$(MA) END IF NEXT MA CLOSE #5 ELSEIF GHS = 3 THEN RETURN END IF
‘ NEXT L
‘
PRINT : INPUT “ Pressfor Main Menu”; N$
RETURN
‘
‘ adventure group character list menu
CHARTMENU:
CLS : PRINT PRINT “Type the number desired and press“ : PRINT PRINT “1. original group list input” : PRINT PRINT “2. inactivating characters list input” : PRINT PRINT “3. activating characters list input” : PRINT PRINT “4. Not needed after all.” INPUT B%
‘ IF B% < 1 OR B% > 4 GOTO CHARTMENU ON B% GOSUB CHART1,CHART2,CHART3, RETURN RETURN
‘
PRINT : PRINT “1. Dice Generator”
‘
‘ Dice Program
50 RANDOMIZE TIMER CLS : C# = 0 : CB# = 0 : GG& = 0 PRINT “ DICE GENERTOR [Maximum number of sides is 1 million]” PRINT ,,” [ (1 × 10+6) minimum is 1 ].” PRINT : PRINT “ HOW MANY SIDES?” INPUT AR#
‘ IF AR# > 1000000# THEN PRINT “ Too many sides. 1 million maximum.” FOR k = 1 TO 32765 : NEXT k END IF
‘ IF AR# < 1 OR AR# > 1000000# GOTO 50
‘ PRINT : INPUT “ Number of Dice ? “,BE# PRINT : INPUT “ Adds per die ? “,APD# PRINT : INPUT “ Adds for all dice ? “,AFAD# CLS : PRINT
‘ WHILE (C# <> BE# OR C# < BE#) H# = INT + 1 + APD# PRINT H#;”+”; GG& = GG& + 1
‘ IF (GG& >= 19 AND AR# >= 1 AND AR# < 10) THEN PRINT : PRINT : GG& = 0 END IF
‘ IF (GG& >= 15 AND AR# >= 10 AND AR# < 100) THEN PRINT : PRINT : GG& = 0 END IF
‘ IF (GG& >= 12 AND AR# >= 100 AND AR# < 1000) THEN PRINT : PRINT : GG& = 0 END IF
‘ IF (GG& >= 10 AND AR# >= 1000 AND AR# < 10000) THEN PRINT : PRINT : GG& = 0 END IF
‘ IF (GG& >= 9 AND AR# >= 10000 AND AR# < 100000#) THEN PRINT : PRINT : GG& = 0 END IF
‘ IF (GG& >= 9 AND AR# >= 100000# AND AR# < 1000000# ) THEN PRINT : PRINT : GG& = 0 END IF
‘ IF (GG& >= 7 AND AR# = 1000000#) THEN PRINT : PRINT : GG& = 0 END IF
‘ C# = C# +1# : CB# = CB# + H# WEND
‘ CB# = CB# + AFAD# : PRINT : PRINT
‘ PRINT “ Total Roll =”;CB#;” ON “;BE#;“d”;AR# : PRINT PRINT “+”;APD#;” adds per die +”;AFAD#;” add for all dice” : PRINT INPUT “ Finished with the dice generator (y/n)? “,A$ IF UCASE$(A$) = “YES” OR UCASE$(A$) = “Y” THEN RETURN GOTO 50
‘
‘
19009 CLS PRINT : INPUT “ What is the name of this dungeon/adventure “; name.of.dungeon$ PRINT PRINT : INPUT “ Enter the Game date of this groups adventure “; game.date$
RETURN
‘
barbarian.class:
‘
‘ a series of nested if then goes hereRETURN
‘
‘
bard.class:
‘
‘ a series of nested if then goes hereRETURN
‘
cavalier.class:
‘
‘ a series of nested if then goes hereRETURN
‘
cleric.class:
‘
‘ a series of nested if then goes hereRETURN
‘
druid.class:
‘
‘ a series of nested if then goes hereRETURN
‘
fighter.class:
‘
‘ a series of nested if then goes hereRETURN
‘
‘
illusionist.class:
‘
‘ a series of nested if then goes hereRETURN
‘
magicuser.class:
‘
‘ a series of nested if then goes hereRETURN
‘
minstrel.class:
‘
‘ a series of nested if then goes hereRETURN
‘
‘
monk.class:
‘
‘ a series of nested if then goes hereRETURN
‘
paladin.class:
‘
‘ a series of nested if then goes hereRETURN
‘
ranger.class:
‘
‘ a series of nested if then goes hereRETURN
‘
‘
thief.class:
‘
‘ a series of nested if then goes hereRETURN
‘
thief.acrobat.class:
‘
‘ a series of nested if then goes hereRETURN
‘
Get.Any.Magic: INPUT “ Does this character get any magic item XPs ?”; ZZ$
RETURN
‘
‘
Part.1:
‘ class.lev = class.lev.1
‘ IF UCASE$(char.class.1$) = “FIGHTER” THEN GOSUB fighter.class ELSEIF UCASE$(char.class.1$) = “THIEF” THEN GOSUB thief.class ELSEIF UCASE$(char.class.1$) = “M-U” THEN GOSUB magicuser.class ELSEIF UCASE$(char.class.1$) = “CLERIC” THEN GOSUB cleric.class ELSEIF UCASE$(char.class.1$) = “ILLUSIONIST” THEN GOSUB illusionist.class ELSEIF UCASE$(char.class.1$) = “RANGER” THEN GOSUB ranger.class ELSEIF UCASE$(char.class.1$) = “PALADIN” THEN GOSUB paladin.class ELSEIF UCASE$(char.class.1$) = “DRUID” THEN GOSUB druid.class ELSEIF UCASE$(char.class.1$) = “MONK” THEN GOSUB monk.class ELSEIF UCASE$(char.class.1$) = “BARD” THEN GOSUB bard.class ELSEIF UCASE$(char.class.1$) = “BARBARIAN” THEN GOSUB barbarian.class ELSEIF UCASE$(char.class.1$) = “CAVALIER” THEN GOSUB cavalier.class ELSEIF UCASE$(char.class.1$) = “MINSTREL” THEN GOSUB minstrel.class ELSEIF UCASE$(char.class.1$) = “THIEF-ACROBAT” THEN GOSUB thief.acrobat.class END IF
‘
RETURN
‘
Part.2:
‘ class.lev = class.lev.2
‘ IF UCASE$(char.class.2$) = “FIGHTER” THEN GOSUB fighter.class ELSEIF UCASE$(char.class.2$) = “THIEF” THEN GOSUB thief.class ELSEIF UCASE$(char.class.2$) = “M-U” THEN GOSUB magicuser.class ELSEIF UCASE$(char.class.2$) = “CLERIC” THEN GOSUB cleric.class ELSEIF UCASE$(char.class.2$) = “ILLUSIONIST” THEN GOSUB illusionist.class ELSEIF UCASE$(char.class.2$) = “RANGER” THEN GOSUB ranger.class ELSEIF UCASE$(char.class.2$) = “PALADIN” THEN GOSUB paladin.class ELSEIF UCASE$(char.class.2$) = “DRUID” THEN GOSUB druid.class ELSEIF UCASE$(char.class.2$) = “MONK” THEN GOSUB monk.class ELSEIF UCASE$(char.class.2$) = “BARD” THEN GOSUB bard.class ELSEIF UCASE$(char.class.2$) = “BARBARIAN” THEN GOSUB barbarian.class ELSEIF UCASE$(char.class.2$) = “CAVALIER” THEN GOSUB cavalier.class ELSEIF UCASE$(char.class.2$) = “MINSTREL” THEN GOSUB minstrel.class ELSEIF UCASE$(char.class.1$) = “THIEF-ACROBAT” THEN GOSUB thief.acrobat.class END IF
‘
RETURN
‘
Part.3:
‘ class.lev = class.lev.3
‘ IF UCASE$(char.class.3$) = “FIGHTER” THEN GOSUB fighter.class ELSEIF UCASE$(char.class.3$) = “THIEF” THEN GOSUB thief.class ELSEIF UCASE$(char.class.3$) = “M-U” THEN GOSUB magicuser.class ELSEIF UCASE$(char.class.3$) = “ILLUSIONIST” THEN GOSUB illusionist.class ELSEIF UCASE$(char.class.3$) = “RANGER” THEN GOSUB ranger.class ELSEIF UCASE$(char.class.3$) = “PALADIN” THEN GOSUB paladin.class ELSEIF UCASE$(char.class.3$) = “DRUID” THEN GOSUB druid.class ELSEIF UCASE$(char.class.3$) = “MONK” THEN GOSUB monk.class ELSEIF UCASE$(char.class.3$) = “BARD” THEN GOSUB bard.class ELSEIF UCASE$(char.class.3$) = “BARBARIAN” THEN GOSUB barbarian.class ELSEIF UCASE$(char.class.3$) = “CAVALIER” THEN GOSUB cavalier.class ELSEIF UCASE$(char.class.3$) = “MINSTREL” THEN GOSUB minstrel.class ELSEIF UCASE$(char.class.1$) = “THIEF-ACROBAT” THEN GOSUB thief.acrobat.class END IF
‘
RETURN
‘
‘ magic item totalizer for one class
‘
7885 CLS : GOSUB 7160 : PRINT “ Input “; L$ PRINT “ Total = “; total.magicxp.1; M$; char.class.1$ PRINT “ “;BC; “ (Just entered)” INPUT BC IF BC = 0 THEN RETURN CBB = BC + total.magicxp.1 : total.magicxp.1 = CBB : GOTO 7885
‘
‘ magic item totalizer for second class
‘
8260 CLS : GOSUB 7160 : PRINT “ Input “; L$ PRINT “ Total = “; total.magicxp.2; M$; char.class.2$ PRINT “ “; PL; “ (Just entered)” INPUT PL IF PL = 0 THEN RETURN PD = PL + total.magicxp.2 : total.magicxp.2 = PD : GOTO 8260
‘
‘ magic item totalizer for third character class
‘
9180 CLS : GOSUB 7160 : PRINT “ Input “; L$ PRINT “ Total = “; total.magicxp.3; M$; char.class.3$ PRINT “ “; PN; “ (Just entered )” INPUT PN IF PN = 0 THEN RETURN EA = PN + total.magicxp.3 : total.magicxp.3 = EA : GOTO 9180
‘
‘ magic item totalizer for 1st and 2nd character classes
‘
8360 CLS : GOSUB 7160 : PRINT “ Input “; L$ PRINT “ Total = “; total.magicxp.12; M$; char.class.1$;”/”;char.class.2$ PRINT “ “; PM; “ (Just entered)” INPUT PM IF PM = 0 THEN RETURN AW = PM + total.magicxp.12 : total.magicxp.12 = AW : GOTO 8360
‘
‘ magic item totalizer for first and third character classes
‘
9380 CLS : GOSUB 7160 : PRINT “ Input “; L$ PRINT “ Total = “; total.magicxp.13; M$; char.class.1$;”/”;char.class.3$ PRINT “ “; BK; “ (Just entered)” INPUT BK IF BK = 0 THEN RETURN EE = BK + total.magicxp.13 : total.magicxp.13 = EE : GOTO 9380
‘
‘ magic item totalizer for second and third character classes
‘
9280 CLS : GOSUB 7160 : PRINT “ Input “; L$ PRINT “ Total = “; total.magicxp.23; M$; char.class.2$;”/”;char.class.3$ PRINT “ “; BJ; “ (Just entered)” INPUT BJ IF BJ = 0 THEN RETURN EC = BJ + total.magicxp.23 : total.magicxp.23 = EC : GOTO 9280
‘
‘ magic item totalizer for first, second, and third character classes
‘
9480 CLS : GOSUB 7160 : PRINT “ Input “; L$ PRINT “ Total = “; total.magicxp.123; M$; char.class.1$;”/”;char.class.2$;”/”;char.class.3$ PRINT “ “; BL; “ (Just entered)” INPUT BL IF BL = 0 THEN RETURN EG = BL + total.magicxp.123 : total.magicxp.123 = EG : GOTO 9480
‘
‘ enter old.1 xp total
‘
old.1.enter: PRINT” “; char.class.1$; class.lev.1; “ Old XP total = “ INPUT old.1
RETURN
‘
‘ enter old.2 xp total
‘
old.2.enter: PRINT “ “; char.class.2$; class.lev.2; “ Old XP total = “ INPUT old.2
RETURN
‘
‘ enter old.3 xp total
‘
old.3.enter: PRINT “ “; char.class.3$; class.lev.2; “ Old XP total = “ INPUT old.3
RETURN
‘
‘
‘ screen output for first
‘
first.out: PRINT char.class.1$; “ class level “;class.lev.1 PRINT “ This adventure XPs = “; total.xp.1 PRINT “ Old total = “; old.1; “ new total = “; this.and.old.1
‘ IF level.next.11 > 0 THEN PRINT “ XPs needed for Level “; class.lev.1+1; “ = “;level.next.11 ELSEIF level.next.11 <= 0 THEN PRINT “ can go up to level “ ; class.lev.1+1; “ !” PRINT “ XPs over for”; class.lev.1+1; “ are = “;level.next.11 END IF
‘ IF level.next.12 > 0 THEN PRINT “ XPs needed for Level “; class.lev.1+2; “ = “;level.next.12 ELSEIF level.next.12 <= 0 THEN PRINT “ can go up to “; class.lev.1+2; “ level !” PRINT “ XPs over for “; class.lev.1+2; “ are = “;level.next.12 END IF
‘ PRINT “—————————————————”
RETURN
‘
‘ screen output for second
‘
second.out: PRINT char.class.2$; “ class level “;class.lev.2 PRINT “ This adventure XPs = “;total.xp.2 PRINT “ Old total = “; old.2; “ new total = “; this.and.old.2
‘ IF level.next.21 > 0 THEN PRINT “ XPs needed for Level “; class.lev.2+1; “ = “;level.next.21 ELSEIF level.next.21 <= 0 THEN PRINT “ can go up to “; class.lev.2+1; “ level !” PRINT “ XPs over for “; class.lev.2+1; “ are = “;level.next.21 END IF
‘ IF level.next.22 > 0 THEN PRINT “ XPs needed for Level “; class.lev.2+2; “ = “;level.next.22 ELSEIF level.next.22 <= 0 THEN PRINT “ can go up to “; class.lev.2+2; “ level !” PRINT “ XPs over for “; class.lev.2+2; “ are = “;level.next.22 END IF
‘ PRINT “—————————————————”
RETURN
‘
‘ screen output for third
‘
third.out: PRINT char.class.3$; “ class level “;class.lev.3 PRINT “ This adventure XPs = “; total.xp.3 PRINT “ Old total = “; old.3; “ new total = “;this.and.old.3
‘ IF level.next.31 > 0 THEN PRINT “ XPs needed for Level “; class.lev.3+1; “ = “;level.next.31 ELSEIF level.next.31 <= 0 THEN PRINT “ can go up to “; class.lev.3+1; “ level !” PRINT “ XPs over “; class.lev.3+1; “ are = “;level.next.31 END IF
‘ IF level.next.32 > 0 THEN PRINT “ XPs needed for Level “; class.lev.3+2; “ = “;level.next.32 ELSEIF level.next.32 <= 0 THEN PRINT “ can go up to “; class.lev.3+2; “ level !” PRINT “ XPs over “; class.lev.3+2; “ are = “;level.next.32 END IF
‘ PRINT “—————————————————”
RETURN
‘
‘ disk output for first
‘
dsk.first.out: OPEN “A”,#2,“df2:palewood.game” PRINT #2, “ “ PRINT #2, “ “ PRINT #2, “ “ PRINT #2, “ “; char.class.1$; “ class level “;class.lev.1 PRINT #2, “ This adventure XPs = “; total.xp.1 PRINT #2, “ Old total = “; old.1; “ new total = “; this.and.old.1
‘ IF level.next.11 > 0 THEN PRINT #2, “ XPs needed for Level “; class.lev.1+1; “ = “;level.next.11 ELSEIF level.next.11 <= 0 THEN PRINT #2, “ can go up to level “ ; class.lev.1+1; “ !” PRINT #2, “ XPs over for”; class.lev.1+1; “ are = “;level.next.11 END IF
‘ IF level.next.12 > 0 THEN PRINT #2, “ XPs needed for Level “; class.lev.1+2; “ = “;level.next.12 ELSEIF level.next.12 <= 0 THEN PRINT #2, “ can go up to “; class.lev.1+2; “ level !” PRINT #2, “ XPs over for “; class.lev.1+2; “ are = “;level.next.12 END IF
‘ PRINT #2, “—————————————————” CLOSE #2
RETURN
‘
‘ disk output for second
‘
dsk.second.out: OPEN “A”,#2,“df2:palewood.game” PRINT #2, “ “ PRINT #2, “ “ PRINT #2, “ “; char.class.2$; “ class level “;class.lev.2 PRINT #2, “ This adventure XPs = “;total.xp.2 PRINT #2, “ Old total = “; old.2; “ new total = “; this.and.old.2
‘ IF level.next.21 > 0 THEN PRINT #2, “ XPs needed for Level “; class.lev.2+1; “ = “;level.next.21 ELSEIF level.next.21 <= 0 THEN PRINT #2, “ can go up to “; class.lev.2+1; “ level !” PRINT #2, “ XPs over for “; class.lev.2+1; “ are = “;level.next.21 END IF
‘ IF level.next.22 > 0 THEN PRINT #2, “ XPs needed for Level “; class.lev.2+2; “ = “;level.next.22 ELSEIF level.next.22 <= 0 THEN PRINT #2, “ can go up to “; class.lev.2+2; “ level !” PRINT #2, “ XPs over for “; class.lev.2+2; “ are = “;level.next.22 END IF
‘ PRINT #2, “—————————————————” CLOSE #2
RETURN
‘
‘ disk output for third
‘
dsk.third.out: OPEN “A”,#2,“df2:palewood.game” PRINT #2, “ “ PRINT #2, “ “ PRINT #2, “ “; char.class.3$; “ class level “;class.lev.3 PRINT #2, “ This adventure XPs = “; total.xp.3 PRINT #2, “ Old total = “; old.3; “ new total = “;this.and.old.3
‘ IF level.next.31 > 0 THEN PRINT #2, “ XPs needed for Level “; class.lev.3+1; “ = “;level.next.31 ELSEIF level.next.31 <= 0 THEN PRINT #2, “ can go up to “; class.lev.3+1; “ level !” PRINT #2, “ XPs over “; class.lev.3+1; “ are = “;level.next.31 END IF
‘ IF level.next.32 > 0 THEN PRINT #2, “ XPs needed for Level “; class.lev.3+2; “ = “;level.next.32 ELSEIF level.next.32 <= 0 THEN PRINT #2, “ can go up to “; class.lev.3+2; “ level !” PRINT #2, “ XPs over “; class.lev.3+2; “ are = “;level.next.32 END IF
‘ PRINT #2, “—————————————————” CLOSE #2
RETURN
‘
‘ character name enter
‘
7145 INPUT “enter character name “; character.name$
7160 CLS : PRINT character.name$ : PRINT : RETURN
‘
‘ bonus XP % enter
‘
7180 PRINT “Input “; char.class.3$; “ Bonus XP decimal % “ INPUT class.3.bonus
‘
7200 PRINT “Input “; char.class.2$; “ Bonus XP decimal % “ INPUT class.2.bonus
‘
7220 PRINT “Input “; char.class.1$; “ Bonus XP decimal % “ INPUT class.1.bonus
‘ ON number.of.classes GOTO 7860, 8160, 8865
‘
7260 CLS : PRINT character.name$ IF number.of.classes = 1 THEN GOTO 7220 IF number.of.classes = 2 THEN GOTO 7200 IF number.of.classes = 3 THEN GOTO 7180 IF number.of.classes < 1 OR number.of.classes > 3 THEN GOTO 10860
‘
‘ convert monster hp to monster xp worth
‘
7360 CLS : PRINT “Monster Name/Type: 5 + 1/HP This 5 = XP/Level”
‘ PRINT “ 1/HP = XP/HP” : INPUT “enter monster name “;Z$ INPUT “ XP per level “; monster.xp.lev
‘ IF monster.xp.lev < 0 OR monster.xp.lev > 1000000& THEN GOTO 7380
‘
7400 INPUT “ XP/HP “; xp.hp : IF xp.hp < 1 OR xp.hp > 100000& THEN GOTO 7400
‘
7420 INPUT “ Monsters HP “;monster.hp : PRINT7440 INPUT “ Number of characters that attacked it “; number.of.char IF number.of.char < 0 OR number.of.char > 18 THEN GOTO 7440
‘ ‘ results with two classes ‘ 9902 CLS GOSUB Part.1 : next.xp.11 = next.xp.1 : next.xp.12 = next.xp.2 GOSUB Part.2 : next.xp.21 = next.xp.1 : next.xp.22 = next.xp.2 GOSUB 7160 ‘ total.xp.1 = total.magicxp.1 + total.xp.1 + total.magicxp.12/2 total.xp.2 = total.magicxp.2 + total.xp.2 + total.magicxp.12/2 ‘ GOSUB redo.1 : GOSUB first.out GOSUB redo.2 : GOSUB second.out ‘ PRINT : INPUT “ Do you want to dump this information to disk ?”; NN$ ‘ IF UCASE$(NN$) = “Y” THEN OPEN “A”,#1,“df2:palewood.game” PRINT #1, character.name$ PRINT #1, “ “ PRINT #1, “ “ GOSUB dsk.first.out : GOSUB dsk.second.out CLOSE #1 END IF ‘ INPUT “ Press
‘
7460 xp.worth = monster.xp.lev + xp.hp * monster.hp : CLS : PRINT PRINT E$ : PRINT xp.worth; “ XPs worth”
‘ IF number.of.char <> 0 THEN PRINT : PRINT USING “#####.##”; xp.worth/number.of.char; END IF
‘ PRINT” XPs/Character of “; number.of.char; “ Character(s)” : PRINT PRINT “ 1. Repeat with same monster type (Different HPs)” PRINT “ 2. Main Menu” PRINT “ 3. another monster type “ INPUT BY
‘ IF BY < 1 OR BY > 3 THEN GOTO 7460 IF BY = 3 THEN GOTO 7360 IF BY = 2 THEN RETURN IF BY = 1 THEN GOTO 7420
‘
‘ character’s share of monster xp worth
‘
7580 CLS : PRINT “ Enter “; character.name$; “s Share of each monster XPs” PRINT boing; “ (Just entered)” : PRINT total.monster.xp; “ Total” INPUT boing : IF boing = 0 THEN GOTO 7720
‘ PRINT : PRINT “Combat Difficulty % Input decimal number only “ PRINT “ from chart on page 84 of DMG.” PRINT “If a loss, use negative decimal percent enter” INPUT diff.percent : EX = diff.percent * boing + boing total.monster.xp = total.monster.xp + EX : EX = 0 : GOTO 7580
‘
‘ a Character’s XPGP share
‘
7720 ‘IF xpgp.all.get$ = “TRUE” THEN ‘ total.xpgp = xpgp.all ‘ELSE PRINT PRINT character.name$; “s share of XPGP is equal to (0 to continue)” PRINT presto;” (Just entered)” : PRINT total.xpgp; “ Total” INPUT presto : IF presto = 0 THEN GOTO 7260 EY = presto + total.xpgp : total.xpgp = EY : GOTO 7720 ‘END IF
GOTO 7260
‘
‘ start/enter for one character class
‘
7800 CLS : PRINT “ One Character Class ? (Y/N)” : INPUT F$ IF UCASE$(F$) = “N” THEN RETURN OPEN “A”,#2,“df2:palewood.game” PRINT #2, “ “ PRINT #2, “=============================================== ] ] ] ] ]” PRINT #2, “ “ CLOSE #2 CLS : GOSUB 7145 : PRINT “ Character class ?” : GOSUB enter.class char.class.1$ = george$ INPUT “ class level “;class.lev.1 : GOSUB old.1.enter number.of.classes = 1 : GOTO 7580
7860 CLS : EZ1 = total.monster.xp + total.xpgp total.xp.1 = EZ1 * class.1.bonus + EZ1
‘
‘ magic item totalizer for first class
‘
GOSUB Get.Any.Magic
‘
IF UCASE$(ZZ$) = “N” THEN GOTO 9901
END IF
‘
GOSUB 7885
‘
‘ results for one character class
‘
9901 CLS GOSUB Part.1 : next.xp.11 = next.xp.1 : next.xp.12 = next.xp.2 GOSUB 7160 total.xp.1 = total.magicxp.1 + total.xp.1 GOSUB redo.1 : GOSUB first.out
‘ PRINT : INPUT “ Do you want to dump this information to disk ?”; NN$
‘ IF UCASE$(NN$) = “Y” THEN OPEN “A”,#1,“df2:palewood.game” PRINT #1, character.name$ PRINT #1, “ “ PRINT #1, “ “ GOSUB dsk.first.out CLOSE #1 END IF
‘ PRINT : INPUT “ Pressfor Main Menu”; N$ : RETURN
‘
‘ start/enter for two character classes
‘
8120 CLS : PRINT “ Two Character classes ? (Y/N) “ : INPUT F$ IF UCASE$(F$) = “N” THEN RETURN
‘ OPEN “A”,#2,“df2:palewood.game” PRINT #2, “ “ PRINT #2, “=============================================== ] ] ] ] ]” PRINT #2, “ “ CLOSE #2 CLS : GOSUB 7145 : PRINT “Class 1 of 2 ?” : GOSUB enter.class char.class.1$ = george$ INPUT “ class level “;class.lev.1 : GOSUB old.1.enter
‘ PRINT “Class 2 of 2 ?” : GOSUB enter.class : char.class.2$ = george$ INPUT “ class level “;class.lev.2 : GOSUB old.2.enter number.of.classes = 2 : GOTO 7580
‘
8160 CLS : EZ2 = (total.monster.xp + total.xpgp)/2 total.xp.2 = EZ2 * class.2.bonus + EZ2 total.xp.1 = EZ2 * class.1.bonus + EZ2
‘
GOSUB Get.Any.Magic
‘
IF UCASE$(ZZ$) = “N” THEN GOTO 9902
END IF
‘
9922 CLS : PRINT : PRINT “Which class/combinations get magic item XPs ? “
PRINT : PRINT “ 1. “;char.class.1$” only.”
PRINT : PRINT “ 2. “;char.class.2$” only.”
PRINT : PRINT “ 3. “;char.class.1$” and “; char.class.2$; “.”
PRINT : PRINT “ 4. done”
INPUT GGZ
‘
IF GGZ = 1 THEN GOSUB 7885
ELSEIF GGZ = 2 THEN GOSUB 8260
ELSEIF GGZ = 3 THEN GOSUB 8360
END IF
‘
IF GGZ <> 4 THEN GOTO 9922
IF GGZ < 1 OR GGZ > 4 THEN GOTO 9922for Main Menu”; N$ : RETURN ‘ ‘ start/enter for three character classes ‘ 8840 CLS : PRINT” Three Character classes ? (Y/N) “ : INPUT F$ IF UCASE$(F$) = “N” THEN RETURN ‘ OPEN “A”,#2,“df2:palewood.game” PRINT #2, “ “ PRINT #2, “=============================================== ] ] ] ] ]” PRINT #2, “ “ CLOSE #2 CLS : GOSUB 7145 : PRINT “ Class 1 of 3 ?” : GOSUB enter.class char.class.1$ = george$ INPUT “ class level “;class.lev.1 : GOSUB old.1.enter ‘ PRINT “ Class 2 of 3 ?” : GOSUB enter.class : char.class.2$ = george$ INPUT “ class level “;class.lev.2 : GOSUB old.2.enter ‘ PRINT “ Class 3 of 3 ?” : GOSUB enter.class : char.class.3$=george$ INPUT “ class level “;class.lev.3 : GOSUB old.3.enter ‘ PRINT : number.of.classes = 3 : GOTO 7580 ‘ 8865 CLS : EZ3 = (total.monster.xp + total.xpgp)/3 total.xp.3 = EZ3 * class.3.bonus + EZ3 total.xp.2 = EZ3 * class.2.bonus + EZ3 total.xp.1 = EZ3 * class.1.bonus + EZ3 ‘ GOSUB Get.Any.Magic IF UCASE$(ZZ$) = “N” THEN GOTO 9903 END IF ‘ 9933 CLS : PRINT : PRINT “Which class/combinations get magic item XPs ? “ PRINT : PRINT “ 1. “;char.class.1$;” only.” PRINT “ 2. “;char.class.2$;” only.” PRINT “ 3. “;char.class.3$;” only.” PRINT : PRINT “ 4. “;char.class.1$;” and “; char.class.2$; “ .” PRINT : PRINT “ 5. “;char.class.1$;” and “; char.class.3$; “ .” PRINT : PRINT “ 6. “;char.class.2$ ;” and “; char.class.3$; “ .” : PRINT PRINT “ 7. “;char.class.1$”, “; char.class.2$; “, and “; char.class.3$; “.” PRINT : PRINT “ 8. done” INPUT GGZ ‘ IF GGZ = 1 THEN GOSUB 7885 ELSEIF GGZ = 2 THEN GOSUB 8260 ELSEIF GGZ = 3 THEN GOSUB 9180 ELSEIF GGZ = 4 THEN GOSUB 8360 ELSEIF GGZ = 5 THEN GOSUB 9380 ELSEIF GGZ = 6 THEN GOSUB 9280 ELSEIF GGZ = 7 THEN GOSUB 9480 END IF ‘ IF GGZ <> 8 THEN GOTO 9933 IF GGZ < 1 OR GGZ > 8 THEN GOTO 9933 ‘ ‘ results for three character classes ‘ 9903 CLS : GOSUB 7160 ‘ total.xp.1 = total.magicxp.1 + total.xp.1 + total.magicxp.123/3 + total.magicxp.13/2 + total.magicxp.12/2 total.xp.2 = total.magicxp.2 + total.xp.2 + total.magicxp.123/3 + total.magicxp.23/2 + total.magicxp.12/2 total.xp.3 = total.magicxp.3 + total.xp.3 + total.magicxp.123/3 + total.magicxp.13/2 + total.magicxp.23/2 ‘ GOSUB Part.1 : next.xp.11 = next.xp.1 : next.xp.12 = next.xp.2 GOSUB Part.2 : next.xp.21 = next.xp.1 : next.xp.22 = next.xp.2 GOSUB Part.3 : next.xp.31 = next.xp.1 : next.xp.32 = next.xp.2 ‘ ‘ output for all three character classes ‘ GOSUB redo.1 : GOSUB first.out : GOSUB redo.2 : GOSUB second.out GOSUB redo.3 : GOSUB third.out ‘ ‘ PRINT : INPUT “ Do you want to print this information out ?”; NN$ ‘ PRINT : INPUT “ Do you want to dump this information to disk ?”; NN$ ‘ IF UCASE$(NN$) = “Y” THEN OPEN “A”,#1,“df2:palewood.game” PRINT #1, character.name$ PRINT #1, “ “ PRINT #1, “ “ GOSUB dsk.first.out : GOSUB dsk.second.out : GOSUB dsk.third.out CLOSE #1 END IF ‘ PRINT : INPUT “ Press for Main Menu”; N$ : RETURN ‘ ‘ Money enter to money menu ‘ 10060 INPUT “ copper pieces “;CB : PRINT CB; “ (Just entered)” PRINT total.copper; “ total copper pieces” IF CB = 0 THEN RETURN CC = CB + total.copper : total.copper = CC : GOTO 10060 ‘ 10100 INPUT “ silver pieces “;CE : PRINT CE; “ (Just entered)” PRINT total.silver; “ total silver pieces” IF CE = 0 THEN RETURN CF = CE + total.silver : total.silver = CF : GOTO 10100 ‘ 10140 INPUT “ electrum pieces “;CI : PRINT CI; “ (Just entered)” PRINT total.electrum; “ total electrum pieces” IF CI = 0 THEN RETURN CJ = CI + total.electrum : total.electrum = CJ : GOTO 10140 ‘ 10180 INPUT “ gold pieces “;CK : PRINT CK; “ (Just entered)” PRINT total.gold; “ total gold pieces” IF CK = 0 THEN RETURN CM = CK + total.gold : total.gold = CM : GOTO 10180 ‘ 10220 INPUT “ platinum pieces “;CP : PRINT CP; “ (Just entered)” PRINT total.platinum; “ total platinum pieces” IF CP = 0 THEN RETURN CQ = CP + total.platinum : total.platinum = CQ : GOTO 10220 ‘ 10260 INPUT “ gem gp value “;CS : PRINT CS; “ (Just entered)” PRINT total.gem; “ total gem gp value” IF CS = 0 THEN RETURN CT = CS + total.gem : total.gem = CT : GOTO 10260 ‘ 10300 INPUT “ Jewelry gp value “;CV : PRINT CV; “ (Just entered)” PRINT total.jewelry; “ total jewelry gp value” IF CV = 0 THEN RETURN CW = CV + total.jewelry : total.jewelry = CW : GOTO 10300 ‘ 10340 INPUT “ miscellaneous item gp value “;DH : PRINT DH; “ (Just entered)” PRINT misc.item.gp; “ miscellaneous item gp value” IF DH = 0 THEN RETURN DB = DH + misc.item.gp : misc.item.gp = DB : GOTO 10340 ‘ 10380 INPUT “ GEM evaluation % ( .25 = 25%) “; gem.eval : RETURN ‘ 10400 INPUT “ Jewelry evaluation % ( .25 = 25% ) “; jewel.eval : RETURN ‘ 10420 INPUT “ Miscellaneous item evaluation % ( .25 = 25%) “; misc.item.eval : RETURN ‘ 10440 INPUT “ Number of party members ? ( 1 thru 15 )”; number.in.group IF number.in.group < 1 OR number.in.group > 15 THEN 10440 RETURN ‘ 10480 PRINT “ XPGP difficulty % ( .45 = 45%) “ : PRINT INPUT “ .1 thru 2 ( .1 = very easy / 2 = very hard “; percent.xpgp.diff IF percent.xpgp.diff < 0 OR percent.xpgp.diff > 2 THEN 10480 RETURN ‘ 10540 INPUT “ Sold magic item gp value “; sold.magic.gp PRINT sold.magic.gp; “ (Just entered )” : PRINT total.sold.magic.gp; “ total “ IF sold.magic.gp = 0 THEN RETURN QB = sold.magic.gp + total.sold.magic.gp : total.sold.magic.gp = QB : GOTO 10540 ‘ ‘ total money screen printout ‘ 10560 total.gp.value = total.copper / 200 + total.silver / 20 + total.electrum / 2 + total.gold + total.platinum*5 + total.gem + total.jewelry + misc.item.gp + total.sold.magic.gp gem.charges = total.gem * gem.eval jewel.charges = total.jewelry*jewel.eval misc.item.charges = misc.item.gp*misc.item.eval total.charges = gem.charges + jewel.charges + misc.item.charges total.gp.left = total.gp.value – total.charges total.xpgp.value = total.gp.value*percent.xpgp.diff xpgp.char = total.xpgp.value/number.in.group gp.value.char = total.gp.left/number.in.group charge.per.char = total.charges/number.in.group ‘ CLS : PRINT “ Adventure/dungeon location = “; name.of.dungeon$; “ Game Date = “; game.date$ PRINT : PRINT USING “########,#.##”; total.gp.value; PRINT “ total gp value” ‘ IF total.gp.value <> total.gp.left OR total.gp.left <> 0 THEN PRINT USING “#######,##.##”; total.gp.left; PRINT “ total gp value after charges” : PRINT END IF ‘ IF number.in.group <> 0 THEN PRINT USING “########,#.##”; total.xpgp.value; PRINT “ total XPGP”, PRINT USING “######,##.##”; xpgp.char; PRINT “ XPGP/character” PRINT USING “######,##.##”; gp.value.char; PRINT “ gp value/character” : PRINT END IF ‘ IF total.gem <> 0 THEN PRINT : PRINT total.gem; “ total Gem gp value “ IF gem.charges <> 0 THEN PRINT USING “####,##.##”; gem.charges; PRINT “ gp charges at “; gem.eval*WW;”%” END IF END IF ‘ IF total.jewelry <> 0 THEN PRINT total.jewelry; “ total Jewelry gp value “ IF jewel.charges <> 0 THEN PRINT USING “#####.##”; jewel.charges; PRINT” gp charges at “; jewel.eval*WW;”%” : PRINT END IF END IF ‘ IF misc.item.gp <> 0 THEN PRINT USING “####,###.##”; misc.item.gp; PRINT “ total Misc. item gp value”; END IF ‘ IF misc.item.charges <> 0 THEN PRINT USING “####,###.##”; misc.item.charges; PRINT “ charges at “misc.item.eval*WW;”%” : PRINT END IF ‘ IF charge.per.char <> 0 THEN PRINT USING “#####,#.##”; charge.per.char; PRINT “ gp Evaluation cost/character” END IF ‘ IF total.sold.magic.gp <> 0 THEN PRINT total.sold.magic.gp; “ sold magic item gp value” END IF ‘ IF percent.xpgp.diff <> 0 THEN PRINT percent.xpgp.diff*WW; “% XPGP difficulty of encounter” END IF ‘ PRINT ‘ IF total.platinum <> 0 THEN PRINT total.platinum; “ PP “; END IF ‘ IF total.gold <> 0 THEN PRINT total.gold; “ GP “; END IF ‘ IF total.electrum <> 0 THEN PRINT total.electrum; “ EP “; END IF ‘ IF total.silver <> 0 THEN PRINT total.silver; “ SP “; END IF ‘ IF total.copper <> 0 THEN PRINT total.copper; “ CP” : PRINT END IF ‘ PRINT PRINT INPUT “ Do you want to save this information to disk ?”; NN$ ‘ ‘ total money print out ‘ IF UCASE$(NN$) = “Y” THEN OPEN “A”,#1,“df2:palewood.xpgp” PRINT #1, “ “ PRINT #1, “ Adventure/dungeon location = “; name.of.dungeon$ PRINT #1, “ Game Date = “; game.date$ PRINT #1, “ Start of group number = “;group.number PRINT #1, “ “ PRINT #1, USING “Total GP Value ########,#.##”; total.gp.value PRINT #1, USING “Total GP Value left after charges = #######,##.##”; total.gp.left PRINT #1, “ “ PRINT #1, USING “########,#.##”; total.xpgp.value; PRINT #1, “ total XPGP “; PRINT #1, USING “######,##.##”; xpgp.char; PRINT #1, “ XPGP/character” PRINT #1, “ “ PRINT #1, USING “######,##.##”; gp.value.char; PRINT #1, “ gp value/character”; PRINT #1, percent.xpgp.diff*WW; “ % XPGP difficulty of encounter” PRINT #1, “ “ ‘ IF total.gem <> 0 THEN PRINT #1, total.gem; “ total Gem gp value “; PRINT #1, USING “####,##.##”; gem.charges; PRINT #1, “ gp charges at “; gem.eval*WW;”%” PRINT #1, “ “ END IF ‘ IF total.jewelry <> 0 THEN PRINT #1, total.jewelry; “ total Jewelry gp value “; PRINT #1, USING “#####.##”; jewel.charges; PRINT #1, “ gp charges at “; jewel.eval*WW;”%” PRINT #1, “ “ END IF ‘ IF misc.item.gp <> 0 THEN PRINT #1, misc.item.gp; “ total Miscellaneous item gp value”; PRINT #1, USING “#######,##.##”; misc.item.charges; PRINT #1, “ charges at “misc.item.eval*WW;”%” PRINT #1, “ “ END IF ‘ IF charge.per.char <> 0 THEN PRINT #1, USING “#####,#.##”; charge.per.char; PRINT #1, “ gp Evaluation cost/character” PRINT #1, “ “ END IF ‘ IF total.sold.magic.gp <> 0 THEN PRINT #1, total.sold.magic.gp; “ sold magic item gp value” PRINT #1, “ “ END IF ‘ IF total.platinum <> 0 THEN PRINT #1, total.platinum; “ Platinum Pieces “; END IF ‘ IF total.gold <> 0 THEN PRINT #1, total.gold; “ Gold Pieces “; END IF ‘ IF total.electrum <> 0 THEN PRINT #1, total.electrum; “ Electrum Pieces “ END IF ‘ IF total.silver <> 0 THEN PRINT #1, total.silver; “ Silver Pieces “; END IF ‘ IF total.copper <> 0 THEN PRINT #1, total.copper; “ Copper Pieces” PRINT #1, “ “ END IF ‘ PRINT #1, “ “ PRINT #1, “ end of group number = “;group.number PRINT #1, “ “ PRINT #1, “ end of adventure/dungeon monies found at/in “; name.of.dungeon$ PRINT #1, “ “ CLOSE #1 END IF ‘ INPUT “ Press for Main Menu”; N$ : RETURN ‘ 10720 CLS : PRINT TAB (15); “ Money menu”;TAB; “Input” : PRINT PRINT “ 1. copper pieces 2. silver pieces” : PRINT PRINT “ 3. electrum pieces 4. gold pieces” PRINT “ 5. platinum pieces 6. gem gp value” : PRINT PRINT “ 7. jewelry gp value 8. misc. gp value” : PRINT PRINT “ 9. gem evaluation % 10. jewelry evaluation %” PRINT “11. misc. evaluation % 12. # of characters” : PRINT PRINT “13. xpgp difficulty 14. sold magic gp” : PRINT PRINT “15. readout of money entered 16. Quit” INPUT “ Enter menu item desired. “; FD : CLS ‘ IF FD < 1 OR FD > 16 THEN 10720 ‘ ON FD GOSUB 10060, 10100, 10140, 10180, 10220, 10260, 10300, 10340, 10380, 10400, 10420, 10440, 10480, 10540, 10560, 10860 ‘ GOTO 10720 ‘ ‘ character experience section main menu ‘ 10860 CLS : PRINT : PRINT, “ Experience Menu” PRINT “ 1. One character class 2. Two character classes” PRINT “ 3. Three character classes “ : PRINT PRINT “ 4. clear variables [ between each character ]” : PRINT PRINT “ 5. Money Menu 6. Monster HP to XP” PRINT “ 7. input name and date of dungeon/adventure !” PRINT “ 8. dice section” PRINT “ 9. starting/inactive/active player characters” PRINT “10. look at list of characters in the file.” PRINT “11. divide two numbers. 12. multiply two numbers.” PRINT “13. add two numbers. 14. total a list of numbers.” PRINT “15. all of the group get the same XPGP ?” PRINT “16. enter group number” : INPUT “17. quit “, AG ‘ IF AG < 1 OR AG > 17 THEN GOTO 10860 IF AG = 4 THEN X = 1 IF AG = 17 THEN END ‘ ON AG GOSUB 7800, 8120, 8840, 7000, 10720, 7360, 19009, 50, CHARTMENU, list.it, divide.it, multiply.it, add.it, add.multiple.it, all.get, group GOTO 10860 END