打开主菜单
少前百科GFwiki
β
搜索
查看“Widget:战术人形属性”的源代码
←
Widget:战术人形属性
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
自动确认用户
您没有权限编辑
Widget
名字空间内的页面。
您可以查看与复制此页面的源代码。
<includeonly><script> const basic = [16, 45, 5, 5]; const basic_life_armor = [ [[55, 0.555],,,,, [2, 0.161], [5, 0.05]], [[96.283, 0.138],,,,, [13.979, 0.04], [5, 0.05]] ]; const grow = [ [[.242, 0], [.181, 0], [.303, 0], [.303, 0]], [[.06, 18.018], [.022, 15.741], [.075, 22.572], [.075, 22.572]] ]; function attrMain() {} (window.RLQ=window.RLQ||[]).push(() => { const adat = $('#attr-dataset').data(); const base_attr = [[.6,.6,.8,1.2,1.8,0,1.71],[1.6,.6,1.2,.3,1.6,0,2.38],[.8,2.4,.5,1.6,.8,0,.94],[1,1,1,1,1,0,.8],[1.5,1.8,1.6,.6,.6,0,.82],[2,.7,.4,.3,.3,1,3.91]][adat.type-1]; adat.growing = adat.growing.split(','); adat.growingMod = adat.growingMod?.split(','); $('#attr-table')[0].insertAdjacentHTML('beforebegin', `<label>等级<input id="lv-input" type="number" min="1" max="100" value="100"></label>`); const hpTable = $('#attr-table>table')[0]; const hpRow = $('#hp-tr')[0]; const lvInput = $('#lv-input')[0]; let modToggle; if (adat.growingMod) { lvInput.insertAdjacentHTML('afterend', `<input id="mod-toggle" type="checkbox"><label for="mod-toggle">心智升级</label>`); modToggle = $('#mod-toggle'); } let mod = 0; lvInput.addEventListener('input', updateAttrs); if (adat.growingMod) modToggle.on('click', toggleMod); updateAttrs(); mw.loader.using('jquery.makeCollapsible', function() { $('#dollind').makeCollapsible({collapsed:true}); }); function calcDef(lv, attr) { const modsuf = mod ? 'Mod' : ''; const ratio = adat['growing'+modsuf][attr]; return Math.ceil( (basic_life_armor[mod][attr][0] + (lv-1)*basic_life_armor[mod][attr][1]) * base_attr[attr] * ratio / 100 ); } function calcOther(lv, attr) { const modsuf = mod ? 'Mod' : ''; const ratio = +adat['growing'+modsuf][attr], growth = adat['growth'+modsuf]; let base = basic[attr-1] * base_attr[attr] * ratio / 100; let accretion = (grow[mod][attr-1][1] + (lv-1)*grow[mod][attr-1][0]) * base_attr[attr] * ratio * growth / 100 / 100; return Math.ceil(base) + Math.ceil(accretion); } function toggleMod() { const checked = modToggle[0].checked; const attrRound = $('#attr-round'); const attrCrit = $('#crit-td'); if (checked) { mod = 1; lvInput.max = 120; lvInput.min = 100; attrRound.text(attrRound.data('mod')); attrCrit.text(attrCrit.data('mod') + '%'); $('#rate').addClass('mod'); } else { mod = 0; lvInput.max = 100; lvInput.min = 1; attrRound.text(attrRound.data('attr')); attrCrit.text(attrCrit.data('attr')); $('#rate').removeClass('mod'); } lvInput.value = 100; updateAttrs(); } function updateAttrs() { const lv = lvInput.value; if (lv > 89) hpTable.className = ''; else if (lv > 69) hpTable.className = 'form4'; else if (lv > 29) hpTable.className = 'form3'; else if (lv > 9) hpTable.className = 'form2'; else hpTable.className = 'form1'; const hp1 = calcDef(lv, 0); [...hpRow.children].forEach(function(e, i) { e.textContent = hp1*(i+1); }); $('#pow-td,#hit-td,#dodge-td,#rate-td,#armor-td').each(function(i) { if (i < 4) { const attr = [1,3,4,2][i]; this.textContent = calcOther(lv, attr); } else if (adat.type == 6) this.textContent = calcDef(lv, 5); }); } }) </script></includeonly><noinclude> </noinclude>
返回至
Widget:战术人形属性
。