Умение Iron Will
Iron Will — магический бафф защиты на себя, увеличивающий M.Def. Эффект: повышает магическую защиту (множитель M.Def x1.15 / x1.23 / x1.30 в зависимости от уровня), стекается (stackOrder 1–3, md_up). Агро: генерирует агро при использовании. Тип: BUFF, цель: себя (TARGET_SELF).
Заточка:
- Enchant1: принудительно применяет максимальный множитель магической защиты (M.Def x1.30) и повышает приоритет эффекта в стаке.
- Enchant2: снижает расход MP (включая initial MP).
| level | mpConsume | mpInitialConsume | aggro | mDef | stackOrder |
|---|---|---|---|---|---|
| 1 | 15 | 4 | 408 | 1.15 | 1 |
| 2 | 18 | 5 | 467 | 1.23 | 2 |
| 3 | 20 | 5 | 523 | 1.3 | 3 |
| + | magicLvl |
|---|---|
| +1 | 76 |
| +2 | 76 |
| +3 | 76 |
| +4 | 77 |
| +5 | 77 |
| +6 | 77 |
| +7 | 78 |
| +8 | 78 |
| +9 | 78 |
| +10 | 79 |
| +11 | 79 |
| +12 | 79 |
| +13 | 80 |
| +14 | 80 |
| +15 | 80 |
| +16 | 81 |
| +17 | 81 |
| +18 | 81 |
| +19 | 82 |
| +20 | 82 |
| +21 | 82 |
| +22 | 82 |
| +23 | 83 |
| +24 | 83 |
| +25 | 83 |
| +26 | 84 |
| +27 | 84 |
| +28 | 85 |
| +29 | 85 |
| +30 | 85 |
| + | mpConsume | mpInitialConsume |
|---|---|---|
| +1 | 20 | 5 |
| +2 | 20 | 5 |
| +3 | 19 | 5 |
| +4 | 19 | 5 |
| +5 | 19 | 5 |
| +6 | 18 | 5 |
| +7 | 18 | 5 |
| +8 | 18 | 5 |
| +9 | 17 | 5 |
| +10 | 17 | 5 |
| +11 | 17 | 4 |
| +12 | 16 | 4 |
| +13 | 16 | 4 |
| +14 | 16 | 4 |
| +15 | 15 | 4 |
| +16 | 15 | 4 |
| +17 | 15 | 4 |
| +18 | 14 | 4 |
| +19 | 14 | 4 |
| +20 | 14 | 4 |
| +21 | 13 | 3 |
| +22 | 13 | 3 |
| +23 | 12 | 3 |
| +24 | 12 | 3 |
| +25 | 12 | 3 |
| +26 | 11 | 3 |
| +27 | 11 | 3 |
| +28 | 11 | 3 |
| +29 | 10 | 3 |
| +30 | 10 | 3 |
var root = document.getElementById('svSkillRoot'); if(!root) return;
// Tabs (levels / enchant) document.addEventListener('click', function(e){
var tab = e.target.closest('.sv-tab[data-tab]'); if(!tab) return;
var tabName = tab.getAttribute('data-tab'); var tabs = root.querySelectorAll('.sv-tab[data-tab]'); var panels = root.querySelectorAll('.sv-panel[data-panel]');
tabs.forEach(function(t){ t.classList.toggle('is-active', t === tab); t.setAttribute('aria-selected', t === tab ? 'true' : 'false'); });
panels.forEach(function(p){ var isTarget = p.getAttribute('data-panel') === tabName; p.classList.toggle('sv-hidden', !isTarget); });
// If enchant absent -> show notice inside ENCHANT panel if(tabName === 'enchant'){
var noEnchant = tab.getAttribute('data-no-enchant') === '1'; var panel = root.querySelector('.sv-panel[data-panel="enchant"]'); if(!panel) return;
var empty = panel.querySelector('[data-ench-empty]'); var content = panel.querySelector('[data-ench-content]');
if(noEnchant){ if(empty) empty.classList.remove('sv-hidden'); if(content) content.classList.add('sv-hidden'); } else { if(empty) empty.classList.add('sv-hidden'); if(content) content.classList.remove('sv-hidden'); } }
}, true);
// Enchant branch switch (ench1/ench2/ench3...) document.addEventListener('click', function(e){
var pill = e.target.closest('.sv-pill[data-ench]'); if(!pill) return;
var key = pill.getAttribute('data-ench'); // ench1, ench2... var panel = root.querySelector('.sv-panel[data-panel="enchant"]'); if(!panel) return;
var pills = panel.querySelectorAll('.sv-pill[data-ench]'); var enchPanels = panel.querySelectorAll('.sv-ench-panel[data-ench-panel]');
pills.forEach(function(b){ b.classList.toggle('is-active', b === pill); b.setAttribute('aria-selected', b === pill ? 'true' : 'false'); });
enchPanels.forEach(function(p){ p.classList.toggle('sv-hidden', p.getAttribute('data-ench-panel') !== key); });
}, true);
})();
