annotate data.lua @ 46:40d6886d1966

Correct the number of items to craft (the formulae was wrong and has to take the number of item crafted into account)
author contrebasse
date Sat, 30 Apr 2011 01:31:19 +0200
parents d74613eb5f72
children 4d0ec5b598d0
rev   line source
contrebasse@0 1 local addonName, A = ...
contrebasse@0 2
contrebasse@41 3 -- @todo: complete jewelcrafting items
contrebasse@41 4
contrebasse@15 5 local MillID = 51005
contrebasse@15 6 local macroMill = "/cast "..GetSpellInfo(MillID).."\n/use "
contrebasse@31 7 local MillLink = GetSpellLink(MillID)
contrebasse@31 8 MillID = nil
contrebasse@15 9 local ProspectID = 31252
contrebasse@15 10 local macroProspect = "/cast "..GetSpellInfo(ProspectID).."\n/use "
contrebasse@31 11 local ProspectLink = GetSpellLink(ProspectID)
contrebasse@31 12 ProspectID = nil
contrebasse@0 13 A.data = {
contrebasse@0 14 -- Mill
contrebasse@11 15 -- Normal pigments
contrebasse@0 16 [39151] = { -- Alabaster Pigment
contrebasse@3 17 spell = macroMill,
contrebasse@31 18 spellLink = MillLink,
contrebasse@11 19 {2447,5,2,3}, -- Peacebloom
contrebasse@11 20 { 765,5,2,3}, -- Silverleaf
contrebasse@11 21 {2449,5,2,4}}, -- Earthroot
contrebasse@20 22 [39334] = { -- Dusky Pigment
contrebasse@3 23 spell = macroMill,
contrebasse@31 24 spellLink = MillLink,
contrebasse@11 25 { 785,5,2,3}, -- Mageroyal
contrebasse@11 26 {2450,5,2,3}, -- Briarthorn
contrebasse@11 27 {2452,5,2,3}, -- Swiftthistle
contrebasse@11 28 {2453,5,2,4}, -- Bruiseweed
contrebasse@11 29 {3820,5,2,4}}, -- Stranglekelp
contrebasse@0 30 [39338] = { -- Golden Pigment
contrebasse@3 31 spell = macroMill,
contrebasse@31 32 spellLink = MillLink,
contrebasse@11 33 {3369,5,2,3}, -- Grave Moss
contrebasse@11 34 {3355,5,2,3}, -- Wild Steelbloom
contrebasse@11 35 {3356,5,2,4}, -- Kingsblood
contrebasse@11 36 {3357,5,2,4}}, -- Liferoot
contrebasse@0 37 [39339] = { -- Emerald Pigment
contrebasse@3 38 spell = macroMill,
contrebasse@31 39 spellLink = MillLink,
contrebasse@11 40 {3818,5,2,3}, -- Fadeleaf
contrebasse@11 41 {3821,5,2,3}, -- Goldthorn
contrebasse@11 42 {3358,5,3,4}, -- Khadgar's Whisker
contrebasse@11 43 {3819,5,3,4}}, -- Dragon's Teeth
contrebasse@0 44 [39340] = { -- Violet Pigment
contrebasse@3 45 spell = macroMill,
contrebasse@31 46 spellLink = MillLink,
contrebasse@11 47 {4625,5,2,3}, -- Firebloom
contrebasse@11 48 {8831,5,2,3}, -- Purple Lotus
contrebasse@11 49 {8836,5,2,3}, -- Arthas' Tears
contrebasse@11 50 {8838,5,2,3}, -- Sungrass
contrebasse@11 51 {8839,5,2,4}, -- Blindweed
contrebasse@11 52 {8845,5,2,4}, -- Ghost Mushroom
contrebasse@11 53 {8846,5,2,4}}, -- Gromsblood
contrebasse@0 54 [39341] = { -- Silvery Pigment
contrebasse@3 55 spell = macroMill,
contrebasse@31 56 spellLink = MillLink,
contrebasse@11 57 {13464,5,2,3}, -- Golden Sansam
contrebasse@11 58 {13463,5,2,3}, -- Dreamfoil
contrebasse@11 59 {13465,5,2,4}, -- Mountain Silversage
contrebasse@11 60 {13466,5,2,4}, -- Sorrowmoss
contrebasse@11 61 {13467,5,2,4}}, -- Icecap
contrebasse@0 62 [39342] = { -- Nether Pigment
contrebasse@3 63 spell = macroMill,
contrebasse@31 64 spellLink = MillLink,
contrebasse@11 65 {22786,5,2,3}, -- Dreaming Glory
contrebasse@11 66 {22785,5,2,3}, -- Felweed
contrebasse@11 67 {22789,5,2,3}, -- Terocone
contrebasse@11 68 {22787,5,2,3}, -- Ragveil
contrebasse@11 69 {22790,5,2,4}, -- Ancient Lichen
contrebasse@11 70 {22793,5,2,4}, -- Mana Thistle
contrebasse@11 71 {22791,5,2,4}, -- Netherbloom
contrebasse@11 72 {22792,5,2,4}}, -- Nightmare Vine
contrebasse@0 73 [39343] = { -- Azure Pigment
contrebasse@31 74 spellLink = MillLink,
contrebasse@3 75 spell = macroMill,
contrebasse@11 76 {37921,5,2,3}, -- Deadnettle
contrebasse@11 77 {36901,5,2,3}, -- Goldclover
contrebasse@11 78 {36907,5,2,3}, -- Talandra's Rose
contrebasse@11 79 {36904,5,2,3}, -- Tiger Lily
contrebasse@11 80 {39970,5,2,3}, -- Fire Leaf
contrebasse@42 81 {39969,5,2.3,3}, -- Fire Seed (2:33%/3:67%)
contrebasse@11 82 {36903,5,2,4}, -- Adder's Tongue
contrebasse@11 83 {36906,5,2,4}, -- Icethorn
contrebasse@11 84 {36905,5,2,4}}, -- Lichbloom
contrebasse@0 85 [61979] = { -- Ashen Pigment
contrebasse@3 86 spell = macroMill,
contrebasse@31 87 spellLink = MillLink,
contrebasse@11 88 {52983,5,2,3}, -- Cinderbloom
contrebasse@11 89 {52985,5,2,3}, -- Azshara's Veil
contrebasse@11 90 {52984,5,2,3}, -- Stormvine
contrebasse@11 91 {52986,5,2,3}, -- Heartblossom
contrebasse@11 92 {52988,5,2,4}, -- Whiptail
contrebasse@11 93 {52987,5,2,4}}, -- Twilight Jasmine
contrebasse@11 94 -- Rare pigments
contrebasse@11 95 [43103] = { -- Verdant Pigment
contrebasse@11 96 spell = macroMill,
contrebasse@31 97 spellLink = MillLink,
contrebasse@11 98 {785,5,0.25}, -- Mageroyal
contrebasse@11 99 {2450,5,0.25}, -- Briarthorn
contrebasse@11 100 {2452,5,0.25}, -- Swiftthistle
contrebasse@11 101 {2453,5,0.5}, -- Bruiseweed
contrebasse@11 102 {3820,5,0.5}}, -- Stranglekelp
contrebasse@11 103 [43104] = { -- Burnt Pigment
contrebasse@11 104 spell = macroMill,
contrebasse@31 105 spellLink = MillLink,
contrebasse@11 106 {3369,5,0.25}, -- Grave Moss
contrebasse@11 107 {3355,5,0.25}, -- Wild Steelbloom
contrebasse@11 108 {3356,5,0.5}, -- Kingsblood
contrebasse@11 109 {3357,5,0.5}}, -- Liferoot
contrebasse@11 110 [43105] = { -- Indigo Pigment
contrebasse@11 111 spell = macroMill,
contrebasse@31 112 spellLink = MillLink,
contrebasse@11 113 {3818,5,0.25}, -- Fadeleaf
contrebasse@11 114 {3821,5,0.25}, -- Goldthorn
contrebasse@11 115 {3358,5,0.5}, -- Khadgar's Whisker
contrebasse@11 116 {3819,5,0.5}}, -- Dragon's Teeth
contrebasse@11 117 [43106] = { -- Ruby Pigment
contrebasse@11 118 spell = macroMill,
contrebasse@31 119 spellLink = MillLink,
contrebasse@11 120 {4625,5,0.25}, -- Firebloom
contrebasse@11 121 {8831,5,0.25}, -- Purple Lotus
contrebasse@11 122 {8836,5,0.25}, -- Arthas' Tears
contrebasse@11 123 {8838,5,0.25}, -- Sungrass
contrebasse@11 124 {8839,5,0.5}, -- Blindweed
contrebasse@11 125 {8845,5,0.5}, -- Ghost Mushroom
contrebasse@11 126 {8846,5,0.5}}, -- Gromsblood
contrebasse@11 127 [43107] = { -- Sapphire Pigment
contrebasse@11 128 spell = macroMill,
contrebasse@31 129 spellLink = MillLink,
contrebasse@11 130 {13464,5,0.25}, -- Golden Sansam
contrebasse@11 131 {13463,5,0.25}, -- Dreamfoil
contrebasse@11 132 {13465,5,0.5}, -- Mountain Silversage
contrebasse@11 133 {13466,5,0.5}, -- Sorrowmoss
contrebasse@11 134 {13467,5,0.5}}, -- Icecap
contrebasse@11 135 [43108] = { -- Ebon Pigment
contrebasse@11 136 spell = macroMill,
contrebasse@31 137 spellLink = MillLink,
contrebasse@11 138 {22786,5,0.25}, -- Dreaming Glory
contrebasse@11 139 {22785,5,0.25}, -- Felweed
contrebasse@11 140 {22789,5,0.25}, -- Terocone
contrebasse@11 141 {22787,5,0.25}, -- Ragveil
contrebasse@11 142 {22790,5,0.5}, -- Ancient Lichen
contrebasse@11 143 {22793,5,0.5}, -- Mana Thistle
contrebasse@11 144 {22791,5,0.5}, -- Netherbloom
contrebasse@11 145 {22792,5,0.5}}, -- Nightmare Vine
contrebasse@11 146 [43109] = { -- Icy Pigment
contrebasse@31 147 spellLink = MillLink,
contrebasse@11 148 spell = macroMill,
contrebasse@11 149 {37921,5,0.25}, -- Deadnettle
contrebasse@11 150 {36901,5,0.25}, -- Goldclover
contrebasse@11 151 {36907,5,0.25}, -- Talandra's Rose
contrebasse@11 152 {36904,5,0.25}, -- Tiger Lily
contrebasse@11 153 {39970,5,0.25}, -- Fire Leaf
contrebasse@11 154 {39969,5,0.25}, -- Fire Seed
contrebasse@11 155 {36903,5,0.5}, -- Adder's Tongue
contrebasse@11 156 {36906,5,0.5}, -- Icethorn
contrebasse@11 157 {36905,5,0.5}}, -- Lichbloom
contrebasse@11 158 [61980] = { -- Burning Embers
contrebasse@11 159 spell = macroMill,
contrebasse@31 160 spellLink = MillLink,
contrebasse@11 161 {52983,5,0.25}, -- Cinderbloom
contrebasse@11 162 {52985,5,0.25}, -- Azshara's Veil
contrebasse@11 163 {52984,5,0.25}, -- Stormvine
contrebasse@11 164 {52986,5,0.25}, -- Heartblossom
contrebasse@11 165 {52988,5,0.5}, -- Whiptail
contrebasse@11 166 {52987,5,0.5}}, -- Twilight Jasmine
contrebasse@0 167
contrebasse@8 168 -- Prospect
contrebasse@8 169 [774] = { -- Malachite
contrebasse@9 170 spell = macroProspect,
contrebasse@31 171 spellLink = ProspectLink,
contrebasse@8 172 {2770,5,0.5}}, -- Copper Ore
contrebasse@8 173 [818] = { -- Tigerseye
contrebasse@9 174 spell = macroProspect,
contrebasse@31 175 spellLink = ProspectLink,
contrebasse@8 176 {2770,5,0.5}}, -- Copper Ore
contrebasse@8 177 [1210] = { -- Shadowgem
contrebasse@9 178 spell = macroProspect,
contrebasse@31 179 spellLink = ProspectLink,
contrebasse@11 180 {2771,50,0.38}, -- Tin Ore
contrebasse@8 181 {2770,5,0.1}}, -- Copper Ore
contrebasse@8 182 [1705] = { -- Lesser Moonstone
contrebasse@9 183 spell = macroProspect,
contrebasse@31 184 spellLink = ProspectLink,
contrebasse@8 185 {2771,5,0.38}, -- Tin Ore
contrebasse@8 186 {2772,5,0.35}}, -- Iron Ore
contrebasse@8 187 [1206] = { -- Moss Agate
contrebasse@9 188 spell = macroProspect,
contrebasse@31 189 spellLink = ProspectLink,
contrebasse@8 190 {2771,5,0.37}}, -- Tin Ore
contrebasse@8 191 [1529] = { -- Jade
contrebasse@9 192 spell = macroProspect,
contrebasse@31 193 spellLink = ProspectLink,
contrebasse@8 194 {2772,5,0.35}, -- Iron Ore
contrebasse@8 195 {2771,5,0.03}}, -- Tin Ore
contrebasse@8 196 [7909] = { -- Aquamarine
contrebasse@9 197 spell = macroProspect,
contrebasse@31 198 spellLink = ProspectLink,
contrebasse@8 199 {3858,5,0.35}, -- Mithril Ore
contrebasse@8 200 {2772,5,0.05}, -- Iron Ore
contrebasse@8 201 {2771,5,0.03}}, -- Tin Ore
contrebasse@8 202 [3864] = { -- Citrine
contrebasse@9 203 spell = macroProspect,
contrebasse@31 204 spellLink = ProspectLink,
contrebasse@8 205 {2772,5,0.36}, -- Iron Ore
contrebasse@8 206 {3858,5,0.35}, -- Mithril Ore
contrebasse@8 207 {2771,5,0.03}}, -- Tin Ore
contrebasse@8 208 [7910] = { -- Star Ruby
contrebasse@9 209 spell = macroProspect,
contrebasse@31 210 spellLink = ProspectLink,
contrebasse@8 211 {3858,5,0.36}, -- Mithril Ore
contrebasse@8 212 {10620,5,0.15}, -- Thorium Ore
contrebasse@8 213 {2772,5,0.05}}, -- Iron Ore
contrebasse@8 214 [12799] = { -- Large Opal
contrebasse@9 215 spell = macroProspect,
contrebasse@31 216 spellLink = ProspectLink,
contrebasse@8 217 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 218 {3858,5,0.03}}, -- Mithril Ore
contrebasse@8 219 [12361] = { -- Blue Sapphire
contrebasse@9 220 spell = macroProspect,
contrebasse@31 221 spellLink = ProspectLink,
contrebasse@8 222 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 223 {3858,5,0.02}}, -- Mithril Ore
contrebasse@8 224 [12800] = { -- Azerothian Diamond
contrebasse@9 225 spell = macroProspect,
contrebasse@31 226 spellLink = ProspectLink,
contrebasse@8 227 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 228 {3858,5,0.02}}, -- Mithril Ore
contrebasse@8 229 [12364] = { -- Huge Emerald
contrebasse@9 230 spell = macroProspect,
contrebasse@31 231 spellLink = ProspectLink,
contrebasse@8 232 {10620,5,0.31}, -- Thorium Ore
contrebasse@8 233 {3858,5,0.02}}, -- Mithril Ore
contrebasse@8 234 [23112] = { -- Golden Draenite
contrebasse@9 235 spell = macroProspect,
contrebasse@31 236 spellLink = ProspectLink,
contrebasse@8 237 {23424,5,0.19}, -- Fel Iron Ore
contrebasse@8 238 {23425,5,0.18}}, -- Adamantite Ore
contrebasse@8 239 -- To be continued...
contrebasse@8 240
contrebasse@8 241
contrebasse@3 242 -- To add : enchants, elementals, prospecting
contrebasse@0 243 }
contrebasse@0 244
contrebasse@0 245 -- @todo improve scanning
contrebasse@0 246 -- @todo rescan when a new refipe appears (TRADESKILL_UPDATE ?)
contrebasse@0 247 -- @todo be sure that skillName is unique, or use something else
contrebasse@0 248 -- @todo add support for multi-reagents recipes
contrebasse@15 249 do
contrebasse@15 250 -- lua functions
contrebasse@15 251 local print = print
contrebasse@15 252 local ipairs = ipairs
contrebasse@15 253 local tinsert = tinsert
contrebasse@0 254
contrebasse@15 255 -- Wow functions
contrebasse@15 256 local GetNumTradeSkills = GetNumTradeSkills
contrebasse@15 257 local GetTradeSkillInfo = GetTradeSkillInfo
contrebasse@15 258 local GetTradeSkillNumReagents = GetTradeSkillNumReagents
contrebasse@15 259 local GetTradeSkillItemLink = GetTradeSkillItemLink
contrebasse@15 260 local GetTradeSkillReagentItemLink = GetTradeSkillReagentItemLink
contrebasse@15 261 local GetTradeSkillReagentInfo = GetTradeSkillReagentInfo
contrebasse@15 262 local GetTradeSkillNumMade = GetTradeSkillNumMade
contrebasse@0 263
contrebasse@15 264 -- the function who scans the tradeskill
contrebasse@15 265 function A:ScanSimpleRecipes()
contrebasse@26 266 -- Check if the tradeskill is loaded
contrebasse@26 267 -- Has to have recipes and begin with a header
contrebasse@26 268 local NRecipes = GetNumTradeSkills()
contrebasse@26 269 if NRecipes==0 or select(2,GetTradeSkillInfo(1))~="header" then
contrebasse@26 270 return
contrebasse@26 271 end
contrebasse@26 272
contrebasse@26 273 for i = 2,NRecipes do -- The first one is a header
contrebasse@15 274 local skillName, skillType, numAvailable, isExpanded, serviceType, numSkillUps = GetTradeSkillInfo(i)
contrebasse@15 275 if skillType ~= "header" then
contrebasse@36 276 --if GetTradeSkillNumReagents(i) == 1 then
contrebasse@15 277 -- item ID
contrebasse@15 278 local itemID = A.link2ID(GetTradeSkillItemLink(i))
contrebasse@0 279
contrebasse@15 280 -- reagent ID
contrebasse@15 281 local reagentID = A.link2ID(GetTradeSkillReagentItemLink(i, 1))
contrebasse@14 282
contrebasse@15 283 -- reagent number needed
contrebasse@15 284 local reagentName, reagentTexture, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(i, 1)
contrebasse@14 285
contrebasse@15 286 -- number of reagent created by the recipe
contrebasse@15 287 local minMade, maxMade = GetTradeSkillNumMade(i)
contrebasse@30 288
contrebasse@30 289 -- recipe link (for tooltips)
contrebasse@30 290 local recipeLink = GetTradeSkillRecipeLink(i)
contrebasse@0 291
contrebasse@15 292 -- error checking
contrebasse@30 293 if not reagentID or not reagentCount or not skillName or not itemID or not minMade or not maxMade or not recipeLink then
contrebasse@30 294 print("Erreur de scan :",itemID,skillName,reagentID,reagentCount,minMade,maxMade,recipeLink)
contrebasse@37 295
contrebasse@37 296 else -- Zap incomplete recipes, they will be scanned later
contrebasse@37 297 -- remove unneeded minMade/maxMade
contrebasse@37 298 if maxMade==minMade then
contrebasse@37 299 maxMade = nil
contrebasse@37 300 if minMade==1 then
contrebasse@37 301 minMade = nil
contrebasse@37 302 end -- if
contrebasse@37 303 end -- if
contrebasse@15 304
contrebasse@37 305 -- skillName or...???
contrebasse@37 306 -- There's still a problem when multiple recipes craft the same item
contrebasse@37 307 if not A.data[itemID] then
contrebasse@37 308 A.data[itemID] = {}
contrebasse@15 309 end -- if
contrebasse@37 310 local newSpell = true
contrebasse@37 311 for _,v in ipairs(A.data[itemID]) do
contrebasse@37 312 if v.spellName==skillName then
contrebasse@37 313 newSpell = nil
contrebasse@37 314 break
contrebasse@37 315 end -- if
contrebasse@37 316 end -- for
contrebasse@37 317 if newSpell then
contrebasse@37 318 A.data[itemID].spellLink = recipeLink
contrebasse@38 319 A.data[itemID].manyReagents = A.data[itemID].manyReagents or GetTradeSkillNumReagents(i)>1
contrebasse@37 320 tinsert(A.data[itemID],{reagentID,reagentCount,minMade,maxMade,spellName=skillName})
contrebasse@15 321 end -- if
contrebasse@15 322 end -- if
contrebasse@36 323 --end -- if
contrebasse@0 324 end -- if
contrebasse@15 325 end -- for
contrebasse@26 326
contrebasse@26 327 -- the scanning is complete
contrebasse@26 328 return true
contrebasse@15 329 end -- function
contrebasse@15 330 end -- do