Module:FalterTest/Skills/data

From Melvor Idle
< Module:FalterTest‎ | Skills
Revision as of 22:58, 29 September 2021 by Falterfire (talk | contribs) (creating test data)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:FalterTest/Skills/data/doc

--Version: v0.21 (?1105)
local SkillData = {}


--[[Generated from console via
var fullTxt = ""
var txt = JSON.stringify(herbloreItemData)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Herblore = {}\r\nSkillData.Herblore.ItemData = mw.text.jsonDecode('" + txt + "')"
fullTxt += txt

txt = JSON.stringify(Thieving.npcs)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Thieving = {}\r\nSkillData.Thieving.NPCs = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(Thieving.areas)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Thieving.Areas = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(miningData)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Mining = {}\r\nSkillData.Mining.Rocks = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(fishingAreas)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Fishing = {}\r\nSkillData.Fishing.Areas = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(logsData)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Firemaking = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(masteryUnlocks)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.MasteryUnlocks = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(masteryCheckpointBonuses)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.MasteryCheckpoints = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

var MasteryPoolXP = []
for(var skillID in masteryCheckpointBonuses){
  MasteryPoolXP[skillID] = getMasteryPoolTotalXP(skillID);
}
txt = JSON.stringify(MasteryPoolXP)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.MasteryPoolXP = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(Object.keys(SKILLS).map(function(s) { if (MILESTONES[SKILLS[s].name] === undefined) { return null } else { return MILESTONES[SKILLS[s].name].length } }))
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Milestones = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(priceToUnlockSkill)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.SkillUnlockCosts = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

function titleCase(str) {
  return str.replace(
    /\w\S*/g,
    function(txt) {
      return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
    }
  );
}

txt = JSON.stringify(trees)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Woodcutting = {}\r\nSkillData.Woodcutting.Trees = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(PRAYER)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Prayer = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(agilityObstacles)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Agility = {}\r\nSkillData.Agility.Obstacles = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(agilityPassivePillars)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Agility.Pillars = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = "SkillData.Summoning = {}"
txt += "\r\nSkillData.Summoning.Settings = mw.text.jsonDecode('" + JSON.stringify(SUMMONING.Settings) + "')"
txt += "\r\nSkillData.Summoning.Marks = mw.text.jsonDecode('" + JSON.stringify(SUMMONING.Marks) + "')"
fullTxt += "\r\n\r\n" + txt

// Time to do some dumb things to the Synergy data to account for the 0-based JS indexing clashing with 1-based Lua indexing
function wikiGetSummoningSynergies(){
  //Pronounced 'nuisance'
  var newSyns = {};
  var SynKeysBase = Object.keys(SUMMONING.Synergies);
  for(var i = 0; i < SynKeysBase.length; i++){
    var oldKey = parseInt(SynKeysBase[i]);
    var SynKeysChild = Object.keys(SUMMONING.Synergies[oldKey])
    var newChild = {}
		
    for(var j = 0; j < SynKeysChild.length; j++){
      var oldChildKey = Number.parseInt(SynKeysChild[j])
      newChild[oldChildKey + 1] = SUMMONING.Synergies[oldKey][oldChildKey]
    }
	
    newSyns[oldKey + 1] = newChild
    }
  return newSyns;
}
txt = JSON.stringify(wikiGetSummoningSynergies())
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Summoning.Synergies = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

txt = JSON.stringify(summoningItems)
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Summoning.ItemData = mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

// The below function returns a modified version of newFarmingAreas, removing various properties
// from each patch object that relate to what the user has planted & are therefore useless for
// wiki purposes. Not required, but simply makes the data cleaner.
function wikiGetFarmingAreas() {
  let allowedPatchKeys = ['level', 'cost']
  let wikiFarmingAreas = []
  for (i = 0; i < newFarmingAreas.length; i++) {
    let keyList = Object.keys(newFarmingAreas[i]).filter((n) => n !== 'patches')
    let newPatches = []
    let newArea = {}
    for (j = 0; j < newFarmingAreas[i].patches.length; j++) {
      let newPatch = {}
      allowedPatchKeys.forEach((k) => newPatch[k] = newFarmingAreas[i].patches[j][k])
      newPatches[j] = newPatch
    }
    keyList.forEach((n) => newArea[n] = newFarmingAreas[i][n])
    newArea['patches'] = newPatches
    wikiFarmingAreas[i] = newArea
  }
  return wikiFarmingAreas
}

txt = JSON.stringify(wikiGetFarmingAreas())
txt = txt.replace(/\'/g, "\\\'")
txt = txt.replace(/\\\"/g, "\\\\\"")
txt = "SkillData.Farming = {}\r\nSkillData.Farming.Patches= mw.text.jsonDecode('" + txt + "')"
fullTxt += "\r\n\r\n" + txt

fullTxt += "\r\n\r\nreturn SkillData"
console.log(fullTxt)
--]]
SkillData.Herblore = {}
SkillData.Herblore.ItemData = mw.text.jsonDecode('[{"id":0,"name":"Melee Accuracy Potion","itemID":[535,536,537,538],"category":0,"level":5,"herbloreXP":8,"consumesOn":"Attack"},{"id":1,"name":"Melee Strength Potion","itemID":[539,540,541,542],"category":0,"level":60,"herbloreXP":60,"consumesOn":"Attack"},{"id":2,"name":"Melee Evasion Potion","itemID":[543,544,545,546],"category":0,"level":10,"herbloreXP":10,"consumesOn":"EnemyAttack"},{"id":3,"name":"Ranged Assistance Potion","itemID":[547,548,549,550],"category":0,"level":15,"herbloreXP":14,"consumesOn":"Attack"},{"id":4,"name":"Magic Assistance Potion","itemID":[551,552,553,554],"category":0,"level":25,"herbloreXP":22,"consumesOn":"Attack"},{"id":5,"name":"Regeneration Potion","itemID":[555,556,557,558],"category":0,"level":35,"herbloreXP":31,"consumesOn":"Regen"},{"id":6,"name":"Damage Reduction Potion","itemID":[559,560,561,562],"category":0,"level":90,"herbloreXP":180,"consumesOn":"EnemyAttack"},{"id":7,"name":"Bird Nests Potion","itemID":[563,564,565,566],"category":1,"level":1,"herbloreXP":5,"consumesOn":"Skill"},{"id":8,"name":"Fishermans Potion","itemID":[567,568,569,570],"category":1,"level":40,"herbloreXP":36,"consumesOn":"Skill"},{"id":9,"name":"Controlled Heat Potion","itemID":[571,572,573,574],"category":1,"level":20,"herbloreXP":18,"consumesOn":"Skill"},{"id":10,"name":"Generous Cook Potion","itemID":[575,576,577,578],"category":1,"level":32,"herbloreXP":28,"consumesOn":"Skill"},{"id":11,"name":"Perfect Swing Potion","itemID":[579,580,581,582],"category":1,"level":53,"herbloreXP":53,"consumesOn":"Skill"},{"id":12,"name":"Seeing Gold Potion","itemID":[583,584,585,586],"category":1,"level":36,"herbloreXP":33,"consumesOn":"Skill"},{"id":13,"name":"Gentle Hands Potion","itemID":[587,588,589,590],"category":1,"level":45,"herbloreXP":41,"consumesOn":"Skill"},{"id":14,"name":"Generous Harvest Potion","itemID":[591,592,593,594],"category":1,"level":74,"herbloreXP":112,"consumesOn":"Skill"},{"id":15,"name":"Skilled Fletching Potion","itemID":[595,596,597,598],"category":1,"level":42,"herbloreXP":39,"consumesOn":"Skill"},{"id":16,"name":"Crafting Potion","itemID":[599,600,601,602],"category":1,"level":49,"herbloreXP":41,"consumesOn":"Skill"},{"id":17,"name":"Elemental Potion","itemID":[603,604,605,606],"category":1,"level":63,"herbloreXP":63,"consumesOn":"Skill"},{"id":18,"name":"Herblore Potion","itemID":[607,608,609,610],"category":1,"level":71,"herbloreXP":99,"consumesOn":"Skill"},{"id":19,"name":"Magic Damage Potion","itemID":[615,616,617,618],"category":0,"level":65,"herbloreXP":85,"consumesOn":"Attack"},{"id":20,"name":"Ranged Strength Potion","itemID":[611,612,613,614],"category":0,"level":45,"herbloreXP":45,"consumesOn":"Attack"},{"id":21,"name":"Diamond Luck Potion","itemID":[633,634,635,636],"category":0,"level":85,"herbloreXP":160,"consumesOn":"Attack"},{"id":22,"name":"Divine Potion","itemID":[637,638,639,640],"category":0,"level":57,"herbloreXP":51,"consumesOn":"PrayerPointCost"},{"id":23,"name":"Lucky Herb Potion","itemID":[641,642,643,644],"category":0,"level":50,"herbloreXP":47,"consumesOn":"HerbSeedDrop"},{"id":24,"name":"Performance Enhancing Potion","itemID":[966,967,968,969],"category":1,"level":62,"herbloreXP":61,"consumesOn":"Skill"},{"id":25,"name":"Necromancer Potion","itemID":[1001,1002,1003,1004],"category":1,"level":55,"herbloreXP":50,"consumesOn":"Skill"}]')

SkillData.Thieving = {}
SkillData.Thieving.NPCs = mw.text.jsonDecode('[{"id":0,"name":"Man","media":"assets/media/skills/thieving/man.svg","level":1,"perception":110,"maxHit":2.2,"xp":5,"maxGP":100,"uniqueDrop":{"itemID":-1,"qty":1},"lootTable":[]},{"id":1,"name":"Golbin","media":"assets/media/skills/thieving/goblin.svg","level":8,"perception":175,"maxHit":4,"xp":10,"maxGP":175,"uniqueDrop":{"itemID":-1,"qty":1},"lootTable":[[45,50,1],[46,50,1],[47,12,1],[55,50,1],[56,15,1],[57,10,1],[0,50,1],[1,15,1],[2,10,1]]},{"id":2,"name":"Lumberjack","media":"assets/media/skills/thieving/lumberjack.svg","level":61,"perception":480,"maxHit":15.5,"xp":62,"maxGP":500,"uniqueDrop":{"itemID":1099,"qty":1},"lootTable":[[4,10,1],[5,6,1],[6,4,1],[7,2,1],[8,1,1]]},{"id":3,"name":"Bob the Farmer","media":"assets/media/skills/thieving/farmer.svg","level":39,"perception":420,"maxHit":13.7,"xp":36,"maxGP":400,"uniqueDrop":{"itemID":1096,"qty":1},"lootTable":[[143,280,1],[144,180,1],[620,150,1],[145,140,1],[146,110,1],[147,80,1],[148,50,1],[1062,35,1],[149,20,1],[159,20,1],[150,18,1],[469,15,1],[160,80,1],[161,30,1],[162,15,1],[163,5,1],[164,1,1]]},{"id":4,"name":"Fisherman","media":"assets/media/skills/thieving/fisherman.svg","level":54,"perception":400,"maxHit":10.1,"xp":46,"maxGP":450,"uniqueDrop":{"itemID":-1,"qty":1},"lootTable":[[15,80,1],[662,80,1],[663,60,1],[16,46,1],[665,36,1],[17,29,1],[18,23,1],[19,16,1],[20,11,1]]},{"id":5,"name":"Chef","media":"assets/media/skills/thieving/chef.svg","level":34,"perception":350,"maxHit":10.8,"xp":31,"maxGP":300,"uniqueDrop":{"itemID":1091,"qty":1},"lootTable":[[26,39,1],[1022,21,1],[671,20,1],[1023,13,1],[29,7,1],[1025,6,1]]},{"id":6,"name":"Miner","media":"assets/media/skills/thieving/miner.svg","level":70,"perception":600,"maxHit":18,"xp":73,"maxGP":550,"uniqueDrop":{"itemID":1100,"qty":1},"lootTable":[[50,156,1],[51,80,1],[52,29,1],[53,19,1],[54,11,1]]},{"id":7,"name":"Knight","media":"assets/media/skills/thieving/knight.svg","level":88,"perception":820,"maxHit":24.1,"xp":107,"maxGP":750,"uniqueDrop":{"itemID":1093,"qty":1},"lootTable":[[115,61,1],[110,74,1],[101,199,1],[99,369,1],[97,343,1],[105,129,1],[111,83,1],[98,226,1],[126,103,1]]},{"id":8,"name":"Woman","media":"assets/media/skills/thieving/woman.svg","level":4,"perception":140,"maxHit":3.2,"xp":7,"maxGP":150,"uniqueDrop":{"itemID":1098,"qty":1},"lootTable":[]},{"id":9,"name":"Golbin Chief","media":"assets/media/skills/thieving/golbin_chief.svg","level":16,"perception":280,"maxHit":10.1,"xp":18,"maxGP":275,"uniqueDrop":{"itemID":1097,"qty":1},"lootTable":[[48,22,1],[50,12,1],[58,9,1],[60,6,1],[4,9,1],[6,5,1]]},{"id":10,"name":"Bandit Thug","media":"assets/media/skills/thieving/bandit_thug.svg","level":12,"perception":220,"maxHit":5.4,"xp":13,"maxGP":200,"uniqueDrop":{"itemID":-1,"qty":1},"lootTable":[[250,20,1],[256,20,1],[262,20,10],[263,20,10],[251,4,1],[257,4,1],[264,4,10],[252,1,1],[258,1,1],[265,1,10]]},{"id":11,"name":"Marauder","media":"assets/media/skills/thieving/marauder.svg","level":21,"perception":250,"maxHit":6.8,"xp":19,"maxGP":225,"uniqueDrop":{"itemID":1089,"qty":1},"lootTable":[[266,249,10],[267,48,10],[268,26,10],[693,5,1],[694,3,1],[695,1,1]]},{"id":12,"name":"Merchant","media":"assets/media/skills/thieving/merchant.svg","level":31,"perception":300,"maxHit":9.7,"xp":29,"maxGP":350,"uniqueDrop":{"itemID":1095,"qty":1},"lootTable":[[519,324,1],[520,150,1],[521,105,1],[522,83,1],[523,64,1],[524,56,1],[525,51,1],[526,46,1]]},{"id":13,"name":"Assistant Cook","media":"assets/media/skills/thieving/assistant_cook.svg","level":26,"perception":275,"maxHit":8.6,"xp":26,"maxGP":250,"uniqueDrop":{"itemID":1090,"qty":1},"lootTable":[[1011,53,1],[1015,37,1],[22,23,1],[1017,13,1],[23,12,1],[1018,7,1]]},{"id":14,"name":"Dock Hand","media":"assets/media/skills/thieving/dock_hand.svg","level":45,"perception":375,"maxHit":11.9,"xp":42,"maxGP":375,"uniqueDrop":{"itemID":1101,"qty":1},"lootTable":[[9,50,1],[10,13,1],[656,9,1],[11,7,1],[12,4,1]]},{"id":15,"name":"Troll","media":"assets/media/skills/thieving/troll.svg","level":49,"perception":450,"maxHit":15.1,"xp":50,"maxGP":425,"uniqueDrop":{"itemID":-1,"qty":1},"lootTable":[[49,40,1],[51,11,1],[133,27,1],[59,19,1],[3,27,1],[5,8,1]]},{"id":16,"name":"Cyclops","media":"assets/media/skills/thieving/cyclops.svg","level":57,"perception":520,"maxHit":17.3,"xp":53,"maxGP":475,"uniqueDrop":{"itemID":1094,"qty":1},"lootTable":[[7,26,1],[4,100,1],[61,31,1],[60,59,1],[53,22,1],[52,31,1]]},{"id":17,"name":"Squire","media":"assets/media/skills/thieving/squire.svg","level":66,"perception":550,"maxHit":16.9,"xp":67,"maxGP":525,"uniqueDrop":{"itemID":1092,"qty":1},"lootTable":[[64,100,1],[432,53,1],[134,12,1],[82,23,1],[89,6,1],[122,53,1],[464,23,1],[68,100,1],[94,6,1],[75,53,1]]},{"id":18,"name":"Wizard","media":"assets/media/skills/thieving/wizard.svg","level":84,"perception":750,"maxHit":21.6,"xp":95,"maxGP":700,"uniqueDrop":{"itemID":1106,"qty":1},"lootTable":[[395,137,10],[850,105,1],[821,98,10],[827,98,10],[853,82,1],[852,66,1],[858,62,1],[822,56,10],[828,56,10],[851,53,1],[861,51,1],[860,42,1],[829,35,10],[859,35,1],[396,29,10],[397,20,10]]},{"id":19,"name":"Acolyte","media":"assets/media/skills/thieving/acolyte.svg","level":75,"perception":575,"maxHit":16.2,"xp":76,"maxGP":575,"uniqueDrop":{"itemID":1105,"qty":1},"lootTable":[[388,75,1],[389,75,10],[830,75,1],[390,60,10],[833,49,1],[391,43,10],[832,36,1],[392,32,10],[838,32,1],[824,30,10],[831,29,1],[841,26,1],[393,25,10],[820,24,10],[840,23,1],[394,21,10],[825,21,10],[839,20,1],[826,17,10]]},{"id":20,"name":"Court Jester","media":"assets/media/skills/thieving/court_jester.svg","level":79,"perception":715,"maxHit":19.8,"xp":82,"maxGP":625,"uniqueDrop":{"itemID":1102,"qty":1},"lootTable":[]},{"id":21,"name":"King","media":"assets/media/skills/thieving/king.svg","level":95,"perception":950,"maxHit":30.6,"xp":133,"maxGP":1000,"uniqueDrop":{"itemID":1104,"qty":1},"lootTable":[[130,9,1],[317,16,1],[327,14,1],[322,13,1],[332,14,1],[131,9,1],[318,15,1],[323,12,1],[328,14,1],[333,12,1],[132,1,1],[324,3,1],[334,3,1],[316,36,1],[326,68,1],[321,46,1],[331,44,1]]},{"id":22,"name":"Princess","media":"assets/media/skills/thieving/princess.svg","level":92,"perception":890,"maxHit":26.6,"xp":120,"maxGP":850,"uniqueDrop":{"itemID":1103,"qty":300},"lootTable":[[128,8,1],[315,10,1],[325,9,1],[320,10,1],[330,9,1],[129,6,1],[316,7,1],[326,9,1],[321,7,1],[331,7,1],[319,2,1],[329,3,1],[58,13,1],[133,32,1]]}]')

SkillData.Thieving.Areas = mw.text.jsonDecode('[{"id":0,"name":"Low Town","npcs":[0,8],"uniqueDrops":[{"itemID":1067,"qty":1}]},{"id":1,"name":"Golbin Village","npcs":[1,9],"uniqueDrops":[{"itemID":1068,"qty":1}]},{"id":2,"name":"Bandit Hideout","npcs":[10,11],"uniqueDrops":[{"itemID":1069,"qty":1},{"itemID":1070,"qty":1}]},{"id":3,"name":"Farmer\'s Market","npcs":[12,3],"uniqueDrops":[{"itemID":1071,"qty":1},{"itemID":1072,"qty":10},{"itemID":1111,"qty":3}]},{"id":4,"name":"Banquet","npcs":[13,5],"uniqueDrops":[{"itemID":1010,"qty":200},{"itemID":1073,"qty":1}]},{"id":5,"name":"Port of Lemvor","npcs":[14,4],"uniqueDrops":[{"itemID":1074,"qty":1},{"itemID":120,"qty":1},{"itemID":1075,"qty":1000}]},{"id":6,"name":"Cave of Giants","npcs":[15,16],"uniqueDrops":[{"itemID":1076,"qty":1},{"itemID":1077,"qty":1},{"itemID":495,"qty":100}]},{"id":7,"name":"Outskirts","npcs":[2,6],"uniqueDrops":[{"itemID":1078,"qty":1},{"itemID":1079,"qty":1}]},{"id":8,"name":"Fort","npcs":[17,7],"uniqueDrops":[{"itemID":1080,"qty":1},{"itemID":1081,"qty":1},{"itemID":1082,"qty":1000}]},{"id":9,"name":"Wizard Tower","npcs":[19,18],"uniqueDrops":[{"itemID":1083,"qty":1000},{"itemID":1084,"qty":1},{"itemID":1085,"qty":1000}]},{"id":10,"name":"Royal Castle","npcs":[20,22,21],"uniqueDrops":[{"itemID":1086,"qty":1},{"itemID":1087,"qty":1},{"itemID":1088,"qty":1}]}]')

SkillData.Mining = {}
SkillData.Mining.Rocks = mw.text.jsonDecode('[{"level":1,"respawnInterval":5000,"ore":45,"masteryID":0},{"level":1,"respawnInterval":5000,"ore":46,"masteryID":1},{"level":15,"respawnInterval":10000,"ore":47,"masteryID":2},{"level":30,"respawnInterval":10000,"ore":48,"masteryID":3},{"level":30,"respawnInterval":15000,"ore":49,"masteryID":4},{"level":40,"respawnInterval":15000,"ore":50,"masteryID":5},{"level":50,"respawnInterval":20000,"ore":51,"masteryID":6},{"level":70,"respawnInterval":30000,"ore":52,"masteryID":7},{"level":80,"respawnInterval":60000,"ore":53,"masteryID":8},{"level":95,"respawnInterval":120000,"ore":54,"masteryID":9},{"level":1,"respawnInterval":1000,"ore":388,"masteryID":10}]')

SkillData.Fishing = {}
SkillData.Fishing.Areas = mw.text.jsonDecode('[{"name":"Shallow Shores","fishChance":75,"junkChance":25,"specialChance":0,"fish":[0,5,7]},{"name":"Shrapnel River","fishChance":80,"junkChance":20,"specialChance":0,"fish":[1,2,21]},{"name":"Trench of Despair","fishChance":70,"junkChance":28,"specialChance":2,"fish":[12,13,18,9]},{"name":"Lemvor Pier","fishChance":70,"junkChance":29,"specialChance":1,"fish":[3,4,19]},{"name":"Open Waters","fishChance":69,"junkChance":29,"specialChance":2,"fish":[6,10]},{"name":"Barren Ocean","fishChance":90,"junkChance":10,"specialChance":0,"fish":[8,11]},{"name":"Barbarian Fishing","description":"Also gives Strength XP","fishChance":95,"junkChance":5,"specialChance":0,"fish":[14,15,16]},{"name":"Secret Area","fishChance":95,"junkChance":0,"specialChance":5,"fish":[20,22,17]}]')

SkillData.Firemaking = mw.text.jsonDecode('[{"type":"normal","level":1,"interval":2000,"bonfireInterval":20000,"bonfireBonus":5,"xp":15},{"type":"oak","level":10,"interval":2000,"bonfireInterval":30000,"bonfireBonus":10,"xp":30},{"type":"willow","level":25,"interval":3000,"bonfireInterval":40000,"bonfireBonus":15,"xp":40},{"type":"teak","level":35,"interval":4000,"bonfireInterval":50000,"bonfireBonus":20,"xp":65},{"type":"maple","level":45,"interval":5000,"bonfireInterval":60000,"bonfireBonus":25,"xp":80},{"type":"mahogany","level":55,"interval":6000,"bonfireInterval":70000,"bonfireBonus":30,"xp":100},{"type":"yew","level":60,"interval":7000,"bonfireInterval":80000,"bonfireBonus":35,"xp":150},{"type":"magic","level":75,"interval":10000,"bonfireInterval":90000,"bonfireBonus":40,"xp":225},{"type":"redwood","level":90,"interval":15000,"bonfireInterval":100000,"bonfireBonus":45,"xp":280}]')

SkillData.MasteryUnlocks = mw.text.jsonDecode('{"0":[{"level":10,"unlock":"Every 10 levels provides +5% chance to receive 2x Logs per action."},{"level":99,"unlock":"Decreased cut interval by 0.2s for this Tree."}],"1":[{"level":1,"unlock":"Each Mastery level increases the chance to receive 2 Fish by +0.4%"},{"level":50,"unlock":"+3% chance to receive special items."},{"level":65,"unlock":"You no longer catch Junk."},{"level":99,"unlock":"Always catch a minimum quantity of 2 Fish"}],"2":[{"level":1,"unlock":"Each Mastery Level grants -0.1% Firemaking Interval for the respective Log."},{"level":99,"unlock":"Grants +0.25% Global Mastery XP"}],"3":[{"level":1,"unlock":"Each Mastery level provides +0.6% success rate. Success rate is capped at 99%, except with Gloves or Cooking Skillcape."},{"level":10,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":20,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":30,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":40,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":50,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":60,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":70,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":80,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":90,"unlock":"+5% Perfect Cook Chance for this Item."},{"level":99,"unlock":"+50% Perfect Cook Chance for this Item. This cooked product heals you for an extra 20% when eaten."}],"4":[{"level":1,"unlock":"Each Mastery Level increases maximum Rock HP by 1"},{"level":10,"unlock":"1% Chance of obtaining 2 ore"},{"level":20,"unlock":"2% Chance of obtaining 2 ore"},{"level":30,"unlock":"3% Chance of obtaining 2 ore"},{"level":40,"unlock":"4% Chance of obtaining 2 ore"},{"level":50,"unlock":"5% Chance of obtaining 2 ore"},{"level":60,"unlock":"6% Chance of obtaining 2 ore"},{"level":70,"unlock":"7% Chance of obtaining 2 ore"},{"level":80,"unlock":"8% Chance of obtaining 2 ore"},{"level":90,"unlock":"9% Chance of obtaining 2 ore"},{"level":99,"unlock":"15% Chance of obtaining 2 ore"}],"5":[{"level":10,"unlock":"5% base chance to obtain 2 items"},{"level":20,"unlock":"5% base chance to preserve resources"},{"level":30,"unlock":"10% base chance to obtain 2 items"},{"level":40,"unlock":"10% base chance to preserve resources"},{"level":50,"unlock":"15% base chance to obtain 2 items"},{"level":60,"unlock":"15% base chance to preserve resources"},{"level":70,"unlock":"20% base chance to obtain 2 items"},{"level":80,"unlock":"20% base chance to preserve resources"},{"level":90,"unlock":"25% base chance to obtain 2 items"},{"level":99,"unlock":"30% base chance to preserve resources. +35% chance to obtain 2 items."}],"10":[{"level":1,"unlock":"Each level provides +1 Thieving Stealth and +1% GP acquired equal to your Mastery Level for this NPC only."},{"level":50,"unlock":"-0.2s Thieving Interval for this NPC only."},{"level":99,"unlock":"+75 Thieving Stealth for this NPC only."}],"11":[{"level":1,"unlock":"Each level provides increased Farming Yield."},{"level":16,"unlock":"Receive up to 1 Allotment or Herb seed back from harvesting."},{"level":31,"unlock":"Receive up to 2 Allotment or Herb seeds back from harvesting."},{"level":46,"unlock":"Receive up to 3 Allotment or Herb seeds back from harvesting."},{"level":50,"unlock":"No compost required to successfully grow."},{"level":61,"unlock":"Receive up to 4 Allotment or Herb seeds back from harvesting."},{"level":76,"unlock":"Receive up to 5 Allotment or Herb seeds back from harvesting."},{"level":91,"unlock":"Receive up to 6 Allotment or Herb seeds back from harvesting."},{"level":99,"unlock":"+20% Farming Yield. 10% reduced grow time for this Crop. Receive up to 8 Allotment or Herb seeds back from harvesting. "}],"13":[{"level":1,"unlock":"Each level provides +0.2% chance to preserve resources."},{"level":99,"unlock":"+5% chance to preserve resources."}],"14":[{"level":1,"unlock":"Each level provides +0.2% chance to preserve resources."},{"level":99,"unlock":"+5% chance to preserve resources."}],"15":[{"level":15,"unlock":"2 Runes Produced per Runecraft."},{"level":30,"unlock":"3 Runes Produced per Runecraft."},{"level":45,"unlock":"4 Runes Produced per Runecraft."},{"level":60,"unlock":"5 Runes Produced per Runecraft."},{"level":75,"unlock":"6 Runes Produced per Runecraft."},{"level":90,"unlock":"7 Runes Produced per Runecraft."},{"level":99,"unlock":"11 Runes Produced per Runecraft."}],"19":[{"level":1,"unlock":"Each Mastery Level +0.2% chance to preserve resources for this Potion only."},{"level":1,"unlock":"Unlock Tier I Potion"},{"level":20,"unlock":"Unlock Tier II Potion"},{"level":50,"unlock":"Unlock Tier III Potion"},{"level":90,"unlock":"Unlock Tier IV Potion"},{"level":99,"unlock":"+5% chance to preserve resources for this Potion only."}],"20":[{"level":10,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":20,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":30,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":40,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":50,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":60,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":70,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":80,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":80,"unlock":"+10% Agility Obstacle cost reduction for this Obstacle only."},{"level":90,"unlock":"-3% Agility Interval for this Obstacle only."},{"level":95,"unlock":"+10% Agility Obstacle cost reduction for this Obstacle only."},{"level":99,"unlock":"Passive Debuffs (Red) are halved for this Obstacle only."}],"21":[{"level":10,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":20,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":30,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":40,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":50,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":50,"unlock":"+1 Shard Cost Reduction for this Summoning Tablet only."},{"level":60,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":70,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":80,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":90,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":99,"unlock":"+5% Cost Reduction, excluding Shards, for this Summoning Tablet only."},{"level":99,"unlock":"+1 Shard Cost Reduction for this Summoning Tablet only."},{"level":99,"unlock":"+10 Base Quantity for this Summoning Tablet only."}]}')

SkillData.MasteryCheckpoints = mw.text.jsonDecode('{"0":{"bonuses":["+5% increased Woodcutting Mastery XP","+5% increased chance to receive double Logs per action","All Logs sell for +50% GP Value","When you receive a Birds Nest, always receive a base minimum of 2."]},"1":{"bonuses":["+5% increased Fishing Mastery XP","Receive no more Junk","+5% increased chance to get double Fish","When you catch a Special Item, there is a 25% chance to receive one extra Special Item. It is possible to receive a different item than the original."]},"2":{"bonuses":["+5% increased Firemaking Mastery XP","10% decreased Burning interval","Receive GP equal to 25% of the value of the Log you are burning","+5% increased Global Mastery XP"]},"3":{"bonuses":["+5% increased Cooking Mastery XP","+5% increased chance to get double cooked Food","+10% chance to preserve raw food in Cooking","All Food heals for +10% HP"]},"4":{"bonuses":["+5% increased Mining Mastery XP","Reduced Ore respawn time by 10%","Reduce Mining interval by 0.2s","All Rocks gain +10 Max HP (Bonus applied on Rock Respawn)"]},"5":{"bonuses":["+5% increased Smithing Mastery XP","+5% resource preservation chance for Smithing","+5% resource preservation chance for Smithing","+10% chance to double items in Smithing."]},"10":{"bonuses":["+30 Thieving Stealth, +3% increased Thieving XP","Decreases Thieving Interval by 0.2s, +3% increased Thieving Mastery XP","+100% increased gold from Thieving","+100 Thieving Stealth, chance to gain unique area items from Thieving is tripled"]},"11":{"bonuses":["+5% increased Farming Mastery XP","Crops cannot die (Bonus applied when crop grows).","+5% increased Crop harvest","Reduced crop grow time by 10% (Bonus applied when crop is planted)"]},"13":{"bonuses":["+5% increased Fletching Mastery XP","Produce 1 extra Javelin per Fletch (Applied to base quantity)","Produce 1 extra Gem-Tipped Bolt per Fletch (Applied to base quantity)","Reduce Fletching Interval by 0.2s"]},"14":{"bonuses":["+5% increased Crafting Mastery XP","+5% resource preservation chance for Crafting.","Decreased Crafting Interval by 0.2s","Always Craft a base quantity of 2 for Rings and Necklaces"]},"15":{"bonuses":["+5% increased Runecrafting Mastery XP","Grants 250% base Runecrafting XP from Runes","+10% resource preservation chance for Runecrafting","Grants an extra 5 Runes per craft"]},"19":{"bonuses":["+5% increased Herblore Mastery XP","+3% increased Herblore Skill XP","+5% resource preservation chance for Herblore","+10% chance to double Potions per action in Herblore"]},"20":{"bonuses":["+5% increased Agility Mastery XP","+10% GP from Agility","+10% Global Agility Obstacle cost reduction.","+15% Agility Obstacle Item cost reduction"]},"21":{"bonuses":["+5% increased Summoning Mastery XP","+1 Shard Cost Reduction for Tier 1 & Tier 2 Summoning Tablets","+10% resource preservation chance for Summoning","+1 Shard Cost Reduction for Tier 3 Summoning Tablets. +10 Base Quantity for Summoning Tablet Creation."]}}')

SkillData.MasteryPoolXP = mw.text.jsonDecode('[4500000,11500000,4500000,15500000,5500000,57500000,null,null,null,null,11500000,12000000,null,28500000,26000000,42000000,null,null,null,13000000,25500000,10000000]')

SkillData.Milestones = mw.text.jsonDecode('[10,24,10,32,12,116,11,1,12,1,24,25,73,58,53,85,88,27,12,27,12,21]')

SkillData.SkillUnlockCosts = mw.text.jsonDecode('[10000,25000,50000,200000,250000,400000,1000000,2500000,10000000,25000000,50000000,100000000,200000000,500000000,500000000,500000000,500000000,500000000]')

SkillData.Woodcutting = {}
SkillData.Woodcutting.Trees = mw.text.jsonDecode('[{"type":"normal","level":1,"interval":3000,"xp":10,"media":"assets/media/skills/woodcutting/normal_tree.svg"},{"type":"oak","level":10,"interval":4000,"xp":15,"media":"assets/media/skills/woodcutting/oak_tree.svg"},{"type":"willow","level":25,"interval":5000,"xp":22,"media":"assets/media/skills/woodcutting/willow_tree.svg"},{"type":"teak","level":35,"interval":6000,"xp":30,"media":"assets/media/skills/woodcutting/teak_tree.svg"},{"type":"maple","level":45,"interval":8000,"xp":40,"media":"assets/media/skills/woodcutting/maple_tree.svg"},{"type":"mahogany","level":55,"interval":10000,"xp":60,"media":"assets/media/skills/woodcutting/mahogany_tree.svg"},{"type":"yew","level":60,"interval":12000,"xp":80,"media":"assets/media/skills/woodcutting/yew_tree.svg"},{"type":"magic","level":75,"interval":20000,"xp":100,"media":"assets/media/skills/woodcutting/magic_tree.svg"},{"type":"redwood","level":90,"interval":15000,"xp":180,"media":"assets/media/skills/woodcutting/redwood_tree.svg"}]')

SkillData.Prayer = mw.text.jsonDecode('[{"name":"Thick Skin","description":"+5% Melee Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":1,"media":"assets/media/skills/prayer/thick_skin.svg","pointsPerPlayer":1,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeEvasion":5}},{"name":"Burst of Strength","description":"+5% Melee Strength Bonus<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":4,"media":"assets/media/skills/prayer/burst_of_strength.svg","pointsPerPlayer":1,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeMaxHit":5}},{"name":"Clarity of Thought","description":"+5% Melee Accuracy Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":7,"media":"assets/media/skills/prayer/clarity_of_thought.svg","pointsPerPlayer":1,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeAccuracyBonus":5}},{"name":"Sharp Eye","description":"+5% Ranged Accuracy Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":8,"media":"assets/media/skills/prayer/sharp_eye.svg","pointsPerPlayer":1,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedRangedAccuracyBonus":5}},{"name":"Mystic Will","description":"+5% Magic Accuracy & Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":9,"media":"assets/media/skills/prayer/mystic_will.svg","pointsPerPlayer":1,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMagicAccuracyBonus":5,"increasedMagicEvasion":5}},{"name":"Rock Skin","description":"+10% Melee Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":10,"media":"assets/media/skills/prayer/rock_skin.svg","pointsPerPlayer":2,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeEvasion":10}},{"name":"Superhuman Strength","description":"+10% Melee Strength Bonus<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":13,"media":"assets/media/skills/prayer/superhuman_strength.svg","pointsPerPlayer":2,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeMaxHit":10}},{"name":"Improved Reflexes","description":"+10% Melee Accuracy Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":16,"media":"assets/media/skills/prayer/improved_reflexes.svg","pointsPerPlayer":2,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeAccuracyBonus":10}},{"name":"Rapid Heal","description":"+100% Hitpoints Regeneration<br><span class=\'text-danger\'>Provides no extra Prayer XP</span>","prayerLevel":20,"media":"assets/media/skills/prayer/rapid_heal.svg","pointsPerPlayer":0,"pointsPerEnemy":0,"pointsPerRegen":4,"modifiers":{"increasedHitpointRegeneration":100}},{"name":"Protect Item","description":"Keep item on death<br><span class=\'text-danger\'>Provides no extra Prayer XP</span>","prayerLevel":25,"media":"assets/media/skills/prayer/protect_item.svg","pointsPerPlayer":0,"pointsPerEnemy":2,"pointsPerRegen":0,"modifiers":{"itemProtection":1}},{"name":"Hawk Eye","description":"+10% Ranged Accuracy Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":26,"media":"assets/media/skills/prayer/hawk_eye.svg","pointsPerPlayer":2,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedRangedAccuracyBonus":10}},{"name":"Mystic Lore","description":"+10% Magic Accuracy & Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":27,"media":"assets/media/skills/prayer/mystic_lore.svg","pointsPerPlayer":2,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMagicAccuracyBonus":10,"increasedMagicEvasion":10}},{"name":"Steel Skin","description":"+15% Melee Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":28,"media":"assets/media/skills/prayer/steel_skin.svg","pointsPerPlayer":3,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeEvasion":15}},{"name":"Ultimate Strength","description":"+15% Melee Strength Bonus<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":31,"media":"assets/media/skills/prayer/ultimate_strength.svg","pointsPerPlayer":3,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeMaxHit":15}},{"name":"Incredible Reflexes","description":"+15% Melee Accuracy Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":34,"media":"assets/media/skills/prayer/incredible_reflexes.svg","pointsPerPlayer":3,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeAccuracyBonus":15}},{"name":"Protect from Magic","description":"You have a set 85% chance to dodge Magic Attacks<br><span class=\'text-danger\'>Provides no extra Prayer XP</span>","prayerLevel":37,"media":"assets/media/skills/prayer/protect_from_magic.svg","pointsPerPlayer":0,"pointsPerEnemy":10,"pointsPerRegen":0,"modifiers":{"magicProtection":85}},{"name":"Protect from Ranged","description":"You have a set 85% chance to dodge Ranged Attacks<br><span class=\'text-danger\'>Provides no extra Prayer XP</span>","prayerLevel":40,"media":"assets/media/skills/prayer/protect_from_ranged.svg","pointsPerPlayer":0,"pointsPerEnemy":10,"pointsPerRegen":0,"modifiers":{"rangedProtection":85}},{"name":"Protect from Melee","description":"You have a set 85% chance to dodge Melee Attacks<br><span class=\'text-danger\'>Provides no extra Prayer XP</span>","prayerLevel":43,"media":"assets/media/skills/prayer/protect_from_melee.svg","pointsPerPlayer":0,"pointsPerEnemy":10,"pointsPerRegen":0,"modifiers":{"meleeProtection":85}},{"name":"Eagle Eye","description":"+15% Ranged Accuracy Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":44,"media":"assets/media/skills/prayer/eagle_eye.svg","pointsPerPlayer":3,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedRangedAccuracyBonus":15}},{"name":"Mystic Might","description":"+15% Magic Accuracy & Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":45,"media":"assets/media/skills/prayer/mystic_might.svg","pointsPerPlayer":3,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMagicAccuracyBonus":15,"increasedMagicEvasion":15}},{"name":"Redemption","description":"Heal +20% HP when your hitpoints fall below 10%<br><span class=\'text-danger\'>Provides no extra Prayer XP</span>","prayerLevel":50,"media":"assets/media/skills/prayer/redemption.svg","pointsPerPlayer":0,"pointsPerEnemy":6,"pointsPerRegen":0,"modifiers":{"increasedRedemptionThreshold":10,"increasedRedemptionPercent":20}},{"name":"Chivalry","description":"+15% Melee Accuracy Rating, +15% Melee Strength Bonus, +15% Melee Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":60,"media":"assets/media/skills/prayer/chivalry.svg","pointsPerPlayer":5,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeAccuracyBonus":15,"increasedMeleeMaxHit":15,"increasedMeleeEvasion":15}},{"name":"Piety","description":"+18% Melee Accuracy Rating, +12% Melee Strength Bonus, +18% Melee Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":75,"media":"assets/media/skills/prayer/piety.svg","pointsPerPlayer":7,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMeleeAccuracyBonus":18,"increasedMeleeMaxHit":12,"increasedMeleeEvasion":18}},{"name":"Rigour","description":"+20% Ranged Accuracy Rating, +23% Ranged Strength Bonus, +25% Ranged Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":79,"media":"assets/media/skills/prayer/rigour.svg","pointsPerPlayer":7,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedRangedAccuracyBonus":20,"increasedRangedMaxHit":23,"increasedRangedEvasion":25}},{"name":"Augury","description":"+25% Magic Accuracy Rating, +10% Magic Damage Bonus, +25% Magic Evasion Rating<br><span class=\'text-success\'>Provides extra Prayer XP based on damage dealt to enemy</span>","prayerLevel":84,"media":"assets/media/skills/prayer/augury.svg","pointsPerPlayer":7,"pointsPerEnemy":0,"pointsPerRegen":0,"modifiers":{"increasedMagicAccuracyBonus":25,"increasedMagicEvasion":25,"increasedMagicMaxHit":10}},{"name":"Stone Skin","description":"+3% Damage Reduction<br><span class=\'text-danger\'>Provides no extra Prayer XP</span>","prayerLevel":88,"media":"assets/media/skills/prayer/stone_skin.svg","pointsPerPlayer":0,"pointsPerEnemy":3,"pointsPerRegen":0,"modifiers":{"increasedDamageReduction":3}}]')

SkillData.Agility = {}
SkillData.Agility.Obstacles = mw.text.jsonDecode('[{"name":"Cargo Net","description":"Random flavour text","media":"assets/media/skills/agility/1CN.svg","category":0,"interval":4000,"requirements":{"skillLevel":[]},"cost":{"gp":10000,"slayerCoins":0,"items":[]},"modifiers":{},"completionBonuses":{"stamina":0,"xp":8,"gp":6,"slayerCoins":0,"items":[]}},{"name":"Rope Swing","description":"Random flavour text","media":"assets/media/skills/agility/1RS.svg","category":0,"interval":4000,"requirements":{"skillLevel":[]},"cost":{"gp":10000,"slayerCoins":0,"items":[]},"modifiers":{},"completionBonuses":{"stamina":0,"xp":6,"gp":8,"slayerCoins":0,"items":[]}},{"name":"Rope Climb","description":"Random flavour text","media":"assets/media/skills/agility/1RC.svg","category":0,"interval":6000,"requirements":{"skillLevel":[]},"cost":{"gp":10000,"slayerCoins":0,"items":[]},"modifiers":{"increasedMasteryXP":[[10,2]]},"completionBonuses":{"stamina":0,"xp":7,"gp":4,"slayerCoins":0,"items":[]}},{"name":"Rope Jump","description":"Random flavour text","media":"assets/media/skills/agility/2RJ.svg","category":1,"interval":7000,"requirements":{"skillLevel":[]},"cost":{"gp":50000,"slayerCoins":0,"items":[]},"modifiers":{},"completionBonuses":{"stamina":0,"xp":13,"gp":40,"slayerCoins":0,"items":[]}},{"name":"Monkey Bars","description":"Random flavour text","media":"assets/media/skills/agility/2MB.svg","category":1,"interval":3000,"requirements":{"skillLevel":[[2,15]]},"cost":{"gp":50000,"slayerCoins":0,"items":[[1,250]]},"modifiers":{"decreasedSkillIntervalPercent":[[2,4]]},"completionBonuses":{"stamina":0,"xp":7,"gp":27,"slayerCoins":0,"items":[]}},{"name":"Balance Beam","description":"Random flavour text","media":"assets/media/skills/agility/2BB.svg","category":1,"interval":4000,"requirements":{"skillLevel":[]},"cost":{"gp":50000,"slayerCoins":0,"items":[]},"modifiers":{"increasedSkillXP":[[20,2]]},"completionBonuses":{"stamina":0,"xp":11,"gp":34,"slayerCoins":0,"items":[]}},{"name":"Balance Seesaw","description":"Random flavour text","media":"assets/media/skills/agility/3BS.svg","category":2,"interval":5000,"requirements":{"skillLevel":[]},"cost":{"gp":150000,"slayerCoins":0,"items":[]},"modifiers":{"increasedSkillXP":[[20,2]],"increasedMasteryXP":[[20,2]]},"completionBonuses":{"stamina":0,"xp":24,"gp":92,"slayerCoins":0,"items":[]}},{"name":"Pipe Climb","description":"Random flavour text","media":"assets/media/skills/agility/3PC.svg","category":2,"interval":9000,"requirements":{"skillLevel":[[7,10],[8,10]]},"cost":{"gp":150000,"slayerCoins":1000,"items":[[56,300]]},"modifiers":{"increasedMeleeMaxHit":3,"increasedMeleeEvasion":3},"completionBonuses":{"stamina":0,"xp":29,"gp":67,"slayerCoins":0,"items":[]}},{"name":"Pipe Balance","description":"Random flavour text","media":"assets/media/skills/agility/3PB.svg","category":2,"interval":5000,"requirements":{"skillLevel":[[4,20]]},"cost":{"gp":150000,"slayerCoins":0,"items":[[47,300],[46,300]]},"modifiers":{"increasedMiningNodeHP":10,"increasedGlobalPreservationChance":3},"completionBonuses":{"stamina":0,"xp":24,"gp":96,"slayerCoins":0,"items":[]}},{"name":"Pit Jump","description":"Random flavour text","media":"assets/media/skills/agility/3PJ.svg","category":2,"interval":4000,"requirements":{"skillLevel":[]},"cost":{"gp":150000,"slayerCoins":0,"items":[[11,300],[13,300]]},"modifiers":{"increasedGlobalSkillXP":1,"decreasedSkillXP":[[20,4]]},"completionBonuses":{"stamina":0,"xp":37,"gp":24,"slayerCoins":0,"items":[]}},{"name":"Stepping Stones","description":"Random flavour text","media":"assets/media/skills/agility/3SS.svg","category":2,"interval":9000,"requirements":{"skillLevel":[[0,30],[2,30]]},"cost":{"gp":150000,"slayerCoins":0,"items":[[2,300],[3,300]]},"modifiers":{"increasedSkillXP":[[2,3]],"decreasedSkillIntervalPercent":[[0,6]]},"completionBonuses":{"stamina":0,"xp":13,"gp":63,"slayerCoins":0,"items":[]}},{"name":"Coal Stones","description":"Random flavour text","media":"assets/media/skills/agility/4CS.svg","category":3,"interval":6000,"requirements":{"skillLevel":[[10,20],[3,20]]},"cost":{"gp":250000,"slayerCoins":0,"items":[[146,100],[25,500]]},"modifiers":{"increasedGlobalPreservationChance":3,"increasedGPFromThieving":20,"increasedFoodHealingValue":10,"decreasedGlobalSkillXP":4},"completionBonuses":{"stamina":0,"xp":22,"gp":40,"slayerCoins":0,"items":[]}},{"name":"Mud Crawl","description":"Random flavour text","media":"assets/media/skills/agility/4MC.svg","category":3,"interval":8000,"requirements":{"skillLevel":[[19,25],[11,25]]},"cost":{"gp":250000,"slayerCoins":0,"items":[[519,250],[520,250],[521,250]]},"modifiers":{"increasedSkillPreservationChance":[[19,3]],"increasedSkillXP":[[19,2]],"increasedMasteryXP":[[19,2]],"decreasedFarmingYield":10},"completionBonuses":{"stamina":0,"xp":34,"gp":140,"slayerCoins":0,"items":[]}},{"name":"Mud Dive","description":"Random flavour text","media":"assets/media/skills/agility/4MD.svg","category":3,"interval":8000,"requirements":{"skillLevel":[[6,20],[7,20]]},"cost":{"gp":250000,"slayerCoins":5000,"items":[[59,500]]},"modifiers":{"increasedMeleeMaxHit":2,"increasedMeleeAccuracyBonus":5,"increasedFlatMaxHitpoints":2,"decreasedDamageReduction":4},"completionBonuses":{"stamina":0,"xp":43,"gp":66,"slayerCoins":0,"items":[]}},{"name":"Cave Climb","description":"Random flavour text","media":"assets/media/skills/agility/4CC.svg","category":3,"interval":7000,"requirements":{"skillLevel":[[7,10],[12,10],[16,10]]},"cost":{"gp":250000,"slayerCoins":5000,"items":[[389,500],[392,500],[56,250]]},"modifiers":{"increasedAmmoPreservation":5,"increasedRunePreservation":5,"increasedMeleeMaxHit":5,"decreasedFlatMaxHitpoints":4},"completionBonuses":{"stamina":0,"xp":36,"gp":96,"slayerCoins":0,"items":[]}},{"name":"Gap Jump","description":"Random flavour text","media":"assets/media/skills/agility/4GJ.svg","category":3,"interval":6000,"requirements":{"skillLevel":[]},"cost":{"gp":250000,"slayerCoins":0,"items":[]},"modifiers":{},"completionBonuses":{"stamina":0,"xp":48,"gp":45,"slayerCoins":0,"items":[]}},{"name":"Rock Climb","description":"Random flavour text","media":"assets/media/skills/agility/5RC.svg","category":4,"interval":4000,"requirements":{"skillLevel":[[0,30],[1,30],[4,30],[10,30]]},"cost":{"gp":500000,"slayerCoins":0,"items":[[3,500],[48,500],[144,500]]},"modifiers":{"increasedChanceToDoubleItemsSkill":[[1,5],[0,5],[4,5],[10,5]],"decreasedGlobalPreservationChance":10},"completionBonuses":{"stamina":0,"xp":35,"gp":172,"slayerCoins":0,"items":[]}},{"name":"Cliff Climb","description":"Random flavour text","media":"assets/media/skills/agility/5CC.svg","category":4,"interval":13000,"requirements":{"skillLevel":[[18,20]]},"cost":{"gp":500000,"slayerCoins":20000,"items":[[59,1000]]},"modifiers":{"increasedSlayerCoins":10,"increasedDamageToSlayerTasks":5,"increasedSlayerTaskLength":10,"decreasedSkillXP":[[18,10]],"decreasedSlayerAreaEffectNegationFlat":20},"completionBonuses":{"stamina":0,"xp":64,"gp":82,"slayerCoins":0,"items":[]}},{"name":"Cliff Balance","description":"Random flavour text","media":"assets/media/skills/agility/5CB.svg","category":4,"interval":4000,"requirements":{"skillLevel":[[6,20],[12,20],[16,20]]},"cost":{"gp":500000,"slayerCoins":20000,"items":[[51,500],[48,500],[388,1000]]},"modifiers":{"increasedMeleeAccuracyBonus":5,"increasedRangedAccuracyBonus":5,"increasedMagicAccuracyBonus":5,"increasedFlatMaxHitpoints":2,"decreasedFlatPrayerCostReduction":2},"completionBonuses":{"stamina":0,"xp":41,"gp":117,"slayerCoins":0,"items":[]}},{"name":"Mountain Climb","description":"Random flavour text","media":"assets/media/skills/agility/5MC.svg","category":4,"interval":10000,"requirements":{"skillLevel":[]},"cost":{"gp":500000,"slayerCoins":0,"items":[[439,1000]]},"modifiers":{"increasedGPFromAgility":15,"decreasedSkillIntervalPercent":[[20,12]],"decreasedSkillXP":[[20,8]],"decreasedMasteryXP":[[20,2]]},"completionBonuses":{"stamina":0,"xp":60,"gp":296,"slayerCoins":0,"items":[]}},{"name":"Tree Climb","description":"Random flavour text","media":"assets/media/skills/agility/5TC.svg","category":4,"interval":5000,"requirements":{"skillLevel":[[2,60]]},"cost":{"gp":500000,"slayerCoins":0,"items":[[5,1000],[263,2000],[395,2000]]},"modifiers":{"increasedGlobalSkillXP":3,"increasedGlobalMasteryXP":2,"decreasedGlobalPreservationChance":10,"decreasedAmmoPreservation":10,"decreasedRunePreservation":10},"completionBonuses":{"stamina":0,"xp":44,"gp":91,"slayerCoins":0,"items":[]}},{"name":"Tree Hop","description":"Random flavour text","media":"assets/media/skills/agility/6TH.svg","category":5,"interval":11000,"requirements":{"skillLevel":[[0,40],[12,40],[16,40]]},"cost":{"gp":1000000,"slayerCoins":0,"items":[[264,2500],[821,2500]]},"modifiers":{"increasedGlobalPreservationChance":5,"increasedAmmoPreservation":5,"increasedRunePreservation":5},"completionBonuses":{"stamina":0,"xp":68,"gp":565,"slayerCoins":0,"items":[]}},{"name":"Tree Balance","description":"Random flavour text","media":"assets/media/skills/agility/6TB.svg","category":5,"interval":13000,"requirements":{"skillLevel":[]},"cost":{"gp":1000000,"slayerCoins":0,"items":[]},"modifiers":{"decreasedSkillIntervalPercent":[[20,12]],"decreasedGlobalSkillXP":4},"completionBonuses":{"stamina":0,"xp":59,"gp":505,"slayerCoins":0,"items":[]}},{"name":"Rocky Waters","description":"Random flavour text","media":"assets/media/skills/agility/6RW.svg","category":5,"interval":11000,"requirements":{"skillLevel":[[9,50]]},"cost":{"gp":1000000,"slayerCoins":50000,"items":[[26,3000]]},"modifiers":{"increasedFlatMaxHitpoints":5},"completionBonuses":{"stamina":0,"xp":61,"gp":578,"slayerCoins":0,"items":[]}},{"name":"Lake Swim","description":"Random flavour text","media":"assets/media/skills/agility/6LS.svg","category":5,"interval":14000,"requirements":{"skillLevel":[[7,50],[17,50]]},"cost":{"gp":1000000,"slayerCoins":50000,"items":[[133,2500]]},"modifiers":{"increasedDamageToAllMonsters":3,"increasedDamageReduction":1},"completionBonuses":{"stamina":0,"xp":55,"gp":521,"slayerCoins":0,"items":[]}},{"name":"Raft Drifting","description":"Random flavour text","media":"assets/media/skills/agility/6RD.svg","category":5,"interval":7000,"requirements":{"skillLevel":[[11,60]]},"cost":{"gp":1000000,"slayerCoins":0,"items":[[157,3000]]},"modifiers":{"increasedFarmingYield":10},"completionBonuses":{"stamina":0,"xp":80,"gp":247,"slayerCoins":0,"items":[]}},{"name":"Spike Trap","description":"Random flavour text","media":"assets/media/skills/agility/7ST.svg","category":6,"interval":9000,"requirements":{"skillLevel":[]},"cost":{"gp":2500000,"slayerCoins":0,"items":[]},"modifiers":{"decreasedFlatMaxHitpoints":4,"decreasedDamageReduction":2},"completionBonuses":{"stamina":0,"xp":87,"gp":640,"slayerCoins":0,"items":[]}},{"name":"Heat Trap","description":"Random flavour text","media":"assets/media/skills/agility/7HT.svg","category":6,"interval":5000,"requirements":{"skillLevel":[]},"cost":{"gp":2500000,"slayerCoins":0,"items":[]},"modifiers":{"decreasedDamageToAllMonsters":10,"decreasedAutoEatEfficiency":10},"completionBonuses":{"stamina":0,"xp":134,"gp":849,"slayerCoins":0,"items":[]}},{"name":"Boulder Trap","description":"Random flavour text","media":"assets/media/skills/agility/7BT.svg","category":6,"interval":13000,"requirements":{"skillLevel":[]},"cost":{"gp":2500000,"slayerCoins":0,"items":[]},"modifiers":{"decreasedGlobalPreservationChance":20},"completionBonuses":{"stamina":0,"xp":93,"gp":777,"slayerCoins":0,"items":[]}},{"name":"Water Trap","description":"Random flavour text","media":"assets/media/skills/agility/7WT.svg","category":6,"interval":8000,"requirements":{"skillLevel":[]},"cost":{"gp":2500000,"slayerCoins":0,"items":[]},"modifiers":{"decreasedGlobalSkillXP":6,"decreasedGlobalMasteryXP":6},"completionBonuses":{"stamina":0,"xp":53,"gp":1035,"slayerCoins":0,"items":[]}},{"name":"Freezing Trap","description":"Random flavour text","media":"assets/media/skills/agility/7FT.svg","category":6,"interval":8000,"requirements":{"skillLevel":[]},"cost":{"gp":2500000,"slayerCoins":0,"items":[]},"modifiers":{"decreasedRunePreservation":30,"decreasedAmmoPreservation":30,"decreasedMeleeAccuracyBonus":16,"decreasedRangedAccuracyBonus":16,"decreasedMagicAccuracyBonus":16},"completionBonuses":{"stamina":0,"xp":78,"gp":598,"slayerCoins":0,"items":[]}},{"name":"Pipe Crawl","description":"Random flavour text","media":"assets/media/skills/agility/8PC.svg","category":7,"interval":11000,"requirements":{"skillLevel":[[18,70]]},"cost":{"gp":5000000,"slayerCoins":150000,"items":[[60,4000]]},"modifiers":{"increasedDamageToSlayerAreaMonsters":8,"decreasedSlayerCoins":10},"completionBonuses":{"stamina":0,"xp":180,"gp":1603,"slayerCoins":0,"items":[]}},{"name":"Raft Building","description":"Random flavour text","media":"assets/media/skills/agility/8RB.svg","category":7,"interval":14000,"requirements":{"skillLevel":[[7,70],[9,70]]},"cost":{"gp":5000000,"slayerCoins":150000,"items":[[27,4000]]},"modifiers":{"increasedDamageToAllMonsters":2,"increasedFlatMaxHitpoints":2},"completionBonuses":{"stamina":0,"xp":144,"gp":2619,"slayerCoins":0,"items":[]}},{"name":"Spike Jump","description":"Random flavour text","media":"assets/media/skills/agility/8SJ.svg","category":7,"interval":8000,"requirements":{"skillLevel":[[8,70],[17,70]]},"cost":{"gp":5000000,"slayerCoins":150000,"items":[[131,2000]]},"modifiers":{"increasedDamageToDungeonMonsters":5,"increasedChanceToDoubleLootCombat":5},"completionBonuses":{"stamina":0,"xp":145,"gp":2301,"slayerCoins":0,"items":[]}},{"name":"Tree Hang","description":"Random flavour text","media":"assets/media/skills/agility/8TH.svg","category":7,"interval":8000,"requirements":{"skillLevel":[[0,80],[2,80]]},"cost":{"gp":5000000,"slayerCoins":0,"items":[[526,5000]]},"modifiers":{"increasedGlobalMasteryXP":5,"decreasedGlobalSkillXP":6},"completionBonuses":{"stamina":0,"xp":205,"gp":2360,"slayerCoins":0,"items":[]}},{"name":"A Lovely Jog","description":"Random flavour text","media":"assets/media/skills/agility/8ALJ.svg","category":7,"interval":12000,"requirements":{"skillLevel":[[2,70],[1,70],[4,70]]},"cost":{"gp":5000000,"slayerCoins":0,"items":[[7,5000]]},"modifiers":{"increasedGlobalSkillXP":5,"decreasedGlobalMasteryXP":6},"completionBonuses":{"stamina":0,"xp":106,"gp":1228,"slayerCoins":0,"items":[]}},{"name":"Lava Jump","description":"Random flavour text","media":"assets/media/skills/agility/9LJ.svg","category":8,"interval":5000,"requirements":{"skillLevel":[[17,80]]},"cost":{"gp":10000000,"slayerCoins":250000,"items":[[29,5000],[133,5000],[8,5000]]},"modifiers":{"decreasedMonsterRespawnTimer":300,"decreasedDamageReduction":6,"decreasedGlobalMasteryXP":6,"decreasedAutoEatEfficiency":6},"completionBonuses":{"stamina":0,"xp":160,"gp":3488,"slayerCoins":0,"items":[]}},{"name":"Water Jump","description":"Random flavour text","media":"assets/media/skills/agility/9WJ.svg","category":8,"interval":5000,"requirements":{"skillLevel":[[7,70],[16,70],[12,70]]},"cost":{"gp":10000000,"slayerCoins":250000,"items":[[267,5000],[396,5000],[58,5000]]},"modifiers":{"increasedGlobalMasteryXP":2,"increasedMeleeMaxHit":3,"increasedRangedMaxHit":3,"increasedMagicMaxHit":3},"completionBonuses":{"stamina":0,"xp":162,"gp":888,"slayerCoins":0,"items":[]}},{"name":"Ice Jump","description":"Random flavour text","media":"assets/media/skills/agility/9IJ.svg","category":8,"interval":6000,"requirements":{"skillLevel":[[3,60],[4,60],[18,60],[10,60]]},"cost":{"gp":10000000,"slayerCoins":0,"items":[[28,5000],[48,5000],[132,2000]]},"modifiers":{"increasedGlobalPreservationChance":10,"increasedFoodHealingValue":10,"increasedChanceToDoubleItemsGlobal":5,"increasedFlatMaxHitpoints":2,"increasedMiningNodeHP":10,"increasedSlayerCoins":10,"increasedSkillXP":[[18,5]]},"completionBonuses":{"stamina":0,"xp":315,"gp":3898,"slayerCoins":0,"items":[]}},{"name":"Cave Maze","description":"Random flavour text","media":"assets/media/skills/agility/9CM.svg","category":8,"interval":8000,"requirements":{"skillLevel":[[17,70],[12,70],[16,70]]},"cost":{"gp":10000000,"slayerCoins":0,"items":[[440,5000]]},"modifiers":{"increasedChanceToPreservePrayerPoints":10,"increasedAmmoPreservation":10,"increasedRunePreservation":10,"increasedFlatPrayerCostReduction":1},"completionBonuses":{"stamina":0,"xp":296,"gp":604,"slayerCoins":0,"items":[]}},{"name":"Frozen Lake Crossing","description":"Random flavour text","media":"assets/media/skills/agility/9FLC.svg","category":8,"interval":15000,"requirements":{"skillLevel":[[7,70],[9,70]]},"cost":{"gp":10000000,"slayerCoins":250000,"items":[[60,7500]]},"modifiers":{"increasedDamageToAllMonsters":3,"increasedAutoEatEfficiency":10},"completionBonuses":{"stamina":0,"xp":138,"gp":1086,"slayerCoins":0,"items":[]}},{"name":"Waterfall","description":"Random flavour text","media":"assets/media/skills/agility/10W.svg","category":9,"interval":23000,"requirements":{"skillLevel":[]},"cost":{"gp":20000000,"slayerCoins":0,"items":[]},"modifiers":{},"completionBonuses":{"stamina":0,"xp":567,"gp":7626,"slayerCoins":0,"items":[]}},{"name":"Lava Waterfall Dodge","description":"Random flavour text","media":"assets/media/skills/agility/10LWD.svg","category":9,"interval":15000,"requirements":{"skillLevel":[[2,95],[12,95],[16,95],[18,90],[17,80]]},"cost":{"gp":20000000,"slayerCoins":0,"items":[[441,10000],[268,10000],[398,10000]]},"modifiers":{"increasedGlobalPreservationChance":10,"increasedAmmoPreservation":5,"increasedRunePreservation":10,"increasedChanceToPreservePrayerPoints":10,"increasedSlayerCoins":10},"completionBonuses":{"stamina":0,"xp":361,"gp":2915,"slayerCoins":0,"items":[]}},{"name":"Boulder Move","description":"Random flavour text","media":"assets/media/skills/agility/10BM.svg","category":9,"interval":14000,"requirements":{"skillLevel":[[2,99],[0,99]]},"cost":{"gp":20000000,"slayerCoins":0,"items":[[62,10000],[8,10000]]},"modifiers":{"increasedGlobalMasteryXP":8},"completionBonuses":{"stamina":0,"xp":560,"gp":3257,"slayerCoins":0,"items":[]}},{"name":"Dragon Fight","description":"Random flavour text","media":"assets/media/skills/agility/10DF.svg","category":9,"interval":20000,"requirements":{"skillLevel":[[6,95],[7,95],[8,95],[17,95]]},"cost":{"gp":20000000,"slayerCoins":300000,"items":[[32,10000]]},"modifiers":{"decreasedMonsterRespawnTimer":300,"decreasedAutoEatEfficiency":16},"completionBonuses":{"stamina":0,"xp":539,"gp":7175,"slayerCoins":0,"items":[]}},{"name":"Ocean Rafting","description":"Random flavour text","media":"assets/media/skills/agility/10OR.svg","category":9,"interval":23000,"requirements":{"skillLevel":[[9,99]]},"cost":{"gp":20000000,"slayerCoins":300000,"items":[[470,30000]]},"modifiers":{"increasedDamageToAllMonsters":5,"increasedAutoEatEfficiency":5},"completionBonuses":{"stamina":0,"xp":343,"gp":3380,"slayerCoins":0,"items":[]}},{"name":"Forest Trail","description":"Random flavour text","media":"assets/media/skills/agility/6FT.svg","category":5,"interval":10000,"requirements":{"skillLevel":[[21,45]]},"cost":{"gp":1000000,"slayerCoins":0,"items":[[4,1500]]},"modifiers":{"increasedMasteryXP":[[21,3]],"decreasedSkillIntervalPercent":[[21,3]],"decreasedFarmingYield":6},"completionBonuses":{"stamina":0,"xp":88,"gp":252,"slayerCoins":0,"items":[]}},{"name":"Runic Trail","description":"Random flavour text","media":"assets/media/skills/agility/8RT.svg","category":7,"interval":12000,"requirements":{"skillLevel":[[9,70],[19,70],[21,75]]},"cost":{"gp":5000000,"slayerCoins":100000,"items":[[975,500],[976,500]]},"modifiers":{"increasedSkillPreservationChance":[[21,5]],"increasedSummoningChargePreservation":15,"increasedSummoningCreationCharges":3,"decreasedSkillPreservationChance":[[19,16]]},"completionBonuses":{"stamina":0,"xp":160,"gp":2399,"slayerCoins":0,"items":[]}},{"name":"Burning Coals","description":"Random flavour text","media":"assets/media/skills/agility/3BC.png","category":2,"interval":6000,"requirements":{"skillLevel":[[2,25]]},"cost":{"gp":150000,"slayerCoins":0,"items":[[48,350],[1,200]]},"modifiers":{"increasedSkillXP":[[3,3]],"increasedChanceSuccessfulCook":5,"decreasedDamageToAllMonsters":5},"completionBonuses":{"stamina":0,"xp":19,"gp":56,"slayerCoins":0,"items":[]}},{"name":"Sweltering Pools","description":"Random flavour text","media":"assets/media/skills/agility/8SP.png","category":7,"interval":12000,"requirements":{"skillLevel":[[2,75],[5,75],[3,75]]},"cost":{"gp":5000000,"slayerCoins":0,"items":[[6,1000],[60,500],[48,1000]]},"modifiers":{"increasedMasteryXP":[[3,3]],"decreasedSkillIntervalPercent":[[3,3]],"increasedFoodHealingValue":10,"increasedAutoEatEfficiency":10,"decreasedGlobalPreservationChance":20},"completionBonuses":{"stamina":0,"xp":195,"gp":2200,"slayerCoins":0,"items":[]}},{"name":"Rooftop Run","description":"Random flavour text","media":"assets/media/skills/agility/5RR.png","category":4,"interval":6000,"requirements":{"skillLevel":[[10,50]]},"cost":{"gp":500000,"slayerCoins":0,"items":[[522,500],[26,1000]]},"modifiers":{"increasedSkillXP":[[10,3]],"increasedGPFromThieving":20,"decreasedSkillInterval":[[10,200]],"increasedThievingStealth":35,"decreasedDamageToAllMonsters":10},"completionBonuses":{"stamina":0,"xp":27,"gp":288,"slayerCoins":0,"items":[]}}]')

SkillData.Agility.Pillars = mw.text.jsonDecode('[{"name":"Pillar of Combat","description":"Random flavour text","cost":{"gp":50000000,"slayerCoins":0,"items":[[58,10000],[133,10000]]},"modifiers":{"increasedMeleeEvasion":10,"increasedRangedEvasion":10,"increasedMagicEvasion":10,"increasedHPRegenFlat":5,"increasedSlayerAreaEffectNegationFlat":5,"increasedMinHitBasedOnMaxHit":5,"decreasedMonsterRespawnTimer":200}},{"name":"Pillar of Skilling","description":"Random flavour text","cost":{"gp":50000000,"slayerCoins":0,"items":[[58,10000],[133,10000]]},"modifiers":{"increasedFarmingYield":10,"increasedChanceToDoubleItemsGlobal":3,"increasedGlobalPreservationChance":3,"increasedGlobalMasteryXP":2}},{"name":"Pillar of Generosity","description":"Random flavour text","cost":{"gp":50000000,"slayerCoins":0,"items":[[58,10000],[133,10000]]},"modifiers":{"increasedBankSpace":10,"increasedChanceToPreservePotionCharge":10,"increasedPotionChargesFlat":5,"increasedGPGlobal":10,"increasedSummoningChargePreservation":5}}]')

SkillData.Summoning = {}
SkillData.Summoning.Settings = mw.text.jsonDecode('{"recipeGPCost":1000}')
SkillData.Summoning.Marks = mw.text.jsonDecode('{"Levels":[1,6,16,31]}')

SkillData.Summoning.Synergies = mw.text.jsonDecode('{"1":{"2":{"description":"Upon killing an Enemy, grants GP equal to 10% of their highest base Evasion Rating.","modifiers":{"summoningSynergy_0_1":10}},"3":{"description":"Upon killing an Enemy, grants +200 GP.","modifiers":{"increasedGPFromMonstersFlat":200}},"7":{"description":"Grants GP equal to 25% of your MELEE damage dealt.","modifiers":{"summoningSynergy_0_6":250}},"8":{"description":"Grants GP equal to 20% of your RANGED damage dealt.","modifiers":{"summoningSynergy_0_7":200}},"9":{"description":"Grants GP equal to 15% of your MAGIC damage dealt.","modifiers":{"summoningSynergy_0_8":150}},"13":{"description":"Upon killing a Slayer Task Enemy, grants +50% GP.","modifiers":{"summoningSynergy_0_12":50}},"14":{"description":"Upon being hit by an Enemy, grants GP equal to (20 * Your Damage Reduction). This can only proc once every Enemy Attack Turn.","modifiers":{"summoningSynergy_0_13":20}},"15":{"description":"Every time you regenerate Hitpoints (Not eating), grants GP equal to (100 * Hitpoints Regenerated).","modifiers":{"summoningSynergy_0_14":1000}},"16":{"description":"Upon killing an Enemy that is BURNING, grants +100% GP.","modifiers":{"summoningSynergy_0_15":100}}},"2":{"3":{"description":"When player has full HP, effects from the Occultist Familiar are tripled.","modifiers":{"summoningSynergy_1_2":2}},"7":{"description":"-15% Enemy Melee Evasion Rating.","modifiers":{},"enemyModifiers":{"decreasedMeleeEvasion":15}},"8":{"description":"-15% Enemy Ranged Evasion Rating.","modifiers":{},"enemyModifiers":{"decreasedRangedEvasion":15}},"9":{"description":"+100 Magic Defence Bonus.","modifiers":{"summoningSynergy_1_8":100}},"13":{"description":"If the Enemy is your current Slayer Task, -15% Enemy Accuracy Rating.","modifiers":{"summoningSynergy_1_12":15}},"14":{"description":"Grants flat Melee & Ranged Defence Bonus equal to your Damage Reduction","modifiers":{"summoningSynergy_1_13":1}},"15":{"description":"If the Enemy has more combined Evasion Ratings than the Player, grants +200% Hitpoint Regeneration.","modifiers":{"summoningSynergy_1_14":200}},"16":{"description":"If the Player is BURNING, grants +75 Melee, Ranged and Magic Defence Bonus.","modifiers":{"summoningSynergy_1_15":75}}},"3":{"7":{"description":"If using a Melee Attack Style, grants +6% Lifesteal.","modifiers":{"increasedMeleeLifesteal":6}},"8":{"description":"If using a Ranged Attack Style, grants +4% Lifesteal.","modifiers":{"increasedRangedLifesteal":4}},"9":{"description":"If using a Magic Attack Style, grants +2% Lifesteal.","modifiers":{"increasedMagicLifesteal":2}},"13":{"description":"Grants Slayer Coins equal to 5% of HP leeched from Lifesteal.","modifiers":{"summoningSynergy_2_12":50}},"14":{"description":"Upon attacking an Enemy, heals you for 50% of your Damage Reduction. This can only proc on the first attack of multi-hit attacks.","modifiers":{"summoningSynergy_2_13":5}},"15":{"description":"+50% Lifesteal from Bleed damage.","modifiers":{"increasedBleedLifesteal":50}},"16":{"description":"Heals you for all damage dealt by the Wolf & Dragon Familiars.","modifiers":{"summoningSynergy_2_15":100}}},"4":{"5":{"description":"+2% chance per action in Woodcutting to gain a random Gem.","modifiers":{"summoningSynergy_3_4":2}},"6":{"description":"+3% Increased Special Item chance in Fishing. +3% Increased chance to obtain a Bird Nests in Woodcutting.","modifiers":{"summoningSynergy_3_5":3}},"10":{"description":"+15% chance to receive +1 Cooked Food in Cooking. Cannot be doubled.","modifiers":{"summoningSynergy_3_9":15}},"11":{"description":"+20% Runecrafting Preservation Chance when creating Staves.","modifiers":{"summoningSynergy_3_10":20}},"12":{"description":"When successfully pickpocketing the Lumberjack in Thieving, grants +1 Bird Nest instead of GP.","modifiers":{"summoningSynergy_3_11":1}},"17":{"description":"In Woodcutting, +30% chance for a random Silver or Gold Jewelry to drop instead of a Bird Nest.","modifiers":{"summoningSynergy_3_16":30}},"18":{"description":"+5% chance to gain +1 Base Logs from Woodcutting, or produced Items from Smithing.","modifiers":{"summoningSynergy_3_17":5}},"19":{"description":"While the Bird Nest Potion is active in Woodcutting, grants +1 minimum Bird Nest.","modifiers":{"summoningSynergy_3_18":1}},"20":{"description":"15% of Woodcutting Skill XP is earned as Firemaking Skill XP. Chance to double Logs is halved.","modifiers":{"summoningSynergy_3_19":15}}},"5":{"6":{"description":"When receiving a Gem from Mining or Fishing, there is a +15% chance to get another random Gem.","modifiers":{"summoningSynergy_4_5":15}},"10":{"description":"Cooking Success Rate is capped at 75%. Grants 100 Coal Ore when failing to Cook Food.","modifiers":{"summoningSynergy_4_9":25}},"11":{"description":"Base quantity for Rune Essence in Mining is doubled.","modifiers":{"summoningSynergy_4_10":1}},"12":{"description":"When successfully pickpocketing the Miner in Thieving, +20% chance to get a random Gem.","modifiers":{"summoningSynergy_4_11":20}},"17":{"description":"Base quantity for Silver Ore & Gold Ore is doubled in Mining.","modifiers":{"summoningSynergy_4_16":1}},"18":{"description":"+15% chance to receive a smithed version of the Ore you are Mining.","modifiers":{"summoningSynergy_4_17":15}},"19":{"description":"While the Perfect Swing Potion is active in Mining, all Mining Nodes have +20 Max HP.","modifiers":{"summoningSynergy_4_18":20}},"20":{"description":"+10% chance to receive a Diamond per action in Firemaking.","modifiers":{"summoningSynergy_4_19":10}}},"6":{"10":{"description":"+75% chance to receive an extra Fish as a Cooked version while Fishing.","modifiers":{"summoningSynergy_5_9":75}},"11":{"description":"In Runecrafting, when creating a Combination Rune that requires Water Runes as an ingredient, produce +5 extra Combination Runes.","modifiers":{"summoningSynergy_5_10":5}},"12":{"description":"+50% Thieving Skill Interval for Fisherman only. Also grants +2 Base Thieving Item Qty from Fisherman only.","modifiers":{"summoningSynergy_5_11":50}},"17":{"description":"33% chance to gain a random Gem while creating Jewelry in Crafting.","modifiers":{"summoningSynergy_5_16":33}},"18":{"description":"While creating Dragon Gear in Smithing, grants +5% Smithing Preservation chance.","modifiers":{"summoningSynergy_5_17":5}},"19":{"description":"+200% charges when using the Fishermans Potion. Bonus is applied when new Potion is activated. Charges are used each Fishing action.","modifiers":{"summoningSynergy_5_18":200}},"20":{"description":"+5% Cooking Mastery XP. -10% Cooking Skill XP.","modifiers":{"decreasedSkillXP":[[3,10]],"increasedMasteryXP":[[3,5]]}}},"7":{"8":{"description":"While fighting a Ranged Enemy, grants +15 Melee Accuracy Bonus and +15 Melee Strength Bonus.","modifiers":{"summoningSynergy_6_7":15}},"9":{"description":"While fighting your current Slayer Task, grants +5% of your Magic Max Hit as Minimum Damage.","modifiers":{"summoningSynergy_6_8":5}},"13":{"description":"While fighting your current Slayer Task, grants +10% of your Melee Max Hit as Minimum Damage.","modifiers":{"summoningSynergy_6_12":10}},"14":{"description":"While fighting a Ranged Enemy, grants +2% Damage Reduction.","modifiers":{"summoningSynergy_6_13":2}},"15":{"description":"While using a Melee Weapon, grants +8% of your Melee Max Hit as Flat HP Regen.","modifiers":{"summoningSynergy_6_14":8}},"16":{"description":"If the Enemy is BURNING, effects from the Minotaur Familiar are tripled.","modifiers":{"summoningSynergy_6_15":2}}},"8":{"9":{"description":"While fighting a Magic Enemy, grants +15 Ranged Accuracy Bonus and +15 Ranged Strength Bonus.","modifiers":{"summoningSynergy_7_8":15}},"13":{"description":"While fighting your current Slayer Task, grants +10% of your Ranged Max Hit as Minimum Damage.","modifiers":{"summoningSynergy_7_12":10}},"14":{"description":"While fighting a Magic Enemy, grants +2% Damage Reduction.","modifiers":{"summoningSynergy_7_13":2}},"15":{"description":"While using a Ranged Weapon, grants +7% of your Ranged Max Hit as HP Regeneration.","modifiers":{"summoningSynergy_7_14":7}},"16":{"description":"Your Ranged Attacks now have +20% to inflict BURNING on the Enemy.","modifiers":{"summoningSynergy_7_15":20}}},"9":{"13":{"description":"Grants Slayer Coins equal to 2% of your Magic Damage while on Slayer Task.","modifiers":{"summoningSynergy_8_12":20}},"14":{"description":"While fighting a Melee Enemy, grants +2% Damage Reduction.","modifiers":{"summoningSynergy_8_13":2}},"15":{"description":"Grants +5% of your Max Hit as HP Regeneration if using a Magic Attack Style.","modifiers":{"summoningSynergy_8_14":5}},"16":{"description":"+30 Minimum Damage for all Standard Magic Spells.","modifiers":{"increasedMinAirSpellDmg":3,"increasedMinWaterSpellDmg":3,"increasedMinEarthSpellDmg":3,"increasedMinFireSpellDmg":3}}},"10":{"11":{"description":"+5% chance to preserve resources in Cooking, and when creating Runes in Runecrafting.","modifiers":{"increasedRunecraftingEssencePreservation":5,"increasedSkillPreservationChance":[[3,5]]}},"12":{"description":"The Chef in Thieving now deals no damage to you.","modifiers":{"summoningSynergy_9_11":1}},"17":{"description":"Crafting Recipes that require Dragonhide now use -1 quantity to create. Recipe cost cannot go below 1.","modifiers":{"summoningSynergy_9_16":1}},"18":{"description":"-0.1s Skill Interval for Cooking & Smithing.","modifiers":{"summoningSynergy_9_17":100}},"19":{"description":"Generous Cook Potions now provide +200% charges. This bonus is applied when a new potion is activated.","modifiers":{"summoningSynergy_9_18":200}},"20":{"description":"+8% Firemaking & Cooking Mastery XP. -10% Firemaking & Cooking Preservation Chance.","modifiers":{"increasedMasteryXP":[[2,8],[3,8]],"decreasedSkillPreservationChance":[[2,10],[3,10]],"summoningSynergy_9_19":1}}},"11":{"12":{"description":"Successfully pickpocketting the Miner in Thieving will now grant +1 Rune Essence.","modifiers":{"summoningSynergy_10_11":1}},"17":{"description":"+10% chance to double when creating Leather, Hard Leather or Dragonhide Armour in Crafting.","modifiers":{"summoningSynergy_10_16":10}},"18":{"description":"+10% Smithing & Runecrafting Preservation Chance.","modifiers":{"increasedSkillPreservationChance":[[5,10],[15,10]],"summoningSynergy_10_17":10}},"19":{"description":"While the Elemental Potion is active in Runecrafting, grants a chance to get random Combination Runes. The chance and quantity is equal to that of the Elemental Potion.","modifiers":{"summoningSynergy_10_18":1}},"20":{"description":"Grants +10 Fire Runes while creating Elemental Runes. -5% Runecrafting Skill XP.","modifiers":{"summoningSynergy_10_19":10,"decreasedSkillXP":[[15,5]]}}},"12":{"17":{"description":"Upon receiving a Common Drop from Thieving, automatically sell it for 1500% of its base sale price.","modifiers":{"summoningSynergy_11_16":15}},"18":{"description":"Upon successfully pickpocketting an item from the Miner in Thieving, 50% chance to receive a random Bar.","modifiers":{"summoningSynergy_11_17":50}},"19":{"description":"+3% chance to obtain a single Herb Sack while Thieving the Farmer, on top of the original item obtained.","modifiers":{"summoningSynergy_11_18":3}},"20":{"description":"While Thieving any NPC, 50% chance to grant +100% GP, 35% chance to grant 4x Items, or 15% chance to receive no items or GP at all.","modifiers":{"summoningSynergy_11_19":1}}},"13":{"14":{"description":"While fighting your current Slayer Task, +3% Damage Reduction.","modifiers":{"summoningSynergy_12_13":3}},"15":{"description":"While fighting your current Slayer Task, +150% Hitpoints Regeneration.","modifiers":{"summoningSynergy_12_14":150}},"16":{"description":"You take 25% less damage from Dragonbreath Special Attacks.","modifiers":{"decreasedDragonBreathDamage":25}}},"14":{"15":{"description":"+200% Hitpoints Regeneration if you have less than 75% Current HP.","modifiers":{"summoningSynergy_13_14":200}},"16":{"description":"You take no damage from BURNING.","modifiers":{"burnImmunity":1}}},"15":{"16":{"description":"You now heal for all BURNING damage you or the Dragon Familiar applies.","modifiers":{"increasedBurnLifesteal":100}}},"16":{},"17":{"18":{"description":"+33% chance to preserve resources in Crafting when creating Rings or Amulets only.","modifiers":{"summoningSynergy_16_17":33}},"19":{"description":"Crafting Potions now last twice as long. Bonus is applied when a new potion is activated. Charges are used per Crafting action.","modifiers":{"summoningSynergy_16_18":1}},"20":{"description":"Burning Logs in Firemaking grants GP equal to 400% of its base sale price.","modifiers":{"summoningSynergy_16_19":300}}},"18":{"19":{"description":"While using the Seeing Gold Potion in Smithing, double Silver & Gold Bar output.","modifiers":{"summoningSynergy_17_18":1}},"20":{"description":"-3 Coal required for Smithing Item production.","modifiers":{"summoningSynergy_17_19":3}}},"19":{"20":{"description":"While using the Controlled Heat Potions, +5% Firemaking Skill XP and Bonfire duration is doubled. Charges are used per Firemaking action.","modifiers":{"summoningSynergy_18_19":5}}},"20":{}}')

SkillData.Summoning.ItemData = mw.text.jsonDecode('[{"itemID":977,"level":1,"summoningID":0},{"itemID":978,"level":5,"summoningID":1},{"itemID":979,"level":15,"summoningID":2},{"itemID":980,"level":1,"summoningID":3},{"itemID":981,"level":5,"summoningID":4},{"itemID":982,"level":15,"summoningID":5},{"itemID":983,"level":25,"summoningID":6},{"itemID":984,"level":35,"summoningID":7},{"itemID":985,"level":45,"summoningID":8},{"itemID":986,"level":25,"summoningID":9},{"itemID":987,"level":35,"summoningID":10},{"itemID":988,"level":45,"summoningID":11},{"itemID":989,"level":55,"summoningID":12},{"itemID":990,"level":65,"summoningID":13},{"itemID":991,"level":80,"summoningID":14},{"itemID":992,"level":90,"summoningID":15},{"itemID":993,"level":55,"summoningID":16},{"itemID":994,"level":65,"summoningID":17},{"itemID":995,"level":80,"summoningID":18},{"itemID":996,"level":90,"summoningID":19}]')

SkillData.Farming = {}
SkillData.Farming.Patches= mw.text.jsonDecode('[{"id":0,"areaName":"Allotments","patches":[{"level":1,"cost":0},{"level":1,"cost":500},{"level":1,"cost":5000},{"level":10,"cost":15000},{"level":20,"cost":25000},{"level":30,"cost":40000},{"level":40,"cost":65000},{"level":50,"cost":80000},{"level":60,"cost":100000},{"level":70,"cost":120000},{"level":80,"cost":150000},{"level":90,"cost":200000}]},{"id":1,"areaName":"Herbs","patches":[{"level":5,"cost":10000},{"level":5,"cost":20000},{"level":15,"cost":35000},{"level":35,"cost":50000},{"level":45,"cost":80000},{"level":55,"cost":100000},{"level":65,"cost":125000},{"level":75,"cost":150000},{"level":85,"cost":200000}]},{"id":2,"areaName":"Trees","patches":[{"level":15,"cost":50000},{"level":30,"cost":100000},{"level":60,"cost":250000},{"level":80,"cost":400000}]}]')

return SkillData