cookie clicker but bigger
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 

848 řádky
17 KiB

  1. "use strict";
  2. const resourceTypes = {
  3. "food": {
  4. name: "Food"
  5. }
  6. }
  7. const buildings = {
  8. "micro": {
  9. "name": "Micro",
  10. "plural": "Micros",
  11. "desc": "A tasty, squirmy treat.",
  12. "cost": 1e1,
  13. "prod": 1e-1/1,
  14. "icon": "fa-universal-access"
  15. },
  16. "anthro": {
  17. "name": "Anthro",
  18. "plural": "Anthros",
  19. "desc": "Something more substantial to sate your hunger.",
  20. "cost": 1e2,
  21. "prod": 1e0/1.1,
  22. "icon": "fa-male"
  23. },
  24. "car": {
  25. "name": "Car",
  26. "plural": "Cars",
  27. "desc": "Crunchy shell, tasty center.",
  28. "cost": 1.2e3,
  29. "prod": 1e1/1.2,
  30. "icon": "fa-car"
  31. },
  32. "bus": {
  33. "name": "Bus",
  34. "plural": "Buses",
  35. "desc": "Probably the worst place to be when a macro is aroud.",
  36. "cost": 1.4e4,
  37. "prod": 1e2/1.3,
  38. "icon": "fa-bus"
  39. },
  40. "house": {
  41. "name": "House",
  42. "plural": "Houses",
  43. "desc": "Home sweet home - but it doesn't taste sweet?",
  44. "cost": 1.6e5,
  45. "prod": 1e3/1.4,
  46. "icon": "fa-home"
  47. },
  48. "apartment": {
  49. "name": "Apartment",
  50. "plural": "Apartments",
  51. "desc": "More snacks, less packaging.",
  52. "cost": 1.8e6,
  53. "prod": 1e4/1.5,
  54. "icon": "fa-store"
  55. },
  56. "block": {
  57. "name": "Block",
  58. "plural": "Blocks",
  59. "desc": "A whole pile of buildings.",
  60. "cost": 2e7,
  61. "prod": 1e5/1.6,
  62. "icon": "fa-warehouse"
  63. },
  64. "town": {
  65. "name": "Town",
  66. "plural": "Towns",
  67. "desc": "'Tourist trap' has never been this literal.",
  68. "cost": 2.2e8,
  69. "prod": 1e6/1.7,
  70. "icon": "fa-building"
  71. },
  72. "city": {
  73. "name": "City",
  74. "plural": "Cities",
  75. "desc": "Please no sitty on our city.",
  76. "cost": 2.4e9,
  77. "prod": 1e7/1.8,
  78. "icon": "fa-city"
  79. },
  80. "metro": {
  81. "name": "Metropolis",
  82. "plural": "Metropolises",
  83. "desc": "A big ol' city. Tasty, too.",
  84. "cost": 2.6e10,
  85. "prod": 1e8/1.9,
  86. "icon": "fa-landmark"
  87. },
  88. "county": {
  89. "name": "County",
  90. "plural": "Counties",
  91. "desc": "Why salt the land when you can slurp it?",
  92. "cost": 2.8e11,
  93. "prod": 1e9/2,
  94. "icon": "fa-map"
  95. },
  96. "state": {
  97. "name": "State",
  98. "plural": "States",
  99. "desc": "The United States is made up of...43 states - no, 42...",
  100. "cost": 3e12,
  101. "prod": 1e10/2.1,
  102. "icon": "fa-map-signs"
  103. },
  104. "country": {
  105. "name": "Country",
  106. "plural": "Countries",
  107. "desc": "One nation, under paw.",
  108. "cost": 3.2e13,
  109. "prod": 1e11/2.2,
  110. "icon": "fa-flag"
  111. },
  112. "continent": {
  113. "name": "Continent",
  114. "plural": "Continents",
  115. "desc": "Earth-shattering appetite!",
  116. "cost": 3.4e14,
  117. "prod": 1e12/2.3,
  118. "icon": "fa-mountain"
  119. },
  120. "planet": {
  121. "name": "Planet",
  122. "plural": "Planets",
  123. "desc": "Earth appetite!",
  124. "cost": 3.6e15,
  125. "prod": 1e13/2.4,
  126. "icon": "fa-globe-europe"
  127. },
  128. "solar-system": {
  129. "name": "Solar System",
  130. "plural": "Solar Systems",
  131. "desc": "Earths appetite!",
  132. "cost": 3.8e16,
  133. "prod": 1e14/2.5,
  134. "icon": "fa-meteor"
  135. },
  136. "galaxy": {
  137. "name": "Galaxy",
  138. "plural": "Galaxy",
  139. "desc": "In a galaxy far, far down your gullet...",
  140. "cost": 4.0e17,
  141. "prod": 1e15/2.6,
  142. "icon": "fa-sun"
  143. },
  144. "universe": {
  145. "name": "Universe",
  146. "plural": "Universes",
  147. "desc": "Into the you-verse.",
  148. "cost": 4.2e18,
  149. "prod": 1e16/2.7,
  150. "icon": "fa-asterisk"
  151. },
  152. "multiverse": {
  153. "name": "Multiverse",
  154. "plural": "Multiverses",
  155. "desc": "This is getting very silly.",
  156. "cost": 4.4e19,
  157. "prod": 1e17/2.8,
  158. "icon": "fa-infinity"
  159. }
  160. }
  161. const effect_types = {
  162. "prod": {
  163. "apply": function(effect, productivity) {
  164. return productivity * effect.amount;
  165. },
  166. "desc": function(effect) {
  167. return round(effect.amount, 2) + "x food production from " + buildings[effect.target].plural;
  168. }
  169. },
  170. "prod-all": {
  171. "apply": function(effect, productivity) {
  172. return productivity * effect.amount;
  173. },
  174. "desc": function(effect) {
  175. return round((effect.amount - 1) * 100) + "% increase to food production";
  176. }
  177. },
  178. "helper": {
  179. "apply": function(effect, productivity, helperCount) {
  180. return productivity * (1 + effect.amount * helperCount);
  181. },
  182. "desc": function(effect) {
  183. return "+" + round(effect.amount * 100) + "% food/sec from " + buildings[effect.helped].name + " for every " + buildings[effect.helper].name + " owned.";
  184. }
  185. },
  186. "click": {
  187. "apply": function(effect, bonus, productivity) {
  188. return bonus + productivity * effect.amount;
  189. },
  190. "desc": function(effect) {
  191. return round(effect.amount * 100) + "% of food/sec gained per click";
  192. }
  193. }
  194. }
  195. let upgrades = {
  196. "anthro-help-micro-1": {
  197. "name": "Servants",
  198. "desc": "Why bother walking anywhere, really?",
  199. "cost": {
  200. "food": buildings.anthro.cost * 25 + buildings.micro.cost * 50
  201. },
  202. "effects": [
  203. {
  204. "type": "helper",
  205. "helper": "anthro",
  206. "helped": "micro",
  207. "amount": 0.01
  208. }
  209. ],
  210. "prereqs": {
  211. "buildings": {
  212. "anthro": 10
  213. },
  214. "upgrades": [
  215. "anthro-prod-1"
  216. ]
  217. }
  218. }
  219. }
  220. function createTemplateUpgrades() {
  221. console.log("qwewq");
  222. createProdUpgrades();
  223. createProdAllUpgrades();
  224. createClickUpgrades();
  225. }
  226. const prodUpgradeCounts = [1, 5, 10, 25, 50, 75, 100];
  227. function createProdUpgrades() {
  228. for (const [key, value] of Object.entries(prodUpgradeText)) {
  229. let counter = 1;
  230. let prefix = key + "-prod-";
  231. for (let contents of value) {
  232. upgrades[prefix + counter] = {
  233. "name": contents.name,
  234. "desc": contents.desc,
  235. "icon": buildings[key].icon,
  236. "cost": {
  237. "food": buildings[key].cost * 5 * Math.pow(10,counter - 1)
  238. },
  239. "effects": [
  240. {
  241. "type": "prod",
  242. "amount": 2 + (counter - 1) * 0.25,
  243. "target": key
  244. }
  245. ]
  246. };
  247. upgrades[prefix + counter]["prereqs"] = {};
  248. upgrades[prefix + counter]["prereqs"]["buildings"] = {};
  249. upgrades[prefix + counter]["prereqs"]["buildings"][key] = prodUpgradeCounts[counter - 1];
  250. if (counter > 1) {
  251. upgrades[prefix + counter]["prereqs"]["upgrades"] = [
  252. prefix + (counter - 1)
  253. ];
  254. }
  255. counter += 1;
  256. }
  257. }
  258. }
  259. function createProdAllUpgrades() {
  260. let prefix = "prod-all-"
  261. let counter = 1;
  262. for (let contents of prodAllUpgradeText) {
  263. upgrades[prefix + counter] = {
  264. "name": contents.name,
  265. "desc": contents.desc,
  266. "icon": "fa-cogs",
  267. "cost": {
  268. "food": 5 * Math.pow(10, counter+1)
  269. },
  270. "effects": [
  271. {
  272. "type": "prod-all",
  273. "amount": 1.05
  274. }
  275. ],
  276. "prereqs": {
  277. "productivity": {
  278. "food": Math.pow(10, counter)
  279. }
  280. }
  281. };
  282. if (counter > 1) {
  283. upgrades[prefix + counter]["prereqs"].upgrades = [
  284. prefix + (counter - 1)
  285. ];
  286. }
  287. counter += 1;
  288. }
  289. }
  290. function createClickUpgrades() {
  291. let prefix = "prod-click-";
  292. let counter = 1 ;
  293. for (let contents of clickUpgradeText) {
  294. upgrades[prefix + counter] = {
  295. name: contents.name,
  296. desc: contents.desc,
  297. icon: "fa-hand-pointer",
  298. cost: {
  299. food: Math.pow(10, (counter*2)+1)
  300. },
  301. effects: [
  302. {
  303. type: "click",
  304. amount: 0.01
  305. }
  306. ],
  307. prereqs: {
  308. productivity: {
  309. food: Math.pow(10, counter)
  310. }
  311. }
  312. };
  313. if (counter > 1) {
  314. upgrades[prefix + counter]["prereqs"].upgrades = [
  315. prefix + (counter - 1)
  316. ];
  317. }
  318. counter += 1;
  319. }
  320. }
  321. let prodUpgradeText = {
  322. "micro": [
  323. {
  324. "name": "Bigger Micros",
  325. "desc": "A macro micro? It's more filling, for sure.",
  326. },
  327. {
  328. "name": "Beefy Micros",
  329. "desc": "25% more protein, 10% fewer carbs."
  330. },
  331. {
  332. "name": "Delicious Micros",
  333. "desc": "Betcha' can't eat just one."
  334. },
  335. {
  336. "name": "Irresistable Micros",
  337. "desc": "Genetically engineered to be delectable."
  338. },
  339. {
  340. "name": "Exquisite Micros",
  341. "desc": "Dangerously delicious."
  342. }
  343. ],
  344. "anthro": [
  345. {
  346. "name": "Willing Prey",
  347. "desc": "Why bother chasing down your meal?"
  348. },
  349. {
  350. "name": "Fattened Prey",
  351. "desc": "9 calories per gram!"
  352. },
  353. {
  354. "name": "Mesmerized Prey",
  355. "desc": "Why bother walking to your meal?"
  356. },
  357. {
  358. "name": "Food-Safe Lubricant",
  359. "desc": "Ease them down your gullet with ease. Thanks, chemistry!"
  360. },
  361. {
  362. "name": "Mandatory Meal Training",
  363. "desc": "Educating prey on basic food etiquette helps reduce maw congestion and speeds digestion by 27%."
  364. }
  365. ],
  366. "car": [
  367. {
  368. "name": "HOV Lane",
  369. "desc": "Think of the environment! And of your impending digestion, I guess."
  370. },
  371. {
  372. "name": "Lightweight Frames",
  373. "desc": "Although crunchy, the shell around the snacks isn't very appetizing."
  374. },
  375. {
  376. "name": "Traffic Engineering",
  377. "desc": "Maximizing throughput into your gullet."
  378. },
  379. {
  380. "name": "Super Highways",
  381. "desc": "Six lanes! Fresh pavement! A ravenous maw!"
  382. },
  383. {
  384. "name": "Stacked Cars",
  385. "desc": "When we couldn't make the roads any wider, we tried stacking the cars higher."
  386. }
  387. ],
  388. "bus": [
  389. {
  390. "name": "Bus Passes",
  391. "desc": "Save on greenhouse emissions. Save your predator's effort. Everyone wins!"
  392. },
  393. {
  394. "name": "Double Deckers",
  395. "desc": "Stack 'em up! Slurp 'em down!"
  396. },
  397. {
  398. "name": "Articulated Buses",
  399. "desc": "The bend really helps them slip down your throat."
  400. },
  401. {
  402. "name": "Tour Buses",
  403. "desc": "People come from around the world to see your intestinal tract.",
  404. },
  405. {
  406. "name": "Double Double Deckers",
  407. "desc": "Hard to swallow, true, but filling nonetheless."
  408. }
  409. ],
  410. "house": [
  411. {
  412. "name": "Second Story",
  413. "desc": "Twice as many snacks, half as much chewing."
  414. },
  415. {
  416. "name": "Remodeling",
  417. "desc": "Strip out that icky asbestos."
  418. },
  419. {
  420. "name": "Smaller Yards",
  421. "desc": "Less wasted space. More wasted homes."
  422. },
  423. {
  424. "name": "House Parties",
  425. "desc": "More people! More party! More prey!"
  426. },
  427. {
  428. "name": "Suburbia",
  429. "desc": "It's like a buffet line!"
  430. }
  431. ],
  432. "apartment": [
  433. {
  434. "name": "Rent Subsidies",
  435. "desc": "Encourage high-density living. Enjoy the result."
  436. },
  437. {
  438. "name": "High-Rises",
  439. "desc": "These sure are some Tilted Towers..."
  440. },
  441. {
  442. "name": "Reverse Eviction",
  443. "desc": "Forcibly putting people IN your lunch!"
  444. },
  445. {
  446. "name": "Higher High-Rises",
  447. "desc": "Almost as tall as you! Almost."
  448. },
  449. {
  450. "name": "Vertical Beds",
  451. "desc": "You can fit way more people in a studio apartment with this one weird tip..."
  452. }
  453. ],
  454. "block": [
  455. {
  456. "name": "Street Sweepers",
  457. "desc": "Keeps the gunk off the sidewalk, and thus, off your tongue."
  458. },
  459. {
  460. "name": "Zoning Laws",
  461. "desc": "Mandatory prey-per-square-meter requirements."
  462. },
  463. {
  464. "name": "Alleyway Appetizers",
  465. "desc": "You can fit people *between* the buildings."
  466. },
  467. {
  468. "name": "Block Party",
  469. "desc": "Everyone's invited!"
  470. },
  471. {
  472. "name": "Vertical Blocks",
  473. "desc": "There's no reason you can't stack them on top of each other, right?"
  474. }
  475. ],
  476. "town": [
  477. {
  478. "name": "Going to Town",
  479. "desc": "That's where the food is."
  480. },
  481. {
  482. "name": "Going to Town, II: Revelations",
  483. "desc": "That's where the food is, again."
  484. },
  485. {
  486. "name": "Going to Town 0: Origins",
  487. "desc": "That's where the food was."
  488. },
  489. {
  490. "name": "Going to Town III: Revengeance",
  491. "desc": "Look, it's just how nature works. Food gets ate."
  492. },
  493. {
  494. "name": "Going to Town IV: Endgame",
  495. "desc": "Food IS something one considers when eating the universe."
  496. }
  497. ],
  498. "city": [
  499. {
  500. "name": "Gridlock",
  501. "desc": "Keeps people within arm's reach."
  502. },
  503. {
  504. "name": "Skyscrapers",
  505. "desc": "Corn on the cob? Corn on the cob."
  506. },
  507. {
  508. "name": "Protest March",
  509. "desc": "\"We have rights!\" chants the crowd. Unfortunately, they also have calories."
  510. },
  511. {
  512. "name": "Urban Sprawl",
  513. "desc": "What a lovely spread of Hors d'oeuvres!"
  514. },
  515. {
  516. "name": "Sim City",
  517. "desc": "You wouldn't download a city."
  518. }
  519. ],
  520. "metro": [
  521. {
  522. "name": "metro-1",
  523. "desc": ""
  524. },
  525. {
  526. "name": "metro-2",
  527. "desc": ""
  528. },
  529. {
  530. "name": "metro-3",
  531. "desc": ""
  532. },
  533. {
  534. "name": "metro-4",
  535. "desc": ""
  536. },
  537. {
  538. "name": "metro-5",
  539. "desc": ""
  540. }
  541. ],
  542. "county": [
  543. {
  544. "name": "County Roads",
  545. "desc": "Eh, close enough."
  546. },
  547. {
  548. "name": "county-2",
  549. "desc": ""
  550. },
  551. {
  552. "name": "county-3",
  553. "desc": ""
  554. },
  555. {
  556. "name": "county-4",
  557. "desc": ""
  558. },
  559. {
  560. "name": "county-5",
  561. "desc": ""
  562. }
  563. ],
  564. "state": [
  565. {
  566. "name": "state-1",
  567. "desc": ""
  568. },
  569. {
  570. "name": "state-2",
  571. "desc": ""
  572. },
  573. {
  574. "name": "state-3",
  575. "desc": ""
  576. },
  577. {
  578. "name": "state-4",
  579. "desc": ""
  580. },
  581. {
  582. "name": "state-5",
  583. "desc": ""
  584. }
  585. ],
  586. "country": [
  587. {
  588. "name": "Country Roads",
  589. "desc": "Take me hooooooome / to the plaaaaaace / where GULP"
  590. },
  591. {
  592. "name": "country-2",
  593. "desc": ""
  594. },
  595. {
  596. "name": "country-3",
  597. "desc": ""
  598. },
  599. {
  600. "name": "country-4",
  601. "desc": ""
  602. },
  603. {
  604. "name": "country-5",
  605. "desc": ""
  606. }
  607. ],
  608. "continent": [
  609. {
  610. "name": "continent-1",
  611. "desc": ""
  612. },
  613. {
  614. "name": "continent-2",
  615. "desc": ""
  616. },
  617. {
  618. "name": "continent-3",
  619. "desc": ""
  620. },
  621. {
  622. "name": "continent-4",
  623. "desc": ""
  624. },
  625. {
  626. "name": "continent-5",
  627. "desc": ""
  628. }
  629. ],
  630. "planet": [
  631. {
  632. "name": "planet-1",
  633. "desc": ""
  634. },
  635. {
  636. "name": "planet-2",
  637. "desc": ""
  638. },
  639. {
  640. "name": "planet-3",
  641. "desc": ""
  642. },
  643. {
  644. "name": "planet-4",
  645. "desc": ""
  646. },
  647. {
  648. "name": "planet-5",
  649. "desc": ""
  650. }
  651. ],
  652. "solar-system": [
  653. {
  654. "name": "solar-system-1",
  655. "desc": ""
  656. },
  657. {
  658. "name": "solar-system-2",
  659. "desc": ""
  660. },
  661. {
  662. "name": "solar-system-3",
  663. "desc": ""
  664. },
  665. {
  666. "name": "solar-system-4",
  667. "desc": ""
  668. },
  669. {
  670. "name": "solar-system-5",
  671. "desc": ""
  672. }
  673. ],
  674. "galaxy": [
  675. {
  676. "name": "galaxy-1",
  677. "desc": ""
  678. },
  679. {
  680. "name": "galaxy-2",
  681. "desc": ""
  682. },
  683. {
  684. "name": "galaxy-3",
  685. "desc": ""
  686. },
  687. {
  688. "name": "galaxy-4",
  689. "desc": ""
  690. },
  691. {
  692. "name": "galaxy-5",
  693. "desc": ""
  694. }
  695. ],
  696. "universe": [
  697. {
  698. "name": "universe-1",
  699. "desc": ""
  700. },
  701. {
  702. "name": "universe-2",
  703. "desc": ""
  704. },
  705. {
  706. "name": "universe-3",
  707. "desc": ""
  708. },
  709. {
  710. "name": "universe-4",
  711. "desc": ""
  712. },
  713. {
  714. "name": "universe-5",
  715. "desc": ""
  716. }
  717. ],
  718. "multiverse": [
  719. {
  720. "name": "multiverse-1",
  721. "desc": ""
  722. },
  723. {
  724. "name": "multiverse-2",
  725. "desc": ""
  726. },
  727. {
  728. "name": "multiverse-3",
  729. "desc": ""
  730. },
  731. {
  732. "name": "multiverse-4",
  733. "desc": ""
  734. },
  735. {
  736. "name": "multiverse-5",
  737. "desc": ""
  738. }
  739. ],
  740. }
  741. let prodAllUpgradeText = [
  742. {
  743. "name": "Sloth Metabolism",
  744. "desc": "Burn those calories. Eventually."
  745. },
  746. {
  747. "name": "Decent Metabolism",
  748. "desc": "Picking up the pace."
  749. },
  750. {
  751. "name": "Perky Metabolism",
  752. "desc": "Sweat a little."
  753. },
  754. {
  755. "name": "Quick Metabolism",
  756. "desc": "Burn those calories."
  757. },
  758. {
  759. "name": "Speedy Metabolism",
  760. "desc": "More prey, more power."
  761. },
  762. {
  763. "name": "Fast Metabolism",
  764. "desc": "You're a furnace. Fueled by people."
  765. },
  766. {
  767. "name": "Powerful Metabolism",
  768. "desc": "Digest them all."
  769. },
  770. {
  771. "name": "Unbelievable Metabolism",
  772. "desc": "Digest them all and more."
  773. },
  774. {
  775. "name": "Supernatural Metabolism",
  776. "desc": "Digest everything."
  777. },
  778. {
  779. "name": "Godly Metabolism",
  780. "desc": "Digest."
  781. }
  782. ]
  783. const clickUpgradeText = [
  784. {
  785. "name": "Grabby Hands",
  786. "desc": "Gathers prey, opens rooftops"
  787. },
  788. {
  789. "name": "Long Tongue",
  790. "desc": "Catches stragglers, tastes architecture"
  791. },
  792. {
  793. "name": "Sharp Eyes",
  794. "desc": "Spots snacks, probably unblinking"
  795. },
  796. {
  797. "name": "Sensitive Nose",
  798. "desc": "Sniffs meals, savors scents"
  799. },
  800. {
  801. "name": "Sensitive Ears",
  802. "desc": "Hears screams, finds leftovers"
  803. },
  804. {
  805. "name": "Greedy Hands",
  806. "desc": "Hoards prey, no leftovers"
  807. },
  808. {
  809. "name": "Nimble Tongue",
  810. "desc": "Snares snacks, without escape"
  811. },
  812. {
  813. "name": "Eagle Eyes",
  814. "desc": "Scans streets, always keen"
  815. },
  816. {
  817. "name": "Keen Nose",
  818. "desc": "Finds prey, never fooled"
  819. },
  820. {
  821. "name": "Perfect Ears",
  822. "desc": "Senses scuttles, won't relent"
  823. },
  824. ]