您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
sort all task in taskboard
当前为
// ==UserScript== // @name MWI TaskManager // @namespace http://tampermonkey.net/ // @version 0.22 // @description sort all task in taskboard // @author shykai // @match https://www.milkywayidle.com/* // @match https://test.milkywayidle.com/* // @icon https://www.milkywayidle.com/favicon.svg // @grant GM_getValue // @grant GM_setValue // ==/UserScript== (function () { 'use strict'; //default config let globalConfig = { isBattleIcon: true, dungeonConfig: { "/actions/combat/chimerical_den": false, "/actions/combat/sinister_circus": false, "/actions/combat/enchanted_fortress": false, "/actions/combat/pirate_cove": false, } }; const globalConfigName = "MWITaskManager_globalConfig"; function saveConfig() { GM_setValue(globalConfigName, JSON.stringify(globalConfig)); } const savedConfig = GM_getValue(globalConfigName, null); if (savedConfig) { let readConfig = JSON.parse(savedConfig); globalConfig.isBattleIcon = readConfig.isBattleIcon; for (let key in readConfig.dungeonConfig) { globalConfig.dungeonConfig[key] = readConfig.dungeonConfig[key]; } } // split from actions_sprite.e6388cbc.svg const actionSVGText = '<?xml version="1.0" encoding="utf-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <symbol fill="none" viewBox="0 0 100 100" id="chimerical_den" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#aea)"> <path d="m14.554 35.23-8.92 8.92L16.9 50.254l6.573-6.104 1.409-4.695-10.329-4.225Z" fill="#2FC4A7" /> <path d="m14.554 35.23-8.92 8.92L16.9 50.254l6.573-6.104 1.409-4.695-10.329-4.225Z" fill="#fff" fill-opacity=".6" /> <path d="M63.38 10.347 42.723 8l10.798 11.268 9.86-8.92Z" fill="#2FC4A7" /> <path d="M63.38 10.347 42.723 8l10.798 11.268 9.86-8.92Z" fill="#fff" fill-opacity=".6" /> <path d="m80.751 32.413-5.164-13.145 18.31 12.206-13.146.94Z" fill="#2FC4A7" /> <path d="m80.751 32.413-5.164-13.145 18.31 12.206-13.146.94Z" fill="#fff" fill-opacity=".6" /> <path d="m65.258 44.15 9.39-8.45 4.695 3.286 7.511 2.817-10.328 6.573-11.268-4.226Z" fill="#2FC4A7" /> <path d="m65.258 44.15 9.39-8.45 4.695 3.286 7.511 2.817-10.328 6.573-11.268-4.226Z" fill="#fff" fill-opacity=".6" /> <path d="m30.516 34.291 7.512-6.573 15.963 1.409 6.103 4.225-9.39 11.737-15.023 2.348-5.165-13.146Z" fill="#2FC4A7" /> <path d="m30.516 34.291 7.512-6.573 15.963 1.409 6.103 4.225-9.39 11.737-15.023 2.348-5.165-13.146Z" fill="#fff" fill-opacity=".6" /> <path d="M28.639 15.981 42.722 8l10.798 8.92 2.347 12.207H36.15L28.64 15.98Z" fill="#898989" /> <path d="M28.639 15.981 42.722 8l10.798 8.92 2.347 12.207H36.15L28.64 15.98Z" fill="#fff" fill-opacity=".4" /> <path d="m30.516 34.291-7.98 4.225v5.634l-2.818 15.493-2.817 22.066 11.738-5.634 1.408-13.615 6.573-14.554-6.104-13.615Z" fill="#898989" /> <path d="m30.516 34.291-7.98 4.225v5.634l-2.818 15.493-2.817 22.066 11.738-5.634 1.408-13.615 6.573-14.554-6.104-13.615Z" fill="#fff" fill-opacity=".4" /> <path d="M39.437 29.127 28.638 15.98l-6.103 22.535 7.981-4.225 8.92-5.164Z" fill="#898989" /> <path d="M39.437 29.127 28.638 15.98l-6.103 22.535 7.981-4.225 8.92-5.164Z" fill="#fff" fill-opacity=".6" /> <path d="m63.38 10.347-9.859 6.573.47 12.207 16.431 11.737 4.226-4.695L63.38 10.347Z" fill="#898989" /> <path d="m63.38 10.347-9.859 6.573.47 12.207 16.431 11.737 4.226-4.695L63.38 10.347Z" fill="#fff" fill-opacity=".6" /> <path d="M16.432 47.437 5.634 44.15 0 77.014l16.901 4.695 4.226-21.596-4.695-12.676Z" fill="#898989" /> <path d="M16.432 47.437 5.634 44.15 0 77.014l16.901 4.695 4.226-21.596-4.695-12.676Z" fill="#fff" fill-opacity=".2" /> <path d="m68.075 82.178-.47-38.028 8.92 4.226 4.696 35.21-13.146-1.408Z" fill="#898989" /> <path d="m68.075 82.178-.47-38.028 8.92 4.226 4.696 35.21-13.146-1.408Z" fill="#fff" fill-opacity=".2" /> <path d="m75.587 19.268-7.042 3.286 6.103 13.615 4.695 2.817 1.408-6.573-5.164-13.145Z" fill="#898989" /> <path d="m75.587 19.268-7.042 3.286 6.103 13.615 4.695 2.817 1.408-6.573-5.164-13.145Z" fill="#fff" fill-opacity=".2" /> <path d="m49.765 44.15 12.207 13.146-4.226 9.859L43.662 53.54l-8.92 5.164-3.756 20.658-4.225-2.348 1.878-14.554 7.511-15.493 13.615-2.817Z" fill="#898989" /> <path d="m49.765 44.15 12.207 13.146-4.226 9.859L43.662 53.54l-8.92 5.164-3.756 20.658-4.225-2.348 1.878-14.554 7.511-15.493 13.615-2.817Z" fill="#fff" fill-opacity=".2" /> <path d="m22.535 44.15-6.103 3.287 4.695 12.676 1.408-15.963ZM60.094 33.352 49.765 44.15l12.207 13.146 6.103-1.878-.47-11.268 2.817-3.286-10.328-7.512ZM86.385 41.803l-9.86 6.573 4.696 35.21 9.39-1.877-4.226-39.906Z" fill="#898989" /> <path d="m68.075 55.418-6.103 1.878-4.225 9.859 1.877 15.962 8.451-.939v-26.76Z" fill="#898989" /> <path d="m68.075 55.418-6.103 1.878-4.225 9.859 1.877 15.962 8.451-.939v-26.76Z" fill="#000" fill-opacity=".2" /> <path d="m79.343 38.986 1.408-6.573 13.146-.939 4.225 17.84L100 76.545l-9.39 5.165-4.225-39.906-7.042-2.817Z" fill="#898989" /> <path d="m79.343 38.986 1.408-6.573 13.146-.939 4.225 17.84L100 76.545l-9.39 5.165-4.225-39.906-7.042-2.817Z" fill="#000" fill-opacity=".2" /> <path d="M69.101 16.752c.084 1.88-.63 3.5-1.263 3.7l2.593 6.56c1.068-.383 2.141-.145 3.241.883l-.002-.004c-.967-1.794-1.301-2.413-2.38-2.577 1.172-.4 1.431-1.393 2.658-1.709-.878-.082-1.5-.025-3.007.405.41-.616.707-.851 1.308-1.149-1.13.26-1.49.285-2.253 1.102.945-1.264 1.327-2.09 1.684-4.15-.934 1.533-1.065 1.344-2.199 2.19.687-1.427.637-1.872.585-2.676-.273.652-.7 1.175-.983 1.186.133-.797.316-1.99.018-3.76Z" fill="#2FC4A7" /> <path d="M69.101 16.752c.084 1.88-.63 3.5-1.263 3.7l2.593 6.56c1.068-.383 2.141-.145 3.241.883l-.002-.004c-.967-1.794-1.301-2.413-2.38-2.577 1.172-.4 1.431-1.393 2.658-1.709-.878-.082-1.5-.025-3.007.405.41-.616.707-.851 1.308-1.149-1.13.26-1.49.285-2.253 1.102.945-1.264 1.327-2.09 1.684-4.15-.934 1.533-1.065 1.344-2.199 2.19.687-1.427.637-1.872.585-2.676-.273.652-.7 1.175-.983 1.186.133-.797.316-1.99.018-3.76Z" fill="#000" fill-opacity=".2" /> <path d="M46.386 24.963c-1.368 1.02-2.704 3.187-2.455 4.13h-4.72c-.545-1.037-1.439-2.29-3.113-2.967.854-.035 2.563-.104 3.113.824-.44-1.767-.744-1.83-1.278-3.617.598 1.094 1.78 1.066 2.406 3.287.178-.905.161-1.432 0-2.393.512 1.627.718 2.11.614 3.594.304-1.99.649-2.983 1.872-4.686-.5 2.137-.287 2.194-.183 4.178.578-1.75.92-1.954 1.516-2.368-.289.747-.392 1.617-.227 1.991.477-.652 1.03-1.295 2.455-1.973Z" fill="#2FC4A7" /> <path d="M46.386 24.963c-1.368 1.02-2.704 3.187-2.455 4.13h-4.72c-.545-1.037-1.439-2.29-3.113-2.967.854-.035 2.563-.104 3.113.824-.44-1.767-.744-1.83-1.278-3.617.598 1.094 1.78 1.066 2.406 3.287.178-.905.161-1.432 0-2.393.512 1.627.718 2.11.614 3.594.304-1.99.649-2.983 1.872-4.686-.5 2.137-.287 2.194-.183 4.178.578-1.75.92-1.954 1.516-2.368-.289.747-.392 1.617-.227 1.991.477-.652 1.03-1.295 2.455-1.973Z" fill="#000" fill-opacity=".4" /> <path d="M45 80H30.5l4-21.5 9-5L58 67l2 16-15-3Z" fill="#898989" /> <path d="M45 80H30.5l4-21.5 9-5L58 67l2 16-15-3Z" fill="#000" fill-opacity=".6" /> <path d="M46.233 80.352 34 80l3.964-15.085L44.33 61l10.255 9.61L56 82l-9.767-1.648Z" fill="#141414" /> <path d="M26.5 36.5C28 45 39 73 58.5 73c15.824 0 22.5-6 30-14.5M21 59c.5 7 4.203 20.5 17.5 20.5 13.5 0 26-18.5 29.5-28" stroke="#2FC4A7" /> <path d="M26.5 36.5C28 45 39 73 58.5 73c15.824 0 22.5-6 30-14.5M21 59c.5 7 4.203 20.5 17.5 20.5 13.5 0 26-18.5 29.5-28" stroke="#000" stroke-opacity=".4" /> <path d="M74 73c-.247-1.188.236-2.431.502-2.692.47.373 1.675 1.192 1.998 2.192.407 1.26-.337 1.922-.5 2.5-.722-.315-1.752-.812-2-2Z" fill="#2FC4A7" /> <path d="M74 73c-.247-1.188.236-2.431.502-2.692.47.373 1.675 1.192 1.998 2.192.407 1.26-.337 1.922-.5 2.5-.722-.315-1.752-.812-2-2Z" fill="#000" fill-opacity=".4" /> <path d="M71.28 68.543c.586.823.554 2.026.404 2.354-.527-.078-1.832-.17-2.426-.81-.75-.807-.307-1.67-.346-2.202.728-.083 1.78-.165 2.368.658Z" fill="#2FC4A7" /> <path d="M71.28 68.543c.586.823.554 2.026.404 2.354-.527-.078-1.832-.17-2.426-.81-.75-.807-.307-1.67-.346-2.202.728-.083 1.78-.165 2.368.658Z" fill="#000" fill-opacity=".4" /> <path d="M46.016 81.03c-.402 1.146-1.459 1.96-1.822 2.046-.21-.563-.817-1.887-.576-2.91.303-1.29 1.443-1.755 1.882-2.166.455.643.919 1.886.516 3.03Z" fill="#2FC4A7" /> <path d="M46.016 81.03c-.402 1.146-1.459 1.96-1.822 2.046-.21-.563-.817-1.887-.576-2.91.303-1.29 1.443-1.755 1.882-2.166.455.643.919 1.886.516 3.03Z" fill="#000" fill-opacity=".4" /> <path d="M50.587 77.86c.093 1.007-.54 2.03-.835 2.238-.416-.332-1.498-1.067-1.69-1.92-.241-1.073.575-1.598.809-2.076.67.293 1.622.752 1.716 1.758Z" fill="#2FC4A7" /> <path d="M50.587 77.86c.093 1.007-.54 2.03-.835 2.238-.416-.332-1.498-1.067-1.69-1.92-.241-1.073.575-1.598.809-2.076.67.293 1.622.752 1.716 1.758Z" fill="#000" fill-opacity=".4" /> <path d="m68 79-14 3 6.5 8 13-1.078L78 83l-10-4Z" fill="#2FC4A7" /> <path d="m68 79-14 3 6.5 8 13-1.078L78 83l-10-4Z" fill="#fff" fill-opacity=".6" /> <path d="m59.5 93-.5-4.5 18-2-3 4.5-14.5 2Z" fill="#898989" /> <path d="m59.5 93-.5-4.5 18-2-3 4.5-14.5 2Z" fill="#fff" fill-opacity=".2" /> <path d="M51.5 87.5 54 82l7 6.32L59.5 93l-8-5.5Z" fill="#898989" /> <path d="M51.5 87.5 54 82l7 6.32L59.5 93l-8-5.5Z" fill="#fff" fill-opacity=".4" /> <path d="m74 91-1-4 5-4 2 5.053L74 91Z" fill="#898989" /> <path d="M37.019 73.47c-2.247 2.135-3.95 6.66-3.519 8.53h-14c-.656-3.208-2.787-7.926-5.753-9.53 4.05.347 5.429.765 7.229 4.057-.752-3.5.539-5.353-.414-8.89 1.178 2.165 1.827 3.832 2.93 8.23.502-1.795.529-2.84.292-4.743.926 3.221 1.318 4.18.909 7.119.91-3.944 1.788-5.914 4.68-9.298-1.357 4.24-.897 4.35-.911 8.282 1.224-1.895 1.409-3.783 2.767-4.608-.726 1.482-.21 3.112.109 3.853 1.126-1.294 3.487-2.951 5.68-3.002Z" fill="#2FC4A7" /> <path d="M37.019 73.47c-2.247 2.135-3.95 6.66-3.519 8.53h-14c-.656-3.208-2.787-7.926-5.753-9.53 4.05.347 5.429.765 7.229 4.057-.752-3.5.539-5.353-.414-8.89 1.178 2.165 1.827 3.832 2.93 8.23.502-1.795.529-2.84.292-4.743.926 3.221 1.318 4.18.909 7.119.91-3.944 1.788-5.914 4.68-9.298-1.357 4.24-.897 4.35-.911 8.282 1.224-1.895 1.409-3.783 2.767-4.608-.726 1.482-.21 3.112.109 3.853 1.126-1.294 3.487-2.951 5.68-3.002Z" fill="#000" fill-opacity=".6" /> <path d="M8.522 77.258C9.86 79.598 10.626 83.625 10 85h11.5c0-2.538-.169-4.418 2.549-7.443-1.841.817-3.11.91-4.67 4.12-.319-1.579-.238-2.423.197-3.88-1.262 2.318-1.754 2.974-1.647 5.444-.506-3.415-1.184-5.242-3.738-8.768.925 3.778.451 3.736.06 6.89-1.033-1.864-1.024-3.428-2.3-4.473.574 1.392-.113 2.552-.508 3.055-.997-1.355-1.455-1.452-2.921-2.687Z" fill="#2FC4A7" /> <path d="M8.522 77.258C9.86 79.598 10.626 83.625 10 85h11.5c0-2.538-.169-4.418 2.549-7.443-1.841.817-3.11.91-4.67 4.12-.319-1.579-.238-2.423.197-3.88-1.262 2.318-1.754 2.974-1.647 5.444-.506-3.415-1.184-5.242-3.738-8.768.925 3.778.451 3.736.06 6.89-1.033-1.864-1.024-3.428-2.3-4.473.574 1.392-.113 2.552-.508 3.055-.997-1.355-1.455-1.452-2.921-2.687Z" fill="#000" fill-opacity=".4" /> </g> <defs> <clipPath id="aea"> <path fill="#fff" d="M0 0h100v100H0z" /> </clipPath> </defs> </symbol> <symbol fill="none" viewBox="0 0 100 100" id="sinister_circus" xmlns="http://www.w3.org/2000/svg"> <g clip-path="url(#ara)"> <path d="M0 91.722V68.39L100 68v23.5c-5.74 1.296-24 4.111-48.889 4.111-24.889 0-44.444-2.592-51.111-3.889Z" fill="#D0333D" /> <path d="M0 91.722V68.39L100 68v23.5c-5.74 1.296-24 4.111-48.889 4.111-24.889 0-44.444-2.592-51.111-3.889Z" fill="#000" fill-opacity=".2" /> <path d="M62.222 70.611H36.667V95.39c1.852 0 7.11.222 13.333.222 6.222 0 10.37-.037 12.222-.222V70.61Z" fill="#D0333D" /> <path d="M62.222 70.611H36.667V95.39c1.852 0 7.11.222 13.333.222 6.222 0 10.37-.037 12.222-.222V70.61Z" fill="#000" fill-opacity=".8" /> <path d="M10 93.167V68.389l17.778.556v25.888c-7.28-.448-11.18-.801-17.778-1.666Z" fill="#7445B8" /> <path d="M10 93.167V68.389l17.778.556v25.888c-7.28-.448-11.18-.801-17.778-1.666Z" fill="#fff" fill-opacity=".6" /> <path d="M90 93.167V68.945l-17.778.536v25.464c7.036-.447 10.947-.789 17.778-1.778Z" fill="#7445B8" /> <path d="M90 93.167V68.945l-17.778.536v25.464c7.036-.447 10.947-.789 17.778-1.778Z" fill="#fff" fill-opacity=".2" /> <path d="M56.667 5.056c-4 .888-6.482-.741-7.223-1.667v6.667c.926.555 3.89 1.11 7.778-.556 4.708-2.018 6.049-2.353 12.222-1.667 5 .556 7.593-2.037 8.334-3.889-1.482.926-5.223 2.445-8.334 1.112-3.889-1.667-7.777-1.112-12.777 0Z" fill="#A272E4" /> <path d="M49.444 22.278V3.388" stroke="#898989" stroke-width="1.111" /> <path d="M49.444 22.278V3.388" stroke="#fff" stroke-opacity=".6" stroke-width="1.111" /> <path d="M49.444 69.643C38.778 69.643 12.963 69.214 0 69v3.857c.185 1.072 1.111 3.857 3.333 3.857 3.89 0 6.111-4.5 6.667-6.428.556 2.143 4.444 7.071 8.889 7.071 4.444 0 8.518-4.286 9.444-6.428C29.444 73.286 33.556 78 38.89 78c5.333 0 9.444-4.071 10.555-6.429C50.556 74.143 55.667 78 60.556 78S70 73.5 71.11 70.929c1.296 2.571 5.111 6.428 10 6.428s8.148-4.5 8.889-7.071c.556 2.143 4 6.428 6.667 6.428 2.222 0 3.333-1.928 3.333-3.214V69c-11.111.214-39.889.643-50.556.643Z" fill="#7445B8" /> <path d="M49.444 69.643C38.778 69.643 12.963 69.214 0 69v3.857c.185 1.072 1.111 3.857 3.333 3.857 3.89 0 6.111-4.5 6.667-6.428.556 2.143 4.444 7.071 8.889 7.071 4.444 0 8.518-4.286 9.444-6.428C29.444 73.286 33.556 78 38.89 78c5.333 0 9.444-4.071 10.555-6.429C50.556 74.143 55.667 78 60.556 78S70 73.5 71.11 70.929c1.296 2.571 5.111 6.428 10 6.428s8.148-4.5 8.889-7.071c.556 2.143 4 6.428 6.667 6.428 2.222 0 3.333-1.928 3.333-3.214V69c-11.111.214-39.889.643-50.556.643Z" fill="#fff" fill-opacity=".4" /> <path d="M31.111 46.167C43.333 34.5 47.222 25.056 49.444 17.833c2.223 7.223 5.034 17.28 20 30 11.112 9.445 23.334 16.111 30.556 20-10.74.37-35.889 1.112-48.333 1.112-12.445 0-39.63-.741-51.667-1.112 4.444-2.222 17.725-8.889 31.111-21.666Z" fill="#D0333D" /> <path d="M45.556 47.278c1.777-10.667 3.333-21.667 3.889-29.445.555 7.778 1.888 22.778 2.777 29.445.89 6.666 4.074 17.222 5.556 21.667H40.556c.926-2.778 3.222-11 5-21.667Z" fill="#7445B8" /> <path d="M45.556 47.278c1.777-10.667 3.333-21.667 3.889-29.445.555 7.778 1.888 22.778 2.777 29.445.89 6.666 4.074 17.222 5.556 21.667H40.556c.926-2.778 3.222-11 5-21.667Z" fill="#fff" fill-opacity=".6" /> <path d="M32.222 49.5c8.89-11.111 15.556-24.444 17.223-31.667-1.112 7.778-6.445 25.111-10 32.223-3.556 7.11-7.056 12.889-10.945 18.444h-18c3.889-2.222 12.833-7.889 21.722-19Z" fill="#7445B8" /> <path d="M32.222 49.5c8.89-11.111 15.556-24.444 17.223-31.667-1.112 7.778-6.445 25.111-10 32.223-3.556 7.11-7.056 12.889-10.945 18.444h-18c3.889-2.222 12.833-7.889 21.722-19Z" fill="#fff" fill-opacity=".8" /> <path d="M66.603 49.848c-9.143-11.233-15.58-24.237-17.159-32.015 1.143 7.864 6.073 25.387 9.73 32.577C62.833 57.599 67.5 63.383 71.5 69l18.5-.617c-4-2.247-14.254-7.302-23.397-18.535Z" fill="#7445B8" /> <path d="M66.603 49.848c-9.143-11.233-15.58-24.237-17.159-32.015 1.143 7.864 6.073 25.387 9.73 32.577C62.833 57.599 67.5 63.383 71.5 69l18.5-.617c-4-2.247-14.254-7.302-23.397-18.535Z" fill="#fff" fill-opacity=".4" /> <path d="M49.444 68.945c-10.666 0-36.481-.926-49.444-1.112v3.334c.185.926 1.111 3.333 3.333 3.333 3.89 0 6.111-3.889 6.667-5.555.556 1.851 4.444 6.11 8.889 6.11 4.444 0 8.518-3.703 9.444-5.555 1.111 2.037 5.223 6.111 10.556 6.111 5.333 0 9.444-3.518 10.555-5.555 1.112 2.222 6.223 5.555 11.112 5.555S70 71.722 71.11 69.5c1.296 2.222 5.111 5.556 10 5.556s8.148-3.89 8.889-6.111c.556 1.851 4 5.555 6.667 5.555 2.222 0 3.333-1.667 3.333-2.778v-3.889c-11.111.186-39.889 1.112-50.556 1.112Z" fill="#D0333D" /> <path d="M49.444 68.945c-10.666 0-36.481-.926-49.444-1.112v3.334c.185.926 1.111 3.333 3.333 3.333 3.89 0 6.111-3.889 6.667-5.555.556 1.851 4.444 6.11 8.889 6.11 4.444 0 8.518-3.703 9.444-5.555 1.111 2.037 5.223 6.111 10.556 6.111 5.333 0 9.444-3.518 10.555-5.555 1.112 2.222 6.223 5.555 11.112 5.555S70 71.722 71.11 69.5c1.296 2.222 5.111 5.556 10 5.556s8.148-3.89 8.889-6.111c.556 1.851 4 5.555 6.667 5.555 2.222 0 3.333-1.667 3.333-2.778v-3.889c-11.111.186-39.889 1.112-50.556 1.112Z" fill="#000" fill-opacity=".2" /> </g> <defs> <clipPath id="ara"> <path fill="#fff" d="M0 0h100v100H0z" /> </clipPath> </defs> </symbol> <symbol fill="none" viewBox="0 0 100 100" id="enchanted_fortress" xmlns="http://www.w3.org/2000/svg"> <path d="M8 71V44h80v27H8Z" fill="#898989" /> <path d="M8 71V44h80v27H8Z" fill="#fff" fill-opacity=".4" /> <path d="M8 71V44h26v27H8Z" fill="#898989" /> <path d="M8 71V44h26v27H8Z" fill="#fff" fill-opacity=".2" /> <path d="M88 44v27H66V44h22Z" fill="#898989" /> <path d="M88 44v27H66V44h22Z" fill="#fff" fill-opacity=".2" /> <path d="M66 44v24l18.5.912V50.5L66 44ZM66 44H34V23h32v21Z" fill="#898989" /> <path d="M66 44H34V23h32v21Z" fill="#fff" fill-opacity=".4" /> <path d="M66 23H34l32 11V23Z" fill="#898989" /> <path d="M66 23H34l32 11V23Z" fill="#fff" fill-opacity=".2" /> <path d="M34 23v-8h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v8H34Z" fill="#898989" /> <path d="M34 23v-8h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v8H34Z" fill="#fff" fill-opacity=".6" /> <path d="M50 15V4" stroke="#898989" /> <path d="M50 15V4" stroke="#fff" stroke-opacity=".6" /> <path d="M0 48v-8h4v3h3v-3h4v3h3v-3h4v8l-2 3H2l-2-3Z" fill="#7445B8" /> <path d="M0 48v-8h4v3h3v-3h4v3h3v-3h4v8l-2 3H2l-2-3Z" fill="#fff" fill-opacity=".2" /> <path d="m2 51-2-3h18l-2 3H2ZM30 58v-8h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v8H30Z" fill="#7445B8" /> <path d="M30 58v-8h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v3h3v-3h4v8H30Z" fill="#fff" fill-opacity=".2" /> <path d="M2 90V51h14v39H2Z" fill="#7445B8" /> <path fill="#7445B8" d="M8 88h3v2H8z" /> <path fill="#fff" fill-opacity=".2" d="M8 88h3v2H8z" /> <path fill="#7445B8" d="M9 78h4v3H9z" /> <path fill="#fff" fill-opacity=".2" d="M9 78h4v3H9z" /> <path fill="#7445B8" d="M4 73h4v2H4z" /> <path fill="#fff" fill-opacity=".2" d="M4 73h4v2H4z" /> <path fill="#7445B8" d="M12 62h3v2h-3z" /> <path fill="#fff" fill-opacity=".2" d="M12 62h3v2h-3z" /> <path d="M84 90V51h14v39H84Z" fill="#7445B8" /> <path fill="#898989" d="M90 56h3v5h-3z" /> <path fill="#000" fill-opacity=".6" d="M90 56h3v5h-3z" /> <path d="M16 88V64h14v24H16ZM69 88V64h15v24H69Z" fill="#7445B8" /> <path d="M69 88V64h15v24H69Z" fill="#000" fill-opacity=".2" /> <path d="M69 64v24h15V69.588L69 64Z" fill="#7445B8" /> <path d="M69 64v24h15V69.588L69 64Z" fill="#000" fill-opacity=".4" /> <path d="M84 76v14h14v-8.412L84 76Z" fill="#7445B8" /> <path d="M84 76v14h14v-8.412L84 76Z" fill="#000" fill-opacity=".2" /> <path d="M30 92V58h39v34H30Z" fill="#7445B8" /> <path d="M30 92V58h39v34H30Z" fill="#fff" fill-opacity=".2" /> <path d="M41.389 92V75.815C41.666 73.543 43.714 69 49.694 69c5.98 0 8.03 4.543 8.306 6.815V92H41.389Z" fill="#898989" /> <path d="M41.389 92V75.815C41.666 73.543 43.714 69 49.694 69c5.98 0 8.03 4.543 8.306 6.815V92H41.389Z" fill="#000" fill-opacity=".8" /> <path fill="#898989" d="M7 56h3v5H7z" /> <path fill="#000" fill-opacity=".6" d="M7 56h3v5H7z" /> <path fill="#898989" d="M7 67h3v5H7z" /> <path fill="#000" fill-opacity=".6" d="M7 67h3v5H7z" /> <path fill="#898989" d="M37 56h3v5h-3z" /> <path fill="#000" fill-opacity=".6" d="M37 56h3v5h-3z" /> <path fill="#898989" d="M48 56h3v5h-3z" /> <path fill="#000" fill-opacity=".6" d="M48 56h3v5h-3z" /> <path fill="#898989" d="M59 56h3v5h-3z" /> <path fill="#000" fill-opacity=".6" d="M59 56h3v5h-3z" /> <path fill="#898989" d="M39 26h3v5h-3z" /> <path fill="#000" fill-opacity=".2" d="M39 26h3v5h-3z" /> <path fill="#898989" d="M48 26h3v5h-3z" /> <path fill="#000" fill-opacity=".2" d="M48 26h3v5h-3z" /> <path fill="#898989" d="M57 26h3v5h-3z" /> <path fill="#000" fill-opacity=".4" d="M57 26h3v5h-3z" /> <path d="M16 51H2l14 5.5V51Z" fill="#7445B8" /> <path d="M16 51H2l14 5.5V51Z" fill="#000" fill-opacity=".2" /> <path d="M16 64.206V88h14V69.794l-14-5.588Z" fill="#7445B8" /> <path d="M16 64.206V88h14V69.794l-14-5.588Z" fill="#000" fill-opacity=".2" /> <path d="M51 26h-3v2l3 1v-3Z" fill="#898989" /> <path d="M51 26h-3v2l3 1v-3Z" fill="#000" fill-opacity=".4" /> <path d="M82 48v-8h4v3h3v-3h4v3h3v-3h4v8l-2 3H84l-2-3Z" fill="#7445B8" /> <path d="M82 48v-8h4v3h3v-3h4v3h3v-3h4v8l-2 3H84l-2-3Z" fill="#fff" fill-opacity=".2" /> <path d="m84 51-2-3h18l-2 3H84ZM98 51H84l14 5.5V51Z" fill="#7445B8" /> <path d="M98 51H84l14 5.5V51Z" fill="#000" fill-opacity=".2" /> <path fill="#898989" d="M39 37h4v3h-4z" /> <path fill="#fff" fill-opacity=".6" d="M39 37h4v3h-4z" /> <path fill="#898989" d="M44 44h5v2h-5z" /> <path fill="#fff" fill-opacity=".6" d="M44 44h5v2h-5z" /> <path fill="#898989" d="M50 34h3v2h-3z" /> <path fill="#fff" fill-opacity=".6" d="M50 34h3v2h-3z" /> <path fill="#898989" d="M58 40h4v2h-4z" /> <path fill="#fff" fill-opacity=".6" d="M58 40h4v2h-4z" /> <path fill="#7445B8" d="M30 65h4v3h-4z" /> <path fill="#fff" fill-opacity=".4" d="M30 65h4v3h-4z" /> <path fill="#7445B8" d="M37 72h3v2h-3z" /> <path fill="#fff" fill-opacity=".4" d="M37 72h3v2h-3z" /> <path fill="#7445B8" d="M63 90h3v2h-3z" /> <path fill="#fff" fill-opacity=".4" d="M63 90h3v2h-3z" /> <path fill="#7445B8" d="M42 63h4v2h-4z" /> <path fill="#fff" fill-opacity=".4" d="M42 63h4v2h-4z" /> <path fill="#7445B8" d="M64 80h4v3h-4z" /> <path fill="#fff" fill-opacity=".4" d="M64 80h4v3h-4z" /> <path fill="#7445B8" d="M60 75h3v2h-3z" /> <path fill="#fff" fill-opacity=".4" d="M60 75h3v2h-3z" /> <path fill="#7445B8" d="M33 82h4v4h-4z" /> <path fill="#fff" fill-opacity=".4" d="M33 82h4v4h-4z" /> <path fill="#7445B8" d="M64 67h4v2h-4z" /> <path fill="#fff" fill-opacity=".4" d="M64 67h4v2h-4z" /> <path fill="#7445B8" d="M90 67h4v2h-4z" /> <path fill="#fff" fill-opacity=".2" d="M90 67h4v2h-4z" /> <path d="M11.143 33c-.857 0-1.714-.667-2.143-1v2c.429.333 1.286 1 2.143 1 .857 0 1.286-1 2.571-1 1.286 0 1.715 1 2.572 1 .685 0 1.428-.667 1.714-1l-.429-.5L18 32c-.286.333-.857 1-1.714 1S15 32 13.714 32c-1.285 0-1.714 1-2.571 1Z" fill="#FAA21E" /> <path d="M11.059 33c-.824 0-1.647-.667-2.059-1v2c.412.333 1.235 1 2.059 1v-2ZM16 33c-.823 0-1.235-1-2.47-1h-.014l.013 2c1.236 0 1.648 1 2.471 1v-2Z" fill="#C57A09" /> <path d="M93.143 33c-.857 0-1.714-.667-2.143-1v2c.429.333 1.286 1 2.143 1 .857 0 1.286-1 2.571-1 1.286 0 1.715 1 2.572 1 .685 0 1.428-.667 1.714-1l-.429-.5L100 32c-.286.333-.857 1-1.714 1S97 32 95.714 32c-1.285 0-1.714 1-2.571 1Z" fill="#FAA21E" /> <path d="M93.059 33c-.824 0-1.647-.667-2.059-1v2c.412.333 1.235 1 2.059 1v-2ZM98 33c-.823 0-1.235-1-2.47-1h-.014l.013 2c1.236 0 1.648 1 2.471 1v-2Z" fill="#C57A09" /> <path d="M9 40v-8" stroke="#898989" /> <path d="M9 40v-8" stroke="#fff" stroke-opacity=".6" /> <path d="M53 5c-1 0-2-.667-2.5-1v2c.5.333 1.5 1 2.5 1s1.5-1 3-1 2 1 3 1c.8 0 1.667-.667 2-1l-.5-.5L61 4c-.333.333-1 1-2 1s-1.5-1-3-1-2 1-3 1Z" fill="#FAA21E" /> <path d="M53 5c-1 0-2-.667-2.5-1v2c.5.333 1.5 1 2.5 1V5ZM59 5c-1 0-1.5-1-3-1h-.016L56 6c1.5 0 2 1 3 1V5Z" fill="#C57A09" /> <path d="M91 40v-8" stroke="#898989" /> <path d="M91 40v-8" stroke="#fff" stroke-opacity=".6" /> <path fill="#7445B8" d="M85 53h3v3h-3z" /> <path fill="#fff" fill-opacity=".2" d="M85 53h3v3h-3z" /> <path fill="#7445B8" d="M93 73h3v2h-3z" /> <path fill="#fff" fill-opacity=".2" d="M93 73h3v2h-3z" /> <path fill="#7445B8" d="M88 85h4v3h-4z" /> </symbol> <symbol fill="none" viewBox="0 0 100 100" id="pirate_cove" xmlns="http://www.w3.org/2000/svg"> <path d="M100 76c0 11.874-22.386 21.5-50 21.5S0 87.874 0 76c0-5.878 9-20.5 9-20.5h41c13.627 0 40 1 40 1s10 13.486 10 19.5Z" fill="#FAA21E" /> <path d="M100 76c0 11.874-22.386 21.5-50 21.5S0 87.874 0 76c0-5.878 9-20.5 9-20.5h41c13.627 0 40 1 40 1s10 13.486 10 19.5Z" fill="#fff" fill-opacity=".4" /> <path d="M4.5 32.5 1.5 70c10-8.5 26.412-14 49.912-14 22 0 37.5 7 47 14.5l-2.913-38-2.5 1v4L90.5 39v-4L88 36v4l-3 .5v-4l-2.5.5v4.5L80 42v-4l-2.5.5v4l-3 .5v-4l-23.087-1.5-22.912 2V43l-3-.5V39l-3-.5V42l-2.5-.5V38l-3-.5V41l-3.088-1v-4L11 35v4l-3.5-1.5v-4l-3-1Z" fill="#898989" /> <path d="M0 75.803C0 89.721 22.353 92.5 49.927 92.5c25.167 0 49.5-3.697 50-16-.5 1.318-1.222 3.5-3.5 3.5-2.996 0-4.062-7.428-7.557-7.428-2.496 0-3.495 4.11-7.49 4.11-5.491 0-9.47-9.182-20.453-9.182-9.992 0-18.512 15-26.5 15-7.988 0-10.462-6.35-13.458-6.35-1.997 0-1.997 3.168-5.492 3.168S8.987 68.54 5.991 68.54C3.595 68.54 1 73.167 0 75.803Z" fill="#1D8CE0" /> <path d="M0 75.803C0 89.721 22.353 92.5 49.927 92.5c25.167 0 49.5-3.697 50-16-.5 1.318-1.222 3.5-3.5 3.5-2.996 0-4.062-7.428-7.557-7.428-2.496 0-3.495 4.11-7.49 4.11-5.491 0-9.47-9.182-20.453-9.182-9.992 0-18.512 15-26.5 15-7.988 0-10.462-6.35-13.458-6.35-1.997 0-1.997 3.168-5.492 3.168S8.987 68.54 5.991 68.54C3.595 68.54 1 73.167 0 75.803Z" fill="#fff" fill-opacity=".95" /> <path d="M0 76.177C0 87.953 22.386 97.5 50 97.5c25.204 0 45.98-7.957 49.427-18.3-.403.839-1.575 1.8-3 1.8-2.574 0-4.5-5.5-7.5-5.5s-2.725 2.382-7.427 2.382c-7.018 0-9.573-5.882-20.573-5.882-10.007 0-18 12-26 12s-9.073-5-14-5c-2.514 0-2.768 1.441-5.427 1.441C12 80.441 8.427 72 5.427 72 3.027 72 1 75.04 0 76.177Z" fill="#1D8CE0" /> <path d="M0 76.177C0 87.953 22.386 97.5 50 97.5c25.204 0 45.98-7.957 49.427-18.3-.403.839-1.575 1.8-3 1.8-2.574 0-4.5-5.5-7.5-5.5s-2.725 2.382-7.427 2.382c-7.018 0-9.573-5.882-20.573-5.882-10.007 0-18 12-26 12s-9.073-5-14-5c-2.514 0-2.768 1.441-5.427 1.441C12 80.441 8.427 72 5.427 72 3.027 72 1 75.04 0 76.177Z" fill="#000" fill-opacity=".4" /> <path d="m81.23 71 2.183 9.178-3.637 1.004-3.636-1.004 1.454-6.118L81.231 71Z" fill="#898989" /> <path d="m81.23 71 2.183 9.178-3.637 1.004-3.636-1.004 1.454-6.118L81.231 71Z" fill="#fff" fill-opacity=".4" /> <path d="m70.322 63.238 1.454 4.079-2.73 1.138-1.633-1.138.727-3.06 2.182-1.02Z" fill="#898989" /> <path d="m70.322 63.238 1.454 4.079-2.73 1.138-1.633-1.138.727-3.06 2.182-1.02Z" fill="#fff" fill-opacity=".4" /> <path d="M77.058 74.06 81.23 71l-3.636 6.546 2.182 3.636-4.096-1.004 1.378-6.118Z" fill="#898989" /> <path d="M77.058 74.06 81.23 71l-3.636 6.546 2.182 3.636-4.096-1.004 1.378-6.118Z" fill="#fff" fill-opacity=".2" /> <path d="m68.101 64.257 2.067-1.02-1.208 2.22v2.998l-1.548-1.138.69-3.06Z" fill="#898989" /> <path d="m68.101 64.257 2.067-1.02-1.208 2.22v2.998l-1.548-1.138.69-3.06Z" fill="#fff" fill-opacity=".2" /> <path d="M50.385 56.224c-3.746 0-9.171 2.146-10.537 2.927L36.92 43.344h26.343l-.5 15.807c-1.756-.586-8.632-2.927-12.379-2.927Z" fill="#898989" /> <path d="M50.385 56.224c-3.746 0-9.171 2.146-10.537 2.927L36.92 43.344h26.343l-.5 15.807c-1.756-.586-8.632-2.927-12.379-2.927Z" fill="#000" fill-opacity=".6" /> <path d="m39.262 61.546 1.756-2.98-1.756-12.454 2.927 6.014 1.757-4.098 2.341 2.342 1.756-3.513 2.927 3.513 2.342-4.098 1.756 3.512 3.513-2.342 1.17 5.27 2.928-6.6-1.757 12.453 3.013 1.171 2.927-1.17 3.513-15.807 7.525-7.823v-14.37l-6.524-7.45-5.201-6.653L47.29 3.536l-15.054 7.025-5.87 8.196-2.927 13.465 8.797 10.697L33.5 57.5l5.762 4.046Z" fill="#898989" /> <path d="m39.262 61.546 1.756-2.98-1.756-12.454 2.927 6.014 1.757-4.098 2.341 2.342 1.756-3.513 2.927 3.513 2.342-4.098 1.756 3.512 3.513-2.342 1.17 5.27 2.928-6.6-1.757 12.453 3.013 1.171 2.927-1.17 3.513-15.807 7.525-7.823v-14.37l-6.524-7.45-5.201-6.653L47.29 3.536l-15.054 7.025-5.87 8.196-2.927 13.465 8.797 10.697L33.5 57.5l5.762 4.046Z" fill="#fff" fill-opacity=".4" /> <path d="m32.22 43.345 2.928-5.27 4.098 8.197-7.025-2.927Z" fill="#898989" /> <path d="m32.22 43.345 2.928-5.27 4.098 8.197-7.025-2.927Z" fill="#fff" fill-opacity=".2" /> <path d="m67.346 44.515 2.927-7.61H61.49l5.855 7.61Z" fill="#898989" /> <path d="m67.346 44.515 2.927-7.61H61.49l5.855 7.61Z" fill="#fff" fill-opacity=".2" /> <path d="m70.375 42.76-2.927 1.755-.586 14.05 3.513-15.806Z" fill="#898989" /> <path d="m70.375 42.76-2.927 1.755-.586 14.05 3.513-15.806Z" fill="#000" fill-opacity=".2" /> <path d="m49.784 19.928-.586 4.098 2.927.586 6.44-3.513-1.171-2.927-3.512-1.756-4.098 3.512Z" fill="#898989" /> <path d="m49.784 19.928-.586 4.098 2.927.586 6.44-3.513-1.171-2.927-3.512-1.756-4.098 3.512Z" fill="#fff" fill-opacity=".2" /> <path d="m39.246 46.272 3.512-1.757 1.171 3.513 1.756-3.513 2.342 2.342 2.927-2.342 2.342 1.757 3.512-2.928 1.757 4.098v-2.341l4.097 1.17-2.927 6.44-1.17-5.269-3.513 2.342-1.756-3.512-2.342 4.097-2.927-3.512-1.756 3.512-2.342-2.341-1.756 4.098-2.927-5.854Z" fill="#FEFEFE" /> <path d="m53.881 32.807-1.756-2.342v-5.854l5.854-3.512 2.342 4.098-6.44 7.61ZM39.831 12.903l-7.61-2.341 15.22-7.025-7.61 9.366Z" fill="#898989" /> <path d="m39.831 12.903-7.61-2.341 15.22-7.025-7.61 9.366Z" fill="#fff" fill-opacity=".95" /> <path d="m47.442 3.537-7.61 9.366 7.61-.585 7.025-2.927 4.098 1.17h4.097l2.928-1.17.585-2.927-18.733-2.928Z" fill="#898989" /> <path d="m47.442 3.537-7.61 9.366 7.61-.585 7.025-2.927 4.098 1.17h4.097l2.928-1.17.585-2.927-18.733-2.928Z" fill="#fff" fill-opacity=".95" /> <path d="m47.442 3.537-7.61 9.366 7.61-.585 7.025-2.927-7.025-5.854Z" fill="#898989" /> <path d="m47.442 3.537-7.61 9.366 7.61-.585 7.025-2.927-7.025-5.854Z" fill="#fff" fill-opacity=".8" /> <path d="m41.018 27.539-7.025-2.342-1.756 4.683 2.927 8.196 7.61-1.17 4.684-2.928-6.44-6.44Z" fill="#546DDB" /> <path d="m41.018 27.539-7.025-2.342-1.756 4.683 2.927 8.196 7.61-1.17 4.684-2.928-6.44-6.44Z" fill="#000" fill-opacity=".8" /> <path d="m65.02 27.539-8.781 6.44 5.269 2.926h8.781l1.756-7.025-1.756-4.683-5.269 2.342Z" fill="#546DDB" /> <path d="m65.02 27.539-8.781 6.44 5.269 2.926h8.781l1.756-7.025-1.756-4.683-5.269 2.342Z" fill="#000" fill-opacity=".8" /> <path d="m49.214 43.345 2.927-4.684 2.927 5.27-2.927-1.172-2.927.586Z" fill="#546DDB" /> <path d="m49.214 43.345 2.927-4.684 2.927 5.27-2.927-1.172-2.927.586Z" fill="#000" fill-opacity=".8" /> <path d="m39.831 12.903-7.61-2.341 3.512 9.366 4.098-7.025Z" fill="#898989" /> <path d="m39.831 12.903-7.61-2.341 3.512 9.366 4.098-7.025Z" fill="#fff" fill-opacity=".8" /> <path d="m53.881 32.807 2.342 1.171 8.781-6.44-4.683-2.341-6.44 7.61Z" fill="#898989" /> <path d="m53.881 32.807 2.342 1.171 8.781-6.44-4.683-2.341-6.44 7.61Z" fill="#fff" fill-opacity=".6" /> <path d="m49.784 33.392-.586 9.953 2.927-4.684v-8.196l-2.341 2.927Z" fill="#898989" /> <path d="m49.784 33.392-.586 9.953 2.927-4.684v-8.196l-2.341 2.927Z" fill="#fff" fill-opacity=".8" /> <path d="m53.881 32.807 1.171 11.123-2.927-5.269v-8.196l1.756 2.342Z" fill="#898989" /> <path d="m53.881 32.807 1.171 11.123-2.927-5.269v-8.196l1.756 2.342Z" fill="#fff" fill-opacity=".6" /> <path d="m32.22 21.684 1.757 3.513 7.025 2.342 3.512-2.342-8.78-5.269-3.513 1.756Z" fill="#898989" /> <path d="m32.22 21.684 1.757 3.513 7.025 2.342 3.512-2.342-8.78-5.269-3.513 1.756Z" fill="#fff" fill-opacity=".8" /> <path d="m44.514 25.197-3.512 2.342 6.44 6.44 2.34-.586-5.268-8.196Z" fill="#898989" /> <path d="m44.514 25.197-3.512 2.342 6.44 6.44 2.34-.586-5.268-8.196Z" fill="#fff" fill-opacity=".6" /> <path d="m39.831 12.903-4.098 7.025 8.782 5.269 4.097-1.171.586-4.683-1.756-7.025-7.61.585Z" fill="#898989" /> <path d="m39.831 12.903-4.098 7.025 8.782 5.269 4.097-1.171.586-4.683-1.756-7.025-7.61.585Z" fill="#fff" fill-opacity=".6" /> <path d="m62.077 14.074-7.61 1.756 7.025 2.927.585-4.683Z" fill="#898989" /> <path d="m62.077 14.074-7.61 1.756 7.025 2.927.585-4.683Z" fill="#fff" fill-opacity=".8" /> <path d="m57.979 21.099-.585-2.927h4.098l8.78 7.025-5.268 2.341-4.683-2.341-2.342-4.098Z" fill="#898989" /> <path d="m57.979 21.099-.585-2.927h4.098l8.78 7.025-5.268 2.341-4.683-2.341-2.342-4.098Z" fill="#fff" fill-opacity=".8" /> <path d="m63.248 10.562-1.171 3.512h5.854L65.589 9.39l-2.341 1.17Z" fill="#898989" /> <path d="m63.248 10.562-1.171 3.512h5.854L65.589 9.39l-2.341 1.17Z" fill="#fff" fill-opacity=".6" /> <path d="m70.273 25.196-1.171-8.195.585-1.757-1.756-1.17-2.342-4.684L66.76 7.05l11.123 13.464-7.61 4.683Z" fill="#898989" /> <path d="m72.029 29.88-1.757-4.683 7.61-4.684v14.635L72.03 29.88Z" fill="#898989" /> <path d="m72.029 29.88-1.757-4.683 7.61-4.684v14.635L72.03 29.88Z" fill="#000" fill-opacity=".2" /> <path d="m32.22 29.88-8.78 2.342 3.512-12.88 7.025 5.855-1.756 4.683Z" fill="#898989" /> <path d="m32.22 29.88-8.78 2.342 3.512-12.88 7.025 5.855-1.756 4.683Z" fill="#fff" fill-opacity=".6" /> <path d="M39.246 46.271v15.221l1.756-2.927-1.756-12.294ZM60.906 58.565l1.756-12.294 1.273 13.465-3.029-1.17Z" fill="#898989" /> <path d="m42.758 36.905-7.61 1.17 4.098 8.197 3.512-1.757v-7.61Z" fill="#898989" /> <path d="m42.758 36.905-7.61 1.17 4.098 8.197 3.512-1.757v-7.61Z" fill="#fff" fill-opacity=".6" /> <path d="m58.565 45.1 2.927-8.195 5.854 7.61-4.684 1.757-4.097-1.171Z" fill="#898989" /> <path d="m58.565 45.1 2.927-8.195 5.854 7.61-4.684 1.757-4.097-1.171Z" fill="#fff" fill-opacity=".6" /> <path d="M20.506 65.164c-1.047.274-2.308.033-2.36-.697-.053-.73-.267-1.186.802-1.858 1.068-.671 2.337-.575 2.834.215.496.79.247 1.942-1.276 2.34Z" fill="#898989" /> <path d="m14.5 19 4.913 46.5" stroke="#FAA21E" /> <path d="m14.5 19 4.913 46.5" stroke="#000" stroke-opacity=".4" /> <path d="M14.404 24.592c-1.345-3.164-.34-5.298-.34-5.298 4.213 1.433 5.543-.34 9.533-.784 3.99-.443 5.798 3.075 11.562-.029-4.42 8.103-7.06 5.075-11.05 7.735-3.99 3.104-3.684 4.052-9.364 3.675 0 0 1.005-2.134-.34-5.299Z" fill="#D0333D" /> <path d="M14.404 24.592c-1.345-3.164-.34-5.298-.34-5.298 4.213 1.433 5.543-.34 9.533-.784 3.99-.443 5.798 3.075 11.562-.029-4.42 8.103-7.06 5.075-11.05 7.735-3.99 3.104-3.684 4.052-9.364 3.675 0 0 1.005-2.134-.34-5.299Z" fill="#000" fill-opacity=".2" /> <path d="m23.5 20.5-5 6M17 22l8 2.5" stroke="#000" /> <path d="M17.79 66.013c-.784.173-1.754-.075-1.826-.664-.072-.589-.255-.964.53-1.457.783-.492 1.753-.36 2.166.297.412.656.273 1.57-.87 1.824Z" fill="#898989" /> <path d="M17.79 66.013c-.784.173-1.754-.075-1.826-.664-.072-.589-.255-.964.53-1.457.783-.492 1.753-.36 2.166.297.412.656.273 1.57-.87 1.824Z" fill="#fff" fill-opacity=".2" /> <path d="M26.223 66.127c-.398-.15-.745-.494-.59-.715.155-.222.194-.4.693-.359.5.04.882.345.855.68-.027.336-.377.612-.958.394Z" fill="#898989" /> <path d="M26.223 66.127c-.398-.15-.745-.494-.59-.715.155-.222.194-.4.693-.359.5.04.882.345.855.68-.027.336-.377.612-.958.394Z" fill="#fff" fill-opacity=".4" /> <path d="M24.064 69.046c-.43.048-.925-.13-.918-.438.006-.307-.062-.51.392-.723.453-.212.957-.093 1.126.267.17.36.025.823-.6.894Z" fill="#898989" /> <path d="M24.064 69.046c-.43.048-.925-.13-.918-.438.006-.307-.062-.51.392-.723.453-.212.957-.093 1.126.267.17.36.025.823-.6.894Z" fill="#fff" fill-opacity=".4" /> <path d="M18.501 64.823c-.127 1.076.198 2.417 2.069 2.16 1.16-.16 3.028-.214 3.156-1.29.127-1.075-1.088-2.103-2.715-2.295-1.627-.193-2.383.35-2.51 1.425Z" fill="#898989" /> <path d="M18.501 64.823c-.127 1.076.198 2.417 2.069 2.16 1.16-.16 3.028-.214 3.156-1.29.127-1.075-1.088-2.103-2.715-2.295-1.627-.193-2.383.35-2.51 1.425Z" fill="#fff" fill-opacity=".4" /> <path d="M74.912 54v-4l3.5-1v4l-3.5 1Z" fill="#898989" /> <path d="M74.912 54v-4l3.5-1v4l-3.5 1Z" fill="#fff" fill-opacity=".2" /> <path d="m93.912 54-3 1v4H94.5l-.587-5Z" fill="#898989" /> <path d="m93.912 54-3 1v4H94.5l-.587-5Z" fill="#fff" fill-opacity=".2" /> <path d="M29 48v3.5h2.5V49L29 48Z" fill="#898989" /> <path d="M29 48v3.5h2.5V49L29 48Z" fill="#fff" fill-opacity=".2" /> <path d="m85 45-.5 3H87v-3.5l-2 .5Z" fill="#898989" /> <path d="m85 45-.5 3H87v-3.5l-2 .5Z" fill="#fff" fill-opacity=".2" /> <path d="M9 51v5h3.5l-.5-4-3-1Z" fill="#898989" /> <path d="M9 51v5h3.5l-.5-4-3-1Z" fill="#fff" fill-opacity=".2" /> </symbol> </svg>'; const parser = new DOMParser(); const actionSVG = parser.parseFromString(actionSVGText, 'application/xml'); const monsterSVG = "/static/media/combat_monsters_sprite.395438a8.svg"; //parser.parseFromString(GM_getResourceText("monsterSVG"), 'application/xml'); const taskBattleIndex = 99; //Battle at bottom const taskOrderIndex = { Milking: 1, Foraging: 2, Woodcutting: 3, Cheesesmithing: 4, Crafting: 5, Tailoring: 6, Cooking: 7, Brewing: 8, Alchemy: 9, Enhancing: 10, Defeat: taskBattleIndex, //Battle at bottom }; const taskOrderIndex_CN = { 挤奶: 1, 采摘: 2, 伐木: 3, 奶酪锻造: 4, 制作: 5, 缝纫: 6, 烹饪: 7, 冲泡: 8, 炼金: 9, 强化: 10, 击败: taskBattleIndex, //Battle at bottom }; const allMonster = { "/monsters/abyssal_imp": { "en": "Abyssal Imp", "cn": "深渊小鬼", "zone": "/actions/combat/infernal_abyss", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/pirate_cove" ], "sortIndex": 11 }, "/monsters/acrobat": { "en": "Acrobat", "cn": "杂技师", "zone": "", "dungeon": [ "/actions/combat/sinister_circus" ], "sortIndex": -1 }, "/monsters/alligator": { "en": "Sherlock", "cn": "夏洛克", "zone": "/actions/combat/swamp_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 2 }, "/monsters/anchor_shark": { "en": "Anchor Shark", "cn": "持锚鲨", "zone": "", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": -1 }, "/monsters/aquahorse": { "en": "Aquahorse", "cn": "水马", "zone": "/actions/combat/aqua_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 3 }, "/monsters/black_bear": { "en": "Black Bear", "cn": "黑熊", "zone": "/actions/combat/bear_with_it", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 8 }, "/monsters/brine_marksman": { "en": "Brine Marksman", "cn": "海盐射手", "zone": "", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": -1 }, "/monsters/butterjerry": { "en": "Butterjerry", "cn": "蝶鼠", "zone": "", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": -1 }, "/monsters/captain_fishhook": { "en": "Captain Cheesehook", "cn": "鱼钩船长", "zone": "", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": -1 }, "/monsters/centaur_archer": { "en": "Centaur Archer", "cn": "半人马弓箭手", "zone": "/actions/combat/jungle_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 4 }, "/monsters/chronofrost_sorcerer": { "en": "Chronofrost Sorcerer", "cn": "霜时巫师", "zone": "/actions/combat/sorcerers_tower", "dungeon": [], "sortIndex": 7 }, "/monsters/crab": { "en": "I Pinch", "cn": "螃蟹", "zone": "/actions/combat/aqua_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 3 }, "/monsters/crystal_colossus": { "en": "Crystal Colossus", "cn": "水晶巨像", "zone": "/actions/combat/golem_cave", "dungeon": [], "sortIndex": 9 }, "/monsters/demonic_overlord": { "en": "Demonic Overlord", "cn": "恶魔霸主", "zone": "/actions/combat/infernal_abyss", "dungeon": [], "sortIndex": 11 }, "/monsters/deranged_jester": { "en": "Deranged Jester", "cn": "小丑皇", "zone": "", "dungeon": [ "/actions/combat/sinister_circus" ], "sortIndex": -1 }, "/monsters/dodocamel": { "en": "Dodocamel", "cn": "渡渡驼", "zone": "", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": -1 }, "/monsters/dusk_revenant": { "en": "Dusk Revenant", "cn": "黄昏亡灵", "zone": "/actions/combat/twilight_zone", "dungeon": [], "sortIndex": 10 }, "/monsters/elementalist": { "en": "Elementalist", "cn": "元素法师", "zone": "/actions/combat/sorcerers_tower", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 7 }, "/monsters/enchanted_bishop": { "en": "Enchanted Bishop", "cn": "秘法之相", "zone": "", "dungeon": [ "/actions/combat/enchanted_fortress" ], "sortIndex": -1 }, "/monsters/enchanted_king": { "en": "Enchanted King", "cn": "秘法之王", "zone": "", "dungeon": [ "/actions/combat/enchanted_fortress" ], "sortIndex": -1 }, "/monsters/enchanted_knight": { "en": "Enchanted Knight", "cn": "秘法骑士", "zone": "", "dungeon": [ "/actions/combat/enchanted_fortress" ], "sortIndex": -1 }, "/monsters/enchanted_pawn": { "en": "Enchanted Pawn", "cn": "秘法之兵", "zone": "", "dungeon": [ "/actions/combat/enchanted_fortress" ], "sortIndex": -1 }, "/monsters/enchanted_queen": { "en": "Enchanted Queen", "cn": "秘法之后", "zone": "", "dungeon": [ "/actions/combat/enchanted_fortress" ], "sortIndex": -1 }, "/monsters/enchanted_rook": { "en": "Enchanted Rook", "cn": "秘法堡垒", "zone": "", "dungeon": [ "/actions/combat/enchanted_fortress" ], "sortIndex": -1 }, "/monsters/eye": { "en": "Eye", "cn": "独眼", "zone": "/actions/combat/planet_of_the_eyes", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/pirate_cove" ], "sortIndex": 6 }, "/monsters/eyes": { "en": "Eyes", "cn": "叠眼", "zone": "/actions/combat/planet_of_the_eyes", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/pirate_cove" ], "sortIndex": 6 }, "/monsters/flame_sorcerer": { "en": "Flame Sorcerer", "cn": "火焰巫师", "zone": "/actions/combat/sorcerers_tower", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 7 }, "/monsters/fly": { "en": "Fly", "cn": "苍蝇", "zone": "/actions/combat/smelly_planet", "dungeon": [], "sortIndex": 1 }, "/monsters/frog": { "en": "Frogger", "cn": "青蛙", "zone": "/actions/combat/swamp_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 2 }, "/monsters/giant_shoebill": { "en": "Giant Shoebill", "cn": "鲸头鹳", "zone": "/actions/combat/swamp_planet", "dungeon": [], "sortIndex": 2 }, "/monsters/gobo_boomy": { "en": "Boomy", "cn": "轰轰", "zone": "/actions/combat/gobo_planet", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/sinister_circus" ], "sortIndex": 5 }, "/monsters/gobo_chieftain": { "en": "Gobo Chieftain", "cn": "哥布林酋长", "zone": "/actions/combat/gobo_planet", "dungeon": [], "sortIndex": 5 }, "/monsters/gobo_shooty": { "en": "Shooty", "cn": "咻咻", "zone": "/actions/combat/gobo_planet", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/sinister_circus" ], "sortIndex": 5 }, "/monsters/gobo_slashy": { "en": "Slashy", "cn": "砍砍", "zone": "/actions/combat/gobo_planet", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/sinister_circus" ], "sortIndex": 5 }, "/monsters/gobo_smashy": { "en": "Smashy", "cn": "锤锤", "zone": "/actions/combat/gobo_planet", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/sinister_circus" ], "sortIndex": 5 }, "/monsters/gobo_stabby": { "en": "Stabby", "cn": "刺刺", "zone": "/actions/combat/gobo_planet", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/sinister_circus" ], "sortIndex": 5 }, "/monsters/granite_golem": { "en": "Granite Golem", "cn": "花岗魔像", "zone": "/actions/combat/golem_cave", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": 9 }, "/monsters/griffin": { "en": "Griffin", "cn": "狮鹫", "zone": "", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": -1 }, "/monsters/grizzly_bear": { "en": "Grizzly Bear", "cn": "棕熊", "zone": "/actions/combat/bear_with_it", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 8 }, "/monsters/gummy_bear": { "en": "Gummy Bear", "cn": "软糖熊", "zone": "/actions/combat/bear_with_it", "dungeon": [ "/actions/combat/sinister_circus" ], "sortIndex": 8 }, "/monsters/ice_sorcerer": { "en": "Ice Sorcerer", "cn": "冰霜巫师", "zone": "/actions/combat/sorcerers_tower", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 7 }, "/monsters/infernal_warlock": { "en": "Infernal Warlock", "cn": "地狱术士", "zone": "/actions/combat/infernal_abyss", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": 11 }, "/monsters/jackalope": { "en": "Jackalope", "cn": "鹿角兔", "zone": "", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": -1 }, "/monsters/juggler": { "en": "Juggler", "cn": "杂耍者", "zone": "", "dungeon": [ "/actions/combat/sinister_circus" ], "sortIndex": -1 }, "/monsters/jungle_sprite": { "en": "Jungle Sprite", "cn": "丛林精灵", "zone": "/actions/combat/jungle_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 4 }, "/monsters/luna_empress": { "en": "Luna Empress", "cn": "月神之蝶", "zone": "/actions/combat/jungle_planet", "dungeon": [], "sortIndex": 4 }, "/monsters/magician": { "en": "Magician", "cn": "魔术师", "zone": "", "dungeon": [ "/actions/combat/sinister_circus" ], "sortIndex": -1 }, "/monsters/magnetic_golem": { "en": "Magnetic Golem", "cn": "磁力魔像", "zone": "/actions/combat/golem_cave", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/pirate_cove" ], "sortIndex": 9 }, "/monsters/manticore": { "en": "Manticore", "cn": "狮蝎兽", "zone": "", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": -1 }, "/monsters/marine_huntress": { "en": "Marine Huntress", "cn": "海洋猎手", "zone": "/actions/combat/aqua_planet", "dungeon": [], "sortIndex": 3 }, "/monsters/myconid": { "en": "Myconid", "cn": "蘑菇人", "zone": "/actions/combat/jungle_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 4 }, "/monsters/nom_nom": { "en": "Nom Nom", "cn": "咬咬鱼", "zone": "/actions/combat/aqua_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 3 }, "/monsters/novice_sorcerer": { "en": "Novice Sorcerer", "cn": "新手巫师", "zone": "/actions/combat/sorcerers_tower", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 7 }, "/monsters/panda": { "en": "Panda", "cn": "熊猫", "zone": "/actions/combat/bear_with_it", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 8 }, "/monsters/polar_bear": { "en": "Polar Bear", "cn": "北极熊", "zone": "/actions/combat/bear_with_it", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/sinister_circus" ], "sortIndex": 8 }, "/monsters/porcupine": { "en": "Porcupine", "cn": "豪猪", "zone": "/actions/combat/smelly_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 1 }, "/monsters/rabid_rabbit": { "en": "Rabid Rabbit", "cn": "疯魔兔", "zone": "", "dungeon": [ "/actions/combat/sinister_circus" ], "sortIndex": -1 }, "/monsters/rat": { "en": "Jerry", "cn": "杰瑞", "zone": "/actions/combat/smelly_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 1 }, "/monsters/red_panda": { "en": "Red Panda", "cn": "小熊猫", "zone": "/actions/combat/bear_with_it", "dungeon": [], "sortIndex": 8 }, "/monsters/sea_snail": { "en": "Gary", "cn": "蜗牛", "zone": "/actions/combat/aqua_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 3 }, "/monsters/skunk": { "en": "Skunk", "cn": "臭鼬", "zone": "/actions/combat/smelly_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 1 }, "/monsters/slimy": { "en": "Slimy", "cn": "史莱姆", "zone": "/actions/combat/smelly_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 1 }, "/monsters/snake": { "en": "Thnake", "cn": "蛇", "zone": "/actions/combat/swamp_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 2 }, "/monsters/soul_hunter": { "en": "Soul Hunter", "cn": "灵魂猎手", "zone": "/actions/combat/infernal_abyss", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/pirate_cove" ], "sortIndex": 11 }, "/monsters/squawker": { "en": "Squawker", "cn": "鹦鹉", "zone": "", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": -1 }, "/monsters/stalactite_golem": { "en": "Stalactite Golem", "cn": "钟乳石魔像", "zone": "/actions/combat/golem_cave", "dungeon": [ "/actions/combat/enchanted_fortress", "/actions/combat/pirate_cove" ], "sortIndex": 9 }, "/monsters/swampy": { "en": "Swampy", "cn": "沼泽虫", "zone": "/actions/combat/swamp_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 2 }, "/monsters/the_kraken": { "en": "The Kraken", "cn": "克拉肯", "zone": "", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": -1 }, "/monsters/the_watcher": { "en": "The Watcher", "cn": "观察者", "zone": "/actions/combat/planet_of_the_eyes", "dungeon": [], "sortIndex": 6 }, "/monsters/tidal_conjuror": { "en": "Tidal Conjuror", "cn": "潮汐召唤师", "zone": "", "dungeon": [ "/actions/combat/pirate_cove" ], "sortIndex": -1 }, "/monsters/treant": { "en": "Treant", "cn": "树人", "zone": "/actions/combat/jungle_planet", "dungeon": [], "sortIndex": 4 }, "/monsters/turtle": { "en": "Turuto", "cn": "忍者龟", "zone": "/actions/combat/aqua_planet", "dungeon": [ "/actions/combat/chimerical_den" ], "sortIndex": 3 }, "/monsters/vampire": { "en": "Vampire", "cn": "吸血鬼", "zone": "/actions/combat/twilight_zone", "dungeon": [ "/actions/combat/pirate_cove", "/actions/combat/sinister_circus" ], "sortIndex": 10 }, "/monsters/veyes": { "en": "Veyes", "cn": "复眼", "zone": "/actions/combat/planet_of_the_eyes", "dungeon": [ "/actions/combat/chimerical_den", "/actions/combat/pirate_cove" ], "sortIndex": 6 }, "/monsters/werewolf": { "en": "Werewolf", "cn": "狼人", "zone": "/actions/combat/twilight_zone", "dungeon": [ "/actions/combat/pirate_cove", "/actions/combat/sinister_circus" ], "sortIndex": 10 }, "/monsters/zombie": { "en": "Zombie", "cn": "僵尸", "zone": "/actions/combat/twilight_zone", "dungeon": [ "/actions/combat/pirate_cove", "/actions/combat/sinister_circus" ], "sortIndex": 10 }, "/monsters/zombie_bear": { "en": "Zombie Bear", "cn": "僵尸熊", "zone": "", "dungeon": [ "/actions/combat/sinister_circus" ], "sortIndex": -1 } }; function getTaskDetailFromTaskName(fullTaskName) { var taskType = -1; var taskName = ""; if (/^(.+) - (.+)$/.test(fullTaskName)) { let res = /^(.+) - (.+)$/.exec(fullTaskName); if (res[1] in taskOrderIndex) { taskType = taskOrderIndex[res[1]]; } else if (res[1] in taskOrderIndex_CN) { taskType = taskOrderIndex_CN[res[1]]; } taskName = res[2]; } if (taskType == -1) console.log("Task Parse error", fullTaskName); return { taskType, taskName }; } function getHridFromMonsterName(name) { for (let key in allMonster) { if (allMonster[key].en === name || allMonster[key].cn === name) { return key; } } console.log("Monster not found", name); return null; } function getMapIndexFromMonsterName(name) { const key = getHridFromMonsterName(name); if (!key) { return -1; } return allMonster[key].sortIndex; } function getTaskDetailFromElement(ele) { const div = ele.querySelector("div.RandomTask_name__1hl1b"); const translatedfrom = div.getAttribute("script_translatedfrom"); //adapt old zhCN Script if (translatedfrom) { return getTaskDetailFromTaskName(translatedfrom); } const fullTaskName = Array.from(div.childNodes).find(node => node.nodeType === Node.TEXT_NODE).textContent.trim(); return getTaskDetailFromTaskName(fullTaskName); } function compareFn(a, b) { var { taskType: a_TypeIndex, taskName: a_taskName } = getTaskDetailFromElement(a); var { taskType: b_TypeIndex, taskName: b_TaskName } = getTaskDetailFromElement(b); if (a_TypeIndex === taskBattleIndex && b_TypeIndex === taskBattleIndex) { var a_MapIndex = getMapIndexFromMonsterName(a_taskName); var b_MapIndex = getMapIndexFromMonsterName(b_TaskName); if (a_MapIndex != b_MapIndex) { return (a_MapIndex > b_MapIndex ? 1 : -1); } } if (a_TypeIndex == b_TypeIndex) { return a_taskName == b_TaskName ? 0 : (a_taskName > b_TaskName ? 1 : -1); } return a_TypeIndex > b_TypeIndex ? 1 : -1; } function adaptSVG(svg, objSVG, target) { svg.setAttribute('target', target); if (typeof objSVG == 'string' && objSVG.endsWith(".svg")) { const use = document.createElementNS("http://www.w3.org/2000/svg", "use"); use.setAttribute("href", objSVG + '#' + target); svg.appendChild(use); } else { const targetSymbolElement = objSVG.querySelector(`symbol[id="${target}"]`); if (targetSymbolElement) { const children = targetSymbolElement.childNodes; for (let i = 0; i < children.length; i++) { svg.appendChild(children[i].cloneNode(true)); } svg.setAttribute('viewBox', targetSymbolElement.getAttribute('viewBox')); svg.setAttribute('fill', 'none'); } } } function addIconToTask(div) { var { taskType, taskName } = getTaskDetailFromElement(div); if (taskType != taskBattleIndex) { return; } const monsterHrid = getHridFromMonsterName(taskName); if (!monsterHrid) { return; } var offset = 5; // 5% from left and each 30% width const isShowDungeon = Object.values(globalConfig.dungeonConfig).filter(Boolean).length > 0; if (!isShowDungeon) { offset = 50; } const backgroundDiv = document.createElement('div'); backgroundDiv.id = "MonsterIcon"; backgroundDiv.style.position = 'absolute'; backgroundDiv.style.left = `${offset}%`; offset += 30; backgroundDiv.style.width = '30%'; backgroundDiv.style.height = '100%'; backgroundDiv.style.opacity = '0.3'; const monsterName = monsterHrid.split("/").pop(); const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("width", "100%"); svg.setAttribute("height", "100%"); adaptSVG(svg, monsterSVG, monsterName); backgroundDiv.appendChild(svg); div.appendChild(backgroundDiv); const dungeonMap = allMonster[monsterHrid]?.dungeon; if (isShowDungeon && dungeonMap) { Object.keys(globalConfig.dungeonConfig).filter(dungeon => globalConfig.dungeonConfig[dungeon]).forEach(dungeon => { if (dungeonMap.includes(dungeon)) { const dungeonDiv = document.createElement('div'); dungeonDiv.id = "DungeonIcon"; dungeonDiv.style.position = 'absolute'; dungeonDiv.style.left = `${offset}%`; offset += 30; dungeonDiv.style.width = '30%'; dungeonDiv.style.height = '100%'; dungeonDiv.style.opacity = '0.3'; const dungeonName = dungeon.split("/").pop(); const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("width", "100%"); svg.setAttribute("height", "100%"); adaptSVG(svg, actionSVG, dungeonName); dungeonDiv.appendChild(svg); div.appendChild(dungeonDiv); } }) } // fix button style div.style.position = 'relative'; div.querySelector(".RandomTask_content__VVQva").style.zIndex = 1; div.querySelectorAll(".Item_item__2De2O").forEach(node => node.style.backgroundColor = "transparent"); } function updateIconByConfig() { const battleIcon = document.querySelector("#BattleIcon"); if (battleIcon) { if (globalConfig.isBattleIcon) { battleIcon.style.opacity = '1'; battleIcon.querySelector("#taskCount").style.display = 'inline'; } else { battleIcon.style.opacity = '0.3'; battleIcon.querySelector("#taskCount").style.display = 'none'; } } Object.keys(globalConfig.dungeonConfig).forEach(dungeon => { const dungeonIcon = document.querySelector(`#${dungeon.split("/").pop()}`); if (dungeonIcon) { if (globalConfig.isBattleIcon && globalConfig.dungeonConfig[dungeon]) { dungeonIcon.style.opacity = '1'; dungeonIcon.querySelector("#taskCount").style.display = 'inline'; } else { dungeonIcon.style.opacity = '0.3'; dungeonIcon.querySelector("#taskCount").style.display = 'none'; } } }); } function createIcon(id, objSVG, target) { // battle icon const div = document.createElement("div"); div.id = id; div.style.height = "100%"; // 设置高度 const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("role", "img"); svg.setAttribute("aria-label", "Combat"); svg.setAttribute("class", "Icon_icon__2LtL_ Icon_xtiny__331pI Icon_inline__1Idwv"); svg.setAttribute("width", "100%"); svg.setAttribute("height", "100%"); svg.style.margin = "1px"; adaptSVG(svg, objSVG, target); const divCount = document.createElement("span"); divCount.id = "taskCount"; divCount.textContent = ""; div.appendChild(svg); div.appendChild(divCount); // div onclick change config div.addEventListener("click", function (evt) { if (id === "BattleIcon") { globalConfig.isBattleIcon = !globalConfig.isBattleIcon; } else { let configkey = Object.keys(globalConfig.dungeonConfig).find(key => key.split("/").pop() === id); globalConfig.dungeonConfig[configkey] = !globalConfig.dungeonConfig[configkey]; } saveConfig(); //auto save when click updateIconByConfig(); //clean all checkers to refresh statics document.querySelectorAll("#taskChekerInCoin").forEach(checker => checker.id = null); }); return div; } function addSortButtonAndStaticsBar(pannel) { const sortButton = document.createElement("button"); sortButton.setAttribute("class", "Button_button__1Fe9z Button_small__3fqC7"); sortButton.id = "TaskSort"; sortButton.innerHTML = "TaskSort"; sortButton.addEventListener("click", function (evt) { const list = document.querySelector("div.TasksPanel_taskList__2xh4k"); [...list.querySelectorAll("div.RandomTask_randomTask__3B9fA")] .sort(compareFn) .forEach(node => list.appendChild(node)); }); pannel.appendChild(sortButton); // add statics bar const battleIcon = createIcon("BattleIcon", "/static/media/misc_sprite.426c5d78.svg", "combat"); pannel.appendChild(battleIcon); // add all dungeon icon Object.keys(globalConfig.dungeonConfig).forEach(dungeon => { const dungeonIcon = createIcon(dungeon.split("/").pop(), actionSVG, dungeon.split("/").pop()); pannel.appendChild(dungeonIcon); }); } function optimizeForMobile(pannel) { if (/Mobi|Android/i.test(navigator.userAgent)) { const upgradeButton = pannel.querySelector("button.Button_button__1Fe9z.Button_small__3fqC7"); if (upgradeButton) { upgradeButton.style.display = "none"; console.log("hide upgrade button when mobile"); } } } function refresh() { const pannel = document.querySelector("div.TasksPanel_taskSlotCount__nfhgS"); if (pannel) { let sortButton = pannel.querySelector("#TaskSort"); if (!sortButton) { optimizeForMobile(pannel); addSortButtonAndStaticsBar(pannel); updateIconByConfig(); } } else { return; //not in task board } let needRefreshTaskStatics = false; const taskNodes = document.querySelectorAll("div.TasksPanel_taskList__2xh4k div.RandomTask_randomTask__3B9fA"); for (let node of taskNodes) { const coinDiv = node.querySelector(".Item_count__1HVvv"); if (coinDiv && !coinDiv.querySelector("#taskChekerInCoin")) { needRefreshTaskStatics = true; //remove old and add new icon const oldIcon = node.querySelector("#MonsterIcon"); if (oldIcon) { oldIcon.remove(); } const oldDungeonIcons = node.querySelectorAll("#DungeonIcon"); oldDungeonIcons.forEach(icon => icon.remove()); if (globalConfig.isBattleIcon) { addIconToTask(node); } //add checker const checker = document.createElement("div"); checker.id = "taskChekerInCoin"; coinDiv.appendChild(checker); } } if (needRefreshTaskStatics) { const battleIcon = document.querySelector("#BattleIcon #taskCount"); if (battleIcon) { const battleCount = [...document.querySelectorAll("div.RandomTask_randomTask__3B9fA")].filter(node => node.querySelector("#MonsterIcon")).length; battleIcon.textContent = battleCount > 0 ? `*${battleCount}` : ''; } Object.keys(globalConfig.dungeonConfig).forEach(dungeon => { const dungeonIcon = document.querySelector(`#${dungeon.split("/").pop()} #taskCount`); if (dungeonIcon) { const dungeonCount = [...document.querySelectorAll("div.RandomTask_randomTask__3B9fA")].filter(node => { const dungeonIcons = node.querySelectorAll("#DungeonIcon svg"); return Array.from(dungeonIcons).some(svg => svg.getAttribute("target").includes(dungeon.split("/").pop())); }).length; dungeonIcon.textContent = dungeonCount > 0 ? `*${dungeonCount}` : ''; } }); } } const config = { attributes: true, childList: true, subtree: true }; const observer = new MutationObserver(function (mutationsList, observer) { refresh(); }); observer.observe(document, config); })();