bongarippa

BLM

Feb 19th, 2017 (edited)
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.33 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7. include('organizer-lib')
  8. mote_include_version = 2
  9.  
  10. -- Load and initialize the include file.
  11. include('Mote-Include.lua')
  12. end
  13.  
  14.  
  15. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  16. function job_setup()
  17. state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
  18. state.Buff['Mana Wall'] = buffactive['Mana Wall'] or false
  19.  
  20. no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
  21. "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
  22.  
  23. end
  24.  
  25. -------------------------------------------------------------------------------------------------------------------
  26. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  27. -------------------------------------------------------------------------------------------------------------------
  28.  
  29. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  30. function user_setup()
  31. state.OffenseMode:options('None', 'Normal', 'DW', 'Acc')
  32. state.CastingMode:options('Normal', 'Resistant', 'Free', 'MagicBurst', 'MagicBurstFree')
  33. state.IdleMode:options('Normal', 'PDT', 'CP', 'Death', 'Craft')
  34.  
  35. state.MagicBurst = M(false, 'MagicBurst')
  36.  
  37. lowTierNukes = S{'Stone', 'Water', 'Aero', 'Fire', 'Blizzard', 'Thunder',
  38. 'Stone II', 'Water II', 'Aero II', 'Fire II', 'Blizzard II', 'Thunder II',
  39. 'Stone III', 'Water III', 'Aero III', 'Fire III', 'Blizzard III', 'Thunder III',
  40. 'Stonega', 'Waterga', 'Aeroga', 'Firaga', 'Blizzaga', 'Thundaga',
  41. 'Stonega II', 'Waterga II', 'Aeroga II', 'Firaga II', 'Blizzaga II', 'Thundaga II'}
  42.  
  43. no_swap_gear = S{"Warp Ring", "Dim. Ring (Dem)", "Dim. Ring (Holla)", "Dim. Ring (Mea)",
  44. "Trizek Ring", "Echad Ring", "Facility Ring", "Capacity Ring"}
  45.  
  46.  
  47.  
  48. -- Additional local binds
  49. send_command('bind ^` input /ma Stun <t>')
  50. send_command('bind @` gs c activate MagicBurst')
  51.  
  52. select_default_macro_book()
  53.  
  54. send_command('lua l gearinfo')
  55.  
  56. state.Auto_Kite = M(false, 'Auto_Kite')
  57. moving = false
  58.  
  59. end
  60.  
  61. function user_unload()
  62. send_command('lua u gearinfo')
  63. end
  64.  
  65. -- Called when this job file is unloaded (eg: job change)
  66. function user_unload()
  67. send_command('unbind ^`')
  68. send_command('unbind @`')
  69. end
  70.  
  71.  
  72. -- Define sets and vars used by this job file.
  73. function init_gear_sets()
  74. --------------------------------------
  75. -- Start defining the sets
  76. --------------------------------------
  77.  
  78. sets.magic_burst = {main="Laevateinn",
  79. sub="Enki Strap",
  80. ammo="Ghastly Tathlum +1",
  81. head="Ea Hat +1",
  82. body="Wicce Coat +3",
  83. hands="Agwu's Gages",
  84. legs="Wicce Chausses +3",
  85. feet="Agwu's Pigaches",
  86. neck="Src. Stole +2",
  87. waist="Acuity Belt +1",
  88. left_ear="Malignance Earring",
  89. right_ear="Regal Earring",
  90. left_ring="Metamor. Ring +1",
  91. right_ring="Freke Ring",
  92. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Phys. dmg. taken-10%',}}}
  93.  
  94. sets.Obi = {waist="Hachirin-no-Obi"}
  95.  
  96. ---- Precast Sets ----
  97.  
  98. -- Precast sets to enhance JAs
  99. sets.precast.JA['Mana Wall'] = {feet="Wicce Sabots +3"}
  100.  
  101. sets.precast.JA.Manafont = {body="Arch. Coat +3"}
  102. sets.precast.JA['Sublimation'] = {waist="Embla Sash"}
  103.  
  104.  
  105. -- equip to maximize HP (for Tarus) and minimize MP loss before using convert
  106. sets.precast.JA.Convert = {}
  107.  
  108.  
  109. -- Fast cast sets for spells
  110.  
  111. sets.precast.FC = {ammo="Impatiens",
  112. head={ name="Merlinic Hood", augments={'"Fast Cast"+7','Mag. Acc.+6',}},
  113. body={ name="Merlinic Jubbah", augments={'"Fast Cast"+7','INT+5','Mag. Acc.+1',}},
  114. hands="Agwu's Gages",
  115. legs="Agwu's Slops",
  116. feet={ name="Merlinic Crackows", augments={'"Mag.Atk.Bns."+25','"Fast Cast"+7',}},
  117. neck="Orunmila's Torque",
  118. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  119. left_ear="Malignance Earring",
  120. right_ear="Loquac. Earring",
  121. left_ring="Rahab Ring",
  122. right_ring="Kishar Ring",
  123. back={ name="Taranus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}}}
  124.  
  125. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  126.  
  127. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {head="Wicce Petasos +3",})
  128.  
  129. sets.precast.FC.Cure = set_combine(sets.precast.FC, {})
  130.  
  131. sets.precast.FC.Curaga = sets.precast.FC.Cure
  132.  
  133. sets.precast.FC.Impact = set_combine(sets.precast.FC, {head="Empty",
  134. body="Crepuscular Cloak"})
  135.  
  136. -- Weaponskill sets
  137. -- Default set for any weaponskill that isn't any more specifically defined
  138. sets.precast.WS = {ammo="Oshasha's Treatise",
  139. head="Nyame Helm",
  140. body="Nyame Mail",
  141. hands="Nyame Gauntlets",
  142. legs="Nyame Flanchard",
  143. feet="Nyame Sollerets",
  144. neck="Fotia Gorget",
  145. waist="Fotia Belt",
  146. left_ear="Regal Earring",
  147. right_ear="Malignance Earring",
  148. left_ring="Epaminondas's Ring",
  149. right_ring="Metamor. Ring +1",
  150. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}}}
  151.  
  152. -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
  153. sets.precast.WS['Myrkr'] = {ammo="Ghastly Tathlum +1",
  154. head="Wicce Petasos +3",
  155. body="Wicce Coat +3",
  156. hands="Spae. Gloves +2",
  157. legs="Nyame Flanchard",
  158. feet="Volte Boots",
  159. neck="Sanctity Necklace",
  160. waist="Shinjutsu-no-Obi +1",
  161. left_ear="Etiolation Earring",
  162. right_ear="Nehalennia Earring",
  163. left_ring="Fenrir Ring +1",
  164. right_ring="Metamor. Ring +1",
  165. back="Aurist's Cape +1",}
  166.  
  167. sets.precast.WS['Vidohunir'] = {ammo="Oshasha's Treatise",
  168. head={ name="Nyame Helm", augments={'Path: B',}},
  169. body={ name="Nyame Mail", augments={'Path: A',}},
  170. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  171. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  172. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  173. neck={ name="Src. Stole +2", augments={'Path: A',}},
  174. waist={ name="Acuity Belt +1", augments={'Path: A',}},
  175. left_ear="Regal Earring",
  176. right_ear="Malignance Earring",
  177. left_ring="Epaminondas's Ring",
  178. right_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  179. back="Aurist's Cape +1",}
  180.  
  181. sets.precast.WS['Cataclysm'] = {ammo="Oshasha's Treatise",
  182. head="Pixie Hairpin +1",
  183. body="Nyame Mail",
  184. hands="Nyame Gauntlets",
  185. legs="Nyame Flanchard",
  186. feet="Nyame Sollerets",
  187. neck="Fotia Gorget",
  188. waist="Fotia Belt",
  189. left_ear="Regal Earring",
  190. right_ear="Malignance Earring",
  191. left_ring="Epaminondas's Ring",
  192. right_ring="Archon Ring",
  193. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}}}
  194.  
  195. sets.precast.WS['True Strike'] = {ammo="Oshasha's Treatise",
  196. head="Nyame Helm",
  197. body="Nyame Mail",
  198. hands="Nyame Gauntlets",
  199. legs="Nyame Flanchard",
  200. feet="Nyame Sollerets",
  201. neck="Rep. Plat. Medal",
  202. waist="Fotia Belt",
  203. left_ear="Odnowa Earring +1",
  204. right_ear="Odnowa Earring",
  205. left_ring="Epaminondas's Ring",
  206. back={ name="Taranus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  207.  
  208. sets.precast.WS['Judgment'] = set_combine(sets.precast.WS['True Strike'], {})
  209.  
  210. sets.precast.WS['Black Halo'] = {ammo="Oshasha's Treatise",
  211. head={ name="Nyame Helm", augments={'Path: B',}},
  212. body={ name="Nyame Mail", augments={'Path: A',}},
  213. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  214. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  215. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  216. neck="Rep. Plat. Medal",
  217. waist="Fotia Belt",
  218. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  219. right_ear="Ishvara Earring",
  220. left_ring="Epaminondas's Ring",
  221. right_ring="Cornelia's Ring",
  222. back={ name="Taranus's Cape", augments={'MND+20','Accuracy+20 Attack+20','MND+10','Weapon skill damage +10%','Occ. inc. resist. to stat. ailments+10',}}}
  223.  
  224.  
  225. ---- Midcast Sets ----
  226.  
  227. sets.midcast.FastRecast = {}
  228.  
  229. sets.midcast.Cure = {main="Daybreak",
  230. sub="Ammurapi Shield",
  231. ammo="Staunch Tathlum +1",
  232. head={ name="Vanya Hood", augments={'MP+50','"Fast Cast"+10','Haste+2%',}},
  233. body="Shamash Robe",
  234. hands={ name="Telchine Gloves", augments={'"Cure" potency +7%','HP+47',}},
  235. legs="Assid. Pants +1",
  236. feet="Nyame Sollerets",
  237. neck="Loricate Torque +1",
  238. waist="Luminary Sash",
  239. left_ear="Roundel Earring",
  240. right_ear="Regal Earring",
  241. left_ring="Stikini Ring +1",
  242. right_ring="Metamor. Ring +1",
  243. back={ name="Taranus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','HP+20','"Fast Cast"+10','Spell interruption rate down-10%',}}}
  244.  
  245. sets.midcast.Curaga = sets.midcast.Cure
  246.  
  247. sets.midcast['Enhancing Magic'] = {}
  248.  
  249. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {waist="Siegel Sash"})
  250.  
  251. sets.midcast['Enfeebling Magic'] = {main="Laevateinn",
  252. sub="Enki Strap",
  253. ammo="Pemphredo Tathlum",
  254. head="Wicce Petasos +3",
  255. body="Wicce Coat +3",
  256. hands="Wicce Gloves +3",
  257. legs="Wicce Chausses +3",
  258. feet="Wicce Sabots +3",
  259. neck={ name="Src. Stole +2", augments={'Path: A',}},
  260. waist={ name="Acuity Belt +1", augments={'Path: A',}},
  261. left_ear="Malignance Earring",
  262. right_ear="Regal Earring",
  263. left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  264. right_ring="Kishar Ring",
  265. back={ name="Aurist's Cape +1", augments={'Path: A',}}}
  266.  
  267. sets.midcast['Enfeebling Magic'].Resistant = set_combine(sets.midcast['Enfeebling Magic'], {main="Contemplator +1",
  268. sub="Khonsu",})
  269.  
  270. sets.midcast.ElementalEnfeeble = sets.midcast['Enfeebling Magic']
  271.  
  272. sets.midcast['Dark Magic'] = set_combine(sets.midcast['Enfeebling Magic'], {
  273. hands={ name="Arch. Gloves +3", augments={'Increases Elemental Magic accuracy',}},
  274. legs="Spae. Tonban +3",
  275. neck="Erra Pendant",
  276. right_ring="Evanescence Ring"})
  277.  
  278. sets.midcast.Drain = {main="Laevateinn",
  279. sub="Enki Strap",
  280. ammo="Pemphredo Tathlum",
  281. head="Pixie Hairpin +1",
  282. body="Wicce Coat +3",
  283. hands="Arch. Gloves +3",
  284. legs="Spae. Tonban +3",
  285. feet="Agwu's Pigaches",
  286. neck="Erra Pendant",
  287. waist="Fucho-no-Obi",
  288. left_ear="Hirudinea Earring",
  289. right_ear="Regal Earring",
  290. left_ring="Archon Ring",
  291. right_ring="Evanescence Ring",
  292. back="Aurist's Cape +1"}
  293.  
  294. sets.midcast.Aspir = sets.midcast.Drain
  295.  
  296. sets.midcast.Stun = set_combine(sets.midcast['Dark Magic'], {})
  297.  
  298. sets.midcast.BardSong = set_combine(sets.midcast['Enfeebling Magic'], {})
  299.  
  300.  
  301. -- Elemental Magic sets
  302.  
  303. sets.midcast['Elemental Magic'] = {main="Laevateinn",
  304. sub="Enki Strap",
  305. ammo="Pemphredo Tathlum",
  306. head="Wicce Petasos +3",
  307. body="Wicce Coat +3",
  308. hands="Wicce Gloves +3",
  309. legs="Wicce Chausses +3",
  310. feet="Wicce Sabots +3",
  311. neck="Sibyl Scarf",
  312. waist="Sacro Cord",
  313. left_ear="Malignance Earring",
  314. right_ear="Regal Earring",
  315. left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  316. right_ring="Freke Ring",
  317. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}}}
  318.  
  319. sets.midcast['Elemental Magic'].Resistant = {}
  320.  
  321. sets.midcast['Elemental Magic'].HighTierNuke = set_combine(sets.midcast['Elemental Magic'])
  322. sets.midcast['Elemental Magic'].HighTierNuke.Resistant = set_combine(sets.midcast['Elemental Magic'])
  323.  
  324.  
  325. -- Minimal damage gear for procs.
  326. sets.midcast['Elemental Magic'].Free = {main="Laevateinn",
  327. sub="Enki Strap",
  328. ammo="Pemphredo Tathlum",
  329. head="Wicce Petasos +3",
  330. body="Spaekona's Coat +3",
  331. hands="Wicce Gloves +3",
  332. legs="Wicce Chausses +3",
  333. feet="Wicce Sabots +3",
  334. neck="Sibyl Scarf",
  335. waist="Sacro Cord",
  336. left_ear="Malignance Earring",
  337. right_ear="Regal Earring",
  338. left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  339. right_ring="Freke Ring",
  340. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}}}
  341.  
  342.  
  343. -- Magic Burst --
  344. sets.midcast['Elemental Magic'].MagicBurst = {main="Laevateinn",
  345. sub="Enki Strap",
  346. ammo="Ghastly Tathlum +1",
  347. head="Ea Hat +1",
  348. body="Wicce Coat +3",
  349. hands="Agwu's Gages",
  350. legs="Wicce Chausses +3",
  351. feet="Agwu's Pigaches",
  352. neck="Src. Stole +2",
  353. waist="Acuity Belt +1",
  354. left_ear="Malignance Earring",
  355. right_ear="Regal Earring",
  356. left_ring={ name="Metamor. Ring +1", augments={'Path: A',}},
  357. right_ring="Freke Ring",
  358. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}}}
  359.  
  360. sets.midcast['Elemental Magic'].MagicBurstFree = {main="Laevateinn",
  361. sub="Enki Strap",
  362. ammo="Ghastly Tathlum +1",
  363. head="Ea Hat +1",
  364. body="Spaekona's Coat +3",
  365. hands="Agwu's Gages",
  366. legs="Wicce Chausses +3",
  367. feet="Agwu's Pigaches",
  368. neck="Src. Stole +2",
  369. waist="Acuity Belt +1",
  370. left_ear="Malignance Earring",
  371. right_ear="Regal Earring",
  372. left_ring="Metamor. Ring +1",
  373. right_ring="Freke Ring",
  374. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','"Mag.Atk.Bns."+10',}}}
  375.  
  376. sets.midcast.Impact = {main="Laevateinn",
  377. sub="Enki Strap",
  378. ammo="Pemphredo Tathlum",
  379. body="Crepuscular Cloak",
  380. hands="Wicce Gloves +3",
  381. legs="Perdition Slops",
  382. feet="Wicce Sabots +3",
  383. neck="Src. Stole +2",
  384. waist="Oneiros Rope",
  385. left_ear="Dedition Earring",
  386. right_ear="Crep. Earring",
  387. left_ring="Crepuscular Ring",
  388. right_ring="Stikini Ring +1",
  389. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
  390.  
  391. -- Sets to return to when not performing an action.
  392.  
  393. -- Idle sets
  394.  
  395. -- Normal refresh idle set
  396. sets.idle.Normal = {main="Laevateinn",
  397. sub="Enki Strap",
  398. ammo="Staunch Tathlum +1",
  399. head="Volte Beret",
  400. body="Wicce Coat +3",
  401. hands="Wicce Gloves +3",
  402. legs="Assid. Pants +1",
  403. feet="Herald's Gaiters",
  404. neck="Sibyl Scarf",
  405. waist="Fucho-no-Obi",
  406. left_ear="Odnowa Earring +1",
  407. right_ear="Genmei Earring",
  408. left_ring="Stikini Ring +1",
  409. right_ring="Gelatinous Ring +1",
  410. back={ name="Taranus's Cape", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','INT+10','"Mag.Atk.Bns."+10','Phys. dmg. taken-10%',}}}
  411.  
  412. -- Idle mode that keeps PDT gear on, but doesn't prevent normal gear swaps for precast/etc.
  413. sets.idle.PDT = set_combine(sets.idle.Normal, {legs="Agwu's Slops",
  414. feet="Wicce Sabots +3",
  415. waist="Null Belt",
  416. right_ring="Stikini Ring +1"})
  417.  
  418. sets.idle.CP = {}
  419.  
  420. sets.idle.Craft = {head="Magnifying Specs.",
  421. body="Weaver's Smock",
  422. hands="Weaver's Cuffs",
  423. feet="Hermes' Sandals",
  424. neck="Weaver's Torque",
  425. waist="Weaver's Belt",
  426. left_ring="Orvail Ring +1",
  427. back="Shaper's Shawl",}
  428.  
  429. -- Idle mode scopes:
  430. -- Idle mode when weak.
  431. sets.idle.Weak = set_combine(sets.idle.Normal, {})
  432.  
  433. -- Defense sets
  434.  
  435. sets.defense.PDT = {}
  436.  
  437. sets.defense.MDT = {}
  438.  
  439. sets.Kiting = {feet="Herald's Gaiters"}
  440.  
  441. sets.latent_refresh = {waist="Fucho-no-obi"}
  442.  
  443. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  444.  
  445. sets.buff['Mana Wall'] = {feet="Wicce Sabots +3"}
  446. sets.buff.FullSublimation = {waist="Embla Sash"}
  447.  
  448. --Resting Set
  449.  
  450. sets.resting = set_combine(sets.idle.Normal, {main="Contemplator +1",
  451. sub="Mensch Strap +1",
  452. waist="Austerity Belt +1",
  453. right_ear="Magnetic Earring",
  454. right_ring="Stikini Ring +1",})
  455.  
  456. -- Engaged sets
  457.  
  458. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  459. -- sets if more refined versions aren't defined.
  460. -- If you create a set with both offense and defense modes, the offense mode should be first.
  461. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  462.  
  463. -- Normal melee group
  464. sets.engaged = {ammo="Oshasha's Treatise",
  465. head="Nyame Helm",
  466. body="Nyame Mail",
  467. hands="Gazu Bracelets +1",
  468. legs="Nyame Flanchard",
  469. feet="Nyame Sollerets",
  470. neck="Lissome Necklace",
  471. waist="Windbuffet Belt +1",
  472. left_ear="Telos Earring",
  473. right_ear="Mache Earring +1",
  474. left_ring="Chirich Ring +1",
  475. right_ring="Chirich Ring +1",
  476. back={ name="Taranus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  477.  
  478. sets.engaged.Acc = set_combine(sets.engaged, {neck="Combatant's Torque",
  479. waist="Eschan Stone",})
  480.  
  481. sets.engaged.DW = {ammo="Oshasha's Treatise",
  482. head={ name="Nyame Helm", augments={'Path: B',}},
  483. body={ name="Nyame Mail", augments={'Path: A',}},
  484. hands={ name="Gazu Bracelets +1", augments={'Path: A',}},
  485. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  486. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  487. neck="Lissome Necklace",
  488. waist="Windbuffet Belt +1",
  489. left_ear="Suppanomimi",
  490. right_ear="Eabani Earring",
  491. left_ring="Chirich Ring +1",
  492. right_ring="Chirich Ring +1",
  493. back={ name="Taranus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  494.  
  495. sets.engaged.DW.Acc = set_combine(sets.engaged.DW, {})
  496. end
  497.  
  498.  
  499. -------------------------------------------------------------------------------------------------------------------
  500. -- Job-specific hooks for non-casting events.
  501. -------------------------------------------------------------------------------------------------------------------
  502.  
  503. -- Called when a player gains or loses a buff.
  504. -- buff == buff gained or lost
  505. -- gain == true if the buff was gained, false if it was lost.
  506. function job_buff_change(buff, gain)
  507. -- Unlock feet when Mana Wall buff is lost.
  508. if buff == "Mana Wall" and not gain then
  509. enable('feet')
  510. handle_equipping_gear(player.status)
  511. end
  512. end
  513.  
  514. -- Handle notifications of general user state change.
  515. function job_state_change(stateField, newValue, oldValue)
  516. if stateField == 'Offense Mode' then
  517. if newValue == 'Normal' then
  518. disable('main','sub','range')
  519. else
  520. enable('main','sub','range')
  521. end
  522. end
  523. end
  524.  
  525.  
  526. -------------------------------------------------------------------------------------------------------------------
  527. -- User code that supplements standard library decisions.
  528. -------------------------------------------------------------------------------------------------------------------
  529.  
  530. -- Custom spell mapping.
  531. function job_get_spell_map(spell, default_spell_map)
  532. if spell.skill == 'Elemental Magic' and default_spell_map ~= 'ElementalEnfeeble' then
  533. --[[ No real need to differentiate with current gear.
  534. if lowTierNukes:contains(spell.english) then
  535. return 'LowTierNuke'
  536. else
  537. return 'HighTierNuke'
  538. end
  539. --]]
  540. end
  541. end
  542.  
  543. -- Modify the default idle set after it was constructed.
  544. function customize_idle_set(idleSet)
  545. if player.mpp < 51 then
  546. idleSet = set_combine(idleSet, sets.latent_refresh)
  547. end
  548.  
  549. if player.tp > 2750 then
  550. idleSet = set_combine(idleSet, {neck="Chrys. Torque"})
  551. end
  552.  
  553.  
  554. return idleSet
  555. end
  556.  
  557.  
  558. -- Function to display the current relevant user state when doing an update.
  559. function display_current_job_state(eventArgs)
  560. display_current_caster_state()
  561. eventArgs.handled = true
  562. end
  563.  
  564. function job_update(cmdParams, eventArgs)
  565. handle_equipping_gear(player.status)
  566. end
  567.  
  568. -------------------------------------------------------------------------------------------------------------------
  569. -- Utility functions specific to this job.
  570. -------------------------------------------------------------------------------------------------------------------
  571. function is_sc_element_today(spell)
  572. if spell.type ~= 'WeaponSkill' then
  573. return
  574. end
  575.  
  576. local weaponskill_elements = S{}:
  577. union(skillchain_elements[spell.skillchain_a]):
  578. union(skillchain_elements[spell.skillchain_b]):
  579. union(skillchain_elements[spell.skillchain_c])
  580.  
  581. if weaponskill_elements:contains(world.day_element) then
  582. return true
  583. else
  584. return false
  585. end
  586. end
  587. function job_self_command(cmdParams, eventArgs)
  588. gearinfo(cmdParams, eventArgs)
  589. end
  590.  
  591. function customize_idle_set(idleSet)
  592. if state.Buff['Sublimation: Activated'] then
  593. idleSet = set_combine(idleSet, sets.buff.FullSublimation)
  594. end
  595. if state.Buff['Mana Wall'] then
  596. idleSet = set_combine(idleSet, sets.buff['Mana Wall'])
  597. end
  598. if player.mpp < 51 then
  599. idleSet = set_combine(idleSet, sets.latent_refresh)
  600. end
  601. if player.tp > 2750 then
  602. idleSet = set_combine(idleSet, {neck="Chrys. Torque"})
  603. end
  604. return idleSet
  605. end
  606.  
  607. -- Run after the default midcast() is done.
  608. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  609. function job_post_midcast(spell, action, spellMap, eventArgs)
  610. if spellMap == 'Cure' and spell.target.type == 'SELF' then
  611. equip(sets.midcast.CureSelf)
  612. end
  613. if spell.skill == 'Elemental Magic' then
  614. if state.MagicBurst.value and spell.english ~= 'Death' then
  615. equip(sets.magic_burst)
  616. if spell.english == "Impact" then
  617. equip(sets.midcast.Impact)
  618. end
  619. end
  620. -- if (spell.element == world.day_element or spell.element == world.weather_element) then
  621. -- equip(sets.Obi)
  622. -- end
  623. if spell.skill == 'Elemental Magic' or spell.english == "Kaustra" then
  624. if spell.element == world.weather_element and (get_weather_intensity() == 2 and spell.element ~= elements.weak_to[world.day_element]) then
  625. equip(sets.Obi)
  626. -- Target distance under 1.7 yalms.
  627. elseif spell.target.distance < (1.7 + spell.target.model_size) then
  628. equip({waist="Orpheus's Sash"})
  629. -- Matching day and weather.
  630. elseif spell.element == world.day_element and spell.element == world.weather_element then
  631. equip(sets.Obi)
  632. -- Target distance under 8 yalms.
  633. elseif spell.target.distance < (8 + spell.target.model_size) then
  634. equip({waist="Orpheus's Sash"})
  635. -- Match day or weather.
  636. elseif spell.element == world.day_element or spell.element == world.weather_element then
  637. equip(sets.Obi)
  638. end
  639. end
  640. end
  641. end
  642.  
  643. function gearinfo(cmdParams, eventArgs)
  644. if cmdParams[1] == 'gearinfo' then
  645. if type(cmdParams[4]) == 'string' then
  646. if cmdParams[4] == 'true' then
  647. moving = true
  648. elseif cmdParams[4] == 'false' then
  649. moving = false
  650. end
  651. end
  652. if not midaction() then
  653. job_update()
  654. end
  655. end
  656. end
  657.  
  658. function update_sublimation()
  659. state.Buff['Sublimation: Activated'] = buffactive['Sublimation: Activated'] or false
  660. end
  661.  
  662. function job_buff_change(buff, gain)
  663. if buff == "Sublimation: Activated" then
  664. handle_equipping_gear(player.status)
  665. end
  666.  
  667. if buff == "doom" then
  668. if gain then
  669. equip(sets.buff.Doom)
  670. send_command('@input /p Doomed.')
  671. disable('ring1','ring2','waist')
  672. else
  673. enable('ring1','ring2','waist')
  674. handle_equipping_gear(player.status)
  675. end
  676. end
  677.  
  678. end
  679.  
  680. function check_moving()
  681. if state.DefenseMode.value == 'None' and state.Kiting.value == false then
  682. if state.Auto_Kite.value == false and moving then
  683. state.Auto_Kite:set(true)
  684. elseif state.Auto_Kite.value == true and moving == false then
  685. state.Auto_Kite:set(false)
  686. end
  687. end
  688. end
  689.  
  690. function check_gear()
  691. if no_swap_gear:contains(player.equipment.left_ring) then
  692. disable("ring1")
  693. else
  694. enable("ring1")
  695. end
  696. if no_swap_gear:contains(player.equipment.right_ring) then
  697. disable("ring2")
  698. else
  699. enable("ring2")
  700. end
  701. end
  702.  
  703. windower.register_event('zone change',
  704. function()
  705. if no_swap_gear:contains(player.equipment.left_ring) then
  706. enable("ring1")
  707. equip(sets.idle)
  708. end
  709. if no_swap_gear:contains(player.equipment.right_ring) then
  710. enable("ring2")
  711. equip(sets.idle)
  712. end
  713. end
  714. )
  715. -- Select default macro book on initial load or subjob change.
  716. function select_default_macro_book()
  717. set_macro_page(1, 15)
  718. end
Advertisement
Add Comment
Please, Sign In to add comment