bongarippa

EvdaWHM

Nov 16th, 2023 (edited)
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.89 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job. Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7. mote_include_version = 2
  8.  
  9. -- Load and initialize the include file.
  10. include('Mote-Include.lua')
  11. end
  12.  
  13. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  14. function job_setup()
  15. state.Buff['Afflatus Solace'] = buffactive['Afflatus Solace'] or false
  16. state.Buff['Afflatus Misery'] = buffactive['Afflatus Misery'] or false
  17. end
  18.  
  19. -------------------------------------------------------------------------------------------------------------------
  20. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  21. -------------------------------------------------------------------------------------------------------------------
  22.  
  23. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  24. function user_setup()
  25. state.OffenseMode:options('None', 'Normal')
  26. state.CastingMode:options('Normal', 'Resistant')
  27. state.IdleMode:options('Normal', 'PDT', 'Craft')
  28.  
  29. select_default_macro_book()
  30. end
  31.  
  32. -- Define sets and vars used by this job file.
  33. function init_gear_sets()
  34. --------------------------------------
  35. -- Start defining the sets
  36. --------------------------------------
  37.  
  38. -- Precast Sets
  39.  
  40. -- Fast cast sets for spells
  41. sets.precast.FC = {main="C. Palug Hammer",
  42. sub="Genmei Shield",
  43. ammo="Incantor Stone",
  44. head={ name="Vanya Hood", augments={'MP+50','"Fast Cast"+10','Haste+2%',}},
  45. body="Inyanga Jubbah +2",
  46. hands="Nyame Gauntlets",
  47. legs="Aya. Cosciales +2",
  48. feet="Regal Pumps +1",
  49. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  50. waist="Shinjutsu-no-Obi +1",
  51. left_ear="Odnowa Earring +1",
  52. right_ear="Loquac. Earring",
  53. left_ring="Kishar Ring",
  54. right_ring="Medada's Ring",
  55. back={ name="Alaunus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}},}
  56.  
  57. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {})
  58.  
  59. sets.precast.FC.Stoneskin = set_combine(sets.precast.FC['Enhancing Magic'], {})
  60.  
  61. sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, {legs="Ebers Pant. +2",
  62. feet="Hygieia Clogs +1",})
  63.  
  64. sets.precast.FC.StatusRemoval = sets.precast.FC['Healing Magic']
  65.  
  66. sets.precast.FC.Cure = set_combine(sets.precast.FC['Healing Magic'], {neck="Aceso's Choker +1",
  67. feet="Hygieia Clogs +1",
  68. lear="Mendi. Earring",})
  69. sets.precast.FC.Curaga = sets.precast.FC.Cure
  70. sets.precast.FC.CureSolace = sets.precast.FC.Cure
  71. -- CureMelee spell map should default back to Healing Magic.
  72.  
  73. sets.precast.FC.Impact = set_combine(sets.precast.FC, {head="Empty",
  74. body="Twilight Cloak"})
  75.  
  76. -- Precast sets to enhance JAs
  77. sets.precast.JA.Benediction = {body="Piety Bliaut +3"}
  78.  
  79. -- Waltz set (chr and vit)
  80. sets.precast.Waltz = {}
  81.  
  82.  
  83. -- Weaponskill sets
  84.  
  85. -- Default set for any weaponskill that isn't any more specifically defined
  86. gear.default.weaponskill_neck = "Fotia Necklace"
  87. gear.default.weaponskill_waist = ""
  88. sets.precast.WS = {ammo="Floestone",
  89. head="Aya. Zucchetto +2",
  90. body="Ayanmo Corazza +2",
  91. hands="Aya. Manopolas +2",
  92. legs="Aya. Cosciales +2",
  93. feet="Aya. Gambieras +2",
  94. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  95. waist="Grunfeld Rope",
  96. left_ear="Regal Earring",
  97. right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  98. left_ring="Petrov Ring",
  99. right_ring="Metamor. Ring +1",
  100. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  101.  
  102. sets.precast.WS['Flash Nova'] = set_combine(sets.precast.WS, {})
  103.  
  104.  
  105. -- midcast Sets
  106.  
  107. sets.midcast.FastRecast = {}
  108.  
  109. -- Cure sets
  110. gear.default.obi_waist = "Goading Belt"
  111. gear.default.obi_back = "Mending Cape"
  112.  
  113. sets.midcast.CureSolace = {main="Bunzi's Rod",
  114. sub="Sors Shield",
  115. ammo="Clarus Stone",
  116. head={ name="Kaykaus Mitra +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  117. body="Ebers Bliaut +2",
  118. hands="Theophany Mitts +3",
  119. legs="Ebers Pant. +2",
  120. feet={ name="Kaykaus Boots +1", augments={'Mag. Acc.+20','"Cure" potency +6%','"Fast Cast"+4',}},
  121. neck="Clr. Torque +1",
  122. waist="Luminary Sash",
  123. left_ear="Regal Earring",
  124. right_ear="Meili Earring",
  125. left_ring="Naji's Loop",
  126. right_ring="Mephitas's Ring +1",
  127. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  128.  
  129. sets.midcast.Cure = {main="Bunzi's Rod",
  130. sub="Sors Shield",
  131. ammo="Clarus Stone",
  132. head={ name="Kaykaus Mitra +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  133. body="Ebers Bliaut +2",
  134. hands="Theophany Mitts +3",
  135. legs="Ebers Pant. +2",
  136. feet={ name="Kaykaus Boots +1", augments={'Mag. Acc.+20','"Cure" potency +6%','"Fast Cast"+4',}},
  137. neck="Clr. Torque +1",
  138. waist="Luminary Sash",
  139. left_ear="Regal Earring",
  140. right_ear="Meili Earring",
  141. left_ring="Naji's Loop",
  142. right_ring="Mephitas's Ring +1",
  143. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  144.  
  145. sets.midcast.Curaga = {main="Daybreak",
  146. sub="Sors Shield",
  147. ammo="Leisure Musk +1",
  148. head={ name="Kaykaus Mitra +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  149. body="Ebers Bliaut +2",
  150. hands="Theophany Mitts +3",
  151. legs="Ebers Pant. +2",
  152. feet={ name="Kaykaus Boots +1", augments={'Mag. Acc.+20','"Cure" potency +6%','"Fast Cast"+4',}},
  153. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  154. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  155. left_ear="Novia Earring",
  156. right_ear="Meili Earring",
  157. left_ring="Naji's Loop",
  158. right_ring={ name="Mephitas's Ring +1", augments={'Path: A',}},
  159. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}},}
  160.  
  161. sets.midcast.CureMelee = set_combine(sets.midcast.Cure, {})
  162.  
  163. sets.midcast.Cursna = {
  164. main="Yagrush",
  165. sub="Ammurapi Shield",
  166. ammo="Staunch Tathlum",
  167. head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  168. body="Ebers Bliaut +2",
  169. hands={ name="Fanatic Gloves", augments={'MP+20','Healing magic skill +3',}},
  170. legs="Th. Pant. +3",
  171. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  172. neck="Debilis Medallion",
  173. waist="Luminary Sash",
  174. left_ear="Regal Earring",
  175. right_ear="Meili Earring",
  176. left_ring="Haoma's Ring",
  177. right_ring="Menelaus's Ring",
  178. back={ name="Alaunus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  179.  
  180. sets.midcast.StatusRemoval = {main="Yagrush",
  181. sub="Ammurapi Shield",
  182. ammo="Incantor Stone",
  183. head="Ebers Cap +2",
  184. body="Ebers Bliaut +2",
  185. hands="Theophany Mitts +3",
  186. legs={ name="Piety Pantaln. +3", augments={'Enhances "Afflatus Misery" effect',}},
  187. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  188. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  189. waist="Luminary Sash",
  190. left_ear="Regal Earring",
  191. right_ear="Meili Earring",
  192. left_ring="Stikini Ring +1",
  193. right_ring="Chirich Ring +1",
  194. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  195.  
  196. -- 110 total Enhancing Magic Skill; caps even without Light Arts
  197. sets.midcast['Enhancing Magic'] = {main="C. Palug Hammer",
  198. sub="Ammurapi Shield",
  199. ammo="Clarus Stone",
  200. head={ name="Telchine Cap", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
  201. body={ name="Telchine Chas.", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
  202. hands={ name="Telchine Gloves", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
  203. legs={ name="Telchine Braconi", augments={'"Conserve MP"+4','Enh. Mag. eff. dur. +10',}},
  204. feet="Theo. Duckbills +3",
  205. neck="Incanter's Torque",
  206. waist="Embla Sash",
  207. left_ear="Andoaa Earring",
  208. right_ear="Mimir Earring",
  209. left_ring="Stikini Ring +1",
  210. right_ring="Stikini Ring +1",
  211. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  212.  
  213. sets.midcast.Haste = sets.midcast['Enhancing Magic']
  214.  
  215. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'],{neck="Nodens Gorget"})
  216.  
  217. sets.midcast.Auspice = set_combine(sets.midcast['Enhancing Magic'],{feet="Ebers Duckbills +2"})
  218.  
  219. sets.midcast.BarElement = set_combine(sets.midcast['Enhancing Magic'],{
  220. main="Beneficus",
  221. sub="Ammurapi Shield",
  222. ammo="Clarus Stone",
  223. head="Ebers Cap +2",
  224. body="Ebers Bliaut +2",
  225. hands="Ebers Mitts +2",
  226. legs={ name="Piety Pantaln. +3", augments={'Enhances "Afflatus Misery" effect',}},
  227. feet="Ebers Duckbills +2",
  228. neck="Incanter's Torque",
  229. waist="Embla Sash",
  230. left_ear="Andoaa Earring",
  231. right_ear="Mimir Earring",
  232. left_ring="Stikini Ring +1",
  233. right_ring="Stikini Ring +1",
  234. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}})
  235.  
  236. sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {main="Bolelabunga",
  237. sub="Ammurapi Shield",
  238. head="Inyanga Tiara +2",
  239. body="Piety Bliaut +3",
  240. hands="Ebers Mitts +2",
  241. legs="Th. Pant. +3",
  242. feet="Bunzi's Sabots"})
  243.  
  244. sets.midcast.Protectra = sets.midcast['Enhancing Magic']
  245.  
  246. sets.midcast.Shellra = sets.midcast['Enhancing Magic']
  247.  
  248.  
  249. sets.midcast['Divine Magic'] = {main="Yagrush",
  250. sub="Culminus",
  251. ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  252. head="C. Palug Crown",
  253. body={ name="Vanya Robe", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  254. hands={ name="Fanatic Gloves", augments={'MP+20','Healing magic skill +3',}},
  255. legs="Th. Pant. +3",
  256. feet="Ebers Duckbills +2",
  257. neck="Incanter's Torque",
  258. waist="Luminary Sash",
  259. left_ear="Regal Earring",
  260. right_ear="Malignance Earring",
  261. left_ring="Medada's Ring",
  262. right_ring="Stikini Ring +1",
  263. back={ name="Alaunus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  264.  
  265. sets.midcast['Dark Magic'] = {}
  266.  
  267. -- Custom spell classes
  268. sets.midcast.MndEnfeebles = { main="Bunzi's Rod",
  269. sub="Culminus",
  270. ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  271. head="Befouled Crown",
  272. body="Theo. Bliaut +3",
  273. hands="Bunzi's Gloves",
  274. legs="Ebers Pant. +2",
  275. feet="Inyan. Crackows +2",
  276. neck="Incanter's Torque",
  277. waist="Luminary Sash",
  278. left_ear="Loquac. Earring",
  279. right_ear="Malignance Earring",
  280. left_ring="Medada's Ring",
  281. right_ring="Stikini Ring +1",
  282. back={ name="Aurist's Cape +1", augments={'Path: A',}}}
  283.  
  284. sets.midcast.IntEnfeebles = { main="Bunzi's Rod",
  285. sub="Culminus",
  286. ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  287. head="Befouled Crown",
  288. body="Theo. Bliaut +3",
  289. hands="Bunzi's Gloves",
  290. legs="Ebers Pant. +2",
  291. feet="Inyan. Crackows +2",
  292. neck="Incanter's Torque",
  293. waist="Luminary Sash",
  294. left_ear="Loquac. Earring",
  295. right_ear="Malignance Earring",
  296. left_ring="Medada's Ring",
  297. right_ring="Stikini Ring +1",
  298. back={ name="Aurist's Cape +1", augments={'Path: A',}}}
  299.  
  300. sets.midcast.Impact = sets.precast.FC.Impact
  301.  
  302.  
  303. -- Sets to return to when not performing an action.
  304.  
  305. -- Resting sets
  306. sets.resting = {main="Bolelabunga",
  307. sub="Ammurapi Shield",
  308. ammo="Homiliary",
  309. head="Befouled Crown",
  310. body="Ebers Bliaut +2",
  311. hands="Volte Gloves",
  312. legs="Assid. Pants +1",
  313. feet="Theo. Duckbills +3",
  314. neck="Sibyl Scarf",
  315. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  316. left_ear="Magnetic Earring",
  317. right_ear="Regal Earring",
  318. left_ring="Defending Ring",
  319. right_ring="Stikini Ring +1",
  320. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10',}}}
  321.  
  322.  
  323. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  324. sets.idle = { main="Daybreak",
  325. sub="Genmei Shield",
  326. ammo="Homiliary",
  327. head="Nyame Helm",
  328. body="Ebers Bliaut +2",
  329. hands={ name="Chironic Gloves", augments={'Pet: Accuracy+27 Pet: Rng. Acc.+27','Pet: "Dbl. Atk."+1','"Refresh"+2','Accuracy+18 Attack+18',}},
  330. legs={ name="Chironic Hose", augments={'Pet: "Regen"+5','Pet: CHR+8','"Refresh"+2','Mag. Acc.+3 "Mag.Atk.Bns."+3',}},
  331. feet="Herald's Gaiters",
  332. neck="Loricate Torque +1",
  333. waist="Fucho-no-Obi",
  334. left_ear="Odnowa Earring +1",
  335. right_ear="Genmei Earring",
  336. left_ring="Defending Ring",
  337. right_ring="Stikini Ring +1",
  338. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  339.  
  340. sets.idle.PDT = {main="Daybreak",
  341. sub="Genmei Shield",
  342. ammo="Homiliary",
  343. head="Nyame Helm",
  344. body="Ebers Bliaut +2",
  345. hands="Volte Gloves",
  346. legs="Ebers Pant. +2",
  347. feet="Nyame Sollerets",
  348. neck="Loricate Torque +1",
  349. waist="Plat. Mog. Belt",
  350. left_ear="Etiolation Earring",
  351. right_ear="Sanare Earring",
  352. left_ring="Defending Ring",
  353. right_ring="Stikini Ring +1",
  354. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  355.  
  356. sets.idle.Craft = {body="Blacksmith's Apn.",
  357. hands="Smithy's Mitts",
  358. neck="Smithy's Torque",
  359. waist="Blacksmith's Blt.",
  360. left_ring="Orvail Ring",}
  361.  
  362. sets.idle.Town = sets.idle
  363.  
  364. sets.idle.Weak = sets.idle.PDT
  365.  
  366. -- Defense sets
  367.  
  368. sets.defense.PDT = {main="Daybreak",
  369. sub="Genmei Shield",
  370. ammo="Homiliary",
  371. head="Inyanga Tiara +2",
  372. body="Ebers Bliaut +2",
  373. hands="Volte Gloves",
  374. legs="Ebers Pant. +2",
  375. feet="Herald's Gaiters",
  376. neck="Loricate Torque +1",
  377. waist="Plat. Mog. Belt",
  378. left_ear="Etiolation Earring",
  379. right_ear="Sanare Earring",
  380. left_ring="Defending Ring",
  381. right_ring="Stikini Ring +1",
  382. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  383.  
  384. sets.defense.MDT = {main="Daybreak",
  385. sub="Genmei Shield",
  386. ammo="Homiliary",
  387. head="Inyanga Tiara +2",
  388. body="Ebers Bliaut +2",
  389. hands="Volte Gloves",
  390. legs="Ebers Pant. +2",
  391. feet="Herald's Gaiters",
  392. neck="Loricate Torque +1",
  393. waist="Plat. Mog. Belt",
  394. left_ear="Etiolation Earring",
  395. right_ear="Sanare Earring",
  396. left_ring="Defending Ring",
  397. right_ring="Stikini Ring +1",
  398. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  399.  
  400. sets.Kiting = {feet="Herald's Gaiters"}
  401.  
  402. sets.latent_refresh = {waist="Fucho-no-obi"}
  403.  
  404. -- Engaged sets
  405.  
  406. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  407. -- sets if more refined versions aren't defined.
  408. -- If you create a set with both offense and defense modes, the offense mode should be first.
  409. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  410.  
  411. -- Basic set for if no TP weapon is defined.
  412. sets.engaged = {ammo="Jukukik Feather",
  413. head="Aya. Zucchetto +2",
  414. body="Ayanmo Corazza +2",
  415. hands="Aya. Manopolas +2",
  416. legs="Aya. Cosciales +2",
  417. feet="Aya. Gambieras +2",
  418. neck="Lissome Necklace",
  419. waist="Windbuffet Belt +1",
  420. left_ear="Brutal Earring",
  421. right_ear="Telos Earring",
  422. left_ring="Petrov Ring",
  423. right_ring="Hetairoi Ring",
  424. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  425.  
  426.  
  427. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  428. sets.buff['Divine Caress'] = {hands="Ebers Mitts +2",back="Mending Cape"}
  429. end
  430.  
  431. -------------------------------------------------------------------------------------------------------------------
  432. -- Job-specific hooks for standard casting events.
  433. -------------------------------------------------------------------------------------------------------------------
  434.  
  435. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  436. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  437. function job_precast(spell, action, spellMap, eventArgs)
  438. if spell.english == "Paralyna" and buffactive.Paralyzed then
  439. -- no gear swaps if we're paralyzed, to avoid blinking while trying to remove it.
  440. eventArgs.handled = true
  441. end
  442.  
  443. if spell.skill == 'Healing Magic' then
  444. gear.default.obi_back = "Mending Cape"
  445. else
  446. gear.default.obi_back = "Toro Cape"
  447. end
  448. end
  449.  
  450.  
  451. function job_post_midcast(spell, action, spellMap, eventArgs)
  452. -- Apply Divine Caress boosting items as highest priority over other gear, if applicable.
  453. if spellMap == 'StatusRemoval' and buffactive['Divine Caress'] then
  454. equip(sets.buff['Divine Caress'])
  455. end
  456. end
  457.  
  458. -------------------------------------------------------------------------------------------------------------------
  459. -- Job-specific hooks for non-casting events.
  460. -------------------------------------------------------------------------------------------------------------------
  461.  
  462. -- Handle notifications of general user state change.
  463. function job_state_change(stateField, newValue, oldValue)
  464. if stateField == 'Offense Mode' then
  465. if newValue == 'Normal' then
  466. disable('main','sub','range')
  467. else
  468. enable('main','sub','range')
  469. end
  470. end
  471. end
  472.  
  473.  
  474. -------------------------------------------------------------------------------------------------------------------
  475. -- User code that supplements standard library decisions.
  476. -------------------------------------------------------------------------------------------------------------------
  477.  
  478. -- Custom spell mapping.
  479. function job_get_spell_map(spell, default_spell_map)
  480. if spell.action_type == 'Magic' then
  481. if (default_spell_map == 'Cure' or default_spell_map == 'Curaga') and player.status == 'Engaged' then
  482. return "CureMelee"
  483. elseif default_spell_map == 'Cure' and state.Buff['Afflatus Solace'] then
  484. return "CureSolace"
  485. elseif spell.skill == "Enfeebling Magic" then
  486. if spell.type == "WhiteMagic" then
  487. return "MndEnfeebles"
  488. else
  489. return "IntEnfeebles"
  490. end
  491. end
  492. end
  493. end
  494.  
  495.  
  496. function customize_idle_set(idleSet)
  497. if player.mpp < 51 then
  498. idleSet = set_combine(idleSet, sets.latent_refresh)
  499. end
  500. return idleSet
  501. end
  502.  
  503. -- Called by the 'update' self-command.
  504. function job_update(cmdParams, eventArgs)
  505. if cmdParams[1] == 'user' and not areas.Cities:contains(world.area) then
  506. local needsArts =
  507. player.sub_job:lower() == 'sch' and
  508. not buffactive['Light Arts'] and
  509. not buffactive['Addendum: White'] and
  510. not buffactive['Dark Arts'] and
  511. not buffactive['Addendum: Black']
  512.  
  513. if not buffactive['Afflatus Solace'] and not buffactive['Afflatus Misery'] then
  514. if needsArts then
  515. send_command('@input /ja "Afflatus Solace" <me>;wait 1.2;input /ja "Light Arts" <me>')
  516. else
  517. send_command('@input /ja "Afflatus Solace" <me>')
  518. end
  519. end
  520. end
  521. end
  522.  
  523.  
  524. -- Function to display the current relevant user state when doing an update.
  525. function display_current_job_state(eventArgs)
  526. display_current_caster_state()
  527. eventArgs.handled = true
  528. end
  529.  
  530. -------------------------------------------------------------------------------------------------------------------
  531. -- Utility functions specific to this job.
  532. -------------------------------------------------------------------------------------------------------------------
  533.  
  534. -- Select default macro book on initial load or subjob change.
  535. function select_default_macro_book()
  536. -- Default macro set/book
  537. set_macro_page(2, 1)
  538. end-------------------------------------------------------------------------------------------------------------------
  539. -- Setup functions for this job. Generally should not be modified.
  540. -------------------------------------------------------------------------------------------------------------------
  541.  
  542. -- Initialization function for this job file.
  543. function get_sets()
  544. mote_include_version = 2
  545.  
  546. -- Load and initialize the include file.
  547. include('Mote-Include.lua')
  548. end
  549.  
  550. -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
  551. function job_setup()
  552. state.Buff['Afflatus Solace'] = buffactive['Afflatus Solace'] or false
  553. state.Buff['Afflatus Misery'] = buffactive['Afflatus Misery'] or false
  554. end
  555.  
  556. -------------------------------------------------------------------------------------------------------------------
  557. -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
  558. -------------------------------------------------------------------------------------------------------------------
  559.  
  560. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  561. function user_setup()
  562. state.OffenseMode:options('None', 'Normal')
  563. state.CastingMode:options('Normal', 'Resistant')
  564. state.IdleMode:options('Normal', 'PDT', 'Craft')
  565.  
  566. select_default_macro_book()
  567. end
  568.  
  569. -- Define sets and vars used by this job file.
  570. function init_gear_sets()
  571. --------------------------------------
  572. -- Start defining the sets
  573. --------------------------------------
  574.  
  575. -- Precast Sets
  576.  
  577. -- Fast cast sets for spells
  578. sets.precast.FC = {main="C. Palug Hammer",
  579. sub="Genmei Shield",
  580. ammo="Incantor Stone",
  581. head={ name="Vanya Hood", augments={'MP+50','"Fast Cast"+10','Haste+2%',}},
  582. body="Inyanga Jubbah +2",
  583. hands="Nyame Gauntlets",
  584. legs="Aya. Cosciales +2",
  585. feet="Regal Pumps +1",
  586. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  587. waist="Shinjutsu-no-Obi +1",
  588. left_ear="Odnowa Earring +1",
  589. right_ear="Loquac. Earring",
  590. left_ring="Kishar Ring",
  591. right_ring="Medada's Ring",
  592. back={ name="Alaunus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}},}
  593.  
  594. sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {})
  595.  
  596. sets.precast.FC.Stoneskin = set_combine(sets.precast.FC['Enhancing Magic'], {})
  597.  
  598. sets.precast.FC['Healing Magic'] = set_combine(sets.precast.FC, {legs="Ebers Pant. +2",
  599. feet="Hygieia Clogs +1",})
  600.  
  601. sets.precast.FC.StatusRemoval = sets.precast.FC['Healing Magic']
  602.  
  603. sets.precast.FC.Cure = set_combine(sets.precast.FC['Healing Magic'], {neck="Aceso's Choker +1",
  604. feet="Hygieia Clogs +1",
  605. lear="Mendi. Earring",})
  606. sets.precast.FC.Curaga = sets.precast.FC.Cure
  607. sets.precast.FC.CureSolace = sets.precast.FC.Cure
  608. -- CureMelee spell map should default back to Healing Magic.
  609.  
  610. sets.precast.FC.Impact = set_combine(sets.precast.FC, {head="Empty",
  611. body="Twilight Cloak"})
  612.  
  613. -- Precast sets to enhance JAs
  614. sets.precast.JA.Benediction = {body="Piety Bliaut +3"}
  615.  
  616. -- Waltz set (chr and vit)
  617. sets.precast.Waltz = {}
  618.  
  619.  
  620. -- Weaponskill sets
  621.  
  622. -- Default set for any weaponskill that isn't any more specifically defined
  623. gear.default.weaponskill_neck = "Fotia Necklace"
  624. gear.default.weaponskill_waist = ""
  625. sets.precast.WS = {ammo="Floestone",
  626. head="Aya. Zucchetto +2",
  627. body="Ayanmo Corazza +2",
  628. hands="Aya. Manopolas +2",
  629. legs="Aya. Cosciales +2",
  630. feet="Aya. Gambieras +2",
  631. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  632. waist="Grunfeld Rope",
  633. left_ear="Regal Earring",
  634. right_ear={ name="Moonshade Earring", augments={'Attack+4','TP Bonus +250',}},
  635. left_ring="Petrov Ring",
  636. right_ring="Metamor. Ring +1",
  637. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  638.  
  639. sets.precast.WS['Flash Nova'] = set_combine(sets.precast.WS, {})
  640.  
  641.  
  642. -- midcast Sets
  643.  
  644. sets.midcast.FastRecast = {}
  645.  
  646. -- Cure sets
  647. gear.default.obi_waist = "Goading Belt"
  648. gear.default.obi_back = "Mending Cape"
  649.  
  650. sets.midcast.CureSolace = {main="Bunzi's Rod",
  651. sub="Sors Shield",
  652. ammo="Clarus Stone",
  653. head={ name="Kaykaus Mitra +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  654. body="Ebers Bliaut +2",
  655. hands="Theophany Mitts +3",
  656. legs="Ebers Pant. +2",
  657. feet={ name="Kaykaus Boots +1", augments={'Mag. Acc.+20','"Cure" potency +6%','"Fast Cast"+4',}},
  658. neck="Clr. Torque +1",
  659. waist="Luminary Sash",
  660. left_ear="Regal Earring",
  661. right_ear="Meili Earring",
  662. left_ring="Naji's Loop",
  663. right_ring="Mephitas's Ring +1",
  664. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  665.  
  666. sets.midcast.Cure = {main="Bunzi's Rod",
  667. sub="Sors Shield",
  668. ammo="Clarus Stone",
  669. head={ name="Kaykaus Mitra +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  670. body="Ebers Bliaut +2",
  671. hands="Theophany Mitts +3",
  672. legs="Ebers Pant. +2",
  673. feet={ name="Kaykaus Boots +1", augments={'Mag. Acc.+20','"Cure" potency +6%','"Fast Cast"+4',}},
  674. neck="Clr. Torque +1",
  675. waist="Luminary Sash",
  676. left_ear="Regal Earring",
  677. right_ear="Meili Earring",
  678. left_ring="Naji's Loop",
  679. right_ring="Mephitas's Ring +1",
  680. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  681.  
  682. sets.midcast.Curaga = {main="Daybreak",
  683. sub="Sors Shield",
  684. ammo="Leisure Musk +1",
  685. head={ name="Kaykaus Mitra +1", augments={'MP+80','MND+12','Mag. Acc.+20',}},
  686. body="Ebers Bliaut +2",
  687. hands="Theophany Mitts +3",
  688. legs="Ebers Pant. +2",
  689. feet={ name="Kaykaus Boots +1", augments={'Mag. Acc.+20','"Cure" potency +6%','"Fast Cast"+4',}},
  690. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  691. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  692. left_ear="Novia Earring",
  693. right_ear="Meili Earring",
  694. left_ring="Naji's Loop",
  695. right_ring={ name="Mephitas's Ring +1", augments={'Path: A',}},
  696. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}},}
  697.  
  698. sets.midcast.CureMelee = set_combine(sets.midcast.Cure, {})
  699.  
  700. sets.midcast.Cursna = {
  701. main="Yagrush",
  702. sub="Ammurapi Shield",
  703. ammo="Staunch Tathlum",
  704. head={ name="Vanya Hood", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  705. body="Ebers Bliaut +2",
  706. hands={ name="Fanatic Gloves", augments={'MP+20','Healing magic skill +3',}},
  707. legs="Th. Pant. +3",
  708. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  709. neck="Debilis Medallion",
  710. waist="Luminary Sash",
  711. left_ear="Regal Earring",
  712. right_ear="Meili Earring",
  713. left_ring="Haoma's Ring",
  714. right_ring="Menelaus's Ring",
  715. back={ name="Alaunus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  716.  
  717. sets.midcast.StatusRemoval = {main="Yagrush",
  718. sub="Ammurapi Shield",
  719. ammo="Incantor Stone",
  720. head="Ebers Cap +2",
  721. body="Ebers Bliaut +2",
  722. hands="Theophany Mitts +3",
  723. legs={ name="Piety Pantaln. +3", augments={'Enhances "Afflatus Misery" effect',}},
  724. feet={ name="Vanya Clogs", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  725. neck={ name="Clr. Torque +1", augments={'Path: A',}},
  726. waist="Luminary Sash",
  727. left_ear="Regal Earring",
  728. right_ear="Meili Earring",
  729. left_ring="Stikini Ring +1",
  730. right_ring="Chirich Ring +1",
  731. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  732.  
  733. -- 110 total Enhancing Magic Skill; caps even without Light Arts
  734. sets.midcast['Enhancing Magic'] = {main="C. Palug Hammer",
  735. sub="Ammurapi Shield",
  736. ammo="Clarus Stone",
  737. head={ name="Telchine Cap", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
  738. body={ name="Telchine Chas.", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
  739. hands={ name="Telchine Gloves", augments={'"Conserve MP"+5','Enh. Mag. eff. dur. +10',}},
  740. legs={ name="Telchine Braconi", augments={'"Conserve MP"+4','Enh. Mag. eff. dur. +10',}},
  741. feet="Theo. Duckbills +3",
  742. neck="Incanter's Torque",
  743. waist="Embla Sash",
  744. left_ear="Andoaa Earring",
  745. right_ear="Mimir Earring",
  746. left_ring="Stikini Ring +1",
  747. right_ring="Stikini Ring +1",
  748. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  749.  
  750. sets.midcast.Haste = sets.midcast['Enhancing Magic']
  751.  
  752. sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'],{neck="Nodens Gorget"})
  753.  
  754. sets.midcast.Auspice = set_combine(sets.midcast['Enhancing Magic'],{feet="Ebers Duckbills +2"})
  755.  
  756. sets.midcast.BarElement = set_combine(sets.midcast['Enhancing Magic'],{
  757. main="Beneficus",
  758. sub="Ammurapi Shield",
  759. ammo="Clarus Stone",
  760. head="Ebers Cap +2",
  761. body="Ebers Bliaut +2",
  762. hands="Ebers Mitts +2",
  763. legs={ name="Piety Pantaln. +3", augments={'Enhances "Afflatus Misery" effect',}},
  764. feet="Ebers Duckbills +2",
  765. neck="Incanter's Torque",
  766. waist="Embla Sash",
  767. left_ear="Andoaa Earring",
  768. right_ear="Mimir Earring",
  769. left_ring="Stikini Ring +1",
  770. right_ring="Stikini Ring +1",
  771. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}})
  772.  
  773. sets.midcast.Regen = set_combine(sets.midcast['Enhancing Magic'], {main="Bolelabunga",
  774. sub="Ammurapi Shield",
  775. head="Inyanga Tiara +2",
  776. body="Piety Bliaut +3",
  777. hands="Ebers Mitts +2",
  778. legs="Th. Pant. +3",
  779. feet="Bunzi's Sabots"})
  780.  
  781. sets.midcast.Protectra = sets.midcast['Enhancing Magic']
  782.  
  783. sets.midcast.Shellra = sets.midcast['Enhancing Magic']
  784.  
  785.  
  786. sets.midcast['Divine Magic'] = {main="Yagrush",
  787. sub="Culminus",
  788. ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  789. head="C. Palug Crown",
  790. body={ name="Vanya Robe", augments={'Healing magic skill +20','"Cure" spellcasting time -7%','Magic dmg. taken -3',}},
  791. hands={ name="Fanatic Gloves", augments={'MP+20','Healing magic skill +3',}},
  792. legs="Th. Pant. +3",
  793. feet="Ebers Duckbills +2",
  794. neck="Incanter's Torque",
  795. waist="Luminary Sash",
  796. left_ear="Regal Earring",
  797. right_ear="Malignance Earring",
  798. left_ring="Medada's Ring",
  799. right_ring="Stikini Ring +1",
  800. back={ name="Alaunus's Cape", augments={'HP+60','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Phys. dmg. taken-10%',}}}
  801.  
  802. sets.midcast['Dark Magic'] = {}
  803.  
  804. -- Custom spell classes
  805. sets.midcast.MndEnfeebles = { main="Bunzi's Rod",
  806. sub="Culminus",
  807. ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  808. head="Befouled Crown",
  809. body="Theo. Bliaut +3",
  810. hands="Bunzi's Gloves",
  811. legs="Ebers Pant. +2",
  812. feet="Inyan. Crackows +2",
  813. neck="Incanter's Torque",
  814. waist="Luminary Sash",
  815. left_ear="Loquac. Earring",
  816. right_ear="Malignance Earring",
  817. left_ring="Medada's Ring",
  818. right_ring="Stikini Ring +1",
  819. back={ name="Aurist's Cape +1", augments={'Path: A',}}}
  820.  
  821. sets.midcast.IntEnfeebles = { main="Bunzi's Rod",
  822. sub="Culminus",
  823. ammo={ name="Ghastly Tathlum +1", augments={'Path: A',}},
  824. head="Befouled Crown",
  825. body="Theo. Bliaut +3",
  826. hands="Bunzi's Gloves",
  827. legs="Ebers Pant. +2",
  828. feet="Inyan. Crackows +2",
  829. neck="Incanter's Torque",
  830. waist="Luminary Sash",
  831. left_ear="Loquac. Earring",
  832. right_ear="Malignance Earring",
  833. left_ring="Medada's Ring",
  834. right_ring="Stikini Ring +1",
  835. back={ name="Aurist's Cape +1", augments={'Path: A',}}}
  836.  
  837. sets.midcast.Impact = sets.precast.FC.Impact
  838.  
  839.  
  840. -- Sets to return to when not performing an action.
  841.  
  842. -- Resting sets
  843. sets.resting = {main="Bolelabunga",
  844. sub="Ammurapi Shield",
  845. ammo="Homiliary",
  846. head="Befouled Crown",
  847. body="Ebers Bliaut +2",
  848. hands="Volte Gloves",
  849. legs="Assid. Pants +1",
  850. feet="Theo. Duckbills +3",
  851. neck="Sibyl Scarf",
  852. waist={ name="Shinjutsu-no-Obi +1", augments={'Path: A',}},
  853. left_ear="Magnetic Earring",
  854. right_ear="Regal Earring",
  855. left_ring="Defending Ring",
  856. right_ring="Stikini Ring +1",
  857. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10',}}}
  858.  
  859.  
  860. -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  861. sets.idle = { main="Daybreak",
  862. sub="Genmei Shield",
  863. ammo="Homiliary",
  864. head="Nyame Helm",
  865. body="Ebers Bliaut +2",
  866. hands={ name="Chironic Gloves", augments={'Pet: Accuracy+27 Pet: Rng. Acc.+27','Pet: "Dbl. Atk."+1','"Refresh"+2','Accuracy+18 Attack+18',}},
  867. legs={ name="Chironic Hose", augments={'Pet: "Regen"+5','Pet: CHR+8','"Refresh"+2','Mag. Acc.+3 "Mag.Atk.Bns."+3',}},
  868. feet="Herald's Gaiters",
  869. neck="Loricate Torque +1",
  870. waist="Fucho-no-Obi",
  871. left_ear="Odnowa Earring +1",
  872. right_ear="Genmei Earring",
  873. left_ring="Defending Ring",
  874. right_ring="Stikini Ring +1",
  875. back={ name="Alaunus's Cape", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','Enmity-10','Phys. dmg. taken-10%',}}}
  876.  
  877. sets.idle.PDT = {main="Daybreak",
  878. sub="Genmei Shield",
  879. ammo="Homiliary",
  880. head="Nyame Helm",
  881. body="Ebers Bliaut +2",
  882. hands="Volte Gloves",
  883. legs="Ebers Pant. +2",
  884. feet="Nyame Sollerets",
  885. neck="Loricate Torque +1",
  886. waist="Plat. Mog. Belt",
  887. left_ear="Etiolation Earring",
  888. right_ear="Sanare Earring",
  889. left_ring="Defending Ring",
  890. right_ring="Stikini Ring +1",
  891. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  892.  
  893. sets.idle.Craft = {body="Blacksmith's Apn.",
  894. hands="Smithy's Mitts",
  895. neck="Smithy's Torque",
  896. waist="Blacksmith's Blt.",
  897. left_ring="Orvail Ring",}
  898.  
  899. sets.idle.Town = sets.idle
  900.  
  901. sets.idle.Weak = sets.idle.PDT
  902.  
  903. -- Defense sets
  904.  
  905. sets.defense.PDT = {main="Daybreak",
  906. sub="Genmei Shield",
  907. ammo="Homiliary",
  908. head="Inyanga Tiara +2",
  909. body="Ebers Bliaut +2",
  910. hands="Volte Gloves",
  911. legs="Ebers Pant. +2",
  912. feet="Herald's Gaiters",
  913. neck="Loricate Torque +1",
  914. waist="Plat. Mog. Belt",
  915. left_ear="Etiolation Earring",
  916. right_ear="Sanare Earring",
  917. left_ring="Defending Ring",
  918. right_ring="Stikini Ring +1",
  919. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  920.  
  921. sets.defense.MDT = {main="Daybreak",
  922. sub="Genmei Shield",
  923. ammo="Homiliary",
  924. head="Inyanga Tiara +2",
  925. body="Ebers Bliaut +2",
  926. hands="Volte Gloves",
  927. legs="Ebers Pant. +2",
  928. feet="Herald's Gaiters",
  929. neck="Loricate Torque +1",
  930. waist="Plat. Mog. Belt",
  931. left_ear="Etiolation Earring",
  932. right_ear="Sanare Earring",
  933. left_ring="Defending Ring",
  934. right_ring="Stikini Ring +1",
  935. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  936.  
  937. sets.Kiting = {feet="Herald's Gaiters"}
  938.  
  939. sets.latent_refresh = {waist="Fucho-no-obi"}
  940.  
  941. -- Engaged sets
  942.  
  943. -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
  944. -- sets if more refined versions aren't defined.
  945. -- If you create a set with both offense and defense modes, the offense mode should be first.
  946. -- EG: sets.engaged.Dagger.Accuracy.Evasion
  947.  
  948. -- Basic set for if no TP weapon is defined.
  949. sets.engaged = {ammo="Jukukik Feather",
  950. head="Aya. Zucchetto +2",
  951. body="Ayanmo Corazza +2",
  952. hands="Aya. Manopolas +2",
  953. legs="Aya. Cosciales +2",
  954. feet="Aya. Gambieras +2",
  955. neck="Lissome Necklace",
  956. waist="Windbuffet Belt +1",
  957. left_ear="Brutal Earring",
  958. right_ear="Telos Earring",
  959. left_ring="Petrov Ring",
  960. right_ring="Hetairoi Ring",
  961. back={ name="Alaunus's Cape", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  962.  
  963.  
  964. -- Buff sets: Gear that needs to be worn to actively enhance a current player buff.
  965. sets.buff['Divine Caress'] = {hands="Ebers Mitts +2",back="Mending Cape"}
  966. end
  967.  
  968. -------------------------------------------------------------------------------------------------------------------
  969. -- Job-specific hooks for standard casting events.
  970. -------------------------------------------------------------------------------------------------------------------
  971.  
  972. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  973. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  974. function job_precast(spell, action, spellMap, eventArgs)
  975. if spell.english == "Paralyna" and buffactive.Paralyzed then
  976. -- no gear swaps if we're paralyzed, to avoid blinking while trying to remove it.
  977. eventArgs.handled = true
  978. end
  979.  
  980. if spell.skill == 'Healing Magic' then
  981. gear.default.obi_back = "Mending Cape"
  982. else
  983. gear.default.obi_back = "Toro Cape"
  984. end
  985. end
  986.  
  987.  
  988. function job_post_midcast(spell, action, spellMap, eventArgs)
  989. -- Apply Divine Caress boosting items as highest priority over other gear, if applicable.
  990. if spellMap == 'StatusRemoval' and buffactive['Divine Caress'] then
  991. equip(sets.buff['Divine Caress'])
  992. end
  993. end
  994.  
  995. -------------------------------------------------------------------------------------------------------------------
  996. -- Job-specific hooks for non-casting events.
  997. -------------------------------------------------------------------------------------------------------------------
  998.  
  999. -- Handle notifications of general user state change.
  1000. function job_state_change(stateField, newValue, oldValue)
  1001. if stateField == 'Offense Mode' then
  1002. if newValue == 'Normal' then
  1003. disable('main','sub','range')
  1004. else
  1005. enable('main','sub','range')
  1006. end
  1007. end
  1008. end
  1009.  
  1010.  
  1011. -------------------------------------------------------------------------------------------------------------------
  1012. -- User code that supplements standard library decisions.
  1013. -------------------------------------------------------------------------------------------------------------------
  1014.  
  1015. -- Custom spell mapping.
  1016. function job_get_spell_map(spell, default_spell_map)
  1017. if spell.action_type == 'Magic' then
  1018. if (default_spell_map == 'Cure' or default_spell_map == 'Curaga') and player.status == 'Engaged' then
  1019. return "CureMelee"
  1020. elseif default_spell_map == 'Cure' and state.Buff['Afflatus Solace'] then
  1021. return "CureSolace"
  1022. elseif spell.skill == "Enfeebling Magic" then
  1023. if spell.type == "WhiteMagic" then
  1024. return "MndEnfeebles"
  1025. else
  1026. return "IntEnfeebles"
  1027. end
  1028. end
  1029. end
  1030. end
  1031.  
  1032.  
  1033. function customize_idle_set(idleSet)
  1034. if player.mpp < 51 then
  1035. idleSet = set_combine(idleSet, sets.latent_refresh)
  1036. end
  1037. return idleSet
  1038. end
  1039.  
  1040. -- Called by the 'update' self-command.
  1041. function job_update(cmdParams, eventArgs)
  1042. if cmdParams[1] == 'user' and not areas.Cities:contains(world.area) then
  1043. local needsArts =
  1044. player.sub_job:lower() == 'sch' and
  1045. not buffactive['Light Arts'] and
  1046. not buffactive['Addendum: White'] and
  1047. not buffactive['Dark Arts'] and
  1048. not buffactive['Addendum: Black']
  1049.  
  1050. if not buffactive['Afflatus Solace'] and not buffactive['Afflatus Misery'] then
  1051. if needsArts then
  1052. send_command('@input /ja "Afflatus Solace" <me>;wait 1.2;input /ja "Light Arts" <me>')
  1053. else
  1054. send_command('@input /ja "Afflatus Solace" <me>')
  1055. end
  1056. end
  1057. end
  1058. end
  1059.  
  1060.  
  1061. -- Function to display the current relevant user state when doing an update.
  1062. function display_current_job_state(eventArgs)
  1063. display_current_caster_state()
  1064. eventArgs.handled = true
  1065. end
  1066.  
  1067. -------------------------------------------------------------------------------------------------------------------
  1068. -- Utility functions specific to this job.
  1069. -------------------------------------------------------------------------------------------------------------------
  1070.  
  1071. -- Select default macro book on initial load or subjob change.
  1072. function select_default_macro_book()
  1073. -- Default macro set/book
  1074. set_macro_page(2, 1)
  1075. end
Advertisement
Add Comment
Please, Sign In to add comment