Advertisement
Guest User

Untitled

a guest
Jan 7th, 2015
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 31.15 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4. --[[
  5. Custom commands:
  6. Shorthand versions for each strategem type that uses the version appropriate for
  7. the current Arts.
  8. Light Arts Dark Arts
  9. gs c scholar light Light Arts/Addendum
  10. gs c scholar dark Dark Arts/Addendum
  11. gs c scholar cost Penury Parsimony
  12. gs c scholar speed Celerity Alacrity
  13. gs c scholar aoe Accession Manifestation
  14. gs c scholar power Rapture Ebullience
  15. gs c scholar duration Perpetuance
  16. gs c scholar accuracy Altruism Focalization
  17. gs c scholar enmity Tranquility Equanimity
  18. gs c scholar skillchain Immanence
  19. gs c scholar addendum Addendum: White Addendum: Black
  20. --]]
  21. -- Initialization function for this job file.
  22. function get_sets()
  23. mote_include_version = 2
  24. sets.obi = {
  25.     Fire = {waist="Karin Obi"},
  26.     Earth = {waist="Dorin Obi"},
  27.     Water = {waist="Suirin Obi"},
  28.     Wind = {waist="Furin Obi"},
  29.     Ice = {waist="Hyorin Obi"},
  30.     Lightning = {waist="Rairin Obi"},
  31.     Light = {waist="Korin Obi"},
  32.     Dark = {waist="Anrin Obi"},
  33.     }
  34. -- Load and initialize the include file.
  35. include('Mote-Include.lua')
  36. end
  37. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  38. function job_setup()
  39. info.addendumNukes = S{"Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",
  40. "Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}
  41. state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
  42. update_active_strategems()
  43. end
  44. -------------------------------------------------------------------------------------------------------------------
  45. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  46. -------------------------------------------------------------------------------------------------------------------
  47. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  48. function user_setup()
  49.  
  50. state.OffenseMode:options('None', 'Normal')
  51. state.CastingMode:options('Normal', 'Resistant')
  52. state.IdleMode:options('Normal', 'PDT')
  53. info.low_nukes = S{"Stone", "Water", "Aero", "Fire", "Blizzard", "Thunder"}
  54. info.mid_nukes = S{"Stone II", "Water II", "Aero II", "Fire II", "Blizzard II", "Thunder II",
  55. "Stone III", "Water III", "Aero III", "Fire III", "Blizzard III", "Thunder III",
  56. "Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",}
  57. info.high_nukes = S{"Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}
  58. gear.macc_hagondes = {name="Hagondes Cuffs", augments={'Phys. dmg. taken -1%','Mag. Acc.+26'}}
  59. send_command('bind ^` input /ma Stun <t>')
  60. select_default_macro_book()
  61. gear.default.obi_waist = "Yamabuki-no-Obi"
  62.  
  63. end
  64. function user_unload()
  65. send_command('unbind ^`')
  66. end
  67. -- Define sets and vars used by this job file.
  68. function init_gear_sets()
  69. --------------------------------------
  70. -- Start defining the sets
  71. --------------------------------------
  72. -- Precast Sets
  73. -- Precast sets to enhance JAs
  74. sets.precast.JA['Tabula Rasa'] = {legs="Pedagogy Pants"}
  75. sets.precast.JA['Modus Veritas'] = {main={ name="Lehbrailg +2", augments={'DMG:+13','CHR+7','Mag. Acc.+25',}},sub="Mephitis Grip",range="Aureole",
  76. head="Buremte Hat",neck="Imbodla Necklace",ear1="Gwati Earring",ear2="Enchntr. Earring +1",
  77. body="Ischemia Chasuble",hands="Hagondes Cuffs +1",ring1="Perception Ring",ring2="Sangoma Ring",
  78. back="Ogapepo Cape",waist="Ovate Rope",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
  79. -- Fast cast sets for spells
  80. sets.precast.FC = {ammo="Impatiens",
  81. head="Nahtirah Hat",neck="Orunmila's Torque",ear2="Loquacious Earring",ear1="Enchntr. Earring +1",
  82. body="Anhur Robe",hands="Gendewitha Gages",ring1="Prolix Ring",
  83. back="Ogapepo Cape",waist="Witful Belt",legs="Artsieq Hose",feet="Pedagogy Loafers +1"}
  84. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  85. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC,{back="Swith Cape", ammo="Incantor Stone"})
  86. sets.precast.FC['Stoneskin'] = set_combine(sets.precast.FC['Enhancing Magic'], {head="Umuthi Hat"})
  87. sets.precast.FC.Cure = set_combine(sets.precast.FC, {sub="Sors Shield",body="Heka's Kalasiris"})
  88. sets.precast.FC.Curaga = sets.precast.FC.Cure
  89. sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
  90.  
  91.  
  92. sets.precast.FC['Elemental Magic'].LowTierNuke = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  93. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  94. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  95. waist=gear.ElementalObi,legs="Hagondes Pants",feet="Umbani Boots"}
  96.  
  97.  
  98.  
  99.  
  100. -- Midcast Sets
  101. sets.midcast.FastRecast = {ammo="Impatiens",
  102. head="Nahtirah Hat",neck="Orunmila's Torque",ear2="Loquacious Earring",ear1="Enchntr. Earring +1",
  103. body="Anhur Robe",hands="Gendewitha Gages",ring1="Prolix Ring",
  104. back="Swith Cape",waist="Goading Belt",legs="Artsieq Hose",feet="Academic's Loafers"}
  105.  
  106. sets.midcast.Cure = {main="Tamaxchi",
  107.     sub="Sors Shield",
  108.     head="Gende. Caubeen",
  109.     body="Peda. Gown +1",
  110.     hands="Pedagogy Bracers",
  111.     legs="Acad. Pants +1",
  112.     feet="Regal Pumps",
  113.     neck="Phalaina Locket",
  114.     waist="Pythia Sash +1",
  115.     left_ear="Beatific Earring",
  116.     right_ear="Lifestorm Earring",
  117.     left_ring="Prolix Ring",
  118.     right_ring="Sirona's Ring",
  119.     back="Oretan. Cape +1"}
  120. sets.midcast.CureWithLightWeather = {main="Chatoyant Staff",
  121.     head="Gende. Caubeen",
  122.     body="Peda. Gown +1",
  123.     hands="Pedagogy Bracers",
  124.     legs="Acad. Pants +1",
  125.     feet="Regal Pumps",
  126.     neck="Phalaina Locket",
  127.     waist="Korin Obi",
  128.     left_ear="Beatific Earring",
  129.     right_ear="Lifestorm Earring",
  130.     left_ring="Prolix Ring",
  131.     right_ring="Sirona's Ring",
  132.     back="Oretan. Cape +1"}
  133. sets.midcast.Curaga = sets.midcast.Cure
  134. sets.midcast.Regen = {main="Bolelabunga",head="Savant's Bonnet +2",back={ name="Bookworm's Cape", augments={'INT+3','MND+3','"Regen" potency+1',}}}
  135. sets.midcast.Cursna = {back="Oretania's Cape +1"}
  136. sets.midcast['Enhancing Magic'] = {main="Kirin's Pole",ammo="Savant's Treatise",
  137. head="Umuthi Hat",neck="Colossus's Torque",
  138. body="Anhur Robe",hands="Ayao's Gages",back="Merciful Cape",
  139. waist="Cascade Belt",legs="Academic's Pants +1", feet="Regal Pumps"}
  140. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash",legs="Shedir Seraweels"})
  141. sets.midcast.BarElement= set_combine(sets.midcast['Enhancing Magic'], {legs="Shedir Seraweels"})
  142. sets.midcast.BarAilment = set_combine(sets.midcast['Enhancing Magic'], {legs="Shedir Seraweels"})
  143. sets.midcast.Storm = set_combine(sets.midcast['Enhancing Magic'], {feet="Pedagogy Loafers +1"})
  144. sets.midcast.Protect = {ring1="Sheltered Ring"}
  145. sets.midcast.Protectra = sets.midcast.Protect
  146. sets.midcast.Shell = {ring1="Sheltered Ring"}
  147. sets.midcast.Shellra = sets.midcast.Shell
  148. -- Custom spell classes
  149. sets.midcast.MndEnfeebles = {main={ name="Lehbrailg +2", augments={'DMG:+13','CHR+7','Mag. Acc.+25',}},sub="Mephitis Grip",range="Aureole",
  150. head="Buremte Hat",neck="Imbodla Necklace",ear1="Gwati Earring",ear2="Enchntr. Earring +1",
  151. body="Ischemia Chasuble",hands="Hagondes Cuffs +1",ring1="Perception Ring",ring2="Sangoma Ring",
  152. back="Ogapepo Cape",waist="Ovate Rope",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
  153. sets.midcast.IntEnfeebles = {main={ name="Lehbrailg +2", augments={'DMG:+13','CHR+7','Mag. Acc.+25',}},sub="Mephitis Grip",range="Aureole",
  154. head="Buremte Hat",neck="Imbodla Necklace",ear1="Gwati Earring",ear2="Enchntr. Earring +1",
  155. body="Ischemia Chasuble",hands="Hagondes Cuffs +1",ring1="Perception Ring",ring2="Sangoma Ring",
  156. back="Ogapepo Cape",waist="Ovate Rope",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
  157. sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
  158. sets.midcast['Dark Magic'] = {main={ name="Lehbrailg +2", augments={'DMG:+13','CHR+7','Mag. Acc.+25',}},sub="Mephitis Grip",range="Aureole",
  159. head="Buremte Hat",neck="Imbodla Necklace",ear1="Gwati Earring",ear2="Enchntr. Earring +1",
  160. body="Ischemia Chasuble",hands="Hagondes Cuffs +1",ring1="Perception Ring",ring2="Sangoma Ring",
  161. back="Ogapepo Cape",waist="Ovate Rope",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
  162. sets.midcast.Kaustra = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  163. head="Pixie Hairpin +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  164. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",
  165. back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},waist=gear.ElementalObi,legs="Hagondes Pants",feet="Umbani Boots"}
  166. sets.midcast.Drain = {main={ name="Lehbrailg +2", augments={'DMG:+13','CHR+7','Mag. Acc.+25',}},sub="Mephitis Grip",range="Aureole",
  167. head="Buremte Hat",neck="Eddy Necklace",ear1="Gwati Earring",ear2="Enchntr. Earring +1",
  168. body="Academic's Gown +1",hands="Hagondes Cuffs +1",ring1="Perception Ring",ring2="Sangoma Ring",
  169. back="Bookworm's Cape",waist="Fucho-no-obi",legs="Pedagogy Pants",feet="Artsieq Boots"}
  170. sets.midcast.Aspir = sets.midcast.Drain
  171. sets.midcast.Stun = {main="Apamajas II",sub="Mephitis Grip",ammo="Impatiens",
  172. head="Pedagogy Mortarboard +1",neck="Orunmila's Torque",ear1="Enchntr. Earring +1",ear2="Loquacious Earring",
  173. body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
  174. back="Ogapepo Cape",waist="Witful Belt",legs="Artsieq Hose",feet="Pedagogy Loafers +1"}
  175. sets.midcast.StunAlacrity = {main="Apamajas II",sub="Mephitis Grip",ammo="Incantor Stone",
  176. head="Nahtirah Hat",neck="Orunmila's Torque",ear1="Enchntr. Earing +1",ear2="Loquacious Earring",
  177. body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
  178. back="Swith Cape",waist="Witful Belt",legs="Artsieq Hose",feet="Pedagogy Loafers +1"}
  179. sets.midcast.Stun.Resistant = set_combine(sets.midcast.Stun, {main="Lehbrailg +2"})
  180. -- Elemental Magic sets are default for handling low-tier nukes.
  181.  
  182. sets.midcast.Pyrohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  183. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  184. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  185. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  186. sets.midcast.Hydrohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  187. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  188. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  189. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  190. sets.midcast.Anemohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  191. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  192. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  193. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  194. sets.midcast.Cryohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  195. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  196. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  197. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  198. sets.midcast.Geohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  199. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  200. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  201. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  202. sets.midcast.Ionohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  203. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  204. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  205. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  206. sets.midcast.Luminohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  207. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  208. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  209. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  210. sets.midcast.Noctohelix = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  211. head="Pixie Hairpin +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  212. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  213. waist="Yamabuki-no-Obi",legs="Hagondes Pants",feet="Umbani Boots"}
  214.  
  215.  
  216.  
  217. sets.midcast['Elemental Magic'] = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  218. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  219. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},
  220. waist=gear.ElementalObi,legs="Hagondes Pants",feet="Umbani Boots"}
  221.  
  222. sets.midcast['Elemental Magic'].Resistant = {main={name="Lehbrailg +2", augments={'DMG:+10','"Mag.Atk.Bns."+24',}},sub="Zuuxowu Grip",ammo="Dosis Tathlum",
  223. head="Hagondes Hat +1",neck="Eddy Necklace",ear1="Crematio Earring",ear2="Friomisi Earring",
  224. body="Hagondes Coat",hands="Hagondes Cuffs",ring1="Shiva Ring",ring2="Acumen Ring",
  225. back={ name="Bookworm's Cape", augments={'INT+2','MND+1','Helix eff. dur. +13',}},waist=gear.ElementalObi,legs="Hagondes Pants",feet="Umbani Boots"}
  226. -- Custom refinements for certain nuke tiers
  227. sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'], {sub="Zuuxowu Grip"})
  228. sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'].Resistant, {sub="Zuuxowu Grip"})
  229. sets.midcast.Impact = {main={ name="Lehbrailg +2", augments={'DMG:+13','CHR+7','Mag. Acc.+25',}},sub="Mephitis Grip",range="Aureole",
  230. head=empty,neck="Imbodla Necklace",ear1="Gwati Earring",ear2="Enchntr. Earring +1",
  231. body="Twilight Cloak",hands="Hagondes Cuffs +1",ring1="Perception Ring",ring2="Sangoma Ring",
  232. back="Ogapepo Cape",waist="Ovate Rope",legs="Mes'yohi Slacks",feet="Artsieq Boots"}
  233. -- Sets to return to when not performing an action.
  234. -- Resting sets
  235. sets.resting = {
  236.     main="Bolelabunga",
  237.     sub={ name="Genbu's Shield", augments={'"Cure" potency +5%','Attack+5','Mag. Acc.+5',}},
  238.     ammo="Incantor Stone",
  239.     head={ name="Wivre Hairpin", augments={'"Refresh"+1','Water resistance+5','Ice resistance+5',}},
  240.     body="Acad. Gown +1",
  241.     hands="Serpentes Cuffs",
  242.     legs="Assid. Pants +1",
  243.     feet="Serpentes Sabots",
  244.     neck="Wiglen Gorget",
  245.     waist="Fucho-no-Obi",
  246.     left_ear="Ethereal Earring",
  247.     right_ear="Sanare Earring",
  248.     left_ring="Sheltered Ring",
  249.     right_ring="Paguroidea Ring",
  250.     back="Kumbira Cape",
  251. }
  252. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  253. sets.idle.Town = {
  254.     main="Bolelabunga",
  255.     sub={ name="Genbu's Shield", augments={'"Cure" potency +5%','Attack+5','Mag. Acc.+5',}},
  256.     ammo="Incantor Stone",
  257.     head={ name="Wivre Hairpin", augments={'"Refresh"+1','Water resistance+5','Ice resistance+5',}},
  258.     body="Acad. Gown +1",
  259.     hands="Serpentes Cuffs",
  260.     legs="Assid. Pants +1",
  261.     feet="Serpentes Sabots",
  262.     neck="Wiglen Gorget",
  263.     waist="Fucho-no-Obi",
  264.     left_ear="Ethereal Earring",
  265.     right_ear="Sanare Earring",
  266.     left_ring="Sheltered Ring",
  267.     right_ring="Paguroidea Ring",
  268.     back="Kumbira Cape",
  269. }
  270. sets.idle.Field = {
  271.     main="Bolelabunga",
  272.     sub={ name="Genbu's Shield", augments={'"Cure" potency +5%','Attack+5','Mag. Acc.+5',}},
  273.     ammo="Incantor Stone",
  274.     head={ name="Wivre Hairpin", augments={'"Refresh"+1','Water resistance+5','Ice resistance+5',}},
  275.     body="Acad. Gown +1",
  276.     hands="Serpentes Cuffs",
  277.     legs="Assid. Pants +1",
  278.     feet="Serpentes Sabots",
  279.     neck="Wiglen Gorget",
  280.     waist="Fucho-no-Obi",
  281.     left_ear="Ethereal Earring",
  282.     right_ear="Sanare Earring",
  283.     left_ring="Sheltered Ring",
  284.     right_ring="Paguroidea Ring",
  285.     back="Kumbira Cape",
  286. }
  287. sets.idle.Field.PDT = {
  288.     main="Earth Staff",
  289.     sub="Mephitis Grip",
  290.     ammo="Incantor Stone",
  291.     head="Hagondes Hat +1",
  292.     body="Hagondes Coat",
  293.     hands="Hagondes Cuffs +1",
  294.     legs="Hagondes Pants",
  295.     feet="Regal Pumps",
  296.     neck="Twilight Torque",
  297.     waist="Fucho-no-Obi",
  298.     left_ear="Ethereal Earring",
  299.     right_ear="Sanare Earring",
  300.     left_ring="Defending Ring",
  301.     right_ring="Patricius Ring",
  302.     back="Repulse Mantle",
  303. }
  304. sets.idle.Field.Stun = {main="Apamajas II",sub="Mephitis Grip",ammo="Incantor Stone",
  305. head="Nahtirah Hat",neck="Orunmila's Torque",ear1="Enchntr. Earing +1",ear2="Loquacious Earring",
  306. body="Vanir Cotehardie",hands="Gendewitha Gages",ring1="Prolix Ring",ring2="Sangoma Ring",
  307. back="Swith Cape",waist="Witful Belt",legs="Artsieq Hose",feet="Pedagogy Loafers +1"}
  308. sets.idle.Weak = {
  309.     main="Bolelabunga",
  310.     sub={ name="Genbu's Shield", augments={'"Cure" potency +5%','Attack+5','Mag. Acc.+5',}},
  311.     ammo="Incantor Stone",
  312.     head={ name="Wivre Hairpin", augments={'"Refresh"+1','Water resistance+5','Ice resistance+5',}},
  313.     body="Acad. Gown +1",
  314.     hands="Serpentes Cuffs",
  315.     legs="Assid. Pants +1",
  316.     feet="Serpentes Sabots",
  317.     neck="Wiglen Gorget",
  318.     waist="Fucho-no-Obi",
  319.     left_ear="Ethereal Earring",
  320.     right_ear="Sanare Earring",
  321.     left_ring="Sheltered Ring",
  322.     right_ring="Paguroidea Ring",
  323.     back="Kumbira Cape",}
  324. -- Defense sets
  325. sets.defense.PDT = {
  326.     main="Earth Staff",
  327.     sub="Mephitis Grip",
  328.     ammo="Incantor Stone",
  329.     head="Hagondes Hat +1",
  330.     body="Hagondes Coat",
  331.     hands="Hagondes Cuffs +1",
  332.     legs="Hagondes Pants",
  333.     feet="Regal Pumps",
  334.     neck="Twilight Torque",
  335.     waist="Fucho-no-Obi",
  336.     left_ear="Ethereal Earring",
  337.     right_ear="Sanare Earring",
  338.     left_ring="Defending Ring",
  339.     right_ring="Patricius Ring",
  340.     back="Repulse Mantle",
  341. }
  342. sets.defense.MDT = {
  343.     main="Earth Staff",
  344.     sub="Mephitis Grip",
  345.     ammo="Incantor Stone",
  346.     head="Hagondes Hat +1",
  347.     body="Hagondes Coat",
  348.     hands="Hagondes Cuffs +1",
  349.     legs="Hagondes Pants",
  350.     feet="Regal Pumps",
  351.     neck="Twilight Torque",
  352.     waist="Fucho-no-Obi",
  353.     left_ear="Ethereal Earring",
  354.     right_ear="Sanare Earring",
  355.     left_ring="Defending Ring",
  356.     right_ring="Patricius Ring",
  357.     back="Repulse Mantle",
  358. }
  359. sets.latent_refresh = {waist="Fucho-no-obi"}
  360. -- Engaged sets
  361. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  362. -- sets if more refined versions aren't defined.
  363. -- If you create a set with both offense and defense modes, the offense mode should be first.
  364. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  365. -- Normal melee group
  366. sets.engaged = {
  367. head="Zelus Tiara",
  368. body="Vanir Cotehardie",hands="Bokwus Gloves",ring1="Rajas Ring",
  369. waist="Goading Belt",legs="Hagondes Pants",feet="Umbani Boots"}
  370. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  371. sets.buff['Rapture'] = {head="Savant's Bonnet +2"}
  372. sets.buff['Perpetuance'] = {hands="Savant's Bracers +2"}
  373. sets.buff['Immanence'] = {hands="Savant's Bracers +2"}
  374. sets.buff['Penury'] = {legs="Savant's Pants +2"}
  375. sets.buff['Parsimony'] = {legs="Savant's Pants +2"}
  376. sets.buff['Celerity'] = {feet="Pedagogy Loafers +1"}
  377. sets.buff['Alacrity'] = {feet="Pedagogy Loafers +1"}
  378. sets.buff.FullSublimation = {
  379.     main="Siriti",
  380.     sub={ name="Genbu's Shield", augments={'"Cure" potency +5%','Attack+5','Mag. Acc.+5',}},
  381.     ammo="Incantor Stone",
  382.     head="Acad. Mortar. +1",
  383.     body={ name="Peda. Gown +1", augments={'Enhances "Enlightenment" effect',}},
  384.     hands="Serpentes Cuffs",
  385.     legs="Assid. Pants +1",
  386.     feet="Serpentes Sabots",
  387.     neck="Bloodbead Gorget",
  388.     waist="Fucho-no-Obi",
  389.     left_ear="Ethereal Earring",
  390.     right_ear="Savant's Earring",
  391.     left_ring="K'ayres Ring",
  392.     right_ring="Meridian Ring",
  393.     back="Kumbira Cape",
  394. }
  395. sets.buff.PDTSublimation = {
  396.     main="Siriti",
  397.     sub={ name="Genbu's Shield", augments={'"Cure" potency +5%','Attack+5','Mag. Acc.+5',}},
  398.     ammo="Incantor Stone",
  399.     head="Acad. Mortar. +1",
  400.     body={ name="Peda. Gown +1", augments={'Enhances "Enlightenment" effect',}},
  401.     hands="Serpentes Cuffs",
  402.     legs="Assid. Pants +1",
  403.     feet="Serpentes Sabots",
  404.     neck="Bloodbead Gorget",
  405.     waist="Fucho-no-Obi",
  406.     left_ear="Ethereal Earring",
  407.     right_ear="Savant's Earring",
  408.     left_ring="K'ayres Ring",
  409.     right_ring="Meridian Ring",
  410.     back="Kumbira Cape",
  411. }
  412. --sets.buff['Sandstorm'] = {feet="Desert Boots"}
  413. end
  414. -------------------------------------------------------------------------------------------------------------------
  415. -- Job-specific hooks for standard casting events.
  416. -------------------------------------------------------------------------------------------------------------------
  417. -- Run after the general midcast() is done.
  418. function job_post_midcast(spell, action, spellMap, eventArgs)
  419. if spell.action_type == 'Magic' then
  420. apply_grimoire_bonuses(spell, action, spellMap, eventArgs)
  421. if spell.english == 'Stun' and buffactive['Alacrity'] then
  422.    equip(sets.StunAlacrity)
  423. end
  424. end
  425. end
  426. -------------------------------------------------------------------------------------------------------------------
  427. -- Job-specific hooks for non-casting events.
  428. -------------------------------------------------------------------------------------------------------------------
  429. -- Called when a player gains or loses a buff.
  430. -- buff == buff gained or lost
  431. -- gain == true if the buff was gained, false if it was lost.
  432. function job_buff_change(buff, gain)
  433. if buff == "Sublimation: Activated" then
  434. handle_equipping_gear(player.status)
  435. end
  436. end
  437. -- Handle notifications of general user state change.
  438. function job_state_change(stateField, newValue, oldValue)
  439. if stateField == 'Offense Mode' then
  440. if newValue == 'Normal' then
  441. disable('main','sub','range')
  442. else
  443. enable('main','sub','range')
  444. end
  445. end
  446. end
  447. -------------------------------------------------------------------------------------------------------------------
  448. -- User code that supplements standard library decisions.
  449. -------------------------------------------------------------------------------------------------------------------
  450. -- Custom spell mapping.
  451. function job_get_spell_map(spell, default_spell_map)
  452. if spell.action_type == 'Magic' then
  453. if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
  454. if world.weather_element == 'Light' then
  455. return 'CureWithLightWeather'
  456. end
  457. elseif spell.skill == 'Enfeebling Magic' then
  458. if spell.type == 'WhiteMagic' then
  459. return 'MndEnfeebles'
  460. else
  461. return 'IntEnfeebles'
  462. end
  463. elseif spell.skill == 'Elemental Magic' then
  464. if info.low_nukes:contains(spell.english) then
  465. return 'LowTierNuke'
  466. elseif info.mid_nukes:contains(spell.english) then
  467. return 'MidTierNuke'
  468. elseif info.high_nukes:contains(spell.english) then
  469. return 'HighTierNuke'
  470. end
  471. end
  472. end
  473. end
  474. function customize_idle_set(idleSet)
  475. if state.Buff['Sublimation: Activated'] then
  476. if state.IdleMode.value == 'Normal' then
  477. idleSet = set_combine(idleSet, sets.buff.FullSublimation)
  478. elseif state.IdleMode.value == 'PDT' then
  479. idleSet = set_combine(idleSet, sets.buff.PDTSublimation)
  480. end
  481. end
  482. if player.mpp < 51 then
  483. idleSet = set_combine(idleSet, sets.latent_refresh)
  484. end
  485. return idleSet
  486. end
  487.  
  488.        
  489. -- Called by the 'update' self-command.
  490. function job_update(cmdParams, eventArgs)
  491. if cmdParams[1] == 'user' and not (buffactive['light arts'] or buffactive['dark arts'] or
  492. buffactive['addendum: white'] or buffactive['addendum: black']) then
  493. if state.IdleMode.value == 'Stun' then
  494. send_command('@input /ja "Dark Arts" <me>')
  495. else
  496. send_command('@input /ja "Light Arts" <me>')
  497. end
  498. end
  499. update_active_strategems()
  500. update_sublimation()
  501. end
  502. -- Function to display the current relevant user state when doing an update.
  503. -- Return true if display was handled, and you don't want the default info shown.
  504. function display_current_job_state(eventArgs)
  505. display_current_caster_state()
  506. eventArgs.handled = true
  507. end
  508. -------------------------------------------------------------------------------------------------------------------
  509. -- User code that supplements self-commands.
  510. -------------------------------------------------------------------------------------------------------------------
  511. -- Called for direct player commands.
  512. function job_self_command(cmdParams, eventArgs)
  513. if cmdParams[1]:lower() == 'scholar' then
  514. handle_strategems(cmdParams)
  515. eventArgs.handled = true
  516. end
  517. end
  518. -------------------------------------------------------------------------------------------------------------------
  519. -- Utility functions specific to this job.
  520. -------------------------------------------------------------------------------------------------------------------
  521. -- Reset the state vars tracking strategems.
  522. function update_active_strategems()
  523. state.Buff['Ebullience'] = buffactive['Ebullience'] or false
  524. state.Buff['Rapture'] = buffactive['Rapture'] or false
  525. state.Buff['Perpetuance'] = buffactive['Perpetuance'] or false
  526. state.Buff['Immanence'] = buffactive['Immanence'] or false
  527. state.Buff['Penury'] = buffactive['Penury'] or false
  528. state.Buff['Parsimony'] = buffactive['Parsimony'] or false
  529. state.Buff['Celerity'] = buffactive['Celerity'] or false
  530. state.Buff['Alacrity'] = buffactive['Alacrity'] or false
  531. state.Buff['Klimaform'] = buffactive['Klimaform'] or false
  532. end
  533. function update_sublimation()
  534. state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
  535. end
  536. -- Equip sets appropriate to the active buffs, relative to the spell being cast.
  537. function apply_grimoire_bonuses(spell, action, spellMap)
  538. if state.Buff.Perpetuance and spell.type =='WhiteMagic' and spell.skill == 'Enhancing Magic' then
  539. equip(sets.buff['Perpetuance'])
  540. end
  541. if state.Buff.Rapture and (spellMap == 'Cure' or spellMap == 'Curaga') then
  542. equip(sets.buff['Rapture'])
  543. end
  544. if spell.skill == 'Elemental Magic' and spellMap ~= 'ElementalEnfeeble' then
  545. if state.Buff.Ebullience and spell.english ~= 'Impact' then
  546. equip(sets.buff['Ebullience'])
  547. end
  548. if state.Buff.Immanence then
  549. equip(sets.buff['Immanence'])
  550. end
  551. if state.Buff.Klimaform and spell.element == world.weather_element then
  552. equip(sets.buff['Klimaform'])
  553. end
  554. end
  555. if state.Buff.Penury then equip(sets.buff['Penury']) end
  556. if state.Buff.Parsimony then equip(sets.buff['Parsimony']) end
  557. if state.Buff.Celerity then equip(sets.buff['Celerity']) end
  558. if state.Buff.Alacrity then equip(sets.buff['Alacrity']) end
  559. end
  560. -- General handling of strategems in an Arts-agnostic way.
  561. -- Format: gs c scholar <strategem>
  562. function handle_strategems(cmdParams)
  563. -- cmdParams[1] == 'scholar'
  564. -- cmdParams[2] == strategem to use
  565. if not cmdParams[2] then
  566. add_to_chat(123,'Error: No strategem command given.')
  567. return
  568. end
  569. local strategem = cmdParams[2]:lower()
  570. if strategem == 'light' then
  571. if buffactive['light arts'] then
  572. send_command('input /ja "Addendum: White" <me>')
  573. elseif buffactive['addendum: white'] then
  574. add_to_chat(122,'Error: Addendum: White is already active.')
  575. else
  576. send_command('input /ja "Light Arts" <me>')
  577. end
  578. elseif strategem == 'dark' then
  579. if buffactive['dark arts'] then
  580. send_command('input /ja "Addendum: Black" <me>')
  581. elseif buffactive['addendum: black'] then
  582. add_to_chat(122,'Error: Addendum: Black is already active.')
  583. else
  584. send_command('input /ja "Dark Arts" <me>')
  585. end
  586. elseif buffactive['light arts'] or buffactive['addendum: white'] then
  587. if strategem == 'cost' then
  588. send_command('input /ja Penury <me>')
  589. elseif strategem == 'speed' then
  590. send_command('input /ja Celerity <me>')
  591. elseif strategem == 'aoe' then
  592. send_command('input /ja Accession <me>')
  593. elseif strategem == 'power' then
  594. send_command('input /ja Rapture <me>')
  595. elseif strategem == 'duration' then
  596. send_command('input /ja Perpetuance <me>')
  597. elseif strategem == 'accuracy' then
  598. send_command('input /ja Altruism <me>')
  599. elseif strategem == 'enmity' then
  600. send_command('input /ja Tranquility <me>')
  601. elseif strategem == 'skillchain' then
  602. add_to_chat(122,'Error: Light Arts does not have a skillchain strategem.')
  603. elseif strategem == 'addendum' then
  604. send_command('input /ja "Addendum: White" <me>')
  605. else
  606. add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  607. end
  608. elseif buffactive['dark arts'] or buffactive['addendum: black'] then
  609. if strategem == 'cost' then
  610. send_command('input /ja Parsimony <me>')
  611. elseif strategem == 'speed' then
  612. send_command('input /ja Alacrity <me>')
  613. elseif strategem == 'aoe' then
  614. send_command('input /ja Manifestation <me>')
  615. elseif strategem == 'power' then
  616. send_command('input /ja Ebullience <me>')
  617. elseif strategem == 'duration' then
  618. add_to_chat(122,'Error: Dark Arts does not have a duration strategem.')
  619. elseif strategem == 'accuracy' then
  620. send_command('input /ja Focalization <me>')
  621. elseif strategem == 'enmity' then
  622. send_command('input /ja Equanimity <me>')
  623. elseif strategem == 'skillchain' then
  624. send_command('input /ja Immanence <me>')
  625. elseif strategem == 'addendum' then
  626. send_command('input /ja "Addendum: Black" <me>')
  627. else
  628. add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  629. end
  630. else
  631. add_to_chat(123,'No arts has been activated yet.')
  632. end
  633. end
  634. -- Gets the current number of available strategems based on the recast remaining
  635. -- and the level of the sch.
  636. function get_current_strategem_count()
  637. -- returns recast in seconds.
  638. local allRecasts = windower.ffxi.get_ability_recasts()
  639. local stratsRecast = allRecasts[231]
  640. local maxStrategems = (player.main_job_level + 10) / 20
  641. local fullRechargeTime = 4*60
  642. local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)
  643. return currentCharges
  644. end
  645. -- Select default macro book on initial load or subjob change.
  646. function select_default_macro_book()
  647. set_macro_page(4, 3)
  648. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement