Advertisement
Guest User

Untitled

a guest
Dec 21st, 2015
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 39.24 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. --[[
  6. Custom commands:
  7.  
  8. Shorthand versions for each strategem type that uses the version appropriate for
  9. the current Arts.
  10.  
  11. Light Arts Dark Arts
  12.  
  13. gs c scholar cost Penury Parsimony
  14. gs c scholar speed Celerity Alacrity
  15. gs c scholar aoe Accession Manifestation
  16. gs c scholar power Rapture Ebullience
  17. gs c scholar duration Perpetuance
  18. gs c scholar accuracy Altruism Focalization
  19. gs c scholar enmity Tranquility Equanimity
  20. gs c scholar skillchain Immanence
  21. gs c scholar addendum Addendum: White Addendum: Black
  22. --]]
  23.  
  24. -- Initialization function for this job file.
  25. function get_sets()
  26. mote_include_version = 2
  27. -- Load and initialize the include file.
  28. include('Mote-Include.lua')
  29. end
  30.  
  31. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  32. function job_setup()
  33. state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
  34. update_active_strategems()
  35. end
  36.  
  37. -------------------------------------------------------------------------------------------------------------------
  38. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  39. -------------------------------------------------------------------------------------------------------------------
  40.  
  41. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  42. function user_setup()
  43. -- Options: Override default values state.
  44. state.CastingMode:options('Normal','ConserveMP','MACC')
  45. state.OffenseMode:options('Normal')
  46. state.PhysicalDefenseMode:options('PDT','PDT2')
  47. state.MagicalDefenseMode:options('MDT')
  48.  
  49. send_command('bind ^q gs c cycle CastingMode')
  50. send_command('bind ^g input /recast Stratagems <me>')
  51. send_command('bind ^e input /ja Ebullience <me>')
  52. send_command('bind ^i input /ja Immanence <me>')
  53. send_command('bind ^a input /ja Alacrity <me>')
  54. send_command('bind ^k input /ma Klimaform <me>')
  55. send_command('bind ^h input /ma Haste <me>')
  56. send_command('bind ^, input /ma Blink <me>')
  57. send_command('bind ^. input /ma Stoneskin <me>')
  58. send_command('bind ^/ input /ma Phalanx <me>')
  59. send_command('bind ^c input /ma "Cure IV" <me>')
  60. send_command('bind ^d input /ma Diaga <t>')
  61. send_command('bind ^b input /ma Bind <t>')
  62. send_command('bind ^s input /ma "Sleep II" <t>')
  63. send_command('bind ^t input /ma "Thunderstorm II" <me>')
  64. send_command('bind ^y input /ma "Hailstorm II" <me>')
  65. send_command('bind ^o input /ws Omniscience <t>')
  66. send_command('bind ^m input /ws Myrkr <me>')
  67. send_command('bind ^n input /ma "Thunder II" <t>')
  68. send_command('bind ^- input /ma Stun <t>')
  69. send_command('bind !p input /ja Perpetuance <me>')
  70. send_command('bind !t input /ma "Firestorm II" <me>')
  71. send_command('bind !y input /ma "Windstorm II" <me>')
  72. send_command('bind !r input /ma "Regen V" <me>')
  73. send_command('bind !a input /ma Aquaveil <me>')
  74. send_command('bind !n input /ma "Blizzard II" <t>')
  75. send_command('bind !f input /ma "Fire II" <t>')
  76. send_command('bind !, input /item "Echo Drops" <me>')
  77. send_command('bind !. input /item Remedy <me>')
  78. send_command('bind !/ input /item "Holy Water" <me>')
  79. send_command('bind !m input /item Panacea <me>')
  80. send_command('bind !q gs c toggle MagicBurst')
  81.  
  82. state.MagicBurst = M(false, 'Magic Burst')
  83.  
  84. info.low_nukes = S{"Stone", "Water", "Aero", "Fire", "Blizzard", "Thunder",
  85. "Stonega", "Waterga", "Aeroga", "Firaga", "Blizzaga", "Thundaga",}
  86. info.mid_nukes = S{"Stone II", "Water II", "Aero II", "Fire II", "Blizzard II", "Thunder II",
  87. "Stone III", "Water III", "Aero III", "Fire III", "Blizzard III", "Thunder III"}
  88. info.high_nukes = S{"Stone IV", "Water IV", "Aero IV", "Fire IV", "Blizzard IV", "Thunder IV",
  89. "Stone V", "Water V", "Aero V", "Fire V", "Blizzard V", "Thunder V"}
  90.  
  91. info.addendumNukes = info.high_nukes
  92.  
  93. end
  94.  
  95. function user_unload()
  96. send_command('unbind ^`')
  97. end
  98.  
  99. -- Define sets and vars used by this job file.
  100. function init_gear_sets()
  101. gear.NukingHead= {name="Merlinic Hood", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','"Occult Acumen"+4','Mag. Acc.+12','"Mag.Atk.Bns."+8',}}
  102. gear.NukingHands = {name="Helios Gloves", augments={'Mag. Acc.+20 "Mag.Atk.Bns."+20','"Occult Acumen"+10','Magic burst mdg.+10%',}}
  103. gear.NukingBoots = {name="Helios Boots", augments={'Mag. Acc.+19 "Mag.Atk.Bns."+19','"Occult Acumen"+9','Magic burst mdg.+10%',}}
  104. gear.NukingLegs = {name="Merlinic Shalwar", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','Magic Damage +6','CHR+3','Mag. Acc.+7','"Mag.Atk.Bns."+9',}}
  105. gear.MBLegs = {name="Merlinic Shalwar", augments={'Mag. Acc.+25 "Mag.Atk.Bns."+25','Magic burst mdg.+11%','MND+6','Mag. Acc.+13','"Mag.Atk.Bns."+2',}}
  106. gear.HelixCape = {name="Bookworm's Cape", augments={'INT+4','MND+3','Helix eff. dur. +19',}}
  107. gear.RegenCape = {name="Bookworm's Cape", augments={'INT+2','Helix eff. dur. +16','"Regen" potency+9',}}
  108. gear.RegenBody = {name="Telchine Chasuble", augments={'Pet: "Mag.Atk.Bns."+18','"Conserve MP"+3','"Regen" potency+3',}}
  109. gear.RegenLegs = {name="Telchine Braconi", augments={'Rng.Atk.+7','"Fast Cast"+4','"Regen" potency+3',}}
  110. gear.RegenFeet = {name="Telchine Pigaches", augments={'Evasion+14','"Conserve MP"+4','"Regen" potency+3',}}
  111. gear.PetRegenBody = {name="Telchine Chasuble", augments={'Pet: DEF+7','Pet: "Regen"+3','Enh. Mag. eff. dur. +10',}}
  112. gear.CuringHat = {name="Gende. Caubeen +1", augments={'Phys. dmg. taken -3%','"Cure" potency +6%',}}
  113. gear.CuringHands = {name="Telchine Gloves", augments={'Evasion+20','"Cure" potency +7%','Enh. Mag. eff. dur. +10',}}
  114. gear.CMPHead = {name="Telchine Cap", augments={'Accuracy+12 Attack+12','"Conserve MP"+3','Enh. Mag. eff. dur. +10',}}
  115. gear.CMPHands = {name="Telchine Gloves", augments={'Evasion+17','Potency of "Cure" effect received+6%',}}
  116. gear.CMPLegs = {name="Telchine Braconi", augments={'Evasion+18','Potency of "Cure" effect received+7%','Enh. Mag. eff. dur. +10',}}
  117. gear.CMPFeet = {name="Telchine Pigaches", augments={'DEF+7','Potency of "Cure" effect received+6%','Enh. Mag. eff. dur. +10',}}
  118. gear.DrainBody = {name="Helios Jacket", augments={'Evasion+18','"Drain" and "Aspir" potency +10',}}
  119. gear.DrainHands = {name="Merlinic Dastanas", augments={'Mag. Acc.+25','"Drain" and "Aspir" potency +10','INT+6',}}
  120. gear.DrainLegs = {name="Merlinic Shalwar", augments={'Mag. Acc.+30','"Drain" and "Aspir" potency +9','CHR+14',}}
  121. gear.DrainFeet = {name="Merlinic Crackows", augments={'Mag. Acc.+24 "Mag.Atk.Bns."+24','"Drain" and "Aspir" potency +6','Mag. Acc.+4',}}
  122. gear.ENFHands = {name="Chironic Gloves", augments={'Mag. Acc.+28','MND+12',}}
  123. gear.ENFLegs = {name="Chironic Hose", augments={'Mag. Acc.+27','"Fast Cast"+3','MND+15','"Mag.Atk.Bns."+1',}}
  124. gear.FCHead = {name="Merlinic Hood", augments={'Mag. Acc.+22','"Fast Cast"+6','"Mag.Atk.Bns."+11',}}
  125. gear.FCFeet = {name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+18','"Fast Cast"+7','DEX+2','Mag. Acc.+1',}}
  126.  
  127. --------------------------------------
  128. -- Start defining the sets
  129. --------------------------------------
  130.  
  131. -- Obi --
  132. sets['Lightning'] = {waist="Hachirin-no-Obi"}
  133. sets['Ice'] = {waist="Hachirin-no-Obi"}
  134. sets['Water'] = {waist="Hachirin-no-Obi"}
  135. sets['Fire'] = {waist="Hachirin-no-Obi"}
  136. sets['Earth'] = {waist="Hachirin-no-Obi"}
  137. sets['Wind'] = {waist="Hachirin-no-Obi"}
  138. sets['Light'] = {waist="Hachirin-no-Obi",back="Twilight Cape"}
  139. sets['Dark'] = {waist="Hachirin-no-Obi"}
  140.  
  141. gear.default.obi_waist = "Refoccilation Stone"
  142. gear.default.obi_back = "Bookworm's Cape"
  143.  
  144. -- Precast sets to enhance JAs
  145.  
  146. sets.precast.JA['Tabula Rasa'] = {main="Akademos",sub="Niobid Strap",ammo="Psilomene",
  147. head="Kaabnax Hat",neck="Dualism Collar +1",left_ear="Gifted Earring",right_ear="Influx Earring",
  148. body="Weather. Robe +1",hands="Otomi Gloves",left_ring="Mephitas's Ring +1",right_ring="Mephitas's Ring",
  149. back="Pahtli Cape",waist="Shinjutsu-no-obi +1",legs="Pedagogy Pants +1",feet="Psycloth Boots"}
  150.  
  151. sets.precast.JA.Lunge = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  152. head="Helio Band",neck="Mizu. Kubikazari",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  153. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Locus Ring",right_ring="Mujin Band",
  154. back="Seshaw Cape +1",waist="Hachirin-no-Obi",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  155.  
  156. -- Weaponskills --
  157.  
  158. sets.precast.WS['Omniscience'] = {main="Akademos",sub="Niobid Strap",ammo="Hydrocera",
  159. head="Pixie Hairpin +1",neck="Fotia Gorget",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  160. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Archon Ring",right_ring="Shiva Ring +1",
  161. back=gear.HelixCape,waist="Fotia Belt",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  162.  
  163. sets.precast.WS['Cataclysm'] = sets.precast.WS['Omniscience']
  164.  
  165. sets.precast.WS['Starburst'] = sets.precast.WS['Omniscience']
  166.  
  167. sets.precast.WS['Myrkr'] = {main="Akademos",sub="Niobid Strap",ammo="Psilomene",
  168. head="Kaabnax Hat",neck="Dualism Collar +1",left_ear="Etiolation Earring",right_ear="Influx Earring",
  169. body="Weather. Robe +1",hands="Otomi Gloves",left_ring="Mephitas's Ring +1",right_ring="Mephitas's Ring",
  170. back="Pahtli Cape",waist="Shinjutsu-no-obi +1",legs="Psycloth Lappas",feet="Psycloth Boots"}
  171.  
  172. sets.precast.WS['Shattersoul'] ={main="Akademos",sub="Niobid Strap",ammo="Hasty Pinion +1",
  173. head="Alhazen Hat +1",neck="Fotia Gorget",left_ear="Genmei Earring",right_ear="Impregnable Earring",
  174. body="Onca Suit",hands=empty,left_ring="Defending Ring",right_ring="Dark Ring",
  175. back="Umbra Cape",waist="Fotia Belt",legs=empty,feet=empty}
  176.  
  177. sets.precast.WS['Shell Crusher'] = sets.precast.WS['Shattersoul']
  178.  
  179. sets.precast.WS['Retribution'] = sets.precast.WS['Shattersoul']
  180.  
  181. sets.precast.WS['Heavy Swing'] = sets.precast.WS['Shattersoul']
  182.  
  183. sets.precast.WS['Spirit Taker'] = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  184. head=gear.NukingHead,neck="Fotia Gorget",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  185. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Shiva Ring +1",right_ring="Shiva Ring +1",
  186. back=gear.HelixCape,waist="Fotia Belt",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  187.  
  188. sets.precast.WS['Rock Crusher'] = sets.precast.WS['Spirit Taker']
  189.  
  190. -- Fast cast sets for spells
  191.  
  192. sets.precast.FC = {main="Akademos",sub="Niobid Strap",ammo="Impatiens",
  193. head=gear.FCHead,neck="Orunmila's Torque",left_ear="Enchanter Earring +1",right_ear="Loquac. Earring",
  194. body="Anhur Robe",hands="Gende. Gages +1",left_ring="Weather. Ring",right_ring="Lebeche Ring",
  195. back="Ogapepo Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet=gear.FCFeet}
  196.  
  197. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {left_ear="Barkaro. Earring",ammo="Impatiens",
  198. right_ring="Lebeche Ring",feet=gear.FCFeet,})
  199.  
  200. sets.precast.FC.Cure = {main="Akademos",sub="Niobid Strap",ammo="Impatiens",
  201. head=gear.FCHead,neck="Orunmila's Torque",left_ear="Enchanter Earring +1",right_ear="Loquac. Earring",
  202. body="Heka's Kalasiris",hands="Gende. Gages +1",left_ring="Weather. Ring",right_ring="Lebeche Ring",
  203. back="Pahtli Cape",waist="Witful Belt",legs="Doyen Pants",feet=gear.FCFeet}
  204.  
  205. sets.precast.CureWithLightWeather = sets.precast.FC.Cure
  206.  
  207. sets.precast.FC.Curaga = sets.precast.FC.Cure
  208.  
  209. sets.precast.FC.Impact = {main="Akademos",sub="Niobid Strap",ammo="Impatiens",
  210. head=empty,neck="Orunmila's Torque",left_ear="Enchanter Earring +1",right_ear="Loquac. Earring",
  211. body="Twilight Cloak",hands="Gende. Gages +1",left_ring="Weather. Ring",right_ring="Lebeche Ring",
  212. back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet=gear.FCFeet}
  213.  
  214. -- Midcast Sets
  215.  
  216. sets.midcast.FastRecast = { main="Akademos",sub="Niobid Strap",ammo="Sapience Orb",
  217. head=gear.FCHead,neck="Orunmila's Torque",left_ear="Enchanter Earring +1",right_ear="Loquac. Earring",
  218. body="Shango Robe",hands="Gende. Gages +1",left_ring="Weather. Ring",right_ring="Prolix Ring",
  219. back="Swith Cape +1",waist="Witful Belt",legs="Psycloth Lappas",feet=gear.FCFeet}
  220.  
  221. sets.midcast.Cure = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum +1",
  222. head=gear.CuringHat,neck="Incanter's Torque",left_ear="Gifted Earring",right_ear="Loquac. Earring",
  223. body="Kaykaus Bliaut +1",hands=gear.CuringHands,left_ring="Haoma's Ring",right_ring="Haoma's Ring",
  224. back="Oretania's Cape +1",waist="Ninurta's Sash",legs=gear.ENFLegs,feet="Pedagogy Loafers +1"}
  225.  
  226. sets.midcast.Cure.ConserveMP = {main="Akademos",sub="Niobid Strap",ammo="Hasty Pinion +1",
  227. head=gear.CuringHat,neck="Phalaina Locket",left_ear="Enchanter Earring +1",right_ear="Mendi. Earring",
  228. body="Kaykaus Bliaut +1",hands=gear.CMPHands,left_ring="Haoma's Ring",right_ring="Lebeche Ring",
  229. back="Oretan. Cape +1",waist="Gishdubar Sash",legs=gear.CMPLegs,feet=gear.CMPFeet}
  230.  
  231. sets.midcast.CureWithLightWeather = {main="Chatoyant Staff",sub="Niobid Strap",ammo="Hasty Pinion +1",
  232. head=gear.CuringHat,neck="Incanter's Torque",left_ear="Gifted Earring",right_ear="Loquac. Earring",
  233. body="Kaykaus Bliaut +1",hands=gear.CuringHands,left_ring="Haoma's Ring",right_ring="Lebeche Ring",
  234. back="Twilight Cape",waist="Hachirin-no-Obi",legs="Academic's Pants +1",feet="Pedagogy Loafers +1"}
  235.  
  236. sets.midcast.CureWithLightWeather.ConserveMP = {main="Akademos",sub="Niobid Strap",ammo="Hasty Pinion +1",
  237. head=gear.CuringHat,neck="Phalaina Locket",left_ear="Enchanter Earring +1",right_ear="Mendi. Earring",
  238. body="Kaykaus Bliaut +1",hands=gear.CMPHands,left_ring="Haoma's Ring",right_ring="Lebeche Ring",
  239. back="Twilight Cape",waist="Hachirin-no-Obi",legs=gear.CMPLegs,feet=gear.CMPFeet}
  240.  
  241. sets.midcast.Curaga = sets.midcast.Cure
  242.  
  243. sets.midcast.Regen = {main="Bolelabunga",sub="Genmei Shield",ammo="Pemphredo Tathlum",
  244. head="Arbatel Bonnet +1",neck="Orunmila's Torque",left_ear="Gifted Earring",right_ear="Calamitous Earring",
  245. body=gear.PetRegenBody,hands="Arbatel Bracers +1",left_ring="Weather. Ring",right_ring="Prolix Ring",
  246. back=gear.RegenCape,waist="Witful Belt",legs=gear.CMPLegs,feet=gear.CMPFeet}
  247.  
  248. sets.midcast.Regen.ConserveMP = {main="Bolelabunga",sub="Genmei Shield",ammo="Pemphredo Tathlum",
  249. head="Arbatel Bonnet +1",neck="Orunmila's Torque",left_ear="Gifted Earring",right_ear="Calamitous Earring",
  250. body=gear.RegenBody,hands="Arbatel Bracers +1",left_ring="Weather. Ring",right_ring="Prolix Ring",
  251. back=gear.RegenCape,waist="Witful Belt",legs=gear.RegenLegs,feet=gear.RegenFeet}
  252.  
  253. sets.midcast.Cursna = {neck="Debilis Medallion",hands="Hieros Mittens",
  254. ring1="Haoma's Ring",ring2="Haoma's Ring",waist="Gishdubar Sash",
  255. back="Oretania's Cape +1",feet="Gende. Galosh. +1"}
  256.  
  257. sets.midcast['Enhancing Magic'] = {main="Akademos",sub="Niobid Strap",ammo="Savant's Treatise",
  258. head=gear.CMPHead,neck="Incanter's Torque",left_ear="Andoaa Earring",right_ear="Calamitous Earring",
  259. body=gear.PetRegenBody,hands=gear.CuringHands,left_ring="Defending Ring",right_ring="Dark Ring",
  260. back="Fi Follet Cape +1",waist="Olympus Sash",legs=gear.CMPLegs,feet=gear.CMPFeet}
  261.  
  262. sets.midcast.Aquaveil = {head="Chironic Hat",legs="Shedir Seraweels",waist="Emphatikos Rope",feet=gear.CMPFeet,body=gear.PetRegenBody,hands=gear.CuringHands}
  263.  
  264. sets.midcast.Refresh = {waist="Gishdubar Sash",feet="Inspirited Boots",legs=gear.CMPLegs,body=gear.PetRegenBody,head=gear.CMPHead,hands=gear.CuringHands}
  265.  
  266. sets.midcast.BarElement = {main="Akademos",sub="Niobid Strap",ammo="Savant's Treatise",
  267. head=gear.CMPHead,neck="Incanter's Torque",left_ear="Andoaa Earring",right_ear="Calamitous Earring",
  268. body=gear.PetRegenBody,hands=gear.CuringHands,left_ring="Defending Ring",right_ring="Dark Ring",
  269. back="Fi Follet Cape +1",waist="Olympus Sash",legs=gear.CMPLegs,feet=gear.CMPFeet}
  270.  
  271. sets.midcast.Klimaform = sets.midcast.FastRecast
  272.  
  273. sets.midcast.Impact = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  274. head=empty,neck="Voltsurge Torque",left_ear="Gifted Earring",right_ear="Dignitary's Earring",
  275. body="Twilight Cloak",hands=gear.ENFHands,left_ring="Weather. Ring",right_ring="Vertigo Ring",
  276. back="Ogapepo Cape +1",waist="Porous Rope",legs=gear.ENFLegs,feet="Medium's Sabots"}
  277.  
  278. sets.midcast.Impact.Occult = {main="Akademos",sub="Niobid Strap",ammo="White Tathlum",
  279. head=empty,neck="Gaudryi Necklace",left_ear="Tripudio Earring",right_ear="Enervating Earring",
  280. body="Twilight Cloak",hands="Amalric Gages +1",left_ring="Defending Ring",right_ring="K'ayres Ring",
  281. back="Ogapepo Cape +1",waist="Oneiros Rope",legs="Perdition Slops",feet="Amalric Nails +1",}
  282.  
  283. sets.midcast.Blink = sets.midcast.FastRecast
  284.  
  285. sets.midcast.Stoneskin = set_combine(sets.midcast.FastCast,
  286. {waist="Siegel Sash",legs="Shedir Seraweels",neck="Stone Gorget",right_ear="Earthcry Earring"})
  287.  
  288. sets.midcast.Haste = set_combine(sets.midcast.FastCast,
  289. {legs=gear.CMPLegs,body=gear.PetRegenBody,feet=gear.CMPFeet,head=gear.CMPHead,hands=gear.CuringHands})
  290.  
  291. sets.midcast.Flurry = sets.midcast.Haste
  292. sets.midcast.Adloquium = sets.midcast.Haste
  293. sets.midcast["Animus Minuo"] = sets.midcast.Haste
  294. sets.midcast["Animus Augeo"] = sets.midcast.Haste
  295. sets.midcast['Shock Spikes'] = sets.midcast.Haste
  296. sets.midcast['Ice Spikes'] = sets.midcast.Haste
  297. sets.midcast['Blaze Spikes'] = sets.midcast.Haste
  298.  
  299. sets.midcast.Storm = set_combine(sets.midcast['Enhancing Magic'], {head=gear.CMPHead,body=gear.PetRegenBody,hands=gear.CuringHands,
  300. back="Swith Cape +1",feet="Pedagogy Loafers +1",neck="Orunmila's Torque",waist="Witful Belt",left_ear="Enchanter Earring +1",
  301. right_ear="Loquac. Earring",left_ring="Weather. Ring",right_ring="Prolix Ring",legs=gear.CMPLegs,ammo="Sapience Orb",})
  302.  
  303. sets.midcast["Firestorm II"] = sets.midcast.Storm
  304. sets.midcast["Hailstorm II"] = sets.midcast.Storm
  305. sets.midcast["Windstorm II"] = sets.midcast.Storm
  306. sets.midcast["Sandstorm II"] = sets.midcast.Storm
  307. sets.midcast["Thunderstorm II"] = sets.midcast.Storm
  308. sets.midcast["Rainstorm II"] = sets.midcast.Storm
  309. sets.midcast["Aurorastorm II"] = sets.midcast.Storm
  310. sets.midcast["Voidstorm II"] = sets.midcast.Storm
  311.  
  312. sets.midcast.Protect = {ring2="Sheltered Ring",legs=gear.CMPLegs,body=gear.PetRegenBody,feet=gear.CMPFeet,head=gear.CMPHead,hands=gear.CuringHands}
  313. sets.midcast.Protectra = sets.midcast.Protect
  314. sets.midcast.Shell = sets.midcast.Protect
  315. sets.midcast.Shellra = sets.midcast.Protect
  316.  
  317. -- Custom spell classes
  318. sets.midcast.MndEnfeebles = {main="Akademos",sub="Niobid Strap",ammo="Hydrocera",
  319. head=gear.NukingHead,neck="Imbodla Necklace",left_ear="Enchanter Earring +1",right_ear="Dignitary's Earring",
  320. body="Vanya Robe",hands=gear.ENFHands,left_ring="Weather. Ring",right_ring="Vertigo Ring",
  321. back="Ogapepo Cape +1",waist="Porous Rope",legs=gear.ENFLegs,feet="Medium's Sabots"}
  322.  
  323. sets.midcast.IntEnfeebles = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  324. head=gear.NukingHead,neck="Imbodla Necklace",left_ear="Barkaro. Earring",right_ear="Dignitary's Earring",
  325. body="Vanya Robe",hands=gear.ENFHands,left_ring="Weather. Ring",right_ring="Vertigo Ring",
  326. back="Ogapepo Cape +1",waist="Porous Rope",legs=gear.ENFLegs,feet="Medium's Sabots"}
  327.  
  328. sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
  329.  
  330. sets.midcast['Dark Magic'] = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  331. head="Pixie Hairpin +1",neck="Incanter's Torque",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  332. body="Psycloth Vest",hands="Amalric Gages +1",left_ring="Archon Ring",right_ring="Evanescence Ring",
  333. back=gear.HelixCape,waist="Porous Rope",legs="Pedagogy Pants +1",feet="Amalric Nails +1",}
  334.  
  335. sets.midcast.Kaustra = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  336. head="Pixie Hairpin +1",neck="Saevus Pendant +1",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  337. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Archon Ring",right_ring="Shiva Ring +1",
  338. back=gear.HelixCape,waist="Refoccilation Stone",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  339.  
  340. sets.midcast.Noctohelix = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  341. head="Pixie Hairpin +1",neck="Saevus Pendant +1",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  342. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Archon Ring",right_ring="Shiva Ring +1",
  343. back=gear.HelixCape,waist="Refoccilation Stone",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  344.  
  345. sets.midcast["Noctohelix II"] = sets.midcast.Noctohelix
  346.  
  347. sets.midcast.Luminohelix = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  348. head=gear.NukingHead,neck="Saevus Pendant +1",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  349. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Weather. Ring",right_ring="Shiva Ring +1",
  350. back=gear.HelixCape,waist="Refoccilation Stone",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  351.  
  352. sets.midcast["Luminohelix II"] = sets.midcast.Luminohelix
  353.  
  354. sets.midcast.Drain = {main="Akademos",sub="Niobid Strap",ammo="Hasty Pinion +1",
  355. head="Pixie Hairpin +1",neck="Incanter's Torque",left_ear="Hirudinea Earring",right_ear="Abyssal Earring",
  356. body=gear.DrainBody,hands=gear.DrainHands,left_ring="Archon Ring",right_ring="Evanescence Ring",
  357. back=gear.HelixCape,waist="Fucho-no-Obi",legs=gear.DrainLegs,feet=gear.DrainFeet}
  358.  
  359. sets.midcast.Aspir = sets.midcast.Drain
  360. sets.midcast["Aspir II"] = sets.midcast.Drain
  361.  
  362. sets.midcast.Stone = {waist="Chaac Belt"}
  363. sets.midcast['Apururu (UC)'] = {body="Apururu Unity Shirt"}
  364.  
  365. -- This is the Speed Set --
  366. sets.midcast.Stun = {main="Apamajas II",sub="Niobid Strap",ammo="Hasty Pinion +1",
  367. head=gear.FCHead,neck="Voltsurge Torque",left_ear="Enchanter Earring +1",right_ear="Loquac. Earring",
  368. body="Shango Robe", hands="Gendewitha Gages +1",left_ring="Weather. Ring",right_ring="Prolix Ring",
  369. back="Swith Cape +1",waist="Ninurta's Sash",legs="Psycloth Lappas",feet="Pedagogy Loafers +1"}
  370.  
  371. sets.midcast.Stun.ConserveMP = {main="Akademos",sub="Niobid Strap",ammo="Hasty Pinion +1",
  372. head=gear.FCHead,neck="Voltsurge Torque",left_ear="Enchanter Earring +1",right_ear="Loquac. Earring",
  373. body="Shango Robe",hands="Gendewitha Gages +1",left_ring="Weather. Ring",right_ring="Prolix Ring",
  374. back="Swith Cape +1",waist="Ninurta's Sash",legs="Psycloth Lappas",feet="Pedagogy Loafers +1"}
  375.  
  376. -- Elemental Magic sets are default for handling low-tier nukes.
  377. sets.midcast['Elemental Magic'] = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  378. head=gear.NukingHead,neck="Saevus Pendant +1",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  379. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Shiva Ring +1",right_ring="Shiva Ring +1",
  380. back=gear.HelixCape,waist="Refoccilation Stone",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  381.  
  382. sets.midcast['Elemental Magic'].ConserveMP = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  383. head=gear.NukingHead,neck="Saevus Pendant +1",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  384. body="Seidr Cotehardie",hands="Amalric Gages +1",left_ring="Shiva Ring +1",right_ring="Shiva Ring +1",
  385. back=gear.HelixCape,waist="Refoccilation Stone",legs=gear.NukingLegs,feet="Amalric Nails +1",}
  386.  
  387. sets.midcast['Elemental Magic'].MACC = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  388. head=gear.NukingHead,neck="Incanter's Torque",left_ear="Barkaro. Earring",right_ear="Dignitary's Earring",
  389. body="Amalric Doublet +1",hands="Amalric Gages +1",left_ring="Shiva Ring +1",right_ring="Shiva Ring +1",
  390. back=gear.HelixCape,waist="Refoccilation Stone",legs=gear.MBLegs,feet="Chironic Slippers",}
  391.  
  392. sets.midcast['Elemental Magic'].Recast = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  393. head=gear.NukingHead,neck="Saevus Pendant +1",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  394. body="Seidr Cotehardie",hands="Loagaeth Cuffs",left_ring="Shiva Ring +1",right_ring="Shiva Ring +1",
  395. back=gear.HelixCape,waist="Refoccilation Stone",legs=gear.NukingLegs,feet="Tutyr Sabots",}
  396.  
  397. sets.midcast['Elemental Magic'].Occult = {main="Akademos",sub="Niobid Strap",ammo="Pemphredo Tathlum",
  398. head=gear.NukingHead,neck="Saevus Pendant +1",left_ear="Barkaro. Earring",right_ear="Friomisi Earring",
  399. body="Seidr Cotehardie",hands="Amalric Gages +1",left_ring="Shiva Ring +1",right_ring="Shiva Ring +1",
  400. back=gear.HelixCape,waist="Oneiros Rope",legs="Perdition Slops",feet="Amalric Nails +1",}
  401.  
  402. sets.magic_burst = {legs=gear.MBLegs,neck="Mizu. Kubikazari",body="Amalric Doublet +1",right_ring="Mujin Band",feet="Amalric Nails +1",
  403. left_ring="Locus Ring",back="Seshaw Cape +1",}
  404.  
  405. -- Sets to return to when not performing an action.
  406. -- Resting sets
  407.  
  408. sets.Resting = sets.idle
  409.  
  410. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  411.  
  412. sets.idle = {main="Akademos",sub="Niobid Strap",ammo="Homiliary",
  413. head="Spurrina Coif",neck="Bathy Choker +1",left_ear="Infused Earring",right_ear="Savant's Earring",
  414. body="Amalric Doublet +1",hands="Serpentes Cuffs",left_ring="Paguroidea Ring",right_ring="Sheltered Ring",
  415. back="Mecisto. Mantle",waist="Fucho-no-Obi",legs="Assiduity Pants +1",feet="Iaso Boots"}
  416.  
  417. sets.idle.Field = sets.idle
  418.  
  419. -- Defense sets
  420.  
  421. sets.defense.PDT2 = {main="Terra's Staff",sub="Niobid Strap",ammo="Brigantia Pebble",
  422. head=gear.FCHead,neck="Loricate Torque +1",left_ear="Genmei Earring",right_ear="Impregnable Earring",
  423. body="Hagondes Coat +1",hands="Gendewitha Gages +1",left_ring="Defending Ring",right_ring="Dark Ring",
  424. back="Shadow Mantle",waist="Chaac Belt",legs="Artsieq Hose",feet="Hippomenes Socks +1"}
  425.  
  426. sets.defense.PDT = {main="Akademos",sub="Niobid Strap",ammo="Brigantia Pebble",
  427. head="Gende. Caubeen +1",neck="Loricate Torque +1",left_ear="Genmei Earring",right_ear="Impregnable Earring",
  428. body="Hagondes Coat +1",hands="Gendewitha Gages +1",left_ring="Defending Ring",right_ring="Dark Ring",
  429. back="Umbra Cape",waist="Chaac Belt",legs="Artsieq Hose",feet="Gendewitha Galoshes +1"}
  430.  
  431. sets.defense.MDT = {main="Akademos",sub="Niobid Strap",ammo="Vanir Battery",
  432. head="Arbatel Bonnet +1",neck="Warder's Charm +1",left_ear="Etiolation Earring",right_ear="Merman's Earring",
  433. body="Hagondes Coat +1",hands="Amalric Gages +1",left_ring="Defending Ring",right_ring="Shadow Ring",
  434. back="Hexerei Cape",waist="Slipor Sash",legs=gear.MBLegs,feet="Arbatel Loafers +1"}
  435.  
  436. sets.Kiting = {feet="Iaso Boots"}
  437.  
  438. sets.latent_refresh = {}
  439.  
  440. -- Engaged sets
  441.  
  442. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  443. -- sets if more refined versions aren't defined.
  444. -- If you create a set with both offense and defense modes, the offense mode should be first.
  445. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  446.  
  447. -- Normal melee group
  448.  
  449. sets.engaged = sets.defense.PDT
  450.  
  451. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  452. sets.buff['Rapture'] = {head="Arbatel Bonnet +1"}
  453. sets.buff['Perpetuance'] = {hands="Arbatel Bracers +1"}
  454. sets.buff['Ebullience'] = {feet="Arbatel Bonnet +1"}
  455. sets.buff['Klimaform'] = {feet="Arbatel Loafers +1"}
  456.  
  457.  
  458. end
  459.  
  460. -------------------------------------------------------------------------------------------------------------------
  461. -- Job-specific hooks for standard casting events.
  462. -------------------------------------------------------------------------------------------------------------------
  463. -- Run after the general midcast() is done.
  464. function job_post_midcast(spell, action, spellMap, eventArgs)
  465. if spell.action_type == 'Magic' then
  466. apply_grimoire_bonuses(spell, action, spellMap, eventArgs)
  467. end
  468.  
  469. if spell.element == world.weather_element or spell.element == world.day_element or
  470. (spell.element == 'Lightning' and buffactive['Thunderstorm']) or
  471. (spell.element == 'Ice' and buffactive['Hailstorm']) or
  472. (spell.element == 'Water' and buffactive['Rainstorm']) or
  473. (spell.element == 'Fire' and buffactive['Firestorm']) or
  474. (spell.element == 'Earth' and buffactive['Sandstorm']) or
  475. (spell.element == 'Wind' and buffactive['Windstorm']) or
  476. (spell.element == 'Light' and buffactive['Aurorastorm']) or
  477. (spell.element == 'Dark' and buffactive['Voidstorm']) then
  478.  
  479. if spell.skill == 'Elemental Magic' and spellMap ~= 'Helix' then
  480. equip(sets[spell.element])
  481. elseif string.find(spell.english,'Cure') then
  482. equip(sets[spell.element])
  483. end
  484. end
  485. if spell.skill == 'Elemental Magic' and state.MagicBurst.value then
  486. equip(sets.magic_burst)
  487. if player.equipment.main == "Akademos" and state.Buff['Klimaform'] then
  488. equip(sets.buff['Klimaform'])
  489. end
  490. end
  491. end
  492.  
  493. function job_aftercast(spell, action, spellMap, eventArgs)
  494. if not spell.interrupted then
  495. if spell.english == 'Break' or spell.english == 'Breakga' then
  496. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 30 down spells/00220.png')
  497. elseif spell.english == 'Sleep' or spell.english == 'Sleepga' then
  498. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 60 down spells/00220.png')
  499. elseif spell.english == 'Sleep II' or spell.english == 'Sleepga II' then
  500. send_command('@timers c "'..spell.english..' ['..spell.target.name..']" 90 down spells/00220.png')
  501. end
  502. classes.CustomIdleGroups:clear()
  503. end
  504. end
  505.  
  506. -------------------------------------------------------------------------------------------------------------------
  507. -- Job-specific hooks for non-casting events.
  508. -------------------------------------------------------------------------------------------------------------------
  509.  
  510. -- Called when a player gains or loses a buff.
  511. -- buff == buff gained or lost
  512. -- gain == true if the buff was gained, false if it was lost.
  513. function job_buff_change(buff, gain)
  514. if buff == "Sublimation: Activated" then
  515. handle_equipping_gear(player.status)
  516. end
  517. buff = string.lower(buff)
  518. if buff == "aftermath: lv.1" then -- AM1 Timer/Countdown --
  519. if gain then
  520. send_command('timers create "Aftermath: Lv.1" 270 down;wait 210;input /echo Aftermath: Lv.1 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.1 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.1 [WEARING OFF IN 10 SEC.]')
  521. else
  522. send_command('timers delete "Aftermath: Lv.1"')
  523. add_to_chat(123,'AM1: [OFF]')
  524. end
  525. elseif buff == "aftermath: lv.2" then -- AM2 Timer/Countdown --
  526. if gain then
  527. send_command('timers create "Aftermath: Lv.2" 270 down;wait 210;input /echo Aftermath: Lv.2 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.2 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.2 [WEARING OFF IN 10 SEC.]')
  528. else
  529. send_command('timers delete "Aftermath: Lv.2"')
  530. add_to_chat(123,'AM2: [OFF]')
  531. end
  532. elseif buff == "aftermath: lv.3" then -- AM3 Timer/Countdown --
  533. if gain then
  534. send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  535. else
  536. send_command('timers delete "Aftermath: Lv.3"')
  537. add_to_chat(123,'AM3: [OFF]')
  538. end
  539. end
  540.  
  541. end
  542.  
  543. -- Handle notifications of general user state change.
  544.  
  545. function job_state_change(stateField, newValue, oldValue)
  546. if stateField == 'Offense Mode' then
  547. if newValue == 'Normal' then
  548. disable('main','sub','range')
  549. else
  550. enable('main','sub','range')
  551. end
  552. end
  553. end
  554.  
  555. -------------------------------------------------------------------------------------------------------------------
  556. -- User code that supplements standard library decisions.
  557. -------------------------------------------------------------------------------------------------------------------
  558.  
  559. -- Custom spell mapping.
  560. function job_get_spell_map(spell, default_spell_map)
  561. if spell.action_type == 'Magic' then
  562. if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
  563. if world.weather_element == 'Light' then
  564. return 'CureWithLightWeather'
  565. end
  566. elseif spell.skill == 'Enfeebling Magic' then
  567. if spell.type == 'WhiteMagic' then
  568. return 'MndEnfeebles'
  569. else
  570. return 'IntEnfeebles'
  571. end
  572. elseif spell.skill == 'Elemental Magic' then
  573. if info.low_nukes:contains(spell.english) then
  574. return 'LowTierNuke'
  575. elseif info.mid_nukes:contains(spell.english) then
  576. return 'MidTierNuke'
  577. elseif info.high_nukes:contains(spell.english) then
  578. return 'HighTierNuke'
  579. end
  580. end
  581. end
  582. end
  583.  
  584. function customize_idle_set(idleSet)
  585. if state.Buff['Sublimation: Activated'] then
  586. idleSet = set_combine(idleSet, sets.buff.Sublimation)
  587. end
  588.  
  589. if player.mpp < 51 then
  590. idleSet = set_combine(idleSet, sets.latent_refresh)
  591. end
  592.  
  593. return idleSet
  594. end
  595.  
  596. -- Called by the 'update' self-command.
  597. function job_update(cmdParams, eventArgs)
  598. if cmdParams[1] == 'user' and not (buffactive['light arts'] or buffactive['dark arts'] or
  599. buffactive['addendum: white'] or buffactive['addendum: black']) then
  600. end
  601. update_active_strategems()
  602. update_sublimation()
  603. end
  604.  
  605. -- Function to display the current relevant user state when doing an update.
  606. -- Return true if display was handled, and you don't want the default info shown.
  607. function display_current_job_state(eventArgs)
  608. local meleeString = ''
  609. if state.OffenseMode.value == 'Normal' then
  610. meleeString = 'Melee: Weapons locked, '
  611. end
  612.  
  613. local kitingString = ''
  614. if state.Kiting.value then
  615. kitingString = 'On'
  616. else
  617. kitingString = 'Off'
  618. end
  619.  
  620. add_to_chat(122,'Casting ['..state.CastingMode.value..'], '..meleeString..'Idle ['..state.IdleMode.value..'], Kiting: '..kitingString..'')
  621.  
  622. eventArgs.handled = true
  623. end
  624.  
  625. -------------------------------------------------------------------------------------------------------------------
  626. -- User code that supplements self-commands.
  627. -------------------------------------------------------------------------------------------------------------------
  628.  
  629. -- Called for direct player commands.
  630. function job_self_command(cmdParams, eventArgs)
  631. if cmdParams[1]:lower() == 'scholar' then
  632. handle_strategems(cmdParams)
  633. eventArgs.handled = true
  634. end
  635. end
  636.  
  637. -------------------------------------------------------------------------------------------------------------------
  638. -- Utility functions specific to this job.
  639. -------------------------------------------------------------------------------------------------------------------
  640. function select_default_macro_book()
  641. set_macro_page(2,1)
  642. end
  643. -- Reset the state vars tracking strategems.
  644. function update_active_strategems()
  645. state.Buff['Ebullience'] = buffactive['Ebullience'] or false
  646. state.Buff['Rapture'] = buffactive['Rapture'] or false
  647. state.Buff['Perpetuance'] = buffactive['Perpetuance'] or false
  648. state.Buff['Immanence'] = buffactive['Immanence'] or false
  649. state.Buff['Penury'] = buffactive['Penury'] or false
  650. state.Buff['Parsimony'] = buffactive['Parsimony'] or false
  651. state.Buff['Celerity'] = buffactive['Celerity'] or false
  652. state.Buff['Alacrity'] = buffactive['Alacrity'] or false
  653.  
  654. state.Buff['Klimaform'] = buffactive['Klimaform'] or false
  655. end
  656.  
  657. function update_sublimation()
  658. state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
  659. end
  660.  
  661. -- Equip sets appropriate to the active buffs, relative to the spell being cast.
  662. function apply_grimoire_bonuses(spell, action, spellMap)
  663. if state.Buff.Perpetuance and spell.type =='WhiteMagic' and spell.skill == 'Enhancing Magic' then
  664. equip(sets.buff['Perpetuance'])
  665. end
  666. if state.Buff.Rapture and (spellMap == 'Cure' or spellMap == 'Curaga') then
  667. equip(sets.buff['Rapture'])
  668. end
  669. if spell.skill == 'Elemental Magic' and spellMap ~= 'ElementalEnfeeble' then
  670. if state.Buff.Immanence then
  671. equip(sets.buff['Immanence'])
  672. end
  673. if state.Buff.Klimaform and spell.element == world.weather_element and not state.MagicBurst.value then
  674. equip(sets.buff['Klimaform'])
  675. end
  676. end
  677.  
  678. if state.Buff.Penury then equip(sets.buff['Penury']) end
  679. if state.Buff.Parsimony then equip(sets.buff['Parsimony']) end
  680. if state.Buff.Celerity then equip(sets.buff['Celerity']) end
  681. if state.Buff.Alacrity then equip(sets.buff['Alacrity']) end
  682. end
  683.  
  684. -- General handling of strategems in an Arts-agnostic way.
  685. -- Format: gs c scholar <strategem>
  686. function handle_strategems(cmdParams)
  687. -- cmdParams[1] == 'scholar'
  688. -- cmdParams[2] == strategem to use
  689.  
  690. if not cmdParams[2] then
  691. add_to_chat(123,'Error: No strategem command given.')
  692. return
  693. end
  694. local strategem = cmdParams[2]:lower()
  695.  
  696. if buffactive['light arts'] or buffactive['addendum: white'] then
  697. if strategem == 'cost' then
  698. send_command('@input /ja Penury <me>')
  699. elseif strategem == 'speed' then
  700. send_command('@input /ja Celerity <me>')
  701. elseif strategem == 'aoe' then
  702. send_command('@input /ja Accession <me>')
  703. elseif strategem == 'power' then
  704. send_command('@input /ja Rapture <me>')
  705. elseif strategem == 'duration' then
  706. send_command('@input /ja Perpetuance <me>')
  707. elseif strategem == 'accuracy' then
  708. send_command('@input /ja Altruism <me>')
  709. elseif strategem == 'enmity' then
  710. send_command('@input /ja Tranquility <me>')
  711. elseif strategem == 'skillchain' then
  712. add_to_chat(122,'Error: Light Arts does not have a skillchain strategem.')
  713. elseif strategem == 'addendum' then
  714. send_command('@input /ja "Addendum: White" <me>')
  715. else
  716. add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  717. end
  718. elseif buffactive['dark arts'] or buffactive['addendum: black'] then
  719. if strategem == 'cost' then
  720. send_command('@input /ja Parsimony <me>')
  721. elseif strategem == 'speed' then
  722. send_command('@input /ja Alacrity <me>')
  723. elseif strategem == 'aoe' then
  724. send_command('@input /ja Manifestation <me>')
  725. elseif strategem == 'power' then
  726. send_command('@input /ja Ebullience <me>')
  727. elseif strategem == 'duration' then
  728. add_to_chat(122,'Error: Dark Arts does not have a duration strategem.')
  729. elseif strategem == 'accuracy' then
  730. send_command('@input /ja Focalization <me>')
  731. elseif strategem == 'enmity' then
  732. send_command('@input /ja Equanimity <me>')
  733. elseif strategem == 'skillchain' then
  734. send_command('@input /ja Immanence <me>')
  735. elseif strategem == 'addendum' then
  736. send_command('@input /ja "Addendum: Black" <me>')
  737. else
  738. add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  739. end
  740. else
  741. add_to_chat(123,'No arts has been activated yet.')
  742. end
  743. end
  744.  
  745. -- Gets the current number of available strategems based on the recast remaining
  746. -- and the level of the sch.
  747. function get_current_strategem_count()
  748. -- returns recast in seconds.
  749. local allRecasts = windower.ffxi.get_ability_recasts()
  750. local stratsRecast = allRecasts[231]
  751.  
  752. local maxStrategems
  753. if player.main_job == 'SCH' then
  754. maxStrategems = math.floor(player.main_job_level + 10) / 20
  755. elseif player.sub_job == 'SCH' then
  756. maxStrategems = math.floor(player.sub_job_level + 10) / 20
  757. else
  758. return
  759. end
  760.  
  761. local fullRechargeTime = 4*60
  762.  
  763. local currentCharges = math.floor(maxStrategems - maxStrategems * stratsRecast / fullRechargeTime)
  764.  
  765. return currentCharges
  766. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement