zeeSpecialTypes

Show if physical or virtual for all special types.

当前为 2019-05-08 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         zeeSpecialTypes
// @namespace    none
// @version      2019.05.07.2008ß
// @description  Show if physical or virtual for all special types.
// @author       technical13
// @supportURL   https://discord.me/TheShoeStore
// @match        https://www.munzee.com/specials*
// @match        https://www.munzee.com/map*
// @grant        none
// ==/UserScript==
// jshint esversion: 6

var isDebug = false;
var intVerbosity = 0;
const ver = '2019.05.07.2008ß';
const scriptName = 'zeeSpecialTypes v' + ver;

function log( intV, strConsole, strLog, ...arrArgs ) {
    if ( strConsole === undefined ) { strConsole = 'log'; }
    if ( strLog === undefined ) { strLog = '%o'; }
    if ( intVerbosity >= intV && ( strConsole === 'groupEnd' ) ) { console[ strConsole ](); }
    if ( intV === 0 || ( isDebug && intVerbosity >= intV ) ) { console[ strConsole ]( '[%i]: %s: ' + strLog, intV, scriptName, ...arrArgs ); }
}

const intParamsStart = ( document.URL.indexOf( '?' ) + 1 );
const strParams = document.URL.substr( intParamsStart );
const arrParamSets = strParams.split( '&' );
var objParams = {};
arrParamSets.forEach( function( strParam ) {
    let arrParam = strParam.split( '=' );
    let strParamName = ( arrParam[ 0 ].toLowerCase() || '' );
    if ( strParamName === 'verbosity' ) {
        isDebug = toBoolean( arrParam[ 1 ] );
        intVerbosity = ( arrParam[ 1 ] ? ( parseInt( arrParam[ 1 ] ) < 0 ? 0 : ( parseInt( arrParam[ 1 ] ) > 9 ? 9 : parseInt( arrParam[ 1 ] ) ) ) : 9 );
    } else if ( strParamName === 'debug' ) {
        isDebug = toBoolean( arrParam[ 1 ] );
        intVerbosity = 1;
    }
} );

log( 1, 'warn', 'Debug mode is on with verbosity level: %o', intVerbosity );
log( 1, 'groupCollapsed', 'Verbosity options: (click to expand)' );
log( 1, 'log', '1) Summary\n2) Parameters retrieved from URL\n3) Variables set to objParams\n4) Function returns\n9) ALL debugging info and this notice.' );
log( 1, 'groupEnd' );

function toBoolean( val ) {
    const arrTrue = [ undefined, null, '', true, 'true', 1, '1', 'on', 'yes' ];
    val = ( typeof( val ) === 'string' ? val.toLowerCase() : val );

    log( 4, 'log', 'toBoolean() is returning: %o', ( arrTrue.indexOf( val ) !== -1 ? true : false ) );
    return ( arrTrue.indexOf( val ) !== -1 ? true : false );
}

const objTypes = {
    0: 'physical',// munzee - greenie
    40: 'physical',// diamond
    52: 'physical',// mace
    53: 'physical',// longsword
    131: 'physical',// ruby
    140: 'physical',// battleaxe
    218: 'physical',// aquamarine
    242: 'physical',// topaz
    280: 'physical',// mystery
    290: 'virtual',// virtual_amethyst
    306: 'virtual',// crossbow
    535: 'virtual',// flatrob
    441: 'physical',// shamrock
    510: 'physical',// munzeemadnessreseller
    511: 'physical',// geostuffreseller
    512: 'physical',// geohobbiesreseller
    513: 'physical',// ddcardsreseller
    514: 'physical',// negsreseller
    515: 'physical',//geologgersreseller
    516: 'physical',// mmcocoabeachreseller
    532: 'physical',// firemystery
    550: 'physical',// rujareseller
    584: 'physical',// pinkdiamond
    651: 'physical',// icemystery
    681: 'virtual',// virtual_sapphire
    696: 'physical',// scgsreseller
    851: 'physical',// earthmystery
    998: 'physical',// hammer
    1015: 'virtual',// flatmatt
    1020: 'physical',// watermystery
    1057: 'physical',// treasurechest
    1086: 'virtual',// airmystery
    1248: 'virtual',// catapult
    1271: 'physical',// dogchinesezodiac
    1272: 'physical',// pigchinesezodiac
    1273: 'physical',// ratchinesezodiac
    1274: 'physical',// oxchinesezodiac
    1275: 'physical',// tigerchinesezodiac
    1276: 'physical',// rabbitchinesezodiac
    1277: 'physical',// dragonchinesezodiac
    1278: 'physical',// snakechinesezodiac
    1279: 'physical',// horsechinesezodiac
    1280: 'physical',// goatchinesezodiac
    1281: 'physical',// monkeychinesezodiac
    1282: 'physical',// roosterchinesezodiac
    1338: 'virtual',// flatlou
    1409: 'virtual',// virtual
    1410: 'virtual',// virtual_rainbow
    1411: 'virtual',// virtual_timberwolf
    1412: 'virtual',// virtual_silver
    1413: 'virtual',// virtual_gray
    1414: 'virtual',// virtual_black
    1415: 'utl',// virtual_color
    1416: 'utl',// virtual_color
    1417: 'virtual',// virtual_purple_mountains_majesty
    1418: 'virtual',// virtual_violet
    1419: 'virtual',// virtual_plum
    1420: 'virtual',// virtual_blue_violet
    1421: 'virtual',// virtual_blue
    1422: 'utl',// virtual_color
    1423: 'virtual',// virtual_cadet_blue
    1424: 'virtual',// virtual_periwinkle
    1425: 'virtual',// virtual_cornflower
    1426: 'virtual',// virtual_blue_green
    1427: 'virtual',// virtual_pacific_blue
    1428: 'virtual',// virtual_cerulean
    1429: 'virtual',// virtual_robin_egg_blue
    1430: 'virtual',// virtual_indigo
    1431: 'virtual',// virtual_turquoise_blue
    1432: 'virtual',// virtual_sea_green
    1433: 'virtual',// virtual_granny_smith_apple
    1434: 'virtual',// virtual_green
    1435: 'virtual',// virtual_forest_green
    1436: 'virtual',// virtual_asparagus
    1437: 'utl',// virtual_color
    1438: 'virtual',// virtual_yellow_green
    1439: 'virtual',// virtual_green_yellow
    1440: 'virtual',// virtual_spring_green
    1441: 'virtual',// virtual_gold
    1442: 'virtual',// virtual_yellow
    1443: 'virtual',// virtual_goldenrod
    1444: 'virtual',// virtual_dandelion
    1445: 'virtual',// virtual_orange
    1446: 'virtual',// virtual_burnt_orange
    1447: 'utl',// virtual_color
    1448: 'utl',// virtual_color
    1449: 'virtual',// virtual_pink
    1450: 'virtual',// virtual_carnation_pink
    1451: 'virtual',// virtual_mauvelous
    1452: 'utl',// virtual_color
    1453: 'utl',// virtual_color
    1454: 'virtual',// virtual_magenta
    1455: 'virtual',// virtual_wild_strawberry
    1456: 'virtual',// virtual_violet_red
    1457: 'virtual',// virtual_red_violet
    1458: 'virtual',// virtual_apricot
    1459: 'virtual',// virtual_peach
    1460: 'virtual',// virtual_macaroni_and_cheese
    1461: 'virtual',// virtual_tan
    1462: 'utl',// virtual_color
    1463: 'virtual',// virtual_bittersweet
    1464: 'virtual',// virtual_red_orange
    1465: 'virtual',// virtual_scarlet
    1466: 'virtual',// virtual_red
    1467: 'virtual',// virtual_brick_red
    1468: 'virtual',// virtual_mahogany
    1469: 'virtual',// virtual_chestnut
    1470: 'utl',// virtual_color
    1471: 'virtual',// virtual_raw_sienna
    1472: 'utl',// virtual_color
    1473: 'virtual',// virtual_brown
    1581: 'virtual'// flathammock
};
const arrUndefinedTypes = [
    'banshee',// Banshee
    'limebutterfly', 'monarchbutterfly', 'morphobutterfly',// Butterly
    'cyclops', 'ogre',// Cyclops
    'cherub',// Cherub
    'chinesedragon', 'wyverndragon',// Dragon
    'fairy', 'dryadfairy', 'wildfirefairy', 'fairygodmother',// Fairy
    //    'beachflatrob', 'coldflatrob', 'tuxflatrob',// haven't found the icon variants on the website yet.// Flat Rob
    'hadavale',// Hadaval
    'chimera',// Hydra
    'dwarfleprechaun', 'goblinleprechaun',// Leprechaun
    'melusinemermaid',// Mermaid
    'firepegasus',// Pegasus
    'pimedus'// Pimedus
];

( function() {
    'use strict';

    setTimeout( () => {
        for ( var ndxMarker in mapMarkers ) {
            var intBaseType = mapMarkers[ ndxMarker ].capture_type_id;
            var arrMarkerType = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.match( /"https:\/\/((.*)?\/([\w]*)\.([\a-z0-9]{3,4}))\"/i );
            var strMarkerType = arrMarkerType[ 3 ];
            if ( arrUndefinedTypes.indexOf( strMarkerType ) !== -1 ) {
                let strDefinedType = '';
                switch ( objTypes[ intBaseType ] ) {
                    case 'physical':
                    case 'virtual':
                        strDefinedType = strMarkerType + '_' + objTypes[ intBaseType ];
                        break;
                    case 'utl':
                        strDefinedType = 'maintenance';
                        console.info( 'base: %i;Marker: %s', intBaseType, strMarkerType );
                        break;
                    default:
                        strDefinedType = 'owned';
                        console.error( 'base: %i;Marker: %s', intBaseType, strMarkerType );
                }

                mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.replace( strMarkerType, strDefinedType );
            }
        }
    }, 2500 );

    map.on( 'move', mapChanged => {
        log( 2, 'log', 'map.changed: %o', mapChanged );
        setTimeout( () => {
            for ( var ndxMarker in mapMarkers ) {
                var intBaseType = mapMarkers[ ndxMarker ].capture_type_id;
                var arrMarkerType = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.match( /"https:\/\/((.*)?\/([\w]*)\.([\a-z0-9]{3,4}))\"/i );
                var strMarkerType = arrMarkerType[ 3 ];
                if ( arrUndefinedTypes.indexOf( strMarkerType ) !== -1 ) {
                    let strDefinedType = '';
                    switch ( objTypes[ intBaseType ] ) {
                        case 'physical':
                        case 'virtual':
                            strDefinedType = strMarkerType + '_' + objTypes[ intBaseType ];
                            break;
                        case 'utl':
                            strDefinedType = 'maintenance';
                            console.info( 'base: %i;Marker: %s', intBaseType, strMarkerType );
                            break;
                        default:
                            strDefinedType = 'owned';
                            console.error( 'base: %i;Marker: %s', intBaseType, strMarkerType );
                    }

                    mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.replace( strMarkerType, strDefinedType );
                }
            }
        }, 1300 );
    } );

    map.on( 'zoom', mapChanged => {
        log( 2, 'log', 'map.changed: %o', mapChanged );
        setTimeout( () => {
            for ( var ndxMarker in mapMarkers ) {
                var intBaseType = mapMarkers[ ndxMarker ].capture_type_id;
                var arrMarkerType = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.match( /"https:\/\/((.*)?\/([\w]*)\.([\a-z0-9]{3,4}))\"/i );
                var strMarkerType = arrMarkerType[ 3 ];
                if ( arrUndefinedTypes.indexOf( strMarkerType ) !== -1 ) {
                    let strDefinedType = '';
                    switch ( objTypes[ intBaseType ] ) {
                        case 'physical':
                        case 'virtual':
                            strDefinedType = strMarkerType + '_' + objTypes[ intBaseType ];
                            break;
                        case 'utl':
                            strDefinedType = 'maintenance';
                            console.info( 'base: %i;Marker: %s', intBaseType, strMarkerType );
                            break;
                        default:
                            strDefinedType = 'owned';
                            console.error( 'base: %i;Marker: %s', intBaseType, strMarkerType );
                    }

                    mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue = mapMarkers[ ndxMarker ]._element.attributes.style.nodeValue.replace( strMarkerType, strDefinedType );
                }
            }
        }, 1300 );
    } );
} )();