Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
457
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.27 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7. mote_include_version = 2
  8.  
  9. -- Load and initialize the include file. Please note that this file uses a modified Mote-Include.lua that has the following lines added:
  10. -- Line 50: state.WeaponSet = M{['description'] = 'WeaponSet'}
  11. -- Line 51: state.HasteLevel = M{['description'] = 'HasteLevel'}
  12. -- Line 581: if meleeSet[state.WeaponSet.current] then
  13. -- Line 582: meleeSet = meleeSet[state.WeaponSet.current]
  14. -- Line 583: mote_vars.set_breadcrumbs:append(state.WeaponSet.current)
  15. -- Line 584: end
  16. -- Line 585:
  17. -- Line 586: if meleeSet[state.HasteLevel.current] then
  18. -- Line 587: meleeSet = meleeSet[state.HasteLevel.current]
  19. -- Line 588: mote_vars.set_breadcrumbs:append(state.HasteLevel.current)
  20. -- Line 589: end
  21. -- Line 590:
  22.  
  23. include('Mote-Include.lua')
  24. end
  25.  
  26.  
  27. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  28. function job_setup()
  29. state.Buff.Saboteur = buffactive.saboteur or false
  30. end
  31.  
  32. -------------------------------------------------------------------------------------------------------------------
  33. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  34. -------------------------------------------------------------------------------------------------------------------
  35.  
  36. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  37. function user_setup()
  38. -- Define offense sets here (cycled with F9)
  39. state.OffenseMode:options('Normal', 'MidAccuracy', 'HighAccuracy', 'Defense')
  40.  
  41. -- Define Hybrid sets here (cycled with CTRL+F9)
  42. state.HybridMode:options('Normal', 'PhysicalDef', 'MagicalDef')
  43.  
  44. -- Define Weapon sets here (cycled with Numpad 9)
  45. state.WeaponSet:options('MurgCol', 'MurgEnrich', 'MurgAmmu', 'VitiEnrich', 'VitiAmmu')
  46.  
  47. -- Define Haste Level options here (cycled with Numpad 8)
  48. -- MaxHaste is equipment sets for capped equipment haste and capped magical haste (no JA haste)
  49. -- ThirtyHaste is equipment sets for having only Haste II and capped equipment haste
  50. -- NoHaste is equipment sets for fighting unbuffed, benefiting only from equipment haste
  51. state.HasteLevel:options('MaxHaste', 'ThirtyHaste', 'NoHaste')
  52.  
  53. -- Define Casting Mode options here (cycled with CTRL+F11)
  54. -- Normal = Magic Burst nuking equipment set
  55. -- Free = Non-magic burst nuking set
  56. state.CastingMode:options('Normal', 'Free')
  57.  
  58. -- Define idle sets here (cycled with CTRL+F12)
  59. -- Normal = Normal mix of refresh where available (non-weapons) and DT gear/regen gear in other slots
  60. -- DT = prefer DT gear over Refresh
  61. -- MaxRefresh = same as normal, but also uses Refresh weapons (causes TP loss when entering idle. only use for full-time Mage activities)
  62. state.IdleMode:options('Normal', 'DT', 'MaxRefresh')
  63.  
  64. -- set default macro book and page on job change to RDM
  65. set_macro_page(1, 1)
  66.  
  67. -- bind custom functions
  68. send_command('bind numpad9 gs c cycle WeaponSet')
  69. send_command('bind numpad8 gs c cycle HasteLevel')
  70.  
  71. -------------------------
  72. -- Define Spell groups --
  73. -------------------------
  74.  
  75. -- These spells benefit from increased Enhancing Magic Skill. Will use +Enhancing Magic Skill where available over Enhancing Magic Duration
  76. enhancing_magic_skill = S{'Temper', 'Temper II', 'Enfire', 'Enfire II', 'Enblizzard', 'Enblizzard II', 'Enaero', 'Enaero II', 'Enstone', 'Enstone II', 'Enthunder', 'Enthunder II', 'Enwater', 'Enwater II'}
  77.  
  78. -- These spells do not benefit from additional Enhancing Magic Skill. Use maximum Enhancing Magic Duration equipment
  79. enhancing_magic_duration = S{'Barfire', 'Barfira', 'Barblizzard', 'Barblizzara', 'Baraero', 'Baraera', 'Barstone', 'Barstonra', 'Barthunder', 'Barthundra', 'Barwater', 'Barwatera', 'Barsleep', 'Barsleepra', 'Barpoison', 'Barpoisonra', 'Barparalyze', 'Barparalyzra', 'Barblind', 'Barblindra', 'Barsilence', 'Barsilencera', 'Barpetrify', 'Barpetra', 'Barvirus', 'Barvira', 'Haste', 'Haste II', 'Flurry', 'Flurry II', 'Blink', 'Regen', 'Regen II', 'Sandstorm', 'Rainstorm', 'Windstorm', 'Firestorm', 'Hailstorm', 'Thunderstorm', 'Voidstorm', 'Aurorastorm', 'Invisible', 'Sneak', 'Deodorize', 'Ice Spikes', 'Blaze Spikes', 'Shock Spikes'}
  80.  
  81. -- These spells do not benefit from Enfeebling Magic Effect, or dSTAT. Maximize enfeebling duration.
  82. enfeebling_magic_duration = S{'Sleep', 'Sleepga', 'Sleep II', 'Break', 'Poison', 'Inundation', 'Dispel'}
  83.  
  84. -- Add treasure hunter equipment to these enfeebling spells
  85. enfeebling_magic_treasure_hunter = S{'Dia', 'Diaga', 'Dia II'}
  86.  
  87. -- These spells benefit from Enfeebling Magic Effect
  88. enfeebling_magic_effect = S{'Gravity', 'Gravity II', 'Addle', 'Addle II', 'Blind', 'Paralyze', 'Slow', 'Distract', 'Distract II', 'Distract III', 'Frazzle', 'Frazzle II', 'Frazzle III'}
  89. --------------------------------------------------------------------------------------------------------------------------------------------
  90. -- Note that the following spells are not included in these sets, as they have Relic armor augments and are individually overridden below:--
  91. -- Dia III, Slow II, Phalanx II, Blind II, Paralyze II, GAIN spells --
  92. -- Additionally, Phalanx is not located here due to the availability of Phalanx augments on Taeon and from Dark Matter. --
  93. -- Finally, Aquaveil is individually defined below due to the Amalric Coif effect. --
  94. --------------------------------------------------------------------------------------------------------------------------------------------
  95.  
  96. end
  97.  
  98. function user_unload()
  99. -- unbind custom functions when this lua is unloaded (job change)
  100. send_command('unbind numpad9')
  101. send_command('unbind numpad8')
  102. end
  103.  
  104. -- Define sets and vars used by this job file.
  105. function init_gear_sets()
  106. --------------------------------------
  107. -- Start defining the sets
  108. --------------------------------------
  109.  
  110. ------------------
  111. -- Precast Sets --
  112. ------------------
  113.  
  114. -- Precast sets to enhance JAs
  115. sets.precast.JA['Chainspell'] = {body="Vitiation Tabard +3"}
  116.  
  117. sets.precast.JA['Convert'] = {main="Murgleis"}
  118.  
  119. sets.precast.JA['Sabotuer'] = {hands="Lethargy Gantherots +1"}
  120.  
  121. -------------------------------
  122. -- Fast cast sets for spells --
  123. -------------------------------
  124. sets.precast.FC = {
  125. head="Atrophy Chapeau +3",
  126. neck="Voltsurge Torque",
  127. ear1="Loquacious Earring",
  128. ear2="Estoqueur's Earring",
  129. body="Vitiation Tabard +3",
  130. hands={ name="Helios Gloves", augments={'"Fast Cast"+5',}},
  131. ring1="Kishar Ring",
  132. ring2="Prolix Ring",
  133. back="Swith Cape",
  134. waist="Rumination Sash",
  135. legs="Ayanmo Cosciales +1",
  136. feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}}}
  137.  
  138. -- sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty,body="Twilight Cloak"})
  139.  
  140. -- Weaponskill sets
  141.  
  142. sets.precast.WS = {}
  143.  
  144. sets.precast.WS.Physical = {
  145. head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+7 DEX+7',}},
  146. neck="Caro Necklace",
  147. ear1="Ishvara Earring",
  148. ear2="Sherida Earring",
  149. body="Jhakri Robe +2",
  150. hands="Atrophy Gloves +3",
  151. ring1="Shukuyu Ring",
  152. ring2="Apate Ring",
  153. back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
  154. waist="Chuq'aba Belt",
  155. legs="Jhakri Slops +2",
  156. feet="Jhakri Pigaches +2"}
  157.  
  158. sets.precast.WS.Physical.Fotia = set_combine(sets.precast.WS.Physical, {
  159. neck="Fotia Gorget",
  160. waist="Fotia Belt",
  161. legs={ name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+6 DEX+6',}},
  162. feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}}})
  163.  
  164. sets.precast.WS.Physical.Fotia.Dex = set_combine(sets.precast.WS.Physical.Fotia, {
  165. body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}},
  166. ring1="Ilabrat Ring",
  167. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}}})
  168.  
  169. sets.precast.WS.Physical.Fotia.Dex.Crit = set_combine(sets.precast.WS.Physical.Fotia.Dex, {
  170. head={ name="Taeon Chapeau", augments={'Accuracy+15 Attack+15','Crit. hit damage +2%',}},
  171. ear1="Dignitary's Earring",
  172. body={ name="Taeon Tabard", augments={'Accuracy+14 Attack+14','"Subtle Blow"+6','Crit. hit damage +2%',}},
  173. hands={ name="Taeon Gloves", augments={'Accuracy+19 Attack+19','Crit.hit rate+3','Crit. hit damage +3%',}}})
  174.  
  175. sets.precast.WS.Physical.Fotia.Mnd = set_combine(sets.precast.WS.Physical.Fotia, {
  176. head={ name="Carmine Mask +1", augments={'Accuracy+12','DEX+12','MND+20',}},
  177. ear1="Regal Earring",
  178. body="Vitiation Tabard +3",
  179. ring1="Rufescent Ring",
  180. ring2="Stikini Ring",
  181. back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','Weapon skill damage +10%','Damage taken-5%',}},
  182. legs="Jhakri Slops +2",
  183. feet="Jhakri Pigaches +2"})
  184.  
  185. sets.precast.WS.Physical.Mnd = set_combine(sets.precast.WS.Physical, {
  186. ear2="Regal Earring",
  187. body="Vitiation Tabard +3",
  188. ring2="Rufescent Ring",
  189. back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','Weapon skill damage +10%','Damage taken-5%',}},
  190. waist="Chuq'aba Belt"})
  191.  
  192. sets.precast.WS.Physical.Dex = set_combine(sets.precast.WS.Physical, {
  193. body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}},
  194. hands={ name="Taeon Gloves", augments={'Accuracy+19 Attack+19','Crit.hit rate+3','Crit. hit damage +3%',}},
  195. ring1="Ilabrat Ring",
  196. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  197. legs={ name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+6 DEX+6',}},
  198. feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}}})
  199.  
  200. sets.precast.WS.Physical.Ranged = set_combine(sets.precast.WS.Physical, {
  201. head="Atrophy Chapeau +3",
  202. neck="Marked Gorget",
  203. ear2="Infused Earring",
  204. body="Atrophy Tabard +3",
  205. hands="Atrophy Gloves +3",
  206. ring1="Ilabrat Ring",
  207. ring2="Paqichikaji Ring",
  208. waist="Yemaya Belt",
  209. legs="Atrophy Tights +2",
  210. feet="Atrophy Boots +2"})
  211.  
  212. sets.precast.WS.Magical = {
  213. head="Ea Hat",
  214. neck="Mizukage-no-Kubikazari",
  215. ear1="Regal Earring",
  216. ear2="Friomisi Earring",
  217. body="Vitiation Tabard +3",
  218. hands="Ea Cuffs",
  219. ring1="Shukuyu Ring",
  220. ring2="Rufescent Ring",
  221. back={ name="Sucellos's Cape", augments={'MND+20','Accuracy+20 Attack+20','Weapon skill damage +10%','Damage taken-5%',}},
  222. waist="Refoccilation Stone",
  223. legs="Jhakri Slops +2",
  224. feet="Jhakri Pigaches +2"}
  225.  
  226. sets.precast.WS.Magical.Int = set_combine(sets.precast.WS.Magical, {
  227. body="Jhakri Robe +2",
  228. hands="Ea Cuffs",
  229. ring2="Acumen Ring",
  230. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}}})
  231.  
  232. -- 85% MND, fTP transfer, 5 hit
  233. sets.precast.WS['Requiescat'] = sets.precast.WS.Physical.Fotia.Mnd
  234.  
  235. -- 80% DEX, fTP transfer, 3 hit, crit
  236. sets.precast.WS['Chant du Cygne'] = sets.precast.WS.Physical.Fotia.Dex.Crit
  237.  
  238. -- 60% STR, fTP transfer, 5 hit
  239. sets.precast.WS['Vorpal Blade'] = sets.precast.WS.Physical.Fotia
  240.  
  241. -- 50% STR 50% MND, fTP transfer, 3 hit
  242. sets.precast.WS['Swift Blade'] = sets.precast.WS.Physical.Fotia.Mnd
  243.  
  244. -- 30% STR 50% MND
  245. sets.precast.WS['Death Blossom'] = sets.precast.WS.Physical.Mnd
  246.  
  247. -- 50% STR 50% MND
  248. sets.precast.WS['Savage Blade'] = sets.precast.WS.Physical.Mnd
  249.  
  250. -- 100% STR
  251. sets.precast.WS['Circle Blade'] = sets.precast.WS.Physical
  252.  
  253. -- 100% STR
  254. sets.precast.WS['Flat Blade'] = sets.precast.WS.Physical
  255.  
  256. -- 40% Str 40% Dex
  257. sets.precast.WS['Fast Blade'] = sets.precast.WS.Physical.Dex
  258.  
  259. -- 30% STR 50% MND
  260. sets.precast.WS['Sanguine Blade'] = sets.precast.WS.Magical
  261.  
  262. -- 40% STR 40% MND
  263. sets.precast.WS['Seraph Blade'] = sets.precast.WS.Magical
  264.  
  265. -- 40% STR 40% MND
  266. sets.precast.WS['Shining Blade'] = sets.precast.WS.Magical
  267.  
  268. -- 40% STR 40% INT
  269. sets.precast.WS['Red Lotus Blade'] = sets.precast.WS.Magical.Int
  270.  
  271. -- 40% STR 40% INT
  272. sets.precast.WS['Burning Blade'] = sets.precast.WS.Magical.Int
  273.  
  274. -- 100% Dex TP Scales Duration [Physical]
  275. sets.precast.WS['Wasp Sting'] = sets.precast.WS.Physical.Dex
  276.  
  277. -- 40% DEX 40% INT TP scales FTP 1.0 to 2.5 [Magical, dINT]
  278. sets.precast.WS['Gust Slash'] = sets.precast.WS.Magical.Int
  279.  
  280. -- 100% CHR TP Scales Success Chance [Physical]
  281. sets.precast.WS['Shadowstitch'] = sets.precast.WS.Physical
  282.  
  283. -- 100% DEX TP scales Duration [Physical, Double benefit from ATK]
  284. sets.precast.WS['Viper Bite'] = sets.precast.WS.Physical.Dex
  285.  
  286. -- 100% DEX TP scales fTP 1.0 to 2.875 [Magical, dINT]
  287. sets.precast.WS.Cyclone = sets.precast.WS.Magical.Int
  288.  
  289. -- 100% MND TP scales MP stolen [Magical]
  290. sets.precast.WS['Energy Steal'] = sets.precast.WS.Magical
  291.  
  292. -- 100% MND TP scales MP stolen [Magical]
  293. sets.precast.WS['Energy Drain'] = sets.precast.WS.Magical
  294.  
  295. -- 40% DEX 40% CHR TP scales accuracy [Physical, fTP transfer]
  296. sets.precast.WS['Dancing Edge'] = sets.precast.WS.Physical.Fotia.Dex
  297.  
  298. -- 40% DEX 40% AGI TP scales fTP 4.5 to 8.5 [Physical]
  299. sets.precast.WS['Shark Bite'] = sets.precast.WS.Physical.Fotia.Dex
  300.  
  301. -- 50% DEX TP Scales Critical Hit Rate [Physical, fTP transfer]
  302. sets.precast.WS.Evisceration = sets.precast.WS.Physical.Fotia.Dex.Crit
  303.  
  304. -- 40% DEX 40% INT TP Scales fTP 2.0 to 4.5 [Magical, dINT]
  305. sets.precast.WS['Aeolian Edge'] = sets.precast.WS.Magical.Int
  306.  
  307. -- 85% AGI TP scales duration [Physical, fTP Transfer]
  308. sets.precast.WS.Exenterator = sets.precast.WS.Physical
  309.  
  310. -- 40% STR 40% MND, TP scales fTP, Magical
  311. sets.precast.WS['Shining Strike'] = sets.precast.WS.Magical
  312.  
  313. -- 40% STR 40% MND, TP scales fTP, Magical
  314. sets.precast.WS['Seraph Strike'] = sets.precast.WS.Magical
  315.  
  316. -- 100% STR, TP scales chance to stun
  317. sets.precast.WS.Brainshaker = sets.precast.WS.Physical
  318.  
  319. -- Restores MP to self, scales with fTP
  320. sets.precast.WS.Starlight = sets.precast.WS.Physical
  321.  
  322. -- Restores MP to party, scales with fTP
  323. sets.precast.WS.Moonlight = sets.precast.WS.Physical
  324.  
  325. -- 100% STR Reduces target INT by 10. Accuracy scales with fTP
  326. sets.precast.WS.Skullbreaker = sets.precast.WS.Physical
  327.  
  328. -- 100% STR, crit, fTP scales accuracy
  329. sets.precast.WS['True Strike'] = sets.precast.WS.Physical
  330.  
  331. -- 50% STR 50% MND, fTP scales damage
  332. sets.precast.WS.Judgment = sets.precast.WS.Physical.Mnd
  333.  
  334. -- 70% MND 30% STR, fTP scales damage
  335. sets.precast.WS['Black Halo'] = sets.precast.WS.Physical.Mnd
  336.  
  337. -- 50% STR, 50% MND, magical, inflicts Flash
  338. sets.precast.WS['Flash Nova'] = sets.precast.WS.Magical
  339.  
  340. -- All ranged WSes are 50% AGI and 20% Str. Flaming arrow is Magical, but gear options aren't really different from Physical for RDM.
  341.  
  342. sets.precast.WS['Flaming Arrow'] = sets.precast.WS.Physical.Ranged
  343.  
  344. sets.precast.WS['Piercing Arrow'] = sets.precast.WS.Physical.Ranged
  345.  
  346. sets.precast.WS['Dullinh Arrow'] = sets.precast.WS.Physical.Ranged
  347.  
  348. sets.precast.WS.Sidewinder = sets.precast.WS.Physical.Ranged
  349.  
  350. sets.precast.WS['Blast Arrow'] = sets.precast.WS.Physical.Ranged
  351.  
  352. sets.precast.WS['Arching Arrow'] = sets.precast.WS.Physical.Ranged
  353.  
  354. sets.precast.WS['Empyreal Arrow'] = sets.precast.WS.Physical.Ranged
  355.  
  356. -- Midcast Sets
  357.  
  358. sets.midcast.Cure = {
  359. head="Vanya Hood",
  360. neck="Nodens Gorget",
  361. ear1="Mendicant's Earring",
  362. ear2="Roundel Earring",
  363. body="Atrophy Tabard +3",
  364. hands="Kaykaus Cuffs +1",
  365. ring1="Haoma's Ring",
  366. ring2="Sirona's Ring",
  367. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Cure" potency +10%',}},
  368. legs="Atrophy Tights +2",
  369. feet="Vanya Clogs"}
  370.  
  371. sets.midcast.CureSelf = set_combine(sets.midcast.Cure, {
  372. neck="Phalaina Locket",
  373. hands="Buremte Gloves",
  374. ring1="Kunaji Ring",
  375. ring2="Vocane Ring",
  376. waist="Chuq'aba Belt"})
  377.  
  378. sets.midcast.Curaga = sets.midcast.Cure
  379.  
  380. sets.midcast.Cursna = {
  381. ring1="Haoma's Ring",
  382. ring2="Haoma's Ring",
  383. back="Oretania's Cape +1",
  384. waist="Bishop's Sash",
  385. feet="Vanya Clogs"}
  386.  
  387. sets.midcast.EnhancingSkill = {
  388. main="Pukulatmuj +1",
  389. sub="Pukulatmuj",
  390. head="Befouled Crown",
  391. neck="Enhancing Torque",
  392. ear1="Andoaa Earring",
  393. ear2="Augmenting Earring",
  394. body="Vitiation tabard +3",
  395. hands="Vitiation Gloves +3",
  396. ring1="Stikini Ring",
  397. ring2="Stikini Ring",
  398. back="Ghostfyre Cape",
  399. waist="Olympus Sash",
  400. legs="Atrophy Tights +2",
  401. feet="Lethargy Houseaux +1"}
  402.  
  403. sets.midcast.EnhancingDuration = {
  404. head={ name="Telchine Cap", augments={'"Fast Cast"+5','Enh. Mag. eff. dur. +10',}},
  405. neck="Duelist's Torque",
  406. ear1="Andoaa Earring",
  407. body="Vitiation Tabard +3",
  408. hands="Atrophy Gloves +3",
  409. ring1="Stikini Ring",
  410. ring2="Stikini Ring",
  411. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Cure" potency +10%',}},
  412. legs={ name="Telchine Braconi", augments={'"Fast Cast"+5','Enh. Mag. eff. dur. +10',}},
  413. feet="Lethargy Houseaux +1"}
  414.  
  415. sets.buff.ComposureOther = {
  416. head="Lethargy Chappel",
  417. body="Vitiation Tabard +3",
  418. hands="Atrophy Gloves +3",
  419. legs="Lethargy Fuseau +1",
  420. feet="Lethargy Houseaux +1"}
  421.  
  422. sets.midcast.GainSpells = set_combine(sets.midcast.EnhancingDuration, {
  423. hands="Vitiation Gloves +3"})
  424.  
  425. sets.midcast.Phalanx = set_combine(sets.midcast.EnhancingDuration, {
  426. head={ name="Taeon Chapeau", augments={'Phalanx +3',}},
  427. body={ name="Taeon Tabard", augments={'Phalanx +3',}},
  428. hands={ name="Taeon Gloves", augments={'Phalanx +3',}},
  429. legs={ name="Taeon Tights", augments={'Phalanx +3',}},
  430. feet={ name="Taeon Boots", augments={'"Counter"+3','Phalanx +3',}}})
  431.  
  432. sets.midcast['Phalanx II'] = sets.midcast.Phalanx
  433.  
  434. sets.midcast.Aquaveil = set_combine(sets.midcast.EnhancingDuration, {head="Amalric Coif +1"})
  435.  
  436. sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
  437. head="Amalric Coif +1",
  438. body="Atrophy Tabard +3",
  439. legs="Lethargy Fuseau +1"})
  440.  
  441. sets.midcast.ComposureOtherRefresh = set_combine(sets.midcast.EnhancingDuration, {
  442. head="Amalric Coif +1",
  443. body="Atrophy Tabard +3",
  444. hands="Atrophy Gloves +3",
  445. legs="Lethargy Fuseau +1",
  446. feet="Lethargy Houseaux +1"})
  447.  
  448. sets.midcast.Stoneskin = {
  449. neck="Nodens Gorget",
  450. waist="Siegel Sash"}
  451.  
  452. sets.midcast.EnfeeblingEffect = {
  453. ranged="Eletta Bow",
  454. ammo="Chapuli Arrow",
  455. head="Atrophy Chapeau +3",
  456. neck="Duelist's torque",
  457. ear1="Regal Earring",
  458. ear2="Dignitary's Earring",
  459. body="Lethargy Sayon +1",
  460. hands="Kaykaus Cuffs +1",
  461. ring1="Stikini Ring",
  462. ring2="Stikini Ring",
  463. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','"Cure" potency +10%',}},
  464. waist="Luminary Sash",
  465. legs="Chironic Hose",
  466. feet="Jhakri Pigaches +2"}
  467.  
  468. sets.midcast.EnfeeblingDuration = set_combine(sets.midcast.EnfeeblingEffect, {
  469. body="Atrophy Tabard +3",
  470. ring1="Kishar Ring",
  471. ring2="Stikini Ring"})
  472.  
  473. sets.midcast.EnfeeblingTreasureHunter = {
  474. ring1="Kishar Ring",
  475. waist="Chaac Belt"}
  476.  
  477. sets.midcast['Dia III'] = set_combine(sets.midcast.EnfeeblingTreasureHunter, {head="Vitiation Chapeau +1"})
  478.  
  479. sets.midcast['Slow II'] = set_combine(sets.midcast.EnfeeblingEffect, {head="Vitiation Chapeau +1"})
  480.  
  481. sets.midcast['Paralyze II'] = set_combine(sets.midcast.EnfeeblingEffect, {})
  482.  
  483. sets.midcast['Blind II'] = set_combine(sets.midcast.EnfeeblingEffect, {})
  484.  
  485. sets.midcast['Bio III'] = set_combine(sets.midcast.EnfeeblingDuration, {})
  486.  
  487.  
  488. sets.midcast['Elemental Magic'] = {
  489. ranged="Eletta Bow",
  490. ammo="Chapuli Arrow",
  491. head="Ea Hat",
  492. neck="Mizukage-no-Kubikazari",
  493. ear1="Regal Earring",
  494. ear2="Friomisi Earring",
  495. body="Ea Houppelande",
  496. hands="Ea Cuffs",
  497. ring1="Locus Ring",
  498. ring2="Mujin Band",
  499. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
  500. waist="Refoccilation Stone",
  501. legs="Ea Slops",
  502. feet="Jhakri Pigaches +2"}
  503.  
  504. sets.midcast['Elemental Magic'].Free = set_combine(sets.midcast['Elemental Magic'], {
  505. neck="Sanctity Necklace",
  506. body="Jhakri Robe +2",
  507. ring2="Acumen Ring",
  508. legs="Jhakri Slops +2",
  509. feet="Merlinic Crakows"})
  510.  
  511. --sets.midcast.Impact = set_combine(sets.midcast['Elemental Magic'], {
  512. -- head=empty,
  513. -- body="Twilight Cloak"})
  514.  
  515. sets.midcast['Dark Magic'] = {
  516. ranged="Eletta Bow",
  517. ammo="Chapuli Arrow",
  518. head="Ea Hat",
  519. neck="Erra Pendant",
  520. ear1="Regal Earring",
  521. ear2="Friomisi Earring",
  522. body="Ea Houppelande",
  523. hands="Ea Cuffs",
  524. ring1="Locus Ring",
  525. ring2="Mujin Band",
  526. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10',}},
  527. waist="Fucho-no-obi",
  528. legs="Ea Slops",
  529. feet="Merlinic Crakows"}
  530.  
  531. sets.midcast['Dark Magic'].Free = set_combine(sets.midcast['Dark Magic'], {
  532. neck="Sanctity Necklace",
  533. body="Jhakri Robe +2",
  534. ring2="Acumen Ring",
  535. legs="Chironic Hose",
  536. feet="Merlinic Crakows"})
  537.  
  538. sets.midcast.Stun = {
  539. head="Atrophy Chapeau +3",
  540. neck="Voltsurge Torque",
  541. ear1="Loquacious Earring",
  542. ear2="Estoqueur's Earring",
  543. body="Vitiation Tabard +3",
  544. hands={ name="Helios Gloves", augments={'"Fast Cast"+5',}},
  545. ring1="Kishar Ring",
  546. ring2="Stikini Ring",
  547. back="Swith Cape",
  548. waist="Rumination Sash",
  549. legs="Ayanmo Cosciales +1",
  550. feet={ name="Carmine Greaves +1", augments={'Accuracy+12','DEX+12','MND+20',}}}
  551.  
  552. -- Enmity set for tanking
  553. sets.midcast['Blue Magic'] = {
  554. ear1="Friomisi Earring",
  555. body="Emet Harness",
  556. ring1="Petrov Ring",
  557. waist="Rumination Sash",
  558. legs="Carmine Cuisses +1",
  559. feet="Rager Ledelsens +1"}
  560.  
  561. sets.buff.Saboteur = set_combine(sets.midcast.EnfeeblingEffect, {hands="Lethargy Gantherots +1"})
  562.  
  563. -- Sets to return to when not performing an action.
  564.  
  565. -- Resting sets
  566. sets.resting = {}
  567.  
  568.  
  569. -- Idle sets
  570. sets.idle = {
  571. head="Vitiation Chapeau +1", --2 Refresh
  572. neck="Twilight Torque", --5 DT
  573. ear1="Infused Earring", --1 Regen
  574. body="Jhakri Robe +2", --4 Refresh
  575. hands="Vitiation Gloves +3", --MEVA/MDB
  576. ring1="Defending Ring", --10 DT
  577. ring2="Warp Ring", --Convenience
  578. back="Moonbeam cape", --5 DT
  579. waist="Flume belt", --4 PDT
  580. legs="Carmine Cuisses +1", --Speed
  581. feet="Atrophy Boots +2"} --MEVA/MDB/Shield Block
  582.  
  583. sets.idle.Town = set_combine(sets.idle, {
  584. body="Councilor's Garb"})
  585.  
  586. sets.idle.DT = set_combine(sets.idle, {
  587. head="Ayanmo zucchetto +1", --2 DT
  588. body="Ayanmo corazza +1", --5 DT
  589. hands="Ayanmo manopolas +1", --2 DT
  590. ring2="Vocane Ring", --8 DT
  591. legs="Ayanmo Cosciales +1", --4 DT
  592. feet="Ayanmo gambieras +1"}) --2 DT
  593.  
  594. -- Defense sets
  595. --sets.defense.PDT = {}
  596.  
  597. --sets.defense.MDT = {}
  598.  
  599. --sets.Kiting = {}
  600.  
  601. sets.latent_refresh = {waist="Fucho-no-obi"}
  602.  
  603. -- Engaged sets
  604.  
  605. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  606. -- sets if more refined versions aren't defined.
  607. -- If you create a set with both offense and defense modes, the offense mode should be first.
  608. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  609.  
  610. -- Normal melee group
  611. sets.engaged = {
  612. ranged="Eletta Bow",
  613. ammo="Chapuli Arrow",
  614. head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+7 DEX+7',}},
  615. neck="Anu Torque",
  616. ear1="Dedition Earring",
  617. ear2="Sherida Earring",
  618. body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}},
  619. hands="Chironic Gloves",
  620. ring1="Ilabrat Ring",
  621. ring2="Petrov Ring",
  622. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  623. waist="Windbuffet Belt +1",
  624. legs={ name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','STR+6 DEX+6',}},
  625. feet={ name="Taeon Boots", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','DEX+10',}}}
  626.  
  627. sets.engaged.MurgCol = set_combine(sets.engaged, {
  628. main="Murgleis",
  629. sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
  630.  
  631. sets.engaged.MurgCol.ThirtyHaste = set_combine(sets.engaged.MurgCol, {
  632. head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
  633. body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
  634. hands={ name="Taeon Gloves", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','DEX+10',}},
  635. legs="Carmine Cuisses +1"})
  636.  
  637. sets.engaged.MurgCol.NoHaste = set_combine(sets.engaged.MurgCol.ThirtyHaste, {
  638. ear1="Suppanomimi"})
  639.  
  640. sets.engaged.MurgEnrich = set_combine(sets.engaged, {
  641. main="Murgleis",
  642. sub="Enriching Sword",
  643. hands="Ayanmo Manopolas +1"})
  644.  
  645. sets.engaged.MurgEnrich.ThirtyHaste = set_combine(sets.engaged.MurgEnrich, {
  646. head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
  647. ear1="Suppanomimi",
  648. body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
  649. legs="Carmine Cuisses +1"})
  650.  
  651. sets.engaged.MurgEnrich.NoHaste = sets.engaged.MurgEnrich.ThirtyHaste
  652.  
  653. sets.engaged.MurgAmmu = set_combine(sets.engaged, {
  654. main="Murgleis",
  655. sub="Ammurapi Shield",
  656. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}}})
  657.  
  658. sets.engaged.MurgAmmu.ThirtyHaste = sets.engaged.MurgAmmuMaxHaste
  659.  
  660. sets.engaged.MurgAmmu.NoHaste = sets.engaged.MurgAmmuMaxHaste
  661.  
  662. sets.engaged.VitiEnrich = set_combine(sets.engaged, {
  663. main="Vitiation Sword",
  664. sub="Enriching Sword",
  665. hands="Ayanmo Manopolas +1"})
  666.  
  667. sets.engaged.VitiEnrich.ThirtyHaste = set_combine(sets.engaged.VitiEnrich, {
  668. head={ name="Taeon Chapeau", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
  669. ear1="Suppanomimi",
  670. body={ name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','STR+7 DEX+7',}},
  671. legs="Carmine Cuisses +1"})
  672.  
  673. sets.engaged.VitiEnrich.NoHaste = sets.engaged.VitiEnrich.ThirtyHaste
  674.  
  675. sets.engaged.VitiAmmu = set_combine(sets.engaged, {
  676. main="Vitiation Sword",
  677. sub="Ammurapi Shield"})
  678.  
  679. sets.engaged.VitiAmmu.ThirtyHaste = sets.engaged.VitiAmmuMaxHaste
  680.  
  681. sets.engaged.VitiAmmu.NoHaste = sets.engaged.VitiAmmuMaxHaste
  682.  
  683. -- Mid Accuracy melee group
  684. sets.engaged.MidAccuracy = set_combine(sets.engaged, {
  685. head="Carmine Mask +1",
  686. ear1="Dignitary's Earring",
  687. body="Ayanmo Corazza +1",
  688. hands="Atrophy Gloves +3",
  689. feet="Carmine Greaves +1"})
  690.  
  691. sets.engaged.MidAccuracy.MurgCol = set_combine(sets.engaged.MidAccuracy, {
  692. main="Murgleis",
  693. sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
  694.  
  695. sets.engaged.MidAccuracy.MurgCol.ThirtyHaste = set_combine(sets.engaged.MidAccuracy.MurgCol, {
  696. ear2="Suppanomimi",
  697. hands={ name="Taeon Gloves", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','DEX+10',}},
  698. legs="Carmine Cuisses +1"})
  699.  
  700. sets.engaged.MidAccuracy.MurgCol.NoHaste = sets.engaged.MidAccuracy.MurgCol.ThirtyHaste
  701.  
  702. sets.engaged.MidAccuracy.MurgEnrich = set_combine(sets.engaged.MidAccuracy, {
  703. main="Murgleis",
  704. sub="Enriching Sword",
  705. hands="Ayanmo Manopolas +1"})
  706.  
  707. sets.engaged.MidAccuracy.MurgEnrich.ThirtyHaste = set_combine(sets.engaged.MidAccuracy.MurgEnrich, {
  708. ear2="Suppanomimi",
  709. hands="Ayanmo Manopolas +1",
  710. legs="Carmine Cuisses +1"})
  711.  
  712. sets.engaged.MidAccuracy.MurgEnrich.NoHaste = sets.engaged.MidAccuracy.MurgEnrich.ThirtyHaste
  713.  
  714. sets.engaged.MidAccuracy.MurgAmmu = set_combine(sets.engaged.MidAccuracy, {
  715. main="Murgleis",
  716. sub="Ammurapi Shield"})
  717.  
  718. sets.engaged.MidAccuracy.MurgAmmu.ThirtyHaste = sets.engaged.MurgAmmu
  719.  
  720. sets.engaged.MidAccuracy.MurgAmmu.NoHaste = sets.engaged.MurgAmmu
  721.  
  722. sets.engaged.MidAccuracy.VitiEnrich = set_combine(sets.engaged.MidAccuracy, {
  723. main="Vitiation Sword",
  724. sub="Enriching Sword",
  725. hands="Ayanmo Manopolas +1"})
  726.  
  727. sets.engaged.MidAccuracy.VitiEnrich.ThirtyHaste = set_combine(sets.engaged.MidAccuracy.VitiEnrich, {
  728. ear2="Suppanomimi",
  729. hands="Ayanmo Manopolas +1",
  730. legs="Carmine Cuisses +1"})
  731.  
  732. sets.engaged.MidAccuracy.VitiEnrich.NoHaste = sets.engaged.MidAccuracy.VitiEnrich.ThirtyHaste
  733.  
  734. sets.engaged.MidAccuracy.VitiAmmu = set_combine(sets.engaged.MidAccuracy, {
  735. main="Vitiation Sword",
  736. sub="Ammurapi Shield",
  737. hands="Ayanmo Manopolas +1"})
  738.  
  739. sets.engaged.MidAccuracy.VitiAmmu.ThirtyHaste = sets.engaged.VitiAmmu
  740.  
  741. sets.engaged.MidAccuracy.VitiAmmu.NoHaste = sets.engaged.VitiAmmu
  742.  
  743. -- High Accuracy melee group
  744. sets.engaged.HighAccuracy = {
  745. head="Carmine Mask +1",
  746. neck="Decimus Torque",
  747. ear1="Dignitary's Earring",
  748. ear2="Regal Earring",
  749. body="Ayanmo Corazza +1",
  750. hands="Atrophy Gloves +3",
  751. ring1="Ilabrat Ring",
  752. ring2="Apate Ring",
  753. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10',}},
  754. waist="Eschan Stone",
  755. legs="Carmine Cuisses +1",
  756. feet="Atrophy Boots +2"}
  757.  
  758. sets.engaged.HighAccuracy.MurgCol = set_combine(sets.engaged.HighAccuracy, {
  759. main="Murgleis",
  760. sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
  761.  
  762. sets.engaged.HighAccuracy.MurgCol.ThirtyHaste = sets.engaged.HighAccuracy.MurgCol
  763.  
  764. sets.engaged.HighAccuracy.MurgCol.NoHaste = sets.engaged.HighAccuracy.MurgCol
  765.  
  766. sets.engaged.HighAccuracy.MurgEnrich = set_combine(sets.engaged.HighAccuracy, {
  767. main="Murgleis",
  768. sub="Enriching Sword",
  769. hands="Ayanmo Manopolas +1"})
  770.  
  771. sets.engaged.HighAccuracy.MurgEnrich.ThirtyHaste = sets.engaged.HighAccuracy.MurgEnrich
  772.  
  773. sets.engaged.HighAccuracy.MurgEnrich.NoHaste = sets.engaged.HighAccuracy.MurgEnrich
  774.  
  775. sets.engaged.HighAccuracy.MurgAmmu = set_combine(sets.engaged.HighAccuracy, {
  776. main="Murgleis",
  777. sub="Ammurapi Shield"})
  778.  
  779. sets.engaged.HighAccuracy.MurgAmmu.ThirtyHaste = sets.engaged.MurgAmmu
  780.  
  781. sets.engaged.HighAccuracy.MurgAmmu.NoHaste = sets.engaged.MurgAmmu
  782.  
  783. sets.engaged.HighAccuracy.VitiEnrich = set_combine(sets.engaged.HighAccuracy, {
  784. main="Vitiation Sword",
  785. sub="Enriching Sword",
  786. hands="Ayanmo Manopolas +1"})
  787.  
  788. sets.engaged.HighAccuracy.VitiEnrich.ThirtyHaste = sets.engaged.HighAccuracy.VitiEnrich
  789.  
  790. sets.engaged.HighAccuracy.VitiEnrich.NoHaste = sets.engaged.HighAccuracy.VitiEnrich
  791.  
  792. sets.engaged.HighAccuracy.VitiAmmu = set_combine(sets.engaged.HighAccuracy, {
  793. main="Vitiation Sword",
  794. sub="Ammurapi Shield",
  795. hands="Ayanmo Manopolas +1"})
  796.  
  797. sets.engaged.HighAccuracy.VitiAmmu.ThirtyHaste = sets.engaged.VitiAmmu
  798.  
  799. sets.engaged.HighAccuracy.VitiAmmu.NoHaste = sets.engaged.VitiAmmu
  800.  
  801. -- Defense melee group
  802. sets.engaged.Defense = set_combine(sets.HighAccuracy, {
  803. head="Ayanmo Zucchetto +1",
  804. neck="Twilight Torque",
  805. body="Ayanmo Corazza +1",
  806. hands="Ayanmo Manopolas +1",
  807. ring1="Defending Ring",
  808. ring2="Vocane Ring",
  809. back="Moonbeam Cape",
  810. waist="Flume Belt",
  811. legs="Ayanmo Cosciales +1",
  812. feet="Ayanmo Gambieras +1"})
  813.  
  814. sets.engaged.Defense.MurgCol = set_combine(sets.Defense, {
  815. main="Murgleis",
  816. sub={ name="Colada", augments={'Weapon Skill Acc.+5','Mag. Acc.+16','"Mag.Atk.Bns."+25','DMG:+13',}}})
  817.  
  818. sets.engaged.Defense.MurgEnrich = set_combine(sets.Defense, {
  819. main="Murgleis",
  820. sub="Enriching Sword"})
  821.  
  822. sets.engaged.Defense.MurgAmmu = set_combine(sets.Defense, {
  823. main="Murgleis",
  824. sub="Ammurapi Shield"})
  825.  
  826. sets.engaged.Defense.VitiEnrich = set_combine(sets.Defense, {
  827. main="Vitiation Sword",
  828. sub="Enriching Sword"})
  829.  
  830. sets.engaged.Defense.VitiAmmu = set_combine(sets.Defense, {
  831. main="Vitiation Sword",
  832. sub="Ammurapi Shield"})
  833.  
  834. end
  835.  
  836. -------------------------------------------------------------------------------------------------------------------
  837. -- Job-specific hooks for standard casting events.
  838. -------------------------------------------------------------------------------------------------------------------
  839.  
  840. -- Run after the default midcast() is done.
  841. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  842. function job_post_midcast(spell, action, spellMap, eventArgs)
  843. if spell.skill == 'Enfeebling Magic' then
  844. if state.Buff.Saboteur and enfeebling_magic_effect:contains(spell.english) then
  845. equip(sets.buff.Saboteur)
  846. elseif state.Buff.Saboteur and enfeebling_magic_duration:contains(spell.english) then
  847. equip(sets.midcast.EnfeeblingDuration)
  848. elseif state.Buff.Saboteur and enfeebling_magic_treasure_hunter:contains(spell.english) then
  849. equip(sets.midcast.EnfeeblingTreasureHunter)
  850. elseif enfeebling_magic_effect:contains(spell.english) then
  851. equip(sets.midcast.EnfeeblingEffect)
  852. elseif enfeebling_magic_duration:contains(spell.english) then
  853. equip(sets.midcast.EnfeeblingDuration)
  854. elseif enfeebling_magic_treasure_hunter:contains(spell.english) then
  855. equip(sets.midcast.EnfeeblingTreasureHunter)
  856. end
  857. elseif spell.skill == 'Enhancing Magic' then
  858. if spell.english == "Refresh" then
  859. if buffactive.composure and spell.target.type == 'PLAYER' then
  860. equip(sets.buff.ComposureOtherRefresh)
  861. elseif buffactive.composure and spell.target.type == 'NPC' then
  862. equip(sets.buff.ComposureOtherRefresh)
  863. end
  864. elseif spell.english == "Refresh II" then
  865. if buffactive.composure and spell.target.type == 'PLAYER' then
  866. equip(sets.buff.ComposureOtherRefresh)
  867. elseif buffactive.composure and spell.target.type == 'NPC' then
  868. equip(sets.buff.ComposureOtherRefresh)
  869. end
  870. elseif spell.english == "Refresh III" then
  871. if buffactive.composure and spell.target.type == 'PLAYER' then
  872. equip(sets.buff.ComposureOtherRefresh)
  873. elseif buffactive.composure and spell.target.type == 'NPC' then
  874. equip(sets.buff.ComposureOtherRefresh)
  875. end
  876. elseif buffactive.composure and spell.target.type == 'PLAYER' then
  877. equip(sets.buff.ComposureOther)
  878.  
  879. elseif buffactive.composure and spell.target.type == 'NPC' then
  880. equip(sets.buff.ComposureOther)
  881. elseif enhancing_magic_duration:contains(spell.english) then
  882. equip (sets.midcast.EnhancingDuration)
  883. elseif enhancing_magic_skill:contains(spell.english) then
  884. equip(sets.midcast.EnhancingSkill)
  885. elseif spell.english:startswith('Gain') then
  886. equip(sets.midcast.GainSpells)
  887.  
  888. end
  889. elseif spellMap == 'Cure' and spell.target.type == 'SELF' then
  890. equip(sets.midcast.CureSelf)
  891. end
  892. end
  893.  
  894. function job_precast(spell, action, spellMap, eventArgs)
  895. if spellMap == 'Utsusemi' then
  896. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
  897. cancel_spell()
  898. add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
  899. eventArgs.handled = true
  900. return
  901. elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
  902. send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
  903. end
  904. end
  905. end
  906.  
  907. -------------------------------------------------------------------------------------------------------------------
  908. -- Job-specific hooks for non-casting events.
  909. -------------------------------------------------------------------------------------------------------------------
  910.  
  911. function job_buff_change(buff,gain)
  912. if buff == "doom" then
  913. if gain then
  914. --equip(sets.buff.Doom)
  915. send_command('@input /p I am doomed! Please assist!')
  916. --disable('ring1','ring2','waist')
  917. else
  918. --enable('ring1','ring2','waist')
  919. --handle_equipping_gear(player.status)
  920. end
  921. end
  922. end
  923.  
  924. -------------------------------------------------------------------------------------------------------------------
  925. -- User code that supplements standard library decisions.
  926. -------------------------------------------------------------------------------------------------------------------
  927.  
  928. -- Modify the default idle set after it was constructed.
  929. function customize_idle_set(idleSet)
  930. if player.mpp < 51 then
  931. idleSet = set_combine(idleSet, sets.latent_refresh)
  932. end
  933.  
  934. return idleSet
  935. end
  936.  
  937. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  938. function display_current_job_state(eventArgs)
  939. display_current_caster_state()
  940. eventArgs.handled = true
  941. end
  942.  
  943. function job_aftercast(spell, action, spellMap, eventArgs)
  944. if not spell.interrupted then
  945. if spell.english == "Sleep II" then
  946. send_command('@timers c "Sleep II ['..spell.target.name..']" 112 down spells/00259.png')
  947. elseif spell.english == "Sleep" or spell.english == "Sleepga" then -- Sleep & Sleepga Countdown --
  948. send_command('@timers c "Sleep ['..spell.target.name..']" 75 down spells/00253.png')
  949. elseif spell.english == "Break" then
  950. send_command('@timers c "Break ['..spell.target.name..']" 37 down spells/00255.png')
  951. end
  952. end
  953. end
  954.  
  955. function job_handle_equipping_gear(playerStatus, eventArgs)
  956.  
  957. end
  958.  
  959. function job_update(cmdParams, eventArgs)
  960. handle_equipping_gear(player.status)
  961. end
  962.  
  963.  
  964. -------------------------------------------------------------------------------------------------------------------
  965. -- Utility functions specific to this job.
  966. -------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement