midash

Orangebear_BST

Mar 5th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 106.24 KB | None | 0 0
  1. include('organizer-lib')
  2. -------------------------------------------------------------------------------------------------------------------
  3. -- Last Revised: December 10th, 2015 (Commented out pet.tp evaluations in midcast post-update.)
  4. -- (Added on-screen indicators for Modes [requires the Text add-on] - set DisplayModeInfo to 'true' to enable
  5. -- Added Buff Timers for Reward, Spur, Run Wild, and certain Ready Moves - set DisplayPetBuffTimers to 'true' to enable
  6. -- You can now identify pets based on Pet Name or Jug Name for Pet Cycling.)
  7. --
  8. -- Gearswap Commands Specific to this File:
  9. -- alt+F8 cycles through designated Jug Pets
  10. -- ctrl+F8 toggles Monster Correlation between Neutral and Favorable
  11. -- 'Windows Key'+F8 switches between Pet stances for Master/Pet hybrid gearsets
  12. -- alt+= cycles through Pet Food types
  13. -- ctrl+= can swap in the usage of Chaac Belt for Treasure Hunter on common subjob abilities.
  14. -- ctrl+F11 cycles between Magical Defense Modes
  15. --
  16. -- General Gearswap Commands:
  17. -- F9 cycles Accuracy modes
  18. -- ctrl+F9 cycles Hybrid modes
  19. -- 'Windows Key'+F9 cycles Weapon Skill modes
  20. -- F10 equips Physical Defense
  21. -- alt+F10 toggles Kiting on or off
  22. -- ctrl+F10 cycles Physical Defense modes
  23. -- F11 equips Magical Defense
  24. -- alt+F12 turns off Defense modes
  25. -- ctrl+F12 cycles Idle modes
  26. --
  27. -- Keep in mind that any time you Change Jobs/Subjobs, your Pet/Pet Food/etc. reset to default options.
  28. -- F12 will list your current options.
  29. -------------------------------------------------------------------------------------------------------------------
  30.  
  31. -------------------------------------------------------------------------------------------------------------------
  32. -- Initialization function that defines sets and variables to be used.
  33. -------------------------------------------------------------------------------------------------------------------
  34.  
  35. -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
  36.  
  37. -- Initialization function for this job file.
  38. function get_sets()
  39. mote_include_version = 2
  40.  
  41. -- Load and initialize the include file.
  42. include('Mote-Include.lua')
  43. end
  44.  
  45. function job_setup()
  46. state.Buff['Aftermath: Lv.3'] = buffactive['Aftermath: Lv.3'] or false
  47. state.Buff['Killer Instinct'] = buffactive['Killer Instinct'] or false
  48. state.Buff.Doomed = buffactive.doomed or false
  49.  
  50. -- Pet Buff Timer Info
  51. DisplayPetBuffTimers = 'false'
  52.  
  53. -- Input Pet:TP Bonus values for Skirmish Axes used during Pet Buffs
  54. TP_Bonus_Main = 180
  55. TP_Bonus_Sub = 180
  56.  
  57. -- 1200 Job Point Gift Bonus (Set equal to 0 if below 1200 Job Points)
  58. TP_Gift_Bonus = 0
  59.  
  60. -- (Adjust Run Wild Duration based on # of Job Points)
  61. RunWildDuration = 330;RunWildIcon = 'abilities/00121.png'
  62. RewardRegenIcon = 'spells/00023.png'
  63. SpurIcon = 'abilities/00037.png'
  64. BubbleCurtainDuration = 180;BubbleCurtainIcon = 'spells/00048.png'
  65. ScissorGuardIcon = 'spells/00043.png'
  66. SecretionIcon = 'spells/00053.png'
  67. RageIcon = 'abilities/00002.png'
  68. RhinoGuardIcon = 'spells/00053.png'
  69. ZealousSnortIcon = 'spells/00057.png'
  70.  
  71. get_combat_form()
  72. get_melee_groups()
  73.  
  74. -- Display Mode Info as on-screen Text
  75. DisplayModeInfo = 'false'
  76. TextBoxX = 950
  77. TextBoxY = 47
  78. TextSize = 10
  79. display_mode_info()
  80. end
  81.  
  82. function user_setup()
  83. state.OffenseMode:options('Normal', 'MedAcc', 'HighAcc')
  84. state.HybridMode:options('Normal', 'Hybrid')
  85. state.WeaponskillMode:options('Normal', 'WSMedAcc', 'WSHighAcc')
  86. state.CastingMode:options('Normal')
  87. state.IdleMode:options('Normal', 'Reraise', 'Regen', 'Refresh')
  88. state.RestingMode:options('Normal')
  89. state.PhysicalDefenseMode:options('PetPDT', 'HybridPDT', 'PDT')
  90. state.MagicalDefenseMode:options('MDTShell', 'PetMDT')
  91.  
  92. -- 'Out of Range' distance; WS will auto-cancel
  93. target_distance = 7
  94.  
  95. -- Set up Jug Pet cycling and keybind Alt+F8
  96. -- INPUT PREFERRED JUG PETS HERE
  97. state.JugMode = M{['description']='Jug Mode', 'Meaty Broth', 'Windy Greens', 'Livid Broth',
  98. 'HeadbreakerKen', 'Tant. Broth', 'Bubbly Broth', 'HeraldHenry'}
  99. send_command('bind !f8 gs c cycle JugMode')
  100.  
  101. -- Set up Monster Correlation Modes and keybind Ctrl+F8
  102. state.CorrelationMode = M{['description']='Correlation Mode', 'Neutral', 'Favorable'}
  103. send_command('bind ^f8 gs c cycle CorrelationMode')
  104.  
  105. -- Set up Pet Modes for Hybrid sets and keybind 'Windows Key'+F8
  106. state.PetMode = M{['description']='Pet Mode', 'PetOnly', 'PetTank', 'Normal'}
  107. send_command('bind @f8 gs c cycle PetMode')
  108.  
  109. -- Keybind Ctrl+F11 to cycle Magical Defense Modes
  110. send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  111.  
  112. -- Set up Reward Modes and keybind alt+=
  113. state.RewardMode = M{['description']='Reward Mode', 'Theta', 'Eta', 'Zeta'}
  114. send_command('bind != gs c cycle RewardMode')
  115.  
  116. -- Set up Treasure Modes and keybind Ctrl+=
  117. state.TreasureMode = M{['description']='Treasure Mode', 'Tag', 'Normal'}
  118. send_command('bind ^= gs c cycle TreasureMode')
  119.  
  120. -- Complete list of Ready moves
  121. physical_ready_moves = S{'Foot Kick','Whirl Claws','Wild Carrot','Sheep Charge','Lamb Chop','Rage','Head Butt',
  122. 'Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang','Nimble Snap','Cyclotail','Rhino Guard','Rhino Attack',
  123. 'Power Attack','Mandibular Bite','Big Scissors','Bubble Curtain','Scissor Guard','Grapple','Spinning Top',
  124. 'Double Claw','Frogkick','Blockhead','Secretion','Brain Crush','Tail Blow','??? Needles','Needleshot',
  125. 'Scythe Tail','Ripper Fang','Chomp Rush','Recoil Dive','Sudden Lunge','Spiral Spin','Wing Slap','Beak Lunge',
  126. 'Suction','Back Heel','Choke Breath','Fantod','Tortoise Stomp','Harden Shell','Sensilla Blades','Tegmina Buffet',
  127. 'Swooping Frenzy','Pentapeck','Sweeping Gouge','Zealous Snort','Somersault','Tickling Tendrils','Pecking Flurry',
  128. 'Sickle Slash'}
  129.  
  130. magic_atk_ready_moves = S{'Dust Cloud','Cursed Sphere','Venom','Toxic Spit','Bubble Shower','Drainkiss',
  131. 'Silence Gas','Dark Spore','Fireball','Plague Breath','Snow Cloud','Charged Whisker','Purulent Ooze',
  132. 'Corrosive Ooze','Aqua Breath','Stink Bomb','Nectarous Deluge','Nepenthic Plunge','Pestilent Plume',
  133. 'Foul Waters','Infected Leech','Gloom Spray'}
  134.  
  135. magic_acc_ready_moves = S{'Sheep Song','Scream','Dream Flower','Roar','Gloeosuccus','Palsy Pollen',
  136. 'Soporific','Geist Wall','Toxic Spit','Numbing Noise','Spoil','Hi-Freq Field','Sandpit','Sandblast',
  137. 'Venom Spray','Filamented Hold','Queasyshroom','Numbshroom','Spore','Shakeshroom','Infrasonics',
  138. 'Chaotic Eye','Blaster','Intimidate','Noisome Powder','Acid Mist','TP Drainkiss','Jettatura',
  139. 'Molting Plumage','Spider Web'}
  140.  
  141. tp_based_ready_moves = S{'Foot Kick','Dust Cloud','Snow Cloud','Wild Carrot','Sheep Song','Sheep Charge',
  142. 'Lamb Chop','Rage','Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang',
  143. 'Roar','Gloeosuccus','Palsy Pollen','Soporific','Cursed Sphere','Somersault','Geist Wall','Numbing Noise',
  144. 'Frogkick','Nimble Snap','Cyclotail','Spoil','Rhino Guard','Rhino Attack','Hi-Freq Field','Sandpit','Sandblast',
  145. 'Mandibular Bite','Metallic Body','Bubble Shower','Bubble Curtain','Scissor Guard','Grapple','Spinning Top',
  146. 'Double Claw','Filamented Hold','Spore','Blockhead','Secretion','Fireball','Tail Blow','Plague Breath',
  147. 'Brain Crush','Infrasonics','Needleshot','Chaotic Eye','Blaster','Ripper Fang','Intimidate','Recoil Dive',
  148. 'Water Wall','Sudden Lunge','Noisome Powder','Wing Slap','Beak Lunge','Suction','Drainkiss','Acid Mist',
  149. 'TP Drainkiss','Back Heel','Jettatura','Choke Breath','Fantod','Charged Whisker','Purulent Ooze',
  150. 'Corrosive Ooze','Tortoise Stomp','Harden Shell','Aqua Breath','Sensilla Blades','Tegmina Buffet',
  151. 'Sweeping Gouge','Zealous Snort','Tickling Tendrils','Pecking Flurry','Pestilent Plume','Foul Waters',
  152. 'Spider Web','Gloom Spray'}
  153.  
  154. pet_buff_moves = S{'Reward','Spur','Run Wild','Bubble Curtain','Scissor Guard','Secretion','Rage',
  155. 'Rhino Guard','Zealous Snort'}
  156.  
  157. -- List of abilities to reference for applying Treasure Hunter +1 via Chaac Belt.
  158. abilities_to_check = S{'Feral Howl','Quickstep','Box Step','Stutter Step','Desperate Flourish',
  159. 'Violent Flourish','Animated Flourish','Provoke','Dia','Dia II','Flash','Bio','Bio II',
  160. 'Sleep','Sleep II','Drain','Aspir','Dispel','Stun','Steal','Mug'}
  161. end
  162.  
  163. function file_unload()
  164. if binds_on_unload then
  165. binds_on_unload()
  166. end
  167.  
  168. -- Unbinds the Reward, Correlation, PetMode and Treasure hotkeys.
  169. send_command('unbind ^=')
  170. send_command('unbind !f8')
  171. send_command('unbind ^f8')
  172. send_command('unbind ^f11')
  173.  
  174. -- Removes any Text Info Boxes
  175. if DisplayModeInfo == 'true' then
  176. send_command('text JugPetText delete')
  177. send_command('text PetModeText delete')
  178. send_command('text CorrelationText delete')
  179. send_command('text AccuracyText delete')
  180. end
  181. end
  182.  
  183. -- BST gearsets
  184. function init_gear_sets()
  185. -- AUGMENTED GEAR
  186. Pet_PDT_AxeMain = "Izizoeksi"
  187. Pet_PDT_AxeSub = "Astolfo"
  188. Ready_Atk_Axe = {name="Kumbhakarna", augments={'Pet: Attack+20 Pet: Rng.Atk.+20','Pet: Phys. dmg. taken -4%','Pet: TP Bonus+160',}}
  189. Ready_Acc_Axe = {name="Kumbhakarna", augments={'Pet: Accuracy+20 Pet: Rng. Acc.+20','Pet: "Dbl.Atk."+2 Pet: Crit.hit rate +2','Pet: TP Bonus+180',}}
  190. Ready_MAB_Axe = {name="Kumbhakarna", augments={'Pet: "Mag.Atk.Bns."+20','Pet: Phys. dmg. taken -4%','Pet: TP Bonus+180',}}
  191. Ready_MAB_Axe2 = {name="Kumbhakarna", augments={'Pet: "Mag.Atk.Bns."+20','Pet: Phys. dmg. taken -4%','Pet: TP Bonus+200',}}
  192. Ready_MAcc_Axe = {name="Kumbhakarna", augments={'Pet: Mag. Acc.+20','"Cure" potency +15%','Pet: TP Bonus+180',}}
  193. Ready_MAcc_Axe2 = {name="Kumbhakarna", augments={'Pet: Mag. Acc.+20','"Cure" potency +15%','Pet: TP Bonus+200',}}
  194.  
  195. Pet_PDT_head = "Despair Helm"
  196. Pet_PDT_body = ""
  197. Pet_PDT_hands = ""
  198. Pet_PDT_legs = ""
  199. Pet_PDT_feet = ""
  200. Pet_PDT_back = ""
  201.  
  202. Pet_MDT_body = ""
  203. Pet_MDT_hands = ""
  204. Pet_MDT_legs = ""
  205. Pet_MDT_feet = ""
  206.  
  207. Ready_Atk_head = { name="Valorous Mask", augments={'Pet: Accuracy+29 Pet: Rng. Acc.+29','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','System: 1 ID: 1796 Val: 8','Pet: Attack+12 Pet: Rng.Atk.+12',}}
  208. Ready_Atk_body = { name="Acro Surcoat", augments={'Pet: Accuracy+21 Pet: Rng. Acc.+21','Pet: "Dbl. Atk."+5',}}
  209. Ready_Atk_hands = ""
  210. Ready_Atk_legs ={ name="Valor. Hose", augments={'Pet: Accuracy+29 Pet: Rng. Acc.+29','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','System: 1 ID: 1793 Val: 14','Pet: Attack+15 Pet: Rng.Atk.+15',}}
  211. Ready_Atk_feet = { name="Acro Leggings", augments={'Pet: Accuracy+21 Pet: Rng. Acc.+21','Pet: "Dbl. Atk."+2',}}
  212. Ready_Atk_back = "Argochampsa Mantle"
  213.  
  214. Ready_Acc_head = {name="Valorous Mask", augments={'Pet: Accuracy+29 Pet: Rng. Acc.+29','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','System: 1 ID: 1796 Val: 8','Pet: Attack+12 Pet: Rng.Atk.+12',}}
  215. Ready_Acc_body = { name="Acro Surcoat", augments={'Pet: Accuracy+21 Pet: Rng. Acc.+21','Pet: "Dbl. Atk."+5',}}
  216. Ready_Acc_hands = ""
  217. Ready_Acc_legs ={ name="Valor. Hose", augments={'Pet: Accuracy+29 Pet: Rng. Acc.+29','Pet: "Dbl.Atk."+1 Pet: Crit.hit rate +1','System: 1 ID: 1793 Val: 14','Pet: Attack+15 Pet: Rng.Atk.+15',}}
  218. Ready_Acc_feet = { name="Acro Leggings", augments={'Pet: Accuracy+21 Pet: Rng. Acc.+21','Pet: "Dbl. Atk."+2',}}
  219. Ready_Acc_back = "Argochampsa Mantle"
  220.  
  221. Ready_MAB_head = { name="Valorous Mask", augments={'Pet: "Mag.Atk.Bns."+26','Pet: "Dbl. Atk."+2','System: 1 ID: 1796 Val: 10',}}
  222. Ready_MAB_body = ""
  223. Ready_MAB_hands = ""
  224. Ready_MAB_legs= { name="Valor. Hose", augments={'Pet: "Mag.Atk.Bns."+30','System: 1 ID: 1798 Val: 4',}}
  225. Ready_MAB_feet = { name="Valorous Greaves", augments={'Pet: "Mag.Atk.Bns."+30','Pet: Phys. dmg. taken -2%','System: 1 ID: 1794 Val: 6',}}
  226.  
  227. Ready_MAcc_head = ""
  228. Ready_MAcc_body = ""
  229. Ready_MAcc_hands = ""
  230. Ready_MAcc_legs = ""
  231. Ready_MAcc_feet = ""
  232.  
  233. Pet_Melee_head = Ready_Atk_head
  234. Pet_Melee_body = Ready_Acc_body
  235. Pet_Melee_hands = Ready_Acc_hands
  236. Pet_Melee_legs = Ready_Atk_legs
  237. Pet_Melee_feet = Ready_Atk_feet
  238.  
  239. Hybrid_head = {name="Taeon Chapeau", augments={'Accuracy+24','Pet: "Regen"+3','Pet: Damage taken -4%',}}
  240. Hybrid_body = Pet_PDT_body
  241. Hybrid_hands = Pet_PDT_hands
  242. Hybrid_legs = {name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','Pet: Damage taken -4%',}}
  243. Hybrid_feet = {name="Taeon Boots", augments={'Accuracy+25','"Triple Atk."+2','Pet: Damage taken -4%',}}
  244.  
  245. DW_head = {name="Taeon Chapeau", augments={'Accuracy+19 Attack+19','"Dual Wield"+5','STR+3 VIT+3',}}
  246. DW_body = {name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','Crit. hit damage +2%',}}
  247. DW_hands = {name="Taeon Gloves", augments={'Accuracy+18 Attack+18','"Dual Wield"+5','STR+6 VIT+6',}}
  248. DW_legs = {name="Taeon Tights", augments={'Accuracy+22','"Dual Wield"+5','Crit. hit damage +2%',}}
  249. DW_feet = {name="Taeon Boots", augments={'Accuracy+23','"Dual Wield"+5','Crit. hit damage +2%',}}
  250.  
  251. MAB_head = "Jumalik Helm"
  252. MAB_body = "Jumalik Mail"
  253. MAB_hands = "Leyline Gloves"
  254. MAB_legs = {name="Taeon Tights", augments={'Mag. Acc.+14 "Mag.Atk.Bns."+14','"Fast Cast"+3','STR+10',}}
  255. MAB_feet = {name="Taeon Boots", augments={'Mag. Acc.+13 "Mag.Atk.Bns."+13','"Fast Cast"+5','Weapon skill damage +2%',}}
  256.  
  257. FC_head = {name="Taeon Chapeau", augments={'"Mag.Atk.Bns."+19','"Fast Cast"+4','Weapon skill damage +2%',}}
  258. FC_body = {name="Taeon Tabard", augments={'"Mag.Atk.Bns."+20','"Fast Cast"+5','Weapon skill damage +2%',}}
  259. FC_hands = "Leyline Gloves"
  260. FC_legs = MAB_legs
  261. FC_feet = MAB_feet
  262.  
  263. MAcc_head = "Jumalik Helm"
  264. MAcc_body = ""
  265. MAcc_hands = MAB_hands
  266. MAcc_legs = MAB_legs
  267. MAcc_feet = MAB_feet
  268.  
  269. CB_head = Ready_MAcc_head
  270. CB_body = "Mirke Wardecors"
  271. CB_hands = "Ankusa Gloves +1"
  272. CB_legs = Ready_MAcc_legs
  273. CB_feet = "Adaman Sollerets"
  274.  
  275. Cure_Potency_axe = Ready_MAcc_Axe
  276. Cure_Potency_head = {name="Taeon Chapeau", augments={'"Cure" potency +4%',}}
  277. Cure_Potency_body = "Jumalik Mail"
  278. Cure_Potency_hands = "Buremte Gloves"
  279. Cure_Potency_legs = "Ankusa Trousers +1"
  280. Cure_Potency_feet = {name="Taeon Boots", augments={'"Cure" potency +5%',}}
  281.  
  282. -- PRECAST SETS
  283. sets.precast.JA['Killer Instinct'] = {head="Ankusa Helm"}
  284. sets.precast.JA['Bestial Loyalty'] = {head=CB_head,
  285. body=CB_body,
  286. hands=CB_hands,
  287. legs=CB_legs,
  288. feet=CB_feet}
  289. sets.precast.JA['Call Beast'] = sets.precast.JA['Bestial Loyalty']
  290. sets.precast.JA.Familiar = {legs="Ankusa Trousers +1"}
  291. sets.precast.JA.Tame = {head="Totemic Helm +1",ear1="Tamer's Earring"}
  292. sets.precast.JA.Spur = {feet="Nukumi Ocreae +1"}
  293. sets.precast.SpurPetOnly = set_combine(sets.precast.JA.Spur, {main="Skullrender"})
  294. sets.precast.SpurPetOnlyDW = set_combine(sets.precast.JA.Spur, {main="Skullrender",sub="Skullrender"})
  295.  
  296. sets.precast.JA['Feral Howl'] = ""
  297.  
  298. sets.precast.JA.Reward = {
  299. head="Stout Bonnet",neck="Aife's Medal",ear1="Lifestorm Earring",ear2="Neptune's Pearl",
  300. body="Totemic Jackcoat +1",hands="Buremte Gloves",ring1="Leviathan Ring",ring2="Leviathan Ring",
  301. back=Pet_PDT_back,
  302. waist="Engraved Belt",legs="Ankusa Trousers +1",feet="Ankusa Gaiters"}
  303.  
  304. sets.precast.JA.Reward.Theta = set_combine(sets.precast.JA.Reward, {ammo="Pet Food Theta"})
  305. sets.precast.JA.Reward.Zeta = set_combine(sets.precast.JA.Reward, {ammo="Pet Food Zeta"})
  306. sets.precast.JA.Reward.Eta = set_combine(sets.precast.JA.Reward, {ammo="Pet Food Eta"})
  307.  
  308. sets.precast.JA.Charm = {
  309. head="Jumalik Helm",ear2="Etiolation Earring",
  310. body="Totemic Jackcoat +1",hands="Ankusa Gloves +1",
  311. legs="Ankusa Trousers +1",feet="Ankusa Gaiters"}
  312.  
  313. -- CURING WALTZ
  314. sets.precast.Waltz = {
  315. head="Jumalik Helm",ear2="Etiolation Earring",
  316. body="Totemic Jackcoat +1",hands="Regimen Mittens",feet="Totemic Gaiters +1"}
  317.  
  318. -- HEALING WALTZ
  319. sets.precast.Waltz['Healing Waltz'] = ""
  320.  
  321. -- STEPS
  322. sets.precast.Step = {ammo="Hasty Pinion +1",
  323. head="Yaoyotl Helm",neck="Ej Necklace",ear1="Steelflash Earring",ear2="Heartseeker Earring",
  324. body="Mes'yohi Haubergeon",
  325. hands=DW_hands,
  326. ring1="Mars's Ring",ring2="Oneiros Ring",
  327. back="Pastoralist's Mantle",waist="Olseni Belt",
  328. legs=DW_legs,
  329. feet=DW_feet}
  330.  
  331.  
  332. sets.precast.FC = {ammo="Impatiens",
  333. head=FC_head,
  334. neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Etiolation Earring",
  335. body=FC_body,
  336. hands=FC_hands,
  337. ring1="Prolix Ring",ring2="Weather. Ring",
  338. legs=FC_legs,
  339. feet=FC_feet}
  340.  
  341. sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
  342.  
  343. -- MIDCAST SETS
  344. sets.midcast.FastRecast = {
  345. head=FC_head,
  346. neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Etiolation Earring",
  347. body=FC_body,
  348. hands=FC_hands,
  349. ring1="Prolix Ring",ring2="Dark Ring",
  350. waist="Incarnation Sash",
  351. legs=FC_legs,
  352. feet=FC_feet}
  353.  
  354. sets.midcast.Utsusemi = sets.midcast.FastRecast
  355.  
  356.  
  357.  
  358. -- WEAPONSKILLS
  359. -- Default weaponskill sets.
  360. sets.precast.WS = {
  361. head="Otomi Helm",neck="Asperity Necklace",ear1="Moonshade Earring",ear2="Brutal Earring",
  362. body="Mes'yohi Haubergeon",
  363. hands=DW_hands,
  364. ring1="Ifrit Ring",ring2="Epona's Ring",
  365. back="Atheling Mantle",waist="Windbuffet Belt +1",
  366. legs=Hybrid_legs,
  367. feet=Hybrid_Feet}
  368.  
  369. sets.precast.WS.WSMedAcc = {ammo="Hasty Pinion +1",
  370. head="Otomi Helm",neck="Ej Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  371. body="Mes'yohi Haubergeon",
  372. hands=DW_hands,
  373. ring1="Ifrit Ring",ring2="Epona's Ring",
  374. waist="Anguinus Belt",
  375. legs=Hybrid_legs,
  376. feet=Hybrid_feet}
  377.  
  378. sets.precast.WS.WSHighAcc = {ammo="Hasty Pinion +1",
  379. head="Yaoyotl Helm",neck="Ej Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  380. body="Mes'yohi Haubergeon",
  381. hands=DW_hands,
  382. ring1="Mars's Ring",ring2="Oneiros Ring",
  383. waist="Anguinus Belt",
  384. legs=Hybrid_legs,
  385. feet=Hybrid_feet}
  386.  
  387. -- Specific weaponskill sets.
  388. sets.precast.WS['Ruinator'] = set_combine(sets.precast.WS, {neck="Fotia Gorget",
  389. back="Buquwik Cape",waist="Fotia Belt"})
  390. sets.precast.WS['Ruinator'].Gavialis = set_combine(sets.precast.WS['Ruinator'], {head="Gavialis Helm"})
  391. sets.precast.WS['Ruinator'].WSMedAcc = set_combine(sets.precast.WS.WSMedAcc, {neck="Fotia Gorget",
  392. ear1="Moonshade Earring",ear2="Brutal Earring",
  393. back="Buquwik Cape",waist="Fotia Belt"})
  394. sets.precast.WS['Ruinator'].WSHighAcc = set_combine(sets.precast.WS.WSHighAcc, {neck="Fotia Gorget",
  395. ear1="Moonshade Earring",ear2="Brutal Earring",
  396. waist="Fotia Belt"})
  397.  
  398. sets.precast.WS['Onslaught'] = set_combine(sets.precast.WS,
  399. {ear1="Steelflash Earring",ear2="Bladeborn Earring",
  400. ring1="Rajas Ring"})
  401. sets.precast.WS['Onslaught'].WSMedAcc = set_combine(sets.precast.WSMedAcc, {ring1="Rajas Ring"})
  402. sets.precast.WS['Onslaught'].WSHighAcc = set_combine(sets.precast.WSHighAcc)
  403.  
  404.  
  405. sets.precast.WS['Cloudsplitter'] = set_combine(sets.precast.WS['Primal Rend'], {neck="Fotia Gorget",
  406. ring2="Fenrir Ring +1",waist="Fotia Belt"})
  407.  
  408. sets.midcast.NightEarrings = {ear1="Lugra Earring",ear2="Lugra Earring +1"}
  409. sets.midcast.ExtraMAB = {ear1="Hecate's Earring"}
  410.  
  411. -- PET SIC & READY MOVES
  412. sets.midcast.Pet.WS = {ammo="Demonry Core",
  413. neck="Empath Necklace",ear1="Hija Earring",
  414. body=Ready_Atk_body,
  415. hands=Ready_Atk_hands,
  416. back=Ready_Atk_back,
  417. waist="Incarnation Sash",
  418. legs=Ready_Atk_legs,
  419. feet=Ready_Atk_feet}
  420.  
  421. sets.midcast.Pet.MagicAtkReady = set_combine(sets.midcast.Pet.WS, {
  422. head=Ready_MAB_head,
  423. ear1="Hija Earring",
  424. body=Ready_MAB_body,
  425. hands=Ready_MAB_hands,
  426. back="Argochampsa Mantle",
  427. legs=Ready_MAB_legs,
  428. feet=Ready_MAB_feet})
  429.  
  430. sets.midcast.Pet.MagicAccReady = set_combine(sets.midcast.Pet.WS, {
  431. head=Ready_MAcc_head,
  432. body=Ready_MAcc_body,
  433. hands=Ready_MAcc_hands,
  434. back="Argochampsa Mantle",
  435. legs=Ready_MAcc_legs,
  436. feet=Ready_MAcc_feet})
  437.  
  438. sets.midcast.Pet.ReadyRecast = {legs="Desultor Tassets"}
  439.  
  440. sets.midcast.Pet.Neutral = {head=Ready_Atk_head}
  441. sets.midcast.Pet.Favorable = {head="Nukumi Cabasset +1"}
  442. sets.midcast.Pet.MedAcc = set_combine(sets.midcast.Pet.WS, {ear2="Ferine Earring",
  443. body=Ready_Acc_body,
  444. legs="Wisent Kecks"})
  445. sets.midcast.Pet.HighAcc = set_combine(sets.midcast.Pet.WS, {
  446. ear2="Ferine Earring",
  447. body=Ready_Acc_body,
  448. hands=Ready_Acc_hands,
  449. legs=Ready_Acc_legs,
  450. feet=Ready_Acc_feet})
  451. sets.midcast.Pet.TPBonus = {hands="Nukumi Manoplas +1"}
  452.  
  453. -- PET-ONLY READY GEARSETS
  454. -- Single-wield PetOnly Sets
  455. sets.midcast.Pet.ReadyRecastNE = {main="Charmer's Merlin",legs="Desultor Tassets"}
  456.  
  457. sets.midcast.Pet.ReadyNE = set_combine(sets.midcast.Pet.WS, {main="Kumbhakarna"})
  458. sets.midcast.Pet.ReadyNE.MedAcc = set_combine(sets.midcast.Pet.WS, {main="Kumbhakarna",
  459. ear2="Ferine Earring",
  460. body=Ready_Acc_body,
  461. legs="Wisent Kecks"})
  462. sets.midcast.Pet.ReadyNE.HighAcc = set_combine(sets.midcast.Pet.WS, {main="Kerehcatl",
  463. ear2="Ferine Earring",
  464. body=Ready_Acc_body,
  465. hands=Ready_Acc_hands,
  466. legs=Ready_Acc_legs,
  467. feet=Ready_Acc_feet})
  468.  
  469. sets.midcast.Pet.MagicAtkReadyNE = set_combine(sets.midcast.Pet.MagicAtkReady, {main=Ready_MAB_Axe})
  470. sets.midcast.Pet.MagicAtkReadyNE.MedAcc = set_combine(sets.midcast.Pet.MagicAtkReady, {main=Ready_MAB_Axe,
  471. head=Ready_MAcc_head,
  472. legs=Ready_MAcc_legs,
  473. feet=Ready_MAcc_feet})
  474. sets.midcast.Pet.MagicAtkReadyNE.HighAcc = set_combine(sets.midcast.Pet.MagicAtkReady, {main=Ready_MAB_Axe,
  475. head=Ready_MAcc_head,
  476. body=Ready_MAcc_body,
  477. hands=Ready_MAcc_hands,
  478. legs=Ready_MAcc_legs,
  479. feet=Ready_MAcc_feet})
  480.  
  481. sets.midcast.Pet.MagicAccReadyNE = set_combine(sets.midcast.Pet.MagicAccReady, {main="Kumbhakarna"})
  482.  
  483. sets.DTAxeShield = {main=Pet_PDT_AxeMain}
  484.  
  485. -- Dual-wield PetOnly Sets
  486. sets.midcast.Pet.ReadyRecastDWNE = {main="Kumbhakarna",sub="Charmer's Merlin",legs="Desultor Tassets"}
  487.  
  488. sets.midcast.Pet.ReadyDWNE = set_combine(sets.midcast.Pet.ReadyNE, {sub=Ready_Atk_Axe})
  489. sets.midcast.Pet.ReadyDWNE.MedAcc = set_combine(sets.midcast.Pet.ReadyNE.MedAcc, {sub=Ready_Acc_Axe})
  490. sets.midcast.Pet.ReadyDWNE.HighAcc = set_combine(sets.midcast.Pet.ReadyNE.HighAcc, {sub="Hunahpu"})
  491.  
  492. sets.midcast.Pet.MagicAtkReadyDWNE = set_combine(sets.midcast.Pet.MagicAtkReadyNE, {main=Ready_MAB_Axe,sub=Ready_MAcc_Axe})
  493. sets.midcast.Pet.MagicAtkReadyDWNE.MedAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.MedAcc, {main=Ready_MAB_Axe,sub=Ready_MAcc_Axe})
  494. sets.midcast.Pet.MagicAtkReadyDWNE.HighAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.HighAcc, {main=Ready_MAB_Axe,sub=Ready_MAcc_Axe})
  495.  
  496. sets.midcast.Pet.MagicAccReadyDWNE = set_combine(sets.midcast.Pet.MagicAccReadyNE, {sub=Ready_MAcc_Axe})
  497.  
  498. sets.DTAxes = {main=Pet_PDT_AxeMain,
  499. sub=Pet_PDT_AxeSub}
  500.  
  501. -- RESTING
  502. sets.resting = ""
  503.  
  504. -- IDLE SETS
  505. sets.ExtraRegen = ""
  506. sets.RegenAxes = {main="Hatxiik",sub="Hunahpu"}
  507.  
  508. sets.idle = {ammo="Demonry Core",
  509. head="Twilight Helm",neck="Bathy Choker",ear1="Infused Earring",ear2="Dawn Earring",
  510. body="Kumbarbi's Akar",hands="Umuthi Gloves",ring1="Paguroidea Ring",ring2="Sheltered Ring",
  511. waist="Flume Belt",feet="Amm Greaves"}
  512.  
  513. sets.idle.Regen = {ammo="Demonry Core",
  514. head="Twilight Helm",neck="Bathy Choker",ear1="Infused Earring",ear2="Dawn Earring",
  515. body="Kumbarbi's Akar",hands="Umuthi Gloves",ring1="Paguroidea Ring",ring2="Sheltered Ring",
  516. waist="Flume Belt",feet="Amm Greaves"}
  517.  
  518. sets.idle.Refresh = set_combine(sets.idle, {head="Jumalik Helm",body="Jumalik Mail"})
  519. sets.idle.Reraise = set_combine(sets.idle, {head="Twilight Helm",body="Twilight Mail"})
  520.  
  521. sets.idle.Pet = set_combine(sets.idle, {ammo="Demonry Core",
  522. head=Hybrid_head,
  523. neck="Empath Necklace",ear1="Infused Earring",ear2="Dawn Earring",
  524. body=Pet_PDT_body,
  525. hands=Pet_PDT_hands,
  526. ring1="Paguroidea Ring",ring2="Sheltered Ring",
  527. back=Pet_PDT_back,
  528. waist="Isa Belt",
  529. legs=Pet_PDT_legs,
  530. feet="Amm Greaves"})
  531.  
  532. sets.idle.Pet.Engaged = {ammo="Demonry Core",
  533. head=Pet_Melee_head,
  534. neck="Ferine Necklace",ear1="Hija Earring",ear2="Domesticator's Earring",
  535. body=Pet_Melee_body,
  536. hands=Pet_Melee_hands,
  537. ring1="Dark Ring",ring2="Dark Ring",
  538. back=Pet_PDT_back,
  539. waist="Incarnation Sash",
  540. legs=Pet_Melee_legs,
  541. feet=Pet_Melee_feet}
  542.  
  543. -- DEFENSE SETS
  544. sets.defense.PDT = {
  545. head="Jumalik Helm",
  546. body="Jumalik Mail",hands="Umuthi Gloves",ring1="Patricius Ring",ring2="Dark Ring",
  547. waist="Flume Belt",feet="Amm Greaves"}
  548.  
  549. sets.defense.Plantoid = set_combine(sets.defense.PDT, {
  550. head="Ankusa Helm",
  551. body="Nukumi Gausape"})
  552.  
  553. sets.defense.Reraise = set_combine(sets.defense.PDT, {head="Twilight Helm",body="Twilight Mail"})
  554.  
  555. sets.defense.HybridPDT = {
  556. head="Jumalik Helm",neck="Loricate Torque +1",ear1="Handler's Earring",ear2="Handler's Earring +1",
  557. body="Jumalik Mail",hands=Pet_PDT_hands,ring1="Dark Ring",ring2="Dark Ring",
  558. back="Repulse Mantle",waist="Flume Belt",legs=Pet_PDT_legs,feet="Amm Greaves"}
  559.  
  560. sets.defense.MDT = set_combine(sets.defense.PDT, {
  561. head="Jumalik Helm",neck="Loricate Torque +1",ear1="Sanare Earring",ear2="Etiolation Earring",
  562. body="Jumalik Mail",
  563. back="Engulfer Cape",waist="Nierenschutz"})
  564.  
  565. sets.defense.MDTShell = set_combine(sets.defense.MDT, {
  566. ring1="Shadow Ring",
  567. back="Engulfer Cape"})
  568.  
  569. sets.defense.PetPDT = {ammo="Demonry Core",
  570. head="Anwig Salade",
  571. ear1="Handler's Earring",ear2="Handler's Earring +1",
  572. body=Pet_PDT_body,
  573. hands=Pet_PDT_hands,
  574. ring1="Dark Ring",ring2="Dark Ring",
  575. back=Pet_PDT_back,
  576. waist="Isa Belt",
  577. legs=Pet_PDT_legs,
  578. feet=Pet_PDT_feet}
  579.  
  580. sets.defense.PetMDT = set_combine(sets.defense.PetPDT, {
  581. body=Pet_MDT_body,
  582. hands=Pet_MDT_hands,
  583. ring1="Dark Ring",ring2="Dark Ring",
  584. legs=Pet_MDT_legs,
  585. feet=Pet_MDT_feet})
  586.  
  587. sets.defense.PetSB = set_combine(sets.defense.PetPDT)
  588.  
  589. sets.Kiting = {feet="Amm Greaves"}
  590.  
  591. -- MELEE (SINGLE-WIELD) SETS
  592. sets.engaged = {
  593. head="Otomi Helm",neck="Asperity Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  594. body="Mes'yohi Haubergeon",hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  595. back="Atheling Mantle",waist="Windbuffet Belt +1",
  596. legs=Hybrid_legs,
  597. feet=Hybrid_feet}
  598. sets.engaged.LowAccHaste = sets.engaged
  599. sets.engaged.MedAcc = {
  600. head=Hybrid_head,
  601. neck="Ej Necklace",ear1="Steelflash Earring",ear2="Bladeborn Earring",
  602. body="Mes'yohi Haubergeon",
  603. hands=DW_hands,
  604. ring1="Rajas Ring",ring2="Epona's Ring",
  605. waist="Incarnation Sash",
  606. legs=Hybrid_legs,
  607. feet=Hybrid_feet}
  608. sets.engaged.MedAccHaste = sets.engaged.MedAcc
  609. sets.engaged.HighAcc = {ammo="Hasty Pinion +1",
  610. head=Hybrid_head,
  611. neck="Ej Necklace",ear1="Steelflash Earring",ear2="Zennaroi Earring",
  612. body="Mes'yohi Haubergeon",
  613. hands=DW_hands,
  614. ring1="Mars's Ring",ring2="Oneiros Ring",
  615. waist="Olseni Belt",
  616. legs=Hybrid_legs,
  617. feet=Hybrid_feet}
  618. sets.engaged.HighAccHaste = sets.engaged.HighAcc
  619. sets.engaged.Aftermath = set_combine(sets.engaged)
  620. sets.engaged.LowAccHaste.Aftermath = sets.engaged.Aftermath
  621. sets.engaged.MedAcc.Aftermath = set_combine(sets.engaged.MedAcc)
  622. sets.engaged.MedAccHaste.Aftermath = sets.engaged.MedAcc.Aftermath
  623. sets.engaged.HighAcc.Aftermath = set_combine(sets.engaged.HighAcc)
  624. sets.engaged.HighAccHaste.Aftermath = sets.engaged.HighAcc.Aftermath
  625.  
  626. -- MELEE (SINGLE-WIELD) HYBRID SETS
  627. sets.engaged.Hybrid = set_combine(sets.engaged, {hands="Umuthi Gloves",feet="Amm Greaves"})
  628. sets.engaged.LowAccHaste.Hybrid = sets.engaged.Hybrid
  629. sets.engaged.MedAcc.Hybrid = set_combine(sets.engaged.MedAcc, {feet="Amm Greaves"})
  630. sets.engaged.MedAccHaste.Hybrid = sets.engaged.MedAcc.Hybrid
  631. sets.engaged.HighAcc.Hybrid = set_combine(sets.engaged.HighAcc, {feet="Amm Greaves"})
  632. sets.engaged.HighAccHaste.Hybrid = sets.engaged.HighAcc.Hybrid
  633.  
  634. -- MELEE (DUAL-WIELD) SETS FOR DNC AND NIN SUBJOB
  635. sets.engaged.DW = {
  636. head=DW_head,
  637. neck="Asperity Necklace",ear1="Suppanomimi",ear2="Brutal Earring",
  638. body=DW_body,
  639. hands=DW_hands,
  640. ring1="Rajas Ring",ring2="Epona's Ring",
  641. back="Atheling Mantle",waist="Patentia Sash",
  642. legs=DW_legs,
  643. feet=DW_feet}
  644. sets.engaged.DW.LowAccHaste = {
  645. head="Otomi Helm",neck="Asperity Necklace",ear1="Suppanomimi",ear2="Brutal Earring",
  646. body=DW_body,
  647. hands="Taeon Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  648. back="Atheling Mantle",waist="Windbuffet Belt +1",
  649. legs=Hybrid_legs,
  650. feet=Hybrid_feet}
  651. sets.engaged.DW.MedAcc = {ammo="Hasty Pinion +1",
  652. head=DW_head,
  653. neck="Ej Necklace",ear1="Suppanomimi",ear2="Brutal Earring",
  654. body=DW_body,
  655. hands=DW_hands,
  656. ring1="Rajas Ring",ring2="Epona's Ring",
  657. back="Atheling Mantle",waist="Patentia Sash",
  658. legs=DW_legs,
  659. feet=DW_feet}
  660. sets.engaged.DW.MedAccHaste = {ammo="Hasty Pinion +1",
  661. head=Hybrid_head,
  662. neck="Ej Necklace",ear1="Suppanomimi",ear2="Brutal Earring",
  663. body="Mes'yohi Haubergeon",
  664. hands=DW_hands,
  665. ring1="Rajas Ring",ring2="Epona's Ring",
  666. back="Atheling Mantle",waist="Incarnation Sash",
  667. legs=Hybrid_legs,
  668. feet=Hybrid_feet}
  669. sets.engaged.DW.HighAcc = {ammo="Hasty Pinion +1",
  670. head=Hybrid_head,
  671. neck="Ej Necklace",ear1="Heartseeker Earring",ear2="Zennaroi Earring",
  672. body=DW_body,
  673. hands=DW_hands,
  674. ring1="Mars's Ring",ring2="Oneiros Ring",
  675. back="Atheling Mantle",waist="Olseni Belt",
  676. legs=DW_legs,
  677. feet=DW_feet}
  678. sets.engaged.DW.HighAccHaste = {ammo="Hasty Pinion +1",
  679. head=Hybrid_head,
  680. neck="Ej Necklace",ear1="Heartseeker Earring",ear2="Zennaroi Earring",
  681. body="Mes'yohi Haubergeon",
  682. hands=DW_hands,
  683. ring1="Mars's Ring",ring2="Oneiros Ring",
  684. back="Atheling Mantle",waist="Olseni Belt",
  685. legs=Hybrid_legs,
  686. feet=Hybrid_feet}
  687. sets.engaged.DW.Aftermath = sets.engaged.DW
  688. sets.engaged.DW.LowAccHaste.Aftermath = sets.engaged.DW.Aftermath
  689. sets.engaged.DW.MedAcc.Aftermath = sets.engaged.DW.MedAcc
  690. sets.engaged.DW.MedAccHaste.Aftermath = sets.engaged.DW.MedAcc.Aftermath
  691. sets.engaged.DW.HighAcc.Aftermath = sets.engaged.DW.HighAcc
  692. sets.engaged.DW.HighAccHaste.Aftermath = sets.engaged.DW.HighAcc.Aftermath
  693. -- MELEE (DUAL-WIELD) HYBRID SETS
  694. sets.engaged.DW.Hybrid = set_combine(sets.engaged.DW, {hands="Umuthi Gloves",feet="Amm Greaves"})
  695. sets.engaged.DW.LowAccHaste.Hybrid = sets.engaged.DW.Hybrid
  696. sets.engaged.DW.MedAcc.Hybrid = set_combine(sets.engaged.DW.MedAcc, {feet="Amm Greaves"})
  697. sets.engaged.DW.MedAccHaste.Hybrid =sets.engaged.DW.MedAcc.Hybrid
  698. sets.engaged.DW.HighAcc.Hybrid = set_combine(sets.engaged.DW.HighAcc, {feet="Amm Greaves"})
  699. sets.engaged.DW.HighAccHaste.Hybrid = sets.engaged.DW.HighAcc.Hybrid
  700.  
  701. -- GEARSETS FOR MASTER ENGAGED (SINGLE-WIELD) & PET TANKING
  702. sets.engaged.PetTank = set_combine(sets.engaged, {
  703. head=Hybrid_head,
  704. ear1="Handler's Earring",ear2="Handler's Earring +1",
  705. body=Hybrid_body,
  706. hands=Hybrid_hands,
  707. back=Pet_PDT_back,
  708. waist="Isa Belt",
  709. legs=Hybrid_legs,
  710. feet=Hybrid_feet})
  711. sets.engaged.PetTank.LowAccHaste = sets.engaged.PetTank
  712. sets.engaged.PetTank.MedAcc = sets.engaged.PetTank
  713. sets.engaged.PetTank.MedAccHaste = sets.engaged.PetTank
  714. sets.engaged.PetTank.HighAcc = sets.engaged.PetTank
  715. sets.engaged.PetTank.HighAccHaste = sets.engaged.PetTank
  716.  
  717. -- GEARSETS FOR MASTER ENGAGED (DUAL-WIELD) & PET TANKING
  718. sets.engaged.DW.PetTank = set_combine(sets.engaged.DW, {
  719. head=Pet_PDT_head,
  720. ear1="Handler's Earring",ear2="Handler's Earring +1",
  721. body=Hybrid_body,
  722. hands=Hybrid_hands,
  723. back=Pet_PDT_back,
  724. waist="Isa Belt",
  725. legs=Hybrid_legs,
  726. feet=Hybrid_feet})
  727. sets.engaged.DW.PetTank.LowAccHaste = sets.engaged.DW.PetTank
  728. sets.engaged.DW.PetTank.MedAcc = set_combine(sets.engaged.DW.MedAcc, {
  729. head=Hybrid_head,
  730. ear1="Handler's Earring",ear2="Handler's Earring +1",
  731. body=Hybrid_body,
  732. hands=Hybrid_hands,
  733. legs=Hybrid_legs,
  734. feet=Hybrid_feet})
  735. sets.engaged.DW.PetTank.MedAccHaste = sets.engaged.DW.PetTank.MedAcc
  736. sets.engaged.DW.PetTank.HighAcc = set_combine(sets.engaged.DW.HighAcc, {
  737. head=Hybrid_head,
  738. ear1="Handler's Earring",ear2="Handler's Earring +1",
  739. body="Mes'yohi Haubergeon",
  740. hands=Hybrid_hands,
  741. legs=Hybrid_legs,
  742. feet=Hybrid_feet})
  743. sets.engaged.DW.PetTank.HighAccHaste = sets.engaged.DW.PetTank.HighAcc
  744.  
  745. sets.buff['Killer Instinct'] = {body="Nukumi Gausape"}
  746. sets.buff.Doomed = ""
  747. sets.THBelt = {waist="Chaac Belt"}
  748. sets.DaytimeAmmo = {ammo="Tengu-no-Hane"}
  749.  
  750. -------------------------------------------------------------------------------------------------------------------
  751. -- Complete Lvl 76-99 Jug Pet Precast List +Funguar +Courier +Amigo
  752. -------------------------------------------------------------------------------------------------------------------
  753.  
  754. sets.precast.JA['Bestial Loyalty'].FunguarFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Seedbed Soil"})
  755. sets.precast.JA['Bestial Loyalty'].CourierCarrie = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Fish Oil Broth"})
  756. sets.precast.JA['Bestial Loyalty'].AmigoSabotender = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Sun Water"})
  757. sets.precast.JA['Bestial Loyalty'].NurseryNazuna = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="D. Herbal Broth"})
  758. sets.precast.JA['Bestial Loyalty'].CraftyClyvonne = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Cng. Brain Broth"})
  759. sets.precast.JA['Bestial Loyalty'].PrestoJulio = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="C. Grass. Broth"})
  760. sets.precast.JA['Bestial Loyalty'].SwiftSieghard = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Mlw. Bird Broth"})
  761. sets.precast.JA['Bestial Loyalty'].MailbusterCetas = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Gob. Bug Broth"})
  762. sets.precast.JA['Bestial Loyalty'].AudaciousAnna = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="B. Carrion Broth"})
  763. sets.precast.JA['Bestial Loyalty'].TurbidToloi = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Auroral Broth"})
  764. sets.precast.JA['Bestial Loyalty'].LuckyLulush = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="L. Carrot Broth"})
  765. sets.precast.JA['Bestial Loyalty'].DipperYuly = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Wool Grease"})
  766. sets.precast.JA['Bestial Loyalty'].FlowerpotMerle = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Vermihumus"})
  767. sets.precast.JA['Bestial Loyalty'].DapperMac = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Briny Broth"})
  768. sets.precast.JA['Bestial Loyalty'].DiscreetLouise = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Deepbed Soil"})
  769. sets.precast.JA['Bestial Loyalty'].FatsoFargann = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="C. Plasma Broth"})
  770. sets.precast.JA['Bestial Loyalty'].FaithfulFalcorr = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Lucky Broth"})
  771. sets.precast.JA['Bestial Loyalty'].BugeyedBroncha = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Svg. Mole Broth"})
  772. sets.precast.JA['Bestial Loyalty'].BloodclawShasra = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Rzr. Brain Broth"})
  773. sets.precast.JA['Bestial Loyalty'].GorefangHobs = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="B. Carrion Broth"})
  774. sets.precast.JA['Bestial Loyalty'].GooeyGerard = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Cl. Wheat Broth"})
  775. sets.precast.JA['Bestial Loyalty'].CrudeRaphie = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Shadowy Broth"})
  776.  
  777. -------------------------------------------------------------------------------------------------------------------
  778. -- Complete iLvl Jug Pet Precast List
  779. -------------------------------------------------------------------------------------------------------------------
  780.  
  781. sets.precast.JA['Bestial Loyalty'].DroopyDortwin = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Swirling Broth"})
  782. sets.precast.JA['Bestial Loyalty'].PonderingPeter = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Vis. Broth"})
  783. sets.precast.JA['Bestial Loyalty'].SunburstMalfik = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Shimmering Broth"})
  784. sets.precast.JA['Bestial Loyalty'].AgedAngus = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Ferm. Broth"})
  785. sets.precast.JA['Bestial Loyalty'].WarlikePatrick = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Livid Broth"})
  786. sets.precast.JA['Bestial Loyalty'].ScissorlegXerin = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Spicy Broth"})
  787. sets.precast.JA['Bestial Loyalty'].BouncingBertha = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Bubbly Broth"})
  788. sets.precast.JA['Bestial Loyalty'].RhymingShizuna = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Lyrical Broth"})
  789. sets.precast.JA['Bestial Loyalty'].AttentiveIbuki = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Salubrious Broth"})
  790. sets.precast.JA['Bestial Loyalty'].SwoopingZhivago = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Windy Greens"})
  791. sets.precast.JA['Bestial Loyalty'].AmiableRoche = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Airy Broth"})
  792. sets.precast.JA['Bestial Loyalty'].HeraldHenry = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Trans. Broth"})
  793. sets.precast.JA['Bestial Loyalty'].BrainyWaluis = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Crumbly Soil"})
  794. sets.precast.JA['Bestial Loyalty'].HeadbreakerKen = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Blackwater Broth"})
  795. sets.precast.JA['Bestial Loyalty'].RedolentCandi = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Electrified Broth"})
  796. sets.precast.JA['Bestial Loyalty'].AlluringHoney = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Bug-Ridden Broth"})
  797. sets.precast.JA['Bestial Loyalty'].CaringKiyomaro = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Fizzy Broth"})
  798. sets.precast.JA['Bestial Loyalty'].VivaciousVickie = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Tant. Broth"})
  799. sets.precast.JA['Bestial Loyalty'].HurlerPercival = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Pale Sap"})
  800. sets.precast.JA['Bestial Loyalty'].BlackbeardRandy = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Meaty Broth"})
  801. sets.precast.JA['Bestial Loyalty'].GenerousArthur = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Dire Broth"})
  802. sets.precast.JA['Bestial Loyalty'].ThreestarLynn = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Muddy Broth"})
  803. sets.precast.JA['Bestial Loyalty'].BraveHeroGlenn = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Wispy Broth"})
  804. sets.precast.JA['Bestial Loyalty'].SharpwitHermes = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Saline Broth"})
  805. sets.precast.JA['Bestial Loyalty'].ColibriFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Sugary Broth"})
  806. sets.precast.JA['Bestial Loyalty'].ChoralLeera = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Glazed Broth"})
  807. sets.precast.JA['Bestial Loyalty'].SpiderFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Sticky Webbing"})
  808. sets.precast.JA['Bestial Loyalty'].GussyHachirobe = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Slimy Webbing"})
  809. sets.precast.JA['Bestial Loyalty'].AcuexFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Poisonous Broth"})
  810. sets.precast.JA['Bestial Loyalty'].FluffyBredo = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Venomous Broth"})
  811. sets.precast.JA['Bestial Loyalty'].SuspiciousAlice = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Furious Broth"})
  812. sets.precast.JA['Bestial Loyalty'].AnklebiterJedd = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Crackling Broth"})
  813. sets.precast.JA['Bestial Loyalty'].FleetReinhard = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Rapid Broth"})
  814. sets.precast.JA['Bestial Loyalty'].CursedAnnabelle = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Creepy Broth"})
  815. sets.precast.JA['Bestial Loyalty'].SurgingStorm = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Insipid Broth"})
  816. sets.precast.JA['Bestial Loyalty'].SubmergedIyo = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Deepwater Broth"})
  817. sets.precast.JA['Bestial Loyalty'].MosquitoFamiliar = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Wetlands Broth"})
  818. sets.precast.JA['Bestial Loyalty'].LeftHandedYoko = set_combine(sets.precast.JA['Bestial Loyalty'], {ammo="Heavenly Broth"})
  819. end
  820.  
  821. -------------------------------------------------------------------------------------------------------------------
  822. -- General hooks for other game events.
  823. -------------------------------------------------------------------------------------------------------------------
  824.  
  825. -- function job_buff_change(buff, gain)
  826. -- if buff == 'Aftermath: Lv.3' and gain then
  827. -- job_update(cmdParams, eventArgs)
  828. -- handle_equipping_gear(player.status)
  829. -- else
  830. -- job_update(cmdParams, eventArgs)
  831. -- handle_equipping_gear(player.status)
  832. -- end
  833. -- end
  834.  
  835. -------------------------------------------------------------------------------------------------------------------
  836. -- Job-specific hooks that are called to process player actions at specific points in time.
  837. -------------------------------------------------------------------------------------------------------------------
  838.  
  839. function job_precast(spell, action, spellMap, eventArgs)
  840. if player.equipment.main == 'Kumbhakarna' then
  841. custom_aftermath_timers_precast(spell)
  842. end
  843.  
  844. if spell.type == "WeaponSkill" and spell.name ~= 'Mistral Axe' and spell.name ~= 'Bora Axe' and spell.target.distance > target_distance then
  845. cancel_spell()
  846. add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  847. handle_equipping_gear(player.status)
  848. return
  849. end
  850.  
  851. if spell.type == 'CorsairRoll' or spell.english == "Double-Up" then
  852. equip(sets.precast.LuzafRing)
  853. end
  854.  
  855. if spell.english == 'Spur' then
  856. if state.PetMode.value == 'PetOnly' then
  857. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  858. equip(sets.precast.SpurPetOnlyDW)
  859. else
  860. equip(sets.precast.SpurPetOnly)
  861. end
  862. end
  863. end
  864.  
  865. if spell.english == 'Reward' then
  866. if state.RewardMode.value == 'Theta' then
  867. equip(sets.precast.JA.Reward.Theta)
  868. elseif state.RewardMode.value == 'Zeta' then
  869. equip(sets.precast.JA.Reward.Zeta)
  870. elseif state.RewardMode.value == 'Eta' then
  871. equip(sets.precast.JA.Reward.Eta)
  872. end
  873. end
  874.  
  875. if spell.english == 'Bestial Loyalty' or spell.english == 'Call Beast' then
  876. if state.JugMode.value == 'FunguarFamiliar' or state.JugMode.value == 'Seedbed Soil' then
  877. equip(sets.precast.JA['Bestial Loyalty'].FunguarFamiliar)
  878. elseif state.JugMode.value == 'CourierCarrie' or state.JugMode.value == 'Fish Oil Broth' then
  879. equip(sets.precast.JA['Bestial Loyalty'].CourierCarrie)
  880. elseif state.JugMode.value == 'AmigoSabotender' or state.JugMode.value == 'Sun Water' then
  881. equip(sets.precast.JA['Bestial Loyalty'].AmigoSabotender)
  882. elseif state.JugMode.value == 'NurseryNazuna' or state.JugMode.value == 'Dancing Herbal Broth' or state.JugMode.value == 'D. Herbal Broth' then
  883. equip(sets.precast.JA['Bestial Loyalty'].NurseryNazuna)
  884. elseif state.JugMode.value == 'CraftyClyvonne' or state.JugMode.value == 'Cunning Brain Broth' or state.JugMode.value == 'Cng. Brain Broth' then
  885. equip(sets.precast.JA['Bestial Loyalty'].CraftyClyvonne)
  886. elseif state.JugMode.value == 'PrestoJulio' or state.JugMode.value == 'Chirping Grasshopper Broth' or state.JugMode.value == 'C. Grass Broth' then
  887. equip(sets.precast.JA['Bestial Loyalty'].PrestoJulio)
  888. elseif state.JugMode.value == 'SwiftSieghard' or state.JugMode.value == 'Mellow Bird Broth' or state.JugMode.value == 'Mlw. Bird Broth' then
  889. equip(sets.precast.JA['Bestial Loyalty'].SwiftSieghard)
  890. elseif state.JugMode.value == 'MailbusterCetas' or state.JugMode.value == 'Goblin Bug Broth' or state.JugMode.value == 'Gob. Bug Broth' then
  891. equip(sets.precast.JA['Bestial Loyalty'].MailbusterCetas)
  892. elseif state.JugMode.value == 'AudaciousAnna' or state.JugMode.value == 'Bubbling Carrion Broth' then
  893. equip(sets.precast.JA['Bestial Loyalty'].AudaciousAnna)
  894. elseif state.JugMode.value == 'TurbidToloi' or state.JugMode.value == 'Auroral Broth' then
  895. equip(sets.precast.JA['Bestial Loyalty'].TurbidToloi)
  896. elseif state.JugMode.value == 'SlipperySilas' or state.JugMode.value == 'Wormy Broth' then
  897. equip(sets.precast.JA['Bestial Loyalty'].SlipperySilas)
  898. elseif state.JugMode.value == 'LuckyLulush' or state.JugMode.value == 'Lucky Carrot Broth' or state.JugMode.value == 'L. Carrot Broth' then
  899. equip(sets.precast.JA['Bestial Loyalty'].LuckyLulush)
  900. elseif state.JugMode.value == 'DipperYuly' or state.JugMode.value == 'Wool Grease' then
  901. equip(sets.precast.JA['Bestial Loyalty'].DipperYuly)
  902. elseif state.JugMode.value == 'FlowerpotMerle' or state.JugMode.value == 'Vermihumus' then
  903. equip(sets.precast.JA['Bestial Loyalty'].FlowerpotMerle)
  904. elseif state.JugMode.value == 'DapperMac' or state.JugMode.value == 'Briny Broth' then
  905. equip(sets.precast.JA['Bestial Loyalty'].DapperMac)
  906. elseif state.JugMode.value == 'DiscreetLouise' or state.JugMode.value == 'Deepbed Soil' then
  907. equip(sets.precast.JA['Bestial Loyalty'].DiscreetLouise)
  908. elseif state.JugMode.value == 'FatsoFargann' or state.JugMode.value == 'Curdled Plasma Broth' or state.JugMode.value == 'C. Plasma Broth' then
  909. equip(sets.precast.JA['Bestial Loyalty'].FatsoFargann)
  910. elseif state.JugMode.value == 'FaithfulFalcorr' or state.JugMode.value == 'Lucky Broth' then
  911. equip(sets.precast.JA['Bestial Loyalty'].FaithfulFalcorr)
  912. elseif state.JugMode.value == 'BugeyedBroncha' or state.JugMode.value == 'Savage Mole Broth' or state.JugMode.value == 'Svg. Mole Broth' then
  913. equip(sets.precast.JA['Bestial Loyalty'].BugeyedBroncha)
  914. elseif state.JugMode.value == 'BloodclawShasra' or state.JugMode.value == 'Razor Brain Broth' or state.JugMode.value == 'Rzr. Brain Broth' then
  915. equip(sets.precast.JA['Bestial Loyalty'].BloodclawShasra)
  916. elseif state.JugMode.value == 'GorefangHobs' or state.JugMode.value == 'Burning Carrion Broth' then
  917. equip(sets.precast.JA['Bestial Loyalty'].GorefangHobs)
  918. elseif state.JugMode.value == 'GooeyGerard' or state.JugMode.value == 'Cloudy Wheat Broth' or state.JugMode.value == 'Cl. Wheat Broth' then
  919. equip(sets.precast.JA['Bestial Loyalty'].GooeyGerard)
  920. elseif state.JugMode.value == 'CrudeRaphie' or state.JugMode.value == 'Shadowy Broth' then
  921. equip(sets.precast.JA['Bestial Loyalty'].CrudeRaphie)
  922. elseif state.JugMode.value == 'DroopyDortwin' or state.JugMode.value == 'Swirling Broth' then
  923. equip(sets.precast.JA['Bestial Loyalty'].DroopyDortwin)
  924. elseif state.JugMode.value == 'PonderingPeter' or state.JugMode.value == 'Viscous Broth' or state.JugMode.value == 'Vis. Broth' then
  925. equip(sets.precast.JA['Bestial Loyalty'].PonderingPeter)
  926. elseif state.JugMode.value == 'SunburstMalfik' or state.JugMode.value == 'Shimmering Broth' then
  927. equip(sets.precast.JA['Bestial Loyalty'].SunburstMalfik)
  928. elseif state.JugMode.value == 'AgedAngus' or state.JugMode.value == 'Fermented Broth' or state.JugMode.value == 'Ferm. Broth' then
  929. equip(sets.precast.JA['Bestial Loyalty'].AgedAngus)
  930. elseif state.JugMode.value == 'WarlikePatrick' or state.JugMode.value == 'Livid Broth' then
  931. equip(sets.precast.JA['Bestial Loyalty'].WarlikePatrick)
  932. elseif state.JugMode.value == 'ScissorlegXerin' or state.JugMode.value == 'Spicy Broth' then
  933. equip(sets.precast.JA['Bestial Loyalty'].ScissorlegXerin)
  934. elseif state.JugMode.value == 'BouncingBertha' or state.JugMode.value == 'Bubbly Broth' then
  935. if spell.english == 'Call Beast' then
  936. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  937. return
  938. end
  939. equip(sets.precast.JA['Bestial Loyalty'].BouncingBertha)
  940. elseif state.JugMode.value == 'RhymingShizuna' or state.JugMode.value == 'Lyrical Broth' then
  941. equip(sets.precast.JA['Bestial Loyalty'].RhymingShizuna)
  942. elseif state.JugMode.value == 'AttentiveIbuki' or state.JugMode.value == 'Salubrious Broth' then
  943. equip(sets.precast.JA['Bestial Loyalty'].AttentiveIbuki)
  944. elseif state.JugMode.value == 'SwoopingZhivago' or state.JugMode.value == 'Windy Greens' then
  945. if spell.english == 'Call Beast' then
  946. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  947. return
  948. end
  949. equip(sets.precast.JA['Bestial Loyalty'].SwoopingZhivago)
  950. elseif state.JugMode.value == 'AmiableRoche' or state.JugMode.value == 'Airy Broth' then
  951. equip(sets.precast.JA['Bestial Loyalty'].AmiableRoche)
  952. elseif state.JugMode.value == 'HeraldHenry' or state.JugMode.value == 'Translucent Broth' or state.JugMode.value == 'Trans. Broth' then
  953. equip(sets.precast.JA['Bestial Loyalty'].HeraldHenry)
  954. elseif state.JugMode.value == 'BrainyWaluis' or state.JugMode.value == 'Crumbly Soil' then
  955. equip(sets.precast.JA['Bestial Loyalty'].BrainyWaluis)
  956. elseif state.JugMode.value == 'HeadbreakerKen' or state.JugMode.value == 'Blackwater Broth' then
  957. equip(sets.precast.JA['Bestial Loyalty'].HeadbreakerKen)
  958. elseif state.JugMode.value == 'RedolentCandi' or state.JugMode.value == 'Electrified Broth' then
  959. equip(sets.precast.JA['Bestial Loyalty'].RedolentCandi)
  960. elseif state.JugMode.value == 'AlluringHoney' or state.JugMode.value == 'Bug-Ridden Broth' then
  961. if spell.english == 'Call Beast' then
  962. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  963. return
  964. end
  965. equip(sets.precast.JA['Bestial Loyalty'].AlluringHoney)
  966. elseif state.JugMode.value == 'CaringKiyomaro' or state.JugMode.value == 'Fizzy Broth' then
  967. equip(sets.precast.JA['Bestial Loyalty'].CaringKiyomaro)
  968. elseif state.JugMode.value == 'VivaciousVickie' or state.JugMode.value == 'Tantalizing Broth' or state.JugMode.value == 'Tant. Broth' then
  969. if spell.english == 'Call Beast' then
  970. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  971. return
  972. end
  973. equip(sets.precast.JA['Bestial Loyalty'].VivaciousVickie)
  974. elseif state.JugMode.value == 'HurlerPercival' or state.JugMode.value == 'Pale Sap' then
  975. equip(sets.precast.JA['Bestial Loyalty'].HurlerPercival)
  976. elseif state.JugMode.value == 'BlackbeardRandy' or state.JugMode.value == 'Meaty Broth' then
  977. equip(sets.precast.JA['Bestial Loyalty'].BlackbeardRandy)
  978. elseif state.JugMode.value == 'GenerousArthur' or state.JugMode.value == 'Dire Broth' then
  979. equip(sets.precast.JA['Bestial Loyalty'].GenerousArthur)
  980. elseif state.JugMode.value == 'ThreestarLynn' or state.JugMode.value == 'Muddy Broth' then
  981. equip(sets.precast.JA['Bestial Loyalty'].ThreestarLynn)
  982. elseif state.JugMode.value == 'BraveHeroGlenn' or state.JugMode.value == 'Wispy Broth' then
  983. equip(sets.precast.JA['Bestial Loyalty'].BraveHeroGlenn)
  984. elseif state.JugMode.value == 'SharpwitHermes' or state.JugMode.value == 'Saline Broth' then
  985. equip(sets.precast.JA['Bestial Loyalty'].SharpwitHermes)
  986. elseif state.JugMode.value == 'ColibriFamiliar' or state.JugMode.value == 'Sugary Broth' then
  987. equip(sets.precast.JA['Bestial Loyalty'].ColibriFamiliar)
  988. elseif state.JugMode.value == 'ChoralLeera' or state.JugMode.value == 'Glazed Broth' then
  989. if spell.english == 'Call Beast' then
  990. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  991. return
  992. end
  993. equip(sets.precast.JA['Bestial Loyalty'].ChoralLeera)
  994. elseif state.JugMode.value == 'SpiderFamiliar' or state.JugMode.value == 'Sticky Webbing' then
  995. equip(sets.precast.JA['Bestial Loyalty'].SpiderFamiliar)
  996. elseif state.JugMode.value == 'GussyHachirobe' or state.JugMode.value == 'Slimy Webbing' then
  997. if spell.english == 'Call Beast' then
  998. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  999. return
  1000. end
  1001. equip(sets.precast.JA['Bestial Loyalty'].GussyHachirobe)
  1002. elseif state.JugMode.value == 'AcuexFamiliar' or state.JugMode.value == 'Poisonous Broth' then
  1003. equip(sets.precast.JA['Bestial Loyalty'].AcuexFamiliar)
  1004. elseif state.JugMode.value == 'FluffyBredo' or state.JugMode.value == 'Venomous Broth' then
  1005. if spell.english == 'Call Beast' then
  1006. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  1007. return
  1008. end
  1009. equip(sets.precast.JA['Bestial Loyalty'].FluffyBredo)
  1010. elseif state.JugMode.value == 'SuspiciousAlice' or state.JugMode.value == 'Furious Broth' then
  1011. equip(sets.precast.JA['Bestial Loyalty'].SuspiciousAlice)
  1012. elseif state.JugMode.value == 'AnklebiterJedd' or state.JugMode.value == 'Crackling Broth' then
  1013. equip(sets.precast.JA['Bestial Loyalty'].AnklebiterJedd)
  1014. elseif state.JugMode.value == 'FleetReinhard' or state.JugMode.value == 'Rapid Broth' then
  1015. equip(sets.precast.JA['Bestial Loyalty'].FleetReinhard)
  1016. elseif state.JugMode.value == 'CursedAnnabelle' or state.JugMode.value == 'Creepy Broth' then
  1017. equip(sets.precast.JA['Bestial Loyalty'].CursedAnnabelle)
  1018. elseif state.JugMode.value == 'SurgingStorm' or state.JugMode.value == 'Insipid Broth' then
  1019. equip(sets.precast.JA['Bestial Loyalty'].SurgingStorm)
  1020. elseif state.JugMode.value == 'SubmergedIyo' or state.JugMode.value == 'Deepwater Broth' then
  1021. if spell.english == 'Call Beast' then
  1022. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  1023. return
  1024. end
  1025. equip(sets.precast.JA['Bestial Loyalty'].SubmergedIyo)
  1026. elseif state.JugMode.value == 'MosquitoFamiliar' or state.JugMode.value == 'Wetlands Broth' then
  1027. equip(sets.precast.JA['Bestial Loyalty'].MosquitoFamiliar)
  1028. elseif state.JugMode.value == 'Left-HandedYoko' or state.JugMode.value == 'Heavenly Broth' then
  1029. if spell.english == 'Call Beast' then
  1030. add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  1031. return
  1032. end
  1033. equip(sets.precast.JA['Bestial Loyalty'].LeftHandedYoko)
  1034. end
  1035. end
  1036.  
  1037. -- Define class for Sic and Ready moves.
  1038. if spell.type == "Monster" then
  1039. classes.CustomClass = "WS"
  1040. if state.PetMode.Value == 'PetOnly' and not buffactive['Unleash']then
  1041. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1042. equip(sets.midcast.Pet.ReadyRecastDWNE)
  1043. else
  1044. equip(sets.midcast.Pet.ReadyRecastNE)
  1045. end
  1046. else
  1047. equip(sets.midcast.Pet.ReadyRecast)
  1048. end
  1049. end
  1050. end
  1051.  
  1052. function job_post_precast(spell, action, spellMap, eventArgs)
  1053. -- If Killer Instinct is active during WS, equip Nukumi Gausape.
  1054. if spell.type:lower() == 'weaponskill' and buffactive['Killer Instinct'] then
  1055. equip(sets.buff['Killer Instinct'])
  1056. end
  1057.  
  1058. if world.time >= 17*60 or world.time < 7*60 then
  1059. if spell.english == "Ruinator" or spell.english == "Rampage" or spell.english == "Calamity" then
  1060. equip(sets.midcast.NightEarrings)
  1061. end
  1062. end
  1063.  
  1064. if spell.english == "Primal Rend" and player.tp > 2750 then
  1065. equip(sets.midcast.ExtraMAB)
  1066. end
  1067.  
  1068. -- Equip Chaac Belt for TH+1 on common Subjob Abilities or Spells.
  1069. if abilities_to_check:contains(spell.english) and state.TreasureMode.value == 'Tag' then
  1070. equip(sets.THBelt)
  1071. end
  1072. end
  1073.  
  1074. function job_midcast(spell, action, spellMap, eventArgs)
  1075. if state.PetMode.value == 'PetOnly' then
  1076. if spell.english == "Cure" or spell.english == "Cure II" or spell.english == "Cure III" or spell.english == "Cure IV" then
  1077. equip(sets.CurePetOnly)
  1078. end
  1079. if spell.english == "Curaga" or spell.english == "Curaga II" or spell.english == "Curaga III" then
  1080. equip(sets.CurePetOnly)
  1081. end
  1082. end
  1083. end
  1084.  
  1085. function job_pet_midcast(spell, action, spellMap, eventArgs)
  1086. if physical_ready_moves:contains(spell.name) then
  1087. if state.PetMode.value == 'PetOnly' then
  1088. if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  1089. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1090. equip(sets.midcast.Pet.ReadyDWNE.HighAcc, sets.midcast.Pet[state.CorrelationMode.value])
  1091. else
  1092. equip(sets.midcast.Pet.ReadyNE.HighAcc, sets.midcast.Pet[state.CorrelationMode.value])
  1093. end
  1094. elseif state.OffenseMode.value == 'MedAcc' or state.OffenseMode.value == 'MedAccHaste' then
  1095. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1096. equip(sets.midcast.Pet.ReadyDWNE.MedAcc, sets.midcast.Pet[state.CorrelationMode.value])
  1097. else
  1098. equip(sets.midcast.Pet.ReadyNE.MedAcc, sets.midcast.Pet[state.CorrelationMode.value])
  1099. end
  1100. else
  1101. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1102. equip(set_combine(sets.midcast.Pet.ReadyDWNE, sets.midcast.Pet[state.CorrelationMode.value]))
  1103. else
  1104. equip(set_combine(sets.midcast.Pet.ReadyNE, sets.midcast.Pet[state.CorrelationMode.value]))
  1105. end
  1106. end
  1107. else
  1108. if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  1109. equip(sets.midcast.Pet.HighAcc, sets.midcast.Pet[state.CorrelationMode.value])
  1110. elseif state.OffenseMode.value == 'MedAcc' or state.OffenseMode.value == 'MedAccHaste' then
  1111. equip(sets.midcast.Pet.MedAcc, sets.midcast.Pet[state.CorrelationMode.value])
  1112. else
  1113. equip(set_combine(sets.midcast.Pet.WS, sets.midcast.Pet[state.CorrelationMode.value]))
  1114. end
  1115. end
  1116. end
  1117.  
  1118. if magic_atk_ready_moves:contains(spell.name) then
  1119. if state.PetMode.value == 'PetOnly' then
  1120. if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  1121. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1122. equip(sets.midcast.Pet.MagicAtkReadyDWNE.HighAcc)
  1123. else
  1124. equip(sets.midcast.Pet.MagicAtkReadyNE.HighAcc)
  1125. end
  1126. elseif state.OffenseMode.value == 'MedAcc' or state.OffenseMode.value == 'MedAccHaste' then
  1127. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1128. equip(sets.midcast.Pet.MagicAtkReadyDWNE.MedAcc)
  1129. else
  1130. equip(sets.midcast.Pet.MagicAtkReadyNE.MedAcc)
  1131. end
  1132. else
  1133. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1134. equip(sets.midcast.Pet.MagicAtkReadyDWNE)
  1135. else
  1136. equip(sets.midcast.Pet.MagicAtkReadyNE)
  1137. end
  1138. end
  1139. else
  1140. equip(sets.midcast.Pet.MagicAtkReady)
  1141. end
  1142. end
  1143.  
  1144. if magic_acc_ready_moves:contains(spell.name) then
  1145. if state.PetMode.value == 'PetOnly' then
  1146. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1147. equip(sets.midcast.Pet.MagicAccReadyDWNE)
  1148. else
  1149. equip(sets.midcast.Pet.MagicAccReadyNE)
  1150. end
  1151. else
  1152. equip(sets.midcast.Pet.MagicAccReady)
  1153. end
  1154. end
  1155.  
  1156. -- If Pet TP, before bonuses, is less than a certain value then equip Nukumi Manoplas +1
  1157. -- if physical_ready_moves:contains(spell.name) and state.OffenseMode.value ~= 'HighAcc' then
  1158. -- if tp_based_ready_moves:contains(spell.name) and PetJob == 'Warrior' and pet.tp < 190 then
  1159. equip(sets.midcast.Pet.TPBonus)
  1160. -- elseif tp_based_ready_moves:contains(spell.name) and PetJob ~= 'Warrior' and pet.tp < 240 then
  1161. -- equip(sets.midcast.Pet.TPBonus)
  1162. -- end
  1163. -- end
  1164. end
  1165.  
  1166. function job_pet_aftercast(spell, action, spellMap, eventArgs)
  1167. if pet_buff_moves:contains(spell.name) and DisplayPetBuffTimers == 'true' then
  1168. -- Pet TP calculations for Ready Buff Durations
  1169. local TP_Amount = 1000
  1170. if pet.tp * 10 < 1000 then TP_Amount = TP_Amount + TP_Gift_Bonus;end
  1171. if pet.tp * 10 > 1000 then TP_Amount = (pet.tp * 10) + TP_Gift_Bonus;end
  1172. if player.equipment.hands == "Ferine Manoplas +1" then TP_Amount = TP_Amount + 250;end
  1173. if player.equipment.hands == "Ferine Manoplas +2" then TP_Amount = TP_Amount + 500;end
  1174. if player.equipment.hands == "Nukumi Manoplas" then TP_Amount = TP_Amount + 550;end
  1175. if player.equipment.hands == "Nukumi Manoplas +1" then TP_Amount = TP_Amount + 600;end
  1176. if player.equipment.main == "Kumbhakarna" or player.equipment.sub == "Kumbhakarna" then TP_Amount = TP_Amount + 500;end
  1177. if player.equipment.main == "Kumbhakarna" then TP_Amount = TP_Amount + TP_Bonus_Main;end
  1178. if player.equipment.sub == "Kumbhakarna" then TP_Amount = TP_Amount + TP_Bonus_Sub;end
  1179. if TP_Amount > 3000 then TP_Amount = 3000;end
  1180.  
  1181. -- add_to_chat(28, pet.name..' Ready Midcast TP: '..TP_Amount..'')
  1182.  
  1183. if spell.english == 'Bubble Curtain' then
  1184. local TP_Buff_Duration = math.floor((TP_Amount - 1000)* 0.09) + BubbleCurtainDuration
  1185. send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..BubbleCurtainIcon..'')
  1186. elseif spell.english == 'Scissor Guard' then
  1187. local TP_Buff_Duration = math.floor(TP_Amount * 0.06)
  1188. send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..ScissorGuardIcon..'')
  1189. elseif spell.english == 'Secretion' then
  1190. TP_Amount = TP_Amount + 500
  1191. if TP_Amount > 3000 then TP_Amount = 3000;end
  1192. local TP_Buff_Duration = math.floor(TP_Amount * 0.18)
  1193. send_command('timers c "Secretion" '..TP_Buff_Duration..' down '..SecretionIcon..'')
  1194. elseif spell.english == 'Rage' then
  1195. TP_Amount = TP_Amount + 500
  1196. if TP_Amount > 3000 then TP_Amount = 3000;end
  1197. local TP_Buff_Duration = math.floor(TP_Amount * 0.18)
  1198. send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..RageIcon..'')
  1199. elseif spell.english == 'Rhino Guard' then
  1200. local TP_Buff_Duration = math.floor(TP_Amount * 0.18)
  1201. send_command('timers c "Rhino Guard" '..TP_Buff_Duration..' down '..RhinoGuardIcon..'')
  1202. elseif spell.english == 'Zealous Snort' then
  1203. local TP_Buff_Duration = math.floor(TP_Amount * 0.06)
  1204. send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..ZealousSnortIcon..'')
  1205. end
  1206. end
  1207.  
  1208. if state.PetMode.value == 'PetOnly' then
  1209. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1210. equip(sets.DTAxes)
  1211. else
  1212. equip(sets.DTAxeShield)
  1213. end
  1214. end
  1215. end
  1216.  
  1217. -- Return true if we handled the aftercast work. Otherwise it will fall back
  1218. -- to the general aftercast() code in Mote-Include.
  1219. function job_aftercast(spell, action, spellMap, eventArgs)
  1220. -- Create custom timers for Pet Buffs.
  1221. if pet_buff_moves:contains(spell.name) and DisplayPetBuffTimers == 'true' then
  1222. if not spell.interrupted then
  1223. pet_buff_timer(spell)
  1224. end
  1225. end
  1226.  
  1227. if spell.english == "Leave" then
  1228. clear_pet_buff_timers()
  1229. end
  1230.  
  1231. if player.equipment.main == 'Kumbhakarna' then
  1232. custom_aftermath_timers_aftercast(spell)
  1233. end
  1234.  
  1235. if world.time >= 360 and world.time < 1080 then
  1236. if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  1237. if player.status == 'Engaged' then
  1238. equip(sets.DaytimeAmmo)
  1239. end
  1240. end
  1241. end
  1242.  
  1243. if state.PetMode.value == 'PetOnly' then
  1244. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1245. equip(sets.DTAxes)
  1246. else
  1247. equip(sets.DTAxeShield)
  1248. end
  1249. end
  1250. end
  1251.  
  1252. -------------------------------------------------------------------------------------------------------------------
  1253. -- Customization hook for idle sets.
  1254. -------------------------------------------------------------------------------------------------------------------
  1255.  
  1256. function customize_idle_set(idleSet)
  1257. if player.hpp < 50 and pet.status ~= 'Engaged' then
  1258. idleSet = set_combine(idleSet, sets.ExtraRegen)
  1259. end
  1260. return idleSet
  1261. end
  1262.  
  1263. -------------------------------------------------------------------------------------------------------------------
  1264. -- Hooks for Reward, Correlation, Treasure Hunter, and Pet Mode handling.
  1265. -------------------------------------------------------------------------------------------------------------------
  1266.  
  1267. function job_state_change(stateField, newValue, oldValue)
  1268. if stateField == 'Correlation Mode' then
  1269. state.CorrelationMode:set(newValue)
  1270. elseif stateField == 'Reward Mode' then
  1271. state.RewardMode:set(newValue)
  1272. elseif stateField == 'Treasure Mode' then
  1273. state.TreasureMode:set(newValue)
  1274. elseif stateField == 'Pet Mode' then
  1275. state.CombatWeapon:set(newValue)
  1276. end
  1277.  
  1278. if world.time >= 360 and world.time < 1080 then
  1279. if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  1280. if player.status == 'Engaged' then
  1281. equip(sets.DaytimeAmmo)
  1282. end
  1283. end
  1284. end
  1285. end
  1286.  
  1287. function get_custom_wsmode(spell, spellMap, default_wsmode)
  1288. if default_wsmode == 'Normal' then
  1289. if spell.english == "Ruinator" and (world.day_element == 'Water' or world.day_element == 'Wind' or world.day_element == 'Ice') then
  1290. return 'Gavialis'
  1291. end
  1292. end
  1293. end
  1294.  
  1295. -------------------------------------------------------------------------------------------------------------------
  1296. -- User code that supplements self-commands.
  1297. -------------------------------------------------------------------------------------------------------------------
  1298.  
  1299. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  1300. function job_handle_equipping_gear(playerStatus, eventArgs)
  1301. if player.equipment.back == 'Mecisto. Mantle' or player.equipment.back == 'Aptitude Mantle' or player.equipment.back == 'Aptitude Mantle +1' or player.equipment.back == 'Nexus Cape' then
  1302. disable('back')
  1303. else
  1304. enable('back')
  1305. end
  1306. if player.equipment.ring1 == 'Warp Ring' or player.equipment.ring1 == 'Vocation Ring' or player.equipment.ring1 == 'Capacity Ring' then
  1307. disable('ring1')
  1308. else
  1309. enable('ring1')
  1310. end
  1311. if player.equipment.ring2 == 'Warp Ring' or player.equipment.ring2 == 'Vocation Ring' or player.equipment.ring2 == 'Capacity Ring' then
  1312. disable('ring2')
  1313. else
  1314. enable('ring2')
  1315. end
  1316. end
  1317.  
  1318. -- Called by the 'update' self-command, for common needs.
  1319. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  1320. function job_update(cmdParams, eventArgs)
  1321. get_combat_form()
  1322. get_melee_groups()
  1323.  
  1324. if state.JugMode.value == 'FunguarFamiliar' or state.JugMode.value == 'Seedbed Soil' then
  1325. PetName = "FunguarFamiliar";JugInfo = "Seedbed Soil";PetInfo = "Funguar, Plantoid";PetJob = 'Warrior'
  1326. ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  1327. elseif state.JugMode.value == 'CourierCarrie' or state.JugMode.value == 'Fish Oil Broth' then
  1328. PetName = "CourierCarrie";JugInfo = "Fish Oil Broth";PetInfo = "Crab, Aquan";PetJob = 'Paladin'
  1329. ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  1330. elseif state.JugMode.value == 'AmigoSabotender' or state.JugMode.value == 'Sun Water' then
  1331. PetName = "AmigoSabotender";JugInfo = "Sun Water";PetInfo = "Cactuar, Plantoid";PetJob = 'Warrior'
  1332. ReadyMoveOne = 'Needle Shot';ReadyMoveTwo = '??? Needles';ReadyMoveThree = '??? Needles'
  1333. elseif state.JugMode.value == 'NurseryNazuna' or state.JugMode.value == 'Dancing Herbal Broth' or state.JugMode.value == 'D. Herbal Broth' then
  1334. PetName = "NurseryNazuna";JugInfo = "Dancing Herbal Broth";PetInfo = "Sheep, Beast";PetJob = 'Warrior'
  1335. ReadyMoveOne = 'Lamb Chop';ReadyMoveTwo = 'Rage';ReadyMoveThree = 'Sheep Song'
  1336. elseif state.JugMode.value == 'CraftyClyvonne' or state.JugMode.value == 'Cunning Brain Broth' or state.JugMode.value == 'Cng. Brain Broth' then
  1337. PetName = "CraftyClyvonne";JugInfo = "Cunning Brain Broth";PetInfo = "Coeurl, Beast";PetJob = 'Warrior'
  1338. ReadyMoveOne = 'Blaster';ReadyMoveTwo = 'Chaotic Eye';ReadyMoveThree = 'None'
  1339. elseif state.JugMode.value == 'PrestoJulio' or state.JugMode.value == 'Chirping Grasshopper Broth' or state.JugMode.value == 'C. Grass Broth' then
  1340. PetName = "PrestoJulio";JugInfo = "Chirping Grasshopper Broth";PetInfo = "Flytrap, Plantoid";PetJob = 'Warrior'
  1341. ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  1342. elseif state.JugMode.value == 'SwiftSieghard' or state.JugMode.value == 'Mellow Bird Broth' or state.JugMode.value == 'Mlw. Bird Broth' then
  1343. PetName = "SwiftSieghard";JugInfo = "Mellow Bird Broth";PetInfo = "Raptor, Lizard";PetJob = 'Warrior'
  1344. ReadyMoveOne = 'Scythe Tail';ReadyMoveTwo = 'Ripper Fang';ReadyMoveThree = 'Chomp Rush'
  1345. elseif state.JugMode.value == 'MailbusterCetas' or state.JugMode.value == 'Goblin Bug Broth' or state.JugMode.value == 'Gob. Bug Broth' then
  1346. PetName = "MailbusterCetas";JugInfo = "Goblin Bug Broth";PetInfo = "Fly, Vermin";PetJob = 'Warrior'
  1347. ReadyMoveOne = 'Somersault';ReadyMoveTwo = 'Cursed Sphere';ReadyMoveThree = 'Venom'
  1348. elseif state.JugMode.value == 'AudaciousAnna' or state.JugMode.value == 'Bubbling Carrion Broth' then
  1349. PetName = "AudaciousAnna";JugInfo = "Bubbling Carrion Broth";PetInfo = "Lizard, Lizard";PetJob = 'Warrior'
  1350. ReadyMoveOne = 'Tail Blow';ReadyMoveTwo = 'Brain Crush';ReadyMoveThree = 'Fireball'
  1351. elseif state.JugMode.value == 'TurbidToloi' or state.JugMode.value == 'Auroral Broth' then
  1352. PetName = "TurbidToloi";JugInfo = "Auroral Broth";PetInfo = "Pugil, Aquan";PetJob = 'Warrior'
  1353. ReadyMoveOne = 'Recoil Dive';ReadyMoveTwo = 'Water Wall';ReadyMoveThree = 'Intimidate'
  1354. elseif state.JugMode.value == 'SlipperySilas' or state.JugMode.value == 'Wormy Broth' then
  1355. PetName = "SlipperySilas";JugInfo = "Wormy Broth";PetInfo = "Toad, Aquan";PetJob = 'Warrior'
  1356. ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None'
  1357. elseif state.JugMode.value == 'LuckyLulush' or state.JugMode.value == 'Lucky Carrot Broth' or state.JugMode.value == 'L. Carrot Broth' then
  1358. PetName = "LuckyLulush";JugInfo = "Lucky Carrot Broth";PetInfo = "Rabbit, Beast";PetJob = 'Warrior'
  1359. ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot'
  1360. elseif state.JugMode.value == 'DipperYuly' or state.JugMode.value == 'Wool Grease' then
  1361. PetName = "DipperYuly";JugInfo = "Wool Grease";PetInfo = "Ladybug, Vermin";PetJob = 'Thief'
  1362. ReadyMoveOne = 'Spiral Spin';ReadyMoveTwo = 'Sudden Lunge';ReadyMoveThree = 'Noisome Powder'
  1363. elseif state.JugMode.value == 'FlowerpotMerle' or state.JugMode.value == 'Vermihumus' then
  1364. PetName = "FlowerpotMerle";JugInfo = "Vermihumus";PetInfo = "Mandragora, Plantoid";PetJob = 'Monk'
  1365. ReadyMoveOne = 'Head Butt';ReadyMoveTwo = 'Leaf Dagger';ReadyMoveThree = 'Wild Oats'
  1366. elseif state.JugMode.value == 'DapperMac' or state.JugMode.value == 'Briny Broth' then
  1367. PetName = "DapperMac";JugInfo = "Briny Broth";PetInfo = "Apkallu, Bird";PetJob = 'Monk'
  1368. ReadyMoveOne = 'Beak Lunge';ReadyMoveTwo = 'Wing Slap';ReadyMoveThree = 'None'
  1369. elseif state.JugMode.value == 'DiscreetLouise' or state.JugMode.value == 'Deepbed Soil' then
  1370. PetName = "DiscreetLouise";JugInfo = "Deepbed Soil";PetInfo = "Funguar, Plantoid";PetJob = 'Warrior'
  1371. ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  1372. elseif state.JugMode.value == 'FatsoFargann' or state.JugMode.value == 'Curdled Plasma Broth' or state.JugMode.value == 'C. Plasma Broth' then
  1373. PetName = "FatsoFargann";JugInfo = "Curdled Plasma Broth";PetInfo = "Leech, Amorph";PetJob = 'Warrior'
  1374. ReadyMoveOne = 'Suction';ReadyMoveTwo = 'Acid Mist';ReadyMoveThree = 'Drain Kiss'
  1375. elseif state.JugMode.value == 'FaithfulFalcorr' or state.JugMode.value == 'Lucky Broth' then
  1376. PetName = "FaithfulFalcorr";JugInfo = "Lucky Broth";PetInfo = "Hippogryph, Bird";PetJob = 'Thief'
  1377. ReadyMoveOne = 'Back Heel';ReadyMoveTwo = 'Choke Breath';ReadyMoveThree = 'Fantod'
  1378. elseif state.JugMode.value == 'BugeyedBroncha' or state.JugMode.value == 'Savage Mole Broth' or state.JugMode.value == 'Svg. Mole Broth' then
  1379. PetName = "BugeyedBroncha";JugInfo = "Savage Mole Broth";PetInfo = "Eft, Lizard";PetJob = 'Warrior'
  1380. ReadyMoveOne = 'Nimble Snap';ReadyMoveTwo = 'Cyclotail';ReadyMoveThree = 'Geist Wall'
  1381. elseif state.JugMode.value == 'BloodclawShasra' or state.JugMode.value == 'Razor Brain Broth' or state.JugMode.value == 'Rzr. Brain Broth' then
  1382. PetName = "BloodclawShasra";JugInfo = "Razor Brain Broth";PetInfo = "Lynx, Beast";PetJob = 'Warrior'
  1383. ReadyMoveOne = 'Blaster';ReadyMoveTwo = 'Chaotic Eye';ReadyMoveThree = 'Charged Whisker'
  1384. elseif state.JugMode.value == 'GorefangHobs' or state.JugMode.value == 'Burning Carrion Broth' then
  1385. PetName = "GorefangHobs";JugInfo = "Burning Carrion Broth";PetInfo = "Tiger, Beast";PetJob = 'Warrior'
  1386. ReadyMoveOne = 'Razor Fang';ReadyMoveTwo = 'Claw Cyclone';ReadyMoveThree = 'Roar'
  1387. elseif state.JugMode.value == 'GooeyGerard' or state.JugMode.value == 'Cloudy Wheat Broth' then
  1388. PetName = "GooeyGerard";JugInfo = "Cloudy Wheat Broth";PetInfo = "Slug, Amorph";PetJob = 'Warrior'
  1389. ReadyMoveOne = 'Purulent Ooze';ReadyMoveTwo = 'Corrosive Ooze';ReadyMoveThree = 'Corrosive Ooze'
  1390. elseif state.JugMode.value == 'CrudeRaphie' or state.JugMode.value == 'Shadowy Broth' then
  1391. PetName = "CrudeRaphie";JugInfo = "Shadowy Broth";PetInfo = "Adamantoise, Lizard";PetJob = 'Paladin'
  1392. ReadyMoveOne = 'Tortoise Stomp';ReadyMoveTwo = 'Harden Shell';ReadyMoveThree = 'Aqua Breath'
  1393. elseif state.JugMode.value == 'DroopyDortwin' or state.JugMode.value == 'SwirlingBroth' then
  1394. PetName = "DroopyDortwin";JugInfo = "Swirling Broth";PetInfo = "Rabbit, Beast";PetJob = 'Warrior'
  1395. ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot'
  1396. elseif state.JugMode.value == 'PonderingPeter' or state.JugMode.value == 'Viscous Broth' or state.JugMode.value == 'Vis. Broth' then
  1397. PetName = "PonderingPeter";JugInfo = "Vis. Broth";PetInfo = "HQ Rabbit, Beast";PetJob = 'Warrior'
  1398. ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot'
  1399. elseif state.JugMode.value == 'SunburstMalfik' or state.JugMode.value == 'Shimmering Broth' then
  1400. PetName = "SunburstMalfik";JugInfo = "Shimmering Broth";PetInfo = "Crab, Aquan";PetJob = 'Paladin'
  1401. ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  1402. elseif state.JugMode.value == 'AgedAngus' or state.JugMode.value == 'Fermented Broth' or state.JugMode.value == 'Ferm. Broth' then
  1403. PetName = "AgedAngus";JugInfo = "Ferm. Broth";PetInfo = "HQ Crab, Aquan";PetJob = 'Paladin'
  1404. ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  1405. elseif state.JugMode.value == 'WarlikePatrick' or state.JugMode.value == 'Livid Broth' then
  1406. PetName = "WarlikePatrick";JugInfo = "Livid Broth";PetInfo = "Lizard, Lizard";PetJob = 'Warrior'
  1407. ReadyMoveOne = 'Tail Blow';ReadyMoveTwo = 'Brain Crush';ReadyMoveThree = 'Fireball'
  1408. elseif state.JugMode.value == 'ScissorlegXerin' or state.JugMode.value == 'Spicy Broth' then
  1409. PetName = "ScissorlegXerin";JugInfo = "Spicy Broth";PetInfo = "Chapuli, Vermin";PetJob = 'Warrior'
  1410. ReadyMoveOne = 'Sensilla Blades';ReadyMoveTwo = 'Tegmina Buffet';ReadyMoveThree = 'Tegmina Buffet'
  1411. elseif state.JugMode.value == 'BouncingBertha' or state.JugMode.value == 'Bubbly Broth' then
  1412. PetName = "BouncingBertha";JugInfo = "Bubbly Broth";PetInfo = "HQ Chapuli, Vermin";PetJob = 'Warrior'
  1413. ReadyMoveOne = 'Sensilla Blades';ReadyMoveTwo = 'Tegmina Buffet';ReadyMoveThree = 'Tegmina Buffet'
  1414. elseif state.JugMode.value == 'RhymingShizuna' or state.JugMode.value == 'Lyrical Broth' then
  1415. PetName = "RhymingShizuna";JugInfo = "Lyrical Broth";PetInfo = "Sheep, Beast";PetJob = 'Warrior'
  1416. ReadyMoveOne = 'Lamb Chop';ReadyMoveTwo = 'Rage';ReadyMoveThree = 'Sheep Song'
  1417. elseif state.JugMode.value == 'AttentiveIbuki' or state.JugMode.value == 'Salubrious Broth' then
  1418. PetName = "AttentiveIbuki";JugInfo = "Salubrious Broth";PetInfo = "Tulfaire, Bird";PetJob = 'Warrior'
  1419. ReadyMoveOne = 'Swooping Frenzy';ReadyMoveTwo = 'Pentapeck';ReadyMoveThree = 'Molting Plumage'
  1420. elseif state.JugMode.value == 'SwoopingZhivago' or state.JugMode.value == 'Windy Greens' then
  1421. PetName = "SwoopingZhivago";JugInfo = "Windy Greens";PetInfo = "HQ Tulfaire, Bird";PetJob = 'Warrior'
  1422. ReadyMoveOne = 'Swooping Frenzy';ReadyMoveTwo = 'Pentapeck';ReadyMoveThree = 'Molting Plumage'
  1423. elseif state.JugMode.value == 'AmiableRoche' or state.JugMode.value == 'Airy Broth' then
  1424. PetName = "AmiableRoche";JugInfo = "Airy Broth";PetInfo = "Pugil, Aquan";PetJob = 'Warrior'
  1425. ReadyMoveOne = 'Recoil Dive';ReadyMoveTwo = 'Water Wall';ReadyMoveThree = 'Intimidate'
  1426. elseif state.JugMode.value == 'HeraldHenry' or state.JugMode.value == 'Translucent Broth' or state.JugMode.value == 'Trans. Broth' then
  1427. PetName = "HeraldHenry";JugInfo = "Trans. Broth";PetInfo = "Crab, Aquan";PetJob = 'Paladin'
  1428. ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  1429. elseif state.JugMode.value == 'BrainyWaluis' or state.JugMode.value == 'CrumblySoil' then
  1430. PetName = "BrainyWaluis";JugInfo = "Crumbly Soil";PetInfo = "Funguar, Plantoid";PetJob = 'Warrior'
  1431. ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  1432. elseif state.JugMode.value == 'HeadbreakerKen' or state.JugMode.value == 'Blackwater Broth' then
  1433. PetName = "HeadbreakerKen";JugInfo = "Blackwater Broth";PetInfo = "Fly, Vermin";PetJob = 'Warrior'
  1434. ReadyMoveOne = 'Somersault';ReadyMoveTwo = 'Cursed Sphere';ReadyMoveThree = 'Venom'
  1435. elseif state.JugMode.value == 'RedolentCandi' or state.JugMode.value == 'Electrified Broth' then
  1436. PetName = "RedolentCandi";JugInfo = "Electrified Broth";PetInfo = "Snapweed, Plantoid";PetJob = 'Warrior'
  1437. ReadyMoveOne = 'Tickling Tendrils';ReadyMoveTwo = 'Stink Bomb';ReadyMoveThree = 'Nepenthic Plunge'
  1438. elseif state.JugMode.value == 'AlluringHoney' or state.JugMode.value == 'Bug-Ridden Broth' then
  1439. PetName = "AlluringHoney";JugInfo = "Bug-Ridden Broth";PetInfo = "HQ Snapweed, Plantoid";PetJob = 'Warrior'
  1440. ReadyMoveOne = 'Tickling Tendrils';ReadyMoveTwo = 'Stink Bomb';ReadyMoveThree = 'Nectarous Deluge'
  1441. elseif state.JugMode.value == 'CaringKiyomaro' or state.JugMode.value == 'Fizzy Broth' then
  1442. PetName = "CaringKiyomaro";JugInfo = "Fizzy Broth";PetInfo = "Raaz, Beast";PetJob = 'Monk'
  1443. ReadyMoveOne = 'Sweeping Gouge';ReadyMoveTwo = 'Zealous Snort';ReadyMoveThree = 'Zealous Snort'
  1444. elseif state.JugMode.value == 'VivaciousVickie' or state.JugMode.value == 'Tantalizing Broth' or state.JugMode.value == 'Tant. Broth' then
  1445. PetName = "VivaciousVickie";JugInfo = "Tant. Broth";PetInfo = "HQ Raaz, Beast";PetJob = 'Monk'
  1446. ReadyMoveOne = 'Sweeping Gouge';ReadyMoveTwo = 'Zealous Snort';ReadyMoveThree = 'Zealous Snort'
  1447. elseif state.JugMode.value == 'HurlerPercival' or state.JugMode.value == 'Pale Sap' then
  1448. PetName = "HurlerPercival";JugInfo = "Pale Sap";PetInfo = "Beetle, Vermin";PetJob = 'Paladin'
  1449. ReadyMoveOne = 'Power Attack';ReadyMoveTwo = 'Rhino Attack';ReadyMoveThree = 'Hi-Freq Field'
  1450. elseif state.JugMode.value == 'BlackbeardRandy' or state.JugMode.value == 'Meaty Broth' then
  1451. PetName = "BlackbeardRandy";JugInfo = "Meaty Broth";PetInfo = "Tiger, Beast";PetJob = 'Warrior'
  1452. ReadyMoveOne = 'Razor Fang';ReadyMoveTwo = 'Claw Cyclone';ReadyMoveThree = 'Roar'
  1453. elseif state.JugMode.value == 'GenerousArthur' or state.JugMode.value == 'Dire Broth' then
  1454. PetName = "GenerousArthur";JugInfo = "Dire Broth";PetInfo = "Slug, Amorph";PetJob = 'Warrior'
  1455. ReadyMoveOne = 'Purulent Ooze';ReadyMoveTwo = 'Corrosive Ooze';ReadyMoveThree = 'Corrosive Ooze'
  1456. elseif state.JugMode.value == 'ThreestarLynn' or state.JugMode.value == 'Muddy Broth' then
  1457. PetName = "ThreestarLynn";JugInfo = "Muddy Broth";PetInfo = "Ladybug, Vermin";PetJob = 'Thief'
  1458. ReadyMoveOne = 'Spiral Spin';ReadyMoveTwo = 'Sudden Lunge';ReadyMoveThree = 'Noisome Powder'
  1459. elseif state.JugMode.value == 'BraveHeroGlenn' or state.JugMode.value == 'Wispy Broth' then
  1460. PetName = "BraveHeroGlenn";JugInfo = "Wispy Broth";PetInfo = "Frog, Aquan";PetJob = 'Warrior'
  1461. ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None'
  1462. elseif state.JugMode.value == 'SharpwitHermes' or state.JugMode.value == 'Saline Broth' then
  1463. PetName = "SharpwitHermes";JugInfo = "Saline Broth";PetInfo = "Mandragora, Plantoid";PetJob = 'Monk'
  1464. ReadyMoveOne = 'Head Butt';ReadyMoveTwo = 'Leaf Dagger';ReadyMoveThree = 'Wild Oats'
  1465. elseif state.JugMode.value == 'ColibriFamiliar' or state.JugMode.value == 'Sugary Broth' then
  1466. PetName = "ColibriFamiliar";JugInfo = "Sugary Broth";PetInfo = "Colibri, Bird";PetJob = 'Red Mage'
  1467. ReadyMoveOne = 'Pecking Flurry';ReadyMoveTwo = 'Pecking Flurry';ReadyMoveThree = 'Pecking Flurry'
  1468. elseif state.JugMode.value == 'ChoralLeera' or state.JugMode.value == 'Glazed Broth' then
  1469. PetName = "ChoralLeera";JugInfo = "Glazed Broth";PetInfo = "HQ Colibri, Bird";PetJob = 'Red Mage'
  1470. ReadyMoveOne = 'Pecking Flurry';ReadyMoveTwo = 'Pecking Flurry';ReadyMoveThree = 'Pecking Flurry'
  1471. elseif state.JugMode.value == 'SpiderFamiliar' or state.JugMode.value == 'Sticky Webbing' then
  1472. PetName = "SpiderFamiliar";JugInfo = "Sticky Webbing";PetInfo = "Spider, Vermin";PetJob = 'Warrior'
  1473. ReadyMoveOne = 'Sickle Slash';ReadyMoveTwo = 'Acid Spray';ReadyMoveThree = 'Spider Web'
  1474. elseif state.JugMode.value == 'GussyHachirobe' or state.JugMode.value == 'Slimy Webbing' then
  1475. PetName = "GussyHachirobe";JugInfo = "Slimy Webbing";PetInfo = "HQ Spider, Vermin";PetJob = 'Warrior'
  1476. ReadyMoveOne = 'Sickle Slash';ReadyMoveTwo = 'Acid Spray';ReadyMoveThree = 'Spider Web'
  1477. elseif state.JugMode.value == 'AcuexFamiliar' or state.JugMode.value == 'Poisonous Broth' then
  1478. PetName = "AcuexFamiliar";JugInfo = "Poisonous Broth";PetInfo = "Acuex, Amorph";PetJob = 'Black Mage'
  1479. ReadyMoveOne = 'Foul Waters';ReadyMoveTwo = 'Pestilent Plume';ReadyMoveThree = 'Pestilent Plume'
  1480. elseif state.JugMode.value == 'FluffyBredo' or state.JugMode.value == 'Venomous Broth' then
  1481. PetName = "FluffyBredo";JugInfo = "Venomous Broth";PetInfo = "HQ Acuex, Amorph";PetJob = 'Black Mage'
  1482. ReadyMoveOne = 'Foul Waters';ReadyMoveTwo = 'Pestilent Plume';ReadyMoveThree = 'Pestilent Plume'
  1483. elseif state.JugMode.value == 'SuspiciousAlice' or state.JugMode.value == 'Furious Broth' then
  1484. PetName = "SuspiciousAlice";JugInfo = "Furious Broth";PetInfo = "Eft, Lizard";PetJob = 'Warrior'
  1485. ReadyMoveOne = 'Nimble Snap';ReadyMoveTwo = 'Cyclotail';ReadyMoveThree = 'Geist Wall'
  1486. elseif state.JugMode.value == 'AnklebiterJedd' or state.JugMode.value == 'Crackling Broth' then
  1487. PetName = "AnklebiterJedd";JugInfo = "Crackling Broth";PetInfo = "Diremite, Vermin";PetJob = 'Dark Knight'
  1488. ReadyMoveOne = 'Double Claw';ReadyMoveTwo = 'Spinning Top';ReadyMoveThree = 'Filamented Hold'
  1489. elseif state.JugMode.value == 'FleetReinhard' or state.JugMode.value == 'Rapid Broth' then
  1490. PetName = "FleetReinhard";JugInfo = "Rapid Broth";PetInfo = "Raptor, Lizard";PetJob = 'Warrior'
  1491. ReadyMoveOne = 'Scythe Tail';ReadyMoveTwo = 'Ripper Fang';ReadyMoveThree = 'Chomp Rush'
  1492. elseif state.JugMode.value == 'CursedAnnabelle' or state.JugMode.value == 'Creepy Broth' then
  1493. PetName = "CursedAnnabelle";JugInfo = "Creepy Broth";PetInfo = "Antlion, Vermin";PetJob = 'Warrior'
  1494. ReadyMoveOne = 'Mandibular Bite';ReadyMoveTwo = 'Venom Spray';ReadyMoveThree = 'Sandblast'
  1495. elseif state.JugMode.value == 'SurgingStorm' or state.JugMode.value == 'Insipid Broth' then
  1496. PetName = "SurgingStorm";JugInfo = "Insipid Broth";PetInfo = "Apkallu, Bird";PetJob = 'Monk'
  1497. ReadyMoveOne = 'Beak Lunge';ReadyMoveTwo = 'Wing Slap';ReadyMoveThree = 'Wing Slap'
  1498. elseif state.JugMode.value == 'SubmergedIyo' or state.JugMode.value == 'Deepwater Broth' then
  1499. PetName = "SubmergedIyo";JugInfo = "Deepwater Broth";PetInfo = "HQ Apkallu, Bird";PetJob = 'Monk'
  1500. ReadyMoveOne = 'Beak Lunge';ReadyMoveTwo = 'Wing Slap';ReadyMoveThree = 'Wing Slap'
  1501. elseif state.JugMode.value == 'MosquitoFamiliar' or state.JugMode.value == 'Wetlands Broth' then
  1502. PetName = "MosquitoFamiliar";JugInfo = "Wetlands Broth";PetInfo = "Mosquito, Vermin";PetJob = 'Dark Knight'
  1503. ReadyMoveOne = 'Infected Leech';ReadyMoveTwo = 'Gloom Spray';ReadyMoveThree = 'Gloom Spray'
  1504. elseif state.JugMode.value == 'Left-HandedYoko' or state.JugMode.value == 'Heavenly Broth' then
  1505. PetName = "Left-HandedYoko";JugInfo = "Heavenly Broth";PetInfo = "HQ Mosquito, Vermin";PetJob = 'Dark Knight'
  1506. ReadyMoveOne = 'Infected Leech';ReadyMoveTwo = 'Gloom Spray';ReadyMoveThree = 'Gloom Spray'
  1507. end
  1508.  
  1509. update_display_mode_info()
  1510. end
  1511.  
  1512. -------------------------------------------------------------------------------------------------------------------
  1513. -- Ready Move Presets - Credit to Bomberto
  1514. -------------------------------------------------------------------------------------------------------------------
  1515.  
  1516. function job_self_command(cmdParams, eventArgs)
  1517. if cmdParams[1]:lower() == 'ready' then
  1518. ready_move(cmdParams)
  1519. eventArgs.handled = true
  1520. end
  1521. end
  1522.  
  1523. function ready_move(cmdParams)
  1524. local move = cmdParams[2]:lower()
  1525.  
  1526. if pet.name == 'DroopyDortwin' or pet.name == 'PonderingPeter' or pet.name == 'HareFamiliar' or pet.name == 'KeenearedSteffi' or pet.name == 'LuckyLulush' then
  1527. if move == 'one' then
  1528. send_command('input /pet "Foot Kick" <me>')
  1529. elseif move == 'two' then
  1530. send_command('input /pet "Whirl Claws" <me>')
  1531. elseif move == 'three' then
  1532. send_command('input /pet "Wild Carrot" <me>') end
  1533. elseif pet.name == 'SunburstMalfik' or pet.name == 'AgedAngus' or pet.name == 'HeraldHenry' or pet.name == 'CrabFamiliar' or pet.name == 'CourierCarrie' then
  1534. if move == 'one' then
  1535. send_command('input /pet "Big Scissors" <me>')
  1536. elseif move == 'two' then
  1537. send_command('input /pet "Scissor Guard" <me>')
  1538. elseif move == 'three' then
  1539. send_command('input /pet "Bubble Curtain" <me>') end
  1540. elseif pet.name == 'WarlikePatrick' or pet.name == 'LizardFamiliar' or pet.name == 'ColdbloodedComo' or pet.name == 'AudaciousAnna' then
  1541. if move == 'one' then
  1542. send_command('input /pet "Tail Blow" <me>')
  1543. elseif move == 'two' then
  1544. send_command('input /pet "Brain Crush" <me>')
  1545. elseif move == 'three' then
  1546. send_command('input /pet "Fireball" <me>') end
  1547. elseif pet.name == 'ScissorlegXerin' or pet.name == 'BouncingBertha' then
  1548. if move == 'one' then
  1549. send_command('input /pet "Sensilla Blades" <me>')
  1550. elseif move == 'two' or move == 'three' then
  1551. send_command('input /pet "Tegmina Buffet" <me>') end
  1552. elseif pet.name == 'RhymingShizuna' or pet.name == 'SheepFamiliar' or pet.name == 'LullabyMelodia' or pet.name == 'NurseryNazuna' then
  1553. if move == 'one' then
  1554. send_command('input /pet "Lamb Chop" <me>')
  1555. elseif move == 'two' then
  1556. send_command('input /pet "Rage" <me>')
  1557. elseif move == 'three' then
  1558. send_command('input /pet "Sheep Song" <me>') end
  1559. elseif pet.name == 'AttentiveIbuki' or pet.name == 'SwoopingZhivago' then
  1560. if move == 'one' then
  1561. send_command('input /pet "Swooping Frenzy" <me>')
  1562. elseif move == 'two' then
  1563. send_command('input /pet "Pentapeck" <me>')
  1564. elseif move == 'three' then
  1565. send_command('input /pet "Molting Plumage" <me>') end
  1566. elseif pet.name == 'AmiableRoche' or pet.name == 'TurbidToloi' then
  1567. if move == 'one' then
  1568. send_command('input /pet "Recoil Dive" <me>')
  1569. elseif move == 'two' then
  1570. send_command('input /pet "Water Wall" <me>')
  1571. elseif move == 'three' then
  1572. send_command('input /pet "Intimidate" <me>') end
  1573. elseif pet.name == 'BrainyWaluis' or pet.name == 'FunguarFamiliar' or pet.name == 'DiscreetLouise' then
  1574. if move == 'one' then
  1575. send_command('input /pet "Frogkick" <me>')
  1576. elseif move == 'two' then
  1577. send_command('input /pet "Spore" <me>')
  1578. elseif move == 'three' then
  1579. send_command('input /pet "Silence Gas" <me>') end
  1580. elseif pet.name == 'HeadbreakerKen' or pet.name == 'MayflyFamiliar' or pet.name == 'ShellbusterOrob' or pet.name == 'MailbusterCetas' then
  1581. if move == 'one' then
  1582. send_command('input /pet "Somersault" <me>')
  1583. elseif move == 'two' then
  1584. send_command('input /pet "Cursed Sphere" <me>')
  1585. elseif move == 'three' then
  1586. send_command('input /pet "Venom" <me>') end
  1587. elseif pet.name == 'RedolentCandi' or pet.name == 'AlluringHoney' then
  1588. if move == 'one' then
  1589. send_command('input /pet "Tickling Tendrils" <me>')
  1590. elseif move == 'two' then
  1591. send_command('input /pet "Stink Bomb" <me>')
  1592. elseif move == 'three' then
  1593. send_command('input /pet "Nectarous Deluge" <me>') end
  1594. elseif pet.name == 'CaringKiyomaro' or pet.name == 'VivaciousVickie' then
  1595. if move == 'one' then
  1596. send_command('input /pet "Sweeping Gouge" <me>')
  1597. elseif move == 'two' or move == 'three' then
  1598. send_command('input /pet "Zealous Snort" <me>') end
  1599. elseif pet.name == 'HurlerPercival' or pet.name == 'BeetleFamiliar' or pet.name == 'PanzerGalahad' then
  1600. if move == 'one' then
  1601. send_command('input /pet "Power Attack" <me>')
  1602. elseif move == 'two' then
  1603. send_command('input /pet "Rhino Attack" <me>')
  1604. elseif move == 'three' then
  1605. send_command('input /pet "Hi-Freq Field" <me>') end
  1606. elseif pet.name == 'BlackbeardRandy' or pet.name == 'TigerFamiliar' or pet.name == 'SaberSiravarde' or pet.name == 'GorefangHobs' then
  1607. if move == 'one' then
  1608. send_command('input /pet "Razor Fang" <me>')
  1609. elseif move == 'two' then
  1610. send_command('input /pet "Claw Cyclone" <me>')
  1611. elseif move == 'three' then
  1612. send_command('input /pet "Roar" <me>') end
  1613. elseif pet.name == 'ColibriFamiliar' or pet.name == 'ChoralLeera' then
  1614. if move == 'one' or move == 'two' or move == 'three' then
  1615. send_command('input /pet "Pecking Flurry" <me>') end
  1616. elseif pet.name == 'SpiderFamiliar' or pet.name == 'GussyHachirobe' then
  1617. if move == 'one' then
  1618. send_command('input /pet "Sickle Slash" <me>')
  1619. elseif move == 'two' then
  1620. send_command('input /pet "Acid Spray" <me>')
  1621. elseif move == 'three' then
  1622. send_command('input /pet "Spider Web" <me>') end
  1623. elseif pet.name == 'GenerousArthur' or pet.name == 'GooeyGerard' then
  1624. if move == 'one' then
  1625. send_command('input /pet "Purulent Ooze" <me>')
  1626. elseif move == 'two' or move == 'three' then
  1627. send_command('input /pet "Corrosive Ooze" <me>') end
  1628. elseif pet.name == 'ThreestarLynn' or pet.name == 'DipperYuly' then
  1629. if move == 'one' then
  1630. send_command('input /pet "Spiral Spin" <me>')
  1631. elseif move == 'two' then
  1632. send_command('input /pet "Sudden Lunge" <me>')
  1633. elseif move == 'three' then
  1634. send_command('input /pet "Noisome Powder" <me>') end
  1635. elseif pet.name == 'SharpwitHermes' or pet.name == 'FlowerpotBill' or pet.name == 'FlowerpotBen' or pet.name == 'Homunculus' or pet.name == 'FlowerpotMerle' then
  1636. if move == 'one' then
  1637. send_command('input /pet "Head Butt" <me>')
  1638. elseif move == 'two' then
  1639. send_command('input /pet "Leaf Dagger" <me>')
  1640. elseif move == 'three' then
  1641. send_command('input /pet "Wild Oats" <me>') end
  1642. elseif pet.name == 'AcuexFamiliar' or pet.name == 'FluffyBredo' then
  1643. if move == 'one' then
  1644. send_command('input /pet "Foul Waters" <me>')
  1645. elseif move == 'two' or move == 'three' then
  1646. send_command('input /pet "Pestilent Plume" <me>') end
  1647. elseif pet.name == 'FlytrapFamiliar' or pet.name == 'VoraciousAudrey' or pet.name == 'PrestoJulio' then
  1648. if move == 'one' then
  1649. send_command('input /pet "Soporific" <me>')
  1650. elseif move == 'two' then
  1651. send_command('input /pet "Palsy Pollen" <me>')
  1652. elseif move == 'three' then
  1653. send_command('input /pet "Gloeosuccus" <me>') end
  1654. elseif pet.name == 'EftFamiliar' or pet.name == 'AmbusherAllie' or pet.name == 'BugeyedBroncha' or pet.name == 'SuspiciousAlice' then
  1655. if move == 'one' then
  1656. send_command('input /pet "Nimble Snap" <me>')
  1657. elseif move == 'two' then
  1658. send_command('input /pet "Cyclotail" <me>')
  1659. elseif move == 'three' then
  1660. send_command('input /pet "Geist Wall" <me>') end
  1661. elseif pet.name == 'AntlionFamiliar' or pet.name == 'ChopsueyChucky' or pet.name == 'CursedAnnabelle' then
  1662. if move == 'one' then
  1663. send_command('input /pet "Mandibular Bite" <me>')
  1664. elseif move == 'two' then
  1665. send_command('input /pet "Venom Spray" <me>')
  1666. elseif move == 'three' then
  1667. send_command('input /pet "Sandblast" <me>') end
  1668. elseif pet.name == 'MiteFamiliar' or pet.name == 'LifedrinkerLars' or pet.name == 'AnklebiterJedd' then
  1669. if move == 'one' then
  1670. send_command('input /pet "Double Claw" <me>')
  1671. elseif move == 'two' then
  1672. send_command('input /pet "Spinning Top" <me>')
  1673. elseif move == 'three' then
  1674. send_command('input /pet "Filamented Hold" <me>') end
  1675. elseif pet.name == 'AmigoSabotender' then
  1676. if move == 'one' then
  1677. send_command('input /pet "Needleshot" <me>')
  1678. elseif move == 'two' or move == 'three' then
  1679. send_command('input /pet "??? Needles" <me>') end
  1680. elseif pet.name == 'CraftyClyvonne' or pet.name == 'BloodclawShashra' then
  1681. if move == 'one' then
  1682. send_command('input /pet "Chaotic Eye" <me>')
  1683. elseif move == 'two' then
  1684. send_command('input /pet "Blaster" <me>')
  1685. elseif move == 'three' then
  1686. send_command('input /pet "Charged Whisker" <me>') end
  1687. elseif pet.name == 'SwiftSieghard' or pet.name == 'FleetReinhard' then
  1688. if move == 'one' then
  1689. send_command('input /pet "Scythe Tail" <me>')
  1690. elseif move == 'two' then
  1691. send_command('input /pet "Ripper Fang" <me>')
  1692. elseif move == 'three' then
  1693. send_command('input /pet "Chomp Rush" <me>') end
  1694. elseif pet.name == 'DapperMac' or pet.name == 'SurgingStorm' or pet.name == 'SubmergedIyo' then
  1695. if move == 'one' then
  1696. send_command('input /pet "Beak Lunge" <me>')
  1697. elseif move == 'two' or move == 'three' then
  1698. send_command('input /pet "Wing Slap" <me>') end
  1699. elseif pet.name == 'FatsoFargann' then
  1700. if move == 'one' then
  1701. send_command('input /pet "Suction" <me>')
  1702. elseif move == 'two' then
  1703. send_command('input /pet "Acid Mist" <me>')
  1704. elseif move == 'three' then
  1705. send_command('input /pet "Drain Kiss" <me>') end
  1706. elseif pet.name == 'FaithfulFalcorr' then
  1707. if move == 'one' then
  1708. send_command('input /pet "Back Heel" <me>')
  1709. elseif move == 'two' then
  1710. send_command('input /pet "Choke Breath" <me>')
  1711. elseif move == 'three' then
  1712. send_command('input /pet "Fantod" <me>') end
  1713. elseif pet.name == 'CrudeRaphie' then
  1714. if move == 'one' then
  1715. send_command('input /pet "Tortoise Stomp" <me>')
  1716. elseif move == 'two' then
  1717. send_command('input /pet "Harden Shell" <me>')
  1718. elseif move == 'three' then
  1719. send_command('input /pet "Aqua Breath" <me>') end
  1720. elseif pet.name == 'MosquitoFamilia' or pet.name == 'Left-HandedYoko' then
  1721. if move == 'one' then
  1722. send_command('input /pet "Infected Leech" <me>')
  1723. elseif move == 'two' or move == 'three' then
  1724. send_command('input /pet "Gloom Spray" <me>') end
  1725. end
  1726. end
  1727.  
  1728. -- Updates gear based on pet status changes.
  1729. function job_pet_status_change(newStatus, oldStatus, eventArgs)
  1730. if newStatus == 'Idle' or newStatus == 'Engaged' then
  1731. handle_equipping_gear(player.status)
  1732. end
  1733. if pet.hpp == 0 then
  1734. clear_pet_buff_timers()
  1735. end
  1736. end
  1737.  
  1738. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  1739. function display_current_job_state(eventArgs)
  1740. local msg = 'Melee'
  1741.  
  1742. if state.CombatForm.has_value then
  1743. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  1744. end
  1745.  
  1746. msg = msg .. ': '
  1747.  
  1748. msg = msg .. state.OffenseMode.value
  1749. if state.HybridMode.value ~= 'Normal' then
  1750. msg = msg .. '/' .. state.HybridMode.value
  1751. end
  1752. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  1753.  
  1754. if state.DefenseMode.value ~= 'None' then
  1755. msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  1756. end
  1757.  
  1758. if state.Kiting.value then
  1759. msg = msg .. ', Kiting'
  1760. end
  1761.  
  1762. msg = msg .. ', Reward: '..state.RewardMode.value..', Corr.: '..state.CorrelationMode.value
  1763.  
  1764. if state.JugMode.value ~= 'None' then
  1765. add_to_chat(8,'-- Jug Pet: '.. PetName ..' -- Jug: '.. JugInfo ..' -- (Pet Info: '.. PetInfo ..', '.. PetJob ..')')
  1766. end
  1767.  
  1768. add_to_chat(28,'Ready Moves: 1.'.. ReadyMoveOne ..' 2.'.. ReadyMoveTwo ..' 3.'.. ReadyMoveThree ..'')
  1769. add_to_chat(122, msg)
  1770.  
  1771. eventArgs.handled = true
  1772. end
  1773.  
  1774. -------------------------------------------------------------------------------------------------------------------
  1775. -- Utility functions specific to this job.
  1776. -------------------------------------------------------------------------------------------------------------------
  1777.  
  1778. function get_combat_form()
  1779. if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1780. state.CombatForm:set('DW')
  1781. else
  1782. state.CombatForm:reset()
  1783. end
  1784. end
  1785.  
  1786. function pet_buff_timer(spell)
  1787. if spell.english == 'Reward' then
  1788. send_command('timers c "Pet: Regen" 180 down '..RewardRegenIcon..'')
  1789. elseif spell.english == 'Spur' then
  1790. send_command('timers c "Pet: Spur" 90 down '..SpurIcon..'')
  1791. elseif spell.english == 'Run Wild' then
  1792. send_command('timers c "'..spell.english..'" '..RunWildDuration..' down '..RunWildIcon..'')
  1793. end
  1794. end
  1795.  
  1796. function clear_pet_buff_timers()
  1797. send_command('timers c "Pet: Regen" 0 down '..RewardRegenIcon..'')
  1798. send_command('timers c "Pet: Spur" 0 down '..SpurIcon..'')
  1799. send_command('timers c "Run Wild" 0 down '..RunWildIcon..'')
  1800. end
  1801.  
  1802. function display_mode_info()
  1803. if DisplayModeInfo == 'true' then
  1804. send_command('text AccuracyText create Accuracy Mode: Normal')
  1805. send_command('text AccuracyText pos '..TextBoxX..' '..TextBoxY..'')
  1806. send_command('text AccuracyText size '..TextSize..'')
  1807. TextBoxY = TextBoxY + (TextSize + 6)
  1808. send_command('text CorrelationText create Correlation Mode: Neutral')
  1809. send_command('text CorrelationText pos '..TextBoxX..' '..TextBoxY..'')
  1810. send_command('text CorrelationText size '..TextSize..'')
  1811. TextBoxY = TextBoxY + (TextSize + 6)
  1812. send_command('text PetModeText create Pet Mode: PetOnly')
  1813. send_command('text PetModeText pos '..TextBoxX..' '..TextBoxY..'')
  1814. send_command('text PetModeText size '..TextSize..'')
  1815. TextBoxY = TextBoxY + (TextSize + 6)
  1816. send_command('text JugPetText create Jug Mode: Meaty Broth')
  1817. send_command('text JugPetText pos '..TextBoxX..' '..TextBoxY..'')
  1818. send_command('text JugPetText size '..TextSize..'')
  1819. end
  1820. end
  1821.  
  1822. function update_display_mode_info()
  1823. if DisplayModeInfo == 'true' then
  1824. send_command('text AccuracyText text Acc. Mode: '..state.OffenseMode.value..'')
  1825. send_command('text CorrelationText text Corr. Mode: '..state.CorrelationMode.value..'')
  1826. send_command('text PetModeText text Pet Mode: '..state.PetMode.value..'')
  1827. send_command('text JugPetText text Jug Mode: '..state.JugMode.value..'')
  1828. end
  1829. end
  1830.  
  1831. function get_melee_groups()
  1832. classes.CustomMeleeGroups:clear()
  1833.  
  1834. if buffactive['Aftermath: Lv.3'] then
  1835. classes.CustomMeleeGroups:append('Aftermath')
  1836. end
  1837. end
Add Comment
Please, Sign In to add comment