Pixel Quests+

Makes it easier to create new custom quests for Idle Pixel

目前為 2024-02-12 提交的版本,檢視 最新版本

此腳本不應該直接安裝,它是一個供其他腳本使用的函式庫。欲使用本函式庫,請在腳本 metadata 寫上: // @require https://update.cn-greasyfork.org/scripts/487191/1326539/Pixel%20Quests%2B.js

  1. // ==UserScript==
  2. // @name Pixel Quests+
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.0.0
  5. // @description Makes it easier to create new custom quests for Idle Pixel
  6. // @author Dounford
  7. // @license MIT
  8. // @match *://idle-pixel.com/login/play*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14. let tabs = ['story', 'optional']
  15. window.addEventListener('load', function() {
  16. newQuestButtons();
  17. })
  18. function newQuestButtons() {
  19. let questButtons = document.createElement('div');
  20. questButtons.id = "questsButtons";
  21. questButtons.style.cssText = "white-space: nowrap; overflow-x: auto;";
  22. document.getElementById('panel-quests').prepend(questButtons);
  23. questButtons.appendChild(document.getElementById('story-quest-tab-button'));
  24. document.getElementById('story-quest-tab-button').style.whiteSpace = "normal";
  25. questButtons.appndChild(document.getElementById('optional-quest-tab-button'));
  26. document.getElementById('optional-quest-tab-button').style.whiteSpace = "normal";
  27. }
  28. function changeQuestTabsFunction(tabs) {
  29. //Change Quest Class to Make the Quest Tab Button Work
  30. Quests.changeQuestTabs = function(value) {
  31. let questTabs = tabs;
  32.  
  33. // Oculta todos os tabs e remove o destaque
  34. for (const tabId of questTabs) {
  35. document.getElementById(tabId + '-quest-tab').style.display = "none";
  36. document.getElementById(tabId + '-quest-tab-button').style.backgroundColor = "";
  37. }
  38.  
  39. if (value == 'optional') {
  40. if(Items.getItem('optional_quests_unlocked') == 0) {
  41. document.getElementById('story-quest-tab').style.display = "";
  42. document.getElementById('story-quest-tab-button').style.backgroundColor = "#f77a81";
  43. Modals.open_image_modal('SIDE QUESTS', 'images/lock.png', 'Unlock side quests? You need to complete at least 4 of the main story quests to unlock this.','Unlock Optional Quests!','Cancel','UNLOCK_OPTIONAL_QUESTS');
  44. return;
  45. }
  46. document.getElementById('optional-quest-tab').style.display = "";
  47. document.getElementById('optional-quest-tab-button').style.backgroundColor = "#f77a81";
  48. } else {
  49. document.getElementById(value + '-quest-tab').style.display = "";
  50. document.getElementById(value + '-quest-tab-button').style.backgroundColor = "#f77a81";
  51. }
  52. }
  53. }
  54. function newQuestType(type,description) {
  55. tabs.push(type);
  56. let newTabButton = document.createElement('div');
  57. newTabButton.id = type + "-quest-tab-button";
  58. newTabButton.className = "quest-tab-button hover";
  59. newTabButton.style.marginLeft = "20px";
  60. newTabButton.innerHTML = `${type.toLocaleUpperCase()} QUESTS
  61. <span style="margin-left:20px;" id="${type}-quest-tab-button-label">
  62. <span class="color-yellow">0/0</span>
  63. </span>`;
  64. newTabButton.onclick = function() {
  65. Quests.changeQuestTabs(type);
  66. };
  67. document.getElementById('questsButtons').appendChild(newTabButton);
  68. let newTabPanel = document.createElement('div');
  69. newTabPanel.id = type + "-quest-tab"
  70. newTabPanel.style.display = "none"
  71. newTabPanel.className = "quest-tabs"
  72. newTabPanel.innerHTML = `<h1 style="color:#f77a81">${type.toLocaleUpperCase()} QUESTS</h1>
  73. <span>${description}</span>
  74. <hr>
  75. <div id="${type}-quest-area"></div>`
  76. document.getElementById('panel-quests').appendChild(newTabPanel);
  77. changeQuestTabsFunction(tabs);
  78. }
  79.  
  80. })();