Popup.js

De Wiki The-West FR
Révision datée du 14 août 2023 à 22:44 par Mysehra (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation

westui = {

   lang: {
       input_level: "Niveau",
       input_search: "Recherche",
       damages: "Dégâts",
       per_level: "par Niveau",
       speed: "Vitesse",
       level: "Niveau",
       unsalable: "Non vendable",
       auction: "Peut être acheté/vendu aux enchères",
       not_auction: "Ne peut pas être acheté/vendu aux enchères",
       not_upgrade: "Non améliorable",
       upgrade: "Améliorable",
       dropable: "Peut être droppé",
       not_dropable: "Ne peut pas être droppé",
       total: "Total",
       popup: {
           dmg: {

dglvl: '

'

           },
           skills: {

fo: '

', mo: '

', ha: '

', ch: '

', co: '

', pu: '

', te: '

', pe: '

', pv: '

', mc: '

', rx: '

', ev: '

', ca: '

', na: '

', vi: '

', ti: '

', pi: '

', de: '

', re: '

', di: '

', ta: '

', ma: '

', an: '

', pr: '

'

           },
           fb: {

fbdef: '

', fboff: '

', fbres: '

', fbdefs: '

', fboffs: '

', fbdmgs: '

'

           },
           special: {

xp: '

', money: '

', luck: '

', regen: '

', drop: '

', labor_pts: '

', spd: '

'

           }
       }
   },
   config: {
       enable_set_calc: !0,
       plain_popup: !1,
       redirect_on_dblclick: !1,
       link_on_dblclick: !1,
       enable_sorting: !0,
       cdn: "https://westzz.innogamescdn.com",
       img_buyprice: "/images/2/22/Achat.png",
       img_sellprice: "/images/3/3b/Vente.png",
       img_male: "/images/8/83/Homme.png",
       img_female: "/images/8/8c/Femme.png",
       set_bonus: {
           fo: {
               name: "Force",
               img: "/images/thumb/0/09/Force.png/40px-Force.png"
           },
           mo: {
               name: "Mobilité",
               img: "/images/thumb/c/c1/Mobilit%C3%A9.png/40px-Mobilit%C3%A9.png"
           },
           ha: {
               name: "Habileté",
               img: "/images/thumb/1/1a/Habilet%C3%A9.png/40px-Habilet%C3%A9.png"
           },
           ch: {
               name: "Charisme",
               img: "/images/thumb/8/8f/Charisme.png/40px-Charisme.png"
           },
           co: {
               name: "Construire",
               img: "/images/thumb/0/0e/Construire.png/40px-Construire.png"
           },
           pu: {
               name: "Puissance",
               img: "/images/thumb/f/f4/Puissance.png/40px-Puissance.png"
           },
           te: {
               name: "Ténacité",
               img: "/images/thumb/8/85/T%C3%A9nacit%C3%A9.png/40px-T%C3%A9nacit%C3%A9.png"
           },
           pe: {
               name: "Persévérance",
               img: "/images/thumb/e/e9/Pers%C3%A9v%C3%A9rance.png/40px-Pers%C3%A9v%C3%A9rance.png"
           },
           pv: {
               name: "Points de vie",
               img: "/images/thumb/b/bb/Points_de_vie_aptitude.png/40px-Points_de_vie_aptitude.png"
           },
           mc: {
               name: "Monter à cheval",
               img: "/images/thumb/0/01/Monter_%C3%A0_cheval.png/40px-Monter_%C3%A0_cheval.png"
           },
           rx: {
               name: "Réflexe",
               img: "/images/thumb/5/52/R%C3%A9flexe.png/40px-R%C3%A9flexe.png"
           },
           ev: {
               name: "Eviter",
               img: "/images/thumb/f/ff/Eviter.png/40px-Eviter.png"
           },
           ca: {
               name: "Se cacher",
               img: "/images/thumb/5/5f/Se_cacher.png/40px-Se_cacher.png"
           },
           na: {
               name: "Nager",
               img: "/images/thumb/b/b8/Nager.png/40px-Nager.png"
           },
           vi: {
               name: "Viser",
               img: "/images/thumb/6/68/Viser.png/40px-Viser.png"
           },
           ti: {
               name: "Tirer",
               img: "/images/thumb/f/f9/Tirer.png/40px-Tirer.png"
           },
           pi: {
               name: "Piéger",
               img: "/images/thumb/2/26/Pi%C3%A9ger.png/40px-Pi%C3%A9ger.png"
           },
           de: {
               name: "Dextérité",
               img: "/images/thumb/4/4a/Dext%C3%A9rit%C3%A9.png/40px-Dext%C3%A9rit%C3%A9.png"
           },
           re: {
               name: "Réparer",
               img: "/images/thumb/c/cc/R%C3%A9parer.png/40px-R%C3%A9parer.png"
           },
           di: {
               name: "Diriger",
               img: "/images/thumb/b/b5/Diriger.png/40px-Diriger.png"
           },
           ta: {
               name: "Tactique",
               img: "/images/thumb/2/2c/Tactique.png/40px-Tactique.png"
           },
           ma: {
               name: "Marchander",
               img: "/images/thumb/c/ca/Marchander_aptitude.png/40px-Marchander_aptitude.png"
           },
           an: {
               name: "Manier les animaux",
               img: "/images/thumb/b/be/Manier_les_animaux.png/40px-Manier_les_animaux.png"
           },
           pr: {
               name: "Prestance",
               img: "/images/thumb/c/cb/Prestance.png/40px-Prestance.png"
           },
           fbdef: {
               name: "Défense (Bonus de bataille de fort)",
               img: "/images/thumb/2/2d/D%C3%A9fense.png/40px-D%C3%A9fense.png"
           },
           fboff: {
               name: "Attaque (Bonus de bataille de fort)",
               img: "/images/thumb/e/ef/Attaque.png/40px-Attaque.png"
           },
           fbres: {
               name: "Résistance (Bonus de bataille de fort)",
               img: "/images/4/4a/R%C3%A9sistance.png"
           },
           fbdefs: {
               name: "Défense (Bonus de secteur de bataille de fort)",
               img: "/images/thumb/2/2d/D%C3%A9fense.png/40px-D%C3%A9fense.png"
           },
           fboffs: {
               name: "Attaque (Bonus de secteur de bataille de fort)",
               img: "/images/thumb/e/ef/Attaque.png/40px-Attaque.png"
           },
           fbdmgs: {
               name: "Dégâts (Bonus de secteur de bataille de fort)",
               img: "/images/5/54/Dommages.png"
           },
           fbdmg: {
               name: "Dégâts (Bonus de bataille de fort)",
               img: "/images/5/54/Dommages.png"
           },
           xp: {
               name: "Expérience pour les travaux, duels et batailles de fort (%)",
               img: "/images/0/01/Xxp.png"
           },
           money: {
               name: "Argent en travaux et duels (%)",
               img: "/images/f/fd/Dollarb.png"
           },
           luck: {
               name: "Probabilité de chance en plus (%)",
               img: "/images/f/f0/Luck.png"
           },
           regen: {
               name: "Régénération (%)",
               img: "/images/4/44/R%C3%A9g%C3%A9n%C3%A9ration.png"
           },
           drop: {
               name: "Chance de drop améliorée pour les produits (%)",
               img: "/images/thumb/f/f6/Luck_prod.png/40px-Luck_prod.png"
           },
           labor_pts: {
               name: "Points de travail supplémentaires (sur tous les travaux)",
               img: "/images/d/df/Jobs.png"
           },
           spd: {
               name: "Vitesse",
               img: "/images/thumb/f/fb/Vitesse.png/40px-Vitesse.png"
           }
       },
       sorting: {
           Aucun: '{"id":1}',
           Force: '{"fo":1}',
           "Mobilité": '{"mo":1}',
           "Habileté": '{"ha":1}',
           Charisme: '{"ch":1}',
           Construction: '{"fo":1,"co":1}',
           Puissance: '{"fo":1,"pu":1}',
           "Ténacité": '{"fo":1,"te":1}',
           "Persévérance": '{"fo":1,"pe":1}',
           "Points de vie": '{"fo":1,"pv":1}',
           "Monter à cheval": '{"mo":1,"mc":1}',
           "Réflexe": '{"mo":1,"rx":1}',
           Eviter: '{"mo":1,"ev":1}',
           "Se cacher": '{"mo":1,"ca":1}',
           Nager: '{"mo":1,"na":1}',
           Viser: '{"ha":1,"vi":1}',
           Tirer: '{"ha":1,"ti":1}',
           "Piéger": '{"ha":1,"pi":1}',
           "Dextérité": '{"ha":1,"de":1}',
           "Réparer": '{"ha":1,"re":1}',
           Diriger: '{"ch":1,"di":1}',
           Tactique: '{"ch":1,"ta":1}',
           Marchander: '{"ch":1,"ma":1}',
           "Manier les animaux": '{"ch":1,"an":1}',
           Prestance: '{"ch":1,"pr":1}',
           "Points de travail pour construire": '{"fo":3,"co":3,"ha":1,"re":1,"ch":1,"di":1}',
           "Expérience pour les travaux, duels et batailles de fort (%)": '{"xp":1}',
           "Argent en travaux et duels (%)": '{"money":1}',
           "Probabilité de chance en plus (%)": '{"luck":1}',
           "Régénération (%)": '{"regen":1}',
           "Chance de drop (%)": '{"drop":1}',
           "Vitesse (%)": '{"spd":1,"hspd":1,"mo":1,"mc":1}',
           "Dégât moyen": '{"dgmin":0.5,"dgmax":0.5,"dglvl":1}',
           "Dégât maximal": '{"dgmax":1,"dglvl":1}',
           "Items améliorables": '{"bool":true,"upg":1}',
           "Items non améliorables": '{"bool":true,"upg":0}',
           "Items vendables aux enchères": '{"bool":true,"auc":1}',
           "Items non vendables aux enchères": '{"bool":true,"auc":0}',
           "Items pouvant être droppés": '{"bool":true,"dropable":1}',
           "Items disponibles dans les magasins": '{"bool":true,"shop":1}',
           "Items nobles": '{"bool":true,"shop":0,"dropable":1}'
       }
   },
   initPage: function() {
       if (1 === $("#input_level").length) var e = $('<input type="number" style="width:80px;" class="west" placeholder="' + westui.lang.input_level + '" min="0" max="250">').bind("propertychange keyup input paste", function() {
           this.value > 250 ? this.value = 250 : this.value < 0 && (this.value = 0), $(".calc").each(function() {
               0 == e.val() ? ($(this).html(this.id), $(".per_level_off").addClass("per_level").removeClass("per_level_off")) : ($(this).html(Math.ceil(Number(this.id) * e.val())), $(".per_level").addClass("per_level_off").removeClass("per_level"))
           })
       }).appendTo($("#input_level"));
       if (1 === $("#input_search").length) $('<input type="search" class="west" placeholder="' + westui.lang.input_search + '">').bind("propertychange keyup input paste", function() {
           var e = this.value.toLowerCase();
           "" === e ? $(".item_container").show() : ($(".item_container").hide(), $(".item_container").filter(function() {
               return $(this).attr("data-popup").toLowerCase().indexOf(e) > -1
           }).show())
       }).appendTo($("#input_search"));
       1 === $("#switch").length && ($("#fire").hide(), $("#switch").on("click", function() {
           $("#melee, #fire").toggle()
       })), 1 === $("#switch_prod").length && ($("#prod2").hide(), $("#switch_prod").on("click", function() {
           $("#prod, #prod2").toggle()

})), westui.config.plain_popup && new RegExp(mw.config.get("wgFormattedNamespaces")[10] + ":Item_*").test(mw.config.get("wgPageName")) && 1 === $(".item_container").length && ($("#mw-content-text").append('

'), $("#popup_plain").hide(), $("#popup_plain_contents").append(westui.popup.createPopup($(".item_container"), 0)), $("#popup_plain").slideDown()), westui.config.redirect_on_dblclick && $(".item_container img").on("dblclick", function() {

           window.location = "/wiki/" + mw.config.get("wgFormattedNamespaces")[10] + ":Item_" + JSON.parse($(this).parent().attr("data-popup")).id / 1e3
       }), westui.config.link_on_dblclick && $(".item_container img").on("dblclick", function() {
           window.location = "/wiki/" + $(this).parent().attr("data-link")
       })
   },
   popup: {
       content: "",
       delay: 200,
       active: !1,
       show: function(e) {
           westui.popup.content = westui.popup.createPopup($(e), parseInt($(e).attr("data-lvl"))), westui.popup.active = !0, westui.popup.setTimeout(), westui.popup.getContainer().html(westui.popup.content)
       },
       hide: function() {
           westui.popup.getEl().css({
               display: "none",
               top: 0,
               left: 0
           }), westui.popup.active = !1, westui.popup.clearTimeout()
       },
       setTimeout: function() {
           westui.popup.clearTimeout(), westui.popup.timer = window.setTimeout(function() {
               westui.popup.getEl().css("display", "block")
           }, westui.popup.delay)
       },
       clearTimeout: function() {
           westui.popup.timer && window.clearTimeout(westui.popup.timer)
       },
       getEl: function() {
           return $("#popup_window")
       },
       getContainer: function() {
           return $("#popup_contents")
       },
       createPopup: function(e, t) {
           var a = JSON.parse(e.attr("data-popup")),
               i = e.attr("data-cache"),

s = (e.attr("data-cdn-cat"), e.attr("data-cdn-img"), '


"),

               p = !1;

if (t >= 1 && t <= 5 && (p = !0, a.auc = !1), a.dgmin && a.dgmax && (p && (a.dgmin += Math.round(Math.max(1, .1 * a.dgmin * t)), a.dgmax += Math.round(Math.max(1, .1 * a.dgmax * t))), s += '

"), a.text) { for (var n = 0; n < a.text.length; n++) s += '

";

               s += "
" } for (var o in westui.lang.popup) { var l = 0; for (var r in westui.lang.popup[o]) if (a.hasOwnProperty(r)) { l++; var c = ""; a[r] < 0 ? $("#input_level input").val() > 0 ? (a[r] = Math.ceil($("#input_level input").val() * -a[r]), p && (a[r] += Math.round(Math.max(1, .1 * a[r] * t)))) : (a[r] = -a[r], c = " (" + westui.lang.per_level + ")", p && (a[r] = Math.round(1e6 * (1 * a[r] + Math.round(Math.max(1, 1e3 * a[r] * t)) / 1e4)) / 1e6)) : p && (a[r] < 1 ? a[r] = Math.round(1e6 * (1 * a[r] + Math.round(Math.max(1, 1e3 * a[r] * t)) / 1e4)) / 1e6 : a[r] += Math.round(Math.max(1, .1 * a[r] * t))), s += westui.lang.popup[o][r].replace("#1", a[r]).replace("#2", c) } l > 0 && (s += "
") } if (a.textjob) {

for (n = 0; n < a.textjob.length; n++) s += '

";

               s += "
" } if (a.bonus) {

for (n = 0; n < a.bonus.length; n++) s += '

";

               s += "
" } if (a.jobs) {

s += '

'; for (n = 0; n < a.jobs.length; n++) s += '"; s += "

"

           }
           if (a.craft) {

s += '

"

           }

return s += '

"

       },
       setPosition: function(e) {
           var t, a, i = $(window).width(),
               s = $(window).height(),
               p = westui.popup.getEl().outerWidth(),
               n = westui.popup.getEl().outerHeight(),
               o = e.clientX,
               l = e.clientY;
           a = o + p + 20 > i ? o - p - 20 < 0 ? e.pageX - e.clientX : e.pageX - p - 20 : 20 + e.pageX, t = l + n + 20 > s ? s - n + (e.pageY - e.clientY) : 20 + e.pageY, westui.popup.getEl().css({
               top: t,
               left: a
           })
       },
       init: function() {

$("body").append('

'), $(document).on("mouseenter", ".item_container", function(e) {

               westui.popup.show(this), westui.popup.setPosition(e)
           }), $(document).on("mouseleave", ".item_container", function() {
               westui.popup.hide()
           }), $(document).on("mousemove", ".item_container", function(e) {
               westui.popup.setPosition(e)
           }), $(".item_level").mousedown(function(e) {
               e.preventDefault()
           }), $(document).on("click", ".upgrade", function() {
               var e = $(this).closest(".item_container"),
                   t = parseInt(e.attr("data-lvl"));
               5 !== t && (e.attr("data-lvl", t + 1), e.find(".level").html(t + 1)), westui.popup.show(e[0])
           }), $(document).on("click", ".downgrade", function() {
               var e = $(this).closest(".item_container"),
                   t = parseInt(e.attr("data-lvl"));
               0 !== t && (e.attr("data-lvl", t - 1), e.find(".level").html(t - 1)), westui.popup.show(e[0])
           })
       }
   },
   set_calc: {
       bonus: {
           extra_set_bonus: {}
       },
       data: {},
       itemStatus: {},
       getData: function() {
           $(".set_container").each(function() {
               var e = $(this).attr("data-set-id");
               westui.set_calc.itemStatus[e] = {}, westui.set_calc.data[e] = {
                   items: {},
                   set: {}
               }
           }), $(".infoSet").each(function() {
               var e = $(this).attr("data-set-id");
               $(this).find(".infosetatt").each(function() {
                   var t = $(this).attr("data-nb");
                   westui.set_calc.data[e].set[t] = {}, $(this).find(".set_bonus").each(function() {
                       key = $(this).attr("data-type"), 0 !== $(this).find(".calc").length ? westui.set_calc.data[e].set[t][key] = -parseFloat($(this).find(".calc").attr("id")) : westui.set_calc.data[e].set[t][key] = parseFloat($(this).find(".val").text()), westui.config.set_bonus.hasOwnProperty(key) || (westui.set_calc.bonus.extra_set_bonus[key] = {
                           img: $(this).find("img").attr("src"),
                           name: $(this).find("#tooltip_content").text()
                       })
                   })
               })
           }), $(".set_container").each(function() {
               var e = $(this).attr("data-set-id");
               $(this).find(".item_container").each(function() {
                   var t = JSON.parse($(this).attr("data-popup"));
                   for (var a in $(this).is(":hidden") ? westui.set_calc.itemStatus[e][t.id] = !1 : westui.set_calc.itemStatus[e][t.id] = 0, t) t.hasOwnProperty(a) && (westui.config.set_bonus.hasOwnProperty(a) || westui.set_calc.bonus.extra_set_bonus.hasOwnProperty(a)) && (westui.set_calc.data[e].items[a] || (westui.set_calc.data[e].items[a] = {}), westui.set_calc.data[e].items[a][t.id] = t[a])
               })
           })
       },
       calc: function() {
           if (0 === $("#input_level").length | "" !== $("#input_level input").val()) {
               var e = parseInt($("#input_level input").val());
               for (var t in total = {}, westui.set_calc.data) {
                   for (var a in westui.set_calc.data[t].items)
                       for (var i in westui.set_calc.data[t].items[a])
                           if (!1 !== westui.set_calc.itemStatus[t][i]) {
                               lvl = westui.set_calc.itemStatus[t][i], total[a] || (total[a] = 0);
                               var s = westui.set_calc.data[t].items[a][i];
                               westui.set_calc.data[t].items[a][i] < 0 ? (s = -s, westui.set_calc.itemStatus[t][i] > 0 ? total[a] += Math.ceil(s * e) + Math.round(Math.max(1, .1 * Math.ceil(s * e) * lvl)) : total[a] += Math.ceil(s * e)) : westui.set_calc.itemStatus[t][i] > 0 ? total[a] += s < 1 ? Math.round(1e6 * (1 * s + Math.round(Math.max(1, 1e3 * s * lvl)) / 1e4)) / 1e6 : s + Math.round(Math.max(1, .1 * s * lvl)) : total[a] += s
                           } var p = 0;
                   for (var i in westui.set_calc.itemStatus[t]) !1 !== westui.set_calc.itemStatus[t][i] && p++;
                   for (var a in westui.set_calc.data[t].set[p]) total[a] || (total[a] = 0), westui.set_calc.data[t].set[p][a] < 0 ? total[a] += Math.ceil(-westui.set_calc.data[t].set[p][a] * e) : total[a] += westui.set_calc.data[t].set[p][a]
               }

var n = '

<tbody>

' + westui.lang.total + "
"; for (var a in westui.config.set_bonus) total.hasOwnProperty(a) && (n += '
<img src="' + westui.config.set_bonus[a].img + '">+' + total[a] + (-1 !== ["xp", "money", "luck", "spd", "regen", "drop"].indexOf(a) ? "%" : "") + '
' + westui.config.set_bonus[a].name + "
"); for (var a in westui.set_calc.bonus.extra_set_bonus) total.hasOwnProperty(a) && (n += '
<img src="' + westui.set_calc.bonus.extra_set_bonus[a].img + '">+' + total[a] + (-1 !== ["xp", "money", "luck", "spd", "regen", "drop"].indexOf(a) ? "%" : "") + '
' + westui.set_calc.bonus.extra_set_bonus[a].name + "
");
               $("#set_calc").html(n)
           } else $("#set_calc").html("")
       },
       initEvents: function() {
           $(".item_container > img").on("click", function() {
                   var e = $(this).closest(".item_container");
                   e.toggleClass("item_off");
                   var t = e.closest(".set_container").attr("data-set-id"),
                       a = JSON.parse(e.attr("data-popup")).id;
                   e.hasClass("item_off") || e.is(":hidden") ? westui.set_calc.itemStatus[t][a] = !1 : westui.set_calc.itemStatus[t][a] = parseInt(e.attr("data-lvl")), westui.set_calc.calc()
               }), $(document).on("click", ".upgrade, .downgrade", function() {
                   var e = $(this).closest(".item_container"),
                       t = e.closest(".set_container").attr("data-set-id");
                   e.hasClass("item_off") || e.is(":hidden") || (westui.set_calc.itemStatus[t][JSON.parse(e.attr("data-popup")).id] = parseInt(e.attr("data-lvl")), westui.set_calc.calc())
               }),
               $("#input_level").bind("propertychange keyup input paste", function() {
                   westui.set_calc.calc()
               }), $("#switch").on("click", function() {
                   $("#melee, #fire").each(function() {
                       var e = $(this).find(".item_container"),
                           t = $(this).closest(".set_container").attr("data-set-id");
                       $(this).is(":hidden") ? westui.set_calc.itemStatus[t][JSON.parse(e.attr("data-popup")).id] = !1 : westui.set_calc.itemStatus[t][JSON.parse(e.attr("data-popup")).id] = parseInt(e.attr("data-lvl"))
                   }), westui.set_calc.calc()
               })
       },
       init: function() {
westui.set_calc.initEvents(), westui.set_calc.getData(), $("#mw-content-text").append('
'), 0 === $("#input_level").length && westui.set_calc.calc()
       }
   },
   sorting: {
       sortItems: function(e) {
           function t(t) {
               var a = JSON.parse($(t).attr("data-popup")),
                   i = $("#input_level input").val();
               i = i || 250;
               var s = -1 !== Object.keys(e).indexOf("id") || e.bool && !0 === e.bool,
                   p = 0;
               if (e.bool && !0 === e.bool)
                   for (var n in p = 1, e) "bool" !== n && a[n] !== e[n] && (p = 0);
               else
                   for (var n in e) "id" === n ? p -= a[n] : (!a.lvl || a.lvl <= i) && a[n] && (a[n] < 0 ? p += Math.ceil(-a[n] * i) * e[n] : p += a[n] * e[n]);
$(t).attr("data-sort", p), 0 == p && $(t).hide(), 0 !== $(t).find(".sortval").length ? s ? $(t).find(".sortval").html("") : $(t).find(".sortval").html(p) : s || $(t).append('
' + p + "
")
           }
           $(".item_container").removeAttr("data-sort").show(), $("#mw-content-text").find(".sorting_hidden").hide(), $(".sorting_container").each(function() {
               $(this).find(".item_container").sort(function(e, a) {
                   return $(e).attr("data-sort") || t(e), $(a).attr("data-sort") || t(a), $(a).attr("data-sort") - $(e).attr("data-sort")
               }).appendTo($(this))
           })
       },
       init: function() {
           if (1 === $("div#sort_items").length) {
var e = "", $("div#sort_items").html(e), $("select#sort_items").on("change", function() {
                   westui.sorting.sortItems(JSON.parse($(this).find("option:selected").attr("value")))
               })
           }
       }
   },
   init: function() {
       westui.initPage(), westui.popup.init(), westui.config.enable_sorting && westui.sorting.init(), westui.config.enable_set_calc && 0 !== $(".infoSet").length && westui.set_calc.init()
   }

}, westui.init();