cookie clicker but bigger
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

930 líneas
19 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-building"
  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-store"
  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. "click-victim": {
  195. "desc": function(effect) {
  196. return "Devour larger prey";
  197. }
  198. }
  199. }
  200. let upgrades = {
  201. }
  202. function createTemplateUpgrades() {
  203. createProdUpgrades();
  204. createProdAllUpgrades();
  205. createClickUpgrades();
  206. createHelperUpgrades();
  207. createClickVictimUpgrades();
  208. }
  209. const prodUpgradeCounts = [1, 5, 10, 25, 50, 75, 100];
  210. function createProdUpgrades() {
  211. for (const [key, value] of Object.entries(prodUpgradeText)) {
  212. let counter = 1;
  213. let prefix = key + "-prod-";
  214. for (let contents of value) {
  215. upgrades[prefix + counter] = {
  216. "name": contents.name,
  217. "desc": contents.desc,
  218. "icon": buildings[key].icon,
  219. "cost": {
  220. "food": buildings[key].cost * 5 * Math.pow(10,counter - 1)
  221. },
  222. "effects": [
  223. {
  224. "type": "prod",
  225. "amount": 2 + (counter - 1) * 0.25,
  226. "target": key
  227. }
  228. ]
  229. };
  230. upgrades[prefix + counter]["prereqs"] = {};
  231. upgrades[prefix + counter]["prereqs"]["buildings"] = {};
  232. upgrades[prefix + counter]["prereqs"]["buildings"][key] = prodUpgradeCounts[counter - 1];
  233. if (counter > 1) {
  234. upgrades[prefix + counter]["prereqs"]["upgrades"] = [
  235. prefix + (counter - 1)
  236. ];
  237. }
  238. counter += 1;
  239. }
  240. }
  241. }
  242. function createProdAllUpgrades() {
  243. let prefix = "prod-all-"
  244. let counter = 1;
  245. for (let contents of prodAllUpgradeText) {
  246. upgrades[prefix + counter] = {
  247. "name": contents.name,
  248. "desc": contents.desc,
  249. "icon": "fa-cogs",
  250. "cost": {
  251. "food": 5 * Math.pow(10, counter+1)
  252. },
  253. "effects": [
  254. {
  255. "type": "prod-all",
  256. "amount": 1.05
  257. }
  258. ],
  259. "prereqs": {
  260. "productivity": {
  261. "food": Math.pow(10, counter)
  262. }
  263. }
  264. };
  265. if (counter > 1) {
  266. upgrades[prefix + counter]["prereqs"].upgrades = [
  267. prefix + (counter - 1)
  268. ];
  269. }
  270. counter += 1;
  271. }
  272. }
  273. function createClickUpgrades() {
  274. let prefix = "prod-click-";
  275. let counter = 1 ;
  276. for (let contents of clickUpgradeText) {
  277. upgrades[prefix + counter] = {
  278. name: contents.name,
  279. desc: contents.desc,
  280. icon: "fa-hand-pointer",
  281. cost: {
  282. food: Math.pow(10, (counter*2)+1)
  283. },
  284. effects: [
  285. {
  286. type: "click",
  287. amount: 0.01
  288. }
  289. ],
  290. prereqs: {
  291. productivity: {
  292. food: Math.pow(10, counter)
  293. }
  294. }
  295. };
  296. if (counter > 1) {
  297. upgrades[prefix + counter]["prereqs"].upgrades = [
  298. prefix + (counter - 1)
  299. ];
  300. }
  301. counter += 1;
  302. }
  303. }
  304. function createHelperUpgrades() {
  305. const infix = "-help-";
  306. Object.entries(helperUpgradeText).forEach(([helper, helpees]) => {
  307. const prefix = helper;
  308. Object.entries(helpees).forEach(([helped, texts]) => {
  309. const suffix = helped;
  310. let counter = 1;
  311. for (let text of texts) {
  312. const key = prefix + infix + suffix + "-" + counter;
  313. console.log(key);
  314. upgrades[key] = {
  315. "name": text.name,
  316. "desc": text.desc,
  317. "icon": "fa-hand-holding",
  318. "cost": {
  319. "food": buildings[helper].cost * 25 * counter + buildings[helped].cost * 50 * counter
  320. },
  321. "effects": [
  322. {
  323. "type": "helper",
  324. "helper": helper,
  325. "helped": helped,
  326. "amount": 0.01 * counter
  327. }
  328. ],
  329. "prereqs": {
  330. "buildings": {
  331. },
  332. "upgrades": [
  333. helper + "-prod-1"
  334. ]
  335. }
  336. };
  337. upgrades[key]["prereqs"]["buildings"][helper] = 10 * counter;
  338. if (counter > 1) {
  339. upgrades[key]["prereqs"]["upgrades"].push(prefix + infix + suffix + "-" + (counter - 1) )
  340. }
  341. counter += 1;
  342. }
  343. });
  344. });
  345. }
  346. function createClickVictimUpgrades() {
  347. const prefix = "click-";
  348. let counter = 1;
  349. Object.entries(clickVictimUpgradeText).forEach(([key, text]) => {
  350. upgrades[prefix + key] = {
  351. "name": text.name,
  352. "desc": text.desc,
  353. "icon": buildings[key].icon,
  354. "cost": {
  355. "food": 1000 * Math.pow(10, counter)
  356. },
  357. "effects": [
  358. {
  359. "type": "click-victim",
  360. "id": "anthro"
  361. }
  362. ],
  363. "prereqs": {
  364. }
  365. };
  366. counter += 1;
  367. });
  368. }
  369. let prodUpgradeText = {
  370. "micro": [
  371. {
  372. "name": "Bigger Micros",
  373. "desc": "A macro micro? It's more filling, for sure.",
  374. },
  375. {
  376. "name": "Beefy Micros",
  377. "desc": "25% more protein, 10% fewer carbs."
  378. },
  379. {
  380. "name": "Delicious Micros",
  381. "desc": "Betcha' can't eat just one."
  382. },
  383. {
  384. "name": "Irresistable Micros",
  385. "desc": "Genetically engineered to be delectable."
  386. },
  387. {
  388. "name": "Exquisite Micros",
  389. "desc": "Dangerously delicious."
  390. }
  391. ],
  392. "anthro": [
  393. {
  394. "name": "Willing Prey",
  395. "desc": "Why bother chasing down your meal?"
  396. },
  397. {
  398. "name": "Fattened Prey",
  399. "desc": "9 calories per gram!"
  400. },
  401. {
  402. "name": "Mesmerized Prey",
  403. "desc": "Why bother walking to your meal?"
  404. },
  405. {
  406. "name": "Food-Safe Lubricant",
  407. "desc": "Ease them down your gullet with ease. Thanks, chemistry!"
  408. },
  409. {
  410. "name": "Mandatory Meal Training",
  411. "desc": "Educating prey on basic food etiquette helps reduce maw congestion and speeds digestion by 27%."
  412. }
  413. ],
  414. "car": [
  415. {
  416. "name": "HOV Lane",
  417. "desc": "Think of the environment! And of your impending digestion, I guess."
  418. },
  419. {
  420. "name": "Lightweight Frames",
  421. "desc": "Although crunchy, the shell around the snacks isn't very appetizing."
  422. },
  423. {
  424. "name": "Traffic Engineering",
  425. "desc": "Maximizing throughput into your gullet."
  426. },
  427. {
  428. "name": "Super Highways",
  429. "desc": "Six lanes! Fresh pavement! A ravenous maw!"
  430. },
  431. {
  432. "name": "Stacked Cars",
  433. "desc": "When we couldn't make the roads any wider, we tried stacking the cars higher."
  434. }
  435. ],
  436. "bus": [
  437. {
  438. "name": "Bus Passes",
  439. "desc": "Save on greenhouse emissions. Save your predator's effort. Everyone wins!"
  440. },
  441. {
  442. "name": "Double Deckers",
  443. "desc": "Stack 'em up! Slurp 'em down!"
  444. },
  445. {
  446. "name": "Articulated Buses",
  447. "desc": "The bend really helps them slip down your throat."
  448. },
  449. {
  450. "name": "Tour Buses",
  451. "desc": "People come from around the world to see your intestinal tract.",
  452. },
  453. {
  454. "name": "Double Double Deckers",
  455. "desc": "Hard to swallow, true, but filling nonetheless."
  456. }
  457. ],
  458. "house": [
  459. {
  460. "name": "Second Story",
  461. "desc": "Twice as many snacks, half as much chewing."
  462. },
  463. {
  464. "name": "Remodeling",
  465. "desc": "Strip out that icky asbestos."
  466. },
  467. {
  468. "name": "Smaller Yards",
  469. "desc": "Less wasted space. More wasted homes."
  470. },
  471. {
  472. "name": "House Parties",
  473. "desc": "More people! More party! More prey!"
  474. },
  475. {
  476. "name": "Suburbia",
  477. "desc": "It's like a buffet line!"
  478. }
  479. ],
  480. "apartment": [
  481. {
  482. "name": "Rent Subsidies",
  483. "desc": "Encourage high-density living. Enjoy the result."
  484. },
  485. {
  486. "name": "High-Rises",
  487. "desc": "These sure are some Tilted Towers..."
  488. },
  489. {
  490. "name": "Reverse Eviction",
  491. "desc": "Forcibly putting people IN your lunch!"
  492. },
  493. {
  494. "name": "Higher High-Rises",
  495. "desc": "Almost as tall as you! Almost."
  496. },
  497. {
  498. "name": "Vertical Beds",
  499. "desc": "You can fit way more people in a studio apartment with this one weird tip..."
  500. }
  501. ],
  502. "block": [
  503. {
  504. "name": "Street Sweepers",
  505. "desc": "Keeps the gunk off the sidewalk, and thus, off your tongue."
  506. },
  507. {
  508. "name": "Zoning Laws",
  509. "desc": "Mandatory prey-per-square-meter requirements."
  510. },
  511. {
  512. "name": "Alleyway Appetizers",
  513. "desc": "You can fit people *between* the buildings."
  514. },
  515. {
  516. "name": "Block Party",
  517. "desc": "Everyone's invited!"
  518. },
  519. {
  520. "name": "Vertical Blocks",
  521. "desc": "There's no reason you can't stack them on top of each other, right?"
  522. }
  523. ],
  524. "town": [
  525. {
  526. "name": "Going to Town",
  527. "desc": "That's where the food is."
  528. },
  529. {
  530. "name": "Going to Town, II: Revelations",
  531. "desc": "That's where the food is, again."
  532. },
  533. {
  534. "name": "Going to Town 0: Origins",
  535. "desc": "That's where the food was."
  536. },
  537. {
  538. "name": "Going to Town III: Revengeance",
  539. "desc": "Look, it's just how nature works. Food gets ate."
  540. },
  541. {
  542. "name": "Going to Town IV: Endgame",
  543. "desc": "Food IS something one considers when eating the universe."
  544. }
  545. ],
  546. "city": [
  547. {
  548. "name": "Gridlock",
  549. "desc": "Keeps people within arm's reach."
  550. },
  551. {
  552. "name": "Skyscrapers",
  553. "desc": "Corn on the cob? Corn on the cob."
  554. },
  555. {
  556. "name": "Protest March",
  557. "desc": "\"We have rights!\" chants the crowd. Unfortunately, they also have calories."
  558. },
  559. {
  560. "name": "Urban Sprawl",
  561. "desc": "What a lovely spread of Hors d'oeuvres!"
  562. },
  563. {
  564. "name": "Sim City",
  565. "desc": "You wouldn't download a city."
  566. }
  567. ],
  568. "metro": [
  569. {
  570. "name": "metro-1",
  571. "desc": ""
  572. },
  573. {
  574. "name": "metro-2",
  575. "desc": ""
  576. },
  577. {
  578. "name": "metro-3",
  579. "desc": ""
  580. },
  581. {
  582. "name": "metro-4",
  583. "desc": ""
  584. },
  585. {
  586. "name": "metro-5",
  587. "desc": ""
  588. }
  589. ],
  590. "county": [
  591. {
  592. "name": "County Roads",
  593. "desc": "Eh, close enough."
  594. },
  595. {
  596. "name": "county-2",
  597. "desc": ""
  598. },
  599. {
  600. "name": "county-3",
  601. "desc": ""
  602. },
  603. {
  604. "name": "county-4",
  605. "desc": ""
  606. },
  607. {
  608. "name": "county-5",
  609. "desc": ""
  610. }
  611. ],
  612. "state": [
  613. {
  614. "name": "state-1",
  615. "desc": ""
  616. },
  617. {
  618. "name": "state-2",
  619. "desc": ""
  620. },
  621. {
  622. "name": "state-3",
  623. "desc": ""
  624. },
  625. {
  626. "name": "state-4",
  627. "desc": ""
  628. },
  629. {
  630. "name": "state-5",
  631. "desc": ""
  632. }
  633. ],
  634. "country": [
  635. {
  636. "name": "Country Roads",
  637. "desc": "Take me hooooooome / to the plaaaaaace / where GULP"
  638. },
  639. {
  640. "name": "country-2",
  641. "desc": ""
  642. },
  643. {
  644. "name": "country-3",
  645. "desc": ""
  646. },
  647. {
  648. "name": "country-4",
  649. "desc": ""
  650. },
  651. {
  652. "name": "country-5",
  653. "desc": ""
  654. }
  655. ],
  656. "continent": [
  657. {
  658. "name": "continent-1",
  659. "desc": ""
  660. },
  661. {
  662. "name": "continent-2",
  663. "desc": ""
  664. },
  665. {
  666. "name": "continent-3",
  667. "desc": ""
  668. },
  669. {
  670. "name": "continent-4",
  671. "desc": ""
  672. },
  673. {
  674. "name": "continent-5",
  675. "desc": ""
  676. }
  677. ],
  678. "planet": [
  679. {
  680. "name": "planet-1",
  681. "desc": ""
  682. },
  683. {
  684. "name": "planet-2",
  685. "desc": ""
  686. },
  687. {
  688. "name": "planet-3",
  689. "desc": ""
  690. },
  691. {
  692. "name": "planet-4",
  693. "desc": ""
  694. },
  695. {
  696. "name": "planet-5",
  697. "desc": ""
  698. }
  699. ],
  700. "solar-system": [
  701. {
  702. "name": "solar-system-1",
  703. "desc": ""
  704. },
  705. {
  706. "name": "solar-system-2",
  707. "desc": ""
  708. },
  709. {
  710. "name": "solar-system-3",
  711. "desc": ""
  712. },
  713. {
  714. "name": "solar-system-4",
  715. "desc": ""
  716. },
  717. {
  718. "name": "solar-system-5",
  719. "desc": ""
  720. }
  721. ],
  722. "galaxy": [
  723. {
  724. "name": "galaxy-1",
  725. "desc": ""
  726. },
  727. {
  728. "name": "galaxy-2",
  729. "desc": ""
  730. },
  731. {
  732. "name": "galaxy-3",
  733. "desc": ""
  734. },
  735. {
  736. "name": "galaxy-4",
  737. "desc": ""
  738. },
  739. {
  740. "name": "galaxy-5",
  741. "desc": ""
  742. }
  743. ],
  744. "universe": [
  745. {
  746. "name": "universe-1",
  747. "desc": ""
  748. },
  749. {
  750. "name": "universe-2",
  751. "desc": ""
  752. },
  753. {
  754. "name": "universe-3",
  755. "desc": ""
  756. },
  757. {
  758. "name": "universe-4",
  759. "desc": ""
  760. },
  761. {
  762. "name": "universe-5",
  763. "desc": ""
  764. }
  765. ],
  766. "multiverse": [
  767. {
  768. "name": "multiverse-1",
  769. "desc": ""
  770. },
  771. {
  772. "name": "multiverse-2",
  773. "desc": ""
  774. },
  775. {
  776. "name": "multiverse-3",
  777. "desc": ""
  778. },
  779. {
  780. "name": "multiverse-4",
  781. "desc": ""
  782. },
  783. {
  784. "name": "multiverse-5",
  785. "desc": ""
  786. }
  787. ],
  788. }
  789. let prodAllUpgradeText = [
  790. {
  791. "name": "Sloth Metabolism",
  792. "desc": "Burn those calories. Eventually."
  793. },
  794. {
  795. "name": "Decent Metabolism",
  796. "desc": "Picking up the pace."
  797. },
  798. {
  799. "name": "Perky Metabolism",
  800. "desc": "Sweat a little."
  801. },
  802. {
  803. "name": "Quick Metabolism",
  804. "desc": "Burn those calories."
  805. },
  806. {
  807. "name": "Speedy Metabolism",
  808. "desc": "More prey, more power."
  809. },
  810. {
  811. "name": "Fast Metabolism",
  812. "desc": "You're a furnace. Fueled by people."
  813. },
  814. {
  815. "name": "Powerful Metabolism",
  816. "desc": "Digest them all."
  817. },
  818. {
  819. "name": "Unbelievable Metabolism",
  820. "desc": "Digest them all and more."
  821. },
  822. {
  823. "name": "Supernatural Metabolism",
  824. "desc": "Digest everything."
  825. },
  826. {
  827. "name": "Godly Metabolism",
  828. "desc": "Digest."
  829. }
  830. ]
  831. const clickUpgradeText = [
  832. {
  833. "name": "Grabby Hands",
  834. "desc": "Gathers prey, opens rooftops"
  835. },
  836. {
  837. "name": "Long Tongue",
  838. "desc": "Catches stragglers, tastes architecture"
  839. },
  840. {
  841. "name": "Sharp Eyes",
  842. "desc": "Spots snacks, probably unblinking"
  843. },
  844. {
  845. "name": "Sensitive Nose",
  846. "desc": "Sniffs meals, savors scents"
  847. },
  848. {
  849. "name": "Sensitive Ears",
  850. "desc": "Hears screams, finds leftovers"
  851. },
  852. {
  853. "name": "Greedy Hands",
  854. "desc": "Hoards prey, no leftovers"
  855. },
  856. {
  857. "name": "Nimble Tongue",
  858. "desc": "Snares snacks, without escape"
  859. },
  860. {
  861. "name": "Eagle Eyes",
  862. "desc": "Scans streets, always keen"
  863. },
  864. {
  865. "name": "Keen Nose",
  866. "desc": "Finds prey, never fooled"
  867. },
  868. {
  869. "name": "Perfect Ears",
  870. "desc": "Senses scuttles, won't relent"
  871. },
  872. ]
  873. const helperUpgradeText = {
  874. "anthro": {
  875. "micro": [
  876. {
  877. "name": "Gatherers",
  878. "desc": "Why bother chasing them, really?"
  879. },
  880. {
  881. "name": "Servants",
  882. "desc": "Why bother walking anywhere, really?"
  883. },
  884. ]
  885. }
  886. }
  887. const clickVictimUpgradeText = {
  888. "anthro": {
  889. "name": "Same-Size Prey",
  890. "desc": "Devour an anthro with every click"
  891. }
  892. };