bongarippa

RDM

Nov 16th, 2023 (edited)
249
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 89.65 KB | None | 0 0
  1. -- Original: Motenten / Modified: Arislan
  2. -- Haste/DW Detection Requires Gearinfo Addon
  3.  
  4. -------------------------------------------------------------------------------------------------------------------
  5. -- Keybinds
  6. -------------------------------------------------------------------------------------------------------------------
  7.  
  8. -- Modes: [ F9 ] Cycle Offense Mode
  9. -- [ CTRL+F9 ] Cycle Hybrid Modes
  10. -- [ WIN+F9 ] Cycle Weapon Skill Modes
  11. -- [ F10 ] Emergency -PDT Mode
  12. -- [ ALT+F10 ] Toggle Kiting Mode
  13. -- [ F11 ] Emergency -MDT Mode
  14. -- [ CTRL+F11 ] Cycle Casting Modes
  15. -- [ F12 ] Update Current Gear / Report Current Status
  16. -- [ CTRL+F12 ] Cycle Idle Modes
  17. -- [ ALT+F12 ] Cancel Emergency -PDT/-MDT Mode
  18. -- [ ALT+` ] Toggle Magic Burst Mode
  19. -- [ WIN+C ] Toggle Capacity Points Mode
  20. --
  21. -- Abilities: [ CTRL+` ] Composure
  22. -- [ CTRL+- ] Light Arts/Addendum: White
  23. -- [ CTRL+= ] Dark Arts/Addendum: Black
  24. -- [ CTRL+; ] Celerity/Alacrity
  25. -- [ ALT+[ ] Accesion/Manifestation
  26. -- [ ALT+; ] Penury/Parsimony
  27. --
  28. -- Spells: [ CTRL+` ] Stun
  29. -- [ ALT+Q ] Temper
  30. -- [ ALT+W ] Flurry II
  31. -- [ ALT+E ] Haste II
  32. -- [ ALT+R ] Refresh II
  33. -- [ ALT+Y ] Phalanx
  34. -- [ ALT+O ] Regen II
  35. -- [ ALT+P ] Shock Spikes
  36. -- [ WIN+, ] Utsusemi: Ichi
  37. -- [ WIN+. ] Utsusemi: Ni
  38. --
  39. -- Weapons: [ CTRL+W ] Toggles Weapon Lock
  40. --
  41. -- WS: [ CTRL+Numpad7 ] Savage Blade
  42. -- [ CTRL+Numpad9 ] Chant Du Cygne
  43. -- [ CTRL+Numpad4 ] Requiescat
  44. -- [ CTRL+Numpad1 ] Sanguine Blade
  45. --
  46. --
  47. -- (Global-Binds.lua contains additional non-job-related keybinds)
  48.  
  49.  
  50. -------------------------------------------------------------------------------------------------------------------
  51. -- Setup functions for this job. Generally should not be modified.
  52. -------------------------------------------------------------------------------------------------------------------
  53.  
  54. -- Addendum Commands:
  55. -- Shorthand versions for each strategem type that uses the version appropriate for
  56. -- the current Arts.
  57. -- Light Arts Dark Arts
  58. -- ---------- ---------
  59. -- gs c scholar light Light Arts/Addendum
  60. -- gs c scholar dark Dark Arts/Addendum
  61. -- gs c scholar cost Penury Parsimony
  62. -- gs c scholar speed Celerity Alacrity
  63. -- gs c scholar aoe Accession Manifestation
  64. -- gs c scholar addendum Addendum: White Addendum: Black
  65.  
  66.  
  67. -------------------------------------------------------------------------------------------------------------------
  68. -- Setup functions for this job. Generally should not be modified.
  69. -------------------------------------------------------------------------------------------------------------------
  70.  
  71. -- Initialization function for this job file.
  72. function get_sets()
  73. mote_include_version = 2
  74.  
  75. -- Load and initialize the include file.
  76. include('Mote-Include.lua')
  77. end
  78.  
  79.  
  80. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  81. function job_setup()
  82.  
  83. state.CP = M(false, "Capacity Points Mode")
  84. state.Buff.Saboteur = buffactive.Saboteur or false
  85.  
  86. no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
  87. "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
  88.  
  89. elemental_ws = S{"Sanguine Blade", "Red Lotus Blade", "Burning Blade", "Aeolian Edge", "Flash Nova", "Seraph Strike", "Flaming Arrow"}--ringo
  90.  
  91. enfeebling_magic_acc = S{'Bind', 'Break', 'Dispel', 'Frazzle', 'Frazzle II', 'Gravity', 'Gravity II', 'Silence'}
  92. enfeebling_magic_skill = S{'Frazzle III', 'Poison II'}
  93. enfeebling_magic_effect = S{'Dia', 'Dia II', 'Dia III', 'Diaga', 'Blind', 'Blind II'}
  94. enfeebling_magic_sleep = S{'Sleep', 'Sleep II', 'Sleepga'}
  95. LowTierNukes = S{"Fire","Blizzard","Aero","Stone","Thunder","Water"}
  96. skill_spells = S{
  97. 'Temper', 'Temper II', 'Enfire', 'Enfire II', 'Enblizzard', 'Enblizzard II', 'Enaero', 'Enaero II',
  98. 'Enstone', 'Enstone II', 'Enthunder', 'Enthunder II', 'Enwater', 'Enwater II'}
  99.  
  100. lockstyleset = 34
  101.  
  102. end
  103.  
  104.  
  105. -------------------------------------------------------------------------------------------------------------------
  106. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  107. -------------------------------------------------------------------------------------------------------------------
  108.  
  109. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  110. function user_setup()
  111. state.OffenseMode:options('Normal', 'Enspells', 'MidAcc', 'HighAcc')
  112. state.HybridMode:options('Normal', 'Almace', 'SwordEnh', 'Subtle', 'Crit')
  113. state.WeaponskillMode:options('Normal', 'PDL', 'TH')
  114. state.CastingMode:options('Normal','Resistant', 'Enmity')
  115. state.IdleMode:options('Normal', 'DTidle', 'HP')
  116. state.PhysicalDefenseMode:options('DualWield','Shield')
  117. state.WeaponLock = M(false, 'Weapon Lock')
  118. state.MagicBurst = M(false, 'Magic Burst')
  119. state.CP = M(false, "Capacity Points Mode")
  120. state.RingLock = M(false, 'Ring Lock')
  121.  
  122. -- Additional local binds
  123. -- include('Global-Binds.lua') -- OK to remove this line
  124. -- include('Global-GEO-Binds.lua') -- OK to remove this line
  125. send_command('lua l gearinfo')
  126. send_command('bind ^` input /ja "Composure" <me>')
  127. -- send_command('bind !` gs c toggle MagicBurst')
  128.  
  129.  
  130. if player.sub_job == 'SCH' then
  131. send_command('bind ^- gs c scholar light')
  132. send_command('bind ^= gs c scholar dark')
  133. send_command('bind !- input /ja "Addendum: White" <me>')
  134. send_command('bind != input /ja "Addendum: Black" <me>')
  135. send_command('bind ![ gs c scholar aoe')
  136. end
  137.  
  138. send_command('bind !q input /ma "Temper II" <me>')
  139. send_command('bind !w input /ma "Flurry II" <stpc>')
  140. send_command('bind !e input /ma "Haste II" <stpc>')
  141. send_command('bind !r input /ma "Refresh III" <stpc>')
  142. send_command('bind !y input /ma "Phalanx II" <stpc>')
  143. send_command('bind !o input /ma "Regen II" <stpc>')
  144. send_command('bind !p gs c toggle MagicBurst')
  145.  
  146. send_command('bind @c gs c toggle CP')
  147. send_command('bind @w gs c toggle WeaponLock')
  148.  
  149. send_command('bind ^numpad7 input /ws "Savage Blade" <t>')
  150. send_command('bind ^numpad9 input /ws "Chant du Cygne" <t>')
  151. send_command('bind ^numpad4 input /ws "Requiescat" <t>')
  152. send_command('bind ^numpad1 input /ws "Sanguine Blade" <t>')
  153. send_command('bind ^numpad2 input /ws "Red Lotus Blade" <t>')
  154. send_command('bind ^numpad3 input /ws "Flat Blade" <t>')
  155.  
  156. select_default_macro_book()
  157. set_lockstyle()
  158.  
  159. state.Auto_Kite = M(false, 'Auto_Kite')
  160. Haste = 0
  161. DW_needed = 0
  162. DW = true
  163. moving = false
  164. update_combat_form()
  165. determine_haste_group()
  166. end
  167.  
  168. -- Called when this job file is unloaded (eg: job change)
  169. function user_unload()
  170. send_command('unbind ^`')
  171. -- send_command('unbind !`')
  172. send_command('unbind ^-')
  173. send_command('unbind ^=')
  174. send_command('unbind !-')
  175. send_command('unbind !=')
  176. send_command('unbind ![')
  177. send_command('unbind !q')
  178. send_command('unbind !w')
  179. send_command('bind !e input /ma "Haste" <stpc>')
  180. send_command('bind !r input /ma "Refresh" <stpc>')
  181. send_command('bind !y input /ma "Phalanx" <me>')
  182. send_command('unbind !o')
  183. send_command('unbind !p')
  184. send_command('unbind @c')
  185. send_command('unbind @w')
  186. send_command('unbind @r')
  187. send_command('unbind ^numpad7')
  188. send_command('unbind ^numpad9')
  189. send_command('unbind ^numpad4')
  190. send_command('unbind ^numpad1')
  191. send_command('unbind ^numpad2')
  192. send_command('unbind ^numpad3')
  193.  
  194. send_command('unbind #`')
  195. send_command('unbind #1')
  196. send_command('unbind #2')
  197. send_command('unbind #3')
  198. send_command('unbind #4')
  199. send_command('unbind #5')
  200. send_command('unbind #6')
  201. send_command('unbind #7')
  202. send_command('unbind #8')
  203. send_command('unbind #9')
  204. send_command('unbind #0')
  205.  
  206. send_command('lua u gearinfo')
  207. end
  208.  
  209. -- Define sets and vars used by this job file.
  210. function init_gear_sets()
  211.  
  212. ------------------------------------------------------------------------------------------------
  213. ---------------------------------------- Precast Sets ------------------------------------------
  214. ------------------------------------------------------------------------------------------------
  215.  
  216. -- Precast sets to enhance JAs
  217. sets.precast.JA['Chainspell'] = {body="Viti. Tabard +3"}
  218. sets.precast.JA['Convert'] = {main="Murgleis"}
  219.  
  220. -- Fast cast sets for spells
  221.  
  222. -- Fast cast sets for spells
  223. sets.precast.FC = {head="Atrophy Chapeau +3",
  224. body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
  225. left_ear="Malignance Earring",
  226. right_ear="Leth. Earring +2",
  227. left_ring="Kishar Ring",
  228. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  229. }--traits 30
  230.  
  231. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  232.  
  233. sets.precast.FC.Cure = set_combine(sets.precast.FC, {
  234.  
  235. })
  236.  
  237. sets.precast.FC.Curaga = sets.precast.FC.Cure
  238. sets.precast.FC['Healing Magic'] = sets.precast.FC.Cure
  239. sets.precast.FC['Elemental Magic'] = sets.precast.FC
  240. sets.precast.FC.Impact = set_combine(sets.precast.FC, {head=empty, body="Crepuscular Cloak"})
  241. sets.precast.Storm = sets.precast.FC
  242. sets.precast.FC.Dispelga = set_combine(sets.precast.FC, {})
  243.  
  244. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {
  245. ammo="Impatiens",
  246. neck="Magoraga Beads",
  247. left_ring="Lebeche Ring",
  248. waist="Witful Belt",
  249. back="Perimede cape",
  250. })
  251.  
  252. sets.precast.RA = {head="Volte Tiara",
  253. hands={ name="Carmine Fin. Ga. +1", augments={'Rng.Atk.+20','"Mag.Atk.Bns."+12','"Store TP"+6',}},
  254. legs="Volte Tights",
  255. feet="Volte Spats",
  256. waist="Yemaya Belt",
  257. left_ring="Crepuscular Ring",
  258. back={ name="Sucellos's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Snapshot"+10',}},
  259. }
  260. ------------------------------------------------------------------------------------------------
  261. ------------------------------------- Weapon Skill Sets ----------------------------------------
  262. ------------------------------------------------------------------------------------------------
  263.  
  264. sets.precast.WS = {
  265. ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  266. head={ name="Nyame Helm", augments={'Path: B',}},
  267. body="Nyame Mail",
  268. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  269. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  270. feet="Leth. Houseaux +3",
  271. neck="Fotia Gorget",
  272. waist="Fotia Belt",
  273. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  274. right_ear="Ishvara Earring",
  275. left_ring="Epaminondas's Ring",
  276. right_ring="Cornelia's Ring",
  277. back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
  278. }
  279.  
  280. sets.precast.WS.Acc = set_combine(sets.precast.WS, {
  281. ear2="Mache Earring +1",
  282. left_ring="Ramuh Ring +1",
  283. right_ring="Chirich Ring +1",})
  284.  
  285.  
  286. sets.precast.WS['Chant du Cygne'] = {ammo="Yetshila +1",
  287. head="Blistering Sallet +1",
  288. body="Malignance Tabard",
  289. hands="Malignance Gloves",
  290. legs="Nyame Flanchard",
  291. feet="Leth. Houseaux +3",
  292. neck="Fotia Gorget",
  293. waist="Fotia Belt",
  294. left_ear="Sherida Earring",
  295. right_ear="Leth. Earring +2",
  296. left_ring="Ilabrat Ring",
  297. right_ring="Cornelia's Ring",
  298. back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
  299. }
  300.  
  301. sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS['Chant du Cygne'], {
  302. right_ring="Chirich Ring +1",})
  303.  
  304. sets.precast.WS['Vorpal Blade'] = sets.precast.WS['Chant du Cygne']
  305. sets.precast.WS['Vorpal Blade'].Acc = sets.precast.WS['Chant du Cygne'].Acc
  306.  
  307.  
  308. sets.precast.WS['Savage Blade'] = {ammo="Coiste Bodhar",
  309. head="Nyame Helm",
  310. body="Nyame Mail",
  311. hands="Nyame Gauntlets",
  312. legs="Nyame Flanchard",
  313. feet="Leth. Houseaux +3",
  314. neck="Rep. Plat. Medal",
  315. waist="Sailfi Belt +1",
  316. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  317. right_ear="Leth. Earring +2",
  318. left_ring="Sroda Ring",
  319. right_ring="Cornelia's Ring",
  320. back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}},
  321. }
  322. sets.precast.WS['Savage Blade'].Acc = set_combine(sets.precast.WS['Savage Blade'], {head="Malignance chapeau",
  323. body="Malignance Tabard",
  324. hands="Malignance gloves",
  325. legs="Malignance Tights",
  326. feet="Malignance Boots",
  327. })
  328.  
  329. sets.precast.WS['Savage Blade'].PDL = set_combine(sets.precast.WS['Savage Blade'], {ammo="Crepuscular Pebble",
  330. })
  331.  
  332. sets.precast.WS['Knights of Round'] = sets.precast.WS['Savage Blade']
  333.  
  334. sets.precast.WS['Knights of Round'].Acc = set_combine(sets.precast.WS['Knights of Round'], {head="Malignance chapeau",
  335. body="Malignance Tabard",
  336. hands="Malignance gloves",
  337. legs="Malignance Tights",
  338. feet="Malignance Boots",
  339. })
  340.  
  341. sets.precast.WS['Knights of Round'].PDL = set_combine(sets.precast.WS['Knights of Round'], {ammo="Crepuscular Pebble",
  342. })
  343.  
  344. sets.precast.WS['Circle Blade'] = set_combine(sets.precast.WS['Savage Blade'], {
  345. ear2="Ishvara earring",
  346. })
  347.  
  348. sets.precast.WS['Death Blossom'] = set_combine(sets.precast.WS['Savage Blade'], {
  349. ear1="Regal Earring",
  350. })
  351. sets.precast.WS['Death Blossom'].Acc = sets.precast.WS['Death Blossom']
  352.  
  353. sets.precast.WS['Requiescat'] = {
  354. ammo="Coiste Bodhar",
  355. head="Nyame Helm",
  356. body="Nyame Mail",
  357. hands="Nyame Gauntlets",
  358. legs="Nyame flanchard",
  359. feet="Nyame Sollerets",
  360. neck="Fotia Gorget",
  361. waist="Fotia Belt",
  362. left_ear="Sherida Earring",
  363. right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250'}},
  364. left_ring="Metamorph ring +1",
  365. right_ring="Cornelia's ring",
  366. back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
  367. }
  368.  
  369. sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS['Requiescat'], {head="Malignance chapeau",
  370. body="Malignance Tabard",
  371. hands="Malignance gloves",
  372. legs="Malignance Tights",
  373. feet="Malignance Boots",
  374. })
  375.  
  376. sets.precast.WS['Burning Blade'] = {
  377. ammo="Sroda Tathlum",
  378. head="Leth. Chappel +3",
  379. body="Nyame Mail",
  380. hands="Nyame Gauntlets",
  381. legs="Nyame Flanchard",
  382. feet="Leth. Houseaux +3",
  383. neck="Sibyl Scarf",
  384. waist="Orpheus's Sash",
  385. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  386. right_ear="Regal Earring",
  387. left_ring="Freke Ring",
  388. right_ring="Cornelia's Ring",
  389. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
  390. }
  391. sets.precast.WS['Red Lotus Blade'] = sets.precast.WS['Burning Blade']
  392.  
  393. sets.precast.WS['Black Halo'] = {ammo="Coiste Bodhar",
  394. head="Nyame Helm",
  395. body="Nyame Mail",
  396. hands="Nyame Gauntlets",
  397. legs="Nyame Flanchard",
  398. feet="Leth. Houseaux +3",
  399. neck="Rep. Plat. Medal",
  400. waist="Sailfi Belt +1",
  401. left_ear="Moonshade Earring",
  402. right_ear="Leth. Earring +2",
  403. left_ring="Metamor. Ring +1",
  404. right_ring="Cornelia's Ring",
  405. back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}}
  406.  
  407. sets.precast.WS['Aeolian Edge'] = {ammo="Sroda Tathlum",
  408. head="Leth. Chappel +3",
  409. body="Lethargy Sayon +3",
  410. hands="Nyame Gauntlets",
  411. legs="Leth. Fuseau +3",
  412. feet="Leth. Houseaux +3",
  413. neck="Sibyl Scarf",
  414. waist="Orpheus's Sash",
  415. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  416. right_ear="Regal Earring",
  417. left_ring="Freke Ring",
  418. right_ring="Cornelia's Ring",
  419. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}}
  420.  
  421. sets.precast.WS['Aeolian Edge'].TH = set_combine(sets.precast.WS['Aeolian Edge'], {body="Volte Jupon",
  422. legs="Volte Hose",
  423. waist="Chaac Belt",})
  424.  
  425.  
  426.  
  427. sets.precast.WS['Seraph Blade'] = {
  428. ammo="Sroda Tathlum",
  429. head="Leth. Chappel +3",
  430. body="Lethargy Sayon +3",
  431. hands="Nyame Gauntlets",
  432. legs="Nyame Flanchard",
  433. feet="Leth. Houseaux +3",
  434. neck="Baetyl Pendant",
  435. waist="Orpheus's Sash",
  436. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  437. right_ear="Regal Earring",
  438. left_ring="Metamor. Ring +1",
  439. right_ring="Cornelia's Ring",
  440. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%','Spell interruption rate down-10%',}}
  441. }
  442. sets.precast.WS['Seraph Blade'].Acc = {}
  443.  
  444. sets.precast.WS['Sanguine Blade'] = set_combine(sets.precast.WS['Seraph Blade'], {
  445. head="Pixie Hairpin +1",
  446. left_ear="Malignance earring",
  447. left_ring="Archon Ring",
  448. })
  449.  
  450. sets.precast.WS['Black Halo'] = set_combine(sets.precast.WS['Savage Blade'], {})
  451.  
  452. sets.precast.WS['Empyreal Arrow'] = {head={ name="Nyame Helm", augments={'Path: B',}},
  453. body="Nyame Mail",
  454. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  455. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  456. feet="Leth. Houseaux +3",
  457. neck="Combatant's Torque",
  458. waist="Yemaya Belt",
  459. left_ear="Crep. Earring",
  460. right_ear="Telos Earring",
  461. left_ring="Epaminondas's Ring",
  462. right_ring="Hajduk Ring +1",
  463. back={ name="Sucellos's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%','Mag. Evasion+15',}},
  464. }
  465.  
  466. sets.precast.WS['Flaming Arrow'] = {ammo="Demon Arrow",
  467. head="Nyame Helm",
  468. body="Nyame Mail",
  469. hands="Nyame Gauntlets",
  470. legs="Nyame Flanchard",
  471. feet="Leth. Houseaux +3",
  472. neck="Sanctity Necklace",
  473. waist="Skrymir Cord +1",
  474. left_ear="Telos Earring",
  475. right_ear="Malignance Earring",
  476. left_ring="Freke Ring",
  477. right_ring="Epaminondas's Ring",
  478. back={ name="Sucellos's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','AGI+10','Weapon skill damage +10%','Mag. Evasion+15',}},
  479. }
  480.  
  481. sets.precast.WS['Evisceration'] = sets.precast.WS['Chant du Cygne']
  482.  
  483. sets.precast.WS['Asuran Fists'] = {ammo="Aurgelmir Orb +1",
  484. head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
  485. body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
  486. hands="Atrophy Gloves +3",
  487. legs={ name="Viti. Tights +3", augments={'Enspell Damage','Accuracy',}},
  488. feet="Atro. Boots +3",
  489. neck="Combatant's Torque",
  490. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  491. left_ear="Mache Earring +1",
  492. right_ear="Mache Earring +1",
  493. left_ring="Chirich Ring +1",
  494. right_ring="Rufescent Ring",
  495. back={ name="Sucellos's Cape", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%',}},
  496. }
  497.  
  498. sets.precast.WS['Flash Nova'] = sets.precast.WS['Seraph Blade']
  499.  
  500. sets.precast.WS['Mercy Stroke'] = set_combine(sets.precast.WS['Savage Blade'], {left_ear="Sherida Earring",
  501. left_ring="Chirich Ring +1",})
  502.  
  503.  
  504. sets.precast.WS['Mercy Stroke'].PDL = set_combine(sets.precast.WS['Mercy Stroke'], {ammo="Crepuscular Pebble",
  505. })
  506.  
  507.  
  508. sets.precast.WS['Earth Crusher'] = {ammo="Sroda Tathlum",
  509. head={ name="Nyame Helm", augments={'Path: B',}},
  510. body="Nyame Mail",
  511. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  512. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  513. feet="Leth. Houseaux +3",
  514. neck="Quanpur Necklace",
  515. waist="Orpheus's Sash",
  516. left_ear="Regal Earring",
  517. right_ear="Malignance Earring",
  518. left_ring="Epaminondas's Ring",
  519. right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  520. back={ name="Sucellos's Cape", augments={'STR+20','Mag. Acc+20 /Mag. Dmg.+20','STR+10','Weapon skill damage +10%',}},
  521. }
  522. ------------------------------------------------------------------------------------------------
  523. ---------------------------------------- Midcast Sets ------------------------------------------
  524. ------------------------------------------------------------------------------------------------
  525.  
  526. sets.midcast.FastRecast = sets.precast.FC
  527.  
  528. sets.midcast.SpellInterrupt = {
  529. ammo="Impatiens", --10
  530. legs="Carmine Cuisses +1", --20
  531. left_ring="Evanescence Ring", --5
  532. waist="Rumination Sash", --10
  533. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%','Spell interruption rate down-10%',}}, --10
  534. }
  535.  
  536. sets.midcast.Cure = {
  537. ammo="Regal Gem",
  538. head={ name="Kaykaus Mitra +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
  539. body="Bunzi's Robe",
  540. hands={ name="Kaykaus Cuffs +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  541. legs={ name="Kaykaus Tights +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  542. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  543. neck={ name="Loricate Torque +1", augments={'Path: A',}},
  544. waist="Luminary Sash",
  545. left_ear="Roundel Earring",
  546. right_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
  547. left_ring="Defending Ring",
  548. right_ring="Stikini Ring +1",
  549. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  550. }
  551.  
  552. sets.midcast.CureWeather = set_combine(sets.midcast.Cure, {
  553. main="Chatoyant Staff",
  554. sub="Enki Strap",
  555. waist="Hachirin-no-Obi",
  556. })
  557.  
  558. sets.midcast.CureSelf = set_combine(sets.midcast.Cure, {})
  559.  
  560. sets.midcast.Curaga = sets.midcast.Cure
  561.  
  562. sets.midcast.StatusRemoval = sets.precast.FC
  563.  
  564. sets.midcast.Cursna = {
  565. ammo="Sapience Orb",
  566. head={ name="Kaykaus Mitra +1", augments={'MP+80','"Cure" spellcasting time -7%','Enmity-6',}},
  567. body={ name="Viti. Tabard +3", augments={'Enhances "Chainspell" effect',}},
  568. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  569. legs="Atrophy Tights +3",
  570. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  571. neck="Incanter's Torque",
  572. waist="Embla sash",
  573. left_ear="Meili earring",
  574. right_ear="Beatific Earring",
  575. left_ring="Menelaus's Ring",
  576. right_ring="Haoma's Ring",
  577. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  578. }
  579.  
  580. sets.midcast['Enhancing Magic'] = {main="Pukulatmuj +1",
  581. sub="Forfend +1",
  582. ammo="Staunch Tathlum +1",
  583. head="Befouled Crown",
  584. body="Viti. Tabard +3",
  585. hands="Viti. Gloves +3",
  586. legs="Atrophy Tights +3",
  587. feet="Leth. Houseaux +3",
  588. neck="Incanter's Torque",
  589. waist="Olympus Sash",
  590. left_ear="Mimir Earring",
  591. right_ear="Andoaa Earring",
  592. left_ring="Stikini Ring +1",
  593. right_ring="Stikini Ring +1",
  594. back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +9','Enha.mag. skill +10','Enh. Mag. eff. dur. +20',}}
  595. }
  596.  
  597. sets.midcast.EnhancingDuration = {
  598. main="Colada",
  599. sub="Ammurapi Shield",
  600. ammo="Staunch Tathlum +1",
  601. head="Telchine Cap",
  602. body="Viti. Tabard +3",
  603. hands="Atrophy Gloves +3",
  604. legs="Telchine Braconi",
  605. feet="Leth. Houseaux +3",
  606. neck="Dls. Torque +2",
  607. waist="Embla Sash",
  608. left_ear="Mimir Earring",
  609. right_ear="Leth. Earring +2",
  610. left_ring="Stikini Ring +1",
  611. right_ring="Stikini Ring +1",
  612. back="Ghostfyre Cape"
  613. }
  614.  
  615. sets.midcast.EnhancingSkill = sets.midcast['Enhancing Magic']
  616.  
  617. sets.midcast.EnhancingSkillDW = {
  618. ammo="Staunch Tathlum +1",
  619. head="Telchine Cap",
  620. body="Viti. Tabard +3",
  621. hands="Atrophy Gloves +3",
  622. legs="Atrophy Tights +3",
  623. feet="Leth. Houseaux +3",
  624. neck="Dls. Torque +2",
  625. waist="Embla Sash",
  626. left_ear="Mimir Earring",
  627. right_ear="Leth. Earring +2",
  628. left_ring="Stikini Ring +1",
  629. right_ring="Gelatinous Ring +1",
  630. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  631. }
  632.  
  633. sets.midcast.GainSpell = sets.midcast['Enhancing Magic']
  634.  
  635.  
  636. sets.midcast.Regen = set_combine(sets.midcast.EnhancingDuration, {
  637. sub="Ammurapi Shield",
  638. feet="Bunzi's Sabots"
  639. })
  640.  
  641. sets.midcast['Regen II'] = sets.midcast.Regen
  642.  
  643. sets.midcast.Refresh = set_combine(sets.midcast.EnhancingDuration, {
  644. head="Amalric Coif +1",
  645. body="Atrophy Tabard +3",
  646. legs="Leth. Fuseau +3",
  647. waist="Embla sash",
  648. })
  649.  
  650. sets.midcast.RefreshSelf = {
  651. waist="Gishdubar Sash",
  652. }
  653.  
  654. sets.midcast.Stoneskin = set_combine(sets.midcast.EnhancingDuration, {
  655. head="Umuthi hat",
  656. neck="Nodens Gorget",
  657. waist="Siegel Sash",
  658. legs="Shedir seraweels",
  659. })
  660.  
  661. sets.midcast['Phalanx'] = {main="Sakpata's Sword",
  662. sub="Ammurapi Shield",
  663. ammo="Staunch Tathlum +1",
  664. head={ name="Taeon Chapeau", augments={'"Snapshot"+5','Phalanx +3',}},
  665. body={ name="Taeon Tabard", augments={'Pet: Accuracy+17 Pet: Rng. Acc.+17','Spell interruption rate down -9%','Phalanx +3',}},
  666. hands={ name="Taeon Gloves", augments={'Pet: Accuracy+21 Pet: Rng. Acc.+21','Spell interruption rate down -6%','Phalanx +3',}},
  667. legs={ name="Taeon Tights", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','Phalanx +3',}},
  668. feet={ name="Taeon Boots", augments={'Pet: Accuracy+24 Pet: Rng. Acc.+24','Pet: Crit.hit rate +4','Phalanx +3',}},
  669. neck="Incanter's Torque",
  670. waist="Embla Sash",
  671. left_ear="Mimir Earring",
  672. right_ear="Leth. Earring +2",
  673. left_ring="Stikini Ring +1",
  674. right_ring="Stikini Ring +1",
  675. back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +9','Enha.mag. skill +10','Enh. Mag. eff. dur. +20',}}}
  676.  
  677. sets.midcast['Phalanx II'] = {main="Sakpata's Sword",
  678. sub="Ammurapi Shield",
  679. ammo="Staunch Tathlum +1",
  680. head={ name="Taeon Chapeau", augments={'"Snapshot"+5','Phalanx +3',}},
  681. body={ name="Taeon Tabard", augments={'Pet: Accuracy+17 Pet: Rng. Acc.+17','Spell interruption rate down -9%','Phalanx +3',}},
  682. hands={ name="Taeon Gloves", augments={'Pet: Accuracy+21 Pet: Rng. Acc.+21','Spell interruption rate down -6%','Phalanx +3',}},
  683. legs={ name="Taeon Tights", augments={'Accuracy+19 Attack+19','"Triple Atk."+2','Phalanx +3',}},
  684. feet={ name="Taeon Boots", augments={'Pet: Accuracy+24 Pet: Rng. Acc.+24','Pet: Crit.hit rate +4','Phalanx +3',}},
  685. neck="Incanter's Torque",
  686. waist="Embla Sash",
  687. left_ear="Mimir Earring",
  688. right_ear="Leth. Earring +2",
  689. left_ring="Stikini Ring +1",
  690. right_ring="Stikini Ring +1",
  691. back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +9','Enha.mag. skill +10','Enh. Mag. eff. dur. +20',}}}
  692.  
  693. sets.midcast.Aquaveil = set_combine(sets.midcast.EnhancingDuration, {
  694. head="Amalric Coif +1",
  695. hands="Regal Cuffs",
  696. legs="Shedir seraweels",
  697. waist="Emphatikos Rope",
  698. })
  699.  
  700. sets.midcast.Storm = sets.midcast.EnhancingDuration
  701.  
  702. sets.midcast.Protect = sets.midcast.EnhancingDuration
  703. sets.midcast.Protectra = sets.midcast.Protect
  704. sets.midcast.Shell = sets.midcast.Protect
  705. sets.midcast.Shellra = sets.midcast.Shell
  706. sets.midcast.Barstatus = set_combine(sets.midcast['Enhancing Magic'],{neck="Sroda Necklace", legs="Shedir seraweels"})
  707.  
  708. sets.midcast.Barfire = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  709. sets.midcast.Barblizzard = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  710. sets.midcast.Baraero = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  711. sets.midcast.Barstone = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  712. sets.midcast.Barthunder = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  713. sets.midcast.Barwater = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  714. sets.midcast.Barsleep = sets.midcast.Barstatus
  715. sets.midcast.Barpoison = sets.midcast.Barstatus
  716. sets.midcast.Barparalyze = sets.midcast.Barstatus
  717. sets.midcast.Barblind = sets.midcast.Barstatus
  718. sets.midcast.Barsilence = sets.midcast.Barstatus
  719. sets.midcast.Barpetrify = sets.midcast.Barstatus
  720. sets.midcast.Barvirus = sets.midcast.Barstatus
  721. sets.midcast.Baramnesia = sets.midcast.Barstatus
  722. sets.midcast.Barfira = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  723. sets.midcast.Barblizzara = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  724. sets.midcast.Baraera = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  725. sets.midcast.Barstonra = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  726. sets.midcast.Barthundra = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  727. sets.midcast.Barwatera = set_combine(sets.midcast['Enhancing Magic'],{legs="Shedir seraweels"})
  728. sets.midcast.Barsleepra = sets.midcast.Barstatus
  729. sets.midcast.Barpoisonra = sets.midcast.Barstatus
  730. sets.midcast.Barparalyzra = sets.midcast.Barstatus
  731. sets.midcast.Barblindra = sets.midcast.Barstatus
  732. sets.midcast.Barsilencera = sets.midcast.Barstatus
  733. sets.midcast.Barpetra = sets.midcast.Barstatus
  734. sets.midcast.Barvira = sets.midcast.Barstatus
  735. sets.midcast.Haste = sets.midcast.EnhancingDuration
  736. sets.midcast['Haste II'] = sets.midcast.EnhancingDuration
  737. -- Custom spell classes
  738. sets.midcast.MndEnfeebles = {
  739. ammo="Regal Gem",
  740. head="Viti. Chapeau +3",
  741. body="Lethargy Sayon +3",
  742. hands="Leth. Ganth. +3",
  743. legs="Leth. Fuseau +3",
  744. feet="Vitiation Boots +3",
  745. neck="Dls. Torque +2",
  746. waist="Obstin. Sash",
  747. left_ear="Snotra Earring",
  748. right_ear="Regal Earring",
  749. left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  750. right_ring="Stikini Ring +1",
  751. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  752. }
  753.  
  754. sets.midcast.MndEnfeeblesAcc = set_combine(sets.midcast.MndEnfeebles, {
  755. head="Atrophy Chapeau +3",
  756. body="Atrophy Tabard +3",
  757. left_ring="Stikini Ring +1",
  758. })
  759. sets.midcast.Silence = {
  760. ammo="Regal Gem",
  761. head="Viti. Chapeau +3",
  762. body="Atrophy Tabard +3",
  763. hands="Leth. Ganth. +3",
  764. legs="Leth. Fuseau +3",
  765. feet="Vitiation Boots +3",
  766. neck="Dls. Torque +2",
  767. waist="Obstin. Sash",
  768. left_ear="Snotra Earring",
  769. right_ear="Regal Earring",
  770. left_ring="Kishar Ring",
  771. right_ring="Stikini Ring +1",
  772. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  773. }
  774.  
  775. sets.midcast.IntEnfeebles = set_combine(sets.midcast.MndEnfeebles, {
  776. -- main="Malevolence",
  777. -- sub="Ammurapi Shield",
  778. -- left_ring="Stikini Ring +1",
  779. })
  780.  
  781. sets.midcast.IntEnfeeblesAcc = set_combine(sets.midcast.IntEnfeebles, {
  782. body="Atrophy Tabard +3",
  783. })
  784.  
  785. sets.midcast.SkillEnfeebles = {
  786. ammo="Regal Gem",
  787. head="Viti. Chapeau +3",
  788. body="Lethargy Sayon +3",
  789. hands="Leth. Ganth. +3",
  790. legs="Leth. Fuseau +3",
  791. feet="Vitiation Boots +3",
  792. neck="Dls. Torque +2",
  793. waist="Obstin. Sash",
  794. left_ear="Snotra Earring",
  795. right_ear="Regal Earring",
  796. left_ring="Stikini Ring +1",
  797. right_ring="Stikini Ring +1",
  798. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  799. }
  800.  
  801. sets.midcast.EffectEnfeebles = {
  802. ammo="Regal Gem",
  803. neck="Dls. Torque +2",
  804. body="Lethargy Sayon +3",
  805. feet="Vitiation Boots +3",
  806. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  807. }
  808.  
  809. sets.midcast.ElementalEnfeeble = sets.midcast.IntEnfeebles
  810.  
  811. sets.midcast.Sleep = { main="Crocea Mors",
  812. sub="Ammurapi Shield",
  813. ammo="Regal Gem",
  814. head="Viti. Chapeau +3",
  815. body="Lethargy Sayon +3",
  816. hands="Leth. Ganth. +3",
  817. legs="Leth. Fuseau +3",
  818. feet="Vitiation Boots +3",
  819. neck="Null Loop",
  820. waist="Obstin. Sash",
  821. left_ear="Snotra Earring",
  822. right_ear="Regal Earring",
  823. left_ring="Kishar Ring",
  824. right_ring="Metamor. Ring +1",
  825. back="Aurist's Cape +1"}
  826. sets.midcast.Sleep.Enmity = set_combine(sets.midcast.Sleep, {ammo="Sapience Orb",
  827. head="Rabid Visor",
  828. body="Emet Harness +1",
  829. hands="Malignance Gloves",
  830. legs="Malignance Tights",
  831. feet="Malignance Boots",
  832. neck="Unmoving Collar +1",
  833. waist="Goading Belt",
  834. left_ear="Trux Earring",
  835. right_ear="Cryptic Earring",
  836. left_ring="Eihwaz Ring",
  837. right_ring="Supershear Ring",
  838. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}})
  839.  
  840. sets.midcast['Sleep II'] = sets.midcast['Sleep']
  841.  
  842. sets.midcast['Sleep II'].Resistant = {
  843. ammo="Regal Gem",
  844. head="Leth. Chappel +3",
  845. body="Lethargy Sayon +3",
  846. hands="Leth. Ganth. +3",
  847. legs="Leth. Fuseau +3",
  848. feet="Leth. Houseaux +3",
  849. neck="Null Loop",
  850. waist={ name="Obstin. Sash", augments={'Path: A',}},
  851. left_ear="Snotra Earring",
  852. right_ear="Regal Earring",
  853. left_ring="Kishar Ring",
  854. right_ring="Stikini Ring +1",
  855. back={ name="Aurist's Cape +1", augments={'Path: A',}}}
  856. sets.midcast['Sleep II'].Enmity = set_combine(sets.midcast['Sleep II'], {ammo="Sapience Orb",
  857. head="Rabid Visor",
  858. body="Emet Harness +1",
  859. hands="Malignance Gloves",
  860. legs="Malignance Tights",
  861. feet="Malignance Boots",
  862. neck="Unmoving Collar +1",
  863. waist="Goading Belt",
  864. left_ear="Trux Earring",
  865. right_ear="Cryptic Earring",
  866. left_ring="Eihwaz Ring",
  867. right_ring="Supershear Ring",
  868. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}})
  869.  
  870.  
  871. sets.midcast['Sleepga'] = sets.midcast['Sleep']
  872.  
  873. sets.midcast.Distract = {main={ name="Crocea Mors", augments={'Path: C',}},
  874. sub="Ammurapi Shield",
  875. ammo="Regal Gem",
  876. head={ name="Viti. Chapeau +3", augments={'Enfeebling Magic duration','Magic Accuracy',}},
  877. body="Lethargy Sayon +3",
  878. hands="Leth. Ganth. +3",
  879. legs="Leth. Fuseau +3",
  880. feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
  881. neck={ name="Dls. Torque +2", augments={'Path: A',}},
  882. waist={ name="Obstin. Sash", augments={'Path: A',}},
  883. left_ear="Snotra Earring",
  884. right_ear="Regal Earring",
  885. left_ring="Kishar Ring",
  886. right_ring="Stikini Ring +1",
  887. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  888.  
  889. sets.midcast.Distract.Resistant = set_combine(sets.midcast.Distract, {body="Atrophy Tabard +3",
  890. neck="Null Loop",
  891. right_ear="Leth. Earring +2"})
  892.  
  893. sets.midcast["Distract II"] = sets.midcast.Distract
  894. sets.midcast["Distract III"] = sets.midcast.Distract
  895.  
  896. sets.midcast["Distract II"].Resistant = sets.midcast.Distract.Resistant
  897. sets.midcast["Distract III"].Resistant = sets.midcast.Distract.Resistant
  898.  
  899. sets.midcast['Dia III'] = {
  900. --main="Daybreak",
  901. --sub="Ammurapi Shield",
  902. ammo="Regal Gem",
  903. head="Leth. Chappel +3",
  904. body="Lethargy Sayon +3",
  905. hands="Leth. Ganth. +3",
  906. legs="Leth. Fuseau +3",
  907. feet={ name="Vitiation Boots +3", augments={'Immunobreak Chance',}},
  908. neck={ name="Dls. Torque +2", augments={'Path: A',}},
  909. waist={ name="Obstin. Sash", augments={'Path: A',}},
  910. left_ear="Snotra Earring",
  911. right_ear="Malignance Earring",
  912. left_ring="Kishar Ring",
  913. right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  914. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  915. }
  916. sets.midcast['Diaga'] = sets.midcast['Dia III']
  917.  
  918. sets.midcast['Paralyze II'] = {
  919. main="Daybreak",
  920. sub="Ammurapi Shield",
  921. ammo="Regal Gem",
  922. head="Viti. Chapeau +3",
  923. body="Lethargy Sayon +3",
  924. hands="Leth. Ganth. +3",
  925. legs="Leth. Fuseau +3",
  926. feet="Vitiation Boots +3",
  927. neck="Dls. Torque +2",
  928. waist="Obstin. Sash",
  929. left_ear="Snotra Earring",
  930. right_ear="Regal Earring",
  931. left_ring="Kishar Ring",
  932. right_ring="Stikini Ring +1",
  933. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  934. sets.midcast['Paralyze II'].Enmity = set_combine(sets.midcast['Paralyze II'], {ammo="Sapience Orb",
  935. head="Rabid Visor",
  936. body="Emet Harness +1",
  937. hands="Malignance Gloves",
  938. legs="Malignance Tights",
  939. feet="Malignance Boots",
  940. neck="Unmoving Collar +1",
  941. waist="Goading Belt",
  942. left_ear="Trux Earring",
  943. right_ear="Cryptic Earring",
  944. left_ring="Eihwaz Ring",
  945. right_ring="Supershear Ring",
  946. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}})
  947.  
  948. sets.midcast['Slow II'] = {
  949. main="Daybreak",
  950. sub="Ammurapi Shield",
  951. ammo="Regal Gem",
  952. head="Viti. Chapeau +3",
  953. body="Lethargy Sayon +3",
  954. hands="Leth. Ganth. +3",
  955. legs="Leth. Fuseau +3",
  956. feet="Vitiation Boots +3",
  957. neck="Dls. Torque +2",
  958. waist="Obstin. Sash",
  959. left_ear="Snotra Earring",
  960. right_ear="Regal Earring",
  961. left_ring="Kishar Ring",
  962. right_ring="Stikini Ring +1",
  963. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  964. sets.midcast['Slow II'].Enmity = set_combine(sets.midcast['Slow II'], {ammo="Sapience Orb",
  965. head="Rabid Visor",
  966. body="Emet Harness +1",
  967. hands="Malignance Gloves",
  968. legs="Malignance Tights",
  969. feet="Malignance Boots",
  970. neck="Unmoving Collar +1",
  971. waist="Goading Belt",
  972. left_ear="Trux Earring",
  973. right_ear="Cryptic Earring",
  974. left_ring="Eihwaz Ring",
  975. right_ring="Supershear Ring",
  976. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}})
  977.  
  978. sets.midcast['Addle II'] = {
  979. main="Daybreak",
  980. sub="Ammurapi Shield",
  981. ammo="Regal Gem",
  982. head="Viti. Chapeau +3",
  983. body="Lethargy Sayon +3",
  984. hands="Leth. Ganth. +3",
  985. legs="Leth. Fuseau +3",
  986. feet="Vitiation Boots +3",
  987. neck="Dls. Torque +2",
  988. waist="Obstin. Sash",
  989. left_ear="Snotra Earring",
  990. right_ear="Regal Earring",
  991. left_ring="Kishar Ring",
  992. right_ring="Stikini Ring +1",
  993. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  994. }
  995.  
  996. sets.midcast['Inundation'] = sets.midcast['Dia III']
  997.  
  998. sets.midcast['Poison II'] = {
  999. main="Crocea Mors",
  1000. sub="Ammurapi Shield",
  1001. ammo="Regal Gem",
  1002. head="Viti. Chapeau +3",
  1003. body="Lethargy Sayon +3",
  1004. hands="Leth. Ganth. +3",
  1005. legs="Leth. Fuseau +3",
  1006. feet="Vitiation Boots +3",
  1007. neck="Dls. Torque +2",
  1008. waist="Obstin. Sash",
  1009. left_ear="Snotra Earring",
  1010. right_ear="Leth. Earring +2",
  1011. left_ring="Kishar Ring",
  1012. right_ring="Stikini Ring +1",
  1013. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}
  1014. }
  1015.  
  1016. sets.midcast.Blind = sets.midcast.Sleep
  1017. sets.midcast.Blind.Enmity = {ammo="Sapience Orb",
  1018. head="Rabid Visor",
  1019. body="Emet Harness +1",
  1020. hands="Malignance Gloves",
  1021. legs="Malignance Tights",
  1022. feet="Malignance Boots",
  1023. neck="Unmoving Collar +1",
  1024. waist="Goading Belt",
  1025. left_ear="Trux Earring",
  1026. right_ear="Cryptic Earring",
  1027. left_ring="Eihwaz Ring",
  1028. right_ring="Supershear Ring",
  1029. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}}
  1030. sets.midcast.Break = sets.midcast.Sleep
  1031. sets.midcast.Break.Enmity = {ammo="Sapience Orb",
  1032. head="Rabid Visor",
  1033. body="Emet Harness +1",
  1034. hands="Malignance Gloves",
  1035. legs="Malignance Tights",
  1036. feet="Malignance Boots",
  1037. neck="Unmoving Collar +1",
  1038. waist="Goading Belt",
  1039. left_ear="Trux Earring",
  1040. right_ear="Cryptic Earring",
  1041. left_ring="Eihwaz Ring",
  1042. right_ring="Supershear Ring",
  1043. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}}
  1044. sets.midcast.Bind = sets.midcast.Sleep
  1045. sets.midcast.Bind.Enmity = {ammo="Sapience Orb",
  1046. head="Rabid Visor",
  1047. body="Emet Harness +1",
  1048. hands="Malignance Gloves",
  1049. legs="Malignance Tights",
  1050. feet="Malignance Boots",
  1051. neck="Unmoving Collar +1",
  1052. waist="Goading Belt",
  1053. left_ear="Trux Earring",
  1054. right_ear="Cryptic Earring",
  1055. left_ring="Eihwaz Ring",
  1056. right_ring="Supershear Ring",
  1057. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}}
  1058. sets.midcast.Dispel = sets.midcast.Sleep
  1059. sets.midcast.Dispel.Enmity = {ammo="Sapience Orb",
  1060. head="Rabid Visor",
  1061. body="Emet Harness +1",
  1062. hands="Malignance Gloves",
  1063. legs="Malignance Tights",
  1064. feet="Malignance Boots",
  1065. neck="Unmoving Collar +1",
  1066. waist="Goading Belt",
  1067. left_ear="Trux Earring",
  1068. right_ear="Cryptic Earring",
  1069. left_ring="Eihwaz Ring",
  1070. right_ring="Supershear Ring",
  1071. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}}
  1072. sets.midcast.Gravity = {
  1073. main={ name="Crocea Mors", augments={'Path: C',}},
  1074. sub="Ammurapi Shield",
  1075. ammo="Regal Gem",
  1076. head="Viti. Chapeau +3",
  1077. body="Lethargy Sayon +3",
  1078. hands="Leth. Ganth. +3",
  1079. legs="Leth. Fuseau +3",
  1080. feet="Vitiation Boots +3",
  1081. neck="Dls. Torque +2",
  1082. waist="Obstin. Sash",
  1083. left_ear="Snotra Earring",
  1084. right_ear="Malignance Earring",
  1085. left_ring="Kishar Ring",
  1086. right_ring="Stikini Ring +1",
  1087. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  1088. sets.midcast.Gravity.Enmity = set_combine(sets.midcast.Gravity, {ammo="Sapience Orb",
  1089. head="Rabid Visor",
  1090. body="Emet Harness +1",
  1091. hands="Malignance Gloves",
  1092. legs="Malignance Tights",
  1093. feet="Malignance Boots",
  1094. neck="Unmoving Collar +1",
  1095. waist="Goading Belt",
  1096. left_ear="Trux Earring",
  1097. right_ear="Cryptic Earring",
  1098. left_ring="Eihwaz Ring",
  1099. right_ring="Supershear Ring",
  1100. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}})
  1101. sets.midcast['Gravity II'] = sets.midcast.Gravity
  1102. sets.midcast['Gravity II'].Enmity = sets.midcast.Gravity.Enmity
  1103.  
  1104. sets.midcast['Frazzle III'] = {
  1105. main="Crocea Mors",
  1106. sub="Ammurapi Shield",
  1107. ammo="Regal Gem",
  1108. head="Viti. Chapeau +3",
  1109. body="Lethargy Sayon +3",
  1110. hands="Leth. Ganth. +3",
  1111. legs="Leth. Fuseau +3",
  1112. feet="Vitiation Boots +3",
  1113. neck="Dls. Torque +2",
  1114. waist="Obstin. Sash",
  1115. left_ear="Snotra Earring",
  1116. right_ear="Malignance Earring",
  1117. left_ring="Stikini Ring +1",
  1118. right_ring="Stikini Ring +1",
  1119. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10','Phys. dmg. taken-10%',}},
  1120. }
  1121. sets.midcast['Frazzle III'].Resistant = set_combine(sets.midcast['Frazzle III'], {neck="Null Loop"})
  1122. sets.midcast['Bio III'] = {main="Crocea Mors",
  1123. sub="Ammurapi Shield",
  1124. ammo="Ghastly Tathlum +1",
  1125. head="Pixie Hairpin +1",
  1126. body="Lethargy Sayon +3",
  1127. hands="Leth. Ganth. +3",
  1128. legs="Leth. Fuseau +3",
  1129. feet="Vitiation Boots +3",
  1130. neck="Incanter's Torque",
  1131. waist="Acuity Belt +1",
  1132. left_ear="Malignance Earring",
  1133. right_ear="Regal Earring",
  1134. left_ring="Evanescence Ring",
  1135. right_ring="Stikini Ring +1",
  1136. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Spell interruption rate down-10%',}}
  1137. }
  1138.  
  1139. sets.midcast['Dark Magic'] = {main="Crocea Mors",
  1140. sub="Ammurapi Shield",
  1141. ammo="Ghastly Tathlum +1",
  1142. head="Pixie Hairpin +1",
  1143. body="Lethargy Sayon +3",
  1144. hands="Leth. Ganth. +3",
  1145. legs="Leth. Fuseau +3",
  1146. feet="Vitiation Boots +3",
  1147. neck="Incanter's Torque",
  1148. waist="Acuity Belt +1",
  1149. left_ear="Malignance Earring",
  1150. right_ear="Regal Earring",
  1151. left_ring="Evanescence Ring",
  1152. right_ring="Stikini Ring +1",
  1153. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Spell interruption rate down-10%',}}
  1154. }
  1155.  
  1156. sets.midcast.Drain = set_combine(sets.midcast['Dark Magic'], {
  1157. head="Pixie Hairpin +1",
  1158. right_ring="Archon Ring",
  1159. -- hands="Amalric Gages",
  1160. waist="Fucho-no-obi",
  1161. })
  1162.  
  1163. sets.midcast.Aspir = sets.midcast.Drain
  1164. sets.midcast.Stun = sets.midcast.Sleep
  1165.  
  1166. sets.midcast['Elemental Magic'] = {main="Bunzi's Rod",
  1167. sub="Ammurapi Shield",
  1168. ammo="Ghastly Tathlum +1",
  1169. head="Leth. Chappel +3",
  1170. body="Lethargy Sayon +3",
  1171. hands="Leth. Ganth. +3",
  1172. legs="Leth. Fuseau +3",
  1173. feet="Leth. Houseaux +3",
  1174. neck="Baetyl Pendant",
  1175. waist="Acuity Belt +1",
  1176. left_ear="Malignance Earring",
  1177. right_ear="Regal Earring",
  1178. left_ring="Freke Ring",
  1179. right_ring="Metamor. Ring +1",
  1180. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Spell interruption rate down-10%',}}
  1181. }
  1182.  
  1183. sets.midcast['Elemental Magic'].Resistant = set_combine(sets.midcast['Elemental Magic'], {
  1184. ammo="Ghastly Tathlum +1",})
  1185.  
  1186. sets.midcast['Elemental Magic'].Seidr = set_combine(sets.midcast['Elemental Magic'], {
  1187. body="Seidr Cotehardie",})
  1188.  
  1189.  
  1190. sets.midcast.Impact = {
  1191. main="Bunzi's Rod",
  1192. sub="Ammurapi Shield",
  1193. ammo="Regal Gem",
  1194. head=empty,
  1195. body="Crepuscular Cloak",
  1196. hands="Atrophy Gloves +3",
  1197. legs="Atrophy Tights +3",
  1198. feet="Atro. Boots +3",
  1199. neck="Dls. Torque +2",
  1200. waist="Luminary Sash",
  1201. left_ear="Snotra Earring",
  1202. right_ear="Regal Earring",
  1203. left_ring="Stikini Ring +1",
  1204. right_ring="Stikini Ring +1",
  1205. back={ name="Sucellos's Cape", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Fast Cast"+10',}},
  1206. }
  1207. sets.midcast.Dispelga = set_combine(sets.midcast.Sleep, {main="Daybreak"})
  1208.  
  1209. sets.midcast.Utsusemi = sets.midcast.SpellInterrupt
  1210.  
  1211. -- Initializes trusts at iLvl 119
  1212. sets.midcast.Trust = sets.precast.FC
  1213.  
  1214. -- Job-specific buff sets
  1215. sets.buff.ComposureOther = {
  1216. ammo="Staunch Tathlum +1",
  1217. head="Leth. Chappel +3",
  1218. body="Viti. Tabard +3",
  1219. hands="Atrophy Gloves +3",
  1220. legs="Leth. Fuseau +3",
  1221. feet="Leth. Houseaux +3",
  1222. neck="Dls. Torque +2",
  1223. waist="Embla sash",
  1224. left_ear="Eabani Earring",
  1225. right_ear="Leth. Earring +2",
  1226. left_ring={name="Stikini Ring +1", bag="wardrobe3"},
  1227. right_ring={name="Stikini Ring +1", bag="wardrobe4"},
  1228. back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +9','Enha.mag. skill +10','Enh. Mag. eff. dur. +20',}}
  1229. }
  1230.  
  1231. sets.buff.Saboteur = {hands="Leth. Ganth. +3"}
  1232.  
  1233. sets.midcast.RA = {head="Malignance Chapeau",
  1234. body="Malignance Tabard",
  1235. --hands="Raetic Bangles +1",
  1236. hands="Malignance Gloves",
  1237. legs="Malignance Tights",
  1238. feet="Malignance Boots",
  1239. neck="Combatant's Torque",
  1240. waist="Yemaya Belt",
  1241. left_ear="Crep. Earring",
  1242. right_ear="Telos Earring",
  1243. left_ring="Crepuscular ring",
  1244. right_ring="Hajduk Ring +1",
  1245. back={ name="Sucellos's Cape", augments={'AGI+20','Rng.Acc.+20 Rng.Atk.+20','Rng.Acc.+10','"Snapshot"+10',}},
  1246. }
  1247.  
  1248. sets.midcast.Enmity = {
  1249. ammo="Sapience Orb",
  1250. head="Rabid Visor",
  1251. body="Emet Harness +1",
  1252. hands="Malignance Gloves",
  1253. legs="Malignance Tights",
  1254. feet="Malignance Boots",
  1255. neck={ name="Unmoving Collar +1", augments={'Path: A',}},
  1256. waist="Goading Belt",
  1257. left_ear="Trux Earring",
  1258. right_ear="Cryptic Earring",
  1259. left_ring="Eihwaz Ring",
  1260. right_ring="Supershear Ring",
  1261. back={ name="Sucellos's Cape", augments={'VIT+20','Mag. Acc+20 /Mag. Dmg.+20','VIT+10','Enmity+10','Spell interruption rate down-10%',}}
  1262. }
  1263. sets.precast.JA['Animated Flourish'] = sets.midcast.Enmity
  1264. sets.precast.JA['Provoke'] = sets.midcast.Enmity
  1265. sets.midcast.Flash = sets.midcast.Enmity
  1266. sets.midcast['Blank Gaze'] = sets.midcast.Enmity
  1267. sets.midcast['Geist Wall'] = sets.midcast.Enmity
  1268. sets.midcast['Jettatura'] = sets.midcast.Enmity
  1269. sets.midcast['Jubaku: Ichi'] = sets.midcast.Enmity
  1270. sets.midcast['Hojo: Ichi'] = sets.midcast.Enmity
  1271. sets.midcast['Hojo: Ni'] = sets.midcast.Enmity
  1272. sets.midcast['Kurayami: Ichi'] = sets.midcast.Enmity
  1273. sets.midcast['Kurayami: Ni'] = sets.midcast.Enmity
  1274. sets.midcast['Magic Finale'] = sets.midcast.Sleep
  1275.  
  1276. sets.midcast['Healing Breeze'] = sets.midcast.Cure
  1277. sets.midcast['Pollen'] = sets.midcast.Cure
  1278. sets.midcast['Awful Eye'] = sets.midcast['Sleep']
  1279. sets.midcast['Blank Gaze'] = sets.midcast['Sleep']
  1280. sets.midcast['Sheep Song'] = sets.midcast['Sleep']
  1281. sets.midcast['Soporific'] = sets.midcast['Sleep']
  1282.  
  1283. sets.midcast['Auspice'] = {
  1284. head={ name="Telchine Cap", augments={'Enh. Mag. eff. dur. +10',}},
  1285. body="Viti. Tabard +3",
  1286. hands="Atrophy Gloves +3",
  1287. legs={ name="Telchine Braconi", augments={'Enh. Mag. eff. dur. +10',}},
  1288. feet="Leth. Houseaux +3",
  1289. waist="Embla sash",
  1290. neck="Dls. Torque +2",
  1291. back="Ghostfyre Cape",
  1292. }
  1293. ------------------------------------------------------------------------------------------------
  1294. ----------------------------------------- Idle Sets --------------------------------------------
  1295. ------------------------------------------------------------------------------------------------
  1296.  
  1297. sets.idle = {
  1298. ammo="Homiliary",
  1299. head="Viti. Chapeau +3",
  1300. body="Lethargy Sayon +3",
  1301. hands="Leth. Ganth. +3",
  1302. legs="Carmine Cuisses +1",
  1303. feet="Malignance Boots",
  1304. neck="Sibyl Scarf",
  1305. waist="Plat. Mog. Belt",
  1306. left_ear="Eabani Earring",
  1307. right_ear="Odnowa Earring +1",
  1308. left_ring="Stikini Ring +1",
  1309. right_ring="Gelatinous Ring +1",
  1310. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}},
  1311. }
  1312.  
  1313. sets.idle.DTidle = set_combine(sets.idle, {
  1314. ammo="Staunch Tathlum +1",
  1315. head="Leth. Chappel +3",
  1316. body="Lethargy Sayon +3",
  1317. hands="Malignance Gloves",
  1318. legs="Malignance Tights",
  1319. neck="Loricate Torque +1",
  1320. left_ear="Eabani Earring",
  1321. right_ear="Sanare Earring",
  1322. back={ name="Sucellos's Cape", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
  1323. })
  1324.  
  1325. sets.idle.Town = set_combine(sets.idle, {right_ear="Leth. Earring +2"})
  1326.  
  1327. sets.idle.Weak = sets.idle
  1328.  
  1329. sets.idle.HP = {
  1330. ammo="Staunch Tathlum +1",
  1331. head="Leth. Chappel +3",
  1332. body="Lethargy Sayon +3",
  1333. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  1334. legs="Volte Tights",
  1335. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  1336. neck="Unmoving Collar +1",
  1337. waist="Kasiri Belt",
  1338. left_ear={ name="Odnowa Earring +1", augments={'Path: A',}},
  1339. right_ear="Tuisto Earring",
  1340. left_ring="Eihwaz Ring",
  1341. right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
  1342. back="Moonlight Cape",
  1343. }
  1344.  
  1345. sets.resting = sets.idle
  1346.  
  1347. ------------------------------------------------------------------------------------------------
  1348. ---------------------------------------- Defense Sets ------------------------------------------
  1349. ------------------------------------------------------------------------------------------------
  1350.  
  1351. sets.defense.PDT = {ammo="Staunch Tathlum +1",
  1352. head="Malignance Chapeau",
  1353. body="Malignance Tabard",
  1354. hands="Malignance Gloves",
  1355. legs="Malignance Tights",
  1356. feet="Atro. Boots +3",
  1357. neck="Combatant's Torque",
  1358. waist="Kentarch Belt +1",
  1359. left_ear="Sherida Earring",
  1360. right_ear="Thureous Earring",
  1361. left_ring="Vengeful Ring",
  1362. right_ring="Gelatinous Ring +1",
  1363. back="Moonlight Cape",
  1364. }
  1365.  
  1366.  
  1367. sets.defense.DualWield = {ammo="Staunch Tathlum +1",
  1368. head="Malignance Chapeau",
  1369. body="Malignance Tabard",
  1370. hands="Malignance Gloves",
  1371. legs="Malignance Tights",
  1372. feet="Malignance Boots",
  1373. neck="Combatant's Torque",
  1374. waist="Reiki Yotai",
  1375. left_ear="Sherida Earring",
  1376. right_ear="Eabani Earring",
  1377. left_ring="Defending Ring",
  1378. right_ring="Gelatinous Ring +1",
  1379. back={ name="Sucellos's Cape", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
  1380. }
  1381.  
  1382. sets.defense.Shield = {ammo="Staunch Tathlum +1",
  1383. head="Malignance Chapeau",
  1384. body="Malignance Tabard",
  1385. hands="Malignance Gloves",
  1386. legs="Malignance Tights",
  1387. feet="Atro. Boots +3",
  1388. neck="Combatant's Torque",
  1389. waist="Plat. Mog. Belt",
  1390. left_ear="Sherida Earring",
  1391. right_ear="Thureous Earring",
  1392. left_ring="Vengeful Ring",
  1393. right_ring="Gelatinous Ring +1",
  1394. back={ name="Sucellos's Cape", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity+10','Mag. Evasion+15',}},
  1395. }
  1396.  
  1397.  
  1398. sets.defense.MDT = {
  1399. sub="Sacro Bulwark",
  1400. ammo="Staunch Tathlum +1",
  1401. head="Ea Hat +1",
  1402. body="Atrophy Tabard +3",
  1403. hands="Aya. Manopolas +2",
  1404. legs="Viti. Tights +3",
  1405. feet="",
  1406. neck="Loricate Torque +1",
  1407. waist="Fucho-no-Obi",
  1408. left_ear="Eabani Earring",
  1409. right_ear="Sanare Earring",
  1410. left_ring="Defending Ring",
  1411. right_ring="Gelatinous Ring +1",
  1412. back="Moonlight Cape",
  1413. }
  1414.  
  1415. sets.magic_burst = {main={ name="Bunzi's Rod", augments={'Path: A',}},
  1416. sub="Ammurapi Shield",
  1417. ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  1418. head="Ea Hat +1",
  1419. body="Ea Houppe. +1",
  1420. hands="Bunzi's Gloves",
  1421. legs="Ea Slops +1",
  1422. feet="Leth. Houseaux +3",
  1423. neck="Sibyl Scarf",
  1424. waist="Acuity Belt +1",
  1425. left_ear="Malignance Earring",
  1426. right_ear="Regal Earring",
  1427. left_ring="Freke Ring",
  1428. right_ring="Metamor. Ring +1",
  1429. back={ name="Sucellos's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Spell interruption rate down-10%',}}
  1430. }
  1431.  
  1432. sets.Kiting = {legs="Carmine Cuisses +1"}
  1433. sets.latent_refresh = {waist="Fucho-no-obi"}
  1434.  
  1435.  
  1436. ------------------------------------------------------------------------------------------------
  1437. ---------------------------------------- Engaged Sets ------------------------------------------
  1438. ------------------------------------------------------------------------------------------------
  1439.  
  1440. -- Engaged sets
  1441.  
  1442. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  1443. -- sets if more refined versions aren't defined.
  1444. -- If you create a set with both offense and defense modes, the offense mode should be first.
  1445. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  1446.  
  1447. sets.engaged = {ammo="Aurgelmir Orb +1",
  1448. head={ name="Bunzi's Hat", augments={'Path: A',}},
  1449. body="Malignance Tabard",
  1450. hands={ name="Bunzi's Gloves", augments={'Path: A',}},
  1451. legs="Malignance Tights",
  1452. feet="Malignance Boots",
  1453. neck="Anu Torque",
  1454. waist="Reiki Yotai",
  1455. left_ear="Telos Earring",
  1456. right_ear="Leth. Earring +2",
  1457. left_ring="Chirich Ring +1",
  1458. right_ring="Chirich Ring +1",
  1459. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
  1460. }
  1461.  
  1462. sets.engaged.MidAcc = set_combine(sets.engaged, {
  1463. hands="Malignance Gloves",
  1464. waist="Kentarch Belt +1",
  1465. })
  1466.  
  1467. sets.engaged.HighAcc = set_combine(sets.engaged, {
  1468. head="Carmine Mask +1",
  1469. legs="Carmine Cuisses +1",
  1470. ear1="Cessance Earring",
  1471. ear2="Mache Earring +1",
  1472. waist="Kentarch Belt +1",
  1473. })
  1474.  
  1475. sets.engaged.Enspells = {ammo="Sroda Tathlum",
  1476. head="Bunzi's Hat",
  1477. body="Lethargy Sayon +3",
  1478. hands="Aya. Manopolas +2",
  1479. legs="Leth. Fuseau +3",
  1480. feet="Leth. Houseaux +3",
  1481. neck="Null Loop",
  1482. waist="Orpheus's Sash",
  1483. left_ear="Crep. Earring",
  1484. right_ear="Leth. Earring +2",
  1485. left_ring="Metamor. Ring +1",
  1486. right_ring="Crepuscular Ring",
  1487. back={ name="Ghostfyre Cape", augments={'Enfb.mag. skill +9','Enha.mag. skill +10','Enh. Mag. eff. dur. +20',}}}
  1488.  
  1489. -- No Magic Haste (49 DW Needed)
  1490. sets.engaged.DW = {ammo="Coiste Bodhar",
  1491. head="Bunzi's Hat",
  1492. body="Malignance Tabard",
  1493. hands="Bunzi's Gloves",
  1494. legs="Malignance Tights",
  1495. feet="Malignance Boots",
  1496. neck="Anu Torque",
  1497. waist="Windbuffet Belt +1",
  1498. left_ear="Sherida Earring",
  1499. right_ear="Dedition Earring",
  1500. left_ring="Chirich Ring +1",
  1501. right_ring="Chirich Ring +1",
  1502. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}}
  1503. }
  1504.  
  1505. sets.engaged.DW.MidAcc = set_combine(sets.engaged.DW, {
  1506. neck="Combatant's Torque",
  1507. })
  1508.  
  1509. sets.engaged.DW.HighAcc = set_combine(sets.engaged.DW.MidAcc, {})
  1510.  
  1511. sets.engaged.DW.Enspells = set_combine(sets.engaged.DW, {
  1512. hands="Aya. Manopolas +2",
  1513. waist="Orpheus's Sash",
  1514. right_ear="Leth. Earring +2"})
  1515.  
  1516.  
  1517. -- 15% Magic Haste (42 DW Needed)
  1518. sets.engaged.DW.LowHaste = sets.engaged.DW
  1519.  
  1520. sets.engaged.DW.MidAcc.LowHaste = set_combine(sets.engaged.DW.LowHaste, {
  1521. neck="Combatant's Torque",
  1522. })
  1523.  
  1524. sets.engaged.DW.HighAcc.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, {
  1525. head="Carmine Mask +1",
  1526. left_ring="Ramuh Ring +1",
  1527. })
  1528.  
  1529. sets.engaged.DW.Enspells.LowHaste = set_combine(sets.engaged.Enspells, {
  1530. left_ear="Suppanomimi",
  1531. right_ear="Eabani Earring",
  1532. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}}})
  1533.  
  1534. -- 30% Magic Haste (31 DW Needed)
  1535. sets.engaged.DW.MidHaste = sets.engaged.DW
  1536.  
  1537. sets.engaged.DW.MidAcc.MidHaste = set_combine(sets.engaged.DW.MidHaste, {
  1538. neck="Combatant's Torque",
  1539. right_ring="Ilabrat Ring",
  1540. })
  1541.  
  1542. sets.engaged.DW.HighAcc.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, {
  1543. head="Carmine Mask +1",
  1544. left_ring="Ramuh Ring +1",
  1545. })
  1546.  
  1547. sets.engaged.DW.Enspells.MidHaste = set_combine(sets.engaged.Enspells, {
  1548. left_ear="Suppanomimi",
  1549. right_ear="Eabani Earring",
  1550. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}}})
  1551.  
  1552. -- 35% Magic Haste (26 DW Needed)
  1553. sets.engaged.DW.HighHaste = set_combine(sets.engaged.DW, {
  1554. legs="Malignance tights",
  1555. }) --26
  1556.  
  1557. sets.engaged.DW.MidAcc.HighHaste = set_combine(sets.engaged.DW.HighHaste, {
  1558. neck="Combatant's Torque",
  1559. })
  1560.  
  1561. sets.engaged.DW.HighAcc.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, {
  1562. head="Carmine Mask +1",
  1563. left_ring="Ramuh Ring +1",
  1564. })
  1565.  
  1566. sets.engaged.DW.Enspells.HighHaste = set_combine(sets.engaged.Enspells, {
  1567. hands="Aya. Manopolas +2",
  1568. waist="Orpheus's Sash",
  1569. right_ear="Leth. Earring +2"})
  1570.  
  1571. -- 45% Magic Haste (11 DW Needed)
  1572. sets.engaged.DW.MaxHaste = {
  1573. ammo="Coiste Bodhar",
  1574. head="Bunzi's Hat",
  1575. body="Malignance Tabard",
  1576. hands="Bunzi's Gloves",
  1577. legs="Malignance Tights",
  1578. feet="Malignance Boots",
  1579. neck="Anu Torque",
  1580. waist="Windbuffet Belt +1",
  1581. left_ear="Sherida Earring",
  1582. right_ear="Leth. Earring +2",
  1583. left_ring="Chirich Ring +1",
  1584. right_ring="Chirich Ring +1",
  1585. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}}}
  1586.  
  1587. sets.engaged.DW.MidAcc.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, {
  1588. neck="Lissome Necklace",
  1589. })
  1590.  
  1591. sets.engaged.DW.HighAcc.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, {
  1592. })
  1593.  
  1594. sets.engaged.DW.Enspells.MaxHaste = set_combine(sets.engaged.Enspells, {
  1595. hands="Aya. Manopolas +2",
  1596. waist="Orpheus's Sash",
  1597. right_ear="Leth. Earring +2"
  1598. })
  1599.  
  1600. ---------------------------------------- Hybrid Sets -------------------------------------------
  1601. ------------------------------------------------------------------------------------------------
  1602.  
  1603. sets.engaged.Hybrid = {ammo="Staunch Tathlum +1",
  1604. head="Malignance Chapeau",
  1605. body="Malignance Tabard",
  1606. hands="Malignance Gloves",
  1607. legs="Malignance Tights",
  1608. feet="Aya. Gambieras +2",
  1609. neck="Anu Torque",
  1610. waist="Reiki Yotai",
  1611. left_ear="Eabani Earring",
  1612. right_ear="Leth. Earring +2",
  1613. left_ring="Hetairoi Ring",
  1614. right_ring="Chirich Ring +1",
  1615. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
  1616. }
  1617.  
  1618. sets.engaged.SubtleBlow = set_combine(sets.engaged.Hybrid, {head="Bunzi's Hat",
  1619. neck="Loricate Torque +1",
  1620. waist="Windbuffet Belt +1",
  1621. left_ear="Sherida Earring",
  1622. right_ear="Digni. Earring",
  1623. left_ring="Chirich Ring +1",
  1624. right_ring="Chirich Ring +1",
  1625. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
  1626. })
  1627.  
  1628. sets.engaged.TA = {ammo="Yetshila +1",
  1629. head={ name="Blistering Sallet +1", augments={'Path: A',}},
  1630. legs={ name="Zoar Subligar +1", augments={'Path: A',}},
  1631. feet="Thereoid Greaves",
  1632. waist="Gerdr Belt +1",
  1633. left_ear="Suppanomimi",
  1634. right_ring="Hetairoi Ring",
  1635. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
  1636. }
  1637.  
  1638. sets.engaged.TA.SW = {ammo="Yetshila +1",
  1639. head={ name="Blistering Sallet +1", augments={'Path: A',}},
  1640. legs={ name="Zoar Subligar +1", augments={'Path: A',}},
  1641. feet="Thereoid Greaves",
  1642. waist="Gerdr Belt +1",
  1643. right_ring="Hetairoi Ring",
  1644. back={ name="Sucellos's Cape", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Crit.hit rate+10',}},
  1645. }
  1646.  
  1647. sets.engaged.Crit = set_combine(sets.engaged, sets.engaged.Hybrid)
  1648. sets.engaged.MidAcc.Crit = set_combine(sets.engaged.MidAcc, sets.engaged.Hybrid)
  1649. sets.engaged.HighAcc.Crit = set_combine(sets.engaged.HighAcc, sets.engaged.Hybrid)
  1650.  
  1651. sets.engaged.SwordEnh = set_combine(sets.engaged, sets.engaged.Enspell)
  1652. sets.engaged.MidAcc.SwordEnh = set_combine(sets.engaged.MidAcc, sets.engaged.Enspell)
  1653. sets.engaged.HighAcc.SwordEnh = set_combine(sets.engaged.HighAcc, sets.engaged.Enspell)
  1654.  
  1655. sets.engaged.Subtle = set_combine(sets.engaged, sets.engaged.SubtleBlow)
  1656. sets.engaged.MidAcc.Subtle = set_combine(sets.engaged.MidAcc, sets.engaged.SubtleBlow)
  1657. sets.engaged.HighAcc.Subtle = set_combine(sets.engaged.HighAcc, sets.engaged.SubtleBlow)
  1658.  
  1659. sets.engaged.Almace = set_combine(sets.engaged, sets.engaged.TA.SW)
  1660. sets.engaged.MidAcc.Almace = set_combine(sets.engaged.MidAcc, sets.engaged.TA.SW)
  1661. sets.engaged.HighAcc.Almace = set_combine(sets.engaged.HighAcc, sets.engaged.TA.SW)
  1662.  
  1663. sets.engaged.DW.Crit = set_combine(sets.engaged.DW, sets.engaged.Hybrid)
  1664. sets.engaged.DW.MidAcc.Crit = set_combine(sets.engaged.DW.MidAcc, sets.engaged.Hybrid)
  1665. sets.engaged.DW.HighAcc.Crit = set_combine(sets.engaged.DW.HighAcc, sets.engaged.Hybrid)
  1666.  
  1667. sets.engaged.DW.SwordEnh = set_combine(sets.engaged.DW, sets.engaged.Enspell)
  1668. sets.engaged.DW.MidAcc.SwordEnh = set_combine(sets.engaged.DW.MidAcc, sets.engaged.Enspell)
  1669. sets.engaged.DW.HighAcc.SwordEnh = set_combine(sets.engaged.DW.HighAcc, sets.engaged.Enspell)
  1670.  
  1671. sets.engaged.DW.Subtle = set_combine(sets.engaged.DW, sets.engaged.SubtleBlow)
  1672. sets.engaged.DW.MidAcc.Subtle = set_combine(sets.engaged.DW.MidAcc, sets.engaged.SubtleBlow)
  1673. sets.engaged.DW.HighAcc.Subtle = set_combine(sets.engaged.DW.HighAcc, sets.engaged.SubtleBlow)
  1674.  
  1675. sets.engaged.DW.Almace = set_combine(sets.engaged.DW, sets.engaged.TA)
  1676. sets.engaged.DW.MidAcc.Almace = set_combine(sets.engaged.DW.MidAcc, sets.engaged.TA)
  1677. sets.engaged.DW.HighAcc.Almace = set_combine(sets.engaged.DW.HighAcc, sets.engaged.TA)
  1678.  
  1679. sets.engaged.DW.Crit.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.Hybrid)
  1680. sets.engaged.DW.MidAcc.Crit.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.Hybrid)
  1681. sets.engaged.DW.HighAcc.Crit.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.Hybrid)
  1682.  
  1683. sets.engaged.DW.SwordEnh.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.Enspell)
  1684. sets.engaged.DW.MidAcc.SwordEnh.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.Enspell)
  1685. sets.engaged.DW.HighAcc.SwordEnh.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.Enspell)
  1686.  
  1687. sets.engaged.DW.Subtle.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.SubtleBlow)
  1688. sets.engaged.DW.MidAcc.Subtle.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.SubtleBlow)
  1689. sets.engaged.DW.HighAcc.Subtle.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.SubtleBlow)
  1690.  
  1691. sets.engaged.DW.Almace.LowHaste = set_combine(sets.engaged.DW.LowHaste, sets.engaged.TA)
  1692. sets.engaged.DW.MidAcc.Almace.LowHaste = set_combine(sets.engaged.DW.MidAcc.LowHaste, sets.engaged.TA)
  1693. sets.engaged.DW.HighAcc.Almace.LowHaste = set_combine(sets.engaged.DW.HighAcc.LowHaste, sets.engaged.TA)
  1694.  
  1695. sets.engaged.DW.Crit.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.Hybrid)
  1696. sets.engaged.DW.MidAcc.Crit.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.Hybrid)
  1697. sets.engaged.DW.HighAcc.Crit.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.Hybrid)
  1698.  
  1699. sets.engaged.DW.SwordEnh.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.Enspell)
  1700. sets.engaged.DW.MidAcc.SwordEnh.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.Enspell)
  1701. sets.engaged.DW.HighAcc.SwordEnh.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.Enspell)
  1702.  
  1703. sets.engaged.DW.Subtle.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.SubtleBlow)
  1704. sets.engaged.DW.MidAcc.Subtle.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.SubtleBlow)
  1705. sets.engaged.DW.HighAcc.Subtle.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.SubtleBlow)
  1706.  
  1707. sets.engaged.DW.Almace.MidHaste = set_combine(sets.engaged.DW.MidHaste, sets.engaged.TA)
  1708. sets.engaged.DW.MidAcc.Almace.MidHaste = set_combine(sets.engaged.DW.MidAcc.MidHaste, sets.engaged.TA)
  1709. sets.engaged.DW.HighAcc.Almace.MidHaste = set_combine(sets.engaged.DW.HighAcc.MidHaste, sets.engaged.TA)
  1710.  
  1711. sets.engaged.DW.Crit.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.Hybrid)
  1712. sets.engaged.DW.MidAcc.Crit.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.Hybrid)
  1713. sets.engaged.DW.HighAcc.Crit.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.Hybrid)
  1714.  
  1715. sets.engaged.DW.SwordEnh.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.Enspell)
  1716. sets.engaged.DW.MidAcc.SwordEnh.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.Enspell)
  1717. sets.engaged.DW.HighAcc.SwordEnh.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.Enspell)
  1718.  
  1719. sets.engaged.DW.Subtle.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.SubtleBlow)
  1720. sets.engaged.DW.MidAcc.Subtle.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.SubtleBlow)
  1721. sets.engaged.DW.HighAcc.Subtle.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.SubtleBlow)
  1722.  
  1723. sets.engaged.DW.Almace.HighHaste = set_combine(sets.engaged.DW.HighHaste, sets.engaged.TA)
  1724. sets.engaged.DW.MidAcc.Almace.HighHaste = set_combine(sets.engaged.DW.MidAcc.HighHaste, sets.engaged.TA)
  1725. sets.engaged.DW.HighAcc.Almace.HighHaste = set_combine(sets.engaged.DW.HighAcc.HighHaste, sets.engaged.TA)
  1726.  
  1727. sets.engaged.DW.Crit.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.Hybrid)
  1728. sets.engaged.DW.MidAcc.Crit.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.Hybrid)
  1729. sets.engaged.DW.HighAcc.Crit.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.Hybrid)
  1730.  
  1731. sets.engaged.DW.SwordEnh.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.Enspell)
  1732. sets.engaged.DW.MidAcc.SwordEnh.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.Enspell)
  1733. sets.engaged.DW.HighAcc.SwordEnh.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.Enspell)
  1734.  
  1735. sets.engaged.DW.Subtle.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.SubtleBlow)
  1736. sets.engaged.DW.MidAcc.Subtle.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.SubtleBlow)
  1737. sets.engaged.DW.HighAcc.Subtle.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.SubtleBlow)
  1738.  
  1739. sets.engaged.DW.Almace.MaxHaste = set_combine(sets.engaged.DW.MaxHaste, sets.engaged.TA)
  1740. sets.engaged.DW.MidAcc.Almace.MaxHaste = set_combine(sets.engaged.DW.MidAcc.MaxHaste, sets.engaged.TA)
  1741. sets.engaged.DW.HighAcc.Almace.MaxHaste = set_combine(sets.engaged.DW.HighAcc.MaxHaste, sets.engaged.TA)
  1742.  
  1743.  
  1744. ------------------------------------------------------------------------------------------------
  1745. ---------------------------------------- Special Sets ------------------------------------------
  1746. ------------------------------------------------------------------------------------------------
  1747.  
  1748. sets.buff.Doom = {neck="Nicander's necklace",
  1749. waist="Gishdubar Sash"}
  1750.  
  1751. sets.Obi = {waist="Hachirin-no-Obi"}
  1752. sets.CP = {back="Mecisto. Mantle"}
  1753.  
  1754. end
  1755.  
  1756. -------------------------------------------------------------------------------------------------------------------
  1757. -- Job-specific hooks for standard casting events.
  1758. -------------------------------------------------------------------------------------------------------------------
  1759.  
  1760. function job_precast(spell, action, spellMap, eventArgs)
  1761. if spellMap == 'Utsusemi' then
  1762. if buffactive['Copy Image (3)'] or buffactive['Copy Image (4+)'] then
  1763. cancel_spell()
  1764. add_to_chat(123, '**!! '..spell.english..' Canceled: [3+ IMAGES] !!**')
  1765. eventArgs.handled = true
  1766. return
  1767. elseif buffactive['Copy Image'] or buffactive['Copy Image (2)'] then
  1768. send_command('cancel 66; cancel 444; cancel Copy Image; cancel Copy Image (2)')
  1769. end
  1770. end
  1771. end
  1772.  
  1773. function job_post_precast(spell, action, spellMap, eventArgs)
  1774. if spell.name == 'Impact' then
  1775. equip(sets.precast.FC.Impact)
  1776. end
  1777. if spell.name == 'Dispelga' then
  1778. equip(sets.precast.FC.Dispelga)
  1779. end
  1780. -- if spell.type == 'WeaponSkill' then
  1781. -- if spell.english == 'Sanguine Blade' then
  1782. -- if world.weather_element == 'Dark' or world.day_element == 'Dark' then
  1783. -- equip(sets.Obi)
  1784. -- end
  1785. -- elseif spell.english == 'Burning Blade' and (world.weather_element == 'Fire' or world.day_element == 'Fire') then
  1786. -- equip(sets.Obi)
  1787. -- elseif spell.english == 'Red Lotus Blade' and (world.weather_element == 'Fire' or world.day_element == 'Fire') then
  1788. -- equip(sets.Obi)
  1789. -- end
  1790. -- end
  1791. if elemental_ws:contains(spell.name) then
  1792. -- Matching double weather (w/o day conflict).
  1793. if spell.element == world.weather_element and (get_weather_intensity() == 2 and spell.element ~= elements.weak_to[world.day_element]) then
  1794. equip(sets.Obi)
  1795. -- Target distance under 1.7 yalms.
  1796. elseif spell.target.distance < (1.7 + spell.target.model_size) then
  1797. equip({waist="Orpheus's Sash"})
  1798. -- Matching day and weather.
  1799. elseif spell.element == world.day_element and spell.element == world.weather_element then
  1800. equip(sets.Obi)
  1801. -- Target distance under 8 yalms.
  1802. elseif spell.target.distance < (8 + spell.target.model_size) then
  1803. equip({waist="Orpheus's Sash"})
  1804. -- Match day or weather.
  1805. elseif spell.element == world.day_element or spell.element == world.weather_element then
  1806. equip(sets.Obi)
  1807. end
  1808. end
  1809. end
  1810.  
  1811. function job_midcast(spell, action, spellMap, eventArgs)
  1812. if spell.skill == 'Enfeebling Magic' then
  1813. if enfeebling_magic_skill:contains(spell.english) or enfeebling_magic_effect:contains(spell.english) then
  1814. if spell.type == "WhiteMagic" then
  1815. equip(sets.midcast.MndEnfeeblesAcc)
  1816. else
  1817. equip(sets.midcast.IntEnfeeblesAcc)
  1818. end
  1819. end
  1820. end
  1821. end
  1822.  
  1823. -- Run after the default midcast() is done.
  1824. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  1825. function job_post_midcast(spell, action, spellMap, eventArgs)
  1826. if spell.skill == 'Enfeebling Magic' then
  1827. if enfeebling_magic_skill:contains(spell.english) then
  1828. equip(sets.midcast.SkillEnfeebles)
  1829. elseif enfeebling_magic_effect:contains(spell.english) then
  1830. equip(sets.midcast.EffectEnfeebles)
  1831. end
  1832. if state.Buff.Saboteur then
  1833. equip(sets.buff.Saboteur)
  1834. end
  1835. end
  1836. if spell.skill == 'Enhancing Magic' then
  1837. if classes.NoSkillSpells:contains(spell.english) then
  1838. equip(sets.midcast.EnhancingDuration)
  1839. if spellMap == 'Refresh' then
  1840. equip(sets.midcast.Refresh)
  1841. if spell.target.type == 'SELF' then
  1842. equip (sets.midcast.RefreshSelf)
  1843. end
  1844. end
  1845. elseif skill_spells:contains(spell.english) then
  1846. equip(sets.midcast.EnhancingSkill)
  1847. elseif spell.english:startswith('Gain') then
  1848. equip(sets.midcast.GainSpell)
  1849. end
  1850. if (spell.target.type == 'PLAYER' or spell.target.type == 'NPC') and buffactive.Composure then
  1851. equip(sets.buff.ComposureOther)
  1852. if spellMap == 'Refresh' then
  1853. equip(sets.midcast.Refresh)
  1854. end
  1855. if spell.english == 'Phalanx II' then
  1856. equip(sets.buff.ComposureOther)
  1857. end
  1858. end
  1859. end
  1860. if spellMap == 'Cure' and spell.target.type == 'SELF' then
  1861. equip(sets.midcast.CureSelf)
  1862. end
  1863. if spell.skill == 'Elemental Magic' then
  1864. if state.MagicBurst.value and spell.english ~= 'Death' then
  1865. equip(sets.magic_burst)
  1866. if spell.english == "Impact" then
  1867. equip(sets.midcast.Impact)
  1868. end
  1869. end
  1870. -- if (spell.element == world.day_element or spell.element == world.weather_element) then
  1871. -- equip(sets.Obi)
  1872. -- end
  1873. if spell.skill == 'Elemental Magic' or spell.english == "Kaustra" then
  1874. if spell.element == world.weather_element and (get_weather_intensity() == 2 and spell.element ~= elements.weak_to[world.day_element]) then
  1875. equip(sets.Obi)
  1876. -- Target distance under 1.7 yalms.
  1877. elseif spell.target.distance < (1.7 + spell.target.model_size) then
  1878. equip({waist="Orpheus's Sash"})
  1879. -- Matching day and weather.
  1880. elseif spell.element == world.day_element and spell.element == world.weather_element then
  1881. equip(sets.Obi)
  1882. -- Target distance under 8 yalms.
  1883. elseif spell.target.distance < (8 + spell.target.model_size) then
  1884. equip({waist="Orpheus's Sash"})
  1885. -- Match day or weather.
  1886. elseif spell.element == world.day_element or spell.element == world.weather_element then
  1887. equip(sets.Obi)
  1888. end
  1889. end
  1890. end
  1891. end
  1892.  
  1893. function job_aftercast(spell, action, spellMap, eventArgs)
  1894. if not spell.interrupted then
  1895. if spell.english == "Sleep II" then
  1896. send_command('@timers c "Sleep II ['..spell.target.name..']" 90 down spells/00259.png')
  1897. elseif spell.english == "Sleep" or spell.english == "Sleepga" then -- Sleep & Sleepga Countdown --
  1898. send_command('@timers c "Sleep ['..spell.target.name..']" 60 down spells/00253.png')
  1899. elseif spell.english == "Break" then
  1900. send_command('@timers c "Break ['..spell.target.name..']" 30 down spells/00255.png')
  1901. end
  1902. end
  1903. end
  1904.  
  1905. -------------------------------------------------------------------------------------------------------------------
  1906. -- Job-specific hooks for non-casting events.
  1907. -------------------------------------------------------------------------------------------------------------------
  1908.  
  1909. function job_buff_change(buff,gain)
  1910. if buff == "doom" then
  1911. if gain then
  1912. equip(sets.buff.Doom)
  1913. send_command('@input /p Doomed.')
  1914. disable('neck','waist')
  1915. else
  1916. enable('neck','waist')
  1917. handle_equipping_gear(player.status)
  1918. end
  1919. end
  1920. end
  1921.  
  1922. -- Handle notifications of general user state change.
  1923. function job_state_change(stateField, newValue, oldValue)
  1924. if state.WeaponLock.value == true then
  1925. disable('main','sub')
  1926. else
  1927. enable('main','sub')
  1928. end
  1929. if state.RingLock.value == true then
  1930. disable('left_ring','right_ring')
  1931. else
  1932. enable('left_ring','right_ring')
  1933. end
  1934. end
  1935.  
  1936. -------------------------------------------------------------------------------------------------------------------
  1937. -- User code that supplements standard library decisions.
  1938. -------------------------------------------------------------------------------------------------------------------
  1939.  
  1940. -- Called by the 'update' self-command, for common needs.
  1941. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  1942. function job_handle_equipping_gear(playerStatus, eventArgs)
  1943. check_gear()
  1944. update_combat_form()
  1945. determine_haste_group()
  1946. check_moving()
  1947. end
  1948.  
  1949. function job_update(cmdParams, eventArgs)
  1950. handle_equipping_gear(player.status)
  1951. end
  1952.  
  1953. function update_combat_form()
  1954. if DW == true then
  1955. state.CombatForm:set('DW')
  1956. elseif DW == false then
  1957. state.CombatForm:reset()
  1958. end
  1959. end
  1960.  
  1961. -- Custom spell mapping.
  1962. function job_get_spell_map(spell, default_spell_map)
  1963. if spell.action_type == 'Magic' then
  1964. if default_spell_map == 'Cure' or default_spell_map == 'Curaga' then
  1965. if (world.weather_element == 'Light' or world.day_element == 'Light') and spell.target.type ~= 'SELF' then
  1966. return 'CureWeather'
  1967. elseif spell.target.type == 'SELF' then
  1968. return 'CureSelf'
  1969. end
  1970. end
  1971. if spell.skill == 'Enfeebling Magic' then
  1972. if spell.type == "WhiteMagic" then
  1973. if enfeebling_magic_effect:contains(spell.english) then
  1974. return "EffectEnfeebles"
  1975. elseif not enfeebling_magic_skill:contains(spell.english) then
  1976. if enfeebling_magic_acc:contains(spell.english) and not buffactive.Stymie then
  1977. return "MndEnfeeblesAcc"
  1978. else
  1979. return "MndEnfeebles"
  1980. end
  1981. end
  1982. elseif spell.type == "BlackMagic" then
  1983. if enfeebling_magic_effect:contains(spell.english) then
  1984. return "EffectEnfeebles"
  1985. elseif not enfeebling_magic_skill:contains(spell.english) then
  1986. if enfeebling_magic_acc:contains(spell.english) and not buffactive.Stymie then
  1987. return "IntEnfeeblesAcc"
  1988. else
  1989. return "IntEnfeebles"
  1990. end
  1991. end
  1992. else
  1993. return "MndEnfeebles"
  1994. end
  1995. end
  1996. end
  1997. end
  1998.  
  1999. -- Modify the default idle set after it was constructed.
  2000. function customize_idle_set(idleSet)
  2001. if player.mpp < 51 then
  2002. idleSet = set_combine(idleSet, sets.latent_refresh)
  2003. elseif state.CP.current == 'on' then
  2004. equip(sets.CP)
  2005. disable('back')
  2006. else
  2007. enable('back')
  2008. end
  2009. if state.Auto_Kite.value == true then
  2010. idleSet = set_combine(idleSet, sets.Kiting)
  2011. end
  2012. return idleSet
  2013. end
  2014.  
  2015. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  2016. function display_current_job_state(eventArgs)
  2017. display_current_caster_state()
  2018. eventArgs.handled = true
  2019. end
  2020.  
  2021. -- Function to display the current relevant user state when doing an update.
  2022. -- Return true if display was handled, and you don't want the default info shown.
  2023. function display_current_job_state(eventArgs)
  2024. local msg = '[ Melee'
  2025.  
  2026. if state.CombatForm.has_value then
  2027. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  2028. end
  2029.  
  2030. msg = msg .. ': '
  2031.  
  2032. msg = msg .. state.OffenseMode.value
  2033. if state.HybridMode.value ~= 'Normal' then
  2034. msg = msg .. '/' .. state.HybridMode.value
  2035. end
  2036. msg = msg .. ' ][ WS: ' .. state.WeaponskillMode.value .. ' ]'
  2037.  
  2038. if state.DefenseMode.value ~= 'None' then
  2039. msg = msg .. '[ Defense: ' .. state.DefenseMode.value .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ' ]'
  2040. end
  2041.  
  2042. if state.IdleMode.value ~= 'None' then
  2043. msg = msg .. '[ Idle: ' .. state.IdleMode.value .. ' ]'
  2044. end
  2045.  
  2046. if state.Kiting.value then
  2047. msg = msg .. '[ Kiting Mode: ON ]'
  2048. end
  2049.  
  2050. add_to_chat(060, msg)
  2051.  
  2052. eventArgs.handled = true
  2053. end
  2054.  
  2055. -------------------------------------------------------------------------------------------------------------------
  2056. -- Utility functions specific to this job.
  2057. -------------------------------------------------------------------------------------------------------------------
  2058. --original function for haste:
  2059. --function determine_haste_group()
  2060. -- classes.CustomMeleeGroups:clear()
  2061. -- if DW == true then
  2062. -- if DW_needed <= 11 then
  2063. -- classes.CustomMeleeGroups:append('MaxHaste')
  2064. -- elseif DW_needed > 11 and DW_needed <= 26 then
  2065. -- classes.CustomMeleeGroups:append('HighHaste')
  2066. -- elseif DW_needed > 26 and DW_needed <= 31 then
  2067. -- classes.CustomMeleeGroups:append('MidHaste')
  2068. -- elseif DW_needed > 31 and DW_needed <= 42 then
  2069. -- classes.CustomMeleeGroups:append('LowHaste')
  2070. -- elseif DW_needed > 42 then
  2071. -- classes.CustomMeleeGroups:append('')
  2072. -- end
  2073. -- end
  2074. --end
  2075.  
  2076.  
  2077.  
  2078. function determine_haste_group()
  2079. classes.CustomMeleeGroups:clear()
  2080. if DW == true then
  2081. if DW_needed <= 25 then
  2082. classes.CustomMeleeGroups:append('MaxHaste')
  2083. elseif DW_needed > 25 and DW_needed <= 31 then
  2084. classes.CustomMeleeGroups:append('HighHaste')
  2085. elseif DW_needed > 31 and DW_needed > 42 then
  2086. classes.CustomMeleeGroups:append('LowHaste')
  2087. classes.CustomMeleeGroups:append('')
  2088. end
  2089. end
  2090. end
  2091.  
  2092. function job_self_command(cmdParams, eventArgs)
  2093. if cmdParams[1]:lower() == 'scholar' then
  2094. handle_strategems(cmdParams)
  2095. eventArgs.handled = true
  2096. elseif cmdParams[1]:lower() == 'nuke' then
  2097. handle_nuking(cmdParams)
  2098. eventArgs.handled = true
  2099. end
  2100.  
  2101. gearinfo(cmdParams, eventArgs)
  2102. end
  2103.  
  2104. function gearinfo(cmdParams, eventArgs)
  2105. if cmdParams[1] == 'gearinfo' then
  2106. if type(tonumber(cmdParams[2])) == 'number' then
  2107. if tonumber(cmdParams[2]) ~= DW_needed then
  2108. DW_needed = tonumber(cmdParams[2])
  2109. DW = true
  2110. end
  2111. elseif type(cmdParams[2]) == 'string' then
  2112. if cmdParams[2] == 'false' then
  2113. DW_needed = 0
  2114. DW = false
  2115. end
  2116. end
  2117. if type(tonumber(cmdParams[3])) == 'number' then
  2118. if tonumber(cmdParams[3]) ~= Haste then
  2119. Haste = tonumber(cmdParams[3])
  2120. end
  2121. end
  2122. if type(cmdParams[4]) == 'string' then
  2123. if cmdParams[4] == 'true' then
  2124. moving = true
  2125. elseif cmdParams[4] == 'false' then
  2126. moving = false
  2127. end
  2128. end
  2129. if type(tonumber(cmdParams[5])) == 'number' then
  2130. if tonumber(cmdParams[5]) ~= MA_needed then
  2131. MA_needed = tonumber(cmdParams[5])
  2132. H2H = true
  2133. end
  2134. elseif type(cmdParams[5]) == 'string' then
  2135. if cmdParams[5] == 'false' then
  2136. MA_needed = 0
  2137. H2H = false
  2138. end
  2139. end
  2140. if not midaction() then
  2141. job_update()
  2142. end
  2143. end
  2144. end
  2145.  
  2146. -- General handling of strategems in an Arts-agnostic way.
  2147. -- Format: gs c scholar <strategem>
  2148.  
  2149. function handle_strategems(cmdParams)
  2150. -- cmdParams[1] == 'scholar'
  2151. -- cmdParams[2] == strategem to use
  2152.  
  2153. if not cmdParams[2] then
  2154. add_to_chat(123,'Error: No strategem command given.')
  2155. return
  2156. end
  2157. local strategem = cmdParams[2]:lower()
  2158.  
  2159. if strategem == 'light' then
  2160. if buffactive['light arts'] then
  2161. send_command('input /ja "Addendum: White" <me>')
  2162. elseif buffactive['addendum: white'] then
  2163. add_to_chat(122,'Error: Addendum: White is already active.')
  2164. else
  2165. send_command('input /ja "Light Arts" <me>')
  2166. end
  2167. elseif strategem == 'dark' then
  2168. if buffactive['dark arts'] then
  2169. send_command('input /ja "Addendum: Black" <me>')
  2170. elseif buffactive['addendum: black'] then
  2171. add_to_chat(122,'Error: Addendum: Black is already active.')
  2172. else
  2173. send_command('input /ja "Dark Arts" <me>')
  2174. end
  2175. elseif buffactive['light arts'] or buffactive['addendum: white'] then
  2176. if strategem == 'cost' then
  2177. send_command('input /ja Penury <me>')
  2178. elseif strategem == 'speed' then
  2179. send_command('input /ja Celerity <me>')
  2180. elseif strategem == 'aoe' then
  2181. send_command('input /ja Accession <me>')
  2182. elseif strategem == 'addendum' then
  2183. send_command('input /ja "Addendum: White" <me>')
  2184. else
  2185. add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  2186. end
  2187. elseif buffactive['dark arts'] or buffactive['addendum: black'] then
  2188. if strategem == 'cost' then
  2189. send_command('input /ja Parsimony <me>')
  2190. elseif strategem == 'speed' then
  2191. send_command('input /ja Alacrity <me>')
  2192. elseif strategem == 'aoe' then
  2193. send_command('input /ja Manifestation <me>')
  2194. elseif strategem == 'addendum' then
  2195. send_command('input /ja "Addendum: Black" <me>')
  2196. else
  2197. add_to_chat(123,'Error: Unknown strategem ['..strategem..']')
  2198. end
  2199. else
  2200. add_to_chat(123,'No arts has been activated yet.')
  2201. end
  2202. end
  2203.  
  2204. function check_moving()
  2205. if state.DefenseMode.value == 'None' and state.Kiting.value == false then
  2206. if state.Auto_Kite.value == false and moving then
  2207. state.Auto_Kite:set(true)
  2208. elseif state.Auto_Kite.value == true and moving == false then
  2209. state.Auto_Kite:set(false)
  2210. end
  2211. end
  2212. end
  2213.  
  2214. function check_gear()
  2215. if no_swap_gear:contains(player.equipment.left_ring) then
  2216. disable("left_ring")
  2217. else
  2218. enable("left_ring")
  2219. end
  2220. if no_swap_gear:contains(player.equipment.right_ring) then
  2221. disable("right_ring")
  2222. else
  2223. enable("right_ring")
  2224. end
  2225. end
  2226.  
  2227. windower.register_event('zone change',
  2228. function()
  2229. if no_swap_gear:contains(player.equipment.left_ring) then
  2230. enable("left_ring")
  2231. equip(sets.idle)
  2232. end
  2233. if no_swap_gear:contains(player.equipment.right_ring) then
  2234. enable("right_ring")
  2235. equip(sets.idle)
  2236. end
  2237. end
  2238. )
  2239.  
  2240. --windower.register_event('zone change',
  2241. -- function()
  2242. -- send_command('gi ugs true')
  2243. -- end
  2244. --)
  2245.  
  2246. -- Select default macro book on initial load or subjob change.
  2247. function select_default_macro_book()
  2248. -- Default macro set/book
  2249. set_macro_page(1, 3)
  2250. end
  2251.  
  2252. function set_lockstyle()
  2253. send_command('wait 2; input /lockstyleset ' .. lockstyleset)
  2254. end
  2255.  
Advertisement
Add Comment
Please, Sign In to add comment