Advertisement
Guest User

DRK

a guest
Oct 28th, 2021
851
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 81.99 KB | None | 0 0
  1. --[[
  2. === Features ===
  3. If you want auto Reive detection for Ygnas Resolve+1, and Gavialis Helm for some of your WS, then you will need my User-Globals.lua
  4. Otherwise, you might be able to get away without it. (not tested)
  5. If you don't use organizer, then remove the include('organizer-lib') in get_sets() and remove sets.Organizer
  6. This lua has a few MODES you can toggle with hotkeys or macros, and there's a few situational RULES that activate without hotkeys
  7. ::MODES::
  8. SouleaterMode
  9. Status: OFF by default.
  10. Hotkey: Toggle this with @F9 (window key + F9).
  11. Macro: /console gs c togggle SouleaterMode
  12. Notes: This mode makes it possible to use Souleater in situations where you would normally avoid using it. When SouleaterMode
  13. is ON, Souleater will be canceled automatically after the first Weaponskill used. CAVEAT -. If Bloodweapon
  14. is active, or if Drain's HP Boost buff is active, then Souleater will remain active until the next WS used after
  15. either buff wears off.
  16. CapacityMode
  17. Status: OFF by default.
  18. Hotkey: with ALT + =
  19. Macro: /console cs c toggle CapacityMode
  20. Notes: It will full-time whichever piece of gear you specify in sets.CapacityMantle
  21. Extra Info: You can change the default (true|false) status of any MODE by changing their values in job_setup()
  22. ::RULES::
  23. Gavialis helm
  24. Status: enabled
  25. Setting: set use_gavialis = true below in job_setup.
  26. Notes: wslist defines weaponskills uused with Gavialis helm. This is a recent change Jan/2020, as it
  27. used to be the opposite, where you defined ws's that you didn't want to use it.
  28. Ygna's Resolve +1
  29. Status: enabled in Reive
  30. Setting: n/a
  31. Notes: Will automatically be used when you're in a reive. If you have my User-Globals.lua this will work
  32. with all your jobs that use mote's includes. Not just this one!
  33. Moonshade earring
  34. Status: Not used for WS's at 3000 TP.
  35. Setting: n/a
  36. You can hit F12 to display custom MODE status as well as the default stuff.
  37. Single handed weapons are handled in the sets.engaged.SW set. (sword + shield, etc.)
  38. ::NOTES::
  39. My sets have a specific order, or they will not function correctly.
  40. sets.engaged.[CombatForm][CombatWeapon][Offense or HybridMode][CustomMeleeGroups or CustomClass]
  41. CombatForm = Haste, DW, SW
  42. CombatWeapon = GreatSword, Scythe, Apocalypse, Ragnarok, Caladbolg, Liberator, Anguta
  43. OffenseMode = Mid, Acc
  44. HybridMode = PDT
  45. CustomMeleeGroups = AM3, AM, Haste
  46. CustomClass = OhShit
  47. CombatForm Haste is used when Last Resort + Hasso AND either Haste, March, Indi-Haste Geo-Haste is on you.
  48. CombatForm DW will activate with /dnc or /nin AND a weapon listed in drk_sub_weapons equipped offhand.
  49. SW is active with an empty sub-slot, or a shield listed in the shields = S{} list.
  50. CombatWeapon GreatSword will activate when you equip a GS listed in gsList in job_setup().
  51. CombatWeapon Scythe will activate when you equip a Scythe listed in scytheList in job_setup().
  52. Weapons that do not fall into these groups, or have sets by weapon name, will use default sets.engaged
  53. most gear sets derrive themselves from sets.engaged, so try to keep it updated. It's much smarter to derrive sets than to
  54. completely re-invent each gear set for every weapon. Let your gear inherit. Less code written means less errors.
  55. CustomMeleeGroups AM3 will activate when Aftermath lvl 3 is up, and CustomMeleeGroups AM will activate when relic Aftermath is up.
  56. There are no empy AM sets for now.
  57. --]]
  58. --
  59. -- Initialization function for this job file.
  60. function get_sets()
  61. mote_include_version = 2
  62. -- Load and initialize the include file.
  63. include('Mote-Include.lua')
  64. include('organizer-lib')
  65. end
  66.  
  67.  
  68. -- Setup vars that are user-independent.
  69. function job_setup()
  70. state.CapacityMode = M(false, 'Capacity Point Mantle')
  71.  
  72. include('Mote-TreasureHunter')
  73. state.TreasureMode:set('None')
  74.  
  75. state.Buff.Souleater = buffactive.souleater or false
  76. state.Buff['Last Resort'] = buffactive['Last Resort'] or false
  77. -- Set the default to false if you'd rather SE always stay acitve
  78. state.SouleaterMode = M(true, 'Soul Eater Mode')
  79. -- state.LastResortMode = M(false, 'Last Resort Mode')
  80. -- Use Gavialis helm?
  81. use_gavialis = true
  82.  
  83. -- Weaponskills you want Gavialis helm used with (only considered if use_gavialis = true)
  84. wsList = S{'Entropy', 'Resolution'}
  85. -- Greatswords you use.
  86. gsList = S{'Malfeasance', 'Macbain', 'Kaquljaan', 'Mekosuchus Blade', 'Ragnarok', 'Raetic Algol', 'Raetic Algol +1', 'Caladbolg', 'Montante +1', 'Albion' }
  87. scytheList = S{'Liberator', 'Apocalypse', 'Anguta', 'Raetic Scythe', 'Deathbane', 'Twilight Scythe' }
  88. remaWeapons = S{'Apocalypse', 'Anguta', 'Liberator', 'Caladbolg', 'Ragnarok', 'Redemption'}
  89.  
  90. shields = S{'Rinda Shield'}
  91. -- Mote has capitalization errors in the default Absorb mappings, so we use our own
  92. absorbs = S{'Absorb-STR', 'Absorb-DEX', 'Absorb-VIT', 'Absorb-AGI', 'Absorb-INT', 'Absorb-MND', 'Absorb-CHR', 'Absorb-Attri', 'Absorb-ACC', 'Absorb-TP'}
  93. -- Offhand weapons used to activate DW mode
  94. swordList = S{"Sangarius", "Sangarius +1", "Usonmunku", "Perun +1", "Tanmogayi"}
  95. get_combat_form()
  96. get_melee_groups()
  97. update_melee_groups()
  98. end
  99.  
  100.  
  101. -- Setup vars that are user-dependent. Can override this function in a sidecar file.
  102. function user_setup()
  103. -- Options: Override default values
  104. state.OffenseMode:options('Normal', 'Mid', 'Acc')
  105. state.HybridMode:options('Normal', 'PDT')
  106. state.WeaponskillMode:options('Normal', 'Mid', 'Acc')
  107. state.CastingMode:options('Normal', 'Acc')
  108. state.IdleMode:options('Normal', 'Sphere')
  109. state.RestingMode:options('Normal')
  110. state.PhysicalDefenseMode:options('PDT', 'Reraise')
  111. state.MagicalDefenseMode:options('MDT')
  112. state.CombatWeapon = M('Caladbolg', 'Apocalypse', 'Liberator','Naegling','Loxotic','Hepatizon')
  113. state.CombatWeapons = M('Utu','Blurred')
  114.  
  115. war_sj = player.sub_job == 'WAR' or false
  116.  
  117. -- Additional local binds
  118. send_command('bind !o input /equip ring2 "Warp Ring"; /echo Warping; wait 11; input /item "Warp Ring" <me>;')
  119. send_command('bind ^= gs c cycle treasuremode')
  120. send_command('bind != gs c toggle CapacityMode')
  121. send_command('bind @f9 gs c toggle SouleaterMode')
  122. send_command('bind !- gs equip sets.crafting')
  123. send_command('bind !m input /map')
  124. send_command('bind ^p gs c cycle CombatWeapon')
  125. send_command('bind !p gs c cycleback CombatWeapon')
  126. send_command('bind ^[ gs c cycle CombatWeapons')
  127. send_command('bind ![ gs c cycleback CombatWeapons')
  128. send_command('unbind m')
  129.  
  130. select_default_macro_book(2)
  131. --send_command('bind ^` gs c toggle LastResortMode')
  132. target_distance = 8
  133. end
  134.  
  135. -- Called when this job file is unloaded (eg: job change)
  136. function file_unload()
  137. send_command('unbind ^`')
  138. send_command('unbind !=')
  139. send_command('unbind ^[')
  140. send_command('unbind ![')
  141. send_command('unbind @f9')
  142. end
  143.  
  144.  
  145. -- Define sets and vars used by this job file.
  146. function init_gear_sets()
  147. --------------------------------------
  148. -- Start defining the sets
  149. --------------------------------------
  150.  
  151. -- Precast Sets
  152. -- Precast sets to enhance JAs
  153. sets.precast.JA['Diabolic Eye'] = {hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}}}
  154. sets.precast.JA['Nether Void'] = {legs="Heathen's Flanchard +1"}
  155. sets.precast.JA['Dark Seal'] = {head={ name="Fall. Burgeonet +3", augments={'Enhances "Dark Seal" effect',}}}
  156. sets.precast.JA['Souleater'] = {head="Ig. Burgonet +3"}
  157. sets.precast.JA['Weapn Bash'] = {hands="Ig. Gauntlets +3"}
  158. sets.precast.JA['Blood Weapon'] = {body={ name="Fall. Cuirass +3", augments={'Enhances "Blood Weapon" effect',}}}
  159. sets.precast.JA['Last Resort'] = {feet={ name="Fall. Sollerets +3", augments={'Enhances "Desperate Blows" effect',}}}
  160. sets.precast.JA['Arcane Circle'] = {feet="Ig. Sollerets +3"}
  161. sets.precast.JA['Jump'] = sets.Jump
  162. sets.precast.JA['High Jump'] = sets.Jump
  163.  
  164. sets.Jump = { feet="Ostro Greaves" }
  165.  
  166. sets.CapacityMantle = { back="Mecistopins Mantle" }
  167. sets.WSDayBonus = { head="Gavialis Helm" }
  168. sets.WSBack = { back="Trepidity Mantle" }
  169.  
  170. -- Earring considerations, given Lugra's day/night stats
  171. sets.BrutalLugra = { ear1="Brutal Earring", ear2="Lugra Earring +1" }
  172. sets.IshvaraLugra = { ear1="Ishvara Earring", ear2="Lugra Earring +1" }
  173. sets.Lugra = { ear1="Lugra Earring +1" }
  174. sets.Brutal = { ear1="Brutal Earring" }
  175. sets.Ishvara = { ear1="Ishvara Earring" }
  176.  
  177. -- Waltz set (chr and vit)
  178. -- sets.precast.Waltz = {}
  179.  
  180. -- Fast cast sets for spells
  181. sets.precast.FC = {
  182. ammo="Sapience Orb",
  183. head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
  184. body={ name="Fall. Cuirass +3", augments={'Enhances "Blood Weapon" effect',}},
  185. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  186. legs={ name="Eschite Cuisses", augments={'"Mag.Atk.Bns."+25','"Conserve MP"+6','"Fast Cast"+5',}},
  187. feet={ name="Odyssean Greaves", augments={'"Fast Cast"+5','Attack+4',}},
  188. neck="Baetyl Pendant",
  189. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  190. left_ear=="Malignance Earring",
  191. right_ear="Loquac. Earring",
  192. left_ring="Kishar Ring",
  193. right_ring="Rahab Ring",
  194. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  195.  
  196. sets.precast.FC['Impact'] = {
  197. ammo="Sapience Orb",
  198. body="Twilight Cloak",
  199. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  200. legs={ name="Eschite Cuisses", augments={'"Mag.Atk.Bns."+25','"Conserve MP"+6','"Fast Cast"+5',}},
  201. feet={ name="Odyssean Greaves", augments={'"Fast Cast"+5','Attack+4',}},
  202. neck="Baetyl Pendant",
  203. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  204. left_ear=="Malignance Earring",
  205. right_ear="Loquac. Earring",
  206. left_ring="Kishar Ring",
  207. right_ring="Rahab Ring",
  208. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  209.  
  210. sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {
  211. neck="Baetyl Pendant",
  212. ear1="Friomisi Earring",
  213. ear2="Malignance Earring",
  214. body="Fall. Cuirass +3",
  215. hands="Fall. Fin. Gaunt. +3",
  216. feet="Heath. Sollerets +1",
  217. })
  218. sets.precast.FC['Enfeebling Magic'] = set_combine(sets.precast.FC, {
  219. head="Cizin Helm +1",
  220. })
  221. -- Midcast Sets
  222. sets.midcast.FastRecast = {
  223. ammo="Sapience Orb",
  224. head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
  225. body={ name="Fall. Cuirass +3", augments={'Enhances "Blood Weapon" effect',}},
  226. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  227. legs={ name="Eschite Cuisses", augments={'"Mag.Atk.Bns."+25','"Conserve MP"+6','"Fast Cast"+5',}},
  228. feet={ name="Odyssean Greaves", augments={'"Fast Cast"+5','Attack+4',}},
  229. neck="Baetyl Pendant",
  230. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  231. left_ear=="Malignance Earring",
  232. right_ear="Loquac. Earring",
  233. left_ring="Kishar Ring",
  234. right_ring="Rahab Ring",
  235. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}
  236. }
  237. sets.midcast.Trust = {ammo="Sapience Orb",
  238. head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
  239. body={ name="Fall. Cuirass +3", augments={'Enhances "Blood Weapon" effect',}},
  240. hands={ name="Leyline Gloves", augments={'Accuracy+15','Mag. Acc.+15','"Mag.Atk.Bns."+15','"Fast Cast"+3',}},
  241. legs={ name="Eschite Cuisses", augments={'"Mag.Atk.Bns."+25','"Conserve MP"+6','"Fast Cast"+5',}},
  242. feet={ name="Odyssean Greaves", augments={'"Fast Cast"+5','Attack+4',}},
  243. neck="Baetyl Pendant",
  244. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  245. left_ear=="Malignance Earring",
  246. right_ear="Loquac. Earring",
  247. left_ring="Kishar Ring",
  248. right_ring="Rahab Ring",
  249. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  250.  
  251. -- Specific spells
  252. sets.midcast['Dark Magic'] = {
  253. ammo="Pemphredo Tathlum",
  254. head="Ratri Sallet +1",
  255. neck="Erra Pendant",
  256. ear1="Malignance Earring",
  257. ear2="Dark Earring",
  258. body="Fallen's Cuirass +3",
  259. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  260. waist="Casso Sash",
  261. ring1="Evanescence Ring",
  262. ring2="Archon Ring",
  263. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}},
  264. legs="Fallen's Flanchard +3",
  265. feet="Ratri Sollerets +1"}
  266.  
  267. sets.midcast['Sleep II'] = {
  268. ammo="Pemphredo Tathlum",
  269. head="Ratri Sallet +1",
  270. neck="Erra Pendant",
  271. ear1="Malignance Earring",
  272. ear2="Dark Earring",
  273. body="Fallen's Cuirass +3",
  274. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  275. waist="Casso Sash",
  276. ring1="Evanescence Ring",
  277. ring2="Archon Ring",
  278. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}},
  279. legs="Fallen's Flanchard +3",
  280. feet="Ratri Sollerets +1"}
  281.  
  282. sets.midcast['Sleep II'].Acc = {
  283. ammo="Pemphredo Tathlum",
  284. head="Carmine Mask +1",
  285. neck="Erra Pendant",
  286. ear1="Digni. Earring",
  287. ear2="Malignance Earring",
  288. body="Ratri Plate +1",
  289. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  290. ring1="Stikini Ring +1",
  291. ring2="Stikini Ring +1",
  292. waist="Eschan Stone",
  293. legs="Ratri Cuisses +1",
  294. feet="Ig. Sollerets +3",
  295. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  296.  
  297. sets.midcast['Break'] = {
  298. ammo="Pemphredo Tathlum",
  299. head="Ratri Sallet +1",
  300. neck="Erra Pendant",
  301. ear1="Malignance Earring",
  302. ear2="Dark Earring",
  303. body="Fallen's Cuirass +3",
  304. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  305. waist="Casso Sash",
  306. ring1="Evanescence Ring",
  307. ring2="Archon Ring",
  308. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}},
  309. legs="Fallen's Flanchard +3",
  310. feet="Ratri Sollerets +1"}
  311.  
  312. sets.midcast['Break'].Acc = {
  313. ammo="Pemphredo Tathlum",
  314. head="Carmine Mask +1",
  315. neck="Erra Pendant",
  316. ear1="Digni. Earring",
  317. ear2="Malignance Earring",
  318. body="Ratri Plate +1",
  319. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  320. ring1="Stikini Ring +1",
  321. ring2="Stikini Ring +1",
  322. waist="Eschan Stone",
  323. legs="Ratri Cuisses +1",
  324. feet="Ig. Sollerets +3",
  325. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  326.  
  327. sets.midcast['Impact'] = {
  328. ammo="Pemphredo Tathlum",
  329. neck="Erra Pendant",
  330. ear1="Malignance Earring",
  331. ear2="Dark Earring",
  332. body="Twilight Cloak",
  333. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  334. waist="Casso Sash",
  335. ring1="Evanescence Ring",
  336. ring2="Archon Ring",
  337. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}},
  338. legs="Fallen's Flanchard +3",
  339. feet="Ratri Sollerets +1"}
  340.  
  341. sets.midcast['Impact'].Acc = {
  342. ammo="Pemphredo Tathlum",
  343. neck="Erra Pendant",
  344. ear1="Digni. Earring",
  345. ear2="Malignance Earring",
  346. body="Twilight Cloak",
  347. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  348. ring1="Stikini Ring +1",
  349. ring2="Stikini Ring +1",
  350. waist="Eschan Stone",
  351. legs="Ratri Cuisses +1",
  352. feet="Ig. Sollerets +3",
  353. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  354.  
  355.  
  356. sets.midcast.Endark = {
  357. ammo="Pemphredo Tathlum",
  358. head="Ig. Burgonet +3",
  359. body={ name="Carm. Sc. Mail +1", augments={'MP+80','INT+12','MND+12',}},
  360. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  361. legs="Heath. Flanchard +1",
  362. feet="Rat. Sollerets +1",
  363. neck="Erra Pendant",
  364. waist="Casso Sash",
  365. left_ear="Mani Earring",
  366. right_ear="Dark Earring",
  367. left_ring="Evanescence Ring",
  368. right_ring="Stikini Ring +1",
  369. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}}
  370. }
  371.  
  372. sets.midcast['Dark Magic'].Acc = {
  373. ammo="Pemphredo Tathlum",
  374. head="Carmine Mask +1",
  375. neck="Erra Pendant",
  376. ear1="Digni. Earring",
  377. ear2="Malignance Earring",
  378. body="Ratri Plate +1",
  379. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  380. ring1="Stikini Ring +1",
  381. ring2="Stikini Ring +1",
  382. waist="Eschan Stone",
  383. legs="Ratri Cuisses +1",
  384. feet="Ig. Sollerets +3",
  385. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  386.  
  387. sets.midcast['Enfeebling Magic'] = {
  388. ammo="Pemphredo Tathlum",
  389. head="Befouled Crown",
  390. neck="Erra Pendant", -- 10 + 17 macc
  391. body="Ignominy Cuirass +3",
  392. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  393. ring1="Kishar Ring",
  394. ring2="Regal Ring", -- 10 macc
  395. waist="Eschan Stone",
  396. legs="Fallen's Flanchard +3", -- 18 + 39macc
  397. back="Aput Mantle",
  398. feet="Flamma Gambieras +2"
  399. }
  400.  
  401. sets.midcast['Elemental Magic'] = {
  402. ammo="Pemphredo Tathlum",
  403. head={ name="Jumalik Helm", augments={'MND+10','"Mag.Atk.Bns."+15','Magic burst dmg.+10%','"Refresh"+1',}},
  404. body={ name="Fall. Cuirass +3", augments={'Enhances "Blood Weapon" effect',}},
  405. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  406. legs="Augury Cuisses +1",
  407. feet="Heath. Sollerets +1",
  408. neck="Baetyl Pendant",
  409. waist="Eschan Stone",
  410. left_ear="Malignance Earring",
  411. right_ear="Friomisi Earring",
  412. left_ring="Stikini Ring +1",
  413. right_ring="Stikini Ring +1",
  414. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  415.  
  416. -- Mix of HP boost, -Spell interruption%, and Dark Skill
  417. sets.midcast['Dread Spikes'] = {
  418. ammo="Egoist's Tathlum",
  419. head="Ratri Sallet +1",
  420. body="Heath. Cuirass +1",
  421. hands="Rat. Gadlings +1",
  422. legs="Ratri Cuisses +1",
  423. feet="Rat. Sollerets +1",
  424. neck="Unmoving Collar +1",
  425. waist="Oneiros Belt",
  426. left_ear="Odnowa Earring +1",
  427. right_ear="Tuisto Earring",
  428. left_ring="Moonlight Ring",
  429. right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
  430. back="Moonlight Cape",
  431. }
  432.  
  433. -- Drain spells
  434. sets.midcast.Drain = {
  435. ammo="Pemphredo Tathlum",
  436. {head={ name="Fall. Burgeonet +3", augments={'Enhances "Dark Seal" effect',}}},
  437. body={ name="Carm. Sc. Mail +1", augments={'MP+80','INT+12','MND+12',}},
  438. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  439. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  440. feet="Rat. Sollerets +1",
  441. neck="Erra Pendant",
  442. waist="Austerity Belt +1",
  443. left_ear="Hirudinea Earring",
  444. right_ear="Malignance Earring",
  445. left_ring="Archon Ring",
  446. right_ring="Evanescence Ring",
  447. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}}}
  448.  
  449. sets.midcast.Aspir = sets.midcast.Drain
  450.  
  451. sets.midcast.Drain.Acc = {
  452. ammo="Pemphredo Tathlum",
  453. {head={ name="Fall. Burgeonet +3", augments={'Enhances "Dark Seal" effect',}}},
  454. body={ name="Carm. Sc. Mail +1", augments={'MP+80','INT+12','MND+12',}},
  455. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  456. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  457. feet="Rat. Sollerets +1",
  458. neck="Erra Pendant",
  459. waist="Austerity Belt +1",
  460. left_ear="Hirudinea Earring",
  461. right_ear="Malignance Earring",
  462. left_ring="Archon Ring",
  463. right_ring="Evanescence Ring",
  464. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}}}
  465.  
  466. sets.midcast.Aspir.Acc = {
  467. ammo="Pemphredo Tathlum",
  468. {head={ name="Fall. Burgeonet +3", augments={'Enhances "Dark Seal" effect',}}},
  469. body={ name="Carm. Sc. Mail +1", augments={'MP+80','INT+12','MND+12',}},
  470. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  471. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  472. feet="Rat. Sollerets +1",
  473. neck="Erra Pendant",
  474. waist="Austerity Belt +1",
  475. left_ear="Hirudinea Earring",
  476. right_ear="Malignance Earring",
  477. left_ring="Archon Ring",
  478. right_ring="Evanescence Ring",
  479. back={ name="Niht Mantle", augments={'Attack+7','Dark magic skill +9','"Drain" and "Aspir" potency +24',}}}
  480.  
  481. -- Absorbs
  482. sets.midcast.Absorb = {
  483. ammo="Pemphredo Tathlum",
  484. head="Ig. Burgonet +3",
  485. body={ name="Carm. Sc. Mail +1", augments={'MP+80','INT+12','MND+12',}},
  486. hands="Pavor Gauntlets",
  487. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  488. feet="Rat. Sollerets +1",
  489. neck="Erra Pendant",
  490. waist="Casso Sash",
  491. left_ear="Mani Earring",
  492. right_ear="Dark Earring",
  493. left_ring="Kishar Ring",
  494. right_ring="Stikini Ring +1",
  495. back="Chuparrosa Mantle",}
  496.  
  497. sets.midcast.Absorb.Acc = {
  498. ammo="Pemphredo Tathlum",
  499. head="Carmine Mask +1",
  500. neck="Erra Pendant",
  501. ear1="Digni. Earring",
  502. ear2="Malignance Earring",
  503. body={ name="Carm. Sc. Mail +1", augments={'MP+80','INT+12','MND+12',}},
  504. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  505. ring1="Stikini Ring +1",
  506. ring2="Stikini Ring +1",
  507. waist="Eschan Stone",
  508. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  509. feet="Rat. Sollerets +1",
  510. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  511.  
  512. sets.midcast['Absorb-TP'] = set_combine(sets.midcast.Absorb,{
  513. hands="Heathen's Gauntlets +1",
  514. ring1="Evanescence Ring",
  515. hands="Pavor Gauntlets",
  516. ring2="Kishar Ring",
  517. })
  518.  
  519. sets.midcast['Absorb-TP'].Acc = {
  520. ammo="Pemphredo Tathlum",
  521. head="Carmine Mask +1",
  522. neck="Erra Pendant",
  523. ear1="Digni. Earring",
  524. ear2="Malignance Earring",
  525. body={ name="Carm. Sc. Mail +1", augments={'MP+80','INT+12','MND+12',}},
  526. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  527. ring1="Stikini Ring +1",
  528. ring2="Stikini Ring +1",
  529. waist="Eschan Stone",
  530. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  531. feet="Rat. Sollerets +1",
  532. back={ name="Ankou's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','"Fast Cast"+10','Damage taken-2%',}}}
  533.  
  534. sets.midcast['Blue Magic'] = set_combine(sets.midcast['Dark Magic'], {
  535. ear2="Malignance Earring", -- 3
  536. waist="Eschan Stone", -- 5
  537. ring1="Sangoma Ring", -- 10
  538. ring2="Weatherspoon Ring", -- 10 macc
  539. back="Aput Mantle",
  540. legs="Fallen's Flanchard +3", -- 18 + 39macc
  541. feet="Ratri Sollerets +1" -- macc 33
  542. })
  543.  
  544. --------------------------------------
  545. -- Weapons
  546. --------------------------------------
  547. sets.weapons = {}
  548. sets.weapons.Liberator = {main={ name="Liberator", augments={'Path: A',}}}
  549. sets.weapons.Caladbolg = {main={ name="Caladbolg", augments={'Path: A',}}}
  550. sets.weapons.Apocalypse = {main={ name="Apocalypse", augments={'Path: A',}}}
  551. sets.weapons.Naegling = {main={ name="Naegling"}}
  552. sets.weapons.Loxotic = {main={ name="Loxotic Mace +1", augments={'Path: A',}}}
  553. sets.weapons.Hepatizon = {main={ name="Hepatizon Axe +1"}}
  554.  
  555. sets.weapons.Utu = {sub="Utu Grip",}
  556. sets.weapons.Blurred = {sub="Blurred Shield +1"}
  557.  
  558. -- WEAPONSKILL SETS
  559. -- General sets
  560. sets.precast.WS = {
  561. ammo="Knobkierrie",
  562. head={ name="Sakpata's Helm", augments={'Path: A',}},
  563. body="Ignominy Cuirass +3",
  564. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  565. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  566. feet="Sulev. Leggings +2",
  567. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  568. waist="Fotia Belt",
  569. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  570. right_ear="Thrud Earring",
  571. left_ring="Karieyh Ring +1",
  572. right_ring="Epaminondas's Ring",
  573. back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Damage taken-5%',}}}
  574.  
  575. sets.precast.WS.Mid = set_combine(sets.precast.WS, {
  576. legs="Fallen's Flanchard +3",
  577. })
  578. sets.precast.WS.Acc = set_combine(sets.precast.WS.Mid, {
  579. body="Fallen's Cuirass +3",
  580. waist="Olseni Belt",
  581. })
  582.  
  583. -- RESOLUTION
  584. -- 86-100% STR
  585. sets.precast.WS.Resolution = set_combine(sets.precast.WS, {
  586. head="Sakpata's Helm",
  587. neck="Breeze Gorget",
  588. --body="Valorous Mail",
  589. hands="Sulevia's Gauntlets +2",
  590. waist="Soil Belt",
  591. legs="Fallen's Flanchard +3",
  592. feet="Sulevia's Leggings +2"
  593. })
  594. sets.precast.WS.Resolution.Mid = set_combine(sets.precast.WS.Resolution, {
  595. head="Flamma Zucchetto +2",
  596. })
  597. sets.precast.WS.Resolution.Acc = set_combine(sets.precast.WS.Resolution.Mid, {
  598. ammo={ name="Seeth. Bomblet +1", augments={'Path: A',}},
  599. legs="Fallen's Flanchard +3",
  600. feet="Sulevia's Leggings +2"
  601. })
  602.  
  603. -- TORCLEAVER
  604. -- VIT 80%
  605. sets.precast.WS.Torcleaver = set_combine(sets.precast.WS, {
  606. ammo="Knobkierrie",
  607. head={ name="Odyssean Helm", augments={'Weapon skill damage +4%','VIT+11','Accuracy+15','Attack+6',}},
  608. body="Ignominy Cuirass +3",
  609. hands={ name="Odyssean Gauntlets", augments={'Accuracy+29','Weapon skill damage +5%','VIT+7','Attack+15',}},
  610. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  611. feet="Sulev. Leggings +2",
  612. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  613. waist="Fotia Belt",
  614. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  615. right_ear="Thrud Earring",
  616. left_ring="Karieyh Ring +1",
  617. right_ring={ name="Gelatinous Ring +1", augments={'Path: A',}},
  618. back={ name="Ankou's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}})
  619.  
  620. sets.precast.WS.Torcleaver.Mid = set_combine(sets.precast.WS.Torcleaver, {
  621. head={ name="Sakpata's Helm", augments={'Path: A',}},
  622. })
  623. sets.precast.WS.Torcleaver.Acc = set_combine(sets.precast.WS.Torcleaver.Mid, {
  624. hands="Sakpata's Gauntlets",
  625. })
  626.  
  627. --Judgement
  628.  
  629. sets.precast.WS['Shockwave'] = {
  630. ammo="Pemphredo Tathlum",
  631. head={ name="Nyame Helm", augments={'Path: B',}},
  632. body={ name="Nyame Mail", augments={'Path: B',}},
  633. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  634. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  635. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  636. neck="Erra Pendant",
  637. waist="Luminary Sash",
  638. left_ear="Gwati Earring",
  639. right_ear="Digni. Earring",
  640. left_ring="Stikini Ring +1",
  641. right_ring="Stikini Ring +1",
  642. back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Damage taken-5%',}}}
  643.  
  644. sets.precast.WS['Judgement'] = {ammo="Knobkierrie",
  645. head={ name="Sakpata's Helm", augments={'Path: A',}},
  646. body="Ignominy Cuirass +3",
  647. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  648. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  649. feet="Sulev. Leggings +2",
  650. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  651. waist="Fotia Belt",
  652. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  653. right_ear="Thrud Earring",
  654. left_ring="Karieyh Ring +1",
  655. right_ring="Epaminondas's Ring",
  656. back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Damage taken-5%',}}}
  657.  
  658.  
  659. --Savage Blade
  660. sets.precast.WS['Savage Blade'] = set_combine(sets.precast.WS, {
  661. ammo="Knobkierrie",
  662. head={ name="Sakpata's Helm", augments={'Path: A',}},
  663. body="Ignominy Cuirass +3",
  664. hands={ name="Odyssean Gauntlets", augments={'Accuracy+29','Weapon skill damage +5%','VIT+7','Attack+15',}},
  665. legs={ name="Fall. Flanchard +3", augments={'Enhances "Muted Soul" effect',}},
  666. feet="Sulev. Leggings +2",
  667. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  668. waist="Fotia Belt",
  669. left_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  670. right_ear="Thrud Earring",
  671. left_ring="Karieyh Ring +1",
  672. right_ring="Epaminondas's Ring",
  673. back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Damage taken-5%',}}})
  674.  
  675. sets.precast.WS['Full Break'] = set_combine(sets.precast.WS, {
  676. ammo="Knobkierrie",
  677. head="Sakpata's Helm",
  678. body="Ignominy Cuirass +3",
  679. hands="Rat. Gadlings +1",
  680. legs="Ratri Cuisses +1",
  681. feet="Rat. Sollerets +1",
  682. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  683. waist="Fotia Belt",
  684. left_ear="Thrud Earring",
  685. right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  686. left_ring="Karieyh Ring +1",
  687. right_ring="Regal Ring",
  688. back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Damage taken-5%',}}})
  689.  
  690. sets.precast.WS['Armor Break'] = set_combine(sets.precast.WS, {
  691. ammo="Knobkierrie",
  692. head="Sakpata's Helm",
  693. body="Ignominy Cuirass +3",
  694. hands="Rat. Gadlings +1",
  695. legs="Ratri Cuisses +1",
  696. feet="Rat. Sollerets +1",
  697. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  698. waist="Fotia Belt",
  699. left_ear="Thrud Earring",
  700. right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  701. left_ring="Karieyh Ring +1",
  702. right_ring="Regal Ring",
  703. back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Damage taken-5%',}}})
  704.  
  705.  
  706. -- INSURGENCY
  707. -- 20% STR / 20% INT
  708. -- Base set only used at 3000TP to put AM3 up
  709. sets.precast.WS.Insurgency = set_combine(sets.precast.WS, {
  710. ammo="Knobkierrie",
  711. head="Sakpata's Helm",
  712. body="Ignominy Cuirass +3",
  713. hands="Rat. Gadlings +1",
  714. legs="Ratri Cuisses +1",
  715. feet="Rat. Sollerets +1",
  716. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  717. waist="Fotia Belt",
  718. left_ear="Thrud Earring",
  719. right_ear={ name="Moonshade Earring", augments={'Accuracy+4','TP Bonus +250',}},
  720. left_ring="Niqmaddu Ring",
  721. right_ring="Regal Ring",
  722. back={ name="Ankou's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Damage taken-5%',}}}
  723. )
  724. sets.precast.WS.Insurgency.Mid = set_combine(sets.precast.WS.Insurgency, {
  725. head="Sakpata's Helm",
  726. })
  727. sets.precast.WS.Insurgency.Acc = set_combine(sets.precast.WS.Insurgency.Mid, {
  728. ammo={ name="Seeth. Bomblet +1", augments={'Path: A',}},
  729. body="Ignominy Cuirass +3",
  730. })
  731.  
  732. sets.precast.WS.Catastrophe = set_combine(sets.precast.WS, {
  733. ammo="Knobkierrie",
  734. head={ name="Nyame Helm", augments={'Path: B',}},
  735. body={ name="Nyame Mail", augments={'Path: B',}},
  736. hands={ name="Nyame Gauntlets", augments={'Path: B',}},
  737. legs={ name="Nyame Flanchard", augments={'Path: B',}},
  738. feet={ name="Nyame Sollerets", augments={'Path: B',}},
  739. neck="Abyssal Beads +2",
  740. ear1="Lugra Earring +1",
  741. ear2="Thrud Earring",
  742. ring1="Niqmaddu Ring",
  743. ring2="Epaminondas's Ring",
  744. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  745. })
  746. sets.precast.WS.Catastrophe.Mid = set_combine(sets.precast.WS.Catastrophe, {})
  747. sets.precast.WS.Catastrophe.Acc = set_combine(sets.precast.WS.Catastrophe.Mid, {
  748. --body="Ratri Breastplate +1",
  749. })
  750.  
  751. sets.precast.WS['Fell Cleave'] = set_combine(sets.precast.WS.Catastrophe, {
  752. head="Valorous Mask",
  753. feet="Sulevia's Leggings +2"
  754. })
  755.  
  756. -- CROSS REAPER
  757. -- 60% STR / 60% MND
  758. sets.precast.WS['Cross Reaper'] = set_combine(sets.precast.WS, {
  759. head="Ratri Sallet +1",
  760. body="Ignominy Cuirass +3",
  761. hands="Rat. Gadlings +1",
  762. legs="Ratri Cuisses +1",
  763. feet="Rat. Sollerets +1",
  764. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  765. })
  766. sets.precast.WS['Cross Reaper'].Mid = set_combine(sets.precast.WS['Cross Reaper'], {
  767.  
  768. })
  769. sets.precast.WS['Cross Reaper'].Acc = set_combine(sets.precast.WS['Cross Reaper'].Mid, {
  770. ammo={ name="Seeth. Bomblet +1", augments={'Path: A',}},
  771. body="Fallen's Cuirass +3",
  772. })
  773. -- ENTROPY
  774. -- 86-100% INT
  775. sets.precast.WS.Entropy = set_combine(sets.precast.WS, {
  776. head="Sakpata's Helm",
  777. neck="Abyssal Bead Necklace +2",
  778. body="Ignominy Cuirass +3",
  779. ear1="Lugra Earring +1",
  780. waist="Fotia Belt",
  781. ring1="Niqmaddu Ring",
  782. ring2="Regal Ring",
  783. legs="Ignominy Flanchard +3", -- 5% haste
  784. feet="Rat. Sollerets +1",
  785. })
  786. sets.precast.WS.Entropy.Mid = set_combine(sets.precast.WS.Entropy, {
  787. head="Sakpata's Helm",
  788. })
  789. sets.precast.WS.Entropy.Acc = set_combine(sets.precast.WS.Entropy.Mid, {
  790. body="Fallen's Cuirass +3",
  791. ammo={ name="Seeth. Bomblet +1", augments={'Path: A',}},
  792. })
  793.  
  794. -- Quietus
  795. -- 60% STR / MND
  796. sets.precast.WS.Quietus = set_combine(sets.precast.WS, {
  797. head="Ratri Sallet +1",
  798. neck="Abyssal Bead Necklace +2",
  799. body="Ignominy Cuirass +3",
  800. -- body="Ratri Breastplate +1",
  801. hands="Ratri Gadlings +1",
  802. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  803. ring1="Karieyh Ring +1",
  804. feet="Ratri Cuisses +1",
  805. feet="Ratri Sollerets +1"
  806. })
  807. sets.precast.WS.Quietus.Mid = set_combine(sets.precast.WS.Quietus, {
  808. })
  809. sets.precast.WS.Quietus.Acc = set_combine(sets.precast.WS.Quietus.Mid, {
  810.  
  811. })
  812.  
  813. -- SPIRAL HELL
  814. -- 50% STR / 50% INT
  815. sets.precast.WS['Spiral Hell'] = set_combine(sets.precast.WS['Entropy'], {
  816. neck="Abyssal Bead Necklace +2",
  817. body="Ignominy Cuirass +3",
  818. legs="Fallen's Flanchard +3",
  819. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  820. })
  821. sets.precast.WS['Spiral Hell'].Mid = set_combine(sets.precast.WS['Spiral Hell'], sets.precast.WS.Mid, { })
  822. sets.precast.WS['Spiral Hell'].Acc = set_combine(sets.precast.WS['Spiral Hell'], sets.precast.WS.Acc, { })
  823.  
  824. -- SHADOW OF DEATH
  825. -- 40% STR 40% INT - Darkness Elemental
  826. sets.precast.WS['Shadow of Death'] = set_combine(sets.precast.WS['Entropy'], {
  827. ammo="Knobkierrie",
  828. head="Ig. Burgonet +3",
  829. neck="Baetyl Pendant",
  830. ear1="Friomisi Earring",
  831. ear2="Malignance Earring",
  832. body="Fall. Cuirass +3",
  833. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  834. ring1="Archon Ring",
  835. ring2="Epaminondas's Ring",
  836. back="Ankou's Mantle",
  837. waist="Orpheus's Sash",
  838. legs="Augury Cuisses +1",
  839. feet="Rat. Sollerets +1",
  840. })
  841.  
  842. sets.precast.WS['Infernal Scythe'] = set_combine(sets.precast.WS['Entropy'], {
  843. ammo="Knobkierrie",
  844. head="Ig. Burgonet +3",
  845. neck="Baetyl Pendant",
  846. ear1="Friomisi Earring",
  847. ear2="Malignance Earring",
  848. body="Fall. Cuirass +3",
  849. hands={ name="Fall. Fin. Gaunt. +3", augments={'Enhances "Diabolic Eye" effect',}},
  850. ring1="Archon Ring",
  851. ring2="Epaminondas's Ring",
  852. back="Ankou's Mantle",
  853. waist="Orpheus's Sash",
  854. legs="Augury Cuisses +1",
  855. feet="Rat. Sollerets +1",
  856. })
  857.  
  858. sets.precast.WS['Shadow of Death'].Mid = set_combine(sets.precast.WS['Shadow of Death'], sets.precast.WS.Mid, {
  859. })
  860. sets.precast.WS['Shadow of Death'].Acc = set_combine(sets.precast.WS['Shadow of Death'], sets.precast.WS.Acc, {
  861. })
  862.  
  863. -- DARK HARVEST
  864. -- 40% STR 40% INT - Darkness Elemental
  865. sets.precast.WS['Dark Harvest'] = sets.precast.WS['Shadow of Death']
  866. sets.precast.WS['Dark Harvest'].Mid = set_combine(sets.precast.WS['Shadow of Death'], {})
  867. sets.precast.WS['Dark Harvest'].Acc = set_combine(sets.precast.WS['Shadow of Death'], {})
  868.  
  869.  
  870. -- REQUISCAT
  871. -- 73% MND - breath damage
  872. sets.precast.WS.Requiescat = set_combine(sets.precast.WS, {
  873. head="Flamma Zucchetto +2",
  874. neck="Abyssal Bead Necklace +2",
  875. body="Ignominy Cuirass +3",
  876. hands="Odyssean Gauntlets",
  877. waist="Soil Belt",
  878. })
  879. sets.precast.WS.Requiescat.Mid = set_combine(sets.precast.WS.Requiscat, sets.precast.WS.Mid)
  880. sets.precast.WS.Requiescat.Acc = set_combine(sets.precast.WS.Requiscat, sets.precast.WS.Acc)
  881.  
  882. -- Idle sets
  883. sets.idle = {
  884. ammo="Staunch Tathlum +1",
  885. head="Sakpata's Helm",
  886. body="Sacro Breastplate",
  887. hands="Sakpata's Gauntlets",
  888. legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
  889. feet="Sakpata's Leggings",
  890. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  891. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  892. left_ear="Etiolation Earring",
  893. right_ear="Odnowa Earring +1",
  894. left_ring="Defending Ring",
  895. right_ring="Chirich Ring +1",
  896. back="Moonlight Cape",
  897. }
  898. sets.idle.Town = set_combine(sets.idle, {
  899. ammo="Staunch Tathlum +1",
  900. head="Sakpata's Helm",
  901. body= "Councilor's Garb",
  902. hands="Sakpata's Gauntlets",
  903. legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
  904. feet="Sakpata's Leggings",
  905. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  906. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  907. left_ear="Etiolation Earring",
  908. right_ear="Odnowa Earring +1",
  909. left_ring="Defending Ring",
  910. right_ring="Chirich Ring +1",
  911. back="Moonlight Cape",
  912. })
  913.  
  914. sets.idle.Regen = set_combine(sets.idle.Field, {
  915. neck="Bathy Choker +1",
  916. body="Sacro Breastplate",
  917. ear2="Infused Earring",
  918. ring1="Chirich Ring +1",
  919. ring2="Chirich Ring +1",
  920. })
  921. sets.idle.Refresh = set_combine(sets.idle.Regen, {
  922. body="Lugra Cloak +1",ring1="Stikini Ring +1",ring2="Stikini Ring +1"
  923. })
  924.  
  925. sets.idle.Weak = set_combine(sets.defense.PDT, {
  926. ammo="Staunch Tathlum +1",
  927. head="Sakpata's Helm",
  928. body="Tartarus Platemail",
  929. hands="Sakpata's Gauntlets",
  930. legs={ name="Carmine Cuisses +1", augments={'Accuracy+20','Attack+12','"Dual Wield"+6',}},
  931. feet="Sakpata's Leggings",
  932. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  933. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  934. left_ear="Odnowa Earring",
  935. right_ear="Odnowa Earring +1",
  936. left_ring="Defending Ring",
  937. right_ring="Chirich Ring +1",
  938. back="Moonlight Cape",
  939. })
  940.  
  941.  
  942. -- Defense sets
  943. sets.defense.PDT = {
  944. ammo="Aurgelmir Orb +1",
  945. head="Sulevia's Mask +2",
  946. body="Sacro Breastplate",
  947. hands="Sakpata's Gauntlets",
  948. legs="Sulev. Cuisses +2",
  949. feet="Flam. Gambieras +2",
  950. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  951. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  952. left_ear="Cessance Earring",
  953. right_ear="Telos Earring",
  954. left_ring="Niqmaddu Ring",
  955. right_ring="Chirich Ring +1",
  956. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
  957.  
  958. sets.defense.Reraise = {
  959. ammo="Staunch Tathlum +1",
  960. head="Twilight Helm",
  961. body="Twilight Mail",
  962. hands="Sakpata's Gauntlets",
  963. legs="Sakpata's Cuisses",
  964. feet="Sakpata's Leggings",
  965. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  966. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  967. left_ear="Cessance Earring",
  968. right_ear="Telos Earring",
  969. left_ring="Defending Ring",
  970. right_ring="Moonlight Ring",
  971. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
  972.  
  973. sets.defense.MDT = set_combine(sets.defense.PDT, {
  974. ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  975. head="Sakpata's Helm",
  976. body="Sakpata's Plate",
  977. hands="Sakpata's Gauntlets",
  978. legs="Sakpata's Cuisses",
  979. feet="Sakpata's Leggings",
  980. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  981. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  982. left_ear="Cessance Earring",
  983. right_ear="Telos Earring",
  984. left_ring="Niqmaddu Ring",
  985. right_ring="Hetairoi Ring",
  986. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}}
  987. )
  988.  
  989. sets.Kiting = {
  990. legs="Carmine Cuisses +1",
  991. }
  992.  
  993. sets.Reraise = {head="Twilight Helm",body="Twilight Mail"}
  994.  
  995. -- sets.HighHaste = {
  996. -- ammo="Aurgelmir Orb +1",
  997. -- head="Argosy Celata",
  998. -- }
  999.  
  1000. -- Defensive sets to combine with various weapon-specific sets below
  1001. -- These allow hybrid acc/pdt sets for difficult content
  1002. -- do not specify a cape so that DA/STP capes are used appropriately
  1003. sets.Defensive = {
  1004. ammo="Aurgelmir Orb +1",
  1005. head="Sakpata's Helm",
  1006. body="Sakpata's Plate",
  1007. hands="Sakpata's Gauntlets",
  1008. legs="Sakpata's Cuisses",
  1009. feet="Sakpata's Leggings",
  1010. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1011. waist="Ioskeha Belt +1",
  1012. left_ear="Telos Earring",
  1013. right_ear="Schere Earring",
  1014. left_ring="Niqmaddu Ring",
  1015. right_ring="Hetairoi Ring",
  1016. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
  1017.  
  1018. sets.Defensive_Mid = {
  1019. ammo="Staunch Tathlum +1",
  1020. head="Sakpata's Helm",
  1021. body="Tartarus Platemail",
  1022. hands="Sulev. Gauntlets +2",
  1023. legs="Sulev. Cuisses +2",
  1024. feet="Sulev. Leggings +2",
  1025. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1026. waist="Ioskeha Belt +1",
  1027. left_ear="Telos Earring",
  1028. right_ear="Cessance Earring",
  1029. left_ring="Defending Ring",
  1030. right_ring="Chirich Ring +1",
  1031. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
  1032.  
  1033. -- Higher DT, less haste
  1034. sets.DefensiveHigh = set_combine(sets.Defensive, {
  1035. ammo="Hasty Pinion +1",
  1036. head="Hjarrandi Helm", -- no haste
  1037. body="Flamma Korazin +2",
  1038. hands="Volte Moufles",
  1039. ring1="Patricius Ring",
  1040. ring2="Sulevia's Ring",
  1041. waist="Sailfi Belt +1",
  1042. legs="Sulevia's Cuisses +2", -- 7% dt
  1043. feet="Volte Sollerets",
  1044. })
  1045. sets.Defensive_Acc = set_combine(sets.Defensive_Mid, sets.DefensiveHigh)
  1046.  
  1047. -- Base set (global catch-all set)
  1048. sets.engaged = {
  1049. ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  1050. head="Flam. Zucchetto +2",
  1051. body={ name="Valorous Mail", augments={'Accuracy+20','"Store TP"+8','Attack+15',}},
  1052. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1053. legs="Ig. Flanchard +3",
  1054. feet="Flam. Gambieras +2",
  1055. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1056. waist="Ioskeha Belt +1",
  1057. left_ear="Telos Earring",
  1058. right_ear="Dedition Earring",
  1059. left_ring="Niqmaddu Ring",
  1060. right_ring="Hetairoi Ring",
  1061. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
  1062.  
  1063. sets.engaged.Mid = set_combine(sets.engaged, {
  1064. left_ear="Telos Earring",
  1065. right_ring="Regal Ring",
  1066. })
  1067. sets.engaged.Acc = set_combine(sets.engaged.Mid, {
  1068. body={ name="Emicho Haubert +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1069. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1070. right_ear="Cessance Earring",
  1071. left_ear="Telos Earring",
  1072. right_ring="Regal Ring",
  1073. })
  1074.  
  1075. -- These only apply when delay is capped.
  1076. sets.engaged.Haste = set_combine(sets.engaged, {
  1077. waist="Sailfi Belt +1",
  1078. })
  1079. sets.engaged.Haste.Mid = set_combine(sets.engaged.Mid, {
  1080. waist="Sailfi Belt +1",
  1081. --waist="Windbuffet Belt +1"
  1082. })
  1083. sets.engaged.Haste.Acc = set_combine(sets.engaged.Acc, {})
  1084.  
  1085. -- Hybrid
  1086. sets.engaged.PDT = set_combine(sets.engaged, sets.Defensive, {
  1087. ammo="Aurgelmir Orb +1",
  1088. head="Sakpata's Helm",
  1089. body="Sakpata's Plate",
  1090. hands="Sakpata's Gauntlets",
  1091. legs="Sakpata's Cuisses",
  1092. feet="Sakpata's Leggings",
  1093. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1094. waist="Ioskeha Belt +1",
  1095. left_ear="Telos Earring",
  1096. right_ear="Cessance Earring",
  1097. left_ring="Niqmaddu Ring",
  1098. right_ring="Hetairoi Ring",
  1099. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}})
  1100.  
  1101. sets.engaged.Mid.PDT = set_combine(sets.engaged.Mid, sets.Defensive_Mid)
  1102. sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, sets.Defensive_Acc)
  1103.  
  1104. -- Hybrid with capped delay
  1105. sets.engaged.Haste.PDT = set_combine(sets.engaged.PDT, sets.DefensiveHigh)
  1106. sets.engaged.Haste.Mid.PDT = set_combine(sets.engaged.Mid.PDT, sets.DefensiveHigh)
  1107. sets.engaged.Haste.Acc.PDT = set_combine(sets.engaged.Acc.PDT, sets.DefensiveHigh)
  1108.  
  1109. -- Liberator
  1110. sets.engaged.Liberator = set_combine(sets.engaged, {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  1111. head="Flam. Zucchetto +2",
  1112. body={ name="Valorous Mail", augments={'Accuracy+20','"Store TP"+8','Attack+15',}},
  1113. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1114. legs={ name="Odyssean Cuisses", augments={'Accuracy+24','"Store TP"+8','Attack+9',}},
  1115. feet={ name="Valorous Greaves", augments={'Accuracy+21 Attack+21','"Store TP"+8','AGI+8','Accuracy+9','Attack+12',}},
  1116. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1117. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  1118. left_ear="Dedition Earring",
  1119. right_ear="Balder Earring +1",
  1120. left_ring="Niqmaddu Ring",
  1121. right_ring="Hetairoi Ring",
  1122. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}})
  1123.  
  1124. sets.engaged.Liberator.Mid = sets.engaged.Mid
  1125. sets.engaged.Liberator.Acc = set_combine(sets.engaged.Acc, {
  1126. body={ name="Emicho Haubert +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1127. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1128. })
  1129.  
  1130. -- Liberator AM3
  1131. sets.engaged.Liberator.AM3 = set_combine(sets.engaged.Liberator, {
  1132. ammo="Aurgelmir Orb +1",
  1133. head="Flam. Zucchetto +2",
  1134. body={ name="Valorous Mail", augments={'Accuracy+20','"Store TP"+8','Attack+15',}},
  1135. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1136. legs={ name="Odyssean Cuisses", augments={'Accuracy+24','"Store TP"+8','Attack+9',}},
  1137. feet={ name="Valorous Greaves", augments={'Accuracy+21 Attack+21','"Store TP"+8','AGI+8','Accuracy+9','Attack+12',}},
  1138. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1139. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  1140. left_ear="Dedition Earring",
  1141. right_ear="Balder Earring +1",
  1142. left_ring="Niqmaddu Ring",
  1143. right_ring="Hetairoi Ring",
  1144. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}}
  1145. )
  1146. sets.engaged.Liberator.Mid.AM3 = set_combine(sets.engaged.Liberator.AM3, {
  1147. ammo="Aurgelmir Orb +1",
  1148. head="Flam. Zucchetto +2",
  1149. body={ name="Emicho Haubert +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1150. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1151. legs={ name="Odyssean Cuisses", augments={'Accuracy+24','"Store TP"+8','Attack+9',}},
  1152. feet="Flam. Gambieras +2",
  1153. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1154. waist="Ioskeha Belt +1",
  1155. left_ear="Telos Earring",
  1156. right_ear="Cessance Earring",
  1157. left_ring="Niqmaddu Ring",
  1158. right_ring="Regal Ring",
  1159. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Physical Damage taken-10%',}}
  1160. })
  1161. sets.engaged.Liberator.Acc.AM3 = set_combine(sets.engaged.Liberator.Mid.AM3, {
  1162. ammo="Seeth. Bomblet +1",
  1163. head="Flam. Zucchetto +2",
  1164. body={ name="Emicho Haubert +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1165. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1166. legs={ name="Odyssean Cuisses", augments={'Accuracy+24','"Store TP"+8','Attack+9',}},
  1167. feet="Flam. Gambieras +2",
  1168. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1169. waist="Ioskeha Belt +1",
  1170. left_ear="Telos Earring",
  1171. right_ear="Cessance Earring",
  1172. left_ring="Niqmaddu Ring",
  1173. right_ring="Regal Ring",
  1174. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Physical Damage taken-10%',}}
  1175. })
  1176.  
  1177. -- Hybrid
  1178. sets.engaged.Liberator.PDT = set_combine(sets.engaged.Liberator.AM3, {
  1179. ammo="Aurgelmir Orb +1",
  1180. head="Sakpata's Helm",
  1181. body="Sakpata's Plate",
  1182. hands="Sakpata's Gauntlets",
  1183. legs="Sakpata's Cuisses",
  1184. feet="Sakpata's Leggings",
  1185. left_ear="Telos Earring",
  1186. right_ear="Schere Earring",
  1187. left_ring="Niqmaddu Ring",
  1188. right_ring="Hetairoi Ring",
  1189. })
  1190. sets.engaged.Liberator.Mid.PDT = set_combine(sets.engaged.Liberator.PDT, {
  1191. right_ear="Cessance Earring",
  1192. })
  1193. sets.engaged.Liberator.Acc.PDT = set_combine(sets.engaged.Liberator.Acc, sets.DefensiveHigh)
  1194. -- Hybrid with AM3 up
  1195. sets.engaged.Liberator.PDT.AM3 = set_combine(sets.engaged.Liberator.AM3, sets.Defensive)
  1196. sets.engaged.Liberator.Mid.PDT.AM3 = set_combine(sets.engaged.Liberator.Mid.AM3, sets.Defensive_Mid)
  1197. sets.engaged.Liberator.Acc.PDT.AM3 = set_combine(sets.engaged.Liberator.Acc.AM3, sets.DefensiveHigh)
  1198. -- Hybrid with capped delay
  1199.  
  1200.  
  1201. -- Apocalypse
  1202. sets.engaged.Apocalypse = set_combine(sets.engaged, {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  1203. head="Flam. Zucchetto +2",
  1204. body="Sakpata's Plate",
  1205. hands="Sakpata's Gauntlets",
  1206. legs="Ig. Flanchard +3",
  1207. feet="Flam. Gambieras +2",
  1208. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1209. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  1210. left_ear="Telos Earring",
  1211. right_ear="Balder Earring +1",
  1212. left_ring="Niqmaddu Ring",
  1213. right_ring="Hetairoi Ring",
  1214. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}})
  1215.  
  1216. sets.engaged.Apocalypse.Mid = set_combine(sets.engaged.Mid, {
  1217. right_ear="Cessance Earring",
  1218. left_ring="Niqmaddu Ring",
  1219. right_ring="Regal Ring",
  1220. })
  1221. sets.engaged.Apocalypse.Acc = set_combine(sets.engaged.Acc, {
  1222. body={ name="Emicho Haubert +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1223. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1224. legs="Ig. Flanchard +3",
  1225. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1226. waist="Ioskeha Belt +1",
  1227. left_ear="Telos Earring",
  1228. right_ear="Cessance Earring",
  1229. left_ring="Niqmaddu Ring",
  1230. right_ring="Regal Ring",
  1231. })
  1232.  
  1233. -- Hybrid
  1234. sets.engaged.Apocalypse.PDT = set_combine(sets.engaged.Apocalypse, {
  1235. ammo="Aurgelmir Orb +1",
  1236. head="Sakpata's Helm",
  1237. body="Sakpata's Plate",
  1238. hands="Sakpata's Gauntlets",
  1239. legs="Sakpata's Cuisses",
  1240. feet="Sakpata's Leggings",
  1241. left_ear="Telos Earring",
  1242. right_ear="Schere Earring",
  1243. left_ring="Niqmaddu Ring",
  1244. right_ring="Hetairoi Ring",
  1245. })
  1246. sets.engaged.Apocalypse.Mid.PDT = set_combine(sets.engaged.Apocalypse.Mid, sets.Defensive_Mid)
  1247. sets.engaged.Apocalypse.Acc.PDT = set_combine(sets.engaged.Apocalypse.Acc, sets.Defensive_Acc)
  1248. -- Hybrid with relic AM
  1249. -- sets.engaged.Apocalypse.PDT.AM = set_combine(sets.engaged.Apocalypse, sets.Defensive)
  1250. -- sets.engaged.Apocalypse.Mid.PDT.AM = set_combine(sets.engaged.Apocalypse.Mid, sets.Defensive_Mid)
  1251. -- sets.engaged.Apocalypse.Acc.PDT.AM = set_combine(sets.engaged.Apocalypse.Acc, sets.Defensive_Acc)
  1252. -- Hybrid with capped delay
  1253.  
  1254.  
  1255. -- Caladbolg
  1256.  
  1257. sets.engaged.Caladbolg = set_combine(sets.engaged, {ammo={ name="Coiste Bodhar", augments={'Path: A',}},
  1258. head="Flam. Zucchetto +2",
  1259. body="Sakpata's Plate",
  1260. hands="Flam. Manopolas +2",
  1261. legs="Ig. Flanchard +3",
  1262. feet="Flam. Gambieras +2",
  1263. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1264. waist={ name="Sailfi Belt +1", augments={'Path: A',}},
  1265. left_ear="Telos Earring",
  1266. right_ear="Balder Earring +1",
  1267. left_ring="Niqmaddu Ring",
  1268. right_ring="Hetairoi Ring",
  1269. back={ name="Ankou's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}})
  1270.  
  1271. sets.engaged.Caladbolg.Mid = set_combine(sets.engaged.Caladbolg, {
  1272.  
  1273. })
  1274. sets.engaged.Caladbolg.Acc = set_combine(sets.engaged.Caladbolg.Mid, {
  1275. body={ name="Emicho Haubert +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1276. hands={ name="Emi. Gauntlets +1", augments={'HP+65','DEX+12','Accuracy+20',}},
  1277. legs="Ig. Flanchard +3",
  1278. neck={ name="Abyssal Beads +2", augments={'Path: A',}},
  1279. waist="Ioskeha Belt +1",
  1280. left_ear="Telos Earring",
  1281. right_ear="Cessance Earring",
  1282. left_ring="Niqmaddu Ring",
  1283. right_ring="Regal Ring",
  1284. })
  1285.  
  1286. sets.engaged.Caladbolg.PDT = set_combine(sets.engaged.Caladbolg,{ammo="Aurgelmir Orb +1",
  1287. head="Sakpata's Helm",
  1288. body="Sakpata's Plate",
  1289. hands="Sakpata's Gauntlets",
  1290. legs="Sakpata's Cuisses",
  1291. feet="Sakpata's Leggings",
  1292. left_ring="Niqmaddu Ring",
  1293. right_ring="Hetairoi Ring",})
  1294. sets.engaged.Caladbolg.Mid.PDT = set_combine(sets.engaged.Caladbolg.Mid, sets.Defensive_Mid)
  1295. sets.engaged.Caladbolg.Acc.PDT = set_combine(sets.engaged.Caladbolg.Acc, sets.Defensive_Acc)
  1296.  
  1297. sets.engaged.Haste.Caladbolg = set_combine(sets.engaged.Caladbolg, {
  1298. })
  1299. sets.engaged.Haste.Caladbolg.Mid = set_combine(sets.engaged.Caladbolg.Mid, {
  1300.  
  1301. })
  1302. sets.engaged.Haste.Caladbolg.Acc = set_combine(sets.engaged.Caladbolg.Acc, {
  1303.  
  1304. })
  1305.  
  1306. sets.engaged.Haste.Caladbolg.PDT = set_combine(sets.engaged.Caladbolg.PDT, sets.DefensiveHigh)
  1307. sets.engaged.Haste.Caladbolg.Mid.PDT = set_combine(sets.engaged.Caladbolg.Mid.PDT, sets.DefensiveHigh)
  1308. sets.engaged.Haste.Caladbolg.Acc.PDT = set_combine(sets.engaged.Caladbolg.Acc.PDT, sets.DefensiveHigh)
  1309.  
  1310. -- dual wield
  1311. sets.engaged.DW = set_combine(sets.engaged, {
  1312. ear1="Eabani Earring",
  1313. ear2="Suppanomimi",
  1314. hands="Emicho Gauntlets",
  1315. waist="Patentia Sash",
  1316. legs="Carmine Cuisses +1",
  1317. })
  1318. sets.engaged.DW.Mid = set_combine(sets.engaged.DW, {
  1319. neck="Abyssal Bead Necklace +2",
  1320. })
  1321. sets.engaged.DW.Acc = set_combine(sets.engaged.DW.Mid, {
  1322. ear2="Telos Earring",
  1323. })
  1324.  
  1325. -- single wield (sword + shield possibly)
  1326. sets.engaged.SW = set_combine(sets.engaged, {
  1327. ammo="Yetshila",
  1328. })
  1329. sets.engaged.SW.Mid = set_combine(sets.engaged.Mid, {})
  1330. sets.engaged.SW.Acc = set_combine(sets.engaged.Acc, {})
  1331.  
  1332. sets.engaged.Reraise = set_combine(sets.engaged, {
  1333. head="Twilight Helm",
  1334. body="Twilight Mail"
  1335. })
  1336.  
  1337. sets.buff.Souleater = {
  1338. head="Ignominy Burgonet +3",
  1339. --body="Ratri Breastplate",
  1340. }
  1341. sets.MadrigalBonus = {
  1342. hands="Composer's Mitts"
  1343. }
  1344. -- sets.buff['Last Resort'] = {
  1345. -- feet="Fallen's Sollerets +1"
  1346. -- }
  1347. sets.midcast.ExtraWSDMG = {right_ear={ name="Lugra Earring +1", augments={'Path: A',}}}
  1348. sets.FrenzySallet = {head="Frenzy Sallet"}
  1349. end
  1350.  
  1351. function job_pretarget(spell, action, spellMap, eventArgs)
  1352. if spell.type:endswith('Magic') and buffactive.silence then
  1353. eventArgs.cancel = true
  1354. send_command('input /item "Echo Drops" <me>')
  1355. end
  1356. end
  1357. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  1358. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  1359. function job_precast(spell, action, spellMap, eventArgs)
  1360. aw_custom_aftermath_timers_precast(spell)
  1361. end
  1362. function job_precast(spell, action, spellMap, eventArgs)
  1363. if spell.prefix == '/magic' or spell.prefix == '/ninjutsu' or spell.prefix == '/song' then
  1364. equip(sets.precast.FC)
  1365. end
  1366. if spell.english == 'Diabolic Eye' then
  1367. equip(sets.precast.JA['Diabolic Eye'])
  1368. end
  1369. if spell.english == 'Nether Void' then
  1370. equip(sets.precast.JA['Nether Void'])
  1371. end
  1372. if spell.english == 'Weapon Bash' then
  1373. equip(sets.precast.JA['Weapn Bash'])
  1374. end
  1375. if spell.english == 'Dark Seal' then
  1376. equip(sets.precast.JA['Dark Seal'])
  1377. end
  1378. if spell.english == 'Souleater' then
  1379. equip(sets.precast.JA['Souleater'])
  1380. end
  1381. if spell.english == 'Blood Weapon' then
  1382. equip(s.precast.JA['Blood Weapon'])
  1383. end
  1384. if spell.english == 'Last Resort' then
  1385. equip(sets.precast.JA['Last Resort'])
  1386. end
  1387. if spell.type == "WeaponSkill" and spell.name ~= 'Mistral Axe' and spell.name ~= 'Bora Axe' and spell.target.distance > target_distance then
  1388. cancel_spell()
  1389. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  1390. handle_equipping_gear(player.status)
  1391. return
  1392. end
  1393. end
  1394. function job_post_precast(spell, action, spellMap, eventArgs)
  1395. local recast = windower.ffxi.get_ability_recasts()
  1396. -- Make sure abilities using head gear don't swap
  1397. if spell.type:lower() == 'weaponskill' then
  1398. -- handle Gavialis Helm
  1399. if use_gavialis then
  1400. if wsList:contains(spell.english) then
  1401. equip(sets.WSDayBonus)
  1402. end
  1403. end
  1404. end
  1405. if state.CapacityMode.value then
  1406. equip(sets.CapacityMantle)
  1407. end
  1408. if spell.english == 'Insurgency' then
  1409. if world.time >= (17*60) or world.time <= (7*60) then
  1410. equip(sets.Lugra)
  1411. end
  1412. end
  1413. end
  1414.  
  1415. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  1416. function job_midcast(spell, action, spellMap, eventArgs)
  1417. end
  1418.  
  1419. -- Run after the default midcast() is done.
  1420. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  1421. function job_post_midcast(spell, action, spellMap, eventArgs)
  1422. if spell.english:startswith('Drain') then
  1423. if player.status == 'Engaged' and state.CastingMode.current == 'Normal' and player.hpp < 70 then
  1424. classes.CustomClass = 'OhShit'
  1425. end
  1426. end
  1427.  
  1428. if (state.HybridMode.current == 'PDT' and state.PhysicalDefenseMode.current == 'Reraise') then
  1429. equip(sets.Reraise)
  1430. end
  1431. end
  1432.  
  1433. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  1434. function job_aftercast(spell, action, spellMap, eventArgs)
  1435. aw_custom_aftermath_timers_aftercast(spell)
  1436. if state.Buff[spell.english] ~= nil then
  1437. state.Buff[spell.english] = not spell.interrupted or buffactive[spell.english]
  1438. end
  1439. end
  1440. function checkblocking(spell)
  1441. if buffactive.sleep or buffactive.petrification or buffactive.terror then
  1442. --add_to_chat(3,'Canceling Action - Asleep/Petrified/Terror!')
  1443. cancel_spell()
  1444. return
  1445. end
  1446. if spell.english == "Double-Up" then
  1447. if not buffactive["Double-Up Chance"] then
  1448. add_to_chat(3,'Canceling Action - No ability to Double Up')
  1449. cancel_spell()
  1450. return
  1451. end
  1452. end
  1453. if spell.name ~= 'Ranged' and spell.type ~= 'WeaponSkill' and spell.type ~= 'Scholar' and spell.type ~= 'Monster' then
  1454. if spell.action_type == 'Ability' then
  1455. if buffactive.Amnesia then
  1456. cancel_spell()
  1457. add_to_chat(3,'Canceling Ability - Currently have Amnesia')
  1458. return
  1459. else
  1460. recasttime = windower.ffxi.get_ability_recasts()[spell.recast_id]
  1461. if spell and (recasttime >= 1) then
  1462. --add_to_chat(3,'Ability Canceled:'..spell.name..' - Waiting on Recast:(seconds) '..recasttime..'')
  1463. cancel_spell()
  1464. return
  1465. end
  1466. end
  1467. end
  1468. end
  1469. end
  1470. function job_post_aftercast(spell, action, spellMap, eventArgs)
  1471. if spell.type == 'WeaponSkill' then
  1472. if state.Buff.Souleater and state.SouleaterMode.value then
  1473. send_command('@wait 1.0;cancel souleater')
  1474. --enable("head")
  1475. end
  1476. end
  1477. end
  1478.  
  1479. function job_post_aftercast(spell, action, spellMap, eventArgs)
  1480. if spell.interrupted and spell.type == 'WeaponSkill' then
  1481. equipset = {sets.engaged}
  1482. return
  1483. end
  1484. end
  1485. -------------------------------------------------------------------------------------------------------------------
  1486. -- Customization hooks for idle and melee sets, after they've been automatically constructed.
  1487. -------------------------------------------------------------------------------------------------------------------
  1488. -- Called before the Include starts constructing melee/idle/resting sets.
  1489. -- Can customize state or custom melee class values at this point.
  1490. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  1491. function job_handle_equipping_gear(status, eventArgs)
  1492.  
  1493. end
  1494. -- Modify the default idle set after it was constructed.
  1495. function customize_idle_set(idleSet)
  1496. if player.hpp < 50 then
  1497. idleSet = set_combine(idleSet, sets.idle.Regen)
  1498. elseif player.mpp < 50 then
  1499. idleSet = set_combine(idleSet, sets.idle.Refresh)
  1500. end
  1501. if state.IdleMode.current == 'Sphere' then
  1502. idleSet = set_combine(idleSet, sets.idle.Sphere)
  1503. end
  1504. if state.HybridMode.current == 'PDT' then
  1505. idleSet = set_combine(idleSet, sets.defense.PDT)
  1506. end
  1507. if state.CombatWeapon.value == 'Liberator' then
  1508. idleSet = set_combine(idleSet, sets.weapons.Liberator)
  1509. end
  1510. if state.CombatWeapon.value == 'Caladbolg' then
  1511. idleSet = set_combine(idleSet, sets.weapons.Caladbolg)
  1512. end
  1513. if state.CombatWeapon.value == 'Apocalypse' then
  1514. idleSet = set_combine(idleSet, sets.weapons.Apocalypse)
  1515. end
  1516. if state.CombatWeapon.value == 'Naegling' then
  1517. idleSet = set_combine(idleSet, sets.weapons.Naegling)
  1518. end
  1519. if state.CombatWeapon.value == 'Loxotic' then
  1520. idleSet = set_combine(idleSet, sets.weapons.Loxotic)
  1521. end
  1522. if state.CombatWeapon.value == 'Hepatizon' then
  1523. idleSet = set_combine(idleSet, sets.weapons.Hepatizon)
  1524. end
  1525. if state.CombatWeapons.value == 'Utu' then
  1526. idleSet = set_combine(idleSet, sets.weapons.Utu)
  1527. end
  1528. if state.CombatWeapons.value == 'Blurred' then
  1529. idleSet = set_combine(idleSet, sets.weapons.Blurred)
  1530. end
  1531. return idleSet
  1532. end
  1533.  
  1534. -- Modify the default melee set after it was constructed.
  1535. function customize_melee_set(meleeSet)
  1536. if state.TreasureMode.value == 'Fulltime' then
  1537. meleeSet = set_combine(meleeSet, sets.TreasureHunter)
  1538. end
  1539. if state.CapacityMode.value then
  1540. meleeSet = set_combine(meleeSet, sets.CapacityMantle)
  1541. end
  1542. if state.Buff['Souleater'] then
  1543. meleeSet = set_combine(meleeSet, sets.buff.Souleater)
  1544. end
  1545. if state.CombatWeapon.value == 'Liberator' then
  1546. meleeSet = set_combine(meleeSet, sets.weapons.Liberator)
  1547. end
  1548. if state.CombatWeapon.value == 'Caladbolg' then
  1549. meleeSet = set_combine(meleeSet, sets.weapons.Caladbolg)
  1550. end
  1551. if state.CombatWeapon.value == 'Apocalypse' then
  1552. meleeSet = set_combine(meleeSet, sets.weapons.Apocalypse)
  1553. end
  1554. if state.CombatWeapon.value == 'Naegling' then
  1555. meleeSet = set_combine(meleeSet, sets.weapons.Naegling)
  1556. end
  1557. if state.CombatWeapon.value == 'Loxotic' then
  1558. meleeSet = set_combine(meleeSet, sets.weapons.Loxotic)
  1559. end
  1560. if state.CombatWeapon.value == 'Hepatizon' then
  1561. meleeSet = set_combine(meleeSet, sets.weapons.Hepatizon)
  1562. end
  1563. if state.CombatWeapons.value == 'Utu' then
  1564. meleeSet = set_combine(meleeSet, sets.weapons.Utu)
  1565. end
  1566. if state.CombatWeapons.value == 'Blurred' then
  1567. idleSet = set_combine(idleSet, sets.weapons.Blurred)
  1568. end
  1569. --meleeSet = set_combine(meleeSet, select_earring())
  1570. return meleeSet
  1571. end
  1572.  
  1573. -------------------------------------------------------------------------------------------------------------------
  1574. -- General hooks for other events.
  1575. -------------------------------------------------------------------------------------------------------------------
  1576.  
  1577. -- Called when the player's status changes.
  1578. function job_status_change(newStatus, oldStatus, eventArgs)
  1579. if newStatus == "Engaged" then
  1580. --if state.Buff['Last Resort'] then
  1581. -- send_command('@wait 1.0;cancel hasso')
  1582. --end
  1583. -- handle weapon sets
  1584. if remaWeapons:contains(player.equipment.main) then
  1585. state.CombatWeapon:set(player.equipment.main)
  1586. end
  1587. -- if gsList:contains(player.equipment.main) then
  1588. -- state.CombatWeapon:set("GreatSword")
  1589. -- elseif scytheList:contains(player.equipment.main) then
  1590. -- state.CombatWeapon:set("Scythe")
  1591. -- elseif remaWeapons:contains(player.equipment.main) then
  1592. -- state.CombatWeapon:set(player.equipment.main)
  1593. -- else -- use regular set, which caters to Liberator
  1594. -- state.CombatWeapon:reset()
  1595. -- end
  1596. --elseif newStatus == 'Idle' then
  1597. -- determine_idle_group()
  1598. end
  1599. end
  1600.  
  1601. -- Called when a player gains or loses a buff.
  1602. -- buff == buff gained or lost
  1603. -- gain == true if the buff was gained, false if it was lost.
  1604.  
  1605. function update_melee_groups()
  1606.  
  1607. classes.CustomMeleeGroups:clear()
  1608. -- mythic AM
  1609. if player.equipment.main == 'Liberator' then
  1610. if buffactive['Aftermath: Lv.3'] then
  1611. classes.CustomMeleeGroups:append('AM3')
  1612. end
  1613. else
  1614. -- relic AM
  1615. if buffactive['Aftermath'] then
  1616. classes.CustomMeleeGroups:append('AM')
  1617. end
  1618. -- if buffactive['Samurai Roll'] then
  1619. -- classes.CustomRangedGroups:append('SamRoll')
  1620. -- end
  1621. end
  1622. end
  1623. function job_buff_change(buff, gain)
  1624.  
  1625. if state.Buff[buff] ~= nil then
  1626. handle_equipping_gear(player.status)
  1627. end
  1628.  
  1629. if S{'madrigal'}:contains(buff:lower()) then
  1630. if buffactive.madrigal and state.OffenseMode.value == 'Acc' then
  1631. equip(sets.MadrigalBonus)
  1632. end
  1633. end
  1634. if S{'haste', 'march', 'embrava', 'geo-haste', 'indi-haste', 'last resort'}:contains(buff:lower()) then
  1635. if (buffactive['Last Resort']) then
  1636. if (buffactive.embrava or buffactive.haste) and buffactive.march then
  1637. state.CombatForm:set("Haste")
  1638. if not midaction() then
  1639. handle_equipping_gear(player.status)
  1640. end
  1641. end
  1642. else
  1643. if state.CombatForm.current ~= 'DW' and state.CombatForm.current ~= 'SW' then
  1644. state.CombatForm:reset()
  1645. end
  1646. if not midaction() then
  1647. handle_equipping_gear(player.status)
  1648. end
  1649. end
  1650. end
  1651. -- Drain II/III HP Boost. Set SE to stay on.
  1652. -- if buff == "Max HP Boost" and state.SouleaterMode.value then
  1653. -- if gain or buffactive['Max HP Boost'] then
  1654. -- state.SouleaterMode:set(false)
  1655. -- else
  1656. -- state.SouleaterMode:set(true)
  1657. -- end
  1658. -- end
  1659. -- Make sure SE stays on for BW
  1660. if buff == 'Blood Weapon' and state.SouleaterMode.value then
  1661. if gain or buffactive['Blood Weapon'] then
  1662. state.SouleaterMode:set(false)
  1663. else
  1664. state.SouleaterMode:set(true)
  1665. end
  1666. end
  1667. -- AM custom groups
  1668. if buff:startswith('Aftermath') then
  1669. if player.equipment.main == 'Liberator' then
  1670. classes.CustomMeleeGroups:clear()
  1671.  
  1672. if (buff == "Aftermath: Lv.3" and gain) or buffactive['Aftermath: Lv.3'] then
  1673. classes.CustomMeleeGroups:append('AM3')
  1674. add_to_chat(8, '-------------Mythic AM3 UP-------------')
  1675. -- elseif (buff == "Aftermath: Lv.3" and not gain) then
  1676. -- add_to_chat(8, '-------------Mythic AM3 DOWN-------------')
  1677. end
  1678.  
  1679. if not midaction() then
  1680. handle_equipping_gear(player.status)
  1681. end
  1682. else
  1683. classes.CustomMeleeGroups:clear()
  1684.  
  1685. if buff == "Aftermath" and gain or buffactive.Aftermath then
  1686. classes.CustomMeleeGroups:append('AM')
  1687. end
  1688.  
  1689. if not midaction() then
  1690. handle_equipping_gear(player.status)
  1691. end
  1692. end
  1693. end
  1694.  
  1695. -- if buff == "Samurai Roll" then
  1696. -- classes.CustomRangedGroups:clear()
  1697. -- if (buff == "Samurai Roll" and gain) or buffactive['Samurai Roll'] then
  1698. -- classes.CustomRangedGroups:append('SamRoll')
  1699. -- end
  1700.  
  1701. -- end
  1702.  
  1703. --if buff == "Last Resort" then
  1704. -- if gain then
  1705. -- send_command('@wait 1.0;cancel hasso')
  1706. -- else
  1707. -- if not midaction() then
  1708. -- send_command('@wait 1.0;input /ja "Hasso" <me>')
  1709. -- end
  1710. -- end
  1711. --end
  1712. end
  1713.  
  1714.  
  1715. -------------------------------------------------------------------------------------------------------------------
  1716. -- User code that supplements self-commands.
  1717. -------------------------------------------------------------------------------------------------------------------
  1718.  
  1719. -- Called by the 'update' self-command, for common needs.
  1720. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  1721. function job_update(cmdParams, eventArgs)
  1722. get_combat_form()
  1723. get_melee_groups()
  1724. end
  1725.  
  1726. -- State buff checks that will equip buff gear and mark the event as handled.
  1727. function check_buff(buff_name, eventArgs)
  1728. if state.Buff[buff_name] then
  1729. equip(sets.buff[buff_name] or {})
  1730. if state.TreasureMode.value == 'SATA' or state.TreasureMode.value == 'Fulltime' then
  1731. equip(sets.TreasureHunter)
  1732. end
  1733. eventArgs.handled = true
  1734. end
  1735. end
  1736. -- Check for various actions that we've specified in user code as being used with TH gear.
  1737. -- This will only ever be called if TreasureMode is not 'None'.
  1738. -- Category and Param are as specified in the action event packet.
  1739. --function th_action_check(category, param)
  1740. -- if category == 2 or -- any ranged attack
  1741. -- --category == 4 or -- any magic action
  1742. -- (category == 3 and param == 30) or -- Aeolian Edge
  1743. -- (category == 6 and info.default_ja_ids:contains(param)) or -- Provoke, Animated Flourish
  1744. -- (category == 14 and info.default_u_ja_ids:contains(param)) -- Quick/Box/Stutter Step, Desperate/Violent Flourish
  1745. -- then
  1746. -- return true
  1747. -- end
  1748. --end
  1749. -- function get_custom_wsmode(spell, spellMap, default_wsmode)
  1750. -- if state.OffenseMode.current == 'Mid' then
  1751. -- if buffactive['Aftermath: Lv.3'] then
  1752. -- return 'AM3Mid'
  1753. -- end
  1754. -- elseif state.OffenseMode.current == 'Acc' then
  1755. -- if buffactive['Aftermath: Lv.3'] then
  1756. -- return 'AM3Acc'
  1757. -- end
  1758. -- else
  1759. -- if buffactive['Aftermath: Lv.3'] then
  1760. -- return 'AM3'
  1761. -- end
  1762. -- end
  1763. -- end
  1764. function job_buff_change(status, gain, gain_or_loss)
  1765. --Equip Frenzy Sallet if we're asleep and engaged.
  1766. if (status == "sleep" and gain_or_loss) and player.status == 'Engaged' then
  1767. if gain then
  1768. equip(sets.FrenzySallet)
  1769. else
  1770. handle_equipping_gear(player.status)
  1771. end
  1772. end
  1773. end
  1774.  
  1775. -------------------------------------------------------------------------------------------------------------------
  1776. -- Current Job State Display
  1777. -------------------------------------------------------------------------------------------------------------------
  1778.  
  1779. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  1780. function display_current_job_state(eventArgs)
  1781. local msg = 'Melee'
  1782.  
  1783. if state.CombatForm.has_value then
  1784. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  1785. end
  1786.  
  1787. msg = msg .. ': '
  1788.  
  1789. msg = msg .. state.OffenseMode.value
  1790. if state.HybridMode.value ~= 'Normal' then
  1791. msg = msg .. '/' .. state.HybridMode.value
  1792. end
  1793. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  1794.  
  1795. if state.DefenseMode.value ~= 'None' then
  1796. msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  1797. end
  1798.  
  1799. if state.Kiting.value then
  1800. msg = msg .. ', Kiting'
  1801. end
  1802.  
  1803. msg = msg .. ', Corr.: '..state.CorrelationMode.value
  1804.  
  1805. if state.JugMode.value ~= 'None' then
  1806. add_to_chat(8,'-- Jug Pet: '.. PetName ..' -- (Pet Info: '.. PetInfo ..', '.. PetJob ..')')
  1807. end
  1808.  
  1809. add_to_chat(28,'Ready Moves: 1.'.. ReadyMoveOne ..' 2.'.. ReadyMoveTwo ..' 3.'.. ReadyMoveThree ..' 4.'.. ReadyMoveFour ..' 5.'.. ReadyMoveFive ..'')
  1810. add_to_chat(122, msg)
  1811.  
  1812. eventArgs.handled = true
  1813. end
  1814.  
  1815. -------------------------------------------------------------------------------------------------------------------
  1816. -- Utility functions specific to this job.
  1817. -------------------------------------------------------------------------------------------------------------------
  1818. function get_combat_form()
  1819.  
  1820. if S{'NIN', 'DNC'}:contains(player.sub_job) and swordList:contains(player.equipment.main) then
  1821. state.CombatForm:set("DW")
  1822. --elseif player.equipment.sub == '' or shields:contains(player.equipment.sub) then
  1823. elseif swordList:contains(player.equipment.main) then
  1824. state.CombatForm:set("SW")
  1825. elseif buffactive['Last Resort'] then
  1826. if (buffactive.embrava or buffactive.haste) and buffactive.march then
  1827. add_to_chat(8, '-------------Delay Capped-------------')
  1828. state.CombatForm:set("Haste")
  1829. else
  1830. state.CombatForm:reset()
  1831. end
  1832. else
  1833. state.CombatForm:reset()
  1834. end
  1835. end
  1836.  
  1837.  
  1838. function aw_custom_aftermath_timers_precast(spell)
  1839. if spell.type == 'WeaponSkill' then
  1840. info.aftermath = {}
  1841.  
  1842. local mythic_ws = "Insurgency"
  1843.  
  1844. info.aftermath.weaponskill = mythic_ws
  1845. info.aftermath.duration = 0
  1846.  
  1847. info.aftermath.level = math.floor(player.tp / 1000)
  1848. if info.aftermath.level == 0 then
  1849. info.aftermath.level = 1
  1850. end
  1851.  
  1852. if spell.english == mythic_ws and player.equipment.main == 'Liberator' then
  1853. -- nothing can overwrite lvl 3
  1854. if buffactive['Aftermath: Lv.3'] then
  1855. return
  1856. end
  1857. -- only lvl 3 can overwrite lvl 2
  1858. if info.aftermath.level ~= 3 and buffactive['Aftermath: Lv.2'] then
  1859. return
  1860. end
  1861.  
  1862. if info.aftermath.level == 1 then
  1863. info.aftermath.duration = 90
  1864. elseif info.aftermath.level == 2 then
  1865. info.aftermath.duration = 120
  1866. else
  1867. info.aftermath.duration = 180
  1868. end
  1869. end
  1870. end
  1871. end
  1872.  
  1873. -- Call from job_aftercast() to create the custom aftermath timer.
  1874. function aw_custom_aftermath_timers_aftercast(spell)
  1875. if not spell.interrupted and spell.type == 'WeaponSkill' and
  1876. info.aftermath and info.aftermath.weaponskill == spell.english and info.aftermath.duration > 0 then
  1877.  
  1878. local aftermath_name = 'Aftermath: Lv.'..tostring(info.aftermath.level)
  1879. send_command('timers d "Aftermath: Lv.1"')
  1880. send_command('timers d "Aftermath: Lv.2"')
  1881. send_command('timers d "Aftermath: Lv.3"')
  1882. send_command('timers c "'..aftermath_name..'" '..tostring(info.aftermath.duration)..' down abilities/aftermath'..tostring(info.aftermath.level)..'.png')
  1883.  
  1884. info.aftermath = {}
  1885. end
  1886. end
  1887.  
  1888. function display_current_job_state(eventArgs)
  1889. local msg = ''
  1890. msg = msg .. 'Offense: '..state.OffenseMode.current
  1891. msg = msg .. ', Hybrid: '..state.HybridMode.current
  1892.  
  1893. if state.DefenseMode.value ~= 'None' then
  1894. local defMode = state[state.DefenseMode.value ..'DefenseMode'].current
  1895. msg = msg .. ', Defense: '..state.DefenseMode.value..' '..defMode
  1896. end
  1897. if state.CombatForm.current ~= '' then
  1898. msg = msg .. ', Form: ' .. state.CombatForm.current
  1899. end
  1900. if state.CombatWeapon.current ~= '' then
  1901. msg = msg .. ', Weapon: ' .. state.CombatWeapon.current
  1902. end
  1903. if state.CapacityMode.value then
  1904. msg = msg .. ', Capacity: ON, '
  1905. end
  1906. if state.SouleaterMode.value then
  1907. msg = msg .. ', SE Cancel, '
  1908. end
  1909. -- if state.LastResortMode.value then
  1910. -- msg = msg .. ', LR Defense, '
  1911. -- end
  1912. if state.PCTargetMode.value ~= 'default' then
  1913. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  1914. end
  1915. if state.SelectNPCTargets.value then
  1916. msg = msg .. ', Target NPCs'
  1917. end
  1918.  
  1919. add_to_chat(123, msg)
  1920. eventArgs.handled = true
  1921. end
  1922.  
  1923. function get_melee_groups()
  1924. classes.CustomMeleeGroups:clear()
  1925.  
  1926. if buffactive['Aftermath: Lv.3'] then
  1927. classes.CustomMeleeGroups:append('Aftermath')
  1928. end
  1929. end
  1930.  
  1931. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  1932. -- Handle notifications of general user state change.
  1933. function job_state_change(stateField, newValue, oldValue)
  1934. end
  1935.  
  1936. -- Creating a custom spellMap, since Mote capitalized absorbs incorrectly
  1937. function job_get_spell_map(spell, default_spell_map)
  1938. if spell.skill == 'Dark Magic' and absorbs:contains(spell.english) then
  1939. return 'Absorb'
  1940. end
  1941. -- if spell.type == 'Trust' then
  1942. -- return 'Trust'
  1943. -- end
  1944. end
  1945.  
  1946. function select_earring()
  1947. if world.time >= (17*60) or world.time <= (7*60) then
  1948. return sets.Lugra
  1949. else
  1950. return sets.Brutal
  1951. end
  1952. end
  1953.  
  1954. function job_post_precast(spell, action, spellMap, eventArgs)
  1955. if spell.english == "Insurgency" or spell.english == "Cross Reaper" or spell.english == "Entropy" or spell.english == "Quietus" then
  1956. if player.sub_job == 'WAR' or player.sub_job == 'SAM' then
  1957. if player.tp > 2750 then
  1958. equip(sets.midcast.ExtraWSDMG)
  1959. end
  1960. else
  1961. if player.tp > 2520 then
  1962. equip(sets.midcast.ExtraWSDMG)
  1963. end
  1964. end
  1965. end
  1966. end
  1967.  
  1968. function update_melee_groups()
  1969.  
  1970. classes.CustomMeleeGroups:clear()
  1971. -- mythic AM
  1972. if player.equipment.main == 'Liberator' then
  1973. if buffactive['Aftermath: Lv.3'] then
  1974. classes.CustomMeleeGroups:append('AM3')
  1975. end
  1976. else
  1977. -- relic AM
  1978. if buffactive['Aftermath'] then
  1979. classes.CustomMeleeGroups:append('AM')
  1980. end
  1981. -- if buffactive['Samurai Roll'] then
  1982. -- classes.CustomRangedGroups:append('SamRoll')
  1983. -- end
  1984. end
  1985. end
  1986. -- Select default macro book on initial load or subjob change.
  1987. function select_default_macro_book(reset)
  1988. if reset == 'reset' then
  1989. -- lost pet, or tried to use pact when pet is gone
  1990. end
  1991.  
  1992. -- Default macro set/book
  1993. set_macro_page(1, 15)
  1994. end
  1995.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement