你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式
你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式
(我已經安裝了使用者樣式管理器,讓我安裝!)
// ==UserScript==
// @name New script pklucid.github.io
// @namespace Violentmonkey Scripts
// @match https://pklucid.github.io/Pokemon-Lucid-Calc/*
// @grant none
// @version 1.01
// @author - Lynn
// @license MIT
// @description 19/09/2024, 12:33:17
// ==/UserScript==
$(".set-selector").change(function () {
window.NO_CALC = true;
var fullSetName = $(this).val();
if ($(this).hasClass('opposing')) {
topPokemonIcon(fullSetName, $("#p2mon")[0])
CURRENT_TRAINER_POKS = get_trainer_poks(fullSetName)
var next_poks = CURRENT_TRAINER_POKS.sort(sortmons)
var trpok_html = ""
for (i in next_poks) {
if (next_poks[i][0].includes($('input.opposing').val())) {
continue
}
var pok_name = next_poks[i].split("]")[1].split(" (")[0]
if (pok_name == "Zygarde-10%") {
pok_name = "Zygarde-10%25"
}
if (pok_name == "Tauros-Paldea-Water") {
pok_name = "Tauros-Paldea-Aqua"
}
if (pok_name == "Tauros-Paldea-Fire") {
pok_name = "Tauros-Paldea-Blaze"
}
if (pok_name == "Tauros-Paldea") {
pok_name = "Tauros-Paldea-Combat"
}
if (pok_name == "Wooper-Paldea") {
pok_name = "WooperPaldea"
}
if (pok_name == "Pumpkaboo-Super") {
pok_name = "Pumpkaboo"
}
if (pok_name == "Mime Jr.") {
pok_name = "Mime%20Jr"
}
//this ruined my day
var pok = `<img class="trainer-pok right-side" src="http://raw.githubusercontent.com/May8th1995/sprites/master/${pok_name}.png" data-id="${CURRENT_TRAINER_POKS[i].split("]")[1]}" title="${next_poks[i]}, ${next_poks[i]} BP">`
trpok_html += pok
}
} else {
topPokemonIcon(fullSetName, $("#p1mon")[0])
}
$('.trainer-pok-list-opposing').html(trpok_html)
var pokemonName = fullSetName.substring(0, fullSetName.indexOf(" ("));
var setName = fullSetName.substring(fullSetName.indexOf("(") + 1, fullSetName.lastIndexOf(")"));
var pokemon = pokedex[pokemonName];
if (pokemon) {
var pokeObj = $(this).closest(".poke-info");
if (stickyMoves.getSelectedSide() === pokeObj.prop("id")) {
stickyMoves.clearStickyMove();
}
pokeObj.find(".teraToggle").prop("checked", false);
pokeObj.find(".analysis").attr("href", smogonAnalysis(pokemonName));
pokeObj.find(".type1").val(pokemon.types[0]);
pokeObj.find(".type2").val(pokemon.types[1]);
pokeObj.find(".hp .base").val(pokemon.bs.hp);
var i;
for (i = 0; i < LEGACY_STATS[gen].length; i++) {
pokeObj.find("." + LEGACY_STATS[gen][i] + " .base").val(pokemon.bs[LEGACY_STATS[gen][i]]);
}
pokeObj.find(".boost").val(0);
pokeObj.find(".percent-hp").val(100);
pokeObj.find(".status").val("Healthy");
$(".status").change();
var moveObj;
var abilityObj = pokeObj.find(".ability");
var itemObj = pokeObj.find(".item");
var randset = $("#randoms").prop("checked") ? randdex[pokemonName] : undefined;
var regSets = pokemonName in setdex && setName in setdex[pokemonName];
if (randset) {
var listItems = randdex[pokemonName].items ? randdex[pokemonName].items : [];
var listAbilities = randdex[pokemonName].abilities ? randdex[pokemonName].abilities : [];
if (gen >= 3) $(this).closest('.poke-info').find(".ability-pool").show();
$(this).closest('.poke-info').find(".extraSetAbilities").text(listAbilities.join(', '));
if (gen >= 2) $(this).closest('.poke-info').find(".item-pool").show();
$(this).closest('.poke-info').find(".extraSetItems").text(listItems.join(', '));
if (gen >= 9) {
$(this).closest('.poke-info').find(".role-pool").show();
$(this).closest('.poke-info').find(".tera-type-pool").show();
}
var listRoles = randdex[pokemonName].roles ? Object.keys(randdex[pokemonName].roles) : [];
$(this).closest('.poke-info').find(".extraSetRoles").text(listRoles.join(', '));
var listTeraTypes = [];
if (randdex[pokemonName].roles) {
for (var roleName in randdex[pokemonName].roles) {
var role = randdex[pokemonName].roles[roleName];
for (var q = 0; q < role.teraTypes.length; q++) {
if (listTeraTypes.indexOf(role.teraTypes[q]) === -1) {
listTeraTypes.push(role.teraTypes[q]);
}
}
}
}
pokeObj.find(".teraType").val(listTeraTypes[0] || pokemon.types[0]);
$(this).closest('.poke-info').find(".extraSetTeraTypes").text(listTeraTypes.join(', '));
} else {
$(this).closest('.poke-info').find(".ability-pool").hide();
$(this).closest('.poke-info').find(".item-pool").hide();
$(this).closest('.poke-info').find(".role-pool").hide();
$(this).closest('.poke-info').find(".tera-type-pool").hide();
}
if (regSets || randset) {
var set = regSets ? correctHiddenPower(setdex[pokemonName][setName]) : randset;
if (regSets) {
pokeObj.find(".teraType").val(set.teraType || pokemon.types[0]);
}
pokeObj.find(".level").val(set.level);
if(pokeObj.find(".level").val() <= 0){
pokeObj.find(".level").attr('at_cap', pokeObj.find(".level").val())
pokeObj.find(".level").val(parseInt($('.level-cap').val()) + parseInt(pokeObj.find(".level").val()))
}
else{
pokeObj.find(".level").attr('at_cap', 'None')
}
pokeObj.find(".hp .evs").val((set.evs && set.evs.hp !== undefined) ? set.evs.hp : 0);
pokeObj.find(".hp .ivs").val((set.ivs && set.ivs.hp !== undefined) ? set.ivs.hp : 31);
pokeObj.find(".hp .dvs").val((set.dvs && set.dvs.hp !== undefined) ? set.dvs.hp : 15);
pokeObj.find(".status").val(set.status);
for (i = 0; i < LEGACY_STATS[gen].length; i++) {
pokeObj.find("." + LEGACY_STATS[gen][i] + " .evs").val(
(set.evs && set.evs[LEGACY_STATS[gen][i]] !== undefined) ?
set.evs[LEGACY_STATS[gen][i]] : ($("#randoms").prop("checked") ? 84 : 0));
pokeObj.find("." + LEGACY_STATS[gen][i] + " .ivs").val(
(set.ivs && set.ivs[LEGACY_STATS[gen][i]] !== undefined) ? set.ivs[LEGACY_STATS[gen][i]] : 31);
pokeObj.find("." + LEGACY_STATS[gen][i] + " .dvs").val(
(set.dvs && set.dvs[LEGACY_STATS[gen][i]] !== undefined) ? set.dvs[LEGACY_STATS[gen][i]] : 15);
}
setSelectValueIfValid(pokeObj.find(".nature"), set.nature, "Hardy");
var abilityFallback = (typeof pokemon.abilities !== "undefined") ? pokemon.abilities[0] : "";
if ($("#randoms").prop("checked")) {
setSelectValueIfValid(abilityObj, randset.abilities && randset.abilities[0], abilityFallback);
setSelectValueIfValid(itemObj, randset.items && randset.items[0], "");
} else {
setSelectValueIfValid(abilityObj, set.ability, abilityFallback);
setSelectValueIfValid(itemObj, set.item, "");
}
var setMoves = set.moves;
if (randset) {
if (gen < 9) {
setMoves = randset.moves;
} else {
setMoves = [];
for (var role in randset.roles) {
for (var q = 0; q < randset.roles[role].moves.length; q++) {
var moveName = randset.roles[role].moves[q];
if (setMoves.indexOf(moveName) === -1) setMoves.push(moveName);
}
}
}
}
var moves = selectMovesFromRandomOptions(setMoves);
for (i = 0; i < 4; i++) {
moveObj = pokeObj.find(".move" + (i + 1) + " select.move-selector");
moveObj.attr('data-prev', moveObj.val());
setSelectValueIfValid(moveObj, moves[i], "(No Move)");
moveObj.change();
}
if (randset) {
$(this).closest('.poke-info').find(".move-pool").show();
$(this).closest('.poke-info').find(".extraSetMoves").html(formatMovePool(setMoves));
}
} else {
pokeObj.find(".teraType").val(pokemon.types[0]);
pokeObj.find(".level").val(100);
pokeObj.find(".hp .evs").val(0);
pokeObj.find(".hp .ivs").val(31);
pokeObj.find(".hp .dvs").val(15);
for (i = 0; i < LEGACY_STATS[gen].length; i++) {
pokeObj.find("." + LEGACY_STATS[gen][i] + " .evs").val(0);
pokeObj.find("." + LEGACY_STATS[gen][i] + " .ivs").val(31);
pokeObj.find("." + LEGACY_STATS[gen][i] + " .dvs").val(15);
}
pokeObj.find(".nature").val("Hardy");
setSelectValueIfValid(abilityObj, pokemon.ab, "");
itemObj.val("");
for (i = 0; i < 4; i++) {
moveObj = pokeObj.find(".move" + (i + 1) + " select.move-selector");
moveObj.attr('data-prev', moveObj.val());
moveObj.val("(No Move)");
moveObj.change();
}
if ($("#randoms").prop("checked")) {
$(this).closest('.poke-info').find(".move-pool").hide();
}
}
if (typeof getSelectedTiers === "function") { // doesn't exist when in 1vs1 mode
var format = getSelectedTiers()[0];
var is50lvl = startsWith(format, "VGC") || startsWith(format, "Battle Spot");
//var isDoubles = format === 'Doubles' || has50lvl; *TODO*
if (format === "LC") pokeObj.find(".level").val(5);
if (is50lvl) pokeObj.find(".level").val(50);
//if (isDoubles) field.gameType = 'Doubles'; *TODO*
}
var formeObj = $(this).siblings().find(".forme").parent();
itemObj.prop("disabled", false);
var baseForme;
if (pokemon.baseSpecies && pokemon.baseSpecies !== pokemon.name) {
baseForme = pokedex[pokemon.baseSpecies];
}
if (pokemon.otherFormes) {
showFormes(formeObj, pokemonName, pokemon, pokemonName);
} else if (baseForme && baseForme.otherFormes) {
showFormes(formeObj, pokemonName, baseForme, pokemon.baseSpecies);
} else {
formeObj.hide();
}
calcHP(pokeObj);
calcStats(pokeObj);
abilityObj.change();
itemObj.change();
if (pokemon.gender === "N") {
pokeObj.find(".gender").parent().hide();
pokeObj.find(".gender").val("");
} else pokeObj.find(".gender").parent().show();
}
window.NO_CALC = false;
});
let label = document.createElement('label')
$(label).text('Cap is at:')
let input = document.createElement('input')
$(input).attr('type', 'number')
$(input).addClass('level-cap')
$(input).val(50)
let host = $('.info-group.top.i-f-o-type').children().get(-2)
host.append(label)
host.append(input)
let vanilla_level = $($(host).children('input').get(0))
if(vanilla_level.val() <= 0){
vanilla_level.val(parseInt($('.level-cap').val()) + parseInt(vanilla_level.val()))
}
$('.level-cap').on('input', function(){
if($('#levelR1').attr('at_cap') != "None")
$('#levelR1').val(parseInt($('.level-cap').val()) + parseInt($('#levelR1').attr('at_cap')))
$(".level").trigger('keyup')
})
$('.level-cap').trigger('input')