Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 78.84 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Last Revised: May 28th, 2015 (Removed Hibernation Earring rule from idle set,
  3. -- The typo in Somersault has been corrected by SE - updated Ready move list,
  4. -- Added a 'PetOnly' Mode - 'Windows Key'+F8 cycles Pet Modes.
  5. -- Pet status changes will update idle and engaged pet gear.
  6. -- And added a new rule for equipping TP Bonus Hands for TP-based moves.)
  7. --
  8. -- alt+F8 cycles through designated Jug Pets
  9. -- ctrl+F8 toggles Monster Correlation between Neutral and Favorable
  10. -- 'Windows Key'+F8 switches between Pet stances for Master/Pet hybrid gearsets
  11. -- alt+= cycles through Pet Food types
  12. -- ctrl+= can swap in the usage of Chaac Belt for Treasure Hunter on common subjob abilities.
  13. -- ctrl+F11 cycles between Magical Defense Modes
  14. --
  15. -- General Gearswap Commands:
  16. -- F9 cycles Accuracy modes
  17. -- ctrl+F9 cycles Hybrid modes
  18. -- 'Windows Key'+F9 cycles Weapon Skill modes
  19. -- F10 equips Physical Defense
  20. -- alt+F10 toggles Kiting on or off
  21. -- ctrl+F10 cycles Physical Defense modes
  22. -- F11 equips Magical Defense
  23. -- alt+F12 turns off Defense modes
  24. -- ctrl+F12 cycles Idle modes
  25. --
  26. -- Keep in mind that any time you Change Jobs/Subjobs, your Pet/Pet Food/etc. reset to default options.
  27. -- F12 will list your current options.
  28. -------------------------------------------------------------------------------------------------------------------
  29.  
  30. -------------------------------------------------------------------------------------------------------------------
  31. -- Initialization function that defines sets and variables to be used.
  32. -------------------------------------------------------------------------------------------------------------------
  33.  
  34. -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
  35.  
  36. -- Initialization function for this job file.
  37. function get_sets()
  38. mote_include_version = 2
  39.  
  40. -- Load and initialize the include file.
  41. include('Mote-Include.lua')
  42.  
  43.  
  44. include('organizer-lib')
  45. end
  46.  
  47. function job_setup()
  48. state.Buff['Killer Instinct'] = buffactive['Killer Instinct'] or false
  49. state.Buff.Doomed = buffactive.doomed or false
  50.  
  51. get_combat_form()
  52. end
  53.  
  54. function user_setup()
  55. state.OffenseMode:options('Normal', 'LowAccHaste', 'MedAcc', 'MedAccHaste', 'HighAcc', 'HighAccHaste')
  56. state.HybridMode:options('Normal', 'Hybrid')
  57. state.WeaponskillMode:options('Normal', 'WSMedAcc', 'WSHighAcc')
  58. state.CastingMode:options('Normal')
  59. state.IdleMode:options('Normal', 'Refresh', 'Reraise')
  60. state.RestingMode:options('Normal')
  61. state.PhysicalDefenseMode:options('PDT', 'PetPDT', 'Reraise', 'Killer')
  62. state.MagicalDefenseMode:options('MDT', 'MDTShell', 'MKiller')
  63.  
  64. -- 'Out of Range' distance; WS will auto-cancel
  65. target_distance = 6
  66.  
  67. -- Set up Jug Pet cycling and keybind Alt+F8
  68. -- INPUT PREFERRED JUG PETS HERE
  69. state.JugMode = M{['description']='Jug Mode', 'CursedAnnabelle', 'GooeyGerard', 'BlackbeardRandy', 'WarlikePatrick', 'ThreestarLynn',
  70. 'AttentiveIbuki','CaringKiyomaro','ScissorlegXerin','BouncingBertha','AmiableRoche'}
  71. send_command('bind !f8 gs c cycle JugMode')
  72.  
  73. -- Set up Monster Correlation Modes and keybind Ctrl+F8
  74. state.CorrelationMode = M{['description']='Correlation Mode', 'Neutral', 'Favorable'}
  75. send_command('bind ^f8 gs c cycle CorrelationMode')
  76.  
  77. -- Set up Pet Modes for Hybrid sets and keybind 'Windows Key'+F8
  78. state.PetMode = M{['description']='Pet Mode', 'Normal', 'PetOnly', 'PetStance', 'PetTank'}
  79. send_command('bind @f8 gs c cycle PetMode')
  80.  
  81. -- Keybind Ctrl+F11 to cycle Magical Defense Modes
  82. send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  83.  
  84. -- Set up Reward Modes and keybind alt+=
  85. state.RewardMode = M{['description']='Reward Mode', 'Theta', 'Zeta', 'Eta', 'Roborant', 'Poultice'}
  86. send_command('bind != gs c cycle RewardMode')
  87.  
  88. -- Set up Treasure Modes and keybind Ctrl+=
  89. state.TreasureMode = M{['description']='Treasure Mode', 'Tag', 'Normal'}
  90. send_command('bind ^= gs c cycle TreasureMode')
  91.  
  92. -- Complete list of Ready moves to use with Sic & Ready Recast -5 Desultor Tassets.
  93. ready_moves_to_check = S{'Sic','Whirl Claws','Dust Cloud','Foot Kick','Sheep Song','Sheep Charge','Lamb Chop',
  94. 'Rage','Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang',
  95. 'Roar','Gloeosuccus','Palsy Pollen','Soporific','Cursed Sphere','Venom','Geist Wall','Toxic Spit',
  96. 'Numbing Noise','Nimble Snap','Cyclotail','Spoil','Rhino Guard','Rhino Attack','Power Attack',
  97. 'Hi-Freq Field','Sandpit','Sandblast','Venom Spray','Mandibular Bite','Metallic Body','Bubble Shower',
  98. 'Bubble Curtain','Scissor Guard','Big Scissors','Grapple','Spinning Top','Double Claw','Filamented Hold',
  99. 'Frog Kick','Queasyshroom','Silence Gas','Numbshroom','Spore','Dark Spore','Shakeshroom','Blockhead',
  100. 'Secretion','Fireball','Tail Blow','Plague Breath','Brain Crush','Infrasonics','??? Needles',
  101. 'Needleshot','Chaotic Eye','Blaster','Scythe Tail','Ripper Fang','Chomp Rush','Intimidate','Recoil Dive',
  102. 'Water Wall','Snow Cloud','Wild Carrot','Sudden Lunge','Spiral Spin','Noisome Powder','Wing Slap',
  103. 'Beak Lunge','Suction','Drainkiss','Acid Mist','TP Drainkiss','Back Heel','Jettatura','Choke Breath',
  104. 'Fantod','Charged Whisker','Purulent Ooze','Corrosive Ooze','Tortoise Stomp','Harden Shell','Aqua Breath',
  105. 'Sensilla Blades','Tegmina Buffet','Molting Plumage','Swooping Frenzy','Pentapeck','Sweeping Gouge',
  106. 'Zealous Snort','Somersault','Tickling Tendrils','Stink Bomb','Nectarous Deluge','Nepenthic Plunge',
  107. 'Pecking Flurry','Pestilent Plume','Foul Waters','Spider Web','Sickle Slash'}
  108.  
  109. tp_based_ready_moves = S{'Sic','Somersault','Dust Cloud','Foot Kick','Sheep Song','Sheep Charge','Lamb Chop',
  110. 'Rage','Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang','Roar',
  111. 'Gloeosuccus','Palsy Pollen','Soporific','Cursed Sphere','Geist Wall','Numbing Noise','Frogkick',
  112. 'Nimble Snap','Cyclotail','Spoil','Rhino Guard','Rhino Attack','Hi-Freq Field','Sandpit','Sandblast',
  113. 'Mandibular Bite','Metallic Body','Bubble Shower','Bubble Curtain','Scissor Guard','Grapple','Spinning Top',
  114. 'Double Claw','Filamented Hold','Spore','Blockhead','Secretion','Fireball','Tail Blow','Plague Breath',
  115. 'Brain Crush','Infrasonics','Needleshot','Chaotic Eye','Blaster','Ripper Fang','Intimidate','Recoil Dive',
  116. 'Water Wall','Snow Cloud','Wild Carrot','Sudden Lunge','Noisome Powder','Wing Slap','Beak Lunge','Suction',
  117. 'Drainkiss','Acid Mist','TP Drainkiss','Back Heel','Jettatura','Choke Breath','Fantod','Charged Whisker',
  118. 'Purulent Ooze','Corrosive Ooze','Tortoise Stomp','Harden Shell','Aqua Breath','Sensilla Blades',
  119. 'Tegmina Buffet','Sweeping Gouge','Zealous Snort','Tickling Tendrils','Pecking Flurry',
  120. 'Pestilent Plume','Foul Waters','Spider Web'}
  121.  
  122. -- List of Magic-based Ready moves to use with Pet MAB or Pet M.Acc gearset.
  123. magic_ready_moves = S{'Dust Cloud','Sheep Song','Scream','Dream Flower','Roar','Gloeosuccus','Palsy Pollen',
  124. 'Soporific','Cursed Sphere','Venom','Geist Wall','Toxic Spit','Numbing Noise','Spoil','Hi-Freq Field',
  125. 'Sandpit','Sandblast','Venom Spray','Bubble Shower','Filamented Hold','Queasyshroom','Silence Gas',
  126. 'Numbshroom','Spore','Dark Spore','Shakeshroom','Fireball','Plague Breath','Infrasonics','Chaotic Eye',
  127. 'Blaster','Intimidate','Snow Cloud','Noisome Powder','TP Drainkiss','Jettatura','Charged Whisker',
  128. 'Purulent Ooze','Corrosive Ooze','Aqua Breath','Molting Plumage','Stink Bomb','Nectarous Deluge',
  129. 'Nepenthic Plunge','Pestilent Plume','Foul Waters','Spider Web'}
  130.  
  131. -- List of abilities to reference for applying Treasure Hunter +1 via Chaac Belt.
  132. abilities_to_check = S{'Feral Howl','Quickstep','Box Step','Stutter Step','Desperate Flourish','Violent Flourish',
  133. 'Animated Flourish','Provoke','Dia','Dia II','Flash','Bio','Bio II','Sleep','Sleep II',
  134. 'Drain','Aspir','Dispel','Steal','Mug'}
  135. end
  136.  
  137. function file_unload()
  138. if binds_on_unload then
  139. binds_on_unload()
  140. end
  141.  
  142. -- Unbinds the Jug Pet, Reward, Correlation, Treasure, PetMode, MDEF Mode hotkeys.
  143. send_command('unbind !=')
  144. send_command('unbind ^=')
  145. send_command('unbind !f8')
  146. send_command('unbind ^f8')
  147. send_command('unbind @f8')
  148. send_command('unbind ^f11')
  149.  
  150. end
  151.  
  152. -- BST gearsets
  153. function init_gear_sets()
  154.  
  155. organizer_items = {
  156. arktoi={ name="Arktoi", augments={'Accuracy+50','Pet: Accuracy+50','Pet: Attack+30',}},
  157. kerehcatl="Kerehcatl",
  158. astolfo="Astolfo",
  159. freydis="Freydis",
  160. izizoeksi="Izizoeksi",
  161. gelai="Gelai Earring",
  162. }
  163.  
  164.  
  165. -- PRECAST SETS
  166. sets.precast.JA['Killer Instinct'] = {}
  167. sets.precast.JA['Bestial Loyalty'] = {hands="Ankusa Gloves"}
  168. sets.precast.JA['Call Beast'] = sets.precast.JA['Bestial Loyalty']
  169. sets.precast.JA.Familiar = {legs="Ankusa Trousers"}
  170. sets.precast.JA.Tame = {}
  171. sets.precast.JA.Spur = {feet="Nukumi Ocreae"}
  172.  
  173. sets.precast.JA['Feral Howl'] = {}
  174.  
  175. sets.precast.JA.Reward = {
  176. head="Skormoth Mask",
  177. neck="Phalaina Locket",
  178. ear1="Handler's Earring +1",
  179. ear2="Lifestorm Earring",
  180. body="Tot. Jackcoat +1",
  181. hands="Leyline Gloves",
  182. ring1="Rufescent Ring",
  183. ring2="Levia. Ring",
  184. back="Pastoralist's Mantle",
  185. waist="Isa Belt",
  186. legs="Ankusa Trousers",
  187. feet="Ankusa Gaiters"}
  188.  
  189. sets.precast.JA.Reward.Theta = set_combine(sets.precast.JA.Reward, {ammo="Pet Food Theta"})
  190. sets.precast.JA.Reward.Zeta = set_combine(sets.precast.JA.Reward, {ammo="Pet Food Zeta"})
  191. sets.precast.JA.Reward.Eta = set_combine(sets.precast.JA.Reward, {ammo="Pet Food Eta"})
  192. sets.precast.JA.Reward.Roborant = set_combine(sets.precast.JA.Reward, {ammo="Pet Roborant"})
  193. sets.precast.JA.Reward.Poultice = set_combine(sets.precast.JA.Reward, {ammo="Pet Poultice"})
  194.  
  195. sets.precast.JA.Charm = {
  196. neck="Unmoving Collar +1",ear1="Handler's Earring +1",ear2="Enchanter Earring +1",
  197. body="Tot. Jackcoat +1",hands="Ankusa Gloves",ring2="Carb. Ring",
  198. legs="Ankusa Trousers",feet="Ankusa Gaiters"}
  199.  
  200. -- CURING WALTZ
  201. sets.precast.Waltz = {
  202. head="Anwig Salade",
  203. body="Jumalik Mail",
  204. neck="Phalaina Locket",
  205. ear1="Handler's Earring +1",
  206. ear2="Handler's Earring",
  207. hands="Buremte Gloves",
  208. ring1="Vocane Ring",
  209. ring2="Kunaji Ring",
  210. back="Xucau Mantle",
  211. waist="Chuq'aba Belt",
  212. legs="Dashing Subligar",
  213. feet="Meg. Jam. +1"}
  214.  
  215. -- HEALING WALTZ
  216. sets.precast.Waltz['Healing Waltz'] = {}
  217.  
  218. -- STEPS
  219. sets.precast.Step = {}
  220.  
  221. -- VIOLENT FLOURISH
  222. sets.precast.Flourish1 = {}
  223. sets.precast.Flourish1['Violent Flourish'] = {}
  224.  
  225. sets.precast.FC = {ammo="Impatiens",neck="Voltsurge Torque",ear1="Loquacious Earring",
  226. ear2="Enchanter Earring +1",
  227. body={ name="Taeon Tabard", augments={'Attack+20','Weapon Skill Acc.+16','Weapon skill damage +3%',}},
  228. hands="Leyline Gloves",ring1="Prolix Ring"}
  229. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
  230.  
  231. -- MIDCAST SETS
  232. sets.midcast.FastRecast = {
  233. ammo="Demonry Stone",
  234. head="Jumalik Helm",
  235. neck="Loricate Torque +1",
  236. ear1="Ethereal Earring",
  237. ear2="Etiolation Earring",
  238. body="Jumalik Mail",
  239. hands="Leyline Gloves",
  240. ring1="Vocane Ring",
  241. ring2="Defending Ring",
  242. back="Mollusca Mantle",
  243. waist="Chuq'aba Belt",
  244. legs="Dashing Subligar",
  245. feet="Ankusa Gaiters"}
  246.  
  247. sets.midcast.Utsusemi = sets.midcast.FastRecast
  248.  
  249. sets.midcast.Cure = {ammo="Impatiens",
  250. head="Jumalik Helm",neck="Phalaina Locket",ear1="Lifestorm Earring",ear2="Odnowa Earring +1",
  251. body="Jumalik Mail",hands="Buremte Gloves",ring1="Vocane Ring",ring2="Levia. Ring",
  252. back="Solemnity Cape",waist="Chuq'aba Belt",
  253. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  254. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  255.  
  256. sets.midcast.Curaga = sets.midcast.Cure
  257.  
  258. sets.midcast.Stoneskin = {
  259. ammo="Impatiens",
  260. head="Jumalik Helm",
  261. neck="Loricate Torque +1",
  262. ear1="Ethereal Earring",
  263. ear2="Etiolation Earring",
  264. body="Jumalik Mail",
  265. hands="Leyline Gloves",
  266. ring1="Vocane Ring",
  267. ring2="Defending Ring",
  268. back="Mollusca Mantle",
  269. waist="Chuq'aba Belt",
  270. legs="Dashing Subligar",
  271. feet="Ankusa Gaiters"}
  272.  
  273. sets.midcast.Cursna = set_combine(sets.midcast.FastRecast, {})
  274.  
  275. sets.midcast.Protect = {ring2="Sheltered Ring"}
  276. sets.midcast.Protectra = sets.midcast.Protect
  277.  
  278. sets.midcast.Shell = {ring2="Sheltered Ring"}
  279. sets.midcast.Shellra = sets.midcast.Shell
  280.  
  281. sets.midcast['Enfeebling Magic'] = {}
  282.  
  283. sets.midcast['Elemental Magic'] = sets.midcast['Enfeebling Magic']
  284.  
  285. -- WEAPONSKILLS
  286. -- Default weaponskill sets.
  287. sets.precast.WS = {ammo="Ginsen",
  288. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  289. neck="Fotia Gorget",
  290. ear1="Tripudio Earring",
  291. ear2="Ishvara Earring",
  292. body="Acro Surcoat",
  293. hands="Meg. Gloves +1",
  294. ring1="Ifrit Ring",
  295. ring2="Petrov Ring",
  296. back="Bleating Mantle",
  297. waist="Fotia Belt",
  298. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  299. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  300.  
  301. sets.precast.WS.WSMedAcc = {ammo="Ginsen",
  302. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  303. neck="Fotia Gorget",
  304. ear1="Tripudio Earring",
  305. ear2="Ishvara Earring",
  306. body="Acro Surcoat",
  307. hands="Meg. Gloves +1",
  308. ring1="Rufescent Ring",
  309. ring2="Petrov Ring",
  310. back="Bleating Mantle",
  311. waist="Fotia Belt",
  312. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  313. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  314.  
  315. sets.precast.WS.WSHighAcc = {ammo="Ginsen",
  316. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  317. neck="Fotia Gorget",
  318. ear1="Tripudio Earring",
  319. ear2="Ishvara Earring",
  320. body="Acro Surcoat",
  321. hands="Meg. Gloves +1",
  322. ring1="Rufescent Ring",
  323. ring2="Petrov Ring",
  324. back="Bleating Mantle",
  325. waist="Fotia Belt",
  326. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  327. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  328.  
  329. -- Specific weaponskill sets.
  330. sets.precast.WS['Ruinator'] = set_combine(sets.precast.WS, {
  331. ammo="Ginsen",
  332. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  333. neck="Fotia Gorget",
  334. ear1="Tripudio Earring",
  335. ear2="Ishvara Earring",
  336. body="Acro Surcoat",
  337. hands="Meg. Gloves +1",
  338. ring1="Ifrit Ring",
  339. ring2="Petrov Ring",
  340. back="Bleating Mantle",
  341. waist="Fotia Belt",
  342. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  343. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},})
  344. sets.precast.WS['Ruinator'].Mekira = set_combine(sets.precast.WS['Ruinator'], {})
  345. sets.precast.WS['Ruinator'].WSMedAcc = set_combine(sets.precast.WS.WSMedAcc, {})
  346. sets.precast.WS['Ruinator'].WSHighAcc = set_combine(sets.precast.WS.WSHighAcc, {})
  347.  
  348. sets.precast.WS['Onslaught'] = set_combine(sets.precast.WS, {})
  349. sets.precast.WS['Onslaught'].WSMedAcc = set_combine(sets.precast.WSMedAcc, {})
  350. sets.precast.WS['Onslaught'].WSHighAcc = set_combine(sets.precast.WSHighAcc, {})
  351.  
  352. sets.precast.WS['Primal Rend'] = {
  353. ammo="Pemphredo Tathlum",
  354. head="Jumalik Helm",
  355. neck="Fotia Gorget",
  356. ear1="Tripudio Earring",
  357. ear2="Ishvara Earring",
  358. body="Jumalik Mail",
  359. hands="Meg. Gloves +1",
  360. ring1="Ifrit Ring",
  361. ring2="Shiva Ring +1",
  362. back="Toro Cape",
  363. waist="Fotia Belt",
  364. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  365. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  366.  
  367. sets.precast.WS['Cloudsplitter'] = set_combine(sets.precast.WS, {
  368. ammo="Pemphredo Tathlum",
  369. head="Jumalik Helm",
  370. neck="Fotia Gorget",
  371. ear1="Tripudio Earring",
  372. ear2="Ishvara Earring",
  373. body="Jumalik Mail",
  374. hands="Meg. Gloves +1",
  375. ring1="Ifrit Ring",
  376. ring2="Shiva Ring +1",
  377. back="Toro Cape",
  378. waist="Fotia Belt",
  379. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  380. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},})
  381.  
  382. -- PET SIC & READY MOVES
  383. sets.midcast.Pet.WS = {ammo="Demonry Core",
  384. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  385. neck="Empath Necklace",
  386. ear1="Ferine Earring",
  387. ear2="Sabong Earring",
  388. hands="Nukumi Manoplas",
  389. waist="Hurch'lan Sash",
  390. back="Artio's Mantle",
  391. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},}
  392.  
  393. sets.midcast.Pet.MagicReady = set_combine(sets.midcast.Pet.WS, {
  394. back="Argochampsa Mantle"})
  395.  
  396. sets.midcast.Pet.HighAcc = set_combine(sets.midcast.Pet.WS, {})
  397.  
  398. sets.midcast.Pet.ReadyRecast = {}
  399. sets.midcast.Pet.Neutral = {}
  400. sets.midcast.Pet.Favorable = {head="Nukumi Cabasset"}
  401. sets.midcast.Pet.TPBonus = {hands="Nukumi Manoplas"}
  402.  
  403. -- PET-ONLY SETS THAT SWAP WEAPONS FOR READY AND IDLE
  404. sets.midcast.Pet.ReadyRecastNE = {}
  405.  
  406. sets.midcast.Pet.ReadyNE = set_combine(sets.midcast.Pet.WS, {})
  407. sets.midcast.Pet.ReadyNE.MedAcc = set_combine(sets.midcast.Pet.WS, {})
  408. sets.midcast.Pet.ReadyNE.HighAcc = set_combine(sets.midcast.Pet.WS, {})
  409.  
  410. sets.midcast.Pet.MagicReadyNE = set_combine(sets.midcast.Pet.MagicReady, {})
  411.  
  412. sets.IdleAxesNE = {}
  413.  
  414. -- RESTING
  415. sets.resting = {}
  416.  
  417. -- IDLE SETS
  418. sets.ExtraRegen = {}
  419.  
  420. sets.idle = {
  421. ammo="Demonry Stone",
  422. head="Jumalik Helm",
  423. neck="Wiglen Gorget",
  424. ear1="Ethereal Earring",
  425. ear2="Dawn Earring",
  426. body="Jumalik Mail",
  427. hands="Meg. Gloves +1",
  428. ring1="Sheltered Ring",
  429. ring2="Paguroidea Ring",
  430. back="Impassive Mantle",
  431. waist="Flume Belt",
  432. legs="Meg. Chausses +1",
  433. feet="Skd. Jambeaux +1"}
  434.  
  435. sets.idle.Refresh = set_combine(sets.idle, {})
  436. sets.idle.Reraise = set_combine(sets.idle, {head="Twilight Helm",body="Twilight Mail"})
  437.  
  438. sets.idle.Pet = set_combine(sets.idle, {
  439. ammo="Demonry Stone",
  440. head="Anwig Salade",
  441. neck="Empath Necklace",
  442. ear1="Handler's Earring +1",
  443. ear2="Handler's Earring",
  444. body="Jumalik Mail",
  445. hands="Ankusa Gloves",
  446. ring1="Sheltered Ring",
  447. ring2="Paguroidea Ring",
  448. back="Pastoralist's Mantle",
  449. waist="Isa Belt",
  450. legs="Meg. Chausses +1",
  451. feet="Skd. Jambeaux +1"})
  452.  
  453. sets.idle.Pet.Engaged = {
  454. ammo="Demonry Core",
  455. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  456. neck="Empath Necklace",
  457. ear1="Ferine Earring",
  458. ear2="Sabong Earring",
  459. hands="Emicho Gauntlets",
  460. waist="Hurch'lan Sash",
  461. back="Artio's Mantle",
  462. legs="Ankusa Trousers",
  463. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},}
  464.  
  465. -- DEFENSE SETS
  466. sets.defense.PDT = {
  467. ammo="Demonry Stone",
  468. head="Jumalik Helm",
  469. neck="Loricate Torque +1",
  470. ear1="Ethereal Earring",
  471. ear2="Etiolation Earring",
  472. body="Jumalik Mail",
  473. hands="Meg. Gloves +1",
  474. ring1="Vocane Ring",
  475. ring2="Defending Ring",
  476. back="Mollusca Mantle",
  477. waist="Flume Belt",
  478. legs="Meg. Chausses +1",
  479. feet="Meg. Jam. +1"}
  480.  
  481. sets.defense.PetPDT = {ammo="Demonry Core",
  482. head="Anwig Salade",neck="Empath Necklace",ear1="Handler's Earring +1",ear2="Handler's Earring",
  483. hands="Ankusa Gloves",ring1="Vocane Ring",ring2="Defending Ring",
  484. back="Pastoralist's Mantle",waist="Isa Belt",legs="Tali'ah Seraweels +1",feet="Ankusa Gaiters"}
  485.  
  486. sets.defense.Killer = set_combine(sets.defense.PDT, {})
  487. sets.defense.Reraise = set_combine(sets.defense.PDT, {head="Twilight Helm",body="Twilight Mail"})
  488.  
  489. sets.defense.MDT = set_combine(sets.defense.PDT, {
  490. head="Skormoth Mask",
  491. ear1="Odnowa Earring +1",
  492. ear2="Etiolation Earring",
  493. back="Engulfer Cape +1",
  494. waist="Nierenschutz",
  495. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},})
  496.  
  497. sets.defense.MDTShell = set_combine(sets.defense.MDT, {
  498. head="Skormoth Mask",
  499. ear1="Odnowa Earring +1",
  500. ear2="Etiolation Earring",
  501. back="Engulfer Cape +1",
  502. waist="Nierenschutz",
  503. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},})
  504.  
  505. sets.defense.MKiller = set_combine(sets.defense.MDT, {})
  506.  
  507. sets.Kiting = {feet="Skadi's Jambeaux +1"}
  508.  
  509. -- MELEE (SINGLE-WIELD) SETS
  510. sets.engaged = {
  511. ammo="Ginsen",
  512. head="Skormoth Mask",
  513. neck="Asperity Necklace",
  514. ear1="Steelflash Earring",
  515. ear2="Bladeborn Earring",
  516. body="Xaddi Mail",
  517. hands={ name="Acro Gauntlets", augments={'Accuracy+16 Attack+16','"Store TP"+5','Weapon skill damage +2%',}},
  518. ring1="Epona's Ring",
  519. ring2="Petrov Ring",
  520. back="Atheling Mantle",
  521. waist="Kentarch Belt +1",
  522. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  523. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  524. sets.engaged.LowAccHaste = {
  525. ammo="Ginsen",
  526. head="Skormoth Mask",
  527. neck="Asperity Necklace",
  528. ear1="Steelflash Earring",
  529. ear2="Bladeborn Earring",
  530. body="Xaddi Mail",
  531. hands={ name="Acro Gauntlets", augments={'Accuracy+16 Attack+16','"Store TP"+5','Weapon skill damage +2%',}},
  532. ring1="Epona's Ring",
  533. ring2="Petrov Ring",
  534. back="Atheling Mantle",
  535. waist="Kentarch Belt +1",
  536. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  537. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  538. sets.engaged.MedAcc = {
  539. ammo="Ginsen",
  540. head="Skormoth Mask",
  541. neck="Asperity Necklace",
  542. ear1="Odnowa Earring +1",
  543. ear2="Cessance Earring",
  544. body="Xaddi Mail",
  545. hands="Emicho Gauntlets",
  546. ring1="Epona's Ring",
  547. ring2="Petrov Ring",
  548. back="Atheling Mantle",
  549. waist="Kentarch Belt +1",
  550. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  551. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  552. sets.engaged.MedAccHaste = {
  553. ammo="Ginsen",
  554. head="Skormoth Mask",
  555. neck="Asperity Necklace",
  556. ear1="Odnowa Earring +1",
  557. ear2="Cessance Earring",
  558. body="Xaddi Mail",
  559. hands="Emicho Gauntlets",
  560. ring1="Epona's Ring",
  561. ring2="Petrov Ring",
  562. back="Atheling Mantle",
  563. waist="Kentarch Belt +1",
  564. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  565. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  566. sets.engaged.HighAcc = {
  567. ammo="Amar Cluster",
  568. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  569. neck="Combatant's Torque",
  570. ear1="Odnowa Earring +1",
  571. ear2="Zennaroi Earring",
  572. body="Meg. Cuirie +1",
  573. hands={ name="Valorous Mitts", augments={'Accuracy+24 Attack+24','AGI+6','Accuracy+10',}},
  574. ring1="Ramuh Ring +1",
  575. ring2="Cacoethic Ring +1",
  576. back="Grounded Mantle +1",
  577. waist="Olseni Belt",
  578. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  579. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  580. sets.engaged.HighAccHaste = {
  581. ammo="Amar Cluster",
  582. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  583. neck="Combatant's Torque",
  584. ear1="Odnowa Earring +1",
  585. ear2="Zennaroi Earring",
  586. body="Meg. Cuirie +1",
  587. hands={ name="Valorous Mitts", augments={'Accuracy+24 Attack+24','AGI+6','Accuracy+10',}},
  588. ring1="Ramuh Ring +1",
  589. ring2="Cacoethic Ring +1",
  590. back="Grounded Mantle +1",
  591. waist="Olseni Belt",
  592. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  593. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  594. -- MELEE (SINGLE-WIELD) HYBRID SETS
  595. sets.engaged.Hybrid = set_combine(sets.engaged, {})
  596. sets.engaged.LowAccHaste.Hybrid = set_combine(sets.engaged.LowAccHaste, {})
  597. sets.engaged.MedAcc.Hybrid = set_combine(sets.engaged.MedAcc, {})
  598. sets.engaged.MedAccHaste.Hybrid = set_combine(sets.engaged.MedAccHaste, {})
  599. sets.engaged.HighAcc.Hybrid = set_combine(sets.engaged.HighAcc, {})
  600. sets.engaged.HighAccHaste.Hybrid = set_combine(sets.engaged.HighAccHaste, {})
  601.  
  602. -- MELEE (DUAL-WIELD) SETS FOR DNC AND NIN SUBJOB
  603. sets.engaged.DW = {
  604. ammo="Ginsen",
  605. head="Skormoth Mask",
  606. neck="Asperity Necklace",
  607. ear1="Dudgeon Earring",
  608. ear2="Heartseeker Earring",
  609. body="Xaddi Mail",
  610. hands={ name="Acro Gauntlets", augments={'Accuracy+16 Attack+16','"Store TP"+5','Weapon skill damage +2%',}},
  611. ring1="Epona's Ring",
  612. ring2="Petrov Ring",
  613. back="Atheling Mantle",
  614. waist="Patentia Sash",
  615. legs={ name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Dual Wield"+4','STR+5 VIT+5',}},
  616. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  617. sets.engaged.DW.LowAccHaste = {
  618. ammo="Ginsen",
  619. head="Skormoth Mask",
  620. neck="Asperity Necklace",
  621. ear1="Dudgeon Earring",
  622. ear2="Heartseeker Earring",
  623. body="Xaddi Mail",
  624. hands={ name="Acro Gauntlets", augments={'Accuracy+16 Attack+16','"Store TP"+5','Weapon skill damage +2%',}},
  625. ring1="Epona's Ring",
  626. ring2="Petrov Ring",
  627. back="Atheling Mantle",
  628. waist="Patentia Sash",
  629. legs={ name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Dual Wield"+4','STR+5 VIT+5',}},
  630. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  631. sets.engaged.DW.MedAcc = {
  632. ammo="Ginsen",
  633. head="Skormoth Mask",
  634. neck="Asperity Necklace",
  635. ear1="Odnowa Earring +1",
  636. ear2="Suppanomimi",
  637. body="Xaddi Mail",
  638. hands="Emicho Gauntlets",
  639. ring1="Epona's Ring",
  640. ring2="Petrov Ring",
  641. back="Atheling Mantle",
  642. waist="Patentia Sash",
  643. legs={ name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Dual Wield"+4','STR+5 VIT+5',}},
  644. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  645. sets.engaged.DW.MedAccHaste = {
  646. ammo="Ginsen",
  647. head="Skormoth Mask",
  648. neck="Asperity Necklace",
  649. ear1="Odnowa Earring +1",
  650. ear2="Suppanomimi",
  651. body="Xaddi Mail",
  652. hands="Emicho Gauntlets",
  653. ring1="Epona's Ring",
  654. ring2="Petrov Ring",
  655. back="Atheling Mantle",
  656. waist="Patentia Sash",
  657. legs={ name="Taeon Tights", augments={'Accuracy+17 Attack+17','"Dual Wield"+4','STR+5 VIT+5',}},
  658. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  659. sets.engaged.DW.HighAcc = {
  660. ammo="Amar Cluster",
  661. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  662. neck="Combatant's Torque",
  663. ear1="Odnowa Earring +1",
  664. ear2="Zennaroi Earring",
  665. body="Meg. Cuirie +1",
  666. hands={ name="Valorous Mitts", augments={'Accuracy+24 Attack+24','AGI+6','Accuracy+10',}},
  667. ring1="Ramuh Ring +1",
  668. ring2="Cacoethic Ring +1",
  669. back="Grounded Mantle +1",
  670. waist="Olseni Belt",
  671. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  672. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  673. sets.engaged.DW.HighAccHaste = {
  674. ammo="Amar Cluster",
  675. head={ name="Valorous Mask", augments={'Accuracy+24 Attack+24','Crit. hit damage +2%','Accuracy+12',}},
  676. neck="Combatant's Torque",
  677. ear1="Odnowa Earring +1",
  678. ear2="Zennaroi Earring",
  679. body="Meg. Cuirie +1",
  680. hands={ name="Valorous Mitts", augments={'Accuracy+24 Attack+24','AGI+6','Accuracy+10',}},
  681. ring1="Ramuh Ring +1",
  682. ring2="Cacoethic Ring +1",
  683. back="Grounded Mantle +1",
  684. waist="Olseni Belt",
  685. legs={ name="Valor. Hose", augments={'Accuracy+25 Attack+25','Phys. dmg. taken -3%','Accuracy+6','Attack+13',}},
  686. feet={ name="Valorous Greaves", augments={'Accuracy+25 Attack+25','Crit.hit rate+1','AGI+7','Accuracy+6','Attack+3',}},}
  687. -- MELEE (DUAL-WIELD) HYBRID SETS
  688. sets.engaged.DW.Hybrid = set_combine(sets.engaged.DW, {})
  689. sets.engaged.DW.LowAccHaste.Hybrid = set_combine(sets.engaged.DW.LowAccHaste, {})
  690. sets.engaged.DW.MedAcc.Hybrid = set_combine(sets.engaged.DW.MedAcc, {})
  691. sets.engaged.DW.MedAccHaste.Hybrid = set_combine(sets.engaged.DW.MedAccHaste, {})
  692. sets.engaged.DW.HighAcc.Hybrid = set_combine(sets.engaged.DW.HighAcc, {})
  693. sets.engaged.DW.HighAccHaste.Hybrid = set_combine(sets.engaged.DW.HighAccHaste, {})
  694.  
  695. -- GEARSETS FOR MASTER ENGAGED (SINGLE-WIELD) & PET ENGAGED
  696. sets.engaged.PetStance = set_combine(sets.engaged,{
  697. ammo="Demonry Core",
  698. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  699. neck="Empath Necklace",
  700. ear1="Ferine Earring",
  701. ear2="Sabong Earring",
  702. hands="Emicho Gauntlets",
  703. waist="Hurch'lan Sash",
  704. back="Artio's Mantle",
  705. legs="Ankusa Trousers",
  706. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  707. sets.engaged.PetStance.LowAccHaste = set_combine(sets.engaged.LowAccHaste,{
  708. ammo="Demonry Core",
  709. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  710. neck="Empath Necklace",
  711. ear1="Ferine Earring",
  712. ear2="Sabong Earring",
  713. hands="Emicho Gauntlets",
  714. waist="Hurch'lan Sash",
  715. back="Artio's Mantle",
  716. legs="Ankusa Trousers",
  717. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  718. sets.engaged.PetStance.MedAcc = set_combine(sets.engaged.MedAcc,{
  719. ammo="Demonry Core",
  720. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  721. neck="Empath Necklace",
  722. ear1="Ferine Earring",
  723. ear2="Sabong Earring",
  724. hands={ name="Valorous Mitts", augments={'Pet: Accuracy+25 Pet: Rng. Acc.+25','"Store TP"+6','Pet: DEX+8','Pet: Attack+15 Pet: Rng.Atk.+15',}},
  725. back="Artio's Mantle",waist="Incarnation Sash",
  726. legs="Ankusa Trousers",
  727. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  728. sets.engaged.PetStance.MedAccHaste = set_combine(sets.engaged.MedAccHaste,{
  729. ammo="Demonry Core",
  730. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  731. neck="Empath Necklace",
  732. ear1="Ferine Earring",
  733. ear2="Sabong Earring",
  734. hands={ name="Valorous Mitts", augments={'Pet: Accuracy+25 Pet: Rng. Acc.+25','"Store TP"+6','Pet: DEX+8','Pet: Attack+15 Pet: Rng.Atk.+15',}},
  735. back="Artio's Mantle",waist="Incarnation Sash",
  736. legs="Ankusa Trousers",
  737. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  738. sets.engaged.PetStance.HighAcc = set_combine(sets.engaged.HighAcc,{
  739. ammo="Demonry Core",
  740. head="Tali'ah Turban +1",
  741. neck="Empath Necklace",
  742. ear1="Ferine Earring",
  743. ear2="Sabong Earring",
  744. hands="Tali'ah Gages +1",
  745. back="Artio's Mantle",waist="Incarnation Sash",
  746. legs="Ankusa Trousers",
  747. feet="Tali'ah Crackows +1"})
  748. sets.engaged.PetStance.HighAccHaste = set_combine(sets.engaged.HighAccHaste,{
  749. ammo="Demonry Core",
  750. head="Tali'ah Turban +1",
  751. neck="Empath Necklace",
  752. ear1="Ferine Earring",
  753. ear2="Sabong Earring",
  754. hands="Tali'ah Gages +1",
  755. back="Artio's Mantle",waist="Incarnation Sash",
  756. legs="Ankusa Trousers",
  757. feet="Tali'ah Crackows +1"})
  758.  
  759. -- GEARSETS FOR MASTER ENGAGED (SINGLE-WIELD) & PET TANKING
  760. sets.engaged.PetTank = set_combine(sets.engaged,{
  761. head="Anwig Salade",
  762. neck="Empath Necklace",
  763. ear1="Handler's Earring +1",
  764. ear2="Handler's Earring",
  765. hands="Ankusa Gloves",
  766. waist="Isa Belt",
  767. back="Pastoralist's Mantle",
  768. legs="Tali'ah Seraweels +1",
  769. feet="Ankusa Gaiters"})
  770. sets.engaged.PetTank.LowAccHaste = set_combine(sets.engaged.LowAccHaste,{
  771. head="Anwig Salade",
  772. neck="Empath Necklace",
  773. ear1="Handler's Earring +1",
  774. ear2="Handler's Earring",
  775. hands="Ankusa Gloves",
  776. waist="Isa Belt",
  777. back="Pastoralist's Mantle",
  778. legs="Tali'ah Seraweels +1",
  779. feet="Ankusa Gaiters"})
  780. sets.engaged.PetTank.MedAcc = set_combine(sets.engaged.MedAcc,{
  781. head="Anwig Salade",
  782. neck="Empath Necklace",
  783. ear1="Handler's Earring +1",
  784. ear2="Handler's Earring",
  785. hands="Ankusa Gloves",
  786. waist="Isa Belt",
  787. back="Pastoralist's Mantle",
  788. legs="Tali'ah Seraweels +1",
  789. feet="Ankusa Gaiters"})
  790. sets.engaged.PetTank.MedAccHaste = set_combine(sets.engaged.MedAccHaste,{
  791. head="Anwig Salade",
  792. neck="Empath Necklace",
  793. ear1="Handler's Earring +1",
  794. ear2="Handler's Earring",
  795. hands="Ankusa Gloves",
  796. waist="Isa Belt",
  797. back="Pastoralist's Mantle",
  798. legs="Tali'ah Seraweels +1",
  799. feet="Ankusa Gaiters"})
  800. sets.engaged.PetTank.HighAcc = set_combine(sets.engaged.HighAcc,{
  801. head="Anwig Salade",
  802. neck="Empath Necklace",
  803. ear1="Handler's Earring +1",
  804. ear2="Handler's Earring",
  805. hands="Ankusa Gloves",
  806. waist="Isa Belt",
  807. back="Pastoralist's Mantle",
  808. legs="Tali'ah Seraweels +1",
  809. feet="Ankusa Gaiters"})
  810. sets.engaged.PetTank.HighAccHaste = set_combine(sets.engaged.HighAccHaste,{
  811. head="Anwig Salade",
  812. neck="Empath Necklace",
  813. ear1="Handler's Earring +1",
  814. ear2="Handler's Earring",
  815. hands="Ankusa Gloves",
  816. waist="Isa Belt",
  817. back="Pastoralist's Mantle",
  818. legs="Tali'ah Seraweels +1",
  819. feet="Ankusa Gaiters"})
  820.  
  821. -- GEARSETS FOR MASTER ENGAGED (DUAL-WIELD) & PET ENGAGED
  822. sets.engaged.DW.PetStance = set_combine(sets.engaged.DW,{
  823. ammo="Demonry Core",
  824. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  825. neck="Empath Necklace",
  826. ear1="Ferine Earring",
  827. ear2="Sabong Earring",
  828. hands="Emicho Gauntlets",
  829. waist="Hurch'lan Sash",
  830. back="Artio's Mantle",
  831. legs="Ankusa Trousers",
  832. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  833. sets.engaged.DW.PetStance.LowAccHaste = set_combine(sets.engaged.DW.LowAccHaste,{
  834. ammo="Demonry Core",
  835. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  836. neck="Empath Necklace",
  837. ear1="Ferine Earring",
  838. ear2="Sabong Earring",
  839. hands="Emicho Gauntlets",
  840. waist="Hurch'lan Sash",
  841. back="Artio's Mantle",
  842. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  843. sets.engaged.DW.PetStance.MedAcc = set_combine(sets.engaged.DW.MedAcc,{
  844. ammo="Demonry Core",
  845. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  846. neck="Empath Necklace",
  847. ear1="Ferine Earring",
  848. ear2="Sabong Earring",
  849. hands={ name="Valorous Mitts", augments={'Pet: Accuracy+25 Pet: Rng. Acc.+25','"Store TP"+6','Pet: DEX+8','Pet: Attack+15 Pet: Rng.Atk.+15',}},
  850. back="Artio's Mantle",waist="Incarnation Sash",
  851. legs="Ankusa Trousers",
  852. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  853. sets.engaged.DW.PetStance.MedAccHaste = set_combine(sets.engaged.DW.MedAccHaste,{
  854. ammo="Demonry Core",
  855. head={ name="Valorous Mask", augments={'Pet: Accuracy+28 Pet: Rng. Acc.+28','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','Pet: STR+6','Pet: Attack+12 Pet: Rng.Atk.+12',}},
  856. neck="Empath Necklace",
  857. ear1="Ferine Earring",
  858. ear2="Sabong Earring",
  859. hands={ name="Valorous Mitts", augments={'Pet: Accuracy+25 Pet: Rng. Acc.+25','"Store TP"+6','Pet: DEX+8','Pet: Attack+15 Pet: Rng.Atk.+15',}},
  860. back="Artio's Mantle",waist="Incarnation Sash",
  861. legs="Ankusa Trousers",
  862. feet={ name="Valorous Greaves", augments={'Pet: Accuracy+30 Pet: Rng. Acc.+30','Pet: "Dbl. Atk."+1','Pet: Attack+7 Pet: Rng.Atk.+7',}},})
  863. sets.engaged.DW.PetStance.HighAcc = set_combine(sets.engaged.DW.HighAcc,{
  864. ammo="Demonry Core",
  865. head="Tali'ah Turban +1",
  866. neck="Empath Necklace",
  867. ear1="Ferine Earring",
  868. ear2="Sabong Earring",
  869. hands="Tali'ah Gages +1",
  870. back="Artio's Mantle",waist="Incarnation Sash",
  871. legs="Ankusa Trousers",
  872. feet="Tali'ah Crackows +1"})
  873. sets.engaged.DW.PetStance.HighAccHaste = set_combine(sets.engaged.DW.HighAccHaste,{
  874. ammo="Demonry Core",
  875. head="Tali'ah Turban +1",
  876. neck="Empath Necklace",
  877. ear1="Ferine Earring",
  878. ear2="Sabong Earring",
  879. hands="Tali'ah Gages +1",
  880. back="Artio's Mantle",waist="Incarnation Sash",
  881. legs="Ankusa Trousers",
  882. feet="Tali'ah Crackows +1"})
  883.  
  884. -- GEARSETS FOR MASTER ENGAGED (DUAL-WIELD) & PET TANKING
  885. sets.engaged.DW.PetTank = set_combine(sets.engaged.DW,{
  886. head="Anwig Salade",
  887. neck="Empath Necklace",
  888. ear1="Handler's Earring +1",
  889. ear2="Handler's Earring",
  890. hands="Ankusa Gloves",
  891. waist="Isa Belt",
  892. back="Pastoralist's Mantle",
  893. legs="Tali'ah Seraweels +1",
  894. feet="Ankusa Gaiters"})
  895. sets.engaged.DW.PetTank.LowAccHaste = set_combine(sets.engaged.DW.LowAccHaste,{
  896. head="Anwig Salade",
  897. neck="Empath Necklace",
  898. ear1="Handler's Earring +1",
  899. ear2="Handler's Earring",
  900. hands="Ankusa Gloves",
  901. waist="Isa Belt",
  902. back="Pastoralist's Mantle",
  903. legs="Tali'ah Seraweels +1",
  904. feet="Ankusa Gaiters"})
  905. sets.engaged.DW.PetTank.MedAcc = set_combine(sets.engaged.DW.MedAcc,{
  906. head="Anwig Salade",
  907. neck="Empath Necklace",
  908. ear1="Handler's Earring +1",
  909. ear2="Handler's Earring",
  910. hands="Ankusa Gloves",
  911. waist="Isa Belt",
  912. back="Pastoralist's Mantle",
  913. legs="Tali'ah Seraweels +1",
  914. feet="Ankusa Gaiters"})
  915. sets.engaged.DW.PetTank.MedAccHaste = set_combine(sets.engaged.DW.MedAccHaste,{
  916. head="Anwig Salade",
  917. neck="Empath Necklace",
  918. ear1="Handler's Earring +1",
  919. ear2="Handler's Earring",
  920. hands="Ankusa Gloves",
  921. waist="Isa Belt",
  922. back="Pastoralist's Mantle",
  923. legs="Tali'ah Seraweels +1",
  924. feet="Ankusa Gaiters"})
  925. sets.engaged.DW.PetTank.HighAcc = set_combine(sets.engaged.DW.HighAcc,{
  926. head="Anwig Salade",
  927. neck="Empath Necklace",
  928. ear1="Handler's Earring +1",
  929. ear2="Handler's Earring",
  930. hands="Ankusa Gloves",
  931. waist="Isa Belt",
  932. back="Pastoralist's Mantle",
  933. legs="Tali'ah Seraweels +1",
  934. feet="Ankusa Gaiters"})
  935. sets.engaged.DW.PetTank.HighAccHaste = set_combine(sets.engaged.DW.HighAccHaste,{
  936. head="Anwig Salade",
  937. neck="Empath Necklace",
  938. ear1="Handler's Earring +1",
  939. ear2="Handler's Earring",
  940. hands="Ankusa Gloves",
  941. waist="Isa Belt",
  942. back="Pastoralist's Mantle",
  943. legs="Tali'ah Seraweels +1",
  944. feet="Ankusa Gaiters"})
  945.  
  946. sets.buff['Killer Instinct'] = {}
  947. sets.buff.Doomed = {}
  948. sets.THBelt = {waist="Chaac Belt"}
  949.  
  950. -------------------------------------------------------------------------------------------------------------------
  951. -- Complete Lvl 76-99 Jug Pet Precast List +Funguar +Courier +Amigo
  952. -------------------------------------------------------------------------------------------------------------------
  953.  
  954. sets.precast.JA['Bestial Loyalty'].FunguarFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Seedbed Soil"})
  955. sets.precast.JA['Bestial Loyalty'].CourierCarrie = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Fish Oil Broth"})
  956. sets.precast.JA['Bestial Loyalty'].AmigoSabotender = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Sun Water"})
  957. sets.precast.JA['Bestial Loyalty'].NurseryNazuna = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="D. Herbal Broth"})
  958. sets.precast.JA['Bestial Loyalty'].CraftyClyvonne = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Cng. Brain Broth"})
  959. sets.precast.JA['Bestial Loyalty'].PrestoJulio = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="C. Grass. Broth"})
  960. sets.precast.JA['Bestial Loyalty'].SwiftSieghard = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Mlw. Bird Broth"})
  961. sets.precast.JA['Bestial Loyalty'].MailbusterCetas = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Gob. Bug Broth"})
  962. sets.precast.JA['Bestial Loyalty'].AudaciousAnna = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="B. Carrion Broth"})
  963. sets.precast.JA['Bestial Loyalty'].TurbidToloi = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Auroral Broth"})
  964. sets.precast.JA['Bestial Loyalty'].LuckyLulush = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="L. Carrot Broth"})
  965. sets.precast.JA['Bestial Loyalty'].DipperYuly = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Wool Grease"})
  966. sets.precast.JA['Bestial Loyalty'].FlowerpotMerle = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Vermihumus"})
  967. sets.precast.JA['Bestial Loyalty'].DapperMac = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Briny Broth"})
  968. sets.precast.JA['Bestial Loyalty'].DiscreetLouise = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Deepbed Soil"})
  969. sets.precast.JA['Bestial Loyalty'].FatsoFargann = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="C. Plasma Broth"})
  970. sets.precast.JA['Bestial Loyalty'].FaithfulFalcorr = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Lucky Broth"})
  971. sets.precast.JA['Bestial Loyalty'].BugeyedBroncha = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Svg. Mole Broth"})
  972. sets.precast.JA['Bestial Loyalty'].BloodclawShasra = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Rzr. Brain Broth"})
  973. sets.precast.JA['Bestial Loyalty'].GorefangHobs = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="B. Carrion Broth"})
  974. sets.precast.JA['Bestial Loyalty'].GooeyGerard = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Cl. Wheat Broth"})
  975. sets.precast.JA['Bestial Loyalty'].CrudeRaphie = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Shadowy Broth"})
  976.  
  977. -------------------------------------------------------------------------------------------------------------------
  978. -- Complete iLvl Jug Pet Precast List
  979. -------------------------------------------------------------------------------------------------------------------
  980.  
  981. sets.precast.JA['Bestial Loyalty'].DroopyDortwin = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Swirling Broth"})
  982. sets.precast.JA['Bestial Loyalty'].PonderingPeter = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Vis. Broth"})
  983. sets.precast.JA['Bestial Loyalty'].SunburstMalfik = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Shimmering Broth"})
  984. sets.precast.JA['Bestial Loyalty'].AgedAngus = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Ferm. Broth"})
  985. sets.precast.JA['Bestial Loyalty'].WarlikePatrick = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Livid Broth"})
  986. sets.precast.JA['Bestial Loyalty'].ScissorlegXerin = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Spicy Broth"})
  987. sets.precast.JA['Bestial Loyalty'].BouncingBertha = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Bubbly Broth"})
  988. sets.precast.JA['Bestial Loyalty'].RhymingShizuna = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Lyrical Broth"})
  989. sets.precast.JA['Bestial Loyalty'].AttentiveIbuki = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Salubrious Broth"})
  990. sets.precast.JA['Bestial Loyalty'].SwoopingZhivago = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Windy Greens"})
  991. sets.precast.JA['Bestial Loyalty'].AmiableRoche = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Airy Broth"})
  992. sets.precast.JA['Bestial Loyalty'].HeraldHenry = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Trans. Broth"})
  993. sets.precast.JA['Bestial Loyalty'].BrainyWaluis = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Crumbly Soil"})
  994. sets.precast.JA['Bestial Loyalty'].HeadbreakerKen = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Blackwater Broth"})
  995. sets.precast.JA['Bestial Loyalty'].RedolentCandi = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Electrified Broth"})
  996. sets.precast.JA['Bestial Loyalty'].AlluringHoney = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Bug-Ridden Broth"})
  997. sets.precast.JA['Bestial Loyalty'].CaringKiyomaro = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Fizzy Broth"})
  998. sets.precast.JA['Bestial Loyalty'].VivaciousVickie = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Tant. Broth"})
  999. sets.precast.JA['Bestial Loyalty'].HurlerPercival = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Pale Sap"})
  1000. sets.precast.JA['Bestial Loyalty'].BlackbeardRandy = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Meaty Broth"})
  1001. sets.precast.JA['Bestial Loyalty'].GenerousArthur = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Dire Broth"})
  1002. sets.precast.JA['Bestial Loyalty'].ThreestarLynn = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Muddy Broth"})
  1003. sets.precast.JA['Bestial Loyalty'].BraveHeroGlenn = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Wispy Broth"})
  1004. sets.precast.JA['Bestial Loyalty'].SharpwitHermes = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Saline Broth"})
  1005. sets.precast.JA['Bestial Loyalty'].ColibriFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Sugary Broth"})
  1006. sets.precast.JA['Bestial Loyalty'].ChoralLeera = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Glazed Broth"})
  1007. sets.precast.JA['Bestial Loyalty'].SpiderFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Sticky Webbing"})
  1008. sets.precast.JA['Bestial Loyalty'].GussyHachirobe = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Slimy Webbing"})
  1009. sets.precast.JA['Bestial Loyalty'].AcuexFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Poisonous Broth"})
  1010. sets.precast.JA['Bestial Loyalty'].FluffyBredo = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Venomous Broth"})
  1011. sets.precast.JA['Bestial Loyalty'].CursedAnnabelle = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Creepy Broth"})
  1012. end
  1013.  
  1014. -------------------------------------------------------------------------------------------------------------------
  1015. -- Job-specific hooks that are called to process player actions at specific points in time.
  1016. -------------------------------------------------------------------------------------------------------------------
  1017.  
  1018. function job_precast(spell, action, spellMap, eventArgs)
  1019. cancel_conflicting_buffs(spell, action, spellMap, eventArgs)
  1020.  
  1021. if spell.type == "WeaponSkill" and spell.name ~= 'Mistral Axe' and spell.name ~= 'Bora Axe' and spell.target.distance > target_distance then
  1022. cancel_spell()
  1023. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  1024. return
  1025. end
  1026.  
  1027. if spell.english == 'Reward' then
  1028. if state.RewardMode.value == 'Theta' then
  1029. equip(sets.precast.JA.Reward.Theta)
  1030. elseif state.RewardMode.value == 'Zeta' then
  1031. equip(sets.precast.JA.Reward.Zeta)
  1032. elseif state.RewardMode.value == 'Eta' then
  1033. equip(sets.precast.JA.Reward.Eta)
  1034. elseif state.RewardMode.value == 'Roborant' then
  1035. equip(sets.precast.JA.Reward.Roborant)
  1036. elseif state.RewardMode.value == 'Poultice' then
  1037. equip(sets.precast.JA.Reward.Poultice)
  1038. end
  1039. end
  1040.  
  1041. if spell.english == 'Bestial Loyalty' or spell.english == 'Call Beast' then
  1042. if state.JugMode.value == 'FunguarFamiliar' then
  1043. equip(sets.precast.JA['Bestial Loyalty'].FunguarFamiliar)
  1044. elseif state.JugMode.value == 'CourierCarrie' then
  1045. equip(sets.precast.JA['Bestial Loyalty'].CourierCarrie)
  1046. elseif state.JugMode.value == 'AmigoSabotender' then
  1047. equip(sets.precast.JA['Bestial Loyalty'].AmigoSabotender)
  1048. elseif state.JugMode.value == 'NurseryNazuna' then
  1049. equip(sets.precast.JA['Bestial Loyalty'].NurseryNazuna)
  1050. elseif state.JugMode.value == 'CraftyClyvonne' then
  1051. equip(sets.precast.JA['Bestial Loyalty'].CraftyClyvonne)
  1052. elseif state.JugMode.value == 'PrestoJulio' then
  1053. equip(sets.precast.JA['Bestial Loyalty'].PrestoJulio)
  1054. elseif state.JugMode.value == 'SwiftSieghard' then
  1055. equip(sets.precast.JA['Bestial Loyalty'].SwiftSieghard)
  1056. elseif state.JugMode.value == 'MailbusterCetas' then
  1057. equip(sets.precast.JA['Bestial Loyalty'].MailbusterCetas)
  1058. elseif state.JugMode.value == 'AudaciousAnna' then
  1059. equip(sets.precast.JA['Bestial Loyalty'].AudaciousAnna)
  1060. elseif state.JugMode.value == 'TurbidToloi' then
  1061. equip(sets.precast.JA['Bestial Loyalty'].TurbidToloi)
  1062. elseif state.JugMode.value == 'SlipperySilas' then
  1063. equip(sets.precast.JA['Bestial Loyalty'].SlipperySilas)
  1064. elseif state.JugMode.value == 'LuckyLulush' then
  1065. equip(sets.precast.JA['Bestial Loyalty'].LuckyLulush)
  1066. elseif state.JugMode.value == 'DipperYuly' then
  1067. equip(sets.precast.JA['Bestial Loyalty'].DipperYuly)
  1068. elseif state.JugMode.value == 'FlowerpotMerle' then
  1069. equip(sets.precast.JA['Bestial Loyalty'].FlowerpotMerle)
  1070. elseif state.JugMode.value == 'DapperMac' then
  1071. equip(sets.precast.JA['Bestial Loyalty'].DapperMac)
  1072. elseif state.JugMode.value == 'DiscreetLouise' then
  1073. equip(sets.precast.JA['Bestial Loyalty'].DiscreetLouise)
  1074. elseif state.JugMode.value == 'FatsoFargann' then
  1075. equip(sets.precast.JA['Bestial Loyalty'].FatsoFargann)
  1076. elseif state.JugMode.value == 'FaithfulFalcorr' then
  1077. equip(sets.precast.JA['Bestial Loyalty'].FaithfulFalcorr)
  1078. elseif state.JugMode.value == 'BugeyedBroncha' then
  1079. equip(sets.precast.JA['Bestial Loyalty'].BugeyedBroncha)
  1080. elseif state.JugMode.value == 'BloodclawShasra' then
  1081. equip(sets.precast.JA['Bestial Loyalty'].BloodclawShasra)
  1082. elseif state.JugMode.value == 'GorefangHobs' then
  1083. equip(sets.precast.JA['Bestial Loyalty'].GorefangHobs)
  1084. elseif state.JugMode.value == 'GooeyGerard' then
  1085. equip(sets.precast.JA['Bestial Loyalty'].GooeyGerard)
  1086. elseif state.JugMode.value == 'CrudeRaphie' then
  1087. equip(sets.precast.JA['Bestial Loyalty'].CrudeRaphie)
  1088. elseif state.JugMode.value == 'DroopyDortwin' then
  1089. equip(sets.precast.JA['Bestial Loyalty'].DroopyDortwin)
  1090. elseif state.JugMode.value == 'PonderingPeter' then
  1091. equip(sets.precast.JA['Bestial Loyalty'].PonderingPeter)
  1092. elseif state.JugMode.value == 'SunburstMalfik' then
  1093. equip(sets.precast.JA['Bestial Loyalty'].SunburstMalfik)
  1094. elseif state.JugMode.value == 'AgedAngus' then
  1095. equip(sets.precast.JA['Bestial Loyalty'].AgedAngus)
  1096. elseif state.JugMode.value == 'WarlikePatrick' then
  1097. equip(sets.precast.JA['Bestial Loyalty'].WarlikePatrick)
  1098. elseif state.JugMode.value == 'ScissorlegXerin' then
  1099. equip(sets.precast.JA['Bestial Loyalty'].ScissorlegXerin)
  1100. elseif state.JugMode.value == 'BouncingBertha' then
  1101. equip(sets.precast.JA['Bestial Loyalty'].BouncingBertha)
  1102. elseif state.JugMode.value == 'RhymingShizuna' then
  1103. equip(sets.precast.JA['Bestial Loyalty'].RhymingShizuna)
  1104. elseif state.JugMode.value == 'AttentiveIbuki' then
  1105. equip(sets.precast.JA['Bestial Loyalty'].AttentiveIbuki)
  1106. elseif state.JugMode.value == 'SwoopingZhivago' then
  1107. equip(sets.precast.JA['Bestial Loyalty'].SwoopingZhivago)
  1108. elseif state.JugMode.value == 'AmiableRoche' then
  1109. equip(sets.precast.JA['Bestial Loyalty'].AmiableRoche)
  1110. elseif state.JugMode.value == 'HeraldHenry' then
  1111. equip(sets.precast.JA['Bestial Loyalty'].HeraldHenry)
  1112. elseif state.JugMode.value == 'BrainyWaluis' then
  1113. equip(sets.precast.JA['Bestial Loyalty'].BrainyWaluis)
  1114. elseif state.JugMode.value == 'HeadbreakerKen' then
  1115. equip(sets.precast.JA['Bestial Loyalty'].HeadbreakerKen)
  1116. elseif state.JugMode.value == 'RedolentCandi' then
  1117. equip(sets.precast.JA['Bestial Loyalty'].RedolentCandi)
  1118. elseif state.JugMode.value == 'AlluringHoney' then
  1119. equip(sets.precast.JA['Bestial Loyalty'].AlluringHoney)
  1120. elseif state.JugMode.value == 'CaringKiyomaro' then
  1121. equip(sets.precast.JA['Bestial Loyalty'].CaringKiyomaro)
  1122. elseif state.JugMode.value == 'VivaciousVickie' then
  1123. equip(sets.precast.JA['Bestial Loyalty'].VivaciousVickie)
  1124. elseif state.JugMode.value == 'HurlerPercival' then
  1125. equip(sets.precast.JA['Bestial Loyalty'].HurlerPercival)
  1126. elseif state.JugMode.value == 'BlackbeardRandy' then
  1127. equip(sets.precast.JA['Bestial Loyalty'].BlackbeardRandy)
  1128. elseif state.JugMode.value == 'GenerousArthur' then
  1129. equip(sets.precast.JA['Bestial Loyalty'].GenerousArthur)
  1130. elseif state.JugMode.value == 'ThreestarLynn' then
  1131. equip(sets.precast.JA['Bestial Loyalty'].ThreestarLynn)
  1132. elseif state.JugMode.value == 'BraveHeroGlenn' then
  1133. equip(sets.precast.JA['Bestial Loyalty'].BraveHeroGlenn)
  1134. elseif state.JugMode.value == 'SharpwitHermes' then
  1135. equip(sets.precast.JA['Bestial Loyalty'].SharpwitHermes)
  1136. elseif state.JugMode.value == 'ColibriFamiliar' then
  1137. equip(sets.precast.JA['Bestial Loyalty'].ColibriFamiliar)
  1138. elseif state.JugMode.value == 'ChoralLeera' then
  1139. equip(sets.precast.JA['Bestial Loyalty'].ChoralLeera)
  1140. elseif state.JugMode.value == 'SpiderFamiliar' then
  1141. equip(sets.precast.JA['Bestial Loyalty'].SpiderFamiliar)
  1142. elseif state.JugMode.value == 'GussyHachirobe' then
  1143. equip(sets.precast.JA['Bestial Loyalty'].GussyHachirobe)
  1144. elseif state.JugMode.value == 'AcuexFamiliar' then
  1145. equip(sets.precast.JA['Bestial Loyalty'].AcuexFamiliar)
  1146. elseif state.JugMode.value == 'FluffyBredo' then
  1147. equip(sets.precast.JA['Bestial Loyalty'].FluffyBredo)
  1148. elseif state.JugMode.value == 'CursedAnnabelle' then
  1149. equip(sets.precast.JA['Bestial Loyalty'].CursedAnnabelle)
  1150. end
  1151. end
  1152.  
  1153. -- Define class for Sic and Ready moves.
  1154. if ready_moves_to_check:contains(spell.english) then
  1155. classes.CustomClass = "WS"
  1156. if state.PetMode.Value == 'PetOnly' then
  1157. equip(sets.midcast.Pet.ReadyRecastNE)
  1158. else
  1159. equip(sets.midcast.Pet.ReadyRecast)
  1160. end
  1161. end
  1162. end
  1163.  
  1164. function job_post_precast(spell, action, spellMap, eventArgs)
  1165. -- If Killer Instinct is active during WS, equip Ferine Gausape +2.
  1166. if spell.type:lower() == 'weaponskill' and buffactive['Killer Instinct'] then
  1167. equip(sets.buff['Killer Instinct'])
  1168. end
  1169.  
  1170. -- Equip Chaac Belt for TH+1 on common Subjob Abilities or Spells.
  1171. if abilities_to_check:contains(spell.english) and state.TreasureMode.value == 'Tag' then
  1172. equip(sets.THBelt)
  1173. end
  1174. end
  1175.  
  1176. function job_pet_midcast(spell, action, spellMap, eventArgs)
  1177. if state.PetMode.value == 'PetOnly' then
  1178. if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  1179. equip(sets.midcast.Pet.ReadyNE.HighAcc)
  1180. elseif state.OffenseMode.value == 'MedAcc' or state.OffenseMode.value == 'MedAccHaste' then
  1181. equip(sets.midcast.Pet.ReadyNE.MedAcc)
  1182. else
  1183. equip(set_combine(sets.midcast.Pet.ReadyNE, sets.midcast.Pet[state.CorrelationMode.value]))
  1184. end
  1185. else
  1186. if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  1187. equip(sets.midcast.Pet.HighAcc)
  1188. else
  1189. equip(set_combine(sets.midcast.Pet.WS, sets.midcast.Pet[state.CorrelationMode.value]))
  1190. end
  1191. end
  1192.  
  1193. if magic_ready_moves:contains(spell.name) then
  1194. if state.PetMode.value == 'PetOnly' then
  1195. equip(sets.midcast.Pet.MagicReadyNE)
  1196. else
  1197. equip(sets.midcast.Pet.MagicReady)
  1198. end
  1199. end
  1200.  
  1201. -- If Pet TP, before bonuses, is less than a certain value then equip Nukumi Manoplas +1
  1202. if tp_based_ready_moves:contains(spell.name) and PetJob == 'Warrior' then
  1203. if pet.tp < 190 then
  1204. equip(sets.midcast.Pet.TPBonus)
  1205. end
  1206. elseif tp_based_ready_moves:contains(spell.name) and PetJob ~= 'Warrior' then
  1207. if pet.tp < 240 then
  1208. equip(sets.midcast.Pet.TPBonus)
  1209. end
  1210. end
  1211. end
  1212.  
  1213. function job_pet_aftercast(spell, action, spellMap, eventArgs)
  1214. if ready_moves_to_check:contains(spell.english) and state.PetMode.value == 'PetOnly' then
  1215. equip(sets.IdleAxesNE)
  1216. end
  1217. end
  1218.  
  1219. -- Return true if we handled the aftercast work. Otherwise it will fall back
  1220. -- to the general aftercast() code in Mote-Include.
  1221. function job_aftercast(spell, action, spellMap, eventArgs)
  1222. if ready_moves_to_check:contains(spell.english) and state.PetMode.value == 'PetOnly' then
  1223. equip(sets.IdleAxesNE)
  1224. end
  1225. end
  1226.  
  1227. -------------------------------------------------------------------------------------------------------------------
  1228. -- Customization hook for idle sets.
  1229. -------------------------------------------------------------------------------------------------------------------
  1230.  
  1231. function customize_idle_set(idleSet)
  1232. if player.hpp < 50 and pet.status ~= 'Engaged' then
  1233. idleSet = set_combine(idleSet, sets.ExtraRegen)
  1234. end
  1235. return idleSet
  1236. end
  1237.  
  1238. -------------------------------------------------------------------------------------------------------------------
  1239. -- Hooks for Reward, Correlation, Treasure Hunter, and Pet Mode handling.
  1240. -------------------------------------------------------------------------------------------------------------------
  1241.  
  1242. function job_state_change(stateField, newValue, oldValue)
  1243. if stateField == 'Correlation Mode' then
  1244. state.CorrelationMode:set(newValue)
  1245. elseif stateField == 'Reward Mode' then
  1246. state.RewardMode:set(newValue)
  1247. elseif stateField == 'Treasure Mode' then
  1248. state.TreasureMode:set(newValue)
  1249. elseif stateField == 'Pet Mode' then
  1250. state.CombatWeapon:set(newValue)
  1251. elseif stateField == 'Jug Mode' then
  1252. state.JugMode:set(newValue)
  1253. end
  1254. end
  1255.  
  1256. function get_custom_wsmode(spell, spellMap, default_wsmode)
  1257. if default_wsmode == 'Normal' then
  1258. if spell.english == "Ruinator" and (world.day_element == 'Water' or world.day_element == 'Wind' or world.day_element == 'Ice') then
  1259. return 'Mekira'
  1260. end
  1261. end
  1262. end
  1263.  
  1264. -------------------------------------------------------------------------------------------------------------------
  1265. -- User code that supplements self-commands.
  1266. -------------------------------------------------------------------------------------------------------------------
  1267.  
  1268. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  1269. function job_handle_equipping_gear(playerStatus, eventArgs)
  1270. if player.equipment.back == 'Mecisto. Mantle' or player.equipment.back == 'Aptitude Mantle' or player.equipment.back == 'Aptitude Mantle +1' then
  1271. disable('back')
  1272. else
  1273. enable('back')
  1274. end
  1275. end
  1276.  
  1277. -- Called by the 'update' self-command, for common needs.
  1278. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  1279. function job_update(cmdParams, eventArgs)
  1280. get_combat_form()
  1281.  
  1282. if state.JugMode.value == 'FunguarFamiliar' then
  1283. PetInfo = "Funguar, Plantoid"
  1284. PetJob = 'Warrior'
  1285. elseif state.JugMode.value == 'CourierCarrie' then
  1286. PetInfo = "Crab, Aquan"
  1287. PetJob = 'Paladin'
  1288. elseif state.JugMode.value == 'AmigoSabotender' then
  1289. PetInfo = "Cactuar, Plantoid"
  1290. PetJob = 'Warrior'
  1291. elseif state.JugMode.value == 'NurseryNazuna' then
  1292. PetInfo = "Sheep, Beast"
  1293. PetJob = 'Warrior'
  1294. elseif state.JugMode.value == 'CraftyClyvonne' then
  1295. PetInfo = "Coeurl, Beast"
  1296. PetJob = 'Warrior'
  1297. elseif state.JugMode.value == 'PrestoJulio' then
  1298. PetInfo = "Flytrap, Plantoid"
  1299. PetJob = 'Warrior'
  1300. elseif state.JugMode.value == 'SwiftSieghard' then
  1301. PetInfo = "Raptor, Lizard"
  1302. PetJob = 'Warrior'
  1303. elseif state.JugMode.value == 'MailbusterCetas' then
  1304. PetInfo = "Fly, Vermin"
  1305. PetJob = 'Warrior'
  1306. elseif state.JugMode.value == 'AudaciousAnna' then
  1307. PetInfo = "Lizard, Lizard"
  1308. PetJob = 'Warrior'
  1309. elseif state.JugMode.value == 'TurbidToloi' then
  1310. PetInfo = "Pugil, Aquan"
  1311. PetJob = 'Warrior'
  1312. elseif state.JugMode.value == 'SlipperySilas' then
  1313. PetInfo = "Toad, Aquan"
  1314. PetJob = 'Warrior'
  1315. elseif state.JugMode.value == 'LuckyLulush' then
  1316. PetInfo = "Rabbit, Beast"
  1317. PetJob = 'Warrior'
  1318. elseif state.JugMode.value == 'DipperYuly' then
  1319. PetInfo = "Ladybug, Vermin"
  1320. PetJob = 'Thief'
  1321. elseif state.JugMode.value == 'FlowerpotMerle' then
  1322. PetInfo = "Mandragora, Plantoid"
  1323. PetJob = 'Monk'
  1324. elseif state.JugMode.value == 'DapperMac' then
  1325. PetInfo = "Apkallu, Bird"
  1326. PetJob = 'Monk'
  1327. elseif state.JugMode.value == 'DiscreetLouise' then
  1328. PetInfo = "Funguar, Plantoid"
  1329. PetJob = 'Warrior'
  1330. elseif state.JugMode.value == 'FatsoFargann' then
  1331. PetInfo = "Leech, Amorph"
  1332. PetJob = 'Warrior'
  1333. elseif state.JugMode.value == 'FaithfulFalcorr' then
  1334. PetInfo = "Hippogryph, Bird"
  1335. PetJob = 'Thief'
  1336. elseif state.JugMode.value == 'BugeyedBroncha' then
  1337. PetInfo = "Eft, Lizard"
  1338. PetJob = 'Warrior'
  1339. elseif state.JugMode.value == 'BloodclawShasra' then
  1340. PetInfo = "Lynx, Beast"
  1341. PetJob = 'Warrior'
  1342. elseif state.JugMode.value == 'GorefangHobs' then
  1343. PetInfo = "Tiger, Beast"
  1344. PetJob = 'Warrior'
  1345. elseif state.JugMode.value == 'GooeyGerard' then
  1346. PetInfo = "Slug, Amorph"
  1347. PetJob = 'Warrior'
  1348. elseif state.JugMode.value == 'CrudeRaphie' then
  1349. PetInfo = "Adamantoise, Lizard"
  1350. PetJob = 'Paladin'
  1351. elseif state.JugMode.value == 'DroopyDortwin' then
  1352. PetInfo = "Rabbit, Beast"
  1353. PetJob = 'Warrior'
  1354. elseif state.JugMode.value == 'PonderingPeter' then
  1355. PetInfo = "HQ Rabbit, Beast"
  1356. PetJob = 'Warrior'
  1357. elseif state.JugMode.value == 'SunburstMalfik' then
  1358. PetInfo = "Crab, Aquan"
  1359. PetJob = 'Paladin'
  1360. elseif state.JugMode.value == 'AgedAngus' then
  1361. PetInfo = "HQ Crab, Aquan"
  1362. PetJob = 'Paladin'
  1363. elseif state.JugMode.value == 'WarlikePatrick' then
  1364. PetInfo = "Lizard, Lizard"
  1365. PetJob = 'Warrior'
  1366. elseif state.JugMode.value == 'ScissorlegXerin' then
  1367. PetInfo = "Chapuli, Vermin"
  1368. PetJob = 'Warrior'
  1369. elseif state.JugMode.value == 'BouncingBertha' then
  1370. PetInfo = "HQ Chapuli, Vermin"
  1371. PetJob = 'Warrior'
  1372. elseif state.JugMode.value == 'RhymingShizuna' then
  1373. PetInfo = "Sheep, Beast"
  1374. PetJob = 'Warrior'
  1375. elseif state.JugMode.value == 'AttentiveIbuki' then
  1376. PetInfo = "Tulfaire, Bird"
  1377. PetJob = 'Warrior'
  1378. elseif state.JugMode.value == 'SwoopingZhivago' then
  1379. PetInfo = "HQ Tulfaire, Bird"
  1380. PetJob = 'Warrior'
  1381. elseif state.JugMode.value == 'AmiableRoche' then
  1382. PetInfo = "Pugil, Aquan"
  1383. PetJob = 'Warrior'
  1384. elseif state.JugMode.value == 'HeraldHenry' then
  1385. PetInfo = "Crab, Aquan"
  1386. PetJob = 'Paladin'
  1387. elseif state.JugMode.value == 'BrainyWaluis' then
  1388. PetInfo = "Funguar, Plantoid"
  1389. PetJob = 'Warrior'
  1390. elseif state.JugMode.value == 'HeadbreakerKen' then
  1391. PetInfo = "Fly, Vermin"
  1392. PetJob = 'Warrior'
  1393. elseif state.JugMode.value == 'RedolentCandi' then
  1394. PetInfo = "Snapweed, Plantoid"
  1395. PetJob = 'Warrior'
  1396. elseif state.JugMode.value == 'AlluringHoney' then
  1397. PetInfo = "HQ Snapweed, Plantoid"
  1398. PetJob = 'Warrior'
  1399. elseif state.JugMode.value == 'CaringKiyomaro' then
  1400. PetInfo = "Raaz, Beast"
  1401. PetJob = 'Monk'
  1402. elseif state.JugMode.value == 'VivaciousVickie' then
  1403. PetInfo = "HQ Raaz, Beast"
  1404. PetJob = 'Monk'
  1405. elseif state.JugMode.value == 'HurlerPercival' then
  1406. PetInfo = "Beetle, Vermin"
  1407. PetJob = 'Paladin'
  1408. elseif state.JugMode.value == 'BlackbeardRandy' then
  1409. PetInfo = "Tiger, Beast"
  1410. PetJob = 'Warrior'
  1411. elseif state.JugMode.value == 'GenerousArthur' then
  1412. PetInfo = "Slug, Amorph"
  1413. PetJob = 'Warrior'
  1414. elseif state.JugMode.value == 'ThreestarLynn' then
  1415. PetInfo = "Ladybug, Vermin"
  1416. PetJob = 'Thief'
  1417. elseif state.JugMode.value == 'BraveHeroGlenn' then
  1418. PetInfo = "Frog, Aquan"
  1419. PetJob = 'Warrior'
  1420. elseif state.JugMode.value == 'SharpwitHermes' then
  1421. PetInfo = "Mandragora, Plantoid"
  1422. PetJob = 'Monk'
  1423. elseif state.JugMode.value == 'ColibriFamiliar' then
  1424. PetInfo = "Colibri, Bird"
  1425. PetJob = 'Red Mage'
  1426. elseif state.JugMode.value == 'ChoralLeera' then
  1427. PetInfo = "HQ Colibri, Bird"
  1428. PetJob = 'Red Mage'
  1429. elseif state.JugMode.value == 'SpiderFamiliar' then
  1430. PetInfo = "Spider, Vermin"
  1431. PetJob = 'Warrior'
  1432. elseif state.JugMode.value == 'GussyHachirobe' then
  1433. PetInfo = "HQ Spider, Vermin"
  1434. PetJob = 'Warrior'
  1435. elseif state.JugMode.value == 'AcuexFamiliar' then
  1436. PetInfo = "Acuex, Amorph"
  1437. PetJob = 'Black Mage'
  1438. elseif state.JugMode.value == 'FluffyBredo' then
  1439. PetInfo = "HQ Acuex, Amorph"
  1440. PetJob = 'Black Mage'
  1441. elseif state.JugMode.value == 'CursedAnnabelle' then
  1442. PetInfo = "Antilion, Vermin"
  1443. PetJob = 'Warrior'
  1444. end
  1445. end
  1446.  
  1447. -- Updates gear based on pet status changes.
  1448. function job_pet_status_change(newStatus, oldStatus, eventArgs)
  1449. if newStatus == 'Idle' or newStatus == 'Engaged' then
  1450. handle_equipping_gear(player.status)
  1451. end
  1452. end
  1453.  
  1454. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  1455. function display_current_job_state(eventArgs)
  1456. local msg = 'Melee'
  1457.  
  1458. if state.CombatForm.has_value then
  1459. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  1460. end
  1461.  
  1462. msg = msg .. ': '
  1463.  
  1464. msg = msg .. state.OffenseMode.value
  1465. if state.HybridMode.value ~= 'Normal' then
  1466. msg = msg .. '/' .. state.HybridMode.value
  1467. end
  1468. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  1469.  
  1470. if state.DefenseMode.value ~= 'None' then
  1471. msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  1472. end
  1473.  
  1474. if state.Kiting.value then
  1475. msg = msg .. ', Kiting'
  1476. end
  1477.  
  1478. msg = msg .. ', Reward: '..state.RewardMode.value..', Corr.: '..state.CorrelationMode.value
  1479.  
  1480. if state.JugMode.value ~= 'None' then
  1481. add_to_chat(8,'--- Jug Pet: '.. state.JugMode.value ..' --- ('.. PetInfo ..', '.. PetJob ..')')
  1482. end
  1483.  
  1484. add_to_chat(122, msg)
  1485.  
  1486. eventArgs.handled = true
  1487. end
  1488.  
  1489. -------------------------------------------------------------------------------------------------------------------
  1490. -- Utility functions specific to this job.
  1491. -------------------------------------------------------------------------------------------------------------------
  1492.  
  1493. function get_combat_form()
  1494. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1495. state.CombatForm:set('DW')
  1496. else
  1497. state.CombatForm:reset()
  1498. end
  1499. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement