mirror of
https://github.com/rvtr/Cookie-Clicker-C64.git
synced 2025-10-31 07:41:12 -04:00
244 lines
9.3 KiB
Plaintext
Executable File
244 lines
9.3 KiB
Plaintext
Executable File
0 rem !to "build/cookie.prg"
|
|
10 mi=17:dimna$(mi):dimia(mi):dimbd$(mi):dimbg(mi):dimpr(mi):dimcg(mi)
|
|
20 rem open 8,8,8,"storedat,s,r"
|
|
30 rem forx=0tomi
|
|
40 rem input#8,na$(x)
|
|
50 rem input#8,bd$(x)
|
|
55 rem input#8,bg(x)
|
|
60 rem input#8,pr(x)
|
|
65 rem ?x+1"/"mi+1
|
|
70 rem next
|
|
80 gosub 52000:rem close 8
|
|
90 ms=2:bn$="someone's":r1$="{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}"
|
|
95 r2$="{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}{right}":ss=1
|
|
100 rem stick news here.
|
|
110 print"{brown}{clear}UCCCCCCCCCCCCCCC{$b2}CCCCCCCCCCCCCCCCCCCCCCI";
|
|
120 print"B B B";
|
|
130 print"B B B";
|
|
140 print"{$ab}CCCCCCCCCCCCCCC{$b3} B";
|
|
150 print"B B B";
|
|
160 print"B B B";
|
|
170 print"B B B";
|
|
180 print"B {rvon} {rvof} B B";
|
|
190 print"B {rvon} {blk} {brown} {rvof} B B";
|
|
200 print"B {rvon} {blk} {brown} {rvof} B B";
|
|
210 print"B {rvon} {blk} {brown} {blk} {brown} {rvof} B B";
|
|
220 print"B {rvon} {blk} {brown} {blk} {brown} {rvof} B B";
|
|
230 print"B {rvon} {rvof} B B";
|
|
240 print"B {rvon} {rvof} B B";
|
|
250 print"B {rvon} {blk} {brown} {rvof} B B";
|
|
260 print"B {rvon} {blk} {brown} {blk} {brown} {blk} {brown} {rvof} B B";
|
|
270 print"B {rvon} {blk} {brown} {blk} {brown} {rvof} B B";
|
|
280 print"B {rvon} {rvof} B B";
|
|
290 print"B {rvon} {rvof} B B";
|
|
300 print"B {rvon} {rvof} B B";
|
|
310 print"B B B";
|
|
320 print"B{wht} v2.9.0-1.0 {brown}B B";
|
|
330 print"JCCCCCCCCCCCCCCC{$b1}CCCCCCCCCCCCCCCCCCCCCCK";
|
|
340 print"{wht} {rvon}f1{rvof} store {rvon}f3{rvof} options {rvon}f5{rvof} stats {rvon}f7{rvof} ascend";
|
|
500 print"{home}{down}{right}"int(cc)
|
|
510 print"{brown}B{wht} cookies"
|
|
520 ?"{brown}B{wht}"bn$
|
|
530 print"{up}{brown}B{wht} bakery"
|
|
1000 on ms gosub 2000, 5000, 5000
|
|
1010 goto 1000
|
|
|
|
2000 ifms<>1thenreturn :rem store page selection and menu switching area.
|
|
2010 ifss>0theni=0:j=4:ifss>1theni=5:j=9:ifss>2theni=10:j=14:ifss>3theni=15:j=17
|
|
2060 ts=ss:tm=ms :rem 2010 sets the range of item data
|
|
2090 gosub2500 :rem to be used. do not have a range
|
|
2100 goto2000 :rem bigger than 5. (smaller is fine)
|
|
|
|
2500 gosub51000
|
|
2505 y=1:forx=itoj :rem this section prints the
|
|
2510 ifx=ithen?"{home}" :rem item data in the given range.
|
|
2515 ?r1$"{up}{rvon}"right$(str$(y),1)"{rvof} "na$(x)
|
|
2520 ?r1$r2$"{up}"ia(x)
|
|
2530 ?r1$bd$(x)
|
|
2540 ?r1$"{up}"int(pr(x))
|
|
2545 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}":y=y+1
|
|
2550 next
|
|
2555 ifj=17then?r1$"{down}{down}{down}{down}{down}{down}{down} prev/next(-/+)"
|
|
2560 ?r1$"{up} prev/next(-/+)"
|
|
2565 gosub 3000
|
|
2570 return
|
|
|
|
3000 get k$:x=0 :rem don't add a 'ifk$=""' or else the adding routine won't run properly
|
|
3010 gosub 60000 :rem
|
|
3015 ifval(k$)>5then3070 :rem main loop
|
|
3020 ifval(k$)<1then3070 :rem
|
|
3025 x=val(k$)
|
|
3065 gosub 3500
|
|
3070 gosub 50000
|
|
3080 ifk$="+"thenss=ss+1
|
|
3085 ifk$="-"thenss=ss-1
|
|
3090 ifss=0thenss=1
|
|
3095 ifss=5thenss=4
|
|
3110 ifss<>tsthenreturn
|
|
3120 ifms<>tmthenreturn
|
|
3130 goto 3000
|
|
|
|
3500 y=i+x-1 :rem buying subroutine
|
|
3510 if cc<pr(y)then3610
|
|
3515 if ia(y)=300then3610:rem temp item cap
|
|
3520 cc=cc-pr(y):cg(y)=cg(y)+bg(y):pr(y)=pr(y)*1.15:ia(y)=ia(y)+1
|
|
3530 ifx=1then?"{home}"r1$r2$"{down}"ia(y)
|
|
3540 ifx=2then?"{home}"r1$r2$"{down}{down}{down}{down}{down}"ia(y)
|
|
3550 ifx=3then?"{home}"r1$r2$"{down}{down}{down}{down}{down}{down}{down}{down}{down}"ia(y)
|
|
3560 ifx=4then?"{home}"r1$r2$"{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"ia(y)
|
|
3565 ifx=5then?"{home}"r1$r2$"{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"ia(y)
|
|
3570 ifx=1then?"{home}"r1$"{down}{down}{down}"int(pr(y))
|
|
3580 ifx=2then?"{home}"r1$"{down}{down}{down}{down}{down}{down}{down}"int(pr(y))
|
|
3590 ifx=3then?"{home}"r1$"{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"int(pr(y))
|
|
3600 ifx=4then?"{home}"r1$"{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"int(pr(y))
|
|
3605 ifx=5then?"{home}"r1$"{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"int(pr(y))
|
|
3610 x=0:return
|
|
|
|
5000 ifms<>2thenreturn :rem
|
|
5010 tm=ms :rem this section is for menu switching.
|
|
5020 gosub51000:gosub5100:goto5000 :rem
|
|
|
|
5100 ?"{home}{down}"r1$"{rvon}1{rvof} change your bakery's"
|
|
5110 ?r1$"name"
|
|
5120 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}"
|
|
5130 ?r1$"{up}{rvon}2{rvof} create a save file"
|
|
5140 ?r1$"on a disk"
|
|
5150 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}"
|
|
5160 ?r1$"{up}{rvon}3{rvof} load a save file"
|
|
5170 ?r1$"from a disk"
|
|
5180 ?r1$"{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}"
|
|
5160 ?r1$"{up}{rvon}4{rvof} manage your saves"
|
|
5180 ?r1$"{down}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{$a3}{down}"
|
|
|
|
|
|
5200 getk$ :rem
|
|
5210 ifval(k$)>4then5240 :rem main loop
|
|
5220 ifval(k$)<1then5240 :rem
|
|
5230 onval(k$)gosub5500,5700,5900,6100
|
|
5240 gosub 50000
|
|
5250 ifms<>tmthenreturn
|
|
5260 goto 5200
|
|
|
|
5500 tn$="":?"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"r1$"new name:"
|
|
5510 getnp$:ifnp$=""then5510
|
|
5515 iflen(tn$)<1then?r1$; :
|
|
5520 ?np$;:tn$=tn$+np$:ifnp$="{\n}"then5540 :rem bakery name
|
|
5530 iflen(tn$)<14then5510 :
|
|
5540 ?"{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}"r1$" "
|
|
5550 ?r1$" ":bn$=left$(tn$,(len(tn$)-1))
|
|
5560 ?"{home}{down}{down}{down}{down}{right} {home}{down}{down}{down}{down}{right}"bn$"'s":return
|
|
|
|
5700 open 8,8,8,"@0:savedat,s,w" :rem save data
|
|
5710 print#8,fl
|
|
5720 print#8,bn$
|
|
5730 print#8,cc
|
|
5740 forx=0tomi
|
|
5750 print#8,cg(x)
|
|
5760 print#8,pr(x)
|
|
5770 print#8,ia(x)
|
|
5780 next:close 8:return
|
|
|
|
5900 open 8,8,8,"@0:savedat,s,r" :rem load data
|
|
5910 input#8,fl
|
|
5920 input#8,bn$
|
|
5930 input#8,cc
|
|
5940 forx=0tomi
|
|
5950 input#8,cg(x)
|
|
5960 input#8,pr(x)
|
|
5970 input#8,ia(x)
|
|
5980 next:close 8:return
|
|
|
|
10000 stop
|
|
|
|
49999 :rem important subroutines
|
|
|
|
50000 ifk$="{f1}"then50040:rem
|
|
50010 ifk$="{f3}"then50040:rem menu selecting
|
|
50020 ifk$="{f5}"then50040:rem
|
|
50030 return
|
|
50040 ms=-1*(k$="{f1}")-2*(k$="{f3}")-3*(k$="{f5}"):return
|
|
|
|
51000 forx=1to20: rem clears the menu
|
|
51010 ifx=1then?"{home}"r1$"{down} ";
|
|
51020 ?r1$"{right} ";:next
|
|
51040 return
|
|
|
|
52000 x=0:na$(x)="cursor"
|
|
52001 bd$(x)="adds .1 cps"
|
|
52002 bg(x)=.1
|
|
52003 pr(x)=15
|
|
52004 x=x+1:na$(x)="grandma"
|
|
52005 bd$(x)="adds 1 cps"
|
|
52006 bg(x)=1
|
|
52007 pr(x)=100
|
|
52008 x=x+1:na$(x)="farm"
|
|
52009 bd$(x)="adds 8 cps"
|
|
52010 bg(x)=8
|
|
52011 pr(x)=1100
|
|
52012 x=x+1:na$(x)="mine"
|
|
52013 bd$(x)="adds 47 cps"
|
|
52014 bg(x)=47
|
|
52015 pr(x)=12000
|
|
52016 x=x+1:na$(x)="factory"
|
|
52017 bd$(x)="adds 260 cps"
|
|
52018 bg(x)=260
|
|
52019 pr(x)=130000
|
|
52020 x=x+1:na$(x)="bank"
|
|
52021 bd$(x)="adds 1400 cps"
|
|
52022 bg(x)=1400
|
|
52023 pr(x)=1400000
|
|
52024 x=x+1:na$(x)="temple"
|
|
52025 bd$(x)="adds 7800 cps"
|
|
52026 bg(x)=7800
|
|
52027 pr(x)=20000000
|
|
52028 x=x+1:na$(x)="wizard tower"
|
|
52029 bd$(x)="adds 44000 cps"
|
|
52030 bg(x)=44000
|
|
52031 pr(x)=330000000
|
|
52032 x=x+1:na$(x)="shipment"
|
|
52033 bd$(x)="adds 260000 cps"
|
|
52034 bg(x)=260000
|
|
52035 pr(x)=5100000000
|
|
52036 x=x+1:na$(x)="alchemy lab"
|
|
52037 bd$(x)="adds 1600000 cps"
|
|
52038 bg(x)=1600000
|
|
52039 pr(x)=75000000000
|
|
52040 x=x+1:na$(x)="portal"
|
|
52041 bd$(x)="adds 10 million cps"
|
|
52042 bg(x)=10000000
|
|
52043 pr(x)=1000000000000
|
|
52044 x=x+1:na$(x)="time machine"
|
|
52045 bd$(x)="adds 65 million cps"
|
|
52046 bg(x)=65000000
|
|
52047 pr(x)=14000000000000
|
|
52048 x=x+1:na$(x)="antimatter condenser"
|
|
52049 bd$(x)="adds 430 million cps"
|
|
52050 bg(x)=430000000
|
|
52051 pr(x)=170000000000000
|
|
52052 x=x+1:na$(x)="prism"
|
|
52053 bd$(x)="adds 2.9 billion cps"
|
|
52054 bg(x)=2900000000
|
|
52055 pr(x)=2100000000000000
|
|
52056 x=x+1:na$(x)="chancemaker"
|
|
52057 bd$(x)="adds 21 billion cps"
|
|
52058 bg(x)=21000000000
|
|
52059 pr(x)=26000000000000000
|
|
52060 x=x+1:na$(x)="fractal engine"
|
|
52061 bd$(x)="adds 150 billion cps"
|
|
52062 bg(x)=150000000000
|
|
52063 pr(x)=310000000000000000
|
|
52064 x=x+1:na$(x)="ml monitor"
|
|
52065 bd$(x)="adds 1.1 trillion cps"
|
|
52066 bg(x)=1100000000000
|
|
52067 pr(x)=71000000000000000000
|
|
52068 x=x+1:na$(x)="idleverse"
|
|
52069 bd$(x)="adds 8.3 trillion cps"
|
|
52070 bg(x)=8300000000000
|
|
52071 pr(x)=1.2e+22
|
|
52072 return
|
|
|
|
60000 b=0:fora=0tomi:b=b+(cg(a)/3.6):next:rem adding subroutine
|
|
60010 ifk$=" "thencc=cc+1
|
|
60020 ifcb>ccthen?"{home}{down}{right} "
|
|
60030 cc=cc+b:?"{home}{down}{right}"int(cc):cb=cc:return
|