BlockJuice

Untitled

Oct 2nd, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 72.17 KB | None | 0 0
  1. function Start_Cookie_Monster() {
  2. if ($("#cm_favicon").length != 0) {
  3. alert("Cookie Monster " + version + "\n\nCookie Monster is already loaded, silly!");
  4. return false
  5. }
  6. $("#topBar").css("display", "none");
  7. $("#tooltip").css("margin-top", "32px");
  8. $("#tooltip").css("pointer-events", "none");
  9. $("#cookies").css("background", "rgba(0,0,0,0.75)");
  10. $("#cookies").css("border-top", "1px solid black");
  11. $("#cookies").css("border-bottom", "1px solid black");
  12. $("#goldenCookie").css("cssText", "" + "z-index: 1000001 !important;");
  13. $("#game").css("cssText", "" + "-webkit-touch-callout: none;" + "-webkit-user-select: none;" + "-khtml-user-select: none;" + "-moz-user-select: none;" + "-ms-user-select: none;" + "-o-user-select: none;" + "user-select: none;" + "top: 0px;" + "bottom: 57px;" + "");
  14. $("#storeTitle").css("cssText", "" + "font-size: 18px;" + "padding: 4px 8px 2px 8px;" + "border-bottom: 1px solid black;" + "");
  15. $("#storeTitle").after('<table cellpadding=0 cellspacing=0 style="width:300px; table-layout:fixed; padding:4px; font-weight:bold; background:rgba(0,0,0,0.6); border-bottom: 1px solid black; cursor:default;"><tr>' + '<td align=center style="color:#4bb8f0; padding:2px;" id="cm_up_q0">0</td>' + '<td align=center style="color:#00ff00; padding:2px;" id="cm_up_q1">0</td>' + '<td align=center style="color:#ffff00; padding:2px;" id="cm_up_q2">0</td>' + '<td align=center style="color:#ff7f00; padding:2px;" id="cm_up_q3">0</td>' + '<td align=center style="color:#ff0000; padding:2px;" id="cm_up_q4">0</td>' + '<td align=center style="color:#ff00ff; padding:2px;" id="cm_up_q5">0</td>' + "</tr></table>");
  16. $("body").append('<div id="cookie_monster_bar" style="z-index:1000; position:absolute; bottom:0px; left:0px; width:100%; height:56px; border-top:1px solid black; cursor:default;' + "text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;" + "background: rgb(69,72,77); /* Old browsers */" + "background: -moz-linear-gradient(top, rgba(69,72,77,1) 0%, rgba(0,0,0,1) 100%); /* FF3.6+ */" + "background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(69,72,77,1)), color-stop(100%,rgba(0,0,0,1))); /* Chrome,Safari4+ */" + "background: -webkit-linear-gradient(top, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* Chrome10+,Safari5.1+ */" + "background: -o-linear-gradient(top, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* Opera 11.10+ */" + "background: -ms-linear-gradient(top, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* IE10+ */" + "background: linear-gradient(to bottom, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* W3C */" + "filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#45484d', endColorstr='#000000',GradientType=0 ); /* IE6-9 */" + '"></div>');
  17. $("body").append('<div id="cookie_monster_overlay" style="position:fixed; z-index:1000000; height:100%; width:100%; background:rgba(255,255,255,1); pointer-events:none; display:none;"></div>');
  18. $("body").append('<div id="cookie_monster_golden_overlay" style="position:fixed; z-index:1000002; height:96px; width:96px; pointer-events:none; cursor:pointer; opacity:0; display:none; text-align:center; font-family: \'Kavoon\', Georgia,serif; font-size:32px; text-shadow: -2px 0 black, 0 2px black, 2px 0 black, 0 -2px black !important;" onclick="Game.goldenCookie.click();"></div>');
  19. $("#sectionLeft").append('<div id="cookie_monster_timer_bars_div" style="position:absolute; z-index:1000; bottom:-1px; left:0px; width:100%; pointer-events:none; text-align:center; font-family: \'Kavoon\', Georgia,serif; font-size:16px; background:rgba(0,0,0,0.6); border-top:1px solid black;"></div>');
  20. $("link").each(function () {
  21. if ($(this).attr("href") == "img/favicon.ico") {
  22. $(this).attr("id", "cm_favicon")
  23. }
  24. });
  25. Make_Table();
  26. Save_Tooltips();
  27. Update_Game_Scripts();
  28. Load_Settings();
  29. Set_Up_Tooltips();
  30. Main_Loop();
  31. Game.Popup('<span style="color:#FFFF00; text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black !important;">Cookie Monster ' + version + " Loaded!</span>")
  32. }
  33.  
  34. function Main_Loop() {
  35. Update_Table();
  36. Update_Tooltips("all");
  37. Do_Emphasize();
  38. Manage_Buffs();
  39. setTimeout(function () {
  40. Main_Loop()
  41. }, settings[3])
  42. }
  43.  
  44. function Fav_Icon_Spinner(e) {
  45. if (e > 6) {
  46. e = 1
  47. }
  48. if (gc_avail == "(G) ") {
  49. $("#cm_favicon").attr("href", "http://frozenelm.com/cookiemonster/images/cm_gc_" + e + ".png");
  50. e++;
  51. setTimeout(function () {
  52. Fav_Icon_Spinner(e)
  53. }, 250)
  54. } else {
  55. $("#cm_favicon").attr("href", "http://orteil.dashnet.org/cookieclicker/img/favicon.ico")
  56. }
  57. }
  58.  
  59. function Load_Settings() {
  60. settings = [1, 1, 1, 1e3, 1, 1, 1, 1, 0, 1, 1, 1, 1];
  61. if (typeof Storage !== "undefined") {
  62. if (localStorage.FlashScreen != undefined) {
  63. settings[0] = localStorage.FlashScreen
  64. } else {
  65. localStorage.FlashScreen = 1;
  66. settings[0] = 1
  67. } if (localStorage.CookieTimer != undefined) {
  68. settings[1] = localStorage.CookieTimer
  69. } else {
  70. localStorage.CookieTimer = 1;
  71. settings[1] = 1
  72. } if (localStorage.BuffBars != undefined) {
  73. settings[2] = localStorage.BuffBars
  74. } else {
  75. localStorage.BuffBars = 1;
  76. settings[2] = 1
  77. } if (localStorage.Refresh != undefined) {
  78. settings[3] = localStorage.Refresh
  79. } else {
  80. localStorage.Refresh = 1e3;
  81. settings[3] = 1e3
  82. } if (localStorage.CookieCD != undefined) {
  83. settings[4] = localStorage.CookieCD
  84. } else {
  85. localStorage.CookieCD = 1;
  86. settings[4] = 1
  87. } if (localStorage.CMBar != undefined) {
  88. settings[5] = localStorage.CMBar
  89. } else {
  90. localStorage.CMBar = 1;
  91. settings[5] = 1
  92. } if (localStorage.ColoredPrices != undefined) {
  93. settings[6] = localStorage.ColoredPrices
  94. } else {
  95. localStorage.ColoredPrices = 1;
  96. settings[6] = 1
  97. } if (localStorage.ShortNumbers != undefined) {
  98. settings[7] = localStorage.ShortNumbers
  99. } else {
  100. localStorage.ShortNumbers = 1;
  101. settings[7] = 1
  102. } if (localStorage.CookieSound != undefined) {
  103. settings[8] = localStorage.CookieSound
  104. } else {
  105. localStorage.CookieSound = 0;
  106. settings[8] = 0
  107. } if (localStorage.UpdateTitle != undefined) {
  108. settings[9] = localStorage.UpdateTitle
  109. } else {
  110. localStorage.UpdateTitle = 1;
  111. settings[9] = 1
  112. } if (localStorage.LuckyAlert != undefined) {
  113. settings[10] = localStorage.LuckyAlert
  114. } else {
  115. localStorage.LuckyAlert = 1;
  116. settings[10] = 1
  117. } if (localStorage.UpgradeIcons != undefined) {
  118. settings[11] = localStorage.UpgradeIcons
  119. } else {
  120. localStorage.UpgradeIcons = 1;
  121. settings[11] = 1
  122. } if (localStorage.UpgradeDisplay != undefined) {
  123. settings[12] = localStorage.UpgradeDisplay
  124. } else {
  125. localStorage.UpgradeDisplay = 1;
  126. settings[12] = 1
  127. }
  128. }
  129. Show_Hide_CM_Bar()
  130. }
  131.  
  132. function Save_Settings() {
  133. if (typeof Storage !== "undefined") {
  134. localStorage.FlashScreen = settings[0];
  135. localStorage.CookieTimer = settings[1];
  136. localStorage.BuffBars = settings[2];
  137. localStorage.Refresh = settings[3];
  138. localStorage.CookieCD = settings[4];
  139. localStorage.CMBar = settings[5];
  140. localStorage.ColoredPrices = settings[6];
  141. localStorage.ShortNumbers = settings[7];
  142. localStorage.CookieSound = settings[8];
  143. localStorage.UpdateTitle = settings[9];
  144. localStorage.LuckyAlert = settings[10];
  145. localStorage.UpgradeIcons = settings[11];
  146. localStorage.UpgradeDisplay = settings[12]
  147. } else {}
  148. Show_Hide_CM_Bar()
  149. }
  150.  
  151. function Show_Hide_CM_Bar() {
  152. if (settings[5] == 0) {
  153. $("#cookie_monster_bar").css("display", "none");
  154. $("#game").css("bottom", "0px")
  155. } else {
  156. $("#cookie_monster_bar").css("display", "");
  157. $("#game").css("bottom", "57px")
  158. }
  159. }
  160.  
  161. function Update_Game_Scripts() {
  162. Game.Logic = new Function("", Game.Logic.toString().replace(".title=", ".title=gc_avail+").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  163. var e = "\n\n'<div class=\"subsection\">'+" + '\'<div class="title"><span style="color:#4bb8f0;">Cookie Monster Goodies</span></div>\'+' + "'<div class=\"listing\"><b>\"Lucky!\" Cookies Required:</b> ' + CM_Lucky('reg', false) + '</div>'+" + "'<div class=\"listing\"><b>\"Lucky!\" Cookies Required (Frenzy):</b> ' + CM_Lucky('frenzy', false) + '</div>'+" + "'<div class=\"listing\"><b>\"Lucky!\" Reward (MAX):</b> ' + CM_Lucky_Reward('max') + '</div>'+" + "'<div class=\"listing\"><b>\"Lucky!\" Reward (MAX) (Frenzy):</b> ' + CM_Lucky_Reward('max_frenzy') + '</div>'+" + "'<div class=\"listing\"><b>\"Lucky!\" Reward (CUR):</b> ' + CM_Lucky_Reward('cur') + '</div>'+" + "'</br><div class=\"listing\"><b>Heavenly Chips (MAX):</b> ' + CM_Heavenly_Chip('max') + '</div>'+" + "'<div class=\"listing\"><b>Heavenly Chips (CUR):</b> ' + CM_Heavenly_Chip('cur') + '</div>'+" + "'<div class=\"listing\"><b>Cookies To Next Chip:</b> ' + CM_Heavenly_Chip('next') + '</div>'+" + "'<div class=\"listing\"><b>Time To Next Chip:</b> ' + CM_Heavenly_Chip('time') + '</div>'+" + "'</div>'+";
  164. Game.UpdateMenu = new Function("", Game.UpdateMenu.toString().replace("Statistics</div>'+", "Statistics</div>'+" + e).replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  165. var t = "\n'<div class=\"subsection\">'+" + '\'<div class="title"><span style="color:#4bb8f0;">Cookie Monster Settings</span></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Flash Screen \' + CM_Option_State(0) + \'</a><label>Flashes the screen when a Golden Cookie or Red Cookie appears</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Cookie Timer \' + CM_Option_State(1) + \'</a><label>Displays a timer on Golden Cookies and Red Cookies</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Cookie Sound \' + CM_Option_State(8) + \'</a><label>Plays a sound when a Golden Cookie or Red Cookie appears</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Next Cookie Timer \' + CM_Option_State(4) + \'</a><label>Displays a countdown bar and updates the Title for when the next Cookie will appear</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Update Title \' + CM_Option_State(9) + \'</a><label>Updates the Title to display if a Cookie is waiting to be clicked</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Buff Bars \' + CM_Option_State(2) + \'</a><label>Displays a countdown bar for each effect currently active</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Bottom Bar \' + CM_Option_State(5) + \'</a><label>Displays a bar at the bottom of the screen that shows all Building information</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Colored Prices \' + CM_Option_State(6) + \'</a><label>Changes the colors of all Building prices to correspond with their Cost Per Income</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Upgrade Icons \' + CM_Option_State(11) + \'</a><label>Displays a small square icon on the Upgrade to better display the Cost Per Income color value</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Short Numbers \' + CM_Short_Numbers() + \'</a><label>Formats all numbers to be shorter when displayed</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Upgrade Display (\' + CM_Upgrade_Display() + \')</a><label>Changes how the store displays Upgrades</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Lucky Alert (\' + CM_Lucky_Alert() + \')</a><label>Changes the tooltip to display if you would be under the number of cookies required for "Lucky!"</label></div>\'+' + '\'<div class="listing"><a class="option" onclick="CM_Option_Toggle(this);">Refresh Rate (\' + CM_Refresh() + \' fps)</a><label>The rate at which Cookie Monster updates data (higher rates may slow the game)</label></div>\'+' + "'</div>'+";
  166. Game.UpdateMenu = new Function("", Game.UpdateMenu.toString().replace("OFF')+'</div>'+", "OFF')+'</div>'+" + t).replace("date=Game.sayTime(date.getTime()/1000*Game.fps);", "date = formatTime(((new Date).getTime() - Game.startDate) / 1000, '');").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  167. var n = "\n" + "var cm_id = from.id;" + '\nif(cm_id == "") { cm_id = $(from).parents(".product").prop("id"); }' + '\nif(cm_id == "product5" || cm_id == "product6" || cm_id == "product7" || cm_id == "product8" || cm_id == "product9") { y -= 100; }' + '\nif(cm_id == "product8" || cm_id == "product9") { y -= 13; }' + '\nif(cm_id == "product9" && settings[7] == 0) { y -= 13; }' + "\n";
  168. Game.tooltip.draw = new Function("from,text,x,y,origin", Game.tooltip.draw.toString().replace("implemented');}", "implemented');}" + n).replace("this.on=1;", "this.on=1;\nUpdate_Tooltips('all');").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  169. Game.Reset = new Function("bypass", Game.Reset.toString().replace("Game.researchT=0;", "Game.researchT=0;\n$('#cookie_monster_timer_bars_div').text('');").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  170. Game.LoadSave = new Function("data", Game.LoadSave.toString().replace("Game.Popup('Game loaded');", "Game.Popup('Game loaded');\n$('#cookie_monster_timer_bars_div').text('');").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  171. Game.RebuildStore = new Function("", Game.RebuildStore.toString().replace("l('products').innerHTML=str;", "l('products').innerHTML=str;\nUpdate_Tooltips('ob');").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  172. Game.Draw = new Function("", Game.Draw.toString().replace("Beautify(Math.round(Game.cookiesd))", "formatNumB(Game.cookiesd)").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""));
  173. var r = "return formatNum(what);";
  174. Beautify = new Function("what,floats", Beautify.toString().replace("var str='';", r + "\nvar str='';").replace(/^function[^{]+{/i, "").replace(/}[^}]*$/i, ""))
  175. }
  176.  
  177. function CM_Heavenly_Chip(e) {
  178. var t = cookies_to_h_chips(Game.cookiesReset + Game.cookiesEarned);
  179. var n = cookies_to_h_chips(Game.cookiesReset + Game.cookiesEarned + sell_out);
  180. var r = cookies_to_h_chips(Game.cookiesReset);
  181. var i = h_chips_to_cookies(t + 1) - (Game.cookiesReset + Game.cookiesEarned);
  182. var s = h_chips_to_cookies(n + 1) - (Game.cookiesReset + Game.cookiesEarned + sell_out);
  183. if (e == "max") {
  184. return formatNum(t) + " <small>(" + formatNum(t * 2) + "%)</small>"
  185. }
  186. if (e == "max_sell_out") {
  187. return formatNum(n) + " <small>(" + formatNum(n * 2) + "%)</small>"
  188. }
  189. if (e == "cur") {
  190. return formatNum(r) + " <small>(" + formatNum(r * 2) + "%)</small>"
  191. }
  192. if (e == "next") {
  193. return formatNum(Math.round(i))
  194. }
  195. if (e == "next_sell_out") {
  196. return formatNum(Math.round(s))
  197. }
  198. if (e == "time") {
  199. return formatTime(Math.round(i / Game.cookiesPs), "")
  200. }
  201. }
  202.  
  203. function cookies_to_h_chips(e) {
  204. return Math.floor(Math.sqrt(2.5 * Math.pow(10, 11) + 2 * e) / Math.pow(10, 6) - .5)
  205. }
  206.  
  207. function h_chips_to_cookies(e) {
  208. return 5 * Math.pow(10, 11) * e * (e + 1)
  209. }
  210.  
  211. function CM_Upgrade_Display() {
  212. switch (settings[12] * 1) {
  213. case 1:
  214. return "Normal";
  215. case 2:
  216. return "All";
  217. case 0:
  218. return "None";
  219. default:
  220. return "Normal"
  221. }
  222. }
  223.  
  224. function CM_Short_Numbers() {
  225. switch (settings[7] * 1) {
  226. case 1:
  227. return "ON (A)";
  228. case 2:
  229. return "ON (B)";
  230. case 3:
  231. return "ON (T)";
  232. case 0:
  233. return "OFF";
  234. default:
  235. return "OFF"
  236. }
  237. }
  238.  
  239. function CM_Lucky_Alert() {
  240. switch (settings[10] * 1) {
  241. case 1:
  242. return "Both";
  243. case 2:
  244. return "Icons";
  245. case 3:
  246. return "Notes";
  247. case 0:
  248. return "Off";
  249. default:
  250. return "Both"
  251. }
  252. }
  253.  
  254. function CM_Refresh() {
  255. switch (settings[3] * 1) {
  256. case 1e3:
  257. return "1";
  258. case 500:
  259. return "2";
  260. case 250:
  261. return "4";
  262. case 100:
  263. return "10";
  264. case 33:
  265. return "30";
  266. default:
  267. return "1"
  268. }
  269. }
  270.  
  271. function CM_Option_State(e) {
  272. if (settings[e] == 0) {
  273. return "OFF"
  274. }
  275. return "ON"
  276. }
  277.  
  278. function CM_Option_Toggle(e) {
  279. e = $(e);
  280. var t = e.text();
  281. switch (t) {
  282. case "Flash Screen ON":
  283. settings[0] = 0;
  284. e.text("Flash Screen OFF");
  285. break;
  286. case "Flash Screen OFF":
  287. settings[0] = 1;
  288. e.text("Flash Screen ON");
  289. break;
  290. case "Cookie Sound ON":
  291. settings[8] = 0;
  292. e.text("Cookie Sound OFF");
  293. break;
  294. case "Cookie Sound OFF":
  295. settings[8] = 1;
  296. e.text("Cookie Sound ON");
  297. break;
  298. case "Cookie Timer ON":
  299. settings[1] = 0;
  300. e.text("Cookie Timer OFF");
  301. break;
  302. case "Cookie Timer OFF":
  303. settings[1] = 1;
  304. e.text("Cookie Timer ON");
  305. break;
  306. case "Next Cookie Timer ON":
  307. settings[4] = 0;
  308. e.text("Next Cookie Timer OFF");
  309. break;
  310. case "Next Cookie Timer OFF":
  311. settings[4] = 1;
  312. e.text("Next Cookie Timer ON");
  313. break;
  314. case "Update Title ON":
  315. settings[9] = 0;
  316. e.text("Update Title OFF");
  317. break;
  318. case "Update Title OFF":
  319. settings[9] = 1;
  320. e.text("Update Title ON");
  321. break;
  322. case "Buff Bars ON":
  323. settings[2] = 0;
  324. e.text("Buff Bars OFF");
  325. break;
  326. case "Buff Bars OFF":
  327. settings[2] = 1;
  328. e.text("Buff Bars ON");
  329. break;
  330. case "Bottom Bar ON":
  331. settings[5] = 0;
  332. e.text("Bottom Bar OFF");
  333. break;
  334. case "Bottom Bar OFF":
  335. settings[5] = 1;
  336. e.text("Bottom Bar ON");
  337. break;
  338. case "Colored Prices ON":
  339. settings[6] = 0;
  340. e.text("Colored Prices OFF");
  341. Update_Tooltips("ob");
  342. break;
  343. case "Colored Prices OFF":
  344. settings[6] = 1;
  345. e.text("Colored Prices ON");
  346. Update_Tooltips("ob");
  347. break;
  348. case "Upgrade Icons ON":
  349. settings[11] = 0;
  350. e.text("Upgrade Icons OFF");
  351. Game.RebuildUpgrades();
  352. break;
  353. case "Upgrade Icons OFF":
  354. settings[11] = 1;
  355. e.text("Upgrade Icons ON");
  356. Game.RebuildUpgrades();
  357. break;
  358. case "Upgrade Display (All)":
  359. settings[12] = 0;
  360. e.text("Upgrade Display (None)");
  361. Update_Upgrade_Display();
  362. break;
  363. case "Upgrade Display (None)":
  364. settings[12] = 1;
  365. e.text("Upgrade Display (Normal)");
  366. Update_Upgrade_Display();
  367. break;
  368. case "Upgrade Display (Normal)":
  369. settings[12] = 2;
  370. e.text("Upgrade Display (All)");
  371. Update_Upgrade_Display();
  372. break;
  373. case "Short Numbers ON (T)":
  374. settings[7] = 0;
  375. e.text("Short Numbers OFF");
  376. Game.RebuildStore();
  377. Game.RebuildUpgrades();
  378. Update_Table();
  379. break;
  380. case "Short Numbers OFF":
  381. settings[7] = 1;
  382. e.text("Short Numbers ON (A)");
  383. Game.RebuildStore();
  384. Game.RebuildUpgrades();
  385. Update_Table();
  386. break;
  387. case "Short Numbers ON (A)":
  388. settings[7] = 2;
  389. e.text("Short Numbers ON (B)");
  390. Game.RebuildStore();
  391. Game.RebuildUpgrades();
  392. Update_Table();
  393. break;
  394. case "Short Numbers ON (B)":
  395. settings[7] = 3;
  396. e.text("Short Numbers ON (T)");
  397. Game.RebuildStore();
  398. Game.RebuildUpgrades();
  399. Update_Table();
  400. break;
  401. case "Lucky Alert (Both)":
  402. settings[10] = 2;
  403. e.text("Lucky Alert (Icons)");
  404. break;
  405. case "Lucky Alert (Icons)":
  406. settings[10] = 3;
  407. e.text("Lucky Alert (Notes)");
  408. break;
  409. case "Lucky Alert (Notes)":
  410. settings[10] = 0;
  411. e.text("Lucky Alert (Off)");
  412. break;
  413. case "Lucky Alert (Off)":
  414. settings[10] = 1;
  415. e.text("Lucky Alert (Both)");
  416. break;
  417. case "Refresh Rate (1 fps)":
  418. settings[3] = 500;
  419. e.text("Refresh Rate (2 fps)");
  420. break;
  421. case "Refresh Rate (2 fps)":
  422. settings[3] = 250;
  423. e.text("Refresh Rate (4 fps)");
  424. break;
  425. case "Refresh Rate (4 fps)":
  426. settings[3] = 100;
  427. e.text("Refresh Rate (10 fps)");
  428. break;
  429. case "Refresh Rate (10 fps)":
  430. settings[3] = 33;
  431. e.text("Refresh Rate (30 fps)");
  432. break;
  433. case "Refresh Rate (30 fps)":
  434. settings[3] = 1e3;
  435. e.text("Refresh Rate (1 fps)");
  436. break
  437. }
  438. Save_Settings()
  439. }
  440.  
  441. function Update_Upgrade_Display() {
  442. var e = $("#upgrades");
  443. switch (settings[12] * 1) {
  444. case 1:
  445. e.css("cssText", "");
  446. break;
  447. case 2:
  448. e.css("cssText", "height: auto !important;");
  449. break;
  450. case 0:
  451. e.css("cssText", "height: 0px !important;");
  452. break
  453. }
  454. }
  455.  
  456. function CM_Lucky(e, t) {
  457. var n = Game.cookiesPs;
  458. if (Game.frenzy > 0) {
  459. n = n / Game.frenzyPower
  460. }
  461. if (e == "frenzy") {
  462. n = n * 7
  463. }
  464. var r = Math.round((n * 1200 + 13) / .1);
  465. if (!t) {
  466. if (r <= Game.cookies) {
  467. r = '<span style="color:#00FF00; font-weight:bold;">' + formatNum(r) + "</span>"
  468. } else {
  469. r = formatNum(r)
  470. }
  471. }
  472. return r
  473. }
  474.  
  475. function CM_Lucky_Reward(e) {
  476. var t = Game.cookiesPs;
  477. if (Game.frenzy > 0 && e != "cur") {
  478. t = t / Game.frenzyPower
  479. }
  480. if (e == "max_frenzy") {
  481. t = t * 7
  482. }
  483. var n = new Array(Math.round(t * 1200 + 13), Math.round(Game.cookies * .1 + 13));
  484. if (e == "max" || e == "max_frenzy") {
  485. if (Math.round((t * 1200 + 13) / .1) > Game.cookies) {
  486. return formatNum(n[0])
  487. }
  488. }
  489. return formatNum(Math.min.apply(Math, n))
  490. }
  491.  
  492. function Save_Tooltips() {
  493. Game.UpgradesById.forEach(function (e, t) {
  494. tooltips[t] = e.desc
  495. });
  496. Game.ObjectsById.forEach(function (e, t) {
  497. building_tooltips[t] = e.desc
  498. })
  499. }
  500.  
  501. function Set_Up_Tooltips() {
  502. var e = false;
  503. Game.UpgradesById.forEach(function (t, n) {
  504. for (var r = 0; r < upgrade_count; r++) {
  505. if (_cup(r, n, true)) {
  506. t.desc = Manage_Tooltip(r, n, true, false);
  507. e = true;
  508. break
  509. }
  510. }
  511. if (t.bought && t.desc != tooltips[n]) {
  512. t.desc = tooltips[n];
  513. e = true
  514. }
  515. });
  516. if (e) {
  517. Game.RebuildUpgrades()
  518. }
  519. }
  520.  
  521. function Update_Tooltips(e) {
  522. if (e == "all" || e == "up") {
  523. in_store = new Array(0, 0, 0, 0, 0, 0);
  524. Game.UpgradesById.forEach(function (e, t) {
  525. for (var n = 0; n < upgrade_count; n++) {
  526. if (_cup(n, t, false)) {
  527. Manage_Tooltip(n, t, false, false);
  528. break
  529. }
  530. }
  531. })
  532. }
  533. if (e == "all" || e == "ob") {
  534. Game.ObjectsById.forEach(function (e, t) {
  535. Manage_Building_Tooltip(e)
  536. })
  537. }
  538. }
  539.  
  540. function _cup(e, t, n) {
  541. up = Game.UpgradesById[t];
  542. if (up.desc.indexOf("cm_up_div_") == -1 && !n) {
  543. return false
  544. }
  545. switch (e) {
  546. case 0:
  547. if (!up.bought && up.name == "Reinforced index finger") {
  548. return true
  549. }
  550. break;
  551. case 1:
  552. if (!up.bought && up.desc.indexOf("The mouse and cursors are <b>twice</b> as efficient.") != -1) {
  553. return true
  554. }
  555. break;
  556. case 2:
  557. if (!up.bought && up.desc.indexOf("The mouse and cursors gain") != -1) {
  558. return true
  559. }
  560. break;
  561. case 3:
  562. if (!up.bought && up.name == "Forwards from grandma") {
  563. return true
  564. }
  565. break;
  566. case 4:
  567. if (!up.bought && up.desc.indexOf("Grandmas are <b>twice</b> as efficient.") != -1) {
  568. return true
  569. }
  570. break;
  571. case 5:
  572. if (!up.bought && up.name == "Cheap hoes") {
  573. return true
  574. }
  575. break;
  576. case 6:
  577. if (!up.bought && up.desc.indexOf("Farms are <b>twice</b> as efficient.") != -1) {
  578. return true
  579. }
  580. break;
  581. case 7:
  582. if (!up.bought && up.name == "Sturdier conveyor belts") {
  583. return true
  584. }
  585. break;
  586. case 8:
  587. if (!up.bought && up.desc.indexOf("Factories are <b>twice</b> as efficient.") != -1) {
  588. return true
  589. }
  590. break;
  591. case 9:
  592. if (!up.bought && up.name == "Sugar gas") {
  593. return true
  594. }
  595. break;
  596. case 10:
  597. if (!up.bought && up.desc.indexOf("Mines are <b>twice</b> as efficient.") != -1) {
  598. return true
  599. }
  600. break;
  601. case 11:
  602. if (!up.bought && up.name == "Vanilla nebulae") {
  603. return true
  604. }
  605. break;
  606. case 12:
  607. if (!up.bought && up.desc.indexOf("Shipments are <b>twice</b> as efficient.") != -1) {
  608. return true
  609. }
  610. break;
  611. case 13:
  612. if (!up.bought && up.name == "Antimony") {
  613. return true
  614. }
  615. break;
  616. case 14:
  617. if (!up.bought && up.desc.indexOf("Alchemy labs are <b>twice</b> as efficient.") != -1) {
  618. return true
  619. }
  620. break;
  621. case 15:
  622. if (!up.bought && up.name == "Ancient tablet") {
  623. return true
  624. }
  625. break;
  626. case 16:
  627. if (!up.bought && up.desc.indexOf("Portals are <b>twice</b> as efficient.") != -1) {
  628. return true
  629. }
  630. break;
  631. case 17:
  632. if (!up.bought && up.name == "Flux capacitors") {
  633. return true
  634. }
  635. break;
  636. case 18:
  637. if (!up.bought && up.desc.indexOf("Time machines are <b>twice</b> as efficient.") != -1) {
  638. return true
  639. }
  640. break;
  641. case 19:
  642. if (!up.bought && up.desc.indexOf("the more milk you have") != -1) {
  643. return true
  644. }
  645. break;
  646. case 20:
  647. if (!up.bought && up.desc.indexOf("Cookie production multiplier <b>+") != -1) {
  648. return true
  649. }
  650. break;
  651. case 21:
  652. if (!up.bought && up.desc.indexOf("for each 50 grandmas") != -1) {
  653. return true
  654. }
  655. break;
  656. case 22:
  657. if (!up.bought && up.desc.indexOf("for each 20 portals") != -1) {
  658. return true
  659. }
  660. break;
  661. case 23:
  662. if (!up.bought && up.name == "Elder Pledge") {
  663. return true
  664. }
  665. break;
  666. case 24:
  667. if (!up.bought && up.name == "Elder Covenant") {
  668. return true
  669. }
  670. break;
  671. case 25:
  672. if (!up.bought && up.name == "Sacrificial rolling pins") {
  673. return true
  674. }
  675. break;
  676. case 26:
  677. if (!up.bought && up.desc.indexOf("Golden cookie") != -1) {
  678. return true
  679. }
  680. break;
  681. case 27:
  682. if (!up.bought && up.desc.indexOf("Clicking gains <b>+1% of your CpS</b>.") != -1) {
  683. return true
  684. }
  685. break;
  686. case 28:
  687. if (!up.bought && up.desc.indexOf("Grandmas are <b>4 times</b> as efficient.") != -1) {
  688. return true
  689. }
  690. break;
  691. case 29:
  692. if (!up.bought && up.desc.indexOf("Antimatter condensers are <b>twice</b> as efficient.") != -1) {
  693. return true
  694. }
  695. break;
  696. case 30:
  697. if (!up.bought && up.name == "Sugar bosons") {
  698. return true
  699. }
  700. break;
  701. case 31:
  702. if (!up.bought && up.name == "Revoke Elder Covenant") {
  703. return true
  704. }
  705. break
  706. }
  707. return false
  708. }
  709.  
  710. function Manage_Tooltip(e, t, n, r) {
  711. var i = 0;
  712. var s = 0;
  713. switch (e) {
  714. case 0:
  715. i = _bam("The mouse and cursors", .1, 0);
  716. break;
  717. case 1:
  718. i = _bte(0);
  719. break;
  720. case 2:
  721. i = _mcg(t);
  722. break;
  723. case 3:
  724. i = _bam("Grandmas", .3, 1);
  725. break;
  726. case 4:
  727. i = _bte(1);
  728. if (_lgt(t)) {
  729. s++
  730. }
  731. break;
  732. case 5:
  733. i = _bam("Farms", .5, 2);
  734. break;
  735. case 6:
  736. i = _bte(2);
  737. break;
  738. case 7:
  739. i = _bam("Factories", 4, 3);
  740. break;
  741. case 8:
  742. i = _bte(3);
  743. break;
  744. case 9:
  745. i = _bam("Mines", 10, 4);
  746. break;
  747. case 10:
  748. i = _bte(4);
  749. break;
  750. case 11:
  751. i = _bam("Shipments", 30, 5);
  752. break;
  753. case 12:
  754. i = _bte(5);
  755. break;
  756. case 13:
  757. i = _bam("Alchemy labs", 100, 6);
  758. break;
  759. case 14:
  760. i = _bte(6);
  761. break;
  762. case 15:
  763. i = _bam("Portals", 1666, 7);
  764. break;
  765. case 16:
  766. i = _bte(7);
  767. break;
  768. case 17:
  769. i = _bam("Time machines", 9876, 8);
  770. break;
  771. case 18:
  772. i = _bte(8);
  773. break;
  774. case 21:
  775. i = _gpg();
  776. break;
  777. case 22:
  778. i = _gpp();
  779. break;
  780. case 23:
  781. s += _cha("Elder nap");
  782. if (Game.pledges == 4) {
  783. s += _cha("Elder slumber")
  784. }
  785. break;
  786. case 24:
  787. s += _cha("Elder calm");
  788. break;
  789. case 28:
  790. i = _fte(1);
  791. break;
  792. case 29:
  793. i = _bte(9);
  794. break;
  795. case 30:
  796. i = _bam("Antimatter condensers", 99999, 9);
  797. break
  798. }
  799. if (Game.UpgradesOwned == 19) {
  800. s += _cha("Enhancer")
  801. }
  802. if (Game.UpgradesOwned == 49) {
  803. s += _cha("Augmenter")
  804. }
  805. if (Game.UpgradesOwned == 99) {
  806. s += _cha("Upgrader")
  807. }
  808. i += Get_Achi_Worth(s, t, i);
  809. if (r) {
  810. return i
  811. }
  812. return tooltips[t] + Colorize(i, t, n)
  813. }
  814.  
  815. function _cpc() {
  816. return Game.mouseCps() * .01 * usr_clk
  817. }
  818.  
  819. function _lgt(e) {
  820. if (_cha("Elder") == 1 && Game.UpgradesById[e].name.indexOf(" grandmas") != -1) {
  821. var t = new Array;
  822. var n = new Array;
  823. Game.UpgradesById.forEach(function (e, r) {
  824. if (e.bought && e.name.indexOf(" grandmas") != -1) {
  825. t.push(r)
  826. } else if (!e.bought && e.name.indexOf(" grandmas") != -1) {
  827. n.push(r)
  828. }
  829. });
  830. if (n.length == 1 && n[0] == e) {
  831. return true
  832. }
  833. }
  834. return false
  835. }
  836.  
  837. function _cha(e) {
  838. var t = 0;
  839. Game.AchievementsById.forEach(function (n, r) {
  840. if (!n.won && n.name == e) {
  841. t = 1
  842. }
  843. });
  844. return t
  845. }
  846.  
  847. function _gpp() {
  848. var e = 1;
  849. Game.UpgradesById.forEach(function (t, n) {
  850. if (t.bought && t.desc.indexOf("Grandmas are <b>twice</b> as efficient.") != -1) {
  851. e = e * 2
  852. }
  853. if (t.bought && t.desc.indexOf("Grandmas are <b>4 times</b> as efficient.") != -1) {
  854. e = e * 4
  855. }
  856. });
  857. return Game.ObjectsById[7].amount * .05 * e * Game.ObjectsById[1].amount * Game.globalCpsMult
  858. }
  859.  
  860. function _gpg() {
  861. var e = 1;
  862. Game.UpgradesById.forEach(function (t, n) {
  863. if (t.bought && t.desc.indexOf("Grandmas are <b>twice</b> as efficient.") != -1) {
  864. e = e * 2
  865. }
  866. if (t.bought && t.desc.indexOf("Grandmas are <b>4 times</b> as efficient.") != -1) {
  867. e = e * 4
  868. }
  869. });
  870. return Game.ObjectsById[1].amount * .02 * e * Game.ObjectsById[1].amount * Game.globalCpsMult
  871. }
  872.  
  873. function _mcg(e) {
  874. var t = Game.UpgradesById[e].desc;
  875. var n = t.substr(31, t.indexOf("<", 31) - 31) * 1;
  876. return n * (Game.BuildingsOwned - Game.ObjectsById[0].amount) * Game.ObjectsById[0].amount * Game.globalCpsMult
  877. }
  878.  
  879. function _bte(e) {
  880. return Game.ObjectsById[e].storedTotalCps * Game.globalCpsMult
  881. }
  882.  
  883. function _fte(e) {
  884. return Game.ObjectsById[e].storedTotalCps * 3 * Game.globalCpsMult
  885. }
  886.  
  887. function _bam(e, t, n) {
  888. var r = 1;
  889. Game.UpgradesById.forEach(function (t, n) {
  890. if (t.bought && t.desc.indexOf(e + " are <b>twice</b> as efficient.") != -1) {
  891. r = r * 2
  892. }
  893. if (t.bought && t.desc.indexOf(e + " are <b>4 times</b> as efficient.") != -1) {
  894. r = r * 4
  895. }
  896. });
  897. return t * r * Game.ObjectsById[n].amount * Game.globalCpsMult
  898. }
  899.  
  900. function _inc(e) {
  901. var t = 0;
  902. Game.AchievementsById.forEach(function (n, r) {
  903. var i = n.desc.replace(/,/g, "");
  904. if (!n.won && i.indexOf(" per second.") != -1) {
  905. if (e >= i.substr(8, i.indexOf("</b>", 8) - 8) * 1) {
  906. t++
  907. }
  908. }
  909. });
  910. return t
  911. }
  912.  
  913. function Get_Achi_Worth(e, t, n) {
  914. var r = 0;
  915. var i = Game.prestige["Heavenly chips"] * 2;
  916. var s = 0;
  917. var o = new Array(0, 0, 0, 0);
  918. var u = Game.milkProgress;
  919. var a = Get_Frenzy_Mult();
  920. Game.UpgradesById.forEach(function (e, n) {
  921. var r = e.desc.replace("[Research]<br>", "");
  922. if (e.bought && r.indexOf("Cookie production multiplier <b>+") != -1) {
  923. i += r.substr(33, r.indexOf("%", 33) - 33) * 1
  924. }
  925. if (!e.bought && r.indexOf("Cookie production multiplier <b>+") != -1 && e.id == t) {
  926. s += r.substr(33, r.indexOf("%", 33) - 33) * 1
  927. }
  928. if (e.bought && e.name == "Kitten helpers") {
  929. o[0] = .05
  930. }
  931. if (e.bought && e.name == "Kitten workers") {
  932. o[1] = .1
  933. }
  934. if (e.bought && e.name == "Kitten engineers") {
  935. o[2] = .2
  936. }
  937. if (e.bought && e.name == "Kitten overseers") {
  938. o[3] = .3
  939. }
  940. });
  941. var f = 100 + i;
  942. f = f * (1 + o[0] * u);
  943. f = f * (1 + o[1] * u);
  944. f = f * (1 + o[2] * u);
  945. f = f * (1 + o[3] * u);
  946. var l = n;
  947. var c = (Game.cookiesPs + l) / Game.globalCpsMult * (f / 100) * a;
  948. u += e * .04;
  949. f = 100 + i + s;
  950. f = f * (1 + o[0] * u);
  951. f = f * (1 + o[1] * u);
  952. f = f * (1 + o[2] * u);
  953. f = f * (1 + o[3] * u);
  954. var h = 0;
  955. switch (Game.UpgradesById[t].name) {
  956. case "Kitten helpers":
  957. h = .05;
  958. break;
  959. case "Kitten workers":
  960. h = .1;
  961. break;
  962. case "Kitten engineers":
  963. h = .2;
  964. break;
  965. case "Kitten overseers":
  966. h = .3;
  967. break
  968. }
  969. f = f * (1 + h * u);
  970. r = (Game.cookiesPs + l) / Game.globalCpsMult * (f / 100) * a - c;
  971. var p = _inc(r + c);
  972. if (p > 0) {
  973. u += p * .04;
  974. f = 100 + i + s;
  975. f = f * (1 + o[0] * u);
  976. f = f * (1 + o[1] * u);
  977. f = f * (1 + o[2] * u);
  978. f = f * (1 + o[3] * u);
  979. f = f * (1 + h * u);
  980. r = (Game.cookiesPs + l) / Game.globalCpsMult * (f / 100) * a - c
  981. }
  982. if (Game.Has("Elder Covenant")) {
  983. r *= .95
  984. }
  985. return r
  986. }
  987.  
  988. function Get_Frenzy_Mult() {
  989. if (Game.frenzy > 0) {
  990. return Game.frenzyPower
  991. }
  992. return 1
  993. }
  994.  
  995. function Manage_Building_Tooltip(e) {
  996. var t = e.id;
  997. var n = new Array(CM_Lucky("reg", true), CM_Lucky("frenzy", true));
  998. var r = new Array("none", "none");
  999. var s = new Array("", "");
  1000. var o = new Array(0, 0);
  1001. if (Game.cookies >= n[0] && Game.cookies - e.price < n[0]) {
  1002. r[0] = "block";
  1003. o[0] = n[0] - (Game.cookies - e.price)
  1004. }
  1005. if (Game.cookies >= n[1] && Game.cookies - e.price < n[1]) {
  1006. r[1] = "block";
  1007. o[1] = n[1] - (Game.cookies - e.price)
  1008. }
  1009. if (e.desc == building_tooltips[e.id]) {
  1010. e.desc += '<div id="cm_ob_div_' + t + '" style="position:relative; height:96px; background:#222222; border:1px solid #000000; margin:6px -6px -6px -6px; display:none;"></div>';
  1011. e.desc += '<div id="cm_ob_lucky_div_' + t + '" style="position:absolute; top:-25px; left:-12px; height:32px;">' + '<div id="cm_ob_lucky_div_warning" style="background:url(http://frozenelm.com/cookiemonster/images/warning.png); position:relative; float:left; height:32px; width:32px; display:none;"></div>' + '<div id="cm_ob_lucky_div_caution" style="background:url(http://frozenelm.com/cookiemonster/images/caution.png); position:relative; float:left; height:32px; width:32px; display:none;"></div>' + "</div>";
  1012. e.desc += '<div id="cm_ob_note_div_' + t + '" style="position:absolute; left:0px; margin-top:10px; color:white;">' + '<div id="cm_ob_note_div_warning" style="background:#222222; position:relative; display:none; margin-top:4px; padding:2px; border:1px solid #FF0000;"><b style="color:#FF0000;">Warning:</b> Purchase of this item will put you under the number of Cookies required for "Lucky!"</br><span id="cm_ob_warning_amount"></span>' + '<div id="cm_ob_lucky_div_warning" style="position:absolute; left:-10px; top:-10px; height:32px; width:32px;"><img src="http://frozenelm.com/cookiemonster/images/warning.png" height=16px width=16px></div></div>' + '<div id="cm_ob_note_div_caution" style="background:#222222; position:relative; display:none; margin-top:4px; padding:2px; border:1px solid #FFFF00;"><b style="color:#FFFF00;">Caution:</b> Purchase of this item will put you under the number of Cookies required for "Lucky!" (Frenzy)</br><span id="cm_ob_caution_amount"></span>' + '<div id="cm_ob_lucky_div_warning" style="position:absolute; left:-10px; top:-10px; height:32px; width:32px;"><img src="http://frozenelm.com/cookiemonster/images/caution.png" height=16px width=16px></div></div>' + "</div>";
  1013. Game.RebuildStore()
  1014. }
  1015. var u = new Array("FFFF00", "FFFF00");
  1016. var a = new Array(hold_cpi[t], hold_tc[t]);
  1017. var f = new Array(Math.max.apply(Math, hold_cpi), Math.max.apply(Math, hold_tc));
  1018. var l = new Array(Math.min.apply(Math, hold_cpi), Math.min.apply(Math, hold_tc));
  1019. for (i = 0; i < u.length; i++) {
  1020. if (a[i] == l[i]) {
  1021. u[i] = "00FF00"
  1022. } else if (a[i] == f[i]) {
  1023. u[i] = "FF0000"
  1024. } else if (f[i] - a[i] < a[i] - l[i]) {
  1025. u[i] = "FF7F00"
  1026. }
  1027. }
  1028. if ($("#cm_ob_div_" + t).length == 1) {
  1029. $("#cm_ob_div_" + t).css("border", "1px solid #" + u[0]);
  1030. $("#cm_ob_div_" + t).css("display", "");
  1031. $("#cm_ob_div_" + t).html('<div style="position:absolute; top:4px; left:4px; color:#4bb8f0; font-weight:bold;">Bonus Income</div><div align=right style="position:absolute; top:18px; left:4px; color:white;">' + formatNum(hold_is[t]) + '</div><div style="position:absolute; top:34px; left:4px; color:#4bb8f0; font-weight:bold;">Base Cost Per Income</div><div align=right style="position:absolute; top:48px; left:4px; color:#' + u[0] + ';">' + formatNum(a[0]) + '</div><div style="position:absolute; top:64px; left:4px; color:#4bb8f0; font-weight:bold;">Time Left</div><div align=right style="position:absolute; top:78px; left:4px; color:#' + u[1] + ';">' + formatTime(a[1], "") + "</div>");
  1032. $("#cm_ob_warning_amount").text("Deficit: " + formatNum(o[0]));
  1033. $("#cm_ob_caution_amount").text("Deficit: " + formatNum(o[1]));
  1034. if (settings[10] == 1 || settings[10] == 2) {
  1035. $("#cm_ob_lucky_div_warning").css("display", r[0]);
  1036. $("#cm_ob_lucky_div_caution").css("display", r[1])
  1037. } else {
  1038. $("#cm_ob_lucky_div_warning").css("display", "none");
  1039. $("#cm_ob_lucky_div_caution").css("display", "none")
  1040. } if (settings[10] == 1 || settings[10] == 3) {
  1041. $("#cm_ob_note_div_warning").css("display", r[0]);
  1042. $("#cm_ob_note_div_caution").css("display", r[1])
  1043. } else {
  1044. $("#cm_ob_note_div_warning").css("display", "none");
  1045. $("#cm_ob_note_div_caution").css("display", "none")
  1046. }
  1047. }
  1048. if (settings[6] == 1) {
  1049. $("#product" + t).find(".price").first().css("color", "#" + u[0])
  1050. } else {
  1051. $("#product" + t).find(".price").first().css("color", "")
  1052. }
  1053. }
  1054.  
  1055. function Make_Table() {
  1056. var e = '<th align=left width=130 style="color:#FFFF00;"> ' + version + "</th>";
  1057. var t = "";
  1058. var n = "";
  1059. var r = "";
  1060. var i = "";
  1061. Game.ObjectsById.forEach(function (t, s) {
  1062. e += '<th align=middle id="cookie_monster_item_' + s + '" style="font-weight:bold;"></th>';
  1063. n += '<td align=middle id="cookie_monster_is_' + s + '"></td>';
  1064. r += '<td align=middle id="cookie_monster_cpi_' + s + '"></td>';
  1065. i += '<td align=middle id="cookie_monster_tc_' + s + '"></td>'
  1066. });
  1067. $("#cookie_monster_bar").html("" + '<table style="width:100%; table-layout:fixed; margin-top:2px;">' + "<tr>" + e + "</tr>" + '<tr><th align=right style="color:#4bb8f0;">Bonus Income</th>' + n + "</tr>" + '<tr><th align=right style="color:#4bb8f0;">Base Cost Per Income</th>' + r + "</tr>" + '<tr><th align=right style="color:#4bb8f0;">Time Left</th>' + i + "</tr>" + "</table>")
  1068. }
  1069.  
  1070. function Update_Table() {
  1071. Game.ObjectsById.forEach(function (e, t) {
  1072. var n = e.price;
  1073. var r = e.amount;
  1074. var i = e.storedTotalCps;
  1075. var s = e.storedCps * Game.globalCpsMult;
  1076. if (e.name == "Grandma") {
  1077. s = 0
  1078. }
  1079. var o = Math.round((s + Get_Upgrade_Bonuses(e.name, r, s)) * 100) / 100;
  1080. var u = Math.round(n / o * 100) / 100;
  1081. var a = e.name.replace(/([^\s]+)/, "");
  1082. hold_item[t] = e.name.replace(a, "") + ' (<span style="color:#4bb8f0;">' + formatNum(r) + "</span>)";
  1083. hold_is[t] = Math.round(o * 100) / 100;
  1084. hold_cpi[t] = Math.round(u * 100) / 100;
  1085. hold_tc[t] = Math.round(Seconds_Left(t, "ob"))
  1086. });
  1087. Game.ObjectsById.forEach(function (e, t) {
  1088. var n = new Array("FFFF00", "FFFF00");
  1089. var r = new Array(hold_cpi[t], hold_tc[t]);
  1090. var s = new Array(Math.max.apply(Math, hold_cpi), Math.max.apply(Math, hold_tc));
  1091. var o = new Array(Math.min.apply(Math, hold_cpi), Math.min.apply(Math, hold_tc));
  1092. for (i = 0; i < n.length; i++) {
  1093. if (r[i] == o[i]) {
  1094. n[i] = "00FF00"
  1095. } else if (r[i] == s[i]) {
  1096. n[i] = "FF0000"
  1097. } else if (s[i] - r[i] < r[i] - o[i]) {
  1098. n[i] = "FF7F00"
  1099. }
  1100. }
  1101. $("#cookie_monster_item_" + t).html(hold_item[t]);
  1102. $("#cookie_monster_is_" + t).html(formatNum(hold_is[t]));
  1103. $("#cookie_monster_cpi_" + t).html('<span style="color:#' + n[0] + ';">' + formatNum(r[0]) + "</span>");
  1104. $("#cookie_monster_tc_" + t).html('<span style="color:#' + n[1] + ';">' + formatTime(r[1], "min") + "</span>")
  1105. })
  1106. }
  1107.  
  1108. function Do_Emphasize() {
  1109. var e = $("#cookie_monster_golden_overlay");
  1110. var t = $("#goldenCookie");
  1111. if (t.css("display") == "none" && !emphasize) {
  1112. emphasize = true;
  1113. gc_avail = ""
  1114. }
  1115. if (t.css("display") != "none" && emphasize) {
  1116. emphasize = false;
  1117. if (settings[9] == 1) {
  1118. gc_avail = "(G) ";
  1119. Fav_Icon_Spinner(1)
  1120. }
  1121. if (settings[8] == 1) {
  1122. var n = new Audio("http://frozenelm.com/cookiemonster/sounds/ba%20dink.mp3");
  1123. n.volume = 1;
  1124. n.play()
  1125. }
  1126. if (settings[0] == 1) {
  1127. $("#cookie_monster_overlay").fadeIn(100);
  1128. $("#cookie_monster_overlay").fadeOut(500)
  1129. }
  1130. }
  1131. if (t.css("display") != "none" && settings[1] == 1) {
  1132. e.css("display", "block");
  1133. e.css("opacity", t.css("opacity"));
  1134. e.css("left", t.css("left"));
  1135. e.css("top", t.css("top"));
  1136. e.html('<div style="position:absolute; top:30px; width:96px; height:36px;">' + Math.round(Game.goldenCookie.life / Game.fps) + "</div>")
  1137. } else {
  1138. e.css("display", "none")
  1139. }
  1140. }
  1141.  
  1142. function Manage_Buffs() {
  1143. var e = "";
  1144. var t = "";
  1145. var n = 0;
  1146. var r = 0;
  1147. var i = 13 + 13 * Game.Has("Get lucky");
  1148. var s = 840 / (Game.Has("Lucky day") + 1) / (Game.Has("Serendipity") + 1);
  1149. switch (Game.frenzyPower) {
  1150. case 7:
  1151. n = 77 + 77 * Game.Has("Get lucky");
  1152. e = "Frenzy";
  1153. t = "FFFF00";
  1154. break;
  1155. case 666:
  1156. n = 6 + 6 * Game.Has("Get lucky");
  1157. e = "Blood Frenzy";
  1158. t = "00FF00";
  1159. break;
  1160. case .5:
  1161. n = 66 + 66 * Game.Has("Get lucky");
  1162. e = "Clot";
  1163. t = "FF0000";
  1164. break
  1165. }
  1166. if (Game.frenzy > 0 && settings[2] == 1) {
  1167. if ($("#cookie_monster_timer_" + t).length != 1) {
  1168. $("#cookie_monster_timer_bars_div").append('<div id="cookie_monster_timer_' + t + '" style="padding:4px 0px 5px 0px;"><table cellpadding=0 cellspacing=0 style="font-style:inherit; color:inherit; width:100%;"><tr>' + '<td style="width:130px; text-align:right;">' + e + "<td>" + '<td><div id="cmt_' + t + '" style="position:relative; background:#' + t + '; height:10px; width:100%; margin-left:4px; border:1px solid black;"><div id="cmt_time_' + t + '" style="text-align:left; position:absolute; right:-50px; top:-5px; width:45px;">' + n + "</div></div></td>" + '<td style="width:55px;"></td>' + "</table></div>")
  1169. } else {
  1170. $("#cmt_" + t).css("width", Game.frenzy / Game.fps / n * 100 + "%");
  1171. $("#cmt_time_" + t).text(Math.round(Game.frenzy / Game.fps))
  1172. }
  1173. $("#cookie_monster_timer_" + t).fadeIn(250);
  1174. if ($("#cookie_monster_timer_FFFF00").css("opacity") == "1" && t != "FFFF00") {
  1175. $("#cookie_monster_timer_FFFF00").fadeOut(250)
  1176. }
  1177. if ($("#cookie_monster_timer_00FF00").css("opacity") == "1" && t != "00FF00") {
  1178. $("#cookie_monster_timer_00FF00").fadeOut(250)
  1179. }
  1180. if ($("#cookie_monster_timer_FF0000").css("opacity") == "1" && t != "FF0000") {
  1181. $("#cookie_monster_timer_FF0000").fadeOut(250)
  1182. }
  1183. } else if ($("#cookie_monster_timer_" + t).length == 1 && $("#cookie_monster_timer_" + t).css("opacity") == "1") {
  1184. $("#cookie_monster_timer_" + t).fadeOut(250)
  1185. }
  1186. if (Game.clickFrenzy > 0 && settings[2] == 1) {
  1187. if ($("#cookie_monster_timer_4BB8F0").length != 1) {
  1188. $("#cookie_monster_timer_bars_div").append('<div id="cookie_monster_timer_4BB8F0" style="padding:4px 0px 5px 0px;"><table cellpadding=0 cellspacing=0 style="font-style:inherit; color:inherit; width:100%;"><tr>' + '<td style="width:130px; text-align:right;">Click Frenzy<td>' + '<td><div id="cmt_4BB8F0" style="position:relative; background:#4BB8F0; height:10px; width:100%; margin-left:4px; border:1px solid black;"><div id="cmt_time_4BB8F0" style="text-align:left; position:absolute; right:-50px; top:-5px; width:45px;">' + i + "</div></div></td>" + '<td style="width:55px;"></td>' + "</table></div>")
  1189. } else {
  1190. $("#cmt_4BB8F0").css("width", Game.clickFrenzy / Game.fps / i * 100 + "%");
  1191. $("#cmt_time_4BB8F0").text(Math.round(Game.clickFrenzy / Game.fps))
  1192. }
  1193. $("#cookie_monster_timer_4BB8F0").fadeIn(250)
  1194. } else if ($("#cookie_monster_timer_4BB8F0").length == 1 && $("#cookie_monster_timer_4BB8F0").css("opacity") == "1") {
  1195. $("#cookie_monster_timer_4BB8F0").fadeOut(250)
  1196. }
  1197. if (Game.goldenCookie.delay > 0 && $("#goldenCookie").css("display") == "none" && settings[4] == 1) {
  1198. if ($("#cookie_monster_timer_FF00FF").length != 1) {
  1199. $("#cookie_monster_timer_bars_div").append("" + '<div id="cookie_monster_timer_FF00FF" style="padding:4px 0px 5px 0px;"><table cellpadding=0 cellspacing=0 style="font-style:inherit; color:inherit; width:100%;"><tr>' + '<td style="width:130px; text-align:right;">Next Cookie<td>' + '<td><div id="cmt_FF00FF" style="position:relative; background:#FF00FF; height:10px; width:100%; margin-left:4px; border:1px solid black;"><div id="cmt_time_FF00FF" style="text-align:left; position:absolute; right:-50px; top:-5px; width:45px;">' + s + "</div></div></td>" + '<td style="width:55px;"></td>' + "</table></div>")
  1200. } else {
  1201. $("#cmt_FF00FF").css("width", Game.goldenCookie.delay / Game.fps / s * 100 + "%");
  1202. $("#cmt_time_FF00FF").text(Math.round(Game.goldenCookie.delay / Game.fps))
  1203. }
  1204. $("#cookie_monster_timer_FF00FF").fadeIn(250)
  1205. } else if ($("#cookie_monster_timer_FF00FF").length == 1 && $("#cookie_monster_timer_FF00FF").css("opacity") == "1") {
  1206. $("#cookie_monster_timer_FF00FF").fadeOut(250)
  1207. }
  1208. if (Game.goldenCookie.delay > 0 && $("#goldenCookie").css("display") == "none") {
  1209. if (settings[4] == 1) {
  1210. gc_avail = "(" + Math.round(Game.goldenCookie.delay / Game.fps) + ") "
  1211. } else {
  1212. gc_avail = ""
  1213. }
  1214. }
  1215. $("#versionNumber").css("bottom", $("#cookie_monster_timer_bars_div").css("height"))
  1216. }
  1217.  
  1218. function Get_Upgrade_Bonuses(e, t, n) {
  1219. var r = 0;
  1220. var i = 0;
  1221. switch (e) {
  1222. case "Cursor":
  1223. if (t == 0) {
  1224. i += _cha("Click")
  1225. }
  1226. if (t == 1) {
  1227. i += _cha("Double-click")
  1228. }
  1229. if (t == 49) {
  1230. i += _cha("Mouse wheel")
  1231. }
  1232. if (t == 99) {
  1233. i += _cha("Of Mice and Men")
  1234. }
  1235. if (t == 199) {
  1236. i += _cha("The Digital")
  1237. }
  1238. break;
  1239. case "Grandma":
  1240. r += Get_Grandma_Mod_Total(t) * Game.globalCpsMult;
  1241. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1242. if (t == 0) {
  1243. i += _cha("Grandma's Cookies")
  1244. }
  1245. if (t == 49) {
  1246. i += _cha("Sloppy kisses")
  1247. }
  1248. if (t == 99) {
  1249. i += _cha("Retirement home")
  1250. }
  1251. break;
  1252. case "Farm":
  1253. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1254. if (t == 0) {
  1255. i += _cha("My first farm")
  1256. }
  1257. if (t == 49) {
  1258. i += _cha("Reap what you sow")
  1259. }
  1260. if (t == 99) {
  1261. i += _cha("Farm ill")
  1262. }
  1263. break;
  1264. case "Factory":
  1265. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1266. if (t == 0) {
  1267. i += _cha("Production chain")
  1268. }
  1269. if (t == 49) {
  1270. i += _cha("Industrial revolution")
  1271. }
  1272. if (t == 99) {
  1273. i += _cha("Global warming")
  1274. }
  1275. break;
  1276. case "Mine":
  1277. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1278. if (t == 0) {
  1279. i += _cha("You know the drill")
  1280. }
  1281. if (t == 49) {
  1282. i += _cha("Excavation site")
  1283. }
  1284. if (t == 99) {
  1285. i += _cha("Hollow the planet")
  1286. }
  1287. break;
  1288. case "Shipment":
  1289. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1290. if (t == 0) {
  1291. i += _cha("Expedition")
  1292. }
  1293. if (t == 49) {
  1294. i += _cha("Galactic highway")
  1295. }
  1296. if (t == 99) {
  1297. i += _cha("Far far away")
  1298. }
  1299. break;
  1300. case "Alchemy lab":
  1301. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1302. if (t == 0) {
  1303. i += _cha("Transmutation")
  1304. }
  1305. if (t == 49) {
  1306. i += _cha("Transmogrification")
  1307. }
  1308. if (t == 99) {
  1309. i += _cha("Gold member")
  1310. }
  1311. break;
  1312. case "Portal":
  1313. r += Get_Portal_Mod_Total() * Game.globalCpsMult;
  1314. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1315. if (t == 0) {
  1316. i += _cha("A whole new world")
  1317. }
  1318. if (t == 49) {
  1319. i += _cha("Now you're thinking")
  1320. }
  1321. if (t == 99) {
  1322. i += _cha("Dimensional shift")
  1323. }
  1324. break;
  1325. case "Time machine":
  1326. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1327. if (t == 0) {
  1328. i += _cha("Time warp")
  1329. }
  1330. if (t == 49) {
  1331. i += _cha("Alternate timeline")
  1332. }
  1333. if (t == 99) {
  1334. i += _cha("Rewriting history")
  1335. }
  1336. break;
  1337. case "Antimatter condenser":
  1338. r += Get_Cursor_Mod_Total() * Game.globalCpsMult;
  1339. if (t == 0) {
  1340. i += _cha("Antibatter")
  1341. }
  1342. if (t == 49) {
  1343. i += _cha("Quirky quarks")
  1344. }
  1345. if (t == 99) {
  1346. i += _cha("It does matter!")
  1347. }
  1348. break
  1349. }
  1350. if (Game.BuildingsOwned == 99) {
  1351. i += _cha("Builder")
  1352. }
  1353. if (Game.BuildingsOwned == 399) {
  1354. i += _cha("Architect")
  1355. }
  1356. if (Game.BuildingsOwned == 799) {
  1357. i += _cha("Engineer")
  1358. }
  1359. if (_owe(e)) {
  1360. i++
  1361. }
  1362. if (_mat(e)) {
  1363. i++
  1364. }
  1365. if (_bat(e)) {
  1366. i++
  1367. }
  1368. if (_cen(e)) {
  1369. i++
  1370. }
  1371. return r + Get_Achi_Worth(i, 0, r + n)
  1372. }
  1373.  
  1374. function _bat(e) {
  1375. if (_cha("Base 10") == 1) {
  1376. var t = new Array;
  1377. var n = new Array;
  1378. Game.ObjectsById.forEach(function (e, r) {
  1379. t.push(e.name);
  1380. n.push(e.amount)
  1381. });
  1382. t.forEach(function (t, r) {
  1383. if (t == e) {
  1384. n[r]++
  1385. }
  1386. });
  1387. var r = n.length * 10;
  1388. for (var i = 0; i < n.length; i++) {
  1389. if (n[i] < r) {
  1390. return false
  1391. }
  1392. r = r - 10
  1393. }
  1394. return true
  1395. }
  1396. return false
  1397. }
  1398.  
  1399. function _mat(e) {
  1400. if (_cha("Mathematician") == 1) {
  1401. var t = new Array;
  1402. var n = new Array;
  1403. Game.ObjectsById.forEach(function (e, r) {
  1404. t.push(e.name);
  1405. n.push(e.amount)
  1406. });
  1407. t.forEach(function (t, r) {
  1408. if (t == e) {
  1409. n[r]++
  1410. }
  1411. });
  1412. var r = 128;
  1413. for (var i = 0; i < n.length; i++) {
  1414. if (i > 2) {
  1415. r = r / 2
  1416. }
  1417. if (n[i] < r) {
  1418. return false
  1419. }
  1420. }
  1421. return true
  1422. }
  1423. return false
  1424. }
  1425.  
  1426. function _owe(e) {
  1427. if (_cha("One with everything") == 1) {
  1428. var t = new Array;
  1429. var n = new Array;
  1430. Game.ObjectsById.forEach(function (e, r) {
  1431. if (e.amount > 0) {
  1432. t.push(e.name)
  1433. } else {
  1434. n.push(e.name)
  1435. }
  1436. });
  1437. if (n.length == 1 && n[0] == e) {
  1438. return true
  1439. }
  1440. }
  1441. return false
  1442. }
  1443.  
  1444. function _cen(e) {
  1445. if (_cha("Centennial") == 1) {
  1446. var t = new Array;
  1447. var n = new Array;
  1448. Game.ObjectsById.forEach(function (e, r) {
  1449. if (e.amount >= 100) {
  1450. t.push(e.name)
  1451. } else {
  1452. n.push(e)
  1453. }
  1454. });
  1455. if (n.length == 1 && n[0].name == e && n[0].amount == 99) {
  1456. return true
  1457. }
  1458. }
  1459. return false
  1460. }
  1461.  
  1462. function Get_Cursor_Mod_Total() {
  1463. var e = 0;
  1464. Game.UpgradesById.forEach(function (t, n) {
  1465. if (t.bought && t.desc.indexOf("The mouse and cursors gain") != -1) {
  1466. e += t.desc.substr(31, t.desc.indexOf("<", 31) - 31) * 1
  1467. }
  1468. });
  1469. return e * Game.ObjectsById[0].amount
  1470. }
  1471.  
  1472. function Get_Grandma_Mod_Total(e) {
  1473. var t = .5;
  1474. var n = 0;
  1475. var r = 1;
  1476. Game.UpgradesById.forEach(function (i, s) {
  1477. if (i.bought && i.name == "Forwards from grandma") {
  1478. t += .3
  1479. }
  1480. if (i.bought && i.desc.indexOf("Grandmas are <b>twice</b> as efficient.") != -1) {
  1481. r = r * 2
  1482. }
  1483. if (i.bought && i.desc.indexOf("Grandmas are <b>4 times</b> as efficient.") != -1) {
  1484. r = r * 4
  1485. }
  1486. if (i.bought && i.desc.indexOf("for each 50 grandmas") != -1) {
  1487. n += (e + 1) * .02 * (e + 1) - e * .02 * e
  1488. }
  1489. if (i.bought && i.desc.indexOf("for each 20 portals") != -1) {
  1490. n += Game.ObjectsById[7].amount * .05
  1491. }
  1492. });
  1493. return t * r + n * r
  1494. }
  1495.  
  1496. function Get_Portal_Mod_Total() {
  1497. var e = 0;
  1498. var t = 1;
  1499. Game.UpgradesById.forEach(function (n, r) {
  1500. if (n.bought && n.desc.indexOf("Grandmas are <b>twice</b> as efficient.") != -1) {
  1501. t = t * 2
  1502. }
  1503. if (n.bought && n.desc.indexOf("Grandmas are <b>4 times</b> as efficient.") != -1) {
  1504. t = t * 4
  1505. }
  1506. if (n.bought && n.desc.indexOf("for each 20 portals") != -1) {
  1507. e += Game.ObjectsById[1].amount * .05
  1508. }
  1509. });
  1510. return e * t
  1511. }
  1512.  
  1513. function inStore(e) {
  1514. if (Game.UpgradesInStore.indexOf(e) != -1) {
  1515. return true
  1516. }
  1517. return false
  1518. }
  1519.  
  1520. function formatNum(e) {
  1521. return _sts(e, false).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
  1522. }
  1523.  
  1524. function formatNumB(e) {
  1525. return _sts(e, true).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
  1526. }
  1527.  
  1528. function formatTime(e, t) {
  1529. e = Math.round(e);
  1530. if (e == Infinity) {
  1531. return "Never"
  1532. }
  1533. if (e == 0) {
  1534. return "Done!"
  1535. }
  1536. if (e / 86400 > 1e3) {
  1537. return "> 1,000 days"
  1538. }
  1539. var n = parseInt(e / 86400) % 999;
  1540. var r = parseInt(e / 3600) % 24;
  1541. var i = parseInt(e / 60) % 60;
  1542. var s = e % 60;
  1543. var o = new Array(" days, ", " hours, ", " minutes, ", " seconds");
  1544. if (t != "min") {
  1545. if (n == 1) {
  1546. o[0] = " day, "
  1547. }
  1548. if (r == 1) {
  1549. o[1] = " hour, "
  1550. }
  1551. if (i == 1) {
  1552. o[2] = " minute, "
  1553. }
  1554. if (s == 1) {
  1555. o[3] = " second"
  1556. }
  1557. } else {
  1558. o = new Array("d, ", "h, ", "m, ", "s")
  1559. }
  1560. var u = "";
  1561. if (n > 0) {
  1562. u = u + n + o[0]
  1563. }
  1564. if (n > 0 || r > 0) {
  1565. u = u + r + o[1]
  1566. }
  1567. if (n > 0 || r > 0 || i > 0) {
  1568. u = u + i + o[2]
  1569. }
  1570. if (n > 0 || r > 0 || i > 0 || s > 0) {
  1571. u = u + s + o[3]
  1572. }
  1573. return u
  1574. }
  1575.  
  1576. function Colorize(e, t, n) {
  1577. var r = Game.UpgradesById[t];
  1578. var s = r.basePrice;
  1579. var o = new Array("FFFF00", "FFFF00");
  1580. var u = new Array(Math.round(s / e * 100) / 100, Math.round(Seconds_Left(t, "up")));
  1581. var a = new Array(Math.max.apply(Math, hold_cpi), Math.max.apply(Math, hold_tc));
  1582. var f = new Array(Math.min.apply(Math, hold_cpi), Math.min.apply(Math, hold_tc));
  1583. for (i = 0; i < o.length; i++) {
  1584. if (u[i] < f[i]) {
  1585. o[i] = "4BB8F0";
  1586. if (inStore(r) && i == 0) {
  1587. in_store[0]++
  1588. }
  1589. } else if (u[i] == f[i]) {
  1590. o[i] = "00FF00";
  1591. if (inStore(r) && i == 0) {
  1592. in_store[1]++
  1593. }
  1594. } else if (u[i] == a[i]) {
  1595. o[i] = "FF0000";
  1596. if (inStore(r) && i == 0) {
  1597. in_store[4]++
  1598. }
  1599. } else if (u[i] > a[i]) {
  1600. o[i] = "FF00FF";
  1601. if (inStore(r) && i == 0) {
  1602. in_store[5]++
  1603. }
  1604. } else if (a[i] - u[i] < u[i] - f[i]) {
  1605. o[i] = "FF7F00";
  1606. if (inStore(r) && i == 0) {
  1607. in_store[3]++
  1608. }
  1609. } else {
  1610. if (inStore(r) && i == 0) {
  1611. in_store[2]++
  1612. }
  1613. }
  1614. }
  1615. for (i = 0; i < in_store.length; i++) {
  1616. $("#cm_up_q" + i).text(in_store[i])
  1617. }
  1618. if (settings[11] && inStore(r)) {
  1619. $("#upgrade" + Game.UpgradesInStore.indexOf(r)).html('<div style="background-color:#' + o[0] + '; border:1px solid black; position:absolute; z-index:21; top:2px; left:2px; height:14px; width:14px; pointer-events:none;"></div>')
  1620. }
  1621. if ($("#cm_up_div_" + t).length == 1) {
  1622. var l = new Array(CM_Lucky("reg", true), CM_Lucky("frenzy", true));
  1623. var c = new Array("none", "none");
  1624. var h = new Array(0, 0);
  1625. if (Game.cookies >= l[0] && Game.cookies - s < l[0]) {
  1626. c[0] = "block";
  1627. h[0] = l[0] - (Game.cookies - s)
  1628. }
  1629. if (Game.cookies >= l[1] && Game.cookies - s < l[1]) {
  1630. c[1] = "block";
  1631. h[1] = l[1] - (Game.cookies - s)
  1632. }
  1633. $("#cm_up_div_" + t).css("border", "1px solid #" + o[0]);
  1634. $("#cm_up_div_" + t).css("display", "");
  1635. $("#cm_up_div_" + t).html('<div style="position:absolute; top:4px; left:4px; color:#4bb8f0; font-weight:bold;">Bonus Income</div><div align=right style="position:absolute; top:18px; left:4px; color:white;">' + formatNum(Math.round(e * 100) / 100) + '</div><div style="position:absolute; top:34px; left:4px; color:#4bb8f0; font-weight:bold;">Base Cost Per Income</div><div align=right style="position:absolute; top:48px; left:4px; color:#' + o[0] + ';">' + formatNum(u[0]) + '</div><div style="position:absolute; top:64px; left:4px; color:#4bb8f0; font-weight:bold;">Time Left</div><div align=right style="position:absolute; top:78px; left:4px; color:#' + o[1] + ';">' + formatTime(u[1], "min") + "</div>");
  1636. $("#cm_up_warning_amount").text("Deficit: " + formatNum(h[0]));
  1637. $("#cm_up_caution_amount").text("Deficit: " + formatNum(h[1]));
  1638. if (settings[10] == 1 || settings[10] == 2) {
  1639. $("#cm_up_lucky_div_warning").css("display", c[0]);
  1640. $("#cm_up_lucky_div_caution").css("display", c[1])
  1641. } else {
  1642. $("#cm_up_lucky_div_warning").css("display", "none");
  1643. $("#cm_up_lucky_div_caution").css("display", "none")
  1644. } if (settings[10] == 1 || settings[10] == 3) {
  1645. $("#cm_up_note_div_warning").css("display", c[0]);
  1646. $("#cm_up_note_div_caution").css("display", c[1])
  1647. } else {
  1648. $("#cm_up_note_div_warning").css("display", "none");
  1649. $("#cm_up_note_div_caution").css("display", "none")
  1650. }
  1651. }
  1652. if (n) {
  1653. o = "000000";
  1654. return '<div id="cm_up_lucky_div_' + t + '" style="position:absolute; top:-25px; left:-12px; height:32px;">' + '<div id="cm_up_lucky_div_warning" style="background:url(http://frozenelm.com/images/cookiemonster/warning.png); position:relative; float:left; height:32px; width:32px; display:none;"></div>' + '<div id="cm_up_lucky_div_caution" style="background:url(http://frozenelm.com/images/cookiemonster/caution.png); position:relative; float:left; height:32px; width:32px; display:none;"></div>' + "</div>" + '<div id="cm_up_div_' + t + '" style="position:relative; height:96px; background:#222222; border:1px solid #' + o + '; margin:6px -6px -6px -6px; display:none;"></div>' + '<div id="cm_up_note_div_' + t + '" style="position:absolute; left:0px; margin-top:10px; color:white;">' + '<div id="cm_up_note_div_warning" style="background:#222222; position:relative; display:none; margin-top:4px; padding:2px; border:1px solid #FF0000;"><b style="color:#FF0000;">Warning:</b> Purchase of this item will put you under the number of Cookies required for "Lucky!"</br><span id="cm_up_warning_amount"></span>' + '<div id="cm_up_lucky_div_warning" style="position:absolute; left:-10px; top:-10px; height:32px; width:32px;"><img src="http://frozenelm.com/images/cookiemonster/warning.png" height=16px width=16px></div></div>' + '<div id="cm_up_note_div_caution" style="background:#222222; position:relative; display:none; margin-top:4px; padding:2px; border:1px solid #FFFF00;"><b style="color:#FFFF00;">Caution:</b> Purchase of this item will put you under the number of Cookies required for "Lucky!" (Frenzy)</br><span id="cm_up_caution_amount"></span>' + '<div id="cm_up_lucky_div_warning" style="position:absolute; left:-10px; top:-10px; height:32px; width:32px;"><img src="http://frozenelm.com/images/cookiemonster/caution.png" height=16px width=16px></div></div>' + "</div>"
  1655. }
  1656. }
  1657.  
  1658. function Factor_Time(e) {
  1659. var t = Game.cookies - e;
  1660. var n = Game.cookiesPs;
  1661. if (n == 0) {
  1662. return 1
  1663. }
  1664. if (t < 0) {
  1665. var r = e / n;
  1666. return 1 - t * -1 / n / r
  1667. }
  1668. return 1
  1669. }
  1670.  
  1671. function Seconds_Left(e, t) {
  1672. var n = 0;
  1673. if (t == "ob") {
  1674. n = Game.ObjectsById[e].price
  1675. }
  1676. if (t == "up") {
  1677. n = Game.UpgradesById[e].basePrice
  1678. }
  1679. var r = Game.cookies - n;
  1680. var i = Game.cookiesPs;
  1681. if (i == 0) {
  1682. return 0
  1683. }
  1684. if (r < 0) {
  1685. var s = n / i;
  1686. var o = r * -1 / i;
  1687. return o
  1688. }
  1689. return 0
  1690. }
  1691.  
  1692. function _sts(e, t) {
  1693. var n = settings[7];
  1694. if (n != 3){
  1695. if (n > 0) {
  1696. var r = 1e33;
  1697. for (var i = sts_type[n - 1].length - 1; i >= 0; i--) {
  1698. var s = (e / r % 999).toFixed(3);
  1699. if (s >= 1) return s + sts_type[n - 1][i];
  1700. r /= 1e3
  1701. }
  1702. }
  1703. if (t) {
  1704. return Math.round(e)
  1705. }
  1706. return Math.round(e * 100) / 100
  1707. }
  1708. else
  1709. {
  1710. var f = 0;
  1711. if(Game.frenzy > 0){f = Game.cookiesPs / Game.frenzyPower;}
  1712. else{f = Game.cookiesPs;}
  1713.  
  1714. var str='';
  1715. var ms = Math.round((e*1000) / f);
  1716. var s = Math.floor(e / f);
  1717. ms = ms - (s * 1000);
  1718. var m = Math.floor(e / f / 60);
  1719. s = s - (m * 60);
  1720. var h = Math.floor(e / f / 3600);
  1721. m = m - (h * 60)
  1722. var d = Math.floor(e / f / 86400);
  1723. h = h - (d * 24);
  1724.  
  1725. if(ms >= 1000)
  1726. {
  1727. s += 1;
  1728. ms -= 1000;
  1729. }
  1730.  
  1731. if(ms < 100)
  1732. {
  1733. if(ms > 10){ms = '0' + ms;}
  1734. else{ms = '00' + ms;}
  1735. }
  1736.  
  1737. if (f==0 || e=="Infinity"){str='∞'}
  1738. else
  1739. {
  1740. if(d >= 1){str = d+"d "+h+"h "+m+"m "+s+"."+ms+"s"}
  1741. else if(h >= 1){str = h+"h "+m+"m "+s+"."+ms+"s"}
  1742. else if(m >= 1){str = m+"m "+s+"."+ms+"s"}
  1743. else if(ms >= 1 || s >= 1){str = s+"."+ms+"s"}
  1744. else{str = Math.round(e * 100) / 100}
  1745. }
  1746.  
  1747. return str;
  1748. }
  1749. }
  1750.  
  1751. function Sell_Out_Value() {
  1752. var e = 0;
  1753. var t = Game.cookies;
  1754. var n = new Array;
  1755. var r = 0;
  1756. Game.ObjectsById.forEach(function (e, t) {
  1757. n[t] = e.amount;
  1758. r += e.amount
  1759. });
  1760. while (t >= 15 || r > 0) {
  1761. for (var i = n.length - 1; i >= 0; i--) {
  1762. var s = false;
  1763. var o = n[i];
  1764. var u = Game.ObjectsById[i];
  1765. for (var a = o; a > 0; a--) {
  1766. t += Math.floor(u.basePrice * Math.pow(1.15, a) / 2);
  1767. e += Math.floor(u.basePrice * Math.pow(1.15, a) / 2);
  1768. n[i]--;
  1769. r--
  1770. }
  1771. while (t >= u.basePrice * Math.pow(1.15, n[i])) {
  1772. s = true;
  1773. t -= u.basePrice * Math.pow(1.15, n[i]);
  1774. n[i]++;
  1775. r++
  1776. }
  1777. if (s) {
  1778. break
  1779. }
  1780. }
  1781. }
  1782. sell_out = e
  1783. }
  1784.  
  1785. function Sell_Out() {
  1786. if (confirm("*** WARNING ***\nYou will have no buildings or cookies left after this.")) {
  1787. Game.ObjectsById.forEach(function (e, t) {
  1788. setTimeout(function () {
  1789. while (e.amount > 0) {
  1790. e.sell()
  1791. }
  1792. })
  1793. });
  1794. setTimeout(function () {
  1795. Buy_Sell()
  1796. })
  1797. }
  1798. }
  1799.  
  1800. function Buy_Sell() {
  1801. if (Game.cookies < 1e9 && Game.BuildingsOwned < 100) {
  1802. Buy_Sell_No_Wait();
  1803. return false
  1804. }
  1805. for (var e = Game.ObjectsById.length - 1; e >= 0; e--) {
  1806. var t = Game.ObjectsById[e];
  1807. if (t.price <= Game.cookies) {
  1808. t.buy();
  1809. setTimeout(function () {
  1810. Buy_Sell()
  1811. });
  1812. return false
  1813. }
  1814. if (t.price > Game.cookies && t.amount > 0) {
  1815. t.sell();
  1816. setTimeout(function () {
  1817. Buy_Sell()
  1818. });
  1819. return false
  1820. }
  1821. }
  1822. setTimeout(function () {
  1823. Buy_Sell()
  1824. })
  1825. }
  1826.  
  1827. function Buy_Sell_No_Wait() {
  1828. if (Game.cookies < 15) {
  1829. return false
  1830. }
  1831. for (var e = Game.ObjectsById.length - 1; e >= 0; e--) {
  1832. var t = Game.ObjectsById[e];
  1833. t.sell();
  1834. if (t.price <= Game.cookies) {
  1835. t.buy();
  1836. t.sell();
  1837. Buy_Sell_No_Wait();
  1838. return false
  1839. }
  1840. }
  1841. Buy_Sell_No_Wait()
  1842. }
  1843.  
  1844. function Get_True_CPI(e, t) {
  1845. var n = 0;
  1846. var r = 0;
  1847. var i = 0;
  1848. if (t == "ob") {
  1849. n = Seconds_Left(Game.ObjectsById[e], "ob");
  1850. r = Game.ObjectsById[e].price;
  1851. i = hold_is[e]
  1852. }
  1853. if (t == "up") {
  1854. n = Seconds_Left(Game.UpgradesById[e], "up");
  1855. r = Game.UpgradesById[e].basePrice;
  1856. for (var s = 0; s < upgrade_count; s++) {
  1857. if (_cup(s, e, false)) {
  1858. i = Manage_Tooltip(s, e, false, true);
  1859. break
  1860. }
  1861. }
  1862. }
  1863. var o = r / i;
  1864. Game.ObjectsById.forEach(function (s, u) {
  1865. var a = s.price;
  1866. var f = hold_is[u];
  1867. var l = Seconds_Left(s, "ob");
  1868. if (l < n && (t == "up" || u != e)) {
  1869. var c = n - l;
  1870. var h = f * c;
  1871. var p = r - a + h;
  1872. var d = p / i;
  1873. if (d > o) {
  1874. o = d
  1875. }
  1876. } else {}
  1877. });
  1878. return o
  1879. }
  1880.  
  1881. function Test_True_CPI(e, t) {
  1882. var n = 0;
  1883. var r = 0;
  1884. var i = 0;
  1885. var s = 0;
  1886. if (t == "ob") {
  1887. n = Seconds_Left(e, "ob");
  1888. i = Game.ObjectsById[e].price;
  1889. s = hold_is[e]
  1890. }
  1891. if (t == "up") {
  1892. n = Seconds_Left(e, "up");
  1893. i = Game.UpgradesById[e].basePrice;
  1894. for (var o = 0; o < upgrade_count; o++) {
  1895. if (_cup(o, e, false)) {
  1896. s = Manage_Tooltip(o, e, false, true);
  1897. break
  1898. }
  1899. }
  1900. }
  1901. var u = Organize_Object_List();
  1902. var a = i;
  1903. var f = a / s;
  1904. var l = f;
  1905. var c = s;
  1906. u.forEach(function (o, f) {
  1907. if (i > o.price && (t == "up" || o.id != e)) {
  1908. var h = o.price;
  1909. var p = hold_is[o.id];
  1910. var d = hold_cpi[o.id];
  1911. if (c == 0) {
  1912. c = p
  1913. }
  1914. if (l == 0) {
  1915. l = d
  1916. }
  1917. var v = Seconds_Left(o.id, "ob");
  1918. var m = 0;
  1919. var g = u[f + 1];
  1920. if (g.id != u.length && (hold_cpi[g.id] < l || g.id == e)) {
  1921. m = Seconds_Left(g.id, "ob");
  1922. l = hold_cpi[g.id];
  1923. c = p
  1924. }
  1925. if (v < n - r) {
  1926. var y = m - v;
  1927. r += y;
  1928. var b = c * y;
  1929. if (y > 0) {
  1930. s -= c;
  1931. a = a - h + b
  1932. }
  1933. }
  1934. }
  1935. });
  1936. f = a / s;
  1937. return f
  1938. }
  1939.  
  1940. function Organize_Object_List() {
  1941. var e = new Array;
  1942. Game.ObjectsById.forEach(function (t, n) {
  1943. var r = true;
  1944. if (e.length > 0) {
  1945. e.forEach(function (n, i) {
  1946. if (t.price < n.price && r) {
  1947. r = false;
  1948. e.splice(i, 0, t);
  1949. e.join()
  1950. }
  1951. });
  1952. if (r) {
  1953. e.push(t)
  1954. }
  1955. } else {
  1956. e.push(t)
  1957. }
  1958. });
  1959. return e
  1960. }
  1961. var version = "v.1.036.08";
  1962. var emphasize = true;
  1963. var tooltips = new Array;
  1964. var building_tooltips = new Array;
  1965. var hold_item = new Array;
  1966. var hold_is = new Array;
  1967. var hold_cpi = new Array;
  1968. var hold_tc = new Array;
  1969. var gc_avail = "";
  1970. var settings = new Array;
  1971. var in_store = new Array(0, 0, 0, 0, 0, 0);
  1972. var sell_out = 0;
  1973. var upgrade_count = 32;
  1974. var sts_type = new Array([" M", " B", " T", " Qa", " Qi", " Sx", " Sp", " Oc", " No", " Dc"], [" M", " G", " T", " P", " E", " Z", " Y", " Oc", " No", " Dc"]);
  1975. if (document.title.indexOf("Cookie Clicker") != -1 && $("#game").length != 0) {
  1976. Start_Cookie_Monster()
  1977. } else {
  1978. alert("Cookie Monster " + version + "\n\nThese aren't the droids you're looking for.")
  1979. }
Advertisement
Add Comment
Please, Sign In to add comment