Anonymous

Module:Skills/Agility: Difference between revisions

From Melvor Idle
Added a getObstacles function which will be used by the in-progress ModifierTables module
(testing solid borders)
(Added a getObstacles function which will be used by the in-progress ModifierTables module)
(4 intermediate revisions by the same user not shown)
Line 9: Line 9:
local ItemSourceTables = require('Module:Items/SourceTables')
local ItemSourceTables = require('Module:Items/SourceTables')
local Icons = require('Module:Icons')
local Icons = require('Module:Icons')
function p.getObstacleByID(obstID)
  local result = Shared.clone(SkillData.Agility.Obstacles[obstID + 1])
  return result
end
function p.getObstacle(name)
  for i, obst in Shared.skpairs(SkillData.Agility.Obstacles) do
    if obst.name == name then
      local result = Shared.clone(obst)
      result.id = i - 1
      return result
    end
  end
  return nil
end
function p.getObstacles(checkFunc)
  local result = {}
  for i, obst in Shared.skpairs(SkillData.Agility.Obstacles) do
    if checkFunc(obst) then
      local newObst = Shared.clone(obst)
      newObst.id = i - 1
      table.insert(result, newObst)
    end
  end
  return result
end


function p.getObstacleCourseTable(frame)
function p.getObstacleCourseTable(frame)
Line 42: Line 70:
     --After that, adding the bonuses
     --After that, adding the bonuses
     for bonusName, bonusValue in pairs(obst.modifiers) do
     for bonusName, bonusValue in pairs(obst.modifiers) do
       if type(bonusValue) == 'table' then
       table.insert(bonuses, Constants._getModifierText(bonusName, bonusValue))
        for j, trueBonus in pairs(bonusValue) do
          table.insert(bonuses, Constants.getModifierText(bonusName, trueBonus))
        end
      else
        table.insert(bonuses, Constants.getModifierText(bonusName, bonusValue))
      end
     end
     end
     if Shared.tableCount(bonuses) == 0 then
     if Shared.tableCount(bonuses) == 0 then
Line 96: Line 118:
     local bonuses = {}
     local bonuses = {}
     for bonusName, bonusValue in pairs(pill.modifiers) do
     for bonusName, bonusValue in pairs(pill.modifiers) do
       if type(bonusValue) == 'table' then
       table.insert(bonuses, Constants._getModifierText(bonusName, bonusValue))
        for j, trueBonus in pairs(bonusValue) do
          table.insert(bonuses, Constants.getModifierText(bonusName, trueBonus))
        end
      else
        table.insert(bonuses, Constants.getModifierText(bonusName, bonusValue))
      end
     end
     end
     if Shared.tableCount(bonuses) == 0 then
     if Shared.tableCount(bonuses) == 0 then
Line 121: Line 137:


   result = result..'\r\n|}'
   result = result..'\r\n|}'
  return result
end
function p.getObstaclesForItem(itemID)
  local result = {}
  for i, obst in Shared.skpairs(SkillData.Agility.Obstacles) do
    for j, costLine in Shared.skpairs(obst.cost.items) do
      if costLine[1] == itemID then
        table.insert(result, obst)
      end
    end
  end
  for i, obst in Shared.skpairs(SkillData.Agility.Pillars) do
    for j, costLine in Shared.skpairs(obst.cost.items) do
      if costLine[1] == itemID then
        table.insert(result, obst)
      end
    end
  end


   return result
   return result