Popup.js

De Wiki The-West ES
Ir a la navegación.

$('body').append('

');

$(document).on('mouseenter','.item_container',function(e){Popup.show(this);Popup.setPosition(e);}); $(document).on('mouseleave','.item_container',function(){Popup.hide();}); $(document).on('mousemove','.item_container', function(e){Popup.setPosition(e);});

$('.item_level').mousedown(function(e){ e.preventDefault(); }); $(document).on('click','.upgrade',function(){

   var container = $(this).closest('.item_container');
   var lvl = parseInt(container.attr('data-lvl'));
   if (lvl!==5){
       container.attr('data-lvl',lvl+1);
       container.find('.level').html(lvl+1);
   }
   Popup.show(container[0]);

}); $(document).on('click','.downgrade',function(){

   var container = $(this).closest('.item_container');
   var lvl = parseInt(container.attr('data-lvl'));
   if (lvl!==0){
       container.attr('data-lvl',lvl-1);
       container.find('.level').html(lvl-1);
   }
   Popup.show(container[0]);

});

if ($("#input_level").length == 1) {

   var input_level = $('<input type="number" style="width:80px;" class="west" placeholder="Tu nivel" min="0" max="150">').bind("propertychange keyup input paste", function() {
       if (this.value > 150) {
           this.value = 150;
       } else if (this.value < 0) {
           this.value = 0;
       }
       $(".calc").each(function() {
           if (input_level.val() == 0) {
               $(this).html(this.id);
               $('.per_level_off').addClass('per_level').removeClass('per_level_off');
           } else {
               $(this).html(Math.ceil(Number(this.id) * input_level.val()));
               $('.per_level').addClass('per_level_off').removeClass('per_level');
           }
       });
   }).appendTo($("#input_level"));

}


//Search if ($("#input_search").length == 1) {

   var input_search = $('<input type="search" class="west" placeholder="Buscar">').bind("propertychange keyup input paste", function() {
       var val = this.value.toLowerCase();
       if (val == ) {
           $('.item_container').show();
       } else {
           $('.item_container').hide();
           $('.item_container').filter(function() {
               return $(this).attr('data-popup').toLowerCase().indexOf(val) > -1;
           }).show();
       }
   }).appendTo($("#input_search"));

}

//Switch weapons if ($("#switch").length == 1) {

   $("#fire").hide();
   $("#switch").on("click", function() {
       $('#melee, #fire').toggle()
   });

}

var Popup = {

   content : "",
   delay : 200,
   active : false,
   show: function(obj) {
       Popup.content = Popup.createPopup($(obj).attr('data-popup'), $(obj).attr('data-cdn-cat'), $(obj).attr('data-cdn-img'), parseInt($(obj).attr('data-lvl')));
       Popup.active = true;
       Popup.setTimeout();
       Popup.getContainer().html(Popup.content);
   },
   hide: function() {
       Popup.getEl().css({
           display: 'none',
           top: 0,
           left: 0
       });
       Popup.active = false;
       Popup.clearTimeout();
   },
   setTimeout: function() {
       Popup.clearTimeout();
       Popup.timer = window.setTimeout(function() {
           Popup.getEl().css('display', 'block');
       }, Popup.delay);
   },
   clearTimeout : function() {
       if (Popup.timer) window.clearTimeout(Popup.timer);
   },
   getEl : function() {
       return $('#popup_window');
   },
   getContainer : function() {
       return $('#popup_contents');
   },
   createPopup: function(data, cdn_cat, cdn_name, lvl) {
       data = JSON.parse(data);

var html = '

';


if (data.text){

html+='

';
           for (var i = 0; i < data.text.length;i++){
html += '';
           }
html+='


';

       }

if(data.unic){

html += '

Único


';

}

       var upgraded = false;
       if ((lvl>=1)&&(lvl<=5)){
           upgraded = true;
           data.auc = false;
       }
       if (data.dmg_min&&data.dmg_max){
           if (upgraded) {
               data.dmg_min += Math.round(Math.max(1, data.dmg_min * 0.1  * lvl));
               data.dmg_max += Math.round(Math.max(1, data.dmg_max * 0.1  * lvl));
           }

html += '

';

       }
       for (var cat in Popup.data) {
           var cnt = 0;
           for (var key in Popup.data[cat]) {
               if (data.hasOwnProperty(key)) {
                   cnt++;
                   var per_level = "";
                   if (data[key] < 0) {
                       if ($('#input_level input').val() > 0) {
                           data[key] = Math.ceil($('#input_level input').val() * -data[key]);
                           if (upgraded){
                               data[key] += Math.round(Math.max(1, data[key] * 0.1  * lvl));
                           }
                       } else {
                           data[key] = -data[key];
                           per_level = " (por Nivel)";
                           if (upgraded){
                               data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6;
                           }
                       }
                   } else if (upgraded) {

if (data[key]<1){ data[key] = Math.round(1e6 * (data[key] * 1 + Math.round(Math.max(1, data[key] * 1000 * lvl)) / 10000)) / 1e6; } else { data[key] += Math.round(Math.max(1, data[key] * 0.1 * lvl)); }

                   }
                   html += Popup.data[cat][key].replace('#1', data[key]).replace('#2', per_level);
               }
           }
           if (cnt > 0) {
               html += '
'; } } if (data.bonus){ for (var i = 0; i < data.bonus.length;i++){

html += '

';

           }
         
          html+='
'; } if (data.jobs){

html += '

';
           for (var i =0; i<data.jobs.length;i++){
html += '';
           }
html += '

';

       }
       if (data.craft){

html += '

';

       }

html += '

';

       return html;
   },
   setPosition : function (e) {
       var window_width = $(window).width();
       var window_height = $(window).height();
       var popup_width = Popup.getEl().outerWidth();
       var popup_height = Popup.getEl().outerHeight();
       var pos_x = e.clientX;
       var pos_y = e.clientY;
       var top;
       var left;
       var margin_top = 20;
       var margin_left = 20;
       if (pos_x + popup_width + margin_left > window_width) {
           left = pos_x - popup_width - margin_left + (e.pageX - e.clientX);
       } else {
           left = pos_x + margin_left + (e.pageX - e.clientX);
       }
       if (pos_y + popup_height + margin_top > window_height) {
           top = window_height - popup_height + (e.pageY - e.clientY);
       } else {
           top = pos_y + margin_top + (e.pageY - e.clientY);
       }
       Popup.getEl().css({
           top: top,
           left: left
       });
   },
   data: {
       dmg: {

dmglvl: '

'

       },
       skills: {

str: '

', mob: '

', dex: '

', cha: '

', con: '

', vig: '

', tou: '

', sta: '

', hea: '

', rid: '

', ref: '

', dod: '

', hid: '

', swi: '

', aim: '

', sho: '

', pit: '

', fin: '

', rep: '

', lea: '

', tac: '

', tra: '

', ani: '

', app: '

', luck: '

', mon: '

', speed: '

', res: '

', reg: '

', exp: '

', lp: '

', sfboff: '

', sfbdef: '

', sfbres: '

', sfbdmg: '

', sfboffs: '

', sfbdefs: '

', sfbdmgs: '

', textjob: '

', textjob1: '

', textjob2: '

', textjob3: '

',

       },
       buff:{

bdes: '

', bluck: '

', bmon: '

', bspeed: '

', bres: '

', breg: '

', bsal: '

', bene: '

', bexp: '

', blp: '

', btextjob: '

', btextjob1: '

', btextjob2: '

', btextjob3: '

',

              },
       fb: {

fboff: '

', fbdef: '

', fbres: '

', fboffs: '

', fbdefs: '

', fbdmgs: '

',

       }
   }

};

if ((new RegExp(mw.config.get('wgFormattedNamespaces')[10]+'\:Item\_*').test(mw.config.get('wgPageName')))&&($('.item_container').length==1)){

$('#mw-content-text').append('

');

   $('#popup_plain').hide();
   $('#popup_plain_contents').append(Popup.createPopup($('.item_container').attr('data-popup'), $('.item_container').attr('data-cdn-cat'), $('.item_container').attr('data-cdn-img'),0))
   $('#popup_plain').slideDown();

}

$('.item_container img').on('dblclick',function(){window.location='/wiki/'+mw.config.get('wgFormattedNamespaces')[10]+':Item_'+JSON.parse($(this).parent().attr('data-popup'))['id']/1000});

{var set_calc={bonus:{set_bonus: {str:{name:"Fuerza",img:"/images/thumb/f/fd/Fuerza.png/40px-Fuerza.png"}, mob:{name:"Movilidad",img:"https://wiki.the-west.es/images/thumb/9/98/Movilidad.png/40px-Movilidad.png"}, dex:{name:"Destreza",img:"/images/thumb/0/0d/Dexterity.png/40px-Dexterity.png"}, cha:{name:"Carisma",img:"/images/thumb/c/c9/Charisma.png/40px-Charisma.png"}, con:{name:"Construcción",img:"/images/thumb/3/37/Construction.png/40px-Construction.png"}, vig:{name:"Vigor",img:"/images/thumb/9/90/Skill_Punch.png/40px-Skill_Punch.png"}, tou:{name:"Tenacidad",img:"/images/thumb/f/f8/Skill_Tough.png/40px-Skill_Tough.png"}, sta:{name:"Condición",img:"/images/thumb/8/8d/Stamina.png/40px-Stamina.png"}, hea:{name:"Puntos de vida",img:"/images/thumb/9/94/Health.png/40px-Health.png"}, rid:{name:"Montar a caballo",img:"/images/thumb/7/78/Hbr.png/40px-Hbr.png"}, ref:{name:"Reflejo",img:"/images/thumb/e/e9/Skill_Reflex.png/40px-Skill_Reflex.png"}, dod:{name:"Eludir",img:"/images/thumb/0/07/Skill_Dodge.png/40px-Skill_Dodge.png"}, hid:{name:"Esconder",img:"/images/thumb/9/97/Hiding.png/40px-Hiding.png"}, swi:{name:"Nadar",img:"/images/thumb/f/f4/Swimming.png/40px-Swimming.png"}, aim:{name:"Apuntar",img:"/images/thumb/5/53/Skill_Aim.png/40px-Skill_Aim.png"}, sho:{name:"Disparar",img:"/images/thumb/7/73/Skill_Shot.png/40px-Skill_Shot.png"}, pit:{name:"Poner trampas",img:"/images/thumb/e/e1/Trapping.png/40px-Trapping.png"}, fin:{name:"Destreza de manos",img:"/images/thumb/1/18/Fms.png/40px-Fms.png"}, rep:{name:"Reparar",img:"/images/thumb/d/d5/Repairing.png/40px-Repairing.png"}, lea:{name:"Liderazgo",img:"/images/thumb/4/44/Leadership.png/40px-Leadership.png"}, tac:{name:"Táctica",img:"/images/thumb/9/91/Skill_Tactic.png/40px-Skill_Tactic.png"}, tra:{name:"Comerciar",img:"/images/thumb/f/f3/Skill_Trading.png/40px-Skill_Trading.png"}, ani:{name:"Instinto animal",img:"/images/thumb/9/9d/AnimalInstinct.png/40px-AnimalInstinct.png"}, app:{name:"Apariencia",img:"/images/thumb/4/4c/Skill_Appearance.png/40px-Skill_Appearance.png"}, fbdef:{name:"Defense (Fort battle bonus)",img:"/images/8/82/Set_Fb_defense.png"}, fboff:{name:"Attack (Fort battle bonus)",img:"/images/3/30/Set_Fb_offense.png"}, fbres:{name:"Resistance (Fort battle bonus)",img:"/images/4/4b/Resistance.png"}, fbdefs:{name:"Defense (Fort battle sector bonus)",img:"/images/1/1a/Set_Fb_defense_sec.png"}, fboffs:{name:"Attack (Fort battle sector bonus)",img:"/images/f/fe/Set_Fb_offense_sec.png"}, fbdmgs:{name:"Damages (Fort battle sector bonus)",img:"/images/b/b3/Damages_sector.png"}},

extra_set_bonus:{}},data:{},itemStatus:{},getData:function(){$(".set_container").each(function(){var t=$(this).attr("data-set-id");set_calc.itemStatus[t]={},set_calc.data[t]={items:{},set:{}},$(this).find(".item_container").each(function(){var e=JSON.parse($(this).attr("data-popup"));for(var a in $(this).is(":hidden")?set_calc.itemStatus[t][e.id]=!1:set_calc.itemStatus[t][e.id]=0,e)e.hasOwnProperty(a)&&set_calc.bonus.set_bonus.hasOwnProperty(a)&&(set_calc.data[t].items[a]||(set_calc.data[t].items[a]={}),set_calc.data[t].items[a][e.id]=e[a])})}),$(".infoSet").each(function(){var t=$(this).attr("data-set-id");$(this).find(".infosetatt").each(function(){var e=$(this).attr("data-nb");set_calc.data[t].set[e]={},$(this).find(".set_bonus").each(function(){key=$(this).attr("data-type"),0!==$(this).find(".calc").length?set_calc.data[t].set[e][key]=-parseFloat($(this).find(".calc").attr("id")):set_calc.data[t].set[e][key]=parseFloat($(this).find(".val").text()),set_calc.bonus.set_bonus.hasOwnProperty(key)||(set_calc.bonus.extra_set_bonus[key]={img:$(this).find("img").attr("src"),name:$(this).find("#tooltip_content").text()})})})})},calc:function()

{if(0!=$("#input_level input").length|""!==$("#input_level input").val()){var t=parseInt($("#input_level input").val());for(var e in total={},set_calc.data){for(var a in set_calc.data[e].items)for(var i in set_calc.data[e].items[a])if(!1!==set_calc.itemStatus[e][i]){lvl=set_calc.itemStatus[e][i],total[a]||(total[a]=0);var s=set_calc.data[e].items[a][i];set_calc.data[e].items[a][i]<0?(s=-s,set_calc.itemStatus[e][i]>0?total[a]+=Math.ceil(s*t)+Math.round(Math.max(1,.1*Math.ceil(s*t)*lvl)):total[a]+=Math.ceil(s*t)):set_calc.itemStatus[e][i]>0?total[a]+=s<1?Math.round(1e6*(1*s+Math.round(Math.max(1,1e3*s*lvl))/1e4))/1e6:Math.round(Math.max(1,.1*s*lvl)):total[a]+=s}var p=0;for(var i in set_calc.itemStatus[e])!1!==set_calc.itemStatus[e][i]&&p++;for(var a in set_calc.data[e].set[p])total[a]||(total[a]=0),set_calc.data[e].set[p][a]<0?total[a]+=Math.ceil(-set_calc.data[e].set[p][a]*t):total[a]+=set_calc.data[e].set[p][a]}var n='

<tbody>

Suma total
';for(var a in set_calc.bonus.set_bonus)total.hasOwnProperty(a)&&(n+='
<img src="'+set_calc.bonus.set_bonus[a].img+'">+'+total[a]+'
'+set_calc.bonus.set_bonus[a].name+"
"); for(var a in set_calc.bonus.extra_set_bonus)total.hasOwnProperty(a)&&(n+='
<img src="'+set_calc.bonus.extra_set_bonus[a].img+'">+'+total[a]+(-1!==["xp","money","luck","spd","regen","drop"].indexOf(a)?"%":"")+'
'+set_calc.bonus.extra_set_bonus[a].name+"
");$("#set_calc").html(n)}else $("#set_calc").html("")},initEvents:function(){$(".item_container > img").click(function(){item_container=$(this).closest(".item_container"),item_container.toggleClass("item_off"),set_id=item_container.closest(".set_container").attr("data-set-id"),item_id=JSON.parse(item_container.attr("data-popup")).id,item_container.hasClass("item_off")||item_container.is(":hidden")?set_calc.itemStatus[set_id][item_id]=!1:set_calc.itemStatus[set_id][item_id]=parseInt(item_container.attr("data-lvl")),set_calc.calc()}),$(document).on("click",".upgrade, .downgrade",function(){var t=$(this).closest(".item_container"),e=t.closest(".set_container").attr("data-set-id");t.hasClass("item_off")||t.is(":hidden")||(set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id]=parseInt(t.attr("data-lvl")),set_calc.calc())}),$("#input_level").bind("propertychange keyup input paste",function(){set_calc.calc()}),$("#switch").click(function(){$("#melee, #fire").each(function(){var t=$(this).find(".item_container"),e=$(this).closest(".set_container").attr("data-set-id");$(this).is(":hidden")?set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id]=!1:set_calc.itemStatus[e][JSON.parse(t.attr("data-popup")).id]=parseInt(t.attr("data-lvl"))}),set_calc.calc()})},init:function(){set_calc.initEvents(),set_calc.getData(),$("#mw-content-text").append('
')}};set_calc.init()}