Cookie clicker tools

Cookie clicker tools (visual)

目前為 2017-02-25 提交的版本,檢視 最新版本

// ==UserScript==
// @name         Cookie clicker tools
// @namespace    orteil.dashnet.org
// @version      1.96
// @description  Cookie clicker tools (visual)
// @author       Anton
// @match        http://orteil.dashnet.org/cookieclicker/*
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// ==/UserScript==

(function() {
    'use strict';
    if (console) console.log('Cookies?');
    
    var getInvertExpence = function($tooltip) {
        var price = $tooltip.find('span.price').text();
        if (price) {
            price = price.replace(',', '');
            var priceNum = parseFloat(price);
            var mult = 1;
            if (price.indexOf('billion') > -1) mult = 1E9;
            else if (price.indexOf('million') > -1) mult = 1E6;
            var totalPrice = priceNum * mult;

            var data = $tooltip.find('div.data b');
            var eachIncome = jQuery(data[0]).text().replace(',', '');
            var eachIncomeNum = parseFloat(eachIncome);
            mult = 1;
            if (eachIncome.indexOf('billion') > -1) mult = 1E9;
            else if (eachIncome.indexOf('million') > -1) mult = 1E6;
            var totalIncome = eachIncomeNum * mult;
                
            var needed = totalPrice > 0 ? totalIncome / totalPrice : 0;
            var needInvert = totalIncome > 0 ? totalPrice / totalIncome : 0;
                
            return needInvert;
        }
        return null;
    }
    
    var t = setInterval(function() {
        var icons = document.querySelectorAll('.icon:not([id^=product])');
        var x = icons && icons.length > 0 ? icons[0].offsetParent : null;
        if (x !== null) {
            var $tooltip = jQuery(x);
            var needInvert = getInvertExpence($tooltip);
            if (needInvert !== null) {
                var $name = $tooltip.find('div.name span');
                if ($name.length === 0) {
                    $tooltip.find('div.name').append(jQuery('<span />'));
                    $name = $tooltip.find('div.name span');
                }
                $name.text(' (' + Beautify(needInvert) + ')');
            }
        }
    }, 100);
    
    var t2 = setInterval(function() {
        var allItems = jQuery('div.product.unlocked');
        for (var idx in allItems) {
            if (allItems.hasOwnProperty(idx)) {
                var item = jQuery(allItems[idx]);
                item.mouseover();
                var icons = document.querySelectorAll('.icon:not([id^=product])');
                var x = icons && icons.length > 0 ? icons[0].offsetParent : null;
                if (x !== null) {
                    console.log('found:', x);
                }
                Game.tooltip.hide();
            }
        }
    }, 1000);
})();