Since I got DB pro I have been out of touch with DB and I had to relearn everything becuase my computers hardrive died about a few months ago...
I made a Catalog of monsters (again) and used DIM statments to store all the monster data...
This code gernerally just repeats over and over again making lists of monsters....you could have a chance to fight a rare boss monster..its not much but I had to restart from scratch....
Rem Project: RPG text battle
Rem Created: 12/1/2002 12:39:13 AM
Rem ***** Main Source File *****
`Load music "./sounds/MainBattle.mid",1
`Load music "./sounds/nosbattle.mid",2
For x=400 to 500
Cls
Text 250,X,"RPG text Battle"
Text 250,X+40,"By Draco"
if x=400 then Wait 200 else wait 20
Next x
Randomize Timer * timer
Cls
Text 250,350,"A battle begins!!"
wait 1000
Cls
Text 250,350,"Dun!! Dun!! Dun!!"
Wait 1000
Cls
Dracohp=100
DracoMaxhp=100
DracoSp=10
DracoMaxsp=10
DracoAtk=10
Restart_Battle:
MaxMonsters=25
DIM MonsterCount(MaxMonsters)
DIM MonsterName$(MaxMonsters)
DIM MonsterHp(MaxMonsters)
DIM MonsterMaxHp(MaxMonsters)
DIM MonsterAtk(MaxMonsters)
NumberofMonsters=Rnd(9)+1
For X=1 to NumberofMonsters
`************************** Monster Catalog ********************************
`Pick Between two monsters and a boss :P
Bosschance=rnd(20)
If bosschance=Rnd(3) and BossChosen=0 then BossChosen=1 : MonsterType=42-rnd(2) else MonsterType=Rnd(4)
`Make a Number at the end of a monsters name
For z=0 to 4
`If a monster type is picked there is at least 1 of that monster :P duuuuhhh..
IF MonsterType=Z and MonsterCount(z)=>0 Then MonsterCount(z)=MonsterCount(z)+1
IF MonsterType=Z and MonsterCount(z)=0 Then MonsterCount(z)=MonsterCount(z)+1
Next z
IF MonsterType=0 Then MonsterName$(x)="Mean Rat " +STR$(MonsterCount(0)): MonsterMaxhp(x)=40+rnd(13): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=3+rnd(3)
IF MonsterType=1 Then MonsterName$(x)="Living Spike " +STR$(MonsterCount(1)): MonsterMaxhp(x)=80+rnd(13): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=1+rnd(3)
IF MonsterType=2 Then MonsterName$(x)="Red Snake " +STR$(MonsterCount(2)): MonsterMaxhp(x)=90+rnd(23): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=5+rnd(3)
IF MonsterType=3 Then MonsterName$(x)="Brown Bunny " +STR$(MonsterCount(3)): MonsterMaxhp(x)=10+rnd(3): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=0+rnd(3)
IF MonsterType=4 Then MonsterName$(x)="Thorny Vines " +STR$(MonsterCount(4)): MonsterMaxhp(x)=30+rnd(3): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=4+rnd(3)
IF MonsterType=40 Then MonsterName$(x)="Death Roller*" : MonsterMaxhp(x)=280+rnd(113): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=6+rnd(3)
IF MonsterType=41 Then MonsterName$(x)="Dark Claw*" : MonsterMaxhp(x)=180+rnd(13): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=16+rnd(3)
IF MonsterType=42 Then MonsterName$(x)="Evil Midget*" : MonsterMaxhp(x)=580+rnd(13): Monsterhp(x)=MonsterMaxhp(x) : MonsterAtk(x)=0+rnd(3)
Next X
if BossChosen=1
`Loop music 2
`else loop music 1
endif
`***************************************************************************
Text 10,12,STR$(NumberOfMonsters)+ " monsters have come to battle!"
Wait 1500
`Scroll in
For M=1 to NumberofMonsters
Cls
For x=-50 to 12
Cls
ink RGB(128,128,128),1
Box 0,x,350,x+20
ink RGB(255,255,255),1
Text 10,x,Monstername$(M)+ " has amerged to fight!"
Wait 1
Next x
Cls
`Scroll out
For x=12 to -50 step -1
Cls
ink RGB(128,128,128),1
Box 0,x,350,x+20
ink RGB(255,255,255),1
Text 10,x,Monstername$(M)+ " has amerged to fight!"
If x=12 then Wait 500 else Wait 1
Next x
Cls
wait 10
Next M
Do
gosub Show_Text
Loop
Show_Text:
ink RGB(128,128,128),1
Box 36,406,566,436
ink RGB(192,192,192),1
Box 30,400,560,430
ink RGB(255,255,255),1
Text 30,400,"Draco HP:" +STR$(DracoHp)+ " / " +STR$(DracoMaxhp)+ " SP:" +STR$(DracoSp)+ " / " +STR$(DracoMaxSp)+ ""
ink RGB(128,128,128),1
Box 2+6,22+6,300+6,20+(17*NumberofMonsters)+6
ink RGB(192,192,192),1
Box 2,22,300,20+(17*NumberofMonsters)
ink RGB(255,255,255),1
For m=1 to NumberofMonsters
Text 10,12+(12*m),Monstername$(M)
Text 140,12+(12*m),"HP: " +STR$(MonsterHp(m))+ " / " +STR$(MonsterMaxHp(m))
Next m
IF Escapekey()=0 then wait 3000 : CLS : Gosub Restart_Battle
IF Escapekey()=1 then END
Return