// ==UserScript==
// @name 宝可梦点击(Poke Clicker)辅助脚本 自动矿场模块
// @namespace PokeClickerHelper
// @version 0.1.3
// @description 自动矿场功能:可自动挖掘、售卖、买药、用药!
// @author 苍猫
// @match https://www.pokeclicker.com
// @match https://g8hh.github.io/pokeclicker/
// @match https://pokeclicker.g8hh.com
// @match https://yx.g8hh.com/pokeclicker/
// @match https://dreamnya.github.io/pokeclicker/
// @icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/319hf99fYX/fX2F/319hf8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////99fYX/fX2F/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////wAAAP8AAAD/fX2F/319hf99fYX/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD/AAAA/wAAAP99fYX/fX2F/wAAAP8AAAD/AAAA/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/HBT//xwU//8AAAD//////319hf8AAAD/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU//8cFP//HBT//wAAAP8AAAD/Dgim/w4Ipv8OCKb/Dgim/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT//xwU/44cFP//HBT//xwU//8cFP//Dgim/w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU/47/////HBT/jhwU//8cFP//HBT//w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT/jhwU//8OCKb/Dgim/w4Ipv8OCKb/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/xwU//8OCKb/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAOAHAADAAwAAwAMAAMADAADAAwAA4AcAAOAHAADwDwAA/D8AAP//AAD//wAA//8AAA==
// @grant none
// @license MIT
// @run-at document-end
// ==/UserScript==
/* eslint dot-notation:0 */
/* global App, $, PokeClickerHelper, Underground, GameConstants, player, ItemList, Mine */
if (typeof PokeClickerHelper == typeof void 0) {
alert('宝可梦点击(Poke Clicker)辅助脚本 自动矿场模块加载失败\n\n未找到核心模块,需要先安装核心模块才可正常使用\n\n论坛主页:https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842')
window.open("https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842")
return
}
// UI相关
PokeClickerHelper.UIDOM.push(`
`)
let fuc = () => {
const text = ``
// 未解锁挖矿的情况下会导致异常 加IF判断
if ($('#treasures th').length > 0) $('#treasures th')[3].style.width = "35%"
$('#treasures th:eq(3)').append(text)
// 创建写入 自动购买/使用 初级体力药剂 按钮
const text_2 = `
`
$("#dig .row.no-gutters").eq(2).prepend(text_2);
// 初始化加载功能状态
AutoUnderground.CheckAutoUnderground();
}
const listener = () => {
$('#PokeClickerHelperToggleAutoDig').on('click', function () {
AutoUnderground.LoadOver ? PokeClickerHelper.set('ToggleAutoDig', AutoUnderground.AutoDigStatus = !AutoUnderground.AutoDigStatus) : AutoUnderground.LoadOver = true;
$('#PokeClickerHelperToggleAutoDig').text($('#PokeClickerHelperToggleAutoDig').text().replace(AutoUnderground.AutoDigStatus ? 'OFF' : 'ON', AutoUnderground.AutoDigStatus ? 'ON' : 'OFF'))
AutoUnderground.AutoDigStatus ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoDig) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoDig);
})
$('#PokeClickerHelperAutoSellPlate').on('click', function () {
PokeClickerHelper.set('AutoSellPlate', AutoUnderground.AutoSellPlateStatus = !AutoUnderground.AutoSellPlateStatus)
$('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace(AutoUnderground.AutoSellPlateStatus ? 'OFF' : 'ON', AutoUnderground.AutoSellPlateStatus ? 'ON' : 'OFF'))
AutoUnderground.AutoSellPlateStatus ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger');
AutoUnderground.AutoSellPlateStatus ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellPlate) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSellPlate)
})
$('#PokeClickerHelperAutoSellDiamond').on('click', function () {
PokeClickerHelper.set('AutoSellDiamond', AutoUnderground.AutoSellDiamondStatus = !AutoUnderground.AutoSellDiamondStatus)
$('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace(AutoUnderground.AutoSellDiamondStatus ? 'OFF' : 'ON', AutoUnderground.AutoSellDiamondStatus ? 'ON' : 'OFF'))
AutoUnderground.AutoSellDiamondStatus ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger');
AutoUnderground.AutoSellDiamondStatus ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellDiamond) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSellDiamond)
})
$('#PokeClickerHelperAutoSmallRestore').on('click', function () {
PokeClickerHelper.set('AutoSmallRestore', AutoUnderground.AutoSmallRestoreStatus = !AutoUnderground.AutoSmallRestoreStatus)
$('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace(AutoUnderground.AutoSmallRestoreStatus ? 'OFF' : 'ON', AutoUnderground.AutoSmallRestoreStatus ? 'ON' : 'OFF'))
AutoUnderground.AutoSmallRestoreStatus ? this.classList.replace('btn-danger', 'btn-success') : this.classList.replace('btn-success', 'btn-danger');
AutoUnderground.AutoSmallRestoreStatus ? PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSmallRestore) : PokeClickerHelper.hookGameTickList.delete(AutoUnderground.AutoSmallRestore)
})
$('#PokeClickerHelperSmallRestore').on('change', event => {
AutoUnderground.BuySmallRestorePrice = +event.target.value.replace(/[A-Za-z!@#$%^&*()]/g, '').replace(/[,]/g, "");
PokeClickerHelper.set('BuySmallRestorePrice', AutoUnderground.BuySmallRestorePrice)
event.target.value = AutoUnderground.BuySmallRestorePrice.toLocaleString('en-US');
});
}
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSellPlate");
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSellDiamond");
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperAutoSmallRestore");
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperSmallRestore");
PokeClickerHelper.UICustomFuc.push(fuc);
PokeClickerHelper.UIlistener.push(listener);
// 暴露对象方法到全局
const AutoUnderground = {};
PokeClickerHelper.AutoUnderground = AutoUnderground;
AutoUnderground.LoadOver = false; //判断是否加载完成
// 自动挖掘 变量初始化 AutoUnderground.AutoDigStatus
PokeClickerHelper.get('ToggleAutoDig', '') === '' ? PokeClickerHelper.set('ToggleAutoDig', AutoUnderground.AutoDigStatus = false) : AutoUnderground.AutoDigStatus = JSON.parse(PokeClickerHelper.get('ToggleAutoDig', 'false'));
// 买用药剂 变量初始化 AutoUnderground.AutoSmallRestoreStatus
PokeClickerHelper.get('AutoSmallRestore', '') === '' ? PokeClickerHelper.set('AutoSmallRestore', AutoUnderground.AutoSmallRestoreStatus = false) : AutoUnderground.AutoSmallRestoreStatus = JSON.parse(PokeClickerHelper.get('AutoSmallRestore', 'false'));
// 药剂单价 变量初始化 AutoUnderground.BuySmallRestorePrice
PokeClickerHelper.get('BuySmallRestorePrice', '') === '' ? PokeClickerHelper.set('BuySmallRestorePrice', AutoUnderground.BuySmallRestorePrice = 0) : AutoUnderground.BuySmallRestorePrice = JSON.parse(PokeClickerHelper.get('BuySmallRestorePrice', '0'));
// 自动售板 变量初始化 AutoUnderground.AutoSellPlateStatus
PokeClickerHelper.get('AutoSellPlate', '') === '' ? PokeClickerHelper.set('AutoSellPlate', AutoUnderground.AutoSellPlateStatus = false) : AutoUnderground.AutoSellPlateStatus = JSON.parse(PokeClickerHelper.get('AutoSellPlate', 'false'));
// 自动售宝 变量初始化 AutoUnderground.AutoSellDiamondStatus
PokeClickerHelper.get('AutoSellDiamond', '') === '' ? PokeClickerHelper.set('AutoSellDiamond', AutoUnderground.AutoSellDiamondStatus = false) : AutoUnderground.AutoSellDiamondStatus = JSON.parse(PokeClickerHelper.get('AutoSellDiamond', 'false'));
// 检测功能状态
AutoUnderground.CheckAutoUnderground = () => {
if (AutoUnderground.AutoSmallRestoreStatus) {
$('#PokeClickerHelperAutoSmallRestore').text($('#PokeClickerHelperAutoSmallRestore').text().replace('OFF', 'ON'));
$('#PokeClickerHelperAutoSmallRestore')[0].classList.replace('btn-danger', 'btn-success');
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSmallRestore);
}
if (AutoUnderground.AutoSellPlateStatus) {
$('#PokeClickerHelperAutoSellPlate').text($('#PokeClickerHelperAutoSellPlate').text().replace('OFF', 'ON'));
$('#PokeClickerHelperAutoSellPlate')[0].classList.replace('btn-danger', 'btn-success');
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellPlate);
}
if (AutoUnderground.AutoSellDiamondStatus) {
$('#PokeClickerHelperAutoSellDiamond').text($('#PokeClickerHelperAutoSellDiamond').text().replace('OFF', 'ON'));
$('#PokeClickerHelperAutoSellDiamond')[0].classList.replace('btn-danger', 'btn-success');
PokeClickerHelper.hookGameTickList.add(AutoUnderground.AutoSellDiamond);
}
$('#PokeClickerHelperSmallRestore').prop('value',AutoUnderground.BuySmallRestorePrice.toLocaleString('en-US'));
}
// 自动挖矿
AutoUnderground.AutoDig = () => {
const rewardDigArr = [];
// 遍历所有的矿物
for (let i = 0; i < Mine.rewardGrid.length; i++) {
const row = Mine.rewardGrid[i];
for (let j = 0; j < row.length; j++) {
const reward = row[j];
if (reward && reward.revealed != 1) rewardDigArr.push({ x: i, y: j });
}
}
// 挖掘部分代码
if (rewardDigArr.length > 0) {
let noEnergy = false;
for (let i = 0; i < rewardDigArr.length; i++) {
const rewardDig = rewardDigArr[i];
const reward = Mine.rewardGrid[rewardDig.x][rewardDig.y];
while (reward.revealed != 1) {
if (App.game.underground.energy >= Underground.CHISEL_ENERGY) {
Mine.chisel(rewardDig.x, rewardDig.y);
} else {
noEnergy = true;
break;
}
}
if (noEnergy) break;
}
}
}
// 自动售板
AutoUnderground.AutoSellPlate = () => {
player.mineInventory().forEach(item => {
if (item.valueType === 1 && !item.sellLocked() && item.amount() > 0) Underground.sellMineItem(item.id, item.amount())
})
}
// 自动售宝
AutoUnderground.AutoSellDiamond = () => {
player.mineInventory().forEach(item => {
if (item.valueType === 0 && !item.sellLocked() && item.amount() > 0) Underground.sellMineItem(item.id, item.amount())
})
}
// 自动 买/用 初级体力药剂
AutoUnderground.AutoSmallRestore = () => {
// 购买药剂 Version 0.1.1 新增判断 未开启自动挖掘的功能情况即使开启购买药剂也不会购买
let Buyprice = Math.round(ItemList["SmallRestore"].basePrice * (player.itemMultipliers["SmallRestore"] || 1));
if (AutoUnderground.BuySmallRestorePrice > Buyprice && AutoUnderground.AutoDigStatus && player.itemList["SmallRestore"]() === 0) ItemList["SmallRestore"].buy(1);
// 使用药剂
if (App.game.underground.energy < Underground.CHISEL_ENERGY) { //当前体力<使用的挖矿工具需要的体力时候
if (player.itemList["SmallRestore"]() > 0) {
ItemList["SmallRestore"].use();
} else if (player.itemList["MediumRestore"]() > 0) {
ItemList["MediumRestore"].use();
} else if (player.itemList["LargeRestore"]() > 0) {
ItemList["LargeRestore"].use();
}
}
}