Compare commits

..

No commits in common. "master" and "v1.0.0" have entirely different histories.

10 changed files with 126 additions and 382 deletions

5
.gitignore vendored
View File

@ -1,5 +0,0 @@
# Created with CBM prg Studio
bak
*.dbg
*.dmp
*.dup

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

File diff suppressed because one or more lines are too long

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- DO NOT EDIT THIS FILE! -->
<!-- Application version : 3.14.0 -->
<!-- Project Target : C64 -->
<Project>
<Target>2</Target>
<Executable>Cookie Clicker.prg</Executable>
<StartAddress>2049</StartAddress>
<FilesGlobal>False</FilesGlobal>
<BatchMode>False</BatchMode>
<AppendToDisk>False</AppendToDisk>
<GenToDisk>False</GenToDisk>
<BuildToPrgFile>True</BuildToPrgFile>
<d64Name />
<Comments>Cookie Clicker for the C64.</Comments>
<Author>Ian M. Skinner</Author>
<Email />
<AutoLaunchName>Cookie Clicker.prg</AutoLaunchName>
<NoSingleFileBuild>False</NoSingleFileBuild>
<CreatedWithVersion>CBM prg Studio 3.14.0</CreatedWithVersion>
<HasGitRepo>True</HasGitRepo>
<GitIgnoreList />
<Cartridge>
<CrtBuildingCartridge>False</CrtBuildingCartridge>
<CrtSignature>C64 CARTRIDGE</CrtSignature>
<CrtName />
<CrtHeaderLength>40</CrtHeaderLength>
<CrtVersionHigh>1</CrtVersionHigh>
<CrtVersionLow>0</CrtVersionLow>
<CrtCartType>0</CrtCartType>
<CrtEXROMActive>False</CrtEXROMActive>
<CrtGAMEActive>False</CrtGAMEActive>
<CrtROMSig>CHIP</CrtROMSig>
<CrtChipType>0</CrtChipType>
</Cartridge>
<BuildEvents>
<PreBuildEnabled>False</PreBuildEnabled>
<PostBuildEnabled>False</PostBuildEnabled>
<RunPostBuildAlways>False</RunPostBuildAlways>
<PreBuildCommands />
<PostBuildCommands />
</BuildEvents>
<BuildList>
<FileName>prg.txt</FileName>
<FileName>storedat.seq</FileName>
<FileName>Tune.bas</FileName>
</BuildList>
<DetermineBuildOrder>0</DetermineBuildOrder>
<PaddingByte>0</PaddingByte>
<!--Screen designer settings-->
<AssyBinaryFileLocation />
<AssyExportList />
<!--End of screen designer settings-->
<SourceFiles>
<SourceFile>
<Name>prg.txt</Name>
<PrgName />
<FileType>1</FileType>
<IncludeInBuild>True</IncludeInBuild>
<Regions />
<Breakpoints />
<Bookmarks />
<Topmost>False</Topmost>
<FileOpen>True</FileOpen>
</SourceFile>
</SourceFiles>
</Project>

Binary file not shown.

View File

@ -1,44 +1,6 @@
# Cookie-Clicker-C64
# OH MY GOD THIS PROGRAM JUST GOT SHOWED IN A YOUTUBE VIDEO
https://youtu.be/o6RtnOU-5ss
LETS FUCKING GOOOOOOOOO
(to anyone who came here, sorry, this program is reaaaaaaaally buggy. Maybe this is the motivation I need to fix it up)
<p align="center">
<img src="https://github.com/IanSkinner1982/Cookie-Clicker-C64/blob/master/Banner.png"/>
<p align="center">
<a href="https://discord.com/invite/kJac2ty">
<img src="https://img.shields.io/discord/704065693246685225?color=purple&label=Discord&logo=Discord&style=plastic"
alt="Chat on Discord">
</a>
<a href="https://gbatemp.net/download/cookie-clicker-c64.36587/" style="padding-left: 5px; padding-right: 5px;">
<img src="https://img.shields.io/badge/GBAtemp-Link-blue.svg" height="20">
</a>
<a href="https://github.com/IanSkinner1982/Cookie-Clicker-C64/" style="padding-left: 5px; padding-right: 5px;">
<img src="https://img.shields.io/github/downloads/IanSkinner1982/Cookie-Clicker-C64/total?color=Green&label=Downloads&logo=Github" height="20">
</a>
</p>
Cookie Clicker C64 (or CC64 for short) is a Cookie clicker clone for the Commodore 64.
## How to play :
- Press the space bar to 'click' for cookies.
Credits:
- [@Orteil](https://orteil.dashnet.org/) for making the original cookie clicker game
- [@drskinner](https://github.com/drskinner/)
Notes:
- Editing program lines larger than 80 characters on the C64 (or on an emulator) will result in parts of them being deleted
- `storedat` must be placed in the same d64 as `cookie.prg`, or in the same directory, if your emulator treats a folder like a disk. Also note that unlike `storedat`, `savedat` is not needed to run the game, so you can place `savedat` on another d64 and swap disks when needed.
# Cookie-Clicker-C64
Cookie-Clicker-C64 (or CC64 for short) is a Cookie clicker clone for the Commodore 64.
Cookie clicker was created by [Orteil](https://orteil.dashnet.org/)
Note: Due to the way I have everything set up my commits will appear as commits by drskinner.

BIN
build/cookie.prg Normal file

Binary file not shown.

BIN
build/cookie.prg.out.prg Normal file

Binary file not shown.

293
prg.txt Executable file → Normal file
View File

@ -1,173 +1,120 @@
!- ========================================
!- Project : Cookie Clicker
!- Target : Commodore 64
!- Comments : Cookie Clicker for the C64.
!- Author : Ian M. Skinner
!- ========================================
0 rem !to "build/cookie.prg"
10 mb=17:dimna$(mb):dimia(mb):dimbd$(mb):dimbg(mb):dimpr(mb):dimcg(mb):rem create arrays for item data
20 open 8,8,8,"storedat,s,r":rem load item data
30 forx=0tomb
40 input#8,na$(x):rem building name
50 input#8,bd$(x):rem building description
55 input#8,bg(x):rem building cps (not actually per second)
60 input#8,pr(x):rem building price
65 ?x+1"/"mb+1:
70 next
80 close 8
90 ms=1:bn$="someone's":r1$="{right*17}":rem ms is the main subroutine value, bn is the name
95 r2$="{right*17}":ss=1:rem huh? that isn't right. why are r1 and r2 the same?
100 rem stick news here. Also ss is the shop page. (to be named sp)
110 print"{brown}{clear}UCCCCCCCCCCCCCCC{cm r}CCCCCCCCCCCCCCCCCCCCCCI";:rem print static screen
120 print"B B B";
130 print"B B B";
140 print"{cm q}CCCCCCCCCCCCCCC{cm w} B";
150 print"B B B";
160 print"B B B";
170 print"B B B";
180 print"B {reverse on} {reverse off} B B";
190 print"B {reverse on} {black} {brown} {reverse off} B B";
200 print"B {reverse on} {black} {brown} {reverse off} B B";
210 print"B {reverse on} {black} {brown} {black} {brown} {reverse off} B B";
220 print"B {reverse on} {black} {brown} {black} {brown} {reverse off} B B";
230 print"B {reverse on} {reverse off} B B";
240 print"B {reverse on} {reverse off} B B";
250 print"B {reverse on} {black} {brown} {reverse off} B B";
260 print"B {reverse on} {black} {brown} {black} {brown} {black} {brown} {reverse off} B B";
270 print"B {reverse on} {black} {brown} {black} {brown} {reverse off} B B";
280 print"B {reverse on} {reverse off} B B";
290 print"B {reverse on} {reverse off} B B";
300 print"B {reverse on} {reverse off} B B";
310 print"B B B";
320 print"B{white} v2.9.0-1.0 {brown}B B";
330 print"JCCCCCCCCCCCCCCC{cm e}CCCCCCCCCCCCCCCCCCCCCCK";
340 print"{white} {reverse on}f1{reverse off} store {reverse on}f3{reverse off} options {reverse on}f5{reverse off} stats {reverse on}f7{reverse off} ascend";
500 print"{home}{down}{right}"int(cc)
510 print"{brown}B{white} cookies"
520 ?"{brown}B{white}"bn$
530 print"{up}{brown}B{white} bakery"
1000 on ms gosub 2000, 5000:rem, 7000
1010 goto 1000:rem the menu selector
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:rem clear dynamic window
2505 y=1:forx=itoj :rem this section prints the
2510 ifx=ithen?"{home}" :rem item data in the given range. (it prints the specified page)
2515 ?r1$"{up}{reverse on}"right$(str$(y),1)"{reverse off} "na$(x)
2520 ?r1$r2$"{up}"ia(x)
2530 ?r1$bd$(x)
2540 ?r1$"{up}"int(pr(x))
2545 ?r1$"{cm t*22}":y=y+1:rem the bars below each item
2550 next
2555 ifj=17then?r1$"{down*7} prev/next(-/+)"
2560 ?r1$"{up} prev/next(-/+)"
2565 gosub 3000:rem goes to actual shop routine
2570 return
3000 get k$:x=0
3010 gosub 60000:rem adding routine
3015 ifval(k$)>5then3070
3020 ifval(k$)<1then3070
3025 x=val(k$)
3065 gosub 3500:rem purchase item
3070 gosub 50000:rem change menu
3080 ifk$="+"thenss=ss+1:rem change store page
3085 ifk$="-"thenss=ss-1
3090 ifss=0thenss=1
3095 ifss=5thenss=4
3110 ifss<>tsthenreturn:rem return if different page was selected
3120 ifms<>tmthenreturn:rem return if different menu was selected
3130 goto 3000
3500 y=i+x-1:ify>mbthenreturn :rem buying subroutine
3510 if cc<pr(y)then3610
3515 if ia(y)=300then3610:rem item cap (otherwise you'd have prices too big to handle)
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):rem find a better way to do this
3540 ifx=2then?"{home}"r1$r2$"{down*5}"ia(y)
3550 ifx=3then?"{home}"r1$r2$"{down*9}"ia(y)
3560 ifx=4then?"{home}"r1$r2$"{down*13}"ia(y)
3565 ifx=5then?"{home}"r1$r2$"{down*17}"ia(y)
3570 ifx=1then?"{home}"r1$"{down*3}"int(pr(y))
3580 ifx=2then?"{home}"r1$"{down*7}"int(pr(y))
3590 ifx=3then?"{home}"r1$"{down*11}"int(pr(y))
3600 ifx=4then?"{home}"r1$"{down*15}"int(pr(y))
3605 ifx=5then?"{home}"r1$"{down*19}"int(pr(y))
3610 x=0:return
5000 ifms<>2thenreturn
5010 tm=ms
5020 gosub5100
5030 goto5000
5100 ?"{home}{down}"r1$"{reverse on}1{reverse off} change your bakery's"
5110 ?r1$"name"
5120 ?r1$"{cm t*22}{down}"
5130 ?r1$"{up}{reverse on}2{reverse off} create a save file"
5140 ?r1$"on a disk"
5150 ?r1$"{cm t*22}{down}"
5160 ?r1$"{up}{reverse on}3{reverse off} load a save file"
5170 ?r1$"from a disk"
5180 ?r1$"{cm t*22}{down}"
5190 ?r1$"{up}{reverse on}4{reverse off} manage your saves"
5195 ?r1$"{down}{cm t*22}{down}"
5200 getk$ :rem
5210 ifval(k$)>4then5240 :rem main loop
5220 ifval(k$)<1then5240 :rem
5230 onval(k$)gosub5700,5900
5240 gosub 50000:gosub 60000
5250 ifms<>tmthenreturn
5260 goto 5200
5700 print"1":open 8,8,8,"@0:savedat,s,w":rem save data
5710 print#8,al
5720 print#8,bn$
5730 print#8,cc
5740 forx=0tomb
5750 print#8,cg(x)
5760 print#8,pr(x)
5770 print#8,ia(x)
5780 next:close 8:return
5900 print"2":open 8,8,8,"@0:savedat,s,r":rem load data
5910 input#8,al
5920 input#8,bn$
5930 input#8,cc
5940 forx=0tomb
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 menu selecting
50010 ifk$="{f3}"then50040
50020 ifk$="{f5}"then50040
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
60000 b=0:fora=0tomb:b=b+(cg(a)/3.6):next:rem slow, horrible, not good 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
0 rem !to "build/cookie.prg"
10 cc=0:cg=0:ca=0:ga=0:ft$="0"
20 c1=15:c2=100:c3=1100
50 ds$=chr$(17):rem cursor down
60 rs$=chr$(29):rem cursor right
100 print"*CCCCCCCCCCCCCCCCCCCCCCCCC*CCCCCCCCCCC*"
110 print"B you have "int(cc)" Bcursor(c) B"
115 l3$="B cookies B"
120 printl3$" ("ca") B"
130 print"*CCCCCCCCCCCCCCCCCCCCCCCCC*cost: B"
140 print"B B"c1" B"
150 print"B ******** *CCCCCCCCCCC*"
160 print"B * *** Bgrandma(g) B"
170 print"B * * * B ("ga") B"
180 print"B * ** * Bcost: B"
190 print"B * ** * B"c2" B"
200 print"B * ** * *CCCCCCCCCCC*"
210 print"B * * B B"
220 print"B *** * B B"
230 print"B ** * B B"
240 print"B * ** * B B"
250 print"B * ** * B B"
260 print"B ******** B B"
270 print"B B B"
280 print"B B B"
290 print"B B B"
300 print"B B B"
310 print"B B B"
320 print"B B B"
330 print"*CCCCCCCCCCCCCCCCCCCCCCCCC*CCCCCCCCCCC*"
1000 if ft$="0" then 5000
1010 get k$:if k$= "" then 1500
1015 if k$=" " then 2000
1020 if k$="c" then 3000
1030 if k$="g" then 4000
1050 if k$="f" then 5500
1500 cc=cc+cg
1510 print"{home}"ds$"B you have "int(cc)"
1520 goto 1000
2000 cc=cc+1
2010 print"{home}"ds$"B you have "int(cc)"
2020 goto 1000
3000 if cc<c1 then 1000
3010 cc=cc-c1
3015 print"{home}"ds$"B you have ":rem stops from messing up the counter
3025 print"{home}"ds$ds$l3$" ("ca")"
3030 cg=cg+.1
3040 cc=cc+cg
3050 print"{home}"ds$"B you have "int(cc)"
3060 ca=ca+1
3070 goto 1000
4000 if cc<c2 then 1000
4010 cc=cc-c2
4015 print"{home}"ds$"B you have ":rem stops from messing up the counter
3020 ga=ga+1
3025 print"{home}"ds$ds$ds$ds$ds$ds$ds$"B * * * B ("ga") B"
4030 cg=cg+.2
4040 cc=cc+cg
4050 print"{home}"ds$"B you have "int(cc)"
4060 goto 1000
5000 if cc<500 then 1010
5010 ft$="1"
5020 print"{home}"ds$ds$ds$ds$ds$ds$ds$ds$ds$ds$ds$"B * * Bfarm(f) B"
5030 print"B *** * B ("fa") B"
5040 print"B ** * Bcost: B"
5050 print"B * ** * B"c3" B"
5060 print"B * ** * *CCCCCCCCCCC*"
5070 goto 1010
5500 if cc<c3 then 1000
5510 cc=cc-c3
5515 print"{home}"ds$"B you have ":rem stops from messing up the counter
5520 fa=fa+1
5525 cg=cg+.4
5530 cc=cc+cg
5540 print"{home}"ds$"B you have "int(cc)"
5550 goto 1000

View File

@ -1,72 +0,0 @@
spacebar
adds .1 cps
.1
15
grandma
adds 1 cps
1
100
farm
adds 8 cps
8
1100
mine
adds 47 cps
47
12000
factory
adds 260 cps
260
130000
bank
adds 1400 cps
1400
1400000
temple
adds 7800 cps
7800
20000000
wizard tower
adds 44000 cps
44000
330000000
shipment
adds 260000 cps
260000
5100000000
alchemy lab
adds 1600000 cps
1600000
75000000000
portal
adds 10 million cps
10000000
1000000000000
time machine
adds 65 million cps
65000000
14000000000000
antim. condenser
adds 430 million cps
430000000
170000000000000
prism
adds 2.9 billion cps
2900000000
2100000000000000
chancemaker
adds 21 billion cps
21000000000
26000000000000000
fractal engine
adds 150 billion cps
150000000000
310000000000000000
ml monitor
adds 1.1 trillion cps
1100000000000
71000000000000000000
idleverse
adds 8.3 trillion cps
8300000000000
1.2e+22