您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Harem Stats + League stats + Image Viewer(Harem-,Event-Site) (Lightbox).
// ==UserScript== // @name Harem Heroes Stats (Not Working) // @namespace Haremheroes // @version 0.1.6 // @description Harem Stats + League stats + Image Viewer(Harem-,Event-Site) (Lightbox). // @author KominoStyle // @match http*://nutaku.haremheroes.com/* // @match http*://*.hentaiheroes.com/* // @require https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.min.js // @run-at document-end // @grant none // @license MIT // ==/UserScript== /* ================== localStorage ================== - lsMarket (updated each time you enter the Market / click buttons in Market) .buyable .potion.Nb = number of buyable books .potion.Xp = total xp of buyable books .potion.Value = cost of buyable books .gift.Nb = number of owned gifts .gift.Xp = total affection of buyable gifts .gift.Value = cost of buyable gifts .stocks .armor.Nb = number of owned equipments .booster.Nb = number of owned boosters .potion.Nb = number of owned books .potion.Xp = total xp you can give to your girls .gift.Nb = number of owned gifts .gift.Xp = total affection you can give to your girls .restock .herolvl = hero level before restock .time = next market restock time ================== */ var $ = window.jQuery; var serverTime = 0; var arenaTime = 0; var missionTime = 0; var eventTrolls = []; var lang = "en"; if($('html')[0].lang == "en"){ lang = "en"; } else if($('html')[0].lang == "es_ES"){ lang = "es"; } else if($('html')[0].lang == "de_DE"){ lang = "de"; } else if($('html')[0].lang == "fr"){ lang = "fr"; } else if($('html')[0].lang == "it_IT"){ lang = "it"; } else if($('html')[0].lang == "et_ET"){ lang = "et"; } var GIRLS_EXP_LEVELS = []; GIRLS_EXP_LEVELS.starting = [10, 21, 32, 43, 54, 65, 76, 87, 98, 109, 120, 131, 142, 154, 166, 178, 190, 202, 214, 226, 238, 250, 262, 274, 286, 299, 312, 325, 338, 351, 364, 377, 390, 403, 416, 429, 443, 457, 471, 485, 499, 513, 527, 541, 555, 569, 584, 599, 614, 629, 644, 659, 674, 689, 704, 720, 736, 752, 768, 784, 800, 816, 832, 849, 866, 883, 900, 917, 934, 951, 968, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1130, 1149, 1168, 1187, 1206, 1225, 1244, 1264, 1284, 1304, 1324, 1344, 1364, 1384, 1405, 1426, 1447, 1468, 1489, 1510, 1531, 1553, 1575, 1597, 1619, 1641, 1663, 1686, 1709, 1732, 1755, 1778, 1801, 1825, 1849, 1873, 1897, 1921, 1945, 1970, 1995, 2020, 2045, 2070, 2096, 2122, 2148, 2174, 2200, 2227, 2254, 2281, 2308, 2335, 2363, 2391, 2419, 2447, 2475, 2504, 2533, 2562, 2591, 2620, 2650, 2680, 2710, 2740, 2770, 2801, 2832, 2863, 2894, 2926, 2958, 2990, 3022, 3055, 3088, 3121, 3154, 3188, 3222, 3256, 3290, 3325, 3360, 3395, 3430, 3466, 3502, 3538, 3574, 3611, 3648, 3685, 3722, 3760, 3798, 3836, 3875, 3914, 3953, 3992, 4032, 4072, 4112, 4153, 4194, 4235, 4277, 4319, 4361, 4403, 4446, 4489, 4532, 4576, 4620, 4664, 4709, 4754, 4799, 4845, 4891, 4937, 4984, 5031, 5078, 5126, 5174, 5223, 5272, 5321, 5371, 5421, 5471, 5522, 5573, 5624, 5676, 5728, 5781, 5834, 5887, 5941, 5995, 6050, 6105, 6160, 6216, 6272, 6329, 6386, 6444, 6502, 6560, 6619, 6678, 6738, 6798, 6859, 6920, 6981, 7043, 7105, 7168, 7231, 7295, 7359, 7424, 7489, 7555, 7621, 7688, 7755, 7823, 7891, 7960, 8029, 8099, 8169, 8240, 8311, 8383, 8455, 8528, 8601, 8675, 8750, 8825, 8901, 8977, 9054, 9131, 9209, 9288, 9367, 9447, 9527, 9608, 9690, 9772, 9855, 9938, 10022, 10107, 10192, 10278, 10365, 10452, 10540, 10628, 10717, 10807, 10897, 10988, 11080, 11172, 11265, 11359, 11454, 11549, 11645, 11742, 11839, 11937, 12036, 12136, 12236, 12337, 12439, 12542, 12645, 12749, 12854, 12960, 13067, 13174, 13282, 13391, 13501, 13612, 13723, 13835, 13948, 14062, 14177, 14293, 14409, 14526, 14644, 14763, 14883, 15004, 15126, 15249, 15373, 15498, 15623, 15749, 15876, 16004, 16133, 16263, 16394, 16526, 16659, 16793, 16928, 17064, 17201, 17339, 17478, 17618, 17759, 17901, 18044, 18189, 18335, 18482, 18630, 18779, 18929, 19080, 19232, 19385, 19540, 19696, 19853, 20011, 20170, 20330, 20492, 20655, 20819, 20984, 21151, 21319, 21488, 21658, 21830, 22003, 22177, 22352, 22529, 22707, 22886, 23067, 23249, 23432, 23617, 23803, 23991, 24180, 24370, 24562, 24755, 24950, 25146, 25344, 25543, 25744, 25946, 26150, 26355, 26562, 26770, 26980, 27191, 27404, 27619, 27835, 28053, 28272, 28493, 28716, 28940, 29166, 29394, 29623, 29854, 30087, 30322, 30558, 30796, 31036, 61278, 31522, 31767, 32014, 32263, 32514, 32767, 33022, 33279, 33537, 33797, 34059, 34323, 34589, 34857, 35127, 35399, 35673, 35949, 36228, 36509, 36792, 37077, 37364, 37653, 37944, 38237, 38533, 38831, 39131, 39433, 39738, 40045, 40354, 40665, 40979, 41295, 41614, 41935, 42258, 42584, 42912, 43243, 43576, 43912, 44250, 44591, 44934, 45280, 45628, 45979, 46333, 46689, 47048, 47410, 47774, 48141, 48511, 48884, 49259, 49637, 50018, 50402, 50789, 51179, 51572, 51967, 52365, 52766, 53170, 53577, 53988, 54402]; GIRLS_EXP_LEVELS.common = [10, 21, 32, 43, 54, 65, 76, 87, 98, 109, 120, 131, 142, 154, 166, 178, 190, 202, 214, 226, 238, 250, 262, 274, 286, 299, 312, 325, 338, 351, 364, 377, 390, 403, 416, 429, 443, 457, 471, 485, 499, 513, 527, 541, 555, 569, 584, 599, 614, 629, 644, 659, 674, 689, 704, 720, 736, 752, 768, 784, 800, 816, 832, 849, 866, 883, 900, 917, 934, 951, 968, 985, 1003, 1021, 1039, 1057, 1075, 1093, 1111, 1130, 1149, 1168, 1187, 1206, 1225, 1244, 1264, 1284, 1304, 1324, 1344, 1364, 1384, 1405, 1426, 1447, 1468, 1489, 1510, 1531, 1553, 1575, 1597, 1619, 1641, 1663, 1686, 1709, 1732, 1755, 1778, 1801, 1825, 1849, 1873, 1897, 1921, 1945, 1970, 1995, 2020, 2045, 2070, 2096, 2122, 2148, 2174, 2200, 2227, 2254, 2281, 2308, 2335, 2363, 2391, 2419, 2447, 2475, 2504, 2533, 2562, 2591, 2620, 2650, 2680, 2710, 2740, 2770, 2801, 2832, 2863, 2894, 2926, 2958, 2990, 3022, 3055, 3088, 3121, 3154, 3188, 3222, 3256, 3290, 3325, 3360, 3395, 3430, 3466, 3502, 3538, 3574, 3611, 3648, 3685, 3722, 3760, 3798, 3836, 3875, 3914, 3953, 3992, 4032, 4072, 4112, 4153, 4194, 4235, 4277, 4319, 4361, 4403, 4446, 4489, 4532, 4576, 4620, 4664, 4709, 4754, 4799, 4845, 4891, 4937, 4984, 5031, 5078, 5126, 5174, 5223, 5272, 5321, 5371, 5421, 5471, 5522, 5573, 5624, 5676, 5728, 5781, 5834, 5887, 5941, 5995, 6050, 6105, 6160, 6216, 6272, 6329, 6386, 6444, 6502, 6560, 6619, 6678, 6738, 6798, 6859, 6920, 6981, 7043, 7105, 7168, 7231, 7295, 7359, 7424, 7489, 7555, 7621, 7688, 7755, 7823, 7891, 7960, 8029, 8099, 8169, 8240, 8311, 8383, 8455, 8528, 8601, 8675, 8750, 8825, 8901, 8977, 9054, 9131, 9209, 9288, 9367, 9447, 9527, 9608, 9690, 9772, 9855, 9938, 10022, 10107, 10192, 10278, 10365, 10452, 10540, 10628, 10717, 10807, 10897, 10988, 11080, 11172, 11265, 11359, 11454, 11549, 11645, 11742, 11839, 11937, 12036, 12136, 12236, 12337, 12439, 12542, 12645, 12749, 12854, 12960, 13067, 13174, 13282, 13391, 13501, 13612, 13723, 13835, 13948, 14062, 14177, 14293, 14409, 14526, 14644, 14763, 14883, 15004, 15126, 15249, 15373, 15498, 15623, 15749, 15876, 16004, 16133, 16263, 16394, 16526, 16659, 16793, 16928, 17064, 17201, 17339, 17478, 17618, 17759, 17901, 18044, 18189, 18335, 18482, 18630, 18779, 18929, 19080, 19232, 19385, 19540, 19696, 19853, 20011, 20170, 20330, 20492, 20655, 20819, 20984, 21151, 21319, 21488, 21658, 21830, 22003, 22177, 22352, 22529, 22707, 22886, 23067, 23249, 23432, 23617, 23803, 23991, 24180, 24370, 24562, 24755, 24950, 25146, 25344, 25543, 25744, 25946, 26150, 26355, 26562, 26770, 26980, 27191, 27404, 27619, 27835, 28053, 28272, 28493, 28716, 28940, 29166, 29394, 29623, 29854, 30087, 30322, 30558, 30796, 31036, 61278, 31522, 31767, 32014, 32263, 32514, 32767, 33022, 33279, 33537, 33797, 34059, 34323, 34589, 34857, 35127, 35399, 35673, 35949, 36228, 36509, 36792, 37077, 37364, 37653, 37944, 38237, 38533, 38831, 39131, 39433, 39738, 40045, 40354, 40665, 40979, 41295, 41614, 41935, 42258, 42584, 42912, 43243, 43576, 43912, 44250, 44591, 44934, 45280, 45628, 45979, 46333, 46689, 47048, 47410, 47774, 48141, 48511, 48884, 49259, 49637, 50018, 50402, 50789, 51179, 51572, 51967, 52365, 52766, 53170, 53577, 53988, 54402]; GIRLS_EXP_LEVELS.rare = [12, 25, 38, 51, 64, 77, 90, 103, 116, 129, 142, 156, 170, 184, 198, 212, 226, 240, 254, 268, 282, 297, 312, 327, 342, 357, 372, 387, 402, 417, 433, 449, 465, 481, 497, 513, 529, 545, 561, 578, 595, 612, 629, 646, 663, 680, 697, 715, 733, 751, 769, 787, 805, 823, 841, 860, 879, 898, 917, 936, 955, 974, 994, 1014, 1034, 1054, 1074, 1094, 1114, 1135, 1156, 1177, 1198, 1219, 1240, 1262, 1284, 1306, 1328, 1350, 1372, 1394, 1417, 1440, 1463, 1486, 1509, 1532, 1556, 1580, 1604, 1628, 1652, 1677, 1702, 1727, 1752, 1777, 1802, 1828, 1854, 1880, 1906, 1932, 1959, 1986, 2013, 2040, 2067, 2095, 2123, 2151, 2179, 2207, 2236, 2265, 2294, 2323, 2352, 2382, 2412, 2442, 2472, 2503, 2534, 2565, 2596, 2627, 2659, 2691, 2723, 2755, 2788, 2821, 2854, 2887, 2921, 2955, 2989, 3023, 3058, 3093, 3128, 3163, 3199, 3235, 3271, 3307, 3344, 3381, 3418, 3456, 3494, 3532, 3570, 3609, 3648, 3687, 3727, 3767, 3807, 3847, 3888, 3929, 3970, 4012, 4054, 4096, 4139, 4182, 4225, 4269, 4313, 4357, 4402, 4447, 4492, 4538, 4584, 4630, 4677, 4724, 4771, 4819, 4867, 4915, 4964, 5013, 5062, 5112, 5162, 5213, 5264, 5315, 5367, 5419, 5471, 5524, 5577, 5631, 5685, 5739, 5794, 5849, 5905, 5961, 6017, 6074, 6131, 6189, 6247, 6306, 6365, 6424, 6484, 6544, 6605, 6666, 6728, 6790, 6853, 6916, 6980, 7044, 7108, 7173, 7238, 7304, 7370, 7437, 7504, 7572, 7640, 7709, 7778, 7848, 7918, 7989, 8061, 8133, 8206, 8279, 8353, 8427, 8502, 8577, 8653, 8729, 8806, 8884, 8962, 9041, 9120, 9200, 9281, 9362, 9444, 9526, 9609, 9693, 9777, 9862, 9947, 10033, 10120, 10207, 10295, 10384, 10473, 10563, 10654, 10745, 10837, 10930, 11023, 11117, 11212, 11308, 11404, 11501, 11599, 11697, 11796, 11896, 11997, 12098, 12200, 12303, 12407, 12511, 12616, 12722, 12829, 12937, 13045, 13154, 13264, 13375, 13487, 13600, 13713, 13827, 13942, 14058, 14175, 14293, 14412, 14531, 14651, 14772, 14894, 15017, 15141, 15266, 15392, 15519, 15647, 15776, 15906, 16037, 16169, 16302, 16436, 16571, 16707, 16844, 16982, 17121, 17261, 17402, 17544, 17687, 17831, 17976, 18122, 18269, 18417, 18566, 18716, 18868, 19021, 19175, 19330, 19486, 19643, 19802, 19962, 20123, 20285, 20448, 20613, 20779, 20946, 21114, 21284, 21455, 21627, 21800, 21975, 22151, 22328, 22507, 22687, 22868, 23051, 23235, 23420, 23607, 23795, 23985, 24176, 24368, 24562, 24757, 24954, 25152, 25352, 25553, 25756, 25960, 26166, 26373, 26582, 26792, 27004, 27218, 27433, 27650, 27868, 28088, 28310, 28533, 28758, 28985, 29213, 29443, 29675, 29909, 30144, 30381, 30620, 30861, 31103, 31347, 31593, 31841, 32091, 32343, 32597, 32852, 33109, 33368, 33629, 33892, 34157, 34424, 34693, 34964, 35237, 35512, 35789, 36068, 36349, 36633, 36919, 37207, 37497, 37789, 38083, 38380, 38679, 38980, 39283, 39588, 39896, 40206, 40518, 40833, 41150, 41469, 41791, 42115, 42442, 42771, 43103, 43437, 43774, 44113, 44455, 44799, 45146, 45495, 45847, 46202, 46559, 46919, 47282, 47647, 48015, 48386, 48760, 49136, 49515, 49897, 50282, 50670, 51061, 51455, 51852, 52252, 52655, 53061, 53470, 53882, 54297, 54715, 55136, 55560, 55987, 56418, 56852, 57289, 57729, 58173, 58620, 59070, 59524, 59981, 60442, 60906, 61373, 61844, 62318, 62796, 63278, 63763, 64252, 64745, 65241]; GIRLS_EXP_LEVELS.epic = [14, 29, 44, 59, 74, 89, 104, 119, 134, 149, 165, 181, 197, 213, 229, 245, 261, 277, 294, 311, 328, 345, 362, 379, 396, 413, 431, 449, 467, 485, 503, 521, 539, 557, 576, 595, 614, 633, 652, 671, 690, 710, 730, 750, 770, 790, 810, 830, 851, 872, 893, 914, 935, 956, 977, 999, 1021, 1043, 1065, 1087, 1109, 1132, 1155, 1178, 1201, 1224, 1247, 1271, 1295, 1319, 1343, 1367, 1391, 1416, 1441, 1466, 1491, 1516, 1542, 1568, 1594, 1620, 1646, 1673, 1700, 1727, 1754, 1781, 1809, 1837, 1865, 1893, 1921, 1950, 1979, 2008, 2037, 2066, 2096, 2126, 2156, 2186, 2217, 2248, 2279, 2310, 2341, 2373, 2405, 2437, 2469, 2502, 2535, 2568, 2601, 2635, 2669, 2703, 2737, 2772, 2807, 2842, 2877, 2913, 2949, 2985, 3021, 3058, 3095, 3132, 3169, 3207, 3245, 3283, 3322, 3361, 3400, 3439, 3479, 3519, 3559, 3600, 3641, 3682, 3724, 3766, 3808, 3850, 3893, 3936, 3979, 4023, 4067, 4111, 4156, 4201, 4246, 4292, 4338, 4384, 4431, 4478, 4525, 4573, 4621, 4670, 4719, 4768, 4818, 4868, 4918, 4969, 5020, 5071, 5123, 5175, 5228, 5281, 5334, 5388, 5442, 5497, 5552, 5607, 5663, 5719, 5776, 5833, 5891, 5949, 6007, 6066, 6125, 6185, 6245, 6306, 6367, 6429, 6491, 6553, 6616, 6679, 6743, 6807, 6872, 6937, 7003, 7069, 7136, 7203, 7271, 7339, 7408, 7477, 7547, 7617, 7688, 7759, 7831, 7903, 7976, 8049, 8123, 8198, 8273, 8349, 8425, 8502, 8579, 8657, 8736, 8815, 8895, 8975, 9056, 9138, 9220, 9303, 9386, 9470, 9555, 9640, 9726, 9813, 9900, 9988, 10076, 10165, 10255, 10345, 10436, 10528, 10621, 10714, 10808, 10903, 10998, 11094, 11191, 11288, 11386, 11485, 11585, 11685, 11786, 11888, 11991, 12094, 12198, 12303, 12409, 12516, 12623, 12731, 12840, 12950, 13061, 13172, 13284, 13397, 13511, 13626, 13742, 13859, 13976, 14094, 14213, 14333, 14454, 14576, 14699, 14823, 14948, 15074, 15200, 15327, 15455, 15584, 15714, 15845, 15977, 16110, 16244, 16379, 16515, 16652, 16790, 16929, 17069, 17210, 17352, 17496, 17641, 17787, 17934, 18082, 18231, 18381, 18532, 18684, 18837, 18992, 19148, 19305, 19463, 19622, 19782, 19944, 20107, 20271, 20436, 20603, 20771, 20940, 21110, 21282, 21455, 21629, 21804, 21981, 22159, 22338, 22519, 22701, 22884, 23069, 23255, 23443, 23632, 23822, 24014, 24207, 24402, 24598, 24796, 24995, 25196, 25398, 25602, 25807, 26014, 26222, 26432, 26643, 26856, 27071, 27287, 27505, 27724, 27945, 28168, 28392, 28618, 28846, 29075, 29306, 29539, 29774, 30010, 30248, 30488, 30730, 30974, 31219, 31466, 31715, 31966, 32219, 32474, 32731, 32990, 33250, 33512, 33776, 34042, 34310, 34580, 34852, 35126, 35402, 35681, 35962, 36245, 36530, 36817, 37106, 37397, 37690, 37986, 38284, 38584, 38886, 39191, 39498, 39807, 40119, 40433, 40749, 41068, 41389, 41712, 42038, 42366, 42697, 43030, 43366, 43704, 44045, 44388, 44734, 45082, 45433, 45787, 46143, 46502, 46864, 47228, 47595, 47965, 48338, 48713, 49091, 49472, 49856, 50243, 50633, 51026, 51422, 51821, 52223, 52628, 53036, 53447, 53861, 54278, 54698, 55121, 55547, 55976, 56409, 56845, 57284, 57726, 58172, 58621, 59073, 59529, 59988, 60451, 60917, 61387, 61860, 62337, 62817, 63301, 63789, 64280, 64775, 65274, 65776, 66282, 66792, 67306, 67823, 68344, 68869, 69398, 69931, 70468, 71009, 71554, 72103, 72656, 73214, 73776, 74342, 74912, 75487, 76066]; GIRLS_EXP_LEVELS.legendary = [16, 33, 50, 67, 84, 101, 118, 135, 152, 170, 188, 206, 224, 242, 260, 278, 297, 316, 335, 354, 373, 392, 411, 431, 451, 471, 491, 511, 531, 551, 572, 593, 614, 635, 656, 677, 698, 720, 742, 764, 786, 808, 830, 853, 876, 899, 922, 945, 968, 992, 1016, 1040, 1064, 1088, 1112, 1137, 1162, 1187, 1212, 1237, 1263, 1289, 1315, 1341, 1367, 1394, 1421, 1448, 1475, 1502, 1529, 1557, 1585, 1613, 1641, 1670, 1699, 1728, 1757, 1786, 1816, 1846, 1876, 1906, 1936, 1967, 1998, 2029, 2060, 2092, 2124, 2156, 2188, 2221, 2254, 2287, 2320, 2354, 2388, 2422, 2456, 2491, 2526, 2561, 2596, 2632, 2668, 2704, 2740, 2777, 2814, 2851, 2888, 2926, 2964, 3002, 3041, 3080, 3119, 3158, 3198, 3238, 3278, 3319, 3360, 3401, 3443, 3485, 3527, 3569, 3612, 3655, 3698, 3742, 3786, 3830, 3875, 3920, 3965, 4011, 4057, 4103, 4150, 4197, 4244, 4292, 4340, 4388, 4437, 4486, 4536, 4586, 4636, 4687, 4738, 4789, 4841, 4893, 4946, 4999, 5052, 5106, 5160, 5215, 5270, 5325, 5381, 5437, 5494, 5551, 5608, 5666, 5724, 5783, 5842, 5902, 5962, 6023, 6084, 6145, 6207, 6269, 6332, 6395, 6459, 6523, 6588, 6653, 6719, 6785, 6852, 6919, 6987, 7055, 7124, 7193, 7263, 7333, 7404, 7475, 7547, 7619, 7692, 7765, 7839, 7914, 7989, 8065, 8141, 8218, 8295, 8373, 8451, 8530, 8610, 8690, 8771, 8852, 8934, 9017, 9100, 9184, 9269, 9354, 9440, 9526, 9613, 9701, 9789, 9878, 9968, 10058, 10149, 10241, 10333, 10426, 10520, 10615, 10710, 10806, 10903, 11000, 11098, 11197, 11297, 11397, 11498, 11600, 11703, 11806, 11910, 12015, 12121, 12227, 12334, 12442, 12551, 12661, 12771, 12882, 12994, 13107, 13221, 13336, 13452, 13568, 13685, 13803, 13922, 14042, 14163, 14285, 14408, 14532, 14656, 14781, 14907, 15034, 15162, 15291, 15421, 15552, 15684, 15817, 15951, 16086, 16222, 16359, 16497, 16636, 16776, 16917, 17059, 17202, 17346, 17492, 17639, 17787, 17936, 18086, 18237, 18389, 18542, 18696, 18852, 19009, 19167, 19326, 19486, 19648, 19811, 19975, 20140, 20306, 20474, 20643, 20813, 20984, 21157, 21331, 21506, 21683, 21861, 22040, 22221, 22403, 22586, 22771, 22957, 23144, 23333, 23523, 23715, 23908, 24103, 24299, 24496, 24695, 24895, 25097, 25300, 25505, 25712, 25920, 26130, 26341, 26554, 26768, 26984, 27202, 27421, 27642, 27865, 28089, 28315, 28543, 28772, 29003, 29236, 29470, 29706, 29944, 30184, 30426, 30669, 30914, 31161, 31410, 31661, 31914, 32168, 32424, 32682, 32942, 33204, 33468, 33734, 34002, 34272, 34544, 34818, 35094, 35372, 35652, 35934, 36219, 36506, 36795, 37086, 37379, 37674, 37972, 38272, 38574, 38878, 39185, 39494, 39805, 40119, 40435, 40753, 41074, 41397, 41722, 42050, 42380, 42713, 43048, 43386, 43726, 44069, 44415, 44763, 45114, 45467, 45823 ,46182, 46543, 46907, 47274, 47644, 48016, 48391, 48769, 49150, 49534, 49920, 50309, 50701, 51096, 51494, 51895, 52299, 52706, 53116, 53529, 53945, 54364, 54787, 55213, 55642, 56074, 56509, 56948, 57390, 57835, 58284, 58736, 59191, 59650, 60112, 60578, 61047, 61520, 61996, 62476, 62959, 63446, 63937, 64431, 64929, 65431, 65937, 66446, 66959, 67476, 67997, 68522, 69051, 69584, 70121, 70662, 71207, 71756, 72309, 72866, 73427, 73992, 74562, 75136, 75714, 76297, 76884, 77475, 78071, 78671, 79276, 79885, 80499, 81117, 81740, 82368, 83000, 83637, 84279, 84926, 85578, 86235, 86896]; var texts = []; texts.fr = { navigate:"Déplace-toi", current:"actuelle", locked:"bloquée", unlock_it:"débloque-la!", scene:"scène", harem:"Harem", bottom:"bas", or:"ou", total:"total", affection:"affection", harem_stats:"Stats du harem", haremettes:"haremettes", hardcore:"Hardcore", charm:"Charme", know_how:"Savoir-faire", unlocked_scenes:"scènes débloquées", money_incomes:"Revenus", per_hour:"par heure", when_all_collectable:"quand tout est disponible", required_to_unlock:"Requis pour débloquer la scène", my_stocks:"Mes stocks", top:"haut", equipments:"équipements", boosters:"boosters", books:"livres", gifts:"cadeaux", currently_buyable:"Stock disponible au marché", visit_the:'Visite le <a href="../shop.html">marché</a> first.', not_combatible:"Votre navigateur n'est pas compatible.", or_level:"ou niveau", restock:"Restock", wiki:"Page wiki de ", she_is_your:"Elle est ta", //He_is_your:"Il est ton', evolution_costs:"Ses coūts d'évolution sont", world:"Monde ", villain:" troll", fight_villain:"Combats un troll", you_own:"Tu possèdes", you_can_give:"Tu peux donner un total de", you_can_sell:"Tu peux tout vendre pour", Xp:"Xp", stat_points_need:"Nombre de points requis pour max", money_need:"Argent demandé pour max", money_spent:"Argent dépensé dans le marché", bought_points:"Points achetés au marché", equipment_points:"Points donnés par ton équipement", points_from_level:"Points donnés par ton niveau", quick_list:"Liste rapide", required_to_get_max_level:"Requis pour obtenir toutes les filles au niveau maximum", starter:"Fille de départ", common:"Commun", rare:"Rare", epic:"Épique", legendary:"Légendaire", remainingBattles: " Combats restants à faire", remainingAttempts: " Points de combats gratuits" }; texts.es = { navigate:"Navegar", current:"actual", locked:"bloqueado", unlock_it:"desbloquealo!", scene:"escena", harem:"Harén", bottom:"Fondo", or:"o", total:"Total", affection:"afecto", harem_stats:"Estatus del Harén", haremettes:"haremettes", hardcore:"Folladas", charm:"Encanto", know_how:"Saber-hacer", unlocked_scenes:"escenas desbloqueadas", money_incomes:"Ingreso de dinero", per_hour:"por hora", when_all_collectable:"cuando todo es coleccionable", required_to_unlock:"Requerido para desbloquear todas las escenas bloqueadas", my_stocks:"Mi Stock", top:"Tope", equipments:"equipamiento", boosters:"potenciadores", books:"libros", gifts:"regalos", currently_buyable:"Stocks Comprables Actualmente", visit_the:'Visita el <a href="../shop.html">Mercado</a> primero.', not_combatible:"Tu navegador no es compatible.", or_level:"o nivel", restock:"Restock", wiki:"wiki", she_is_your:"Ella es tu", evolution_costs:"Sus costo de evolucion son", world:"Mundo ", villain:" villano", fight_villain:"Pelear un villano", you_own:"Tienes", you_can_give:"Puedes dar un total de", you_can_sell:"Puedes vender todo por", Xp:"Xp", stat_points_need:"Puntos de estatus necesarios para maximo", money_need:"Dinero necesario para maximo", money_spent:"Dinero usado en el mercado", bought_points:"Puntos comprados del mercado", equipment_points:"Puntos de estatus de equipamiento", points_from_level:"Puntos de estatus de nivel", quick_list:"Lista Rapida", required_to_get_max_level:"Requerido para obtener el máximo nivel de todas las chicas", remainingBattles: " Remaining fights to be done", remainingAttempts: " Remaining free fighting points" }; texts.en = { navigate:"Navigate", current:"current", locked:"locked", unlock_it:"unlock it!", scene:"scene", harem:"Harem", bottom:"Bottom", or:"or", total:"Total", affection:"affection", harem_stats:"Harem Stats", haremettes:"haremettes", hardcore:"Hardcore", charm:"Charm", know_how:"Know-how", unlocked_scenes:"unlocked scenes", money_incomes:"Money income", per_hour:"per hour", when_all_collectable:"when all collectable", required_to_unlock:"Required to unlock all locked scenes", my_stocks:"My Stock", top:"Top", equipments:"equipments", boosters:"boosters", books:"books", gifts:"gifts", currently_buyable:"Currently Buyable Stock", visit_the:'Visit the <a href="../shop.html">Market</a> first.', not_combatible:"Your webbrowser is not compatible.", or_level:"or level", restock:"Restock", wiki:"'s wiki page", she_is_your:"She is your", evolution_costs:"Upgrade costs are", world:"World ", villain:" villain", fight_villain:"Fight a villain", you_own:"You own", you_can_give:"You can give a total of", you_can_sell:"You can sell everything for", Xp:"XP", stat_points_need:"Stat points need to max", money_need:"Money need to max", money_spent:"Money spent in market", bought_points:"Bought points from market", equipment_points:"Equipments stat points", points_from_level:"Stat points from level", quick_list:"Quick list", required_to_get_max_level:"Required to level all haremettes", starter:"Starter", common:"Common", rare:"Rare", epic:"Epic", legendary:"Legendary", remainingBattles: " Remaining fights to be done", remainingAttempts: " Remaining free fighting points" }; texts.et = { navigate:"Navigeeri", current:"praegune", locked:"lukus", unlock_it:"ava!", scene:"stseen", harem:"Naase haaremisse", bottom:"Alla", or:"või", total:"Kokku", affection:"kiinduvust", harem_stats:"Haaremi näitajad", haremettes:"haaremi naist", hardcore:"Hardcore", charm:"Sarm", know_how:"Teadmisi", unlocked_scenes:"avatud stseene", money_incomes:"Sissetulek", per_hour:"tunnis", when_all_collectable:"kui kõik valmis", required_to_unlock:"Maksumus, et avada stseenid", my_stocks:"Minu laoseis", top:"Üles", equipments:"eset", boosters:"boonust", books:"raamatut", gifts:"kingitust", currently_buyable:"Praegu ostetavad", visit_the:'Külasta <a href="../shop.html">turgu</a> kõigepealt.', not_combatible:"Sinu brauser ei ühildu.", or_level:"või level", restock:"Lao uuendus", wiki:" wiki", she_is_your:"Ta on sinu", evolution_costs:"Tema evolutsiooni maksumused", world:"Maailma", villain:"boss", fight_villain:"Võitle bossiga", you_own:"Sul on", you_can_give:"Sa saad lisada kokku", you_can_sell:"Sa saad müügiga teenida", Xp:"Xp", stat_points_need:"Oskuse punkte maksimumini", money_need:"Raha maksimumini", money_spent:"Raha kulunud oskuspunktidele", bought_points:"Ostetud oskuse punkte", equipment_points:"Esemete oskuse punktid", points_from_level:"Oskuse punkte levelist", quick_list:"Sorteeritud nimekiri", required_to_get_max_level:"Vajalik, et saada kõik tüdrukud maksimum levelini" }; texts.it = { navigate:"Navigare", current:"corrente", locked:"bloccato", unlock_it:"sblocca", scene:"scena", harem:"Harem", bottom:"Sotto", or:"o", total:"Totale", affection:"affetto", harem_stats:"Stato dell Harem", haremettes:"ragazze dell harem", hardcore:"Scopata", charm:"Amante", know_how:"Esperto", unlocked_scenes:"scene sbloccate", money_incomes:"Guadagni", per_hour:"orario", when_all_collectable:"quando si può raccogliere tutto", required_to_unlock:"Necessario per sbloccare tutte le scene", my_stocks:"Mio inventario", top:"Sopra", equipments:"equipaggiamento", boosters:"potenziamenti", books:"libri", gifts:"regali", currently_buyable:"Correntemente acquistabili", visit_the:'Visita il <a href="../shop.html">Market</a> prima.', not_combatible:"Il tuo browser non è compatibile.", or_level:"o livello", restock:"Rifornimento", wiki:"wiki", she_is_your:"E tua", //He_is_your:"I tua', evolution_costs:"Il costo del potenziamento è", world:"Mondo ", villain:" nemico", fight_villain:"Combattimenti", you_own:"Possiedi", you_can_give:"Puoi dare il massimo a", you_can_sell:"Puoi vendere tutto per", Xp:"Xp", stat_points_need:"Punti statistica necessari per il massimo", money_need:"Soldi necessari per il massimo", money_spent:"Soldi spesi al negozio", bought_points:"Punti comprati al negozio", equipment_points:"Punti statistica da equipaggiamento", points_from_level:"Punti acquisiti da aumento livello", quick_list:"Lista veloce", required_to_get_max_level:"Necessario per livellare tutte le ragazze", starter:"Starter", common:"Comuni", rare:"Rare", epic:"Epiche", legendary:"Leggendarie", remainingBattles: " Restanti lotte da fare", remainingAttempts: " Punti battaglia gratuiti" }; var CurrentPage = window.location.pathname; // css define var sheet = (function() { var style = document.createElement('style'); document.head.appendChild(style); return style.sheet; })(); //HAREM IMAGE VIEWER Script //Function Lightbox $(document).ready(function() { //include lightbox css $(document.head).append( '<link href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.7/jquery.fancybox.css" rel="stylesheet" type="text/css">' ); //define own css defineCss(); }); // current page: Home if (CurrentPage.indexOf('home') != -1) { var eventGirlElementSelector = ".event-widget .widget .rewards-block-tape .girl_reward"; var baseMargin = null; //update view of girl currently selected when loading event info box $( ".event-thumbnail" ).on('click', function() { setTimeout(function () { $(eventGirlElementSelector + "[active_view]").click(); }, 50); }); $(eventGirlElementSelector).on('click', async function() { var girlId = $(this).attr('girl'); var girlImageDiv = $( ".event-widget.special-fullscreen-view .widget .rewards-stats .reward" ); var girlImage = girlImageDiv.children('img'); var girlGrades = 5; girlImageDiv.find('.diamond-bar').remove(); //check for image existance with high grades (no way to check max grades outside harem so far) var checkImageLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ava5.png'; if (await checkUrlResponse(checkImageLink) === false) girlGrades = 3; //create diamonds on the top part var allDiamonds = ''; for (var i = 0; i <= girlGrades; i++) { var diamondToAdd = '<div class="diamond unlocked" grade="' + i + '"></div>'; allDiamonds += diamondToAdd; } girlImage.before('<div class="diamond-bar">' + allDiamonds + '</div>'); //connect diamonds to image links var allLinks = girlImageDiv.find('.diamond'); var linksArray = []; for (i = 0; i <= girlGrades; i++) { var imgLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ava' + i + '.png'; var icoLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ico' + i + '.png'; linksArray.push(imgLink); $(allLinks.get(i)).attr("link", imgLink); $(allLinks.get(i)).attr("icoLink", icoLink); } //fix image top-margin (different between events) if (baseMargin === null) baseMargin = girlImageDiv.css('margin-top'); girlImageDiv.css('margin-top', '0'); girlImage.css('margin-top', baseMargin.toString()); $( ".rewards-stats .diamond-bar .diamond" ).on('mouseenter', function() { var girlAvatarLink = $(this).attr('link'); var girlIconLink = $(this).attr('icoLink'); girlImage.attr('src', girlAvatarLink); }); //create zooming event $(girlImage).data('allImages', linksArray); $(girlImage).on('mouseup', zoomIntoImage); }); } // current page Activities/PoP if (CurrentPage.indexOf('activities') != -1) { setTimeout(async function () { var popElement = $('#activities #pop.canvas'); var popImage = popElement.find('.pop_left_part img'); var popRewardInfo = popElement.find('.pop_rewards_display.reward_wrap').attr('data-reward-display'); var popImageIcon = popElement.find('.pop_rewards_display .shards_girl_ico img'); var girlInfo = JSON.parse(popRewardInfo).shards[0]; var girlId = girlInfo.id_girl; //check for image existance with high grades (no way to check max grades outside harem so far) var girlGrades = 5; var checkImageLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ava5.png'; if (await checkUrlResponse(checkImageLink) === false) girlGrades = 3; //create diamonds on the top part popElement.find('.diamond-bar').remove(); var allDiamonds = ''; for (var i = 0; i <= girlGrades; i++) { var diamondToAdd = '<div class="diamond unlocked" grade="' + i + '"></div>'; allDiamonds += diamondToAdd; } popImage.before('<div class="diamond-bar">' + allDiamonds + '</div>'); //connect diamonds to image links var allLinks = popElement.find('.diamond'); var linksArray = []; for (i = 0; i <= girlGrades; i++) { var imgLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ava' + i + '.png'; var icoLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ico' + i + '.png'; linksArray.push(imgLink); $(allLinks.get(i)).attr("link", imgLink); $(allLinks.get(i)).attr("icoLink", icoLink); } $( ".pop_left_part .diamond-bar .diamond" ).on('mouseenter', function() { var girlAvatarLink = $(this).attr('link'); var girlIconLink = $(this).attr('icoLink'); popImage.attr('src', girlAvatarLink); popImageIcon.attr('src', girlIconLink); }); //create zooming event $(popImage).data('allImages', linksArray); $(popImage).on('mouseup', zoomIntoImage); }, 50); } // current page: Harem if (CurrentPage.indexOf('harem') != -1) { var haremRight = $('#harem_right'); $( ".girls_list div[id_girl]" ).on('click', function() { var girlId = $(this).children('[girl]').attr('girl'); var girlGrades = $(this).find('.graded').children().length; var girlClass = $(this).find('.icon').attr('carac'); updateInfo(girlId, girlGrades, girlClass); }); //update view of girl currently selected when loading the harem setTimeout(function () { $("#harem_left div.girls_list div[girl].opened").click(); }, 100); function updateInfo(girlId, girlGrades, girlClass) { setTimeout(function () { haremRight.children('[girl]').each( function() { if (girlId == 0) girlId = $(this).attr('girl'); var girl = girlsDataList[girlId]; var girlImageDiv = $(this).find('.avatar-box'); var girlIconDiv = $("#harem_left div.girls_list div[girl].opened div.left img"); if (girlGrades == 0) girlGrades = girl.nb_grades; if (!girl.own) { //create diamonds on the bottom part var allDiamonds = ''; for (var i = 0; i <= girlGrades; i++) { var diamondToAdd = '<div class="diamond locked" grade="' + i + '"></div>'; allDiamonds += diamondToAdd; } $(this).find('.middle_part').css('margin', '0'); $(this).find('.dialog-box').after('<h3>' + girl.Name + '<span carac="class' + girlClass + '"></span></h3>'); $(this).find('img.avatar').wrap('<div class="avatar-box"></div>'); $(this).find('.avatar-box').css('margin-top', '23px'); $(this).find('.avatar-box').after('<div class="diamond-bar">' + allDiamonds + '</div>'); } //update for any girl (owned or not) $(this).find('h3').wrap('<div class="WikiLink"></div>').wrap('<a href="https://harem-battle.club/wiki/Harem-Heroes/HH:' + girl.Name + '" target="_blank"></a>'); var allLinks = $(this).find('.diamond'); var linksArray = []; for (i = 0; i <= girlGrades; i++) { var imgLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ava' + i + '.png'; var icoLink = 'https://hh2.hh-content.com/pictures/girls/' + girlId + '/ico' + i + '.png'; linksArray.push(imgLink); $(allLinks.get(i)).attr("link", imgLink); $(allLinks.get(i)).attr("icoLink", icoLink); } $('.avatar-box img.avatar').data('allImages', linksArray); if (!girl.own) $('.avatar-box img.avatar').attr('src', linksArray[0]); $('.variation_block .big_border').on('click', function() { var girlId = $(this).children('[girl]').attr('girl'); var girlGrades = $(this).find('.graded').children().length; setTimeout(function() { var girlClass = $(".girls_list div[id_girl] div[girl].opened").find('.icon').attr('carac'); updateInfo(girlId, girlGrades, girlClass); }, 50); }); $( ".diamond-bar .diamond" ).on('mouseenter', function() { var mainParent = $(this).closest('.middle_part'); var girlAvatar = mainParent.find('img.avatar'); var girlAvatarLink = $(this).attr('link'); var girlIconLink = $(this).attr('icoLink'); girlIconDiv.attr('src', girlIconLink); girlAvatar.attr('src', girlAvatarLink); }); $('.avatar-box img.avatar').on('mouseup', zoomIntoImage); }); }, 0); } } //zoom into image with lightbox, event only on left click function zoomIntoImage(e) { if (e.which != 1) return; var linksArray = $(this).data('allImages'); var girlAvatarLink = $(this).attr('src'); var indexOfQuestion = girlAvatarLink.lastIndexOf('?'); if (indexOfQuestion >= 0) girlAvatarLink = girlAvatarLink.slice(0, indexOfQuestion); var indexOfCurrent = linksArray.indexOf(girlAvatarLink); var allImages = []; for (var i = 0; i < linksArray.length; i++) { allImages.push({ src : linksArray[i].toString(), type : 'image', opts : { caption : i == 0 ? 'Default' : 'Stage ' + i } }); } $.fancybox.open(allImages, { loop : true, keyboard: true, transitionEffect: "tube" }, indexOfCurrent); } //checks for any errors in url (like image 404) async function checkUrlResponse(url) { let result = false; await fetch(url.toString()) .then(function(response) { if (response.status >= 200 && response.status <= 299) { return response; } else { throw Error(response.statusText); } }).then(function(response) { result = true; }).catch(function(error) { }); return result; } function defineCss() { sheet.insertRule('#harem_right .WikiLink a {' + 'text-decoration: none; }'); sheet.insertRule('#harem_right .diamond-bar {' + 'margin-top: 4px; }'); /*Event CSS + PoP CSS*/ sheet.insertRule('.rewards-stats .diamond-bar, .pop_left_part .diamond-bar {' + 'position: static;' + 'justify-content: center;' + 'margin-bottom: -40px; }'); sheet.insertRule('#pop.canvas .pop_left_part img {' + 'margin-bottom: 10px;' + 'margin-top: 12px;' + 'cursor: zoom-in; }'); sheet.insertRule('.rewards-stats .diamond-bar .diamond.unlocked, .pop_left_part .diamond-bar .diamond.unlocked {' + 'cursor: default; }'); sheet.insertRule('#harem_right .diamond-bar .diamond:hover, .rewards-stats .diamond-bar .diamond:hover, .pop_left_part .diamond-bar .diamond:hover {' + 'border: 2px solid #FE00FE; }'); sheet.insertRule('.avatar-box img, .event-widget.special-fullscreen-view .widget .rewards-stats .reward img, .pop_left_part img {' + 'cursor: zoom-in; }'); } //HAREMHEROESSTAT'S Script var leaguetime = Hero.infos.recharge_timers.calculation_timestamp + Hero.infos.recharge_timers.challenge_recharge_time*1000; // verify localstorage var lsAvailable = (lsTest() === true) ? 'yes' : 'no'; if (CurrentPage.indexOf('shop') != -1) ModifyMarket(); // Current page: Market else if (CurrentPage.indexOf('harem') != -1) ModifyHarem(); // Current page: Harem else if (CurrentPage.indexOf('quest') != -1) ModifyScenes(); // Current page: Haremettes' Scenes else if (CurrentPage.indexOf('arena') != -1) arena(); // Current page: arena else if (CurrentPage.indexOf('home') != -1) home(); // Current page: Homepage else if (CurrentPage.indexOf('log_in') != -1) home(); // Current page: Homepage else if (CurrentPage.indexOf('activities') != -1) activities(); // Current page: missions else if (CurrentPage.indexOf('tower-of-fame') != -1) leagues(); // Current page: tower of fame else if (CurrentPage.indexOf('pachinko') != -1) pachinko(); // Current page: pachinko eventTrolls = JSON.parse(localStorage.getItem("eventTrolls")); missionTime = localStorage.getItem("missionTime"); arenaTime = localStorage.getItem("arenaTime"); FightATroll(); // added everywhere function calculateTime(deadline) { var currentTime = new Date(); var remaining = Math.floor((deadline - currentTime.getTime())/1000); return convertToTimeFormat(remaining); } function convertToTimeFormat(remainingTime) { var remM = Math.floor(remainingTime /60); var remS = remainingTime - remM*60; if(remainingTime < 0){ remM = 0; remS = 0; } if(remM > 59){ var remH = Math.floor(remM / 60); remM -= remH * 60; return remH + "h " + remM + "m " + remS + "s" } else if(remM > 0) return remM + "m " + remS + "s"; return remS + "s"; } function scriptTimers(){ $('#atime').text(calculateTime(arenaTime)); $('#mtime').text(calculateTime(missionTime)); setInterval(function(){$('#atime').text(calculateTime(arenaTime));}, 1000); setInterval(function(){$('#mtime').text(calculateTime(missionTime));}, 1000); setInterval(function(){leagueBattles();}, 1000); } function leagueBattles(){ //console.log(leaguetime); var time = new Date().getTime(); var attempts = 15 - Math.ceil((leaguetime - time)/2100000); var remainingTime = convertToTimeFormat(parseInt((leaguetime - time)/1000 - Math.floor((leaguetime - time)/2100000)*2100)); var percentage = parseInt(attempts/15*100); $('#scriptLeagueAttempts').text(attempts); if(attempts < 15) $('#scriptLeagueTimer').html("+1 in <span rel=\"count\">" + remainingTime + "</span>"); $('#scriptLeagueBar').css("width", percentage + "%"); } function leagues(){ var time = new Date().getTime(); var attemptsTillSeasonEnd = parseInt(season_end_at/2100); var remainingAttempts = 15 - Math.ceil((leaguetime - time)/2100000) + parseInt(season_end_at/2100); var nextAttemptTime = parseInt((leaguetime - time)/1000 - Math.floor((leaguetime - time)/2100000)*2100); var remainingTimeOfSeason = season_end_at - parseInt(season_end_at/2100)*2100; if( nextAttemptTime < remainingTimeOfSeason) remainingAttempts++; var possibleBattles = -3; leagues_list.forEach(function(opponent) { possibleBattles += 3 - opponent.nb_challenges_played; }); $('.league_end_in').append("<span> " + texts[lang].remainingBattles + " </span><span><b> " + possibleBattles + "</b></span><span> " + texts[lang].remainingAttempts + "</span><span><b> " +remainingAttempts + "</b></span>"); // var remainingAttempts = } function pachinko(){ var pachinkoTime = Hero.infos.recharge_timers.calculation_timestamp + pachinkoVar.next_game*1000; localStorage.setItem("pachinkoTime", pachinkoTime); } function activities() { if (typeof HHTimers.timers !== 'undefined') { serverTime = Hero.infos.recharge_timers.calculation_timestamp; var timers = HHTimers.timers; for (var i = 0; i < Object.keys(timers).length; i++) { // console.log(timers[i]); if(timers[i].hasOwnProperty('$barElm')){ // console.log(timers[i].$barElm.selector); if(timers[i].$barElm.selector == ".finish_in_bar .frontbar" ){ missionTime = serverTime + timers[i].remainingTime*1000; } } } localStorage.setItem("missionTime", missionTime); } else{ missionTime = localStorage.getItem("missionTime"); } arenaTime = localStorage.getItem("arenaTime"); } function arena() { if (typeof HHTimers.timers !== 'undefined') { serverTime = Hero.infos.recharge_timers.calculation_timestamp; var timers = HHTimers.timers; for (var i = 0; i < Object.keys(timers).length; i++) { if(timers[i].hasOwnProperty('$elm')){ if(timers[i].$elm.selector == '.arena_refresh_counter [rel="count"]' ){ arenaTime = serverTime + timers[i].remainingTime*1000; } } } localStorage.setItem("arenaTime", arenaTime); } else{ arenaTime = localStorage.getItem("arenaTime"); } missionTime = localStorage.getItem("missionTime"); } /* ====================== Fight A Troll Menu ====================== */ function FightATroll() { // Some pages don't carry the Hero data - skip the menu in this case by Hollo if (typeof Hero == 'undefined') { return; } // Trolls' database var Trolls = ['Dark Lord', 'Ninja Spy', 'Gruntt', 'Edwarda', 'Donatien', 'Silvanus', 'Bremen', 'Finalmecia', 'Roko Senseï', 'Karole', 'Jackson\'s Crew', 'Pandora witch', 'Nike']; // get current world of player var CurrentWorld = Hero.infos.questing.id_world - 1, TrollName = '', TrollsMenu = ''; // generate troll list for (var i = 0; i < CurrentWorld; i++) { if (typeof Trolls[i] !== typeof undefined && Trolls[i] !== false) { TrollName = Trolls[i]; } else TrollName = texts[lang].world + ' ' + (i+1) + ' ' + texts[lang].villain; var type = "regular"; for (var j = 0, len = eventTrolls.length; j < len; j++) { if(eventTrolls[j] == (i+1)){ type = "eventTroll"; } } TrollsMenu += '<a class="' + type + '" href="/battle.html?id_troll=' + (i+1) + '">' + TrollName + '</a><br />'; } // display: 'Fight a troll' menu $('#contains_all > header').children('[type=energy_fight]').append('<div class="scriptInfo" id="FightTroll">' + texts[lang].fight_villain + '<span class="Arrow"></span><div class="TrollsMenu">' + TrollsMenu + '</div></div>'); fightTrollCss(); } /* ========== Market ========== */ function ModifyMarket() { var shop = $( "#shop.shop_count" ); var marketTime = Hero.infos.recharge_timers.calculation_timestamp + $( "#shop>.shop_count> span").attr( "time" )*1000; localStorage.setItem("marketTime", marketTime); var loc2 = $('.hero_stats').children(); loc2.each(function() { var stat = $(this).attr("hero"); if(stat == "carac1" || stat == "carac2" || stat == "carac3"){ } }); updateStats(); function updateStats(){ var loc2 = $('.hero_stats').children(); var last_cost = 0, levelPoints = 0, levelMoney = 0, level = Hero.infos.level; levelPoints = level * 30; levelMoney = calculateTotalPrice(levelPoints); loc2.each(function() { var stat = $(this).attr("hero"); $(".CustomStats").html(''); if(stat == "carac1" || stat == "carac2" || stat == "carac3"){ var currentStatPoints = Hero.infos[stat], remainingPoints = levelPoints - currentStatPoints, currentMoney = calculateTotalPrice(currentStatPoints), remainingMoney = levelMoney - currentMoney, skillPoints = Hero.infos.caracs[stat], // itemPoints = Hero.infos.items[stat], boughtPoints = Hero.infos[stat]; // skillPoints = skillPoints - itemPoints - boughtPoints; } }); } function calculateTotalPrice(points){ var last_price = calculateStatPrice(points); var price = 0; if(points < 2001) { price = (5+last_price)/2*(points); } else if(points < 4001){ price = 4012005+(4009+last_price)/2*(points-2001); }else if(points < 6001){ price = 20026005+(12011+last_price)/2*(points-4001); }else if(points < 8001){ price = 56042005+(24013+last_price)/2*(points-6001); }else if(points < 10001){ price = 120060005+(40015+last_price)/2*(points-8001); }else if(points < 12001){ price = 220080005+(60017+last_price)/2*(points-10001); }else if(points < 14001){ price = 364102005+(84019+last_price)/2*(points-12001); }else if(points < 16001){ price = 560126005+(112021+last_price)/2*(points-14001); } return price; } function calculateStatPrice(points){ var cost = 0; if(points < 2001){ cost = 3 + points * 2; }else if(points < 4001){ cost = 4005+(points-2001)*4; }else if(points < 6001){ cost = 12005+(points-4001)*6; }else if(points < 8001){ cost = 24005+(points-6001)*8; }else if(points < 10001){ cost = 40005+(points-8001)*10; }else if(points < 12001){ cost = 60005+(points-10001)*12; }else if(points < 14001){ cost = 84005+(points-12001)*14; }else if(points < 16001){ cost = 112005+(points-14001)*16; } return cost; } var lsMarket = {}; lsMarket.buyable = {}; lsMarket.stocks = {}; lsMarket.restock = {}; setTimeout( function() { // save time of restock var restocktime = 0; var time = $('#shop > .shop_count > span').text(); if(time.indexOf("h") > -1){ restocktime = parseInt(time.substring(0, time.indexOf("h")))*3600; time = time.substring(time.indexOf("h")+1); } if(time.indexOf("m") > -1){ restocktime += parseInt(time.substring(0, time.indexOf("m")))*60; time = time.substring(time.indexOf("h")+1); } if(time.indexOf("s") > -1){ restocktime += parseInt(time.substring(0, time.indexOf("s"))); } /* var RestockTimer = $('#shop > .shop_count > span').text().split(':'), s = 0, m = 1; // convert HH:MM:SS or MM:SS or SS to seconds while (RestockTimer.length > 0) { s += m * parseInt(RestockTimer.pop(), 10); m *= 60; } */ lsMarket.restock.herolvl = Hero.infos.level; lsMarket.restock.time = (new Date()).getTime() + restocktime*1000; // first load get_buyableStocks('potion'); get_buyableStocks('gift'); equipments_shop(0); boosters_shop(0); books_shop(0); gifts_shop(0); }, 500 ); // catch click on Buy, Restock, Equip/Offer or Sell > update tooltip after 500ms var timer; $('#shop > button, #inventory > button').click(function() { var clickedButton = $(this).attr('rel'), opened_shop = $('#shop').children('.selected'); clearTimeout(timer); // kill previous update timer = setTimeout( function() { if (opened_shop.hasClass('armor')) { equipments_shop(1); } else if (opened_shop.hasClass('booster')) { boosters_shop(1); } else if (opened_shop.hasClass('potion')) { if (clickedButton == 'buy' || clickedButton == 'shop_reload') get_buyableStocks('potion'); books_shop(1); } else if (opened_shop.hasClass('gift')) { if (clickedButton == 'buy' || clickedButton == 'shop_reload') get_buyableStocks('gift'); gifts_shop(1); } }, 500 ); }); function get_buyableStocks(loc_class) { // initialize var itemsNb = 0, itemsXp = 0, itemsPrice = 0, loc = $('#shop').children('.' + loc_class); // get stats loc.find('.slot').each(function() { if ($(this).hasClass('empty')) return false; var item = $(this).data('d'); itemsNb++; itemsXp += parseInt(item.value, 10); itemsPrice += parseInt(item.price, 10); }); // save lsMarket.buyable[loc_class] = {'Nb':itemsNb, 'Xp':itemsXp, 'Value':itemsPrice}; } function equipments_shop(update) { tt_create(update, 'armor', 'EquipmentsTooltip', 'equipments', ''); } function boosters_shop(update) { tt_create(update, 'booster', 'BoostersTooltip', 'boosters', ''); } function books_shop(update) { tt_create(update, 'potion', 'BooksTooltip', 'books', 'Xp'); } function gifts_shop(update) { tt_create(update, 'gift', 'GiftsTooltip', 'gifts', 'affection'); } // create/update tooltip & save to localstorage function tt_create(update, loc_class, tt_class, itemName, itemUnit) { // initialize var itemsNb = 0, itemsXp = (itemUnit === '') ? -1 : 0, itemsSell = 0, loc = $('#inventory').children('.' + loc_class); // get stats loc.find('.slot').each(function() { if ($(this).hasClass('empty')) return false; var item = $(this).data('d'), Nb = parseInt(item.count, 10); itemsNb += Nb; itemsSell += Nb * parseInt(item.price_sell, 10); if (itemsXp != -1) itemsXp += Nb * parseInt(item.value, 10); }); var tooltip = texts[lang].you_own + ' <b>' + NbCommas(itemsNb) + '</b> ' + texts[lang][itemName] + '.<br />' + (itemsXp == -1 ? '' : texts[lang].you_can_give + ' <b>' + NbCommas(itemsXp) + '</b> ' + texts[lang][itemUnit] + '.<br />') + texts[lang].you_can_sell + ' <b>' + NbCommas(itemsSell) + '</b> <span class="imgMoney"></span>.'; // save to localstorage lsMarket.stocks[loc_class] = (loc_class == 'potion' || loc_class == 'gift') ? {'Nb':itemsNb, 'Xp':itemsXp} : {'Nb':itemsNb}; localStorage.setItem('lsMarket', JSON.stringify(lsMarket)); // create or update tooltip if (update === 0) { loc.prepend('<span class="CustomTT"></span><div class="' + tt_class + '">' + tooltip + '</div>'); } else { loc.children('.' + tt_class).html(tooltip); } } $('plus').on('click', function (event) { var stat = "carac" + $(this).attr("for_carac"); Hero.infos[stat]++; timer = setTimeout( function() { updateStats(); }, 400 ); }); marketCss(); } /* ========= Harem ========= */ function ModifyHarem() { var stats = []; var girlsList = []; var haremRight = $('#harem_right'); // initialize stats.girls = 0; stats.hourlyMoney = 0; stats.allCollect = 0; stats.unlockedScenes = 0; stats.allScenes = 0; stats.rarities = { starting:0, common:0, rare:0, epic:0, legendary:0 }; stats.caracs = { 1:0, 2:0, 3:0 }; stats.stars = {affection:0, money:0, kobans:0}; stats.xp = 0; stats.affection = 0; stats.money = 0; stats.kobans = 0; var EvoReq = []; var starting = []; starting.push({ affection:90, money:36000, kobans:36, taffection:90, tmoney:36000, tkobans:36}); starting.push({ affection:225, money:90000, kobans:60, taffection:315, tmoney:126000, tkobans:96}); starting.push({ affection:563, money:225000, kobans:114, taffection:878, tmoney:351000, tkobans:210}); starting.push({ affection:1125, money:450000, kobans:180, taffection:2003, tmoney:801000, tkobans:390}); starting.push({ affection:2250, money:900000, kobans:300, taffection:4253, tmoney:1701000, tkobans:690}); EvoReq.starting = starting; var commonGirls = []; commonGirls.push({ affection:180, money:72000, kobans:72, taffection:180, tmoney:72000, tkobans:72}); commonGirls.push({ affection:450, money:180000, kobans:120, taffection:630, tmoney:252000, tkobans:192}); commonGirls.push({ affection:1125, money:450000, kobans:228, taffection:1755, tmoney:702000, tkobans:420}); commonGirls.push({ affection:2250, money:900000, kobans:360, taffection:4005, tmoney:1602000, tkobans:780}); commonGirls.push({ affection:4500, money:1800000, kobans:600, taffection:8505, tmoney:3402000, tkobans:1380}); EvoReq.common = commonGirls; var rareGirls = []; rareGirls.push({ affection:540, money:216000, kobans:216, taffection:540, tmoney:216000, tkobans:216}); rareGirls.push({ affection:1350, money:540000, kobans:360, taffection:1890, tmoney:756000, tkobans:576}); rareGirls.push({ affection:3375, money:1350000, kobans:678, taffection:5265, tmoney:2106000, tkobans:1254}); rareGirls.push({ affection:6750, money:2700000, kobans:1080, taffection:12015, tmoney:4806000, tkobans:2334}); rareGirls.push({ affection:13500, money:5400000, kobans:1800, taffection:25515, tmoney:10206000, tkobans:4134}); EvoReq.rare = rareGirls; var epicGirls = []; epicGirls.push({ affection:1260, money:504000, kobans:504, taffection:1260, tmoney:504000, tkobans:504}); epicGirls.push({ affection:3150, money:1260000, kobans:840, taffection:4410, tmoney:1764000, tkobans:1344}); epicGirls.push({ affection:7875, money:3150000, kobans:1578, taffection:12285, tmoney:4914000, tkobans:2922}); epicGirls.push({ affection:15750, money:6300000, kobans:2520, taffection:28035, tmoney:11214000, tkobans:5442}); epicGirls.push({ affection:31500, money:12600000, kobans:4200, taffection:59535, tmoney:23814000, tkobans:9642}); EvoReq.epic = epicGirls; var legendGirls = []; legendGirls.push({ affection:1800, money:720000, kobans:720, taffection:1800, tmoney:720000, tkobans:720}); legendGirls.push({ affection:4500, money:1800000, kobans:1200, taffection:6300, tmoney:2520000, tkobans:1920}); legendGirls.push({ affection:11250, money:4500000, kobans:2250, taffection:17550, tmoney:7020000, tkobans:4170}); legendGirls.push({ affection:22500, money:9000000, kobans:3600, taffection:40050, tmoney:16020000, tkobans:7770}); legendGirls.push({ affection:45000, money:18000000, kobans:6000, taffection:85050, tmoney:34020000, tkobans:13770}); EvoReq.legendary = legendGirls; for (var id in girlsDataList) { var girl = jQuery.extend(true, {}, girlsDataList[id]); if(girl.own){ stats.allCollect += girl.salary; stats.rarities[girl.rarity]++; stats.caracs[girl.class]++; stats.girls++; stats.hourlyMoney += Math.round(girl.salary_per_hour); stats.unlockedScenes += girl.graded; stats.allScenes += parseInt(girl.nb_grades); var nbgrades =parseInt(girl.nb_grades); if(girl.graded != nbgrades){ stats.affection += EvoReq[girl.rarity][nbgrades-1].taffection - girl.Affection.cur; var currentLevelMoney = 0, currentLevelKobans = 0; if(girl.graded != 0){ currentLevelMoney = EvoReq[girl.rarity][girl.graded-1].tmoney, currentLevelKobans = EvoReq[girl.rarity][girl.graded-1].tkobans; } stats.money += EvoReq[girl.rarity][nbgrades -1].tmoney - currentLevelMoney; if(hh_nutaku){ stats.kobans += Math.ceil((EvoReq[girl.rarity][nbgrades -1].tkobans - currentLevelKobans)/6); } else { stats.kobans += EvoReq[girl.rarity][nbgrades -1].tkobans - currentLevelKobans; } } var expToMax = (GIRLS_EXP_LEVELS[girl.rarity][Hero.infos.level-2] - girl.Xp.cur); if(expToMax < 0) expToMax =0; stats.xp += expToMax; } } // Market stocks try { var lsMarket = JSON.parse(localStorage.getItem('lsMarket')), d = new Date(lsMarket.restock.time), RestockInfo; // buyable stocks if (new Date() > lsMarket.restock.time || Hero.infos.level > lsMarket.restock.herolvl) { RestockInfo = '> The <a href="../shop.html">Market</a> restocked since your last visit.'; } else { var marketBookTxt = lsMarket.buyable.potion.Nb + ' ' + texts[lang].books + ' (' + NbCommas(lsMarket.buyable.potion.Xp) + ' ' + texts[lang].Xp + ')', marketGiftTxt = lsMarket.buyable.gift.Nb + ' ' + texts[lang].gifts + ' (' + NbCommas(lsMarket.buyable.gift.Xp) + ' ' + texts[lang].affection + ')'; RestockInfo = '- ' + marketBookTxt + ' = ' + NbCommas(lsMarket.buyable.potion.Value) + ' <span class="imgMoney"></span>' + '<br />- ' + marketGiftTxt + ' = ' + NbCommas(lsMarket.buyable.gift.Value) + ' <span class="imgMoney"></span>' + '<br /><font style="color:gray;">' + texts[lang].restock + ': ' + d.toLocaleString() + ' (' + texts[lang].or_level + ' ' + (Hero.infos.level+1) + ')</font>'; } // my stocks var myArmorTxt = NbCommas(lsMarket.stocks.armor.Nb) + (lsMarket.stocks.armor.Nb > 99 ? '+ ' : ' ') + ' ' + texts[lang].equipments, myBoosterTxt = NbCommas(lsMarket.stocks.booster.Nb) + ' ' + texts[lang].boosters, myBookTxt = NbCommas(lsMarket.stocks.potion.Nb) + ' ' + texts[lang].books + '(' + NbCommas(lsMarket.stocks.potion.Xp) + ' ' + texts[lang].Xp + ')', myGiftTxt = NbCommas(lsMarket.stocks.gift.Nb) + ' ' + texts[lang].gifts + ' (' + NbCommas(lsMarket.stocks.gift.Xp) + ' ' + texts[lang].affection + ')', MarketStocks = '- ' + myArmorTxt + ', ' + myBoosterTxt + '<br />- ' + myBookTxt + '<br />- ' + myGiftTxt + '<span class="subTitle">' + texts[lang].currently_buyable + ':</span>' + RestockInfo; } catch(e) { MarketStocks = (lsAvailable == 'yes') ? '> ' + texts[lang].visit_the : '> ' + texts[lang].not_combatible; } var StatsString = '<div class="StatsContent"><span class="Title">' + texts[lang].harem_stats + ':</span>' + '<span class="subTitle" style="margin-top:-10px;">' + stats.girls + ' ' + texts[lang].haremettes +':</span>' + '- ' + stats.caracs[1] + ' ' + texts[lang].hardcore + ', ' + stats.caracs[2] + ' ' + texts[lang].charm + ', ' + stats.caracs[3] + ' ' + texts[lang].know_how + '' + '<br />- ' + stats.rarities.starting + ' ' + texts[lang].starter + ', ' + stats.rarities.common + ' ' + texts[lang].common + ', ' + stats.rarities.rare + ' ' + texts[lang].rare + ', ' + stats.rarities.epic + ' ' + texts[lang].epic + ', ' + stats.rarities.legendary + ' ' + texts[lang].legendary + ' ' + '<br />- ' + stats.unlockedScenes + '/' + stats.allScenes + ' ' + texts[lang].unlocked_scenes + '' + '<span class="subTitle">' + texts[lang].money_incomes + ':</span>' + '~' + NbCommas(stats.hourlyMoney) + ' <span class="imgMoney"></span> ' + texts[lang].per_hour + '<br />' + NbCommas(stats.allCollect) + ' <span class="imgMoney"></span> ' + texts[lang].when_all_collectable + '<span class="subTitle">' + texts[lang].required_to_unlock + ':</span>' + addPriceRow('', stats.affection, stats.money, stats.kobans) + '<span class="subTitle">' + texts[lang].required_to_get_max_level + ':</span>' //fdfdf + NbCommas(stats.xp) + ' ' + texts[lang].Xp + ' (' + NbCommas(stats.xp*200) + ' <span class="imgMoney"></span>), '+ ' <br />' + '<span class="subTitle">' + texts[lang].my_stocks + ':</span>' + MarketStocks + '</div>'; /* Kuchendiagramm! */ // add custom bar buttons/links & quick list div & stats div $('#harem_left').append('<div id="CustomBar">' + '<img f="stats" src="https://www.pinclipart.com/picdir/big/85-850772_svg-charts-pie-graphic-library-download-pie-chart.png">' + '</div>' + '<div id="TabsContainer">' + StatsString + '</div>'); // cache var TabsContainer = $('#TabsContainer'); var Stats = TabsContainer.children('.StatsContent'); // catch clicks $('body').click(function(e) { var clickOn = e.target.getAttribute('f'); switch (clickOn) { // on quick list button case 'stats': toggleTabs(Stats); break; // on a girl in quick list default: var clickedContainer = $(e.target).closest('[id]').attr('id'); if (clickedContainer == 'TabsContainer') return; TabsContainer.fadeOut(400); } }); // tabs switching animations function toggleTabs(tabIn) { if (TabsContainer.css('display') == 'block') { setTimeout( function(){ tabIn.fadeIn(300); }, 205 ); TabsContainer.fadeOut(400); } else { tabIn.toggle(true); TabsContainer.fadeIn(400); } } haremCss(); function addPriceRow(rowName, affection, money, kobans){ return '<b>' + rowName + '</b> ' + NbCommas(affection) + ' ' + texts[lang].affection + '(' + NbCommas(affection*417) + ' <span class="imgMoney"></span>) and '+ NbCommas(money) + ' <span class="imgMoney"></span> ' + texts[lang].or + ' '+ NbCommas(kobans) + ' <span class="imgKobans"></span><br />'; } function addPriceRowGirl(rowName, affection, money, kobans){ return '<b>' + rowName + ':</b> ' + NbCommas(affection) + ' ' + texts[lang].affection + '(' + NbCommas(affection*417) + ' <span class="imgMoney"></span>) and '+ NbCommas(money) + ' <span class="imgMoney"></span> ' + texts[lang].or + ' '+ NbCommas(kobans) + ' <span class="imgKobans"></span><br />'; } $( ".girls_list div[id_girl]" ).click(function() { updateInfo(); }); updateInfo(); function updateInfo(){ setTimeout(function (){ haremRight.children('[girl]').each( function() { var girl = girlsDataList[$(this).attr('girl')]; var j = 0, FirstLockedScene = 1, AffectionTT = texts[lang].evolution_costs + ':<br />', ScenesLink = '', girl_quests = $(this).find('.girl_quests'); girl_quests.find('g').each( function() { j++; var aff=0, money = 0, kobans=0; var currentLevelMoney = 0, currentLevelKobans = 0; if(girl.graded != 0){ currentLevelMoney = EvoReq[girl.rarity][girl.graded-1].tmoney, currentLevelKobans = EvoReq[girl.rarity][girl.graded-1].tkobans; } if(girl.graded >= j){ } else if( (girl.graded +1) ==j && girl.Affection.level == j){ money = EvoReq[girl.rarity][j -1].tmoney - currentLevelMoney; if(hh_nutaku){ kobans = Math.ceil((EvoReq[girl.rarity][j -1].tkobans - currentLevelKobans)/6); } else { kobans = EvoReq[girl.rarity][j -1].tkobans - currentLevelKobans; } } else{ aff = EvoReq[girl.rarity][j-1].taffection - girl.Affection.cur; money = EvoReq[girl.rarity][j -1].tmoney - currentLevelMoney; if(hh_nutaku){ kobans = Math.ceil((EvoReq[girl.rarity][j -1].tkobans - currentLevelKobans)/6); } else { kobans = EvoReq[girl.rarity][j -1].tkobans - currentLevelKobans; } } AffectionTT += addPriceRowGirl(j + '</b><span class="imgStar"></span>', aff, money, kobans); ScenesLink += (ScenesLink === '') ? 'hh_scenes=' : ','; var SceneHref = $(this).parent().attr('href'); if ($(this).hasClass('grey') || $(this).hasClass('green')) { if (FirstLockedScene === 0) { ScenesLink += '0'; } else { FirstLockedScene = 0; var XpLeft = girl_quests.parent().parent().children('.girl_exp_left'); var isUpgradable = girl_quests.parent().children('.green_text_button'); ScenesLink += (isUpgradable.length) ? '0.' + isUpgradable.attr('href').substr(7) : '0'; } } else { var attrHref = $(this).parent().attr('href'); if (typeof attrHref != 'undefined') { ScenesLink += attrHref.substr(7); } } }); // change scene links girl_quests.children('a').each(function() { var attr = $(this).attr('href'); if (typeof attr !== typeof undefined && attr !== false) { $(this).attr('href', attr + '?' + ScenesLink); } }); ScenesLink = ''; // AffectionTT += addPriceRow(texts[lang].total, Taffection, Tmoney, Tkobans); }); }, 50); } } /* ========== Scenes ========== */ function ModifyScenes() { // parse GET hh_scenes variable if (new URL(window.location.href).searchParams.get('hh_scenes') == null) return; var currentScene = CurrentPage.substr(7), hh_scenesParams = new URL(window.location.href).searchParams.get('hh_scenes'), hh_scenes = hh_scenesParams.split(','), len = hh_scenes.length; // no scenes, less than 3 or more than 5 (human manipulation) if (!len || len < 3 || len > 5) { return false; } else { var ScenesNavigate = '<div class="Scenes" style="display:block;">' + texts[lang].navigate + ':<br/>', SceneLink = ''; for (var i = 0; i < len; i++ ) { // string format certification if (/^(0\.)?[0-9]{1,5}$/.test(hh_scenes[i]) === true) { if (hh_scenes[i] == currentScene) { SceneLink = '<span class="current">' + texts[lang].current + '</span>'; } else if (hh_scenes[i] == '0') { SceneLink = '<span class="locked">' + texts[lang].locked + '</span>'; } else if (parseInt(hh_scenes[i], 10) < 1) { SceneLink = '<a href="/quest/' + hh_scenes[i].substr(2) + '">' + texts[lang].unlock_it + '!</a>'; } else { SceneLink = '<a href="/quest/' + hh_scenes[i] + '?hh_scenes=' + hh_scenesParams + '">' + texts[lang].scene + '</a>'; } ScenesNavigate += (i+1) + '<span class="imgStar"></span> ' + SceneLink + '<br />'; } // string error: doesn't match (human manipulation) else return false; } ScenesNavigate += '<span class="backToHarem">< <a href="' + $('#breadcrumbs').children('a').eq(2).attr('href') + '">' + texts[lang].harem + '</a></span></div>'; // insert navigate interface $('#controls').append(ScenesNavigate); } scenesCss(); } var myeyes = document.querySelector("#scene > div > div.eye"); myeyes.setAttribute('left: 0px'); // is localstorage available? function lsTest() { try { localStorage.setItem('test', 'test'); localStorage.removeItem('test'); return true; } catch(e) { return false; } } // adds thousands commas function NbCommas(x) { return x.toLocaleString(); /* if(lang == "fr" || lang == "es" || lang == "et"){ return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " "); } return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); */} function fightTrollCss(){ sheet.insertRule('.currency div{' + 'margin-left: 25px !important;'); sheet.insertRule('.scriptquest {' + 'left: -30px !important;' + 'top: 25px !important;'); sheet.insertRule('.scriptInfo {' + 'position: absolute;' + 'z-index: 99;' + 'width: 90%;' + 'margin:5px 0 0 13px;' + 'border-radius: 8px 10px 10px 8px;' + 'background-color: rgba(0,0,0,.8);' + 'box-shadow: 0 0 0 1px rgba(255,255,255,0.73);' + 'font-size: 12px;' + 'font-weight: 400;' + 'letter-spacing: .22px;' + 'color: #fff;' + 'text-align: center; }'); sheet.insertRule('.scriptInfo a {' + 'font-family: "Carter One", "Alegreya Sans", cursive !important;' + 'color: rgb(255, 255, 255);' + 'text-decoration: none; }'); /* sheet.insertRule('#FightTroll {' + 'position: absolute;' + 'z-index: 99;' + 'width: 90%;' + 'margin:21px 0 0 13px;' + 'border-radius: 8px 10px 10px 8px;' + 'background-color: rgba(0,0,0,.8);' + 'box-shadow: 0 0 0 1px rgba(255,255,255,0.73);' + 'text-align: center; }');*/ sheet.insertRule('.eventTroll {' + 'color: #f70 !important; }'); sheet.insertRule('.eventTroll:hover {' + 'color: #fa0 !important; }'); sheet.insertRule('#FightTroll > .Arrow {' + 'float:right;' + 'background-image: url("https://i.harem-battle.club/images/2017/09/19/Fmo.png");' + 'background-size: 18px 18px;' + 'background-repeat: no-repeat;' + 'width: 18px;' + 'height: 18px; }'); sheet.insertRule('#FightTroll > .TrollsMenu {' + 'position: absolute;' + 'width: 88%;' + 'margin-left:6px;' + 'border-radius: 0px 0 8px 8px;' + 'background-color: rgba(0,0,0,.8);' + 'line-height: 15px;' + 'opacity: 0;' + 'visibility: hidden;' + 'transition: opacity 400ms, visibility 400ms; }'); sheet.insertRule('#FightTroll:hover > .TrollsMenu {' + 'opacity: 1;' + 'visibility: visible; }'); sheet.insertRule('#FightTroll a {' + 'color: rgb(255, 255, 255);' + 'text-decoration: none; }'); sheet.insertRule('#FightTroll a:hover {' + 'color: rgb(255, 247, 204);' + 'text-decoration: underline; }'); sheet.insertRule('.hudScript_mix_icn{' + 'display:block;' + 'width:29px;' + 'height:31px;' + 'background-image:url(https://hh.hh-content.com/league_points.png);' + 'background-size:25px;' + 'background-position:center;' + 'background-repeat:no-repeat;' + 'margin:0;' + 'padding:0;' + 'position:absolute;' + 'left:16px;' + 'z-index:36}'); } function marketCss(){ // ----------------- // CSS RULES // ----------------- sheet.insertRule('#inventory .CustomTT {' + 'float: right;' + 'margin: 11px 1px 0 0;' + 'background-image: url("https://i.harem-battle.club/images/2017/09/13/FPE.png");' + 'background-size: 20px 20px;' + 'width: 20px;' + 'height: 20px; }'); sheet.insertRule('#inventory .CustomTT:hover {' + 'cursor: help; }'); sheet.insertRule('#inventory .CustomTT:hover + div {' + 'opacity: 1;' + 'visibility: visible; }'); sheet.insertRule('#inventory .EquipmentsTooltip, #inventory .BoostersTooltip, #inventory .BooksTooltip, #inventory .GiftsTooltip {' + 'position: absolute;' + 'z-index: 99;' + 'width: 240px;' + 'border: 1px solid rgb(162, 195, 215);' + 'border-radius: 8px;' + 'box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.1);' + 'padding: 3px 7px 4px 7px;' + 'background-color: #F2F2F2;' + 'font: normal 10px/17px Tahoma, Helvetica, Arial, sans-serif;' + 'color: #057;' + 'opacity: 0;' + 'visibility: hidden;' + 'transition: opacity 400ms, visibility 400ms; }'); sheet.insertRule('#inventory .EquipmentsTooltip, #inventory .BoostersTooltip {' + 'margin: -33px 0 0 210px;' + 'height: 43px; }'); sheet.insertRule('#inventory .BooksTooltip, #inventory .GiftsTooltip {' + 'margin: -50px 0 0 210px;' + 'height: 60px; }'); sheet.insertRule('#inventory .EquipmentsTooltip b, #inventory .BoostersTooltip b, #inventory .BooksTooltip b, #inventory .GiftsTooltip b {' + 'font-weight:bold; }'); sheet.insertRule('#inventory .imgMoney {' + 'background-size: 12px 12px;' + 'background-repeat: no-repeat;' + 'width: 12px;' + 'height: 14px;' + 'vertical-align: text-bottom;' + 'background-image: url("https://hh2.hh-content.com/design/ic_SC.png");' + 'display: inline-block; }'); sheet.insertRule('.hero_stats .CustomStats:hover {' + 'cursor: help; }'); sheet.insertRule('.hero_stats .CustomStats {' + 'float: right;' + 'margin-left: -25px;' + 'background-image: url("https://hh2.hh-content.com/ic_new.png");' + 'background-size: 18px 18px;' + 'background-position: center;' + 'background-repeat: no-repeat;' + 'width: 18px;' + 'height: 100%;' + 'visibility: none; }'); sheet.insertRule('.hero_stats .CustomStats:hover + div {' + 'opacity: 1;' + 'visibility: visible; }'); sheet.insertRule('.hero_stats .StatsTooltip {' + 'position: absolute;' + 'z-index: 99;' + 'margin: -130px 0 0 -28px;' + 'width: 280px;' + 'height: 127px;' + 'border: 1px solid rgb(162, 195, 215);' + 'border-radius: 8px;' + 'box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.1);' + 'padding: 3px 7px 4px 7px;' + 'background-color: #F2F2F2;' + 'font: normal 10px/17px Tahoma, Helvetica, Arial, sans-serif;;' + 'text-align: left;' + 'opacity: 0;' + 'visibility: hidden;' + 'transition: opacity 400ms, visibility 400ms; }'); sheet.insertRule('.hero_stats .StatsTooltip b {' + 'font-weight: bold; }'); } function haremCss(){ // ----------------- // CSS RULES // ----------------- sheet.insertRule('#harem_left #collect_all_container {' + 'margin: 5px auto; }'); sheet.insertRule('#harem_left .HaremetteNb {' + 'float: right;' + 'line-height: 14px;' + 'font-size: 12px; }'); sheet.insertRule('#CustomBar {' // + 'position: absolute;' + 'z-index: 99;' + 'width: 100%;' + 'padding: 3px 10px 0 3px;' + 'font: bold 10px Tahoma, Helvetica, Arial, sans-serif;' + 'position: absolute; bottom: 3px; left: 0px; }'); sheet.insertRule('#CustomBar img {' + 'width: 20px;' + 'height: 20px;' + 'margin-right: 3px;' + 'opacity: 0.5; }'); sheet.insertRule('#CustomBar img:hover {' + 'opacity: 1;' + 'cursor: pointer; }'); sheet.insertRule('#CustomBar .TopBottomLinks {' + 'float: right;' + 'margin-top: 2px; }'); sheet.insertRule('#CustomBar a, #TabsContainer a {' + 'color: #008;' + 'text-decoration: none; }'); sheet.insertRule('#harem_right .WikiLink a {' + 'color: #87CEFA;' + 'text-decoration: none; }'); sheet.insertRule('#CustomBar a:hover, #TabsContainer a:hover, #harem_right .WikiLink a:hover {' + 'color: #B14;' + 'text-decoration: underline; }'); sheet.insertRule('#TabsContainer {' // + 'position: relative;' + 'z-index: 99;' + 'margin: -290px 0 0 -1px;' + 'width: 240px;' + 'height: 270px;' + 'overflow-y: scroll;' + 'box-sizing: content-box;' + 'border: 1px solid rgb(156, 182, 213);' + 'box-shadow: 1px -1px 1px 0px rgba(0,0,0,0.3);' + 'font: normal 10px/16px Tahoma, Helvetica, Arial, sans-serif;' + 'color: #ffffff;' + 'background: #000000f0;' + 'display: flex; }'); sheet.insertRule('#TabsContainer > div {' + 'padding: 1px 0 8px 10px; }'); sheet.insertRule('#TabsContainer .Title {' + 'margin-left: -5px;' + 'font: bold 12px/22px Tahoma, Helvetica, Arial, sans-serif;' + 'color: #B14; }'); sheet.insertRule('#TabsContainer .subTitle {' + 'padding-top: 10px;;' + 'font-weight: bold;' + 'display: block; }'); sheet.insertRule('#TabsContainer img {' + 'width: 14px;' + 'height: 14px;' + 'vertical-align: text-bottom; }'); sheet.insertRule('.StatsContent, #TabsContainer span, #TabsContainer img, #TabsContainer a, #TabsContainer b, #TabsContainer br {' + 'box-sizing: content-box; }'); sheet.insertRule('#harem_right .CustomTT {' + 'float: right;' + 'margin-left: -25px;' + 'background-image: url("https://hh2.hh-content.com/ic_new.png");' + 'background-size: 18px 18px;' + 'width: 18px;' + 'height: 18px;' + 'visibility: none; }'); sheet.insertRule('#harem_right .CustomTT:hover {' + 'cursor: help; }'); sheet.insertRule('#harem_right .CustomTT:hover + div {' + 'opacity: 1;' + 'visibility: visible; }'); sheet.insertRule('#harem_right .AffectionTooltip {' + 'position: absolute;' + 'z-index: 99;' + 'margin: 20px 0 0 0;' + 'width: 320px;' + 'display: block; overflow: auto;' + 'border: 1px solid rgb(162, 195, 215);' + 'border-radius: 8px;' + 'box-shadow: 0px 0px 4px 0px rgba(0,0,0,0.1);' + 'padding: 3px 7px 4px 7px;' + 'background-color: #F2F2F2;' + 'color: #1E90FF;' + 'font: normal 10px/17px Tahoma, Helvetica, Arial, sans-serif;;' + 'text-align: left;' + 'text-shadow: none;' + 'opacity: 0;' + 'visibility: hidden;' + 'transition: opacity 400ms, visibility 400ms; }'); sheet.insertRule('#collect_all_container {' + 'margin-top: 0px !important; }'); sheet.insertRule('#harem_right .AffectionTooltip b {' + 'font-weight: bold; }'); sheet.insertRule('#harem_right .WikiLink {' // + 'float: right;' // + 'margin: -13px 7px 0 0;' + 'font-size: 12px; }'); sheet.insertRule('#harem_right .WikiLinkDialogbox a {' + 'text-decoration: none;' + 'color: #24a0ff !important; }'); sheet.insertRule('#harem_right .imgStar, #harem_right .imgMoney, #harem_right .imgKobans, #harem_left .imgStar, #harem_left .imgMoney, #harem_left .imgKobans {' + 'background-size: 10px 10px;' + 'background-repeat: no-repeat;' + 'width: 10px;' + 'height: 14px;' + 'display: inline-block; }'); sheet.insertRule('#harem_right .imgStar, #harem_left .imgStar {' + 'background-image: url("https://hh2.hh-content.com/design_v2/affstar_S.png"); }'); sheet.insertRule('#harem_right .imgMoney, #harem_left .imgMoney {' + 'background-image: url("https://hh2.hh-content.com/design/ic_SC.png"); }'); sheet.insertRule('#harem_right .imgKobans, #harem_left .imgKobans {' + 'background-image: url("https://hh2.hh-content.com/design/ic_HC.png"); }'); } function scenesCss(){ // ----------------- // CSS RULES // ----------------- sheet.insertRule('#controls .Scenes {' + 'height:200px;' + 'box-shadow: 3px 3px 0px 0px rgba(0,0,0,0.3);' + 'background-color:#000000;' + 'background: linear-gradient(to bottom, rgba(196,3,35,1) 0%,rgba(132,2,30,1) 51%,rgba(79,0,14,1) 100%);' + 'text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4);' + 'display: block !important; }'); sheet.insertRule('#controls .current {' + 'color: rgb(251, 255, 108); }'); sheet.insertRule('#controls .locked {' + 'color: rgb(150, 99, 99); }'); sheet.insertRule('#controls .Scenes a {' + 'color: rgb(233, 142, 228);' + 'text-decoration: none; }'); sheet.insertRule('#controls .Scenes a:hover {' + 'color: rgb(254, 202, 255);' + 'text-decoration: underline; }'); sheet.insertRule('#controls .backToHarem {' + 'position: absolute;' + 'bottom: 0;' + 'left: 0;' + 'width: 100%; }'); sheet.insertRule('#controls .imgStar {' + 'background-image: url("https://hh2.hh-content.com/design_v2/affstar_S.png");' + 'background-size: 10px 10px;' + 'background-repeat: no-repeat;' + 'width: 10px;' + 'height: 18px;' + 'display: inline-block; }'); }