Quantcast

Implement ItemInfo() script declaration.

Author Johnny C. Lam <jlam88@gmail.com>
Author date 2013-05-21 05:10:52
Author local date 2013-05-21 05:10:52 +0000
Committer Johnny C. Lam <jlam88@gmail.com>
Committer date 2013-05-21 05:10:52
Committer local date 2013-05-21 05:10:52 +0000
Commit d85f6e17783048279b32fe5f779902d26094f57d
Tree 82b49063b8dd995181ecd988c4469f41b67f4627
Parent 01894ae5c572cef7071db39f8c3a627819c4a2ac
Implement ItemInfo() script declaration.

ItemInfo(itemId buff=buffId proc=procName) declares that the item
specified by "itemId" procs the buff named by "buffId" of type "procName".
The buffIds from all ItemInfo lines are collected into spell lists named
"item_proc_<procName>".

This is intended to mirror the SimulationCraft expression
"trinket.proc.<buff>.<expr>".

For example, the following declarations describe the various editions of
the caster DPS trinket "Wushoolay's Final Choice" which procs an intellect
buff called "Wushoolay's Lightning":

  Define(wushoolays_lightning 138786)
    SpellInfo(wushoolays_lightning duration=20)
  ItemList(wushoolays_final_choice 94531 95669 96041 96413 96785)
    ItemInfo(94531 buff=wushoolays_final_choice proc=intellect)
    ItemInfo(95669 buff=wushoolays_final_choice proc=intellect)
    ItemInfo(96041 buff=wushoolays_final_choice proc=intellect)
    ItemInfo(96413 buff=wushoolays_final_choice proc=intellect)
    ItemInfo(96785 buff=wushoolays_final_choice proc=intellect)

And similarly for "Breath of the Hydra":

  Define(breath_of_many_minds 138898)
    SpellInfo(breath_of_many_minds duration=20)
  ItemList(breath_of_the_hydra 94521 95711 96083 96455 96827)
    ItemInfo(94521 buff=breath_of_many_minds proc=intellect)
    ItemInfo(95711 buff=breath_of_many_minds proc=intellect)
    ItemInfo(96083 buff=breath_of_many_minds proc=intellect)
    ItemInfo(96455 buff=breath_of_many_minds proc=intellect)
    ItemInfo(96827 buff=breath_of_many_minds proc=intellect)

It is then possible to use "item_proc_intellect" as a buff name to
represent the intellect proc from either trinket, e.g.,

  # metamorphosis,if=trinket.proc.intellect.react
  if BuffPresent(item_proc_intellect) Spell(metamorphosis)

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@919 d5049fe3-3747-40f7-a4b5-f36d6801af5f