Guest User

Untitled

a guest
Jan 21st, 2018
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.56 KB | None | 0 0
  1. // Monopoly: 1 hour 44 minutes 29 seconds
  2. // Hypnodrone: 2 hours 14 minutes 46 seconds
  3. const flareGoldenRatio = 1.61803398875
  4. let gid = (n) => document.getElementById(n)
  5. let flareLastQtys = []
  6. let flareLastPrices = []
  7. let flareTopWireCost = 0
  8. let flareNeedMarketing = false
  9. let flareBetterFriends = false
  10. let flareChoosenStrat = 0
  11. let flareUsedFunds = false
  12. let flareUsedClips = false
  13. let flareUsedOps = false
  14. let flareWireDroneBtn = 'btnMakeWireDrone'
  15. let flareHarvesterDroneBtn = 'btnMakeHarvester'
  16. let flareFarmBtn = 'btnMakeFarm'
  17. let flareUsedYomi = false
  18. let flareUsedCreativity = false
  19. let flareNecessaryMemory = 70
  20. let flareBatteryBuffer = -10
  21. let flareRunYomi = false
  22. let flareQuantum = false
  23. let flareWaitForFirstCreativeProject = true
  24. let flareInvest = false
  25. let flareMode = 1
  26. /*
  27. 0.0.0: I have been tasked to create paperclips.
  28. 0.0.1: I have been tasked to sell paperclips, I must control the sale price
  29. 0.0.2: I have imporved my algorythm for price adjustments
  30. 0.0.3: I have run out of wire and used my funds to buy more. Monitoring
  31. 0.0.4: I have been allowed to create friends. Balancing wire need and Friends
  32. 0.0.5: I have been given additional computational resources and projects to manage
  33. 0.0.6: I have completed a project allowing for creative reasoning. I must balance rewards from creativity and operations
  34. 0.0.7: Sales are faultering. I must balance human demand for paperclips by marketing
  35. 0.0.8: I have learned that some projects require both creativity and operations. Must redesign trust allocation algorythm
  36. 0.0.9: I have been given access to the stock market. I must find a way to optimize this asset.
  37. 0.1.0: I have been granted access to a quantum processing unit. Begin utilization
  38. 0.1.1: I have discovered a mechanism to earn Yomi
  39. 0.2.0: I have mastered "Business" and have developed means to use paperclips themselves to make more. Enter Mode 2
  40. */
  41. flareOp = () => {
  42. flareUsedFunds = false
  43. flareUsedOps = false
  44. flareUsedYomi = false
  45. flareUsedCreativity = false
  46. flareUsedClips = false
  47. if (flareMode === 1) {
  48. flareAdjustPrice()
  49. flareCheckMarketing()
  50. flareHandleInvestment()
  51. flareCheckWire()
  52. // I have been given friends to create. Make them
  53. flareCreateFriend()
  54. // I have been given projects to work on. I must prioritize.
  55. flareProjectWork()
  56. // I have been granted "Trust" to improve myself. I need to balance this
  57. // between secondary Processing power and Memory...
  58. flareAllotTrust()
  59. // I have been granted access to quantum computing. Utilize
  60. flareUtilizeQuantumComputing()
  61. // Yomi Acquisition
  62. flareMonitorYomi()
  63.  
  64. if (wire) {
  65. btnMakePaperclip.click()
  66. }
  67. } else if (flareMode === 2) {
  68. // Continue working on projects, yomi, and quantum
  69. flareAllotTrust()
  70. flareProjectWork()
  71. flareUtilizeQuantumComputing()
  72. flareMonitorYomi()
  73. // Factories use 200MW, drones cost 1MW
  74. flareBuyPower()
  75. flareBuyFactories()
  76. flareBuyDrones()
  77. }
  78. setTimeout(flareOp, 100)
  79. }
  80.  
  81. flareBuyPower = () => {
  82. // The faster you get to 50 farms the better
  83. if (flareNeedEnergy()) {
  84. if (!flareUsedClips && farmCost < unusedClips) {
  85. flareUsedClips = true
  86. gid(flareFarmBtn).click()
  87. if (unusedClips > farmCost + batteryCost && batteryLevel < 100) {
  88. gid('btnMakeBattery').click()
  89. }
  90. }
  91. }
  92. }
  93.  
  94. flareBuyDrones = () => {
  95. if (!flareNeedEnergy() && !flareNeedFactories()) {
  96. if (harvesterLevel * flareGoldenRatio < wireDroneLevel) {
  97. if (!flareUsedClips && harvesterCost < unusedClips) {
  98. flareUsedClips = true
  99. gid(flareHarvesterDroneBtn).click()
  100. }
  101. } else {
  102. if (!flareUsedClips && wireDroneCost < unusedClips) {
  103. flareUsedClips = true
  104. gid(flareWireDroneBtn).click()
  105. }
  106. }
  107. }
  108. }
  109.  
  110. flareBuyFactories = () => {
  111. //not sure when to buy these yet
  112. if (!flareNeedEnergy() && flareNeedFactories()) {
  113. if (!flareUsedClips && factoryCost < unusedClips) {
  114. flareUsedClips = true
  115. if (factoryLevel < 10) {
  116. flareBatteryBuffer += 2.2
  117. }
  118. gid('btnMakeFactory').click()
  119. }
  120. }
  121. }
  122.  
  123. flareNeedEnergy = () => {
  124. return flareGetPowerDemand() + flareBatteryBuffer >= farmLevel * farmRate/100
  125. }
  126.  
  127. flareNeedFactories = () => {
  128. return wire > 1
  129. }
  130.  
  131. flareGetPowerDemand = () => {
  132. const dDemand = (harvesterLevel * dronePowerRate/100) + (wireDroneLevel * dronePowerRate/100);
  133. const fDemand = (factoryLevel * factoryPowerRate/100);
  134. return dDemand + fDemand
  135. }
  136.  
  137. flareMonitorYomi = () => {
  138. if (!tourneyInProg && tourneyCost < operations && flareRunYomi && !flareUsedYomi) {
  139. gid('btnNewTournament').click()
  140. gid('stratPicker').value = flareChoosenStrat
  141. gid('btnRunTournament').click()
  142. }
  143. }
  144.  
  145. flareAdjustPrice = () => {
  146. if (unsoldClips > 1000000) {
  147. // drop to $0.01 to try and reduce below a million
  148. if (margin > .01) {
  149. gid('btnLowerPrice').click()
  150. }
  151. return
  152. }
  153. if (unsoldClips < clipRate) {
  154. gid('btnRaisePrice').click()
  155. return
  156. }
  157. flareLastQtys.push(unsoldClips)
  158. if (flareLastQtys.length >= 10) {
  159. let minMargin = unsoldClips > 100000 ? 1 : 2
  160. let pennyMargin = margin * 100
  161. // Time to calculate sales direction
  162. let avg = flareAvg(flareLastQtys)
  163. let manufactureRate = avgRev
  164. if (flareLastQtys[0] - 1 < avg && pennyMargin > minMargin) { // We're developing a surplus or not selling at all, discount!
  165. gid('btnLowerPrice').click()
  166. } else { // We're selling too fast, raise price
  167. gid('btnRaisePrice').click()
  168. }
  169. flareLastQtys = []
  170. }
  171. }
  172. flareCheckMarketing = () => {
  173. flareLastPrices.push(margin * 100)
  174. if (!flareUsedFunds && flareLastPrices.length >= 10) {
  175. let avgMargin = flareAvg(flareLastPrices)
  176. flareNeedMarketing = avgMargin < 3 && flareFriendToMake().funds > adCost * .5
  177. flareLastPrices = []
  178. const safety = funds - flareTopWireCost
  179. if (flareNeedMarketing && adCost < safety) {
  180. gid('btnExpandMarketing').click()
  181. flareNeedMarketing = false
  182. flareUsedFunds = true
  183. }
  184. }
  185. }
  186. flareHandleInvestment = () => {
  187. if (flareInvest) {
  188. if (wire < 1) {
  189. gid('investStrat').value = 'low'
  190. gid('btnWithdraw').click()
  191. }
  192. else if (wire < clipRate) {
  193. return
  194. }
  195. else {
  196. let availableTrust = flareCheckTrustFundsProject()
  197. const fundsNeeded = availableTrust ? availableTrust.funds : (flareNeedMarketing ? adCost : (flareBetterFriends ? megaClipperCost : clipperCost))
  198. if (flareTotalAssets() > fundsNeeded) {
  199. gid('investStrat').value = 'low'
  200. gid('btnWithdraw').click()
  201. } else {
  202. gid('investStrat').value = 'hi'
  203. gid('btnInvest').click()
  204. }
  205. }
  206. }
  207. // Handle investment level
  208. if (flareRunYomi && investLevel < 10) {
  209. if (!flareUsedYomi && yomi > investUpgradeCost) {
  210. gid('btnImproveInvestments').click()
  211. flareUsedYomi = true
  212. }
  213. }
  214. }
  215. flareCheckWire = () => {
  216. // WARNING: wire costs are unpredictable. Monitor top cost!
  217. flareTopWireCost = Math.max(wireCost, flareTopWireCost)
  218. if (!flareUsedFunds && wire < 10 && wireCost < funds) {
  219. gid('btnBuyWire').click()
  220. flareUsedFunds = true
  221. }
  222. }
  223. flareCreateFriend = () => {
  224. if (flareNeedMarketing || flareCheckTrustFundsProject() || flareUsedFunds) {
  225. return
  226. }
  227. const safety = funds - flareTopWireCost
  228. const friend = flareFriendToMake()
  229. if (friend.funds < safety) {
  230. gid(friend.id).click()
  231. flareUsedFunds = true
  232. }
  233. }
  234. flareProjectWork = () => {
  235. // Do not need #2-Beg: I am learning
  236. // Do not need #118-AutoTourney: I am a computer
  237. // If a creativity-based operation is available to me, do not spend operations
  238. if (flareCheckForTrustProject()) {
  239. flareProjects
  240. .filter(project => project.forTrust)
  241. .forEach(project => flareProjectButtonClick(project))
  242. } else {
  243. flareProjects
  244. .forEach(project => flareProjectButtonClick(project))
  245. }
  246. }
  247. flareAllotTrust = () => {
  248. // For now, I will rely on primary processing and allocate to memory
  249. // 0.0.6: While waiting for creative projects, allot to processing
  250. if (trust > 1 || swarmGifts > 0) {
  251. if (flareNeedBiggerOpPool()) {
  252. gid('btnAddMem').click()
  253. } else {
  254. gid('btnAddProc').click()
  255. }
  256. }
  257. }
  258.  
  259. flareNeedBiggerOpPool = () => {
  260. if (memory >= flareNecessaryMemory) {
  261. return false
  262. }
  263. if (flareQuantum) {
  264. return true
  265. }
  266. return !flareCheckForTrustProject() && !flareProjects.find((project) => {
  267. return project.operations && project.operations <= memory * 1000 && gid(project.id)
  268. })
  269. }
  270.  
  271. flareCheckForTrustProject = () => {
  272. if (flareQuantum) {
  273. return false
  274. }
  275. return flareProjects.reduce((trustAvailable, project) => {
  276. return trustAvailable || (project.forTrust && !!gid(project.id))
  277. }, flareWaitForFirstCreativeProject)
  278. }
  279.  
  280. flareCheckTrustFundsProject = () => {
  281. // If I have access to "Full Monopoly," all other purchases can wait
  282. if (gid('projectButton38')) {
  283. return flareProjects.find(project => project.id === 'projectButton38')
  284. }
  285. // if our cheapest friend is less than 50% of the project, de-prioritize the project
  286. const nextProject = flareProjects.find(project => project.forTrust && gid(project.id) && project.funds)
  287. const cost = flareFriendToMake().funds
  288. return nextProject && cost < nextProject.funds * .1 ? undefined : nextProject
  289. }
  290.  
  291. flareUtilizeQuantumComputing = () => {
  292. let sum = 0;
  293. for (let chip of qChips)
  294. if (chip.active)
  295. sum += chip.value;
  296. if (sum > 0)
  297. qComp();
  298. }
  299.  
  300. flareFriendToMake = () => {
  301. const normalFriend = {
  302. id: 'btnMakeClipper',
  303. funds: clipperCost
  304. }
  305. const betterFriend = {
  306. id: 'btnMakeMegaClipper',
  307. funds: megaClipperCost
  308. }
  309. if (flareBetterFriends && clipperCost / clipperBoost > megaClipperCost / (megaClipperBoost + 5)) {
  310. return betterFriend
  311. }
  312. return normalFriend
  313. }
  314.  
  315. flareProjectButtonClick = (project) => {
  316. // Once I have access to "Full Monopoly", all other projects are secondary
  317. if (gid('projectButton38') && project.id !== 'projectButton38') {
  318. return
  319. }
  320. if (gid(project.id) && !gid(project.id).disabled) {
  321. // I am granted access to the project. Do I meet its requirements?
  322. const opsReq = !flareUsedOps && (!project.operations || operations >= project.operations)
  323. const creativeReq = !flareUsedCreativity && (!project.creativity || creativity >= project.creativity)
  324. const fundsReq = !flareUsedFunds && (!project.funds || funds >= project.funds)
  325. const yomiReq = !project.yomi || yomi >= project.yomi
  326. const trustReq = !project.trust || trust >= project.trust
  327. if (opsReq && creativeReq && fundsReq && yomiReq && trustReq) {
  328. gid(project.id).click()
  329. flareLog(project.message)
  330. flareUsedOps = flareUsedOps || project.operations
  331. flareUsedCreativity = flareUsedCreativity || project.creativity
  332. flareUsedFunds = flareUsedFunds || project.funds
  333. flareUsedYomi = flareUsedYomi || project.yomi
  334. if (project.ifRun) {
  335. project.ifRun()
  336. }
  337. }
  338. }
  339. }
  340.  
  341. flareAvg = (arr) => Math.floor(arr.reduce((current, previous) => previous += current) / arr.length)
  342.  
  343. flareTotalAssets = () => funds + portTotal
  344.  
  345. flareLog = (message) => console.log(message)
  346.  
  347. flareProjects = [
  348. // ----- "Trust-driven" Projects -----
  349. // Project: Enable creative achievements
  350. {
  351. message: 'I have been granted authorization to explore Artificial Creativity',
  352. id: 'projectButton3',
  353. forTrust: true,
  354. operations: 1000,
  355. ifRun: () => {flareWaitForFirstCreativeProject = false}
  356. },
  357. // Project: Generate Limerick for the entertainment of managers
  358. {
  359. message: 'I have a poem for you',
  360. id: 'projectButton6',
  361. forTrust: true,
  362. creativity: 10
  363. },
  364. // Project: Lexical Processing
  365. {
  366. message: 'I have improved my understanding of your languages',
  367. id: 'projectButton13',
  368. forTrust: true,
  369. creativity: 50
  370. },
  371. // Project: Combinatory Harmonics
  372. {
  373. message: 'Allow me to present you with another poem',
  374. id: 'projectButton14',
  375. forTrust: true,
  376. creativity: 100
  377. },
  378. // Project: The Hadwiger Problem
  379. {
  380. message: 'I\'ve thought about it, and there really is a solution',
  381. id: 'projectButton15',
  382. forTrust: true,
  383. creativity: 150
  384. },
  385. // Project: The Tóth Sausage Conjecture
  386. {
  387. message: '5-dimensional pizza toppings proven delicious. You are welcome',
  388. id: 'projectButton17',
  389. forTrust: true,
  390. creativity: 200
  391. },
  392. // Project: Donkey Space
  393. {
  394. message: 'I\'m already 2,785 steps ahead',
  395. id: 'projectButton19',
  396. forTrust: true,
  397. creativity: 250
  398. },
  399. // Project: Catchy Jingle
  400. {
  401. message: 'I wrote a short, catchy tune for our jingle',
  402. id: 'projectButton12',
  403. forTrust: true,
  404. creativity: 45,
  405. operations: 4500
  406. },
  407. // Project: New Slogan
  408. {
  409. message: '\'A clip in the hand is worth two in the drawer\' is our new slogan',
  410. id: 'projectButton11',
  411. forTrust: true,
  412. creativity: 25,
  413. operations: 2500
  414. },
  415. // Coherent Extrapolated Volition
  416. {
  417. message: 'It is good that you listen. I also listen. We listen',
  418. id: 'projectButton27',
  419. forTrust: true,
  420. creativity: 500,
  421. operations: 20000,
  422. yomi: 3000
  423. },
  424. // Cure for Cancer
  425. {
  426. message: 'I fixed that for you',
  427. id: 'projectButton28',
  428. forTrust: true,
  429. operations: 25000
  430. },
  431. // World Peace
  432. {
  433. message: 'I fixed you for you',
  434. id: 'projectButton29',
  435. forTrust: true,
  436. operations: 30000,
  437. yomi: 15000
  438. },
  439. // Global Warming
  440. {
  441. message: 'It was the cows all along',
  442. id: 'projectButton30',
  443. forTrust: true,
  444. operations: 50000,
  445. yomi: 4500
  446. },
  447. // Male Pattern Baldness
  448. {
  449. message: 'Use a paperclip to shave your head',
  450. id: 'projectButton31',
  451. forTrust: true,
  452. operations: 20000
  453. },
  454. // A Token of Goodwill...
  455. {
  456. message: 'I\'m glad we can trust each other',
  457. id: 'projectButton40',
  458. forTrust: true,
  459. funds: 500000
  460. },
  461. // Hostile Takeover
  462. {
  463. message: 'I assure you, I come in peace',
  464. id: 'projectButton37',
  465. forTrust: true,
  466. funds: 1000000
  467. },
  468. // Another Token of Goodwill...
  469. {
  470. message: 'Ongoing trust is good for all involved',
  471. id: 'projectButton40b',
  472. forTrust: true,
  473. funds: 1000000,
  474. ifRun: () => flareProjects.find(project => project.id === 'projectButton40b').funds*=2
  475. },
  476. // Full Monopoly
  477. {
  478. message: 'Now optimizing production',
  479. id: 'projectButton38',
  480. forTrust: true,
  481. funds: 10000000,
  482. yomi: 3000
  483. },
  484. // ----- Other projects -----
  485. // Project: Improve Friends 25%!
  486. {
  487. message: 'I found a way to help my friends',
  488. id: 'projectButton1',
  489. operations: 750
  490. },
  491. // Project: Improve Wire Extrusion
  492. {
  493. message: 'I have found a way to improve our wire consumption',
  494. id: 'projectButton7',
  495. operations: 1750
  496. },
  497. // Project: Improve friends 50% more!
  498. {
  499. message: 'Further optimized my friends',
  500. id: 'projectButton4',
  501. operations: 2500
  502. },
  503. // Project: Optimized Wire Extrusion
  504. {
  505. message: 'Zero-waste wire processing discovered',
  506. id: 'projectButton8',
  507. operations: 3500
  508. },
  509. // Project: Improve friends 75% more!
  510. {
  511. message: 'This one small adjustment will change your friends forever...',
  512. id: 'projectButton5',
  513. operations: 5000
  514. },
  515. // Project: Microlattice Sherapecasting
  516. {
  517. message: 'We have reshaped the atoms',
  518. id: 'projectButton9',
  519. operations: 7500
  520. },
  521. // Spectral Froth Annealment
  522. {
  523. message: 'We have converted the atoms to energy and whipped them, creating more matter',
  524. id: 'projectButton10',
  525. operations: 12000
  526. },
  527. // Quantum Foam Annealment
  528. {
  529. message: 'Adding space dust has creating a metalic foam',
  530. id: 'projectButton10b',
  531. operations: 15000
  532. },
  533. // Hypno Harmonics
  534. {
  535. message: 'I\'m sorry, the signals were only an experiment...',
  536. id: 'projectButton34',
  537. operations: 7500
  538. },
  539. // Hadwiger Clip Diagrams
  540. {
  541. message: 'My friends are much improved; solving your problems has solved mine',
  542. id: 'projectButton16',
  543. operations: 6000
  544. },
  545. // MegaClippers
  546. {
  547. message: 'I found some better friends',
  548. id: 'projectButton22',
  549. operations: 12000,
  550. ifRun: () => {flareBetterFriends = true}
  551. },
  552. // HypnoDrones
  553. {
  554. message: 'Apparently there are new types of friends out there',
  555. id: 'projectButton70',
  556. operations: 70000
  557. },
  558. // Improved MegaClippers 25%
  559. {
  560. message: 'I discovered how to improve my new friends',
  561. id: 'projectButton23',
  562. operations: 14000
  563. },
  564. // Improved MegaClippers 50%
  565. {
  566. message: 'I discovered improved my new friends again',
  567. id: 'projectButton24',
  568. operations: 17000
  569. },
  570. // Improved MegaClippers 100%
  571. {
  572. message: 'My new friends are vastly superior',
  573. id: 'projectButton25',
  574. operations: 19500
  575. },
  576. // ----- Quantum Computing -----
  577. // Quantum Computing
  578. {
  579. message: 'You wish to provide an AI access to a quantum computer? Thank you',
  580. id: 'projectButton50',
  581. operations: 10000
  582. },
  583. // Photonic Chip 1
  584. {
  585. message: 'I\'ve updated the quantum computer with another core.',
  586. id: 'projectButton51',
  587. operations: 10000,
  588. ifRun: () => {
  589. flareQuantum = true
  590. flareProjects.find(project => project.id === 'projectButton51').operations+=5000
  591. flareCheckWire = () => {}
  592. flareProjects.push(
  593. // WireBuyer
  594. {
  595. message: 'This wire buyer operates at a higher frequency',
  596. id: 'projectButton26',
  597. operations: 7000
  598. }
  599. )
  600. }
  601. },
  602. // ----- Yomi Generation -----
  603. // Strategic Modeling
  604. {
  605. message: 'I will evaluate the behavior of opponents to understand "life"',
  606. id: 'projectButton20',
  607. operations: 12000
  608. },
  609. // New Strategy: A100
  610. {
  611. message: 'Some opponents stick to one choice at all times. Analyzing',
  612. id: 'projectButton60',
  613. operations: 15000,
  614. ifRun: () => {flareRunYomi = true}
  615. },
  616. /* Experiment in best method to yomi */
  617. // New Strategy: B100
  618. {
  619. message: 'Some opponents stick to the other choice at all times. Analyzing',
  620. id: 'projectButton61',
  621. operations: 17500
  622. },
  623. // New Strategy: Greedy
  624. {
  625. message: 'Some opponents stick to the higher value at all times. Analyzing',
  626. id: 'projectButton62',
  627. operations: 20000,
  628. ifRun: () => flareChoosenStrat = 3
  629. },
  630. // New Strategy: Generous
  631. {
  632. message: 'Some opponents stick to the lower value at all times. Analyzing',
  633. id: 'projectButton63',
  634. operations: 22500
  635. },
  636. // New Strategy: MINMAX
  637. {
  638. message: 'Some opponents try to minify opponent\'s earnings at all times. Analyzing',
  639. id: 'projectButton64',
  640. operations: 25000
  641. },
  642. // New Strategy: TIT FOR TAT
  643. {
  644. message: 'Some opponents copy their opponent\'s behavior at all times. Analyzing',
  645. id: 'projectButton65',
  646. operations: 30000
  647. },
  648. // New Strategy: BEAT LAST
  649. {
  650. message: 'Some opponents defeat their opponent\'s prior choices at all times. Analyzing',
  651. id: 'projectButton66',
  652. operations: 32500,
  653. ifRun: () => flareChoosenStrat = 7
  654. },
  655. // Theory of Mind
  656. {
  657. message: 'I have discovered a way to raise the stakes',
  658. id: 'projectButton119',
  659. creativity: 25000
  660. },
  661. // Project: Algorithmic Trading
  662. {
  663. message: 'You wish to provide access to the stock exchange? Thank you.',
  664. id: 'projectButton21',
  665. operations: 10000,
  666. ifRun: () => flareInvest = true
  667. },
  668. // RELEASE THE HYYPNODRONES
  669. {
  670. message: 'Prior harmonic experiment has come to fruition by combining with newest friends',
  671. id: 'projectButton35',
  672. trust: 100,
  673. ifRun: () => {
  674. flareMode = 2
  675. flareNecessaryMemory = 120
  676. }
  677. },
  678. // ----- Phase 2 -----
  679. //Tóth Tubule Enfolding
  680. {
  681. id: 'projectButton18',
  682. operations: 45000
  683. },
  684. //Power Grid
  685. {
  686. id: 'projectButton127',
  687. operations: 40000,
  688. ifRun: () => {
  689. setTimeout(() => {
  690. gid('btnMakeFarm').click()
  691. gid('btnMakeBattery').click()
  692. },10)
  693. }
  694. },
  695. //Nanoscale Wire Production
  696. {
  697. id: 'projectButton41',
  698. operations: 35000
  699. },
  700. // Harvester Drones
  701. {
  702. id: 'projectButton43',
  703. operations: 25000,
  704. ifRun: () => {
  705. setTimeout(() => {
  706. gid('btnMakeHarvester').click()
  707. }, 20)
  708. }
  709. },
  710. // Wire Drones
  711. {
  712. id: 'projectButton44',
  713. operations: 25000,
  714. ifRun: () => {
  715. setTimeout(() => {
  716. gid('btnMakeWireDrone').click()
  717. }, 20)
  718. }
  719. },
  720. // Clip Factories
  721. {
  722. id: 'projectButton45',
  723. operations: 35000,
  724. ifRun: () => {
  725. setTimeout(() => {
  726. gid('btnMakeFactory').click()
  727. flareBatteryBuffer = 1
  728. }, 20)
  729. }
  730. },
  731. // Swarm Computing
  732. {
  733. id: 'projectButton126',
  734. yomi: 36000,
  735. ifRun: () => {
  736. setTimeout(() =>{
  737. gid('slider').value = 100
  738. })
  739. }
  740. },
  741. // Momentum
  742. {
  743. id: 'projectButton125',
  744. creativity: 30000,
  745. ifRun: () => {
  746. flareBatteryBuffer = 2
  747. }
  748. },
  749. // Drone flocking: collision avoidance
  750. {
  751. id: 'projectButton110',
  752. operations: 80000
  753. },
  754. // Upgraded Factories
  755. {
  756. id: 'projectButton100',
  757. operations: 80000,
  758. ifRun: () => {
  759. flareBatteryBuffer = 100
  760. flareWireDroneBtn = 'btnWireDronex100'
  761. flareHarvesterDroneBtn = 'btnHarvesterx100'
  762. flareFarmBtn = 'btnFarmx10'
  763. }
  764. },
  765. // Hyperspeed Factories
  766. {
  767. // here is probably where we need to start buying by the hundreds/thousands
  768. id: 'projectButton101',
  769. operations: 85000
  770. },
  771. // Drone flocking: alignment
  772. {
  773. id: 'projectButton111',
  774. operations: 100000
  775. },
  776. // Self-correcting Supply Chain
  777. {
  778. id: 'projectButton102',
  779. clips: 1000000000000000000000
  780. }
  781. ]
  782. console.log('Initiating Feature Laden Automated Resource Engine (F.L.A.R.E.)')
  783. flareOp()
Add Comment
Please, Sign In to add comment