master
Jay 6 years ago
parent 492840bcc3
commit 01decde2af

@ -1,5 +1,5 @@
[
Drugwar //e beta-3
Drugwar //e beta-4
(c) 2018 Jay Moore
Licensed under GPLv3
]
@ -12,14 +12,14 @@ Licensed under GPLv3
input "Press enter to continue.";x$
return
£howmuchbuy {some common purchase code}
print "You can afford ";j%
print "You can carry ";fs%
print "You can afford ";j
print "You can carry ";fs
print chr$(10)
input "How many? (Enter 0 to return to menu.)";k%
input "How many? (Enter 0 to return to menu.)";k
gosub @nobuysell
return
£howmuchsell {common sell code}
print "You can sell: ";j%
print "You can sell: ";j
print chr$(10)
[
I'm using this to test how some of the logic might work for buying
@ -32,98 +32,98 @@ Checking valid freespace for buying can be put here too. But
lines that reference a specific drug are still in normal code.
]
£howmanysell
input "How many? (Enter 0 to return to menu.)";k%
If k%>j% then print "You don't have that many!" : goto @howmanysell {this should work according to my testing}
input "How many? (Enter 0 to return to menu.)";k
If k>j then print "You don't have that many!" : goto @howmanysell {this should work according to my testing}
gosub @nobuysell
return
£nobuysell {I'll be reusing this a lot, so let's subroutine it.}
if K%=0 goto @menu
if K=0 goto @menu
return
£statusbar
inverse:print "DAY: ";D%,P$:normal
inverse:print "DAY: ";D,P$:normal
print chr$(10)
return
£freespace {I'll probably call this from more than the menu}
fs%=in%-((ci%+hi%+ai%+wi%+si%+li%)+(gn%*5))
fs=in-((ci+hi+ai+wi+si+li)+(gn*5))
return
£daily {randomizes drug prices, adds a day, calculates interests, checks day number}
c%=rnd(1)*12000+16000
h%=rnd(1)*7000+5000
a%=(rnd(1)*34+10)*100
w%=(rnd(1)*42+33)*10
s%=(rnd(1)*15+7)*10
l%=(rnd(1)*4+1)*10
b%=rnd(1)*20
d%=d%+1
ls%=ls%*1.1
sa%=sa%*1.06
c=int(rnd(1)*12000+16000)
h=int(rnd(1)*7000+5000)
a=int((rnd(1)*34+10)*100)
w=int((rnd(1)*42+33)*10)
s=int((rnd(1)*15+7)*10)
l=int((rnd(1)*4+1)*10)
b=int(rnd(1)*20)
d=d+1
ls=ls*1.1
sa=sa*1.06
£checkday {so I can check the day by itself}
if D% >= 31 GOTO @endgame
if D >= 31 GOTO @endgame
return
£subwayevents
if b%=1 then goto @cheapludes
if b%=2 then goto @cheepweed
if b%=3 then goto @pigheroin
if b%=4 then goto @heroinbust
if b%=5 then goto @heroinbust
if b%=6 then goto @cokebust
if b%=7 then goto @cokebust
if b%=8 then goto @mugged
if b%=9 then goto @cops
if b%=10 then goto @cops
if b%=11 then goto @cops
if b%=12 then goto @gunbuy
if b%=13 then goto @gunbuy
if b%=14 then goto @dedweed
if b%=15 then goto @newcoat
if b%=16 then goto @dedguy
if b%=17 then goto @homeacid
if b=1 then goto @cheapludes
if b=2 then goto @cheepweed
if b=3 then goto @pigheroin
if b=4 then goto @heroinbust
if b=5 then goto @heroinbust
if b=6 then goto @cokebust
if b=7 then goto @cokebust
if b=8 then goto @mugged
if b=9 then goto @cops
if b=10 then goto @cops
if b=11 then goto @cops
if b=12 then goto @gunbuy
if b=13 then goto @gunbuy
if b=14 then goto @dedweed
if b=15 then goto @newcoat
if b=16 then goto @dedguy
if b=17 then goto @homeacid
return
£cheapludes
print "Rival dealers are selling cheap ludes!"
l%=2
l=2
gosub @wait
goto @menu
£cheepweed
print "Weed prices have bottomed-out!"
w%=122
w=122
gosub @wait
goto @menu
£pigheroin
print "Pigs are selling cheap heroin"
print "from last week's raid!"
h%=(rnd(1)*1150)+850
h=int((rnd(1)*1150)+850)
gosub @wait
goto @menu
£heroinbust
print "Addicts are buying heroin"
print "at outrageous prices!"
h%=(rnd(1)*25000)+18000
h=int((rnd(1)*25000)+18000)
gosub @wait
goto @menu
£cokebust
print "Pigs made a big coke bust!"
print "Prices are outrageous!!!!"
c%=rnd(1)*60000)+80000
c=int(rnd(1)*60000)+80000)
gosub @wait
goto @menu
£mugged
print "You got mugged!"
print chr$(10)
ms%=wa%/3
ms%=ms%*2
ml%=wa%-ms%
print "You lost $";ml%
wa%=ms%
ms=wa/3
ms=ms*2
ml=wa-ms
print "You lost $";ml
wa=ms
gosub @wait
gosub @menu
£cops
we%=C%+H%+W%+A%+S%+L%
we=C+H+W+A+S+L
[
my improved revisions will likely add some additional
conditions on how/when we run cops
]
if we%<50 then return {no return since last gosub means this should work}
if we<50 then return {no return since last gosub means this should work}
print "It's the cops!"
print chr$(10)
print "Just kidding!"
@ -131,19 +131,19 @@ conditions on how/when we run cops
gosub @wait
goto @menu {goto @police}
£gunbuy
if wa% < 500 THEN return
if wa < 500 THEN return
gosub @freespace
if fs% < 5 THEN return
gx%=int(rnd(1)*2)
if gx% = 0 then ax$ = "Baretta"
if gx% = 1 then ax$ = "Saturday Night Special"
if gx% = 2 then ax$ = ".44 Magnum"
if fs < 5 THEN return
gx=int(rnd(1)*2)
if gx = 0 then ax$ = "Baretta"
if gx = 1 then ax$ = "Saturday Night Special"
if gx = 2 then ax$ = ".44 Magnum"
print "Will you buy a ";ax$
input "for $400? (Y/N)";re$
if re$ <> "Y" then goto @menu
gn% = gn%+1
wa% = wa%-400
fs% = fs%-5
gn = gn+1
wa = wa-400
fs = fs-5
goto @menu
£dedweed
print "There's some weed here that smells"
@ -153,24 +153,24 @@ conditions on how/when we run cops
If X$ = "Y" THEN GOTO @weedend
return
£newcoat
if wa%<300 then return
if wa<300 then return
print "Will you buy a new trenchcoat"
input "with more pockets for $200? (Y/N)";X$
if X$ <> "Y" then goto @menu
in%=in%+10
wa%=wa%-200
in=in+10
wa=wa-200
goto @menu
£dedguy
If fs%<8 THEN return
dg%=(rnd(1)*7)+1
xg%=rnd(1)*5
if xg%=0 THEN li%=li%+dg% : ss$ = "Ludes"
if xg%=1 THEN si%=si%+dg% : ss$ = "Speed"
if xg%=2 THEN wi%=wi%+dg% : ss$ = "Weed"
if xg%=3 THEN ai%=ai%+dg% : ss$ = "Acid"
if xg%=4 THEN hi%=hi%+dg% : ss$ = "Heroin"
if xg%=5 THEN ci%=ci%+dg% : ss$ = "Cocaine"
print "You found ";dg%;" units of"
If fs<8 THEN return
dg=int((rnd(1)*7)+1)
xg=int(rnd(1)*5)
if xg=0 THEN li=li+dg : ss$ = "Ludes"
if xg=1 THEN si=si+dg : ss$ = "Speed"
if xg=2 THEN wi=wi+dg : ss$ = "Weed"
if xg=3 THEN ai=ai+dg : ss$ = "Acid"
if xg=4 THEN hi=hi+dg : ss$ = "Heroin"
if xg=5 THEN ci=ci+dg : ss$ = "Cocaine"
print "You found ";dg;" units of"
print " ";ss$
print "on a dead dude in the subway!"
print chr$(10)
@ -179,7 +179,7 @@ conditions on how/when we run cops
£homeacid
print "The market has been flooded"
print "with cheap home-made acid!"
a%=(rnd(1)*550)+250
a=int((rnd(1)*550)+250)
gosub @wait
goto @menu
@ -205,7 +205,7 @@ conditions on how/when we run cops
home
gosub @titlebar
gosub @freespace {it might be more efficient to calculate freespace now}
inverse : print " Day:";D%;" ";ph$ : normal
inverse : print " Day:";D;" ";ph$ : normal
print "(C)heck Prices"
print "(I)nventory"
print "(B)uy"
@ -228,13 +228,13 @@ conditions on how/when we run cops
gosub @titlebar {this is literally recycled from the price and gosub demo}
inverse:print" PRICES ":normal
print chr$(10)
print"cocaine:","$"c%
print"heroin:","$"h%
print"acid:","$"a%
print"weed:","$"w%
print"speed:","$"s%
print"ludes:","$"l%
print"wallet:","$"wa%
print"cocaine:","$"c
print"heroin:","$"h
print"acid:","$"a
print"weed:","$"w
print"speed:","$"s
print"ludes:","$"l
print"wallet:","$"wa
gosub @wait
goto @menu
£inventory
@ -242,13 +242,13 @@ conditions on how/when we run cops
gosub @titlebar
inverse:print" INVENTORY ":normal
print chr$(10)
print"cocaine:",ci%
print"heroin:",hi%
print"acid:",ai%
print"weed:",wi%
print"speed:",si%
print"ludes:",li%
print"free space:",fs%
print"cocaine:",ci
print"heroin:",hi
print"acid:",ai
print"weed:",wi
print"speed:",si
print"ludes:",li
print"free space:",fs
gosub @wait
goto @menu
£buy
@ -285,66 +285,66 @@ works.
gosub @titlebar
inverse:print" BUY COCAINE ":normal
print chr$(10)
j%=wa%/c%
j=int(wa/c)
gosub @howmuchbuy
if k%>fs% THEN inverse : print "You can't carry that much!" : normal : goto @cokebuy
if k%<=j% then ci%=ci%+k% : wa%=wa%-(c%*k%)
if k%>j% THEN inverse : print "You can't afford that much!" : normal : goto @cokebuy
if k>fs THEN inverse : print "You can't carry that much!" : normal : goto @cokebuy
if k<=j then ci=ci+k : wa=wa-(c*k)
if k>j THEN inverse : print "You can't afford that much!" : normal : goto @cokebuy
goto @menu
£herbuy
home
gosub @titlebar
inverse:print" BUY HEROIN ":normal
print chr$(10)
j%=wa%/h%
j=int(wa/h)
gosub @howmuchbuy
if k%>fs% THEN inverse : print "You can't carry that much!" : normal : goto @herbuy
if k%<=j% then hi%=hi%+k% : wa%=wa%-(h%*k%)
if k%>j% THEN inverse : print "You can't afford that much!" : normal : goto @herbuy
if k>fs THEN inverse : print "You can't carry that much!" : normal : goto @herbuy
if k<=j then hi=hi+k : wa=wa-(h*k)
if k>j THEN inverse : print "You can't afford that much!" : normal : goto @herbuy
goto @menu
£acidbuy
home
gosub @titlebar
inverse:print" BUY ACID ":normal
print chr$(10)
j%=wa%/a%
j=int(wa/a)
gosub @howmuchbuy
if k%>fs% THEN inverse : print "You can't carry that much!" : normal : goto @acidbuy
if k%<=j% THEN ai%=ai%+k% : wa%=wa%-(a%*k%)
if k%>j% THEN inverse : print "You can't afford that much!" : normal : goto @acidbuy
if k>fs THEN inverse : print "You can't carry that much!" : normal : goto @acidbuy
if k<=j THEN ai=ai+k : wa=wa-(a*k)
if k>j THEN inverse : print "You can't afford that much!" : normal : goto @acidbuy
goto @menu
£weedbuy
home
gosub @titlebar
inverse:print" BUY WEED ":normal
print chr$(10)
j%=wa%/w%
j=int(wa/w)
gosub @howmuchbuy
if k%>fs% THEN inverse : print "You can't carry that much!" : normal : goto @weedbuy
if k%<=j% THEN wi%=wi%+k% : wa%=wa%-(w%*k%)
if k%>j% THEN inverse : print "You can't afford that much!" : normal : goto @weedbuy
if k>fs THEN inverse : print "You can't carry that much!" : normal : goto @weedbuy
if k<=j THEN wi=wi+k : wa=wa-(w*k)
if k>j THEN inverse : print "You can't afford that much!" : normal : goto @weedbuy
goto @menu
£spdbuy
home
gosub @titlebar
inverse:print" BUY SPEED ":normal
print chr$(10)
j%=wa%/s%
j=int(wa/s)
gosub @howmuchbuy
if k%>fs% THEN inverse : print "You can't carry that much!" : normal : goto @spdbuy
if k%<=j% THEN si%=si%+k% : wa%=wa%-(s%*k%)
if k%>j% THEN inverse : print "You can't afford that much!" : normal : goto @spdbuy
if k>fs THEN inverse : print "You can't carry that much!" : normal : goto @spdbuy
if k<=j THEN si=si+k : wa=wa-(s*k)
if k>j THEN inverse : print "You can't afford that much!" : normal : goto @spdbuy
goto @menu
£ludbuy
home
gosub @titlebar
inverse:print" BUY LUDES ":normal
print chr$(10)
j%=wa%/l%
j=int(wa/l)
gosub @howmuchbuy
if k%>fs% THEN inverse : print "You can't carry that much!" : normal : goto @ludbuy
if k%<=j% THEN li%=li%+k% : wa%=wa%-(l%*k%)
if k%>j% THEN inverse : print "You can't afford that much!" : normal : goto @ludbuy
if k>fs THEN inverse : print "You can't carry that much!" : normal : goto @ludbuy
if k<=j THEN li=li+k : wa=wa-(l*k)
if k>j THEN inverse : print "You can't afford that much!" : normal : goto @ludbuy
goto @menu
£sell
home
@ -376,10 +376,10 @@ works.
gosub @titlebar
inverse:print" SELL COCAINE ":normal
print chr$(10)
j%=ci%
j=ci
gosub @howmuchsell
ci%=ci%-k%
wa%=wa%+(c%*k%)
ci=ci-k
wa=wa+(c*k)
goto @menu
£hersell
@ -387,10 +387,10 @@ works.
gosub @titlebar
inverse:print" SELL HEROIN ":normal
print chr$(10)
j%=hi%
j=hi
gosub @howmuchsell
hi%=hi%-k%
wa%=wa%+(h%*k%)
hi=hi-k
wa=wa+(h*k)
goto @menu
£acidsell
@ -398,10 +398,10 @@ works.
gosub @titlebar
inverse:print" SELL ACID ":normal
print chr$(10)
j%=ai%
j=ai
gosub @howmuchsell
ai%=ai%-k%
wa%=wa%+(a%*k%)
ai=ai-k
wa=wa+(a*k)
goto @menu
£weedsell
@ -409,10 +409,10 @@ works.
gosub @titlebar
inverse:print" SELL WEED ":normal
print chr$(10)
j%=wi%
j=wi
gosub @howmuchsell
wi%=wi%-k%
wa%=wa%+(w%*k%)
wi=wi-k
wa=wa+(w*k)
goto @menu
£spdsell
@ -420,10 +420,10 @@ works.
gosub @titlebar
inverse:print" SELL SPEED ":normal
print chr$(10)
j%=si%
j=si
gosub @howmuchsell
si%=si%-k%
wa%=wa%+(s%*k%)
si=si-k
wa=wa+(s*k)
goto @menu
£ludsell
@ -431,10 +431,10 @@ works.
gosub @titlebar
inverse:print" SELL COCAINE ":normal
print chr$(10)
j%=li%
j=li
gosub @howmuchsell
li%=li%-k%
wa%=wa%+(l%*k%)
li=li-k
wa=wa+(l*k)
goto @menu
£jet
home
@ -499,20 +499,20 @@ works.
input "I don't understand you. Y or N only. ";Q$
goto @inserrorhandler
£gamestart {set wallet, debt, location, inventory space, zero out inventory}
wa%=2000
sa%=0
ls%=5000
d%=0 {daily subroutine adds a day}
wa=2000
sa=0
ls=5000
d=0 {daily subroutine adds a day}
ph$="The Bronx"
gn%=0
dp%=0
in%=100
ci%=0
hi%=0
ai%=0
wi%=0
si%=0
li%=0
gn=0
dp=0
in=100
ci=0
hi=0
ai=0
wi=0
si=0
li=0
gosub @daily {the only time we'll call this outside of the subway}
goto @menu {the real start of the game}
£inst

Loading…
Cancel
Save