Guest User

BST

a guest
Jan 8th, 2016
428
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 72.94 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Last Revised: December 10th, 2015 (Commented out pet.tp evaluations in midcast post-update.)
  3. -- (Added on-screen indicators for Modes [requires the Text add-on] - set DisplayModeInfo to 'true' to enable
  4. -- Added Buff Timers for Reward, Spur, Run Wild, and certain Ready Moves - set DisplayPetBuffTimers to 'true' to enable
  5. -- You can now identify pets based on Pet Name or Jug Name for Pet Cycling.)
  6. --
  7. -- Gearswap Commands Specific to this File:
  8. -- alt+F8 cycles through designated Jug Pets
  9. -- ctrl+F8 toggles Monster Correlation between Neutral and Favorable
  10. -- 'Windows Key'+F8 switches between Pet stances for Master/Pet hybrid gearsets
  11. -- alt+= cycles through Pet Food types
  12. -- ctrl+= can swap in the usage of Chaac Belt for Treasure Hunter on common subjob abilities.
  13. -- ctrl+F11 cycles between Magical Defense Modes
  14. --
  15. -- General Gearswap Commands:
  16. -- F9 cycles Accuracy modes
  17. -- ctrl+F9 cycles Hybrid modes
  18. -- 'Windows Key'+F9 cycles Weapon Skill modes
  19. -- F10 equips Physical Defense
  20. -- alt+F10 toggles Kiting on or off
  21. -- ctrl+F10 cycles Physical Defense modes
  22. -- F11 equips Magical Defense
  23. -- alt+F12 turns off Defense modes
  24. -- ctrl+F12 cycles Idle modes
  25. --
  26. -- Keep in mind that any time you Change Jobs/Subjobs, your Pet/Pet Food/etc. reset to default options.
  27. -- F12 will list your current options.
  28. -------------------------------------------------------------------------------------------------------------------
  29.  
  30. -------------------------------------------------------------------------------------------------------------------
  31. -- Initialization function that defines sets and variables to be used.
  32. -------------------------------------------------------------------------------------------------------------------
  33.  
  34. -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
  35.  
  36. -- Initialization function for this job file.
  37. function get_sets()
  38.     mote_include_version = 2
  39.  
  40.     -- Load and initialize the include file.
  41.     include('Mote-Include.lua')
  42. end
  43.  
  44. function job_setup()
  45.     state.Buff['Aftermath: Lv.3'] = buffactive['Aftermath: Lv.3'] or false
  46.     state.Buff['Killer Instinct'] = buffactive['Killer Instinct'] or false
  47.     state.Buff.Doomed = buffactive.doomed or false
  48.  
  49.     -- Pet Buff Timer Info
  50.     DisplayPetBuffTimers = 'false'
  51.  
  52.     -- Input Pet:TP Bonus values for Skirmish Axes used during Pet Buffs
  53.     TP_Bonus_Main = 200
  54.     TP_Bonus_Sub = 180
  55.  
  56.     -- 1200 Job Point Gift Bonus (Set equal to 0 if below 1200 Job Points)
  57.     TP_Gift_Bonus = 0
  58.  
  59.     -- (Adjust Run Wild Duration based on # of Job Points)
  60.     RunWildDuration = 330;RunWildIcon = 'abilities/00121.png'
  61.     RewardRegenIcon = 'spells/00023.png'
  62.     SpurIcon = 'abilities/00037.png'
  63.     BubbleCurtainDuration = 180;BubbleCurtainIcon = 'spells/00048.png'
  64.     ScissorGuardIcon = 'spells/00043.png'
  65.     SecretionIcon = 'spells/00053.png'
  66.     RageIcon = 'abilities/00002.png'
  67.     RhinoGuardIcon = 'spells/00053.png'
  68.     ZealousSnortIcon = 'spells/00057.png'
  69.  
  70.     get_combat_form()
  71.     get_melee_groups()
  72.  
  73.     -- Display Mode Info as on-screen Text
  74.     DisplayModeInfo = 'false'
  75.     TextBoxX = 950
  76.     TextBoxY = 47
  77.     TextSize = 10
  78.     display_mode_info()
  79. end
  80.  
  81. function user_setup()
  82.     state.OffenseMode:options('Normal', 'MedAcc', 'HighAcc')
  83.     state.HybridMode:options('Normal', 'Hybrid')
  84.     state.WeaponskillMode:options('Normal', 'WSMedAcc', 'WSHighAcc')
  85.     state.CastingMode:options('Normal')
  86.     state.IdleMode:options('Normal', 'Reraise', 'Regen', 'Refresh')
  87.     state.RestingMode:options('Normal')
  88.     state.PhysicalDefenseMode:options('PetPDT', 'HybridPDT', 'PDT')
  89.     state.MagicalDefenseMode:options('MDTShell', 'PetMDT')
  90.  
  91.     -- 'Out of Range' distance; WS will auto-cancel
  92.     target_distance = 7
  93.  
  94.     -- Set up Jug Pet cycling and keybind Alt+F8
  95.     -- INPUT PREFERRED JUG PETS HERE
  96.     state.JugMode = M{['description']='Jug Mode', 'Meaty Broth', 'Windy Greens', 'Livid Broth',
  97.         'HeadbreakerKen', 'Tant. Broth', 'Bubbly Broth', 'HeraldHenry'}
  98.     send_command('bind !f8 gs c cycle JugMode')
  99.  
  100.     -- Set up Monster Correlation Modes and keybind Ctrl+F8
  101.     state.CorrelationMode = M{['description']='Correlation Mode', 'Neutral', 'Favorable'}
  102.     send_command('bind ^f8 gs c cycle CorrelationMode')
  103.  
  104.     -- Set up Pet Modes for Hybrid sets and keybind 'Windows Key'+F8
  105.     state.PetMode = M{['description']='Pet Mode', 'PetOnly', 'PetTank', 'Normal'}
  106.     send_command('bind @f8 gs c cycle PetMode')
  107.  
  108.     -- Keybind Ctrl+F11 to cycle Magical Defense Modes
  109.     send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  110.  
  111.     -- Set up Reward Modes and keybind alt+=
  112.     state.RewardMode = M{['description']='Reward Mode', 'Theta', 'Eta', 'Zeta'}
  113.     send_command('bind != gs c cycle RewardMode')
  114.  
  115.     -- Set up Treasure Modes and keybind Ctrl+=
  116.     state.TreasureMode = M{['description']='Treasure Mode', 'Tag', 'Normal'}
  117.     send_command('bind ^= gs c cycle TreasureMode')
  118.  
  119. -- Complete list of Ready moves
  120. physical_ready_moves = S{'Foot Kick','Whirl Claws','Wild Carrot','Sheep Charge','Lamb Chop','Rage','Head Butt',
  121.     'Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang','Nimble Snap','Cyclotail','Rhino Guard','Rhino Attack',
  122.     'Power Attack','Mandibular Bite','Big Scissors','Bubble Curtain','Scissor Guard','Grapple','Spinning Top',
  123.     'Double Claw','Frogkick','Blockhead','Secretion','Brain Crush','Tail Blow','??? Needles','Needleshot',
  124.     'Scythe Tail','Ripper Fang','Chomp Rush','Recoil Dive','Sudden Lunge','Spiral Spin','Wing Slap','Beak Lunge',
  125.     'Suction','Back Heel','Choke Breath','Fantod','Tortoise Stomp','Harden Shell','Sensilla Blades','Tegmina Buffet',
  126.     'Swooping Frenzy','Pentapeck','Sweeping Gouge','Zealous Snort','Somersault','Tickling Tendrils','Pecking Flurry',
  127.     'Sickle Slash'}
  128.  
  129. magic_atk_ready_moves = S{'Dust Cloud','Cursed Sphere','Venom','Toxic Spit','Bubble Shower','Drainkiss',
  130.     'Silence Gas','Dark Spore','Fireball','Plague Breath','Snow Cloud','Charged Whisker','Purulent Ooze',
  131.     'Corrosive Ooze','Aqua Breath','Stink Bomb','Nectarous Deluge','Nepenthic Plunge','Pestilent Plume',
  132.     'Foul Waters','Infected Leech','Gloom Spray'}
  133.  
  134. magic_acc_ready_moves = S{'Sheep Song','Scream','Dream Flower','Roar','Gloeosuccus','Palsy Pollen',
  135.     'Soporific','Geist Wall','Toxic Spit','Numbing Noise','Spoil','Hi-Freq Field','Sandpit','Sandblast',
  136.     'Venom Spray','Filamented Hold','Queasyshroom','Numbshroom','Spore','Shakeshroom','Infrasonics',
  137.     'Chaotic Eye','Blaster','Intimidate','Noisome Powder','Acid Mist','TP Drainkiss','Jettatura',
  138.     'Molting Plumage','Spider Web'}
  139.  
  140. tp_based_ready_moves = S{'Foot Kick','Dust Cloud','Snow Cloud','Wild Carrot','Sheep Song','Sheep Charge',
  141.     'Lamb Chop','Rage','Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang',
  142.     'Roar','Gloeosuccus','Palsy Pollen','Soporific','Cursed Sphere','Somersault','Geist Wall','Numbing Noise',
  143.     'Frogkick','Nimble Snap','Cyclotail','Spoil','Rhino Guard','Rhino Attack','Hi-Freq Field','Sandpit','Sandblast',
  144.     'Mandibular Bite','Metallic Body','Bubble Shower','Bubble Curtain','Scissor Guard','Grapple','Spinning Top',
  145.     'Double Claw','Filamented Hold','Spore','Blockhead','Secretion','Fireball','Tail Blow','Plague Breath',
  146.     'Brain Crush','Infrasonics','Needleshot','Chaotic Eye','Blaster','Ripper Fang','Intimidate','Recoil Dive',
  147.     'Water Wall','Sudden Lunge','Noisome Powder','Wing Slap','Beak Lunge','Suction','Drainkiss','Acid Mist',
  148.     'TP Drainkiss','Back Heel','Jettatura','Choke Breath','Fantod','Charged Whisker','Purulent Ooze',
  149.     'Corrosive Ooze','Tortoise Stomp','Harden Shell','Aqua Breath','Sensilla Blades','Tegmina Buffet',
  150.     'Sweeping Gouge','Zealous Snort','Tickling Tendrils','Pecking Flurry','Pestilent Plume','Foul Waters',
  151.     'Spider Web','Gloom Spray'}
  152.  
  153. pet_buff_moves = S{'Reward','Spur','Run Wild','Bubble Curtain','Scissor Guard','Secretion','Rage',
  154.     'Rhino Guard','Zealous Snort'}
  155.  
  156. -- List of abilities to reference for applying Treasure Hunter +1 via Chaac Belt.
  157. abilities_to_check = S{'Feral Howl','Quickstep','Box Step','Stutter Step','Desperate Flourish',
  158.     'Violent Flourish','Animated Flourish','Provoke','Dia','Dia II','Flash','Bio','Bio II',
  159.     'Sleep','Sleep II','Drain','Aspir','Dispel','Stun','Steal','Mug'}
  160. end
  161.  
  162. function file_unload()
  163.     if binds_on_unload then
  164.         binds_on_unload()
  165.     end
  166.  
  167.     -- Unbinds the Reward, Correlation, PetMode and Treasure hotkeys.
  168.     send_command('unbind ^=')
  169.     send_command('unbind !f8')
  170.     send_command('unbind ^f8')
  171.     send_command('unbind ^f11')
  172.  
  173.     -- Removes any Text Info Boxes
  174.     if DisplayModeInfo == 'true' then
  175.         send_command('text JugPetText delete')
  176.         send_command('text PetModeText delete')
  177.         send_command('text CorrelationText delete')
  178.         send_command('text AccuracyText delete')
  179.     end
  180. end
  181.  
  182. -------------------------------------------------------------------------------------------------------------------
  183. -- General hooks for other game events.
  184. -------------------------------------------------------------------------------------------------------------------
  185.  
  186. -- function job_buff_change(buff, gain)
  187. --    if buff == 'Aftermath: Lv.3' and gain then
  188. --        job_update(cmdParams, eventArgs)
  189. --                handle_equipping_gear(player.status)
  190. --    else
  191. --        job_update(cmdParams, eventArgs)
  192. --        handle_equipping_gear(player.status)
  193. --    end
  194. -- end
  195.  
  196. -------------------------------------------------------------------------------------------------------------------
  197. -- Job-specific hooks that are called to process player actions at specific points in time.
  198. -------------------------------------------------------------------------------------------------------------------
  199.  
  200. function job_precast(spell, action, spellMap, eventArgs)
  201.     if player.equipment.main == 'Aymur' then
  202.         custom_aftermath_timers_precast(spell)
  203.     end
  204.  
  205.     if spell.type == "WeaponSkill" and spell.name ~= 'Mistral Axe' and spell.name ~= 'Bora Axe' and spell.target.distance > target_distance then
  206.         cancel_spell()
  207.         add_to_chat(123, spell.name..' Canceled: [Out of Range]')
  208.         handle_equipping_gear(player.status)
  209.         return
  210.     end
  211.  
  212.     if spell.type == 'CorsairRoll' or spell.english == "Double-Up" then
  213.         equip(sets.precast.LuzafRing)
  214.     end
  215.  
  216.     if spell.english == 'Spur' then
  217.         if state.PetMode.value == 'PetOnly' then
  218.             if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  219.                 equip(sets.precast.SpurPetOnlyDW)
  220.             else
  221.                 equip(sets.precast.SpurPetOnly)
  222.             end
  223.         end
  224.     end
  225.  
  226.     if spell.english == 'Reward' then
  227.         if state.RewardMode.value == 'Theta' then
  228.             equip(sets.precast.JA.Reward.Theta)
  229.         elseif state.RewardMode.value == 'Zeta' then
  230.             equip(sets.precast.JA.Reward.Zeta)
  231.         elseif state.RewardMode.value == 'Eta' then
  232.             equip(sets.precast.JA.Reward.Eta)
  233.         end
  234.     end
  235.  
  236.     if spell.english == 'Bestial Loyalty' or spell.english == 'Call Beast' then
  237.         if state.JugMode.value == 'FunguarFamiliar' or state.JugMode.value == 'Seedbed Soil' then
  238.             equip(sets.precast.JA['Bestial Loyalty'].FunguarFamiliar)
  239.         elseif state.JugMode.value == 'CourierCarrie' or state.JugMode.value == 'Fish Oil Broth' then
  240.             equip(sets.precast.JA['Bestial Loyalty'].CourierCarrie)
  241.         elseif state.JugMode.value == 'AmigoSabotender' or state.JugMode.value == 'Sun Water' then
  242.             equip(sets.precast.JA['Bestial Loyalty'].AmigoSabotender)
  243.         elseif state.JugMode.value == 'NurseryNazuna' or state.JugMode.value == 'Dancing Herbal Broth' or state.JugMode.value == 'D. Herbal Broth' then
  244.             equip(sets.precast.JA['Bestial Loyalty'].NurseryNazuna)
  245.         elseif state.JugMode.value == 'CraftyClyvonne' or state.JugMode.value == 'Cunning Brain Broth' or state.JugMode.value == 'Cng. Brain Broth' then
  246.             equip(sets.precast.JA['Bestial Loyalty'].CraftyClyvonne)
  247.         elseif state.JugMode.value == 'PrestoJulio' or state.JugMode.value == 'Chirping Grasshopper Broth' or state.JugMode.value == 'C. Grass Broth' then
  248.             equip(sets.precast.JA['Bestial Loyalty'].PrestoJulio)
  249.         elseif state.JugMode.value == 'SwiftSieghard' or state.JugMode.value == 'Mellow Bird Broth' or state.JugMode.value == 'Mlw. Bird Broth' then
  250.             equip(sets.precast.JA['Bestial Loyalty'].SwiftSieghard)
  251.         elseif state.JugMode.value == 'MailbusterCetas' or state.JugMode.value == 'Goblin Bug Broth' or state.JugMode.value == 'Gob. Bug Broth' then
  252.             equip(sets.precast.JA['Bestial Loyalty'].MailbusterCetas)
  253.         elseif state.JugMode.value == 'AudaciousAnna' or state.JugMode.value == 'Bubbling Carrion Broth' then
  254.             equip(sets.precast.JA['Bestial Loyalty'].AudaciousAnna)
  255.         elseif state.JugMode.value == 'TurbidToloi' or state.JugMode.value == 'Auroral Broth' then
  256.             equip(sets.precast.JA['Bestial Loyalty'].TurbidToloi)
  257.         elseif state.JugMode.value == 'SlipperySilas' or state.JugMode.value == 'Wormy Broth' then
  258.             equip(sets.precast.JA['Bestial Loyalty'].SlipperySilas)
  259.         elseif state.JugMode.value == 'LuckyLulush' or state.JugMode.value == 'Lucky Carrot Broth' or state.JugMode.value == 'L. Carrot Broth' then
  260.             equip(sets.precast.JA['Bestial Loyalty'].LuckyLulush)
  261.         elseif state.JugMode.value == 'DipperYuly' or state.JugMode.value == 'Wool Grease' then
  262.             equip(sets.precast.JA['Bestial Loyalty'].DipperYuly)
  263.         elseif state.JugMode.value == 'FlowerpotMerle' or state.JugMode.value == 'Vermihumus' then
  264.             equip(sets.precast.JA['Bestial Loyalty'].FlowerpotMerle)
  265.         elseif state.JugMode.value == 'DapperMac' or state.JugMode.value == 'Briny Broth' then
  266.             equip(sets.precast.JA['Bestial Loyalty'].DapperMac)
  267.         elseif state.JugMode.value == 'DiscreetLouise' or state.JugMode.value == 'Deepbed Soil' then
  268.             equip(sets.precast.JA['Bestial Loyalty'].DiscreetLouise)
  269.         elseif state.JugMode.value == 'FatsoFargann' or state.JugMode.value == 'Curdled Plasma Broth' or state.JugMode.value == 'C. Plasma Broth' then
  270.             equip(sets.precast.JA['Bestial Loyalty'].FatsoFargann)
  271.         elseif state.JugMode.value == 'FaithfulFalcorr' or state.JugMode.value == 'Lucky Broth' then
  272.             equip(sets.precast.JA['Bestial Loyalty'].FaithfulFalcorr)
  273.         elseif state.JugMode.value == 'BugeyedBroncha' or state.JugMode.value == 'Savage Mole Broth' or state.JugMode.value == 'Svg. Mole Broth' then
  274.             equip(sets.precast.JA['Bestial Loyalty'].BugeyedBroncha)
  275.         elseif state.JugMode.value == 'BloodclawShasra' or state.JugMode.value == 'Razor Brain Broth' or state.JugMode.value == 'Rzr. Brain Broth' then
  276.             equip(sets.precast.JA['Bestial Loyalty'].BloodclawShasra)
  277.         elseif state.JugMode.value == 'GorefangHobs' or state.JugMode.value == 'Burning Carrion Broth' then
  278.             equip(sets.precast.JA['Bestial Loyalty'].GorefangHobs)
  279.         elseif state.JugMode.value == 'GooeyGerard' or state.JugMode.value == 'Cloudy Wheat Broth' or state.JugMode.value == 'Cl. Wheat Broth' then
  280.             equip(sets.precast.JA['Bestial Loyalty'].GooeyGerard)
  281.         elseif state.JugMode.value == 'CrudeRaphie' or state.JugMode.value == 'Shadowy Broth' then
  282.             equip(sets.precast.JA['Bestial Loyalty'].CrudeRaphie)
  283.         elseif state.JugMode.value == 'DroopyDortwin' or state.JugMode.value == 'Swirling Broth' then
  284.             equip(sets.precast.JA['Bestial Loyalty'].DroopyDortwin)
  285.         elseif state.JugMode.value == 'PonderingPeter' or state.JugMode.value == 'Viscous Broth' or state.JugMode.value == 'Vis. Broth' then
  286.             equip(sets.precast.JA['Bestial Loyalty'].PonderingPeter)
  287.         elseif state.JugMode.value == 'SunburstMalfik' or state.JugMode.value == 'Shimmering Broth' then
  288.             equip(sets.precast.JA['Bestial Loyalty'].SunburstMalfik)
  289.         elseif state.JugMode.value == 'AgedAngus' or state.JugMode.value == 'Fermented Broth' or state.JugMode.value == 'Ferm. Broth' then
  290.             equip(sets.precast.JA['Bestial Loyalty'].AgedAngus)
  291.         elseif state.JugMode.value == 'WarlikePatrick' or state.JugMode.value == 'Livid Broth' then
  292.             equip(sets.precast.JA['Bestial Loyalty'].WarlikePatrick)
  293.         elseif state.JugMode.value == 'ScissorlegXerin' or state.JugMode.value == 'Spicy Broth' then
  294.             equip(sets.precast.JA['Bestial Loyalty'].ScissorlegXerin)
  295.         elseif state.JugMode.value == 'BouncingBertha' or state.JugMode.value == 'Bubbly Broth' then
  296.             if spell.english == 'Call Beast' then
  297.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  298.                 return
  299.             end
  300.             equip(sets.precast.JA['Bestial Loyalty'].BouncingBertha)
  301.         elseif state.JugMode.value == 'RhymingShizuna' or state.JugMode.value == 'Lyrical Broth' then
  302.             equip(sets.precast.JA['Bestial Loyalty'].RhymingShizuna)
  303.         elseif state.JugMode.value == 'AttentiveIbuki' or state.JugMode.value == 'Salubrious Broth' then
  304.             equip(sets.precast.JA['Bestial Loyalty'].AttentiveIbuki)
  305.         elseif state.JugMode.value == 'SwoopingZhivago' or state.JugMode.value == 'Windy Greens' then
  306.             if spell.english == 'Call Beast' then
  307.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  308.                 return
  309.             end
  310.             equip(sets.precast.JA['Bestial Loyalty'].SwoopingZhivago)
  311.         elseif state.JugMode.value == 'AmiableRoche' or state.JugMode.value == 'Airy Broth' then
  312.             equip(sets.precast.JA['Bestial Loyalty'].AmiableRoche)
  313.         elseif state.JugMode.value == 'HeraldHenry' or state.JugMode.value == 'Translucent Broth' or state.JugMode.value == 'Trans. Broth' then
  314.             equip(sets.precast.JA['Bestial Loyalty'].HeraldHenry)
  315.         elseif state.JugMode.value == 'BrainyWaluis' or state.JugMode.value == 'Crumbly Soil' then
  316.             equip(sets.precast.JA['Bestial Loyalty'].BrainyWaluis)
  317.         elseif state.JugMode.value == 'HeadbreakerKen' or state.JugMode.value == 'Blackwater Broth' then
  318.             equip(sets.precast.JA['Bestial Loyalty'].HeadbreakerKen)
  319.         elseif state.JugMode.value == 'RedolentCandi' or state.JugMode.value == 'Electrified Broth' then
  320.             equip(sets.precast.JA['Bestial Loyalty'].RedolentCandi)
  321.         elseif state.JugMode.value == 'AlluringHoney' or state.JugMode.value == 'Bug-Ridden Broth' then
  322.             if spell.english == 'Call Beast' then
  323.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  324.                 return
  325.             end
  326.             equip(sets.precast.JA['Bestial Loyalty'].AlluringHoney)
  327.         elseif state.JugMode.value == 'CaringKiyomaro' or state.JugMode.value == 'Fizzy Broth' then
  328.             equip(sets.precast.JA['Bestial Loyalty'].CaringKiyomaro)
  329.         elseif state.JugMode.value == 'VivaciousVickie' or state.JugMode.value == 'Tantalizing Broth' or state.JugMode.value == 'Tant. Broth' then
  330.             if spell.english == 'Call Beast' then
  331.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  332.                 return
  333.             end
  334.             equip(sets.precast.JA['Bestial Loyalty'].VivaciousVickie)
  335.         elseif state.JugMode.value == 'HurlerPercival' or state.JugMode.value == 'Pale Sap' then
  336.             equip(sets.precast.JA['Bestial Loyalty'].HurlerPercival)
  337.         elseif state.JugMode.value == 'BlackbeardRandy' or state.JugMode.value == 'Meaty Broth' then
  338.             equip(sets.precast.JA['Bestial Loyalty'].BlackbeardRandy)
  339.         elseif state.JugMode.value == 'GenerousArthur' or state.JugMode.value == 'Dire Broth' then
  340.             equip(sets.precast.JA['Bestial Loyalty'].GenerousArthur)
  341.         elseif state.JugMode.value == 'ThreestarLynn' or state.JugMode.value == 'Muddy Broth' then
  342.             equip(sets.precast.JA['Bestial Loyalty'].ThreestarLynn)
  343.         elseif state.JugMode.value == 'BraveHeroGlenn' or state.JugMode.value == 'Wispy Broth' then
  344.             equip(sets.precast.JA['Bestial Loyalty'].BraveHeroGlenn)
  345.         elseif state.JugMode.value == 'SharpwitHermes' or state.JugMode.value == 'Saline Broth' then
  346.             equip(sets.precast.JA['Bestial Loyalty'].SharpwitHermes)
  347.         elseif state.JugMode.value == 'ColibriFamiliar' or state.JugMode.value == 'Sugary Broth' then
  348.             equip(sets.precast.JA['Bestial Loyalty'].ColibriFamiliar)
  349.         elseif state.JugMode.value == 'ChoralLeera' or state.JugMode.value == 'Glazed Broth' then
  350.             if spell.english == 'Call Beast' then
  351.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  352.                 return
  353.             end
  354.             equip(sets.precast.JA['Bestial Loyalty'].ChoralLeera)
  355.         elseif state.JugMode.value == 'SpiderFamiliar' or state.JugMode.value == 'Sticky Webbing' then
  356.             equip(sets.precast.JA['Bestial Loyalty'].SpiderFamiliar)
  357.         elseif state.JugMode.value == 'GussyHachirobe' or state.JugMode.value == 'Slimy Webbing' then
  358.             if spell.english == 'Call Beast' then
  359.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  360.                 return
  361.             end
  362.             equip(sets.precast.JA['Bestial Loyalty'].GussyHachirobe)
  363.         elseif state.JugMode.value == 'AcuexFamiliar' or state.JugMode.value == 'Poisonous Broth' then
  364.             equip(sets.precast.JA['Bestial Loyalty'].AcuexFamiliar)
  365.         elseif state.JugMode.value == 'FluffyBredo' or state.JugMode.value == 'Venomous Broth' then
  366.             if spell.english == 'Call Beast' then
  367.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  368.                 return
  369.             end
  370.             equip(sets.precast.JA['Bestial Loyalty'].FluffyBredo)
  371.         elseif state.JugMode.value == 'SuspiciousAlice' or state.JugMode.value == 'Furious Broth' then
  372.             equip(sets.precast.JA['Bestial Loyalty'].SuspiciousAlice)
  373.         elseif state.JugMode.value == 'AnklebiterJedd' or state.JugMode.value == 'Crackling Broth' then
  374.             equip(sets.precast.JA['Bestial Loyalty'].AnklebiterJedd)
  375.         elseif state.JugMode.value == 'FleetReinhard' or state.JugMode.value == 'Rapid Broth' then
  376.             equip(sets.precast.JA['Bestial Loyalty'].FleetReinhard)
  377.         elseif state.JugMode.value == 'CursedAnnabelle' or state.JugMode.value == 'Creepy Broth' then
  378.             equip(sets.precast.JA['Bestial Loyalty'].CursedAnnabelle)
  379.         elseif state.JugMode.value == 'SurgingStorm' or state.JugMode.value == 'Insipid Broth' then
  380.             equip(sets.precast.JA['Bestial Loyalty'].SurgingStorm)
  381.         elseif state.JugMode.value == 'SubmergedIyo' or state.JugMode.value == 'Deepwater Broth' then
  382.             if spell.english == 'Call Beast' then
  383.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  384.                 return
  385.             end
  386.             equip(sets.precast.JA['Bestial Loyalty'].SubmergedIyo)
  387.         elseif state.JugMode.value == 'MosquitoFamiliar' or state.JugMode.value == 'Wetlands Broth' then
  388.             equip(sets.precast.JA['Bestial Loyalty'].MosquitoFamiliar)
  389.         elseif state.JugMode.value == 'Left-HandedYoko' or state.JugMode.value == 'Heavenly Broth' then
  390.             if spell.english == 'Call Beast' then
  391.                 add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
  392.                 return
  393.             end
  394.             equip(sets.precast.JA['Bestial Loyalty'].LeftHandedYoko)
  395.         end
  396.     end
  397.  
  398. -- Define class for Sic and Ready moves.
  399.     if spell.type == "Monster" then
  400.             classes.CustomClass = "WS"
  401.         if state.PetMode.Value == 'PetOnly' and not buffactive['Unleash']then
  402.             if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  403.                 equip(sets.midcast.Pet.ReadyRecastDWNE)
  404.             else
  405.                 equip(sets.midcast.Pet.ReadyRecastNE)
  406.             end
  407.         else
  408.             equip(sets.midcast.Pet.ReadyRecast)
  409.         end
  410.     end
  411. end
  412.  
  413. function job_post_precast(spell, action, spellMap, eventArgs)
  414. -- If Killer Instinct is active during WS, equip Nukumi Gausape +1.
  415.     if spell.type:lower() == 'weaponskill' and buffactive['Killer Instinct'] then
  416.         equip(sets.buff['Killer Instinct'])
  417.     end
  418.  
  419.     if world.time >= 17*60 or world.time < 7*60 then
  420.         if spell.english == "Ruinator" or spell.english == "Rampage" or spell.english == "Calamity" then
  421.             equip(sets.midcast.NightEarrings)
  422.         end
  423.     end
  424.  
  425.     if spell.english == "Primal Rend" and player.tp > 2750 then
  426.         equip(sets.midcast.ExtraMAB)
  427.     end
  428.  
  429. -- Equip Chaac Belt for TH+1 on common Subjob Abilities or Spells.
  430.     if abilities_to_check:contains(spell.english) and state.TreasureMode.value == 'Tag' then
  431.         equip(sets.THBelt)
  432.     end
  433. end
  434.  
  435. function job_midcast(spell, action, spellMap, eventArgs)
  436.     if state.PetMode.value == 'PetOnly' then
  437.         if spell.english == "Cure" or spell.english == "Cure II" or spell.english == "Cure III" or spell.english == "Cure IV" then
  438.             equip(sets.CurePetOnly)
  439.         end
  440.         if spell.english == "Curaga" or spell.english == "Curaga II" or spell.english == "Curaga III" then
  441.             equip(sets.CurePetOnly)
  442.         end
  443.     end
  444. end
  445.  
  446. function job_pet_midcast(spell, action, spellMap, eventArgs)
  447.     if physical_ready_moves:contains(spell.name) then
  448.         if state.PetMode.value == 'PetOnly' then
  449.             if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  450.                 if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  451.                     equip(sets.midcast.Pet.ReadyDWNE.HighAcc, sets.midcast.Pet[state.CorrelationMode.value])
  452.                 else
  453.                     equip(sets.midcast.Pet.ReadyNE.HighAcc, sets.midcast.Pet[state.CorrelationMode.value])
  454.                 end
  455.             elseif state.OffenseMode.value == 'MedAcc' or state.OffenseMode.value == 'MedAccHaste' then
  456.                 if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  457.                     equip(sets.midcast.Pet.ReadyDWNE.MedAcc, sets.midcast.Pet[state.CorrelationMode.value])
  458.                 else
  459.                     equip(sets.midcast.Pet.ReadyNE.MedAcc, sets.midcast.Pet[state.CorrelationMode.value])
  460.                 end
  461.             else
  462.                 if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  463.                     equip(set_combine(sets.midcast.Pet.ReadyDWNE, sets.midcast.Pet[state.CorrelationMode.value]))
  464.                 else
  465.                     equip(set_combine(sets.midcast.Pet.ReadyNE, sets.midcast.Pet[state.CorrelationMode.value]))
  466.                 end
  467.             end
  468.         else
  469.             if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  470.                 equip(sets.midcast.Pet.HighAcc, sets.midcast.Pet[state.CorrelationMode.value])
  471.             elseif state.OffenseMode.value == 'MedAcc' or state.OffenseMode.value == 'MedAccHaste' then
  472.                 equip(sets.midcast.Pet.MedAcc, sets.midcast.Pet[state.CorrelationMode.value])
  473.             else
  474.                 equip(set_combine(sets.midcast.Pet.WS, sets.midcast.Pet[state.CorrelationMode.value]))
  475.             end
  476.         end
  477.     end
  478.  
  479.     if magic_atk_ready_moves:contains(spell.name) then
  480.         if state.PetMode.value == 'PetOnly' then
  481.             if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  482.                 if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  483.                     equip(sets.midcast.Pet.MagicAtkReadyDWNE.HighAcc)
  484.                 else
  485.                     equip(sets.midcast.Pet.MagicAtkReadyNE.HighAcc)
  486.                 end
  487.             elseif state.OffenseMode.value == 'MedAcc' or state.OffenseMode.value == 'MedAccHaste' then
  488.                 if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  489.                     equip(sets.midcast.Pet.MagicAtkReadyDWNE.MedAcc)
  490.                 else
  491.                     equip(sets.midcast.Pet.MagicAtkReadyNE.MedAcc)
  492.                 end
  493.             else
  494.                 if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  495.                     equip(sets.midcast.Pet.MagicAtkReadyDWNE)
  496.                 else
  497.                     equip(sets.midcast.Pet.MagicAtkReadyNE)
  498.                 end
  499.             end
  500.         else
  501.             equip(sets.midcast.Pet.MagicAtkReady)
  502.         end
  503.     end
  504.  
  505.     if magic_acc_ready_moves:contains(spell.name) then
  506.         if state.PetMode.value == 'PetOnly' then
  507.             if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  508.                 equip(sets.midcast.Pet.MagicAccReadyDWNE)
  509.             else
  510.                 equip(sets.midcast.Pet.MagicAccReadyNE)
  511.             end
  512.         else
  513.             equip(sets.midcast.Pet.MagicAccReady)
  514.         end
  515.     end
  516.  
  517.     -- If Pet TP, before bonuses, is less than a certain value then equip Nukumi Manoplas +1
  518.     -- if physical_ready_moves:contains(spell.name) and state.OffenseMode.value ~= 'HighAcc' then
  519.     --    if tp_based_ready_moves:contains(spell.name) and PetJob == 'Warrior' and pet.tp < 190 then
  520.             equip(sets.midcast.Pet.TPBonus)
  521.     --    elseif tp_based_ready_moves:contains(spell.name) and PetJob ~= 'Warrior' and pet.tp < 240 then
  522.     --        equip(sets.midcast.Pet.TPBonus)
  523.     --    end
  524.     -- end
  525. end
  526.  
  527. function job_pet_aftercast(spell, action, spellMap, eventArgs)
  528.     if pet_buff_moves:contains(spell.name) and DisplayPetBuffTimers == 'true' then
  529.         -- Pet TP calculations for Ready Buff Durations
  530.         local TP_Amount = 1000
  531.         if pet.tp * 10 < 1000 then TP_Amount = TP_Amount + TP_Gift_Bonus;end
  532.         if pet.tp * 10 > 1000 then TP_Amount = (pet.tp * 10) + TP_Gift_Bonus;end
  533.         if player.equipment.hands == "Ferine Manoplas +1" then TP_Amount = TP_Amount + 250;end
  534.         if player.equipment.hands == "Ferine Manoplas +2" then TP_Amount = TP_Amount + 500;end
  535.         if player.equipment.hands == "Nukumi Manoplas" then TP_Amount = TP_Amount + 550;end
  536.         if player.equipment.hands == "Nukumi Manoplas +1" then TP_Amount = TP_Amount + 600;end
  537.         if player.equipment.main == "Aymur" or player.equipment.sub == "Aymur" then TP_Amount = TP_Amount + 500;end
  538.         if player.equipment.main == "Kumbhakarna" then TP_Amount = TP_Amount + TP_Bonus_Main;end
  539.         if player.equipment.sub == "Kumbhakarna" then TP_Amount = TP_Amount + TP_Bonus_Sub;end
  540.         if TP_Amount > 3000 then TP_Amount = 3000;end
  541.  
  542.         -- add_to_chat(28, pet.name..' Ready Midcast TP: '..TP_Amount..'')
  543.  
  544.         if spell.english == 'Bubble Curtain' then
  545.             local TP_Buff_Duration = math.floor((TP_Amount - 1000)* 0.09) + BubbleCurtainDuration
  546.             send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..BubbleCurtainIcon..'')
  547.         elseif spell.english == 'Scissor Guard' then
  548.             local TP_Buff_Duration = math.floor(TP_Amount * 0.06)
  549.             send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..ScissorGuardIcon..'')
  550.         elseif spell.english == 'Secretion' then
  551.             TP_Amount = TP_Amount + 500
  552.             if TP_Amount > 3000 then TP_Amount = 3000;end
  553.             local TP_Buff_Duration = math.floor(TP_Amount * 0.18)
  554.             send_command('timers c "Secretion" '..TP_Buff_Duration..' down '..SecretionIcon..'')
  555.         elseif spell.english == 'Rage' then
  556.             TP_Amount = TP_Amount + 500
  557.             if TP_Amount > 3000 then TP_Amount = 3000;end
  558.             local TP_Buff_Duration = math.floor(TP_Amount * 0.18)
  559.             send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..RageIcon..'')
  560.         elseif spell.english == 'Rhino Guard' then
  561.             local TP_Buff_Duration = math.floor(TP_Amount * 0.18)
  562.             send_command('timers c "Rhino Guard" '..TP_Buff_Duration..' down '..RhinoGuardIcon..'')
  563.         elseif spell.english == 'Zealous Snort' then
  564.             local TP_Buff_Duration = math.floor(TP_Amount * 0.06)
  565.             send_command('timers c "'..spell.english..'" '..TP_Buff_Duration..' down '..ZealousSnortIcon..'')
  566.         end
  567.     end
  568.  
  569.     if state.PetMode.value == 'PetOnly' then
  570.         if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  571.             equip(sets.DTAxes)
  572.         else
  573.             equip(sets.DTAxeShield)
  574.         end
  575.     end
  576. end
  577.  
  578. -- Return true if we handled the aftercast work.  Otherwise it will fall back
  579. -- to the general aftercast() code in Mote-Include.
  580. function job_aftercast(spell, action, spellMap, eventArgs)
  581. -- Create custom timers for Pet Buffs.
  582.     if pet_buff_moves:contains(spell.name) and DisplayPetBuffTimers == 'true' then
  583.         if not spell.interrupted then
  584.             pet_buff_timer(spell)
  585.         end
  586.     end
  587.  
  588.     if spell.english == "Leave" then
  589.         clear_pet_buff_timers()
  590.     end
  591.  
  592.     if player.equipment.main == 'Aymur' then
  593.         custom_aftermath_timers_aftercast(spell)
  594.     end
  595.  
  596.     if world.time >= 360 and world.time < 1080 then
  597.         if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  598.             if player.status == 'Engaged' then
  599.                 equip(sets.DaytimeAmmo)
  600.             end
  601.         end
  602.     end
  603.  
  604.     if state.PetMode.value == 'PetOnly' then
  605.         if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  606.             equip(sets.DTAxes)
  607.         else
  608.             equip(sets.DTAxeShield)
  609.         end
  610.     end
  611. end
  612.  
  613. -------------------------------------------------------------------------------------------------------------------
  614. -- Customization hook for idle sets.
  615. -------------------------------------------------------------------------------------------------------------------
  616.  
  617. function customize_idle_set(idleSet)
  618.     if player.hpp < 50 and pet.status ~= 'Engaged' then
  619.         idleSet = set_combine(idleSet, sets.ExtraRegen)
  620.     end
  621.     return idleSet
  622. end
  623.  
  624. -------------------------------------------------------------------------------------------------------------------
  625. -- Hooks for Reward, Correlation, Treasure Hunter, and Pet Mode handling.
  626. -------------------------------------------------------------------------------------------------------------------
  627.  
  628. function job_state_change(stateField, newValue, oldValue)
  629.     if stateField == 'Correlation Mode' then
  630.         state.CorrelationMode:set(newValue)
  631.     elseif stateField == 'Reward Mode' then
  632.         state.RewardMode:set(newValue)
  633.     elseif stateField == 'Treasure Mode' then
  634.         state.TreasureMode:set(newValue)
  635.     elseif stateField == 'Pet Mode' then
  636.         state.CombatWeapon:set(newValue)
  637.     end
  638.  
  639.     if world.time >= 360 and world.time < 1080 then
  640.         if state.OffenseMode.value == 'HighAcc' or state.OffenseMode.value == 'HighAccHaste' then
  641.             if player.status == 'Engaged' then
  642.                 equip(sets.DaytimeAmmo)
  643.             end
  644.         end
  645.     end
  646. end
  647.  
  648. function get_custom_wsmode(spell, spellMap, default_wsmode)
  649.     if default_wsmode == 'Normal' then
  650.         if spell.english == "Ruinator" and (world.day_element == 'Water' or world.day_element == 'Wind' or world.day_element == 'Ice') then
  651.             return 'Gavialis'
  652.         end
  653.     end
  654. end
  655.  
  656. -------------------------------------------------------------------------------------------------------------------
  657. -- User code that supplements self-commands.
  658. -------------------------------------------------------------------------------------------------------------------
  659.  
  660. -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
  661. function job_handle_equipping_gear(playerStatus, eventArgs)    
  662.     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
  663.         disable('back')
  664.     else
  665.         enable('back')
  666.     end
  667.         if player.equipment.ring1 == 'Warp Ring' or player.equipment.ring1 == 'Vocation Ring' or player.equipment.ring1 == 'Capacity Ring' then
  668.         disable('ring1')
  669.     else
  670.         enable('ring1')
  671.     end
  672.     if player.equipment.ring2 == 'Warp Ring' or player.equipment.ring2 == 'Vocation Ring' or player.equipment.ring2 == 'Capacity Ring' then
  673.         disable('ring2')
  674.     else
  675.         enable('ring2')
  676.     end
  677. end
  678.  
  679. -- Called by the 'update' self-command, for common needs.
  680. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  681. function job_update(cmdParams, eventArgs)
  682.     get_combat_form()
  683.     get_melee_groups()
  684.  
  685.         if state.JugMode.value == 'FunguarFamiliar' or state.JugMode.value == 'Seedbed Soil' then
  686.                 PetName = "FunguarFamiliar";JugInfo = "Seedbed Soil";PetInfo = "Funguar, Plantoid";PetJob = 'Warrior'
  687.                 ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  688.         elseif state.JugMode.value == 'CourierCarrie' or state.JugMode.value == 'Fish Oil Broth' then
  689.                 PetName = "CourierCarrie";JugInfo = "Fish Oil Broth";PetInfo = "Crab, Aquan";PetJob = 'Paladin'
  690.                 ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  691.         elseif state.JugMode.value == 'AmigoSabotender' or state.JugMode.value == 'Sun Water' then
  692.                 PetName = "AmigoSabotender";JugInfo = "Sun Water";PetInfo = "Cactuar, Plantoid";PetJob = 'Warrior'
  693.                 ReadyMoveOne = 'Needle Shot';ReadyMoveTwo = '??? Needles';ReadyMoveThree = '??? Needles'
  694.         elseif state.JugMode.value == 'NurseryNazuna' or state.JugMode.value == 'Dancing Herbal Broth' or state.JugMode.value == 'D. Herbal Broth' then
  695.                 PetName = "NurseryNazuna";JugInfo = "Dancing Herbal Broth";PetInfo = "Sheep, Beast";PetJob = 'Warrior'
  696.                 ReadyMoveOne = 'Lamb Chop';ReadyMoveTwo = 'Rage';ReadyMoveThree = 'Sheep Song'
  697.         elseif state.JugMode.value == 'CraftyClyvonne' or state.JugMode.value == 'Cunning Brain Broth' or state.JugMode.value == 'Cng. Brain Broth' then
  698.                 PetName = "CraftyClyvonne";JugInfo = "Cunning Brain Broth";PetInfo = "Coeurl, Beast";PetJob = 'Warrior'
  699.                 ReadyMoveOne = 'Blaster';ReadyMoveTwo = 'Chaotic Eye';ReadyMoveThree = 'None'
  700.         elseif state.JugMode.value == 'PrestoJulio' or state.JugMode.value == 'Chirping Grasshopper Broth' or state.JugMode.value == 'C. Grass Broth' then
  701.                 PetName = "PrestoJulio";JugInfo = "Chirping Grasshopper Broth";PetInfo = "Flytrap, Plantoid";PetJob = 'Warrior'
  702.                 ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  703.         elseif state.JugMode.value == 'SwiftSieghard' or state.JugMode.value == 'Mellow Bird Broth' or state.JugMode.value == 'Mlw. Bird Broth' then
  704.                 PetName = "SwiftSieghard";JugInfo = "Mellow Bird Broth";PetInfo = "Raptor, Lizard";PetJob = 'Warrior'
  705.                 ReadyMoveOne = 'Scythe Tail';ReadyMoveTwo = 'Ripper Fang';ReadyMoveThree = 'Chomp Rush'
  706.         elseif state.JugMode.value == 'MailbusterCetas' or state.JugMode.value == 'Goblin Bug Broth' or state.JugMode.value == 'Gob. Bug Broth' then
  707.                 PetName = "MailbusterCetas";JugInfo = "Goblin Bug Broth";PetInfo = "Fly, Vermin";PetJob = 'Warrior'
  708.                 ReadyMoveOne = 'Somersault';ReadyMoveTwo = 'Cursed Sphere';ReadyMoveThree = 'Venom'
  709.         elseif state.JugMode.value == 'AudaciousAnna' or state.JugMode.value == 'Bubbling Carrion Broth' then
  710.                 PetName = "AudaciousAnna";JugInfo = "Bubbling Carrion Broth";PetInfo = "Lizard, Lizard";PetJob = 'Warrior'
  711.                 ReadyMoveOne = 'Tail Blow';ReadyMoveTwo = 'Brain Crush';ReadyMoveThree = 'Fireball'
  712.         elseif state.JugMode.value == 'TurbidToloi' or state.JugMode.value == 'Auroral Broth' then
  713.                 PetName = "TurbidToloi";JugInfo = "Auroral Broth";PetInfo = "Pugil, Aquan";PetJob = 'Warrior'
  714.                 ReadyMoveOne = 'Recoil Dive';ReadyMoveTwo = 'Water Wall';ReadyMoveThree = 'Intimidate'
  715.         elseif state.JugMode.value == 'SlipperySilas' or state.JugMode.value == 'Wormy Broth' then
  716.                 PetName = "SlipperySilas";JugInfo = "Wormy Broth";PetInfo = "Toad, Aquan";PetJob = 'Warrior'
  717.                 ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None'
  718.         elseif state.JugMode.value == 'LuckyLulush' or state.JugMode.value == 'Lucky Carrot Broth' or state.JugMode.value == 'L. Carrot Broth' then
  719.                 PetName = "LuckyLulush";JugInfo = "Lucky Carrot Broth";PetInfo = "Rabbit, Beast";PetJob = 'Warrior'
  720.                 ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot'
  721.         elseif state.JugMode.value == 'DipperYuly' or state.JugMode.value == 'Wool Grease' then
  722.                 PetName = "DipperYuly";JugInfo = "Wool Grease";PetInfo = "Ladybug, Vermin";PetJob = 'Thief'
  723.                 ReadyMoveOne = 'Spiral Spin';ReadyMoveTwo = 'Sudden Lunge';ReadyMoveThree = 'Noisome Powder'
  724.         elseif state.JugMode.value == 'FlowerpotMerle' or state.JugMode.value == 'Vermihumus' then
  725.                 PetName = "FlowerpotMerle";JugInfo = "Vermihumus";PetInfo = "Mandragora, Plantoid";PetJob = 'Monk'
  726.                 ReadyMoveOne = 'Head Butt';ReadyMoveTwo = 'Leaf Dagger';ReadyMoveThree = 'Wild Oats'
  727.         elseif state.JugMode.value == 'DapperMac' or state.JugMode.value == 'Briny Broth' then
  728.                 PetName = "DapperMac";JugInfo = "Briny Broth";PetInfo = "Apkallu, Bird";PetJob = 'Monk'
  729.                 ReadyMoveOne = 'Beak Lunge';ReadyMoveTwo = 'Wing Slap';ReadyMoveThree = 'None'
  730.         elseif state.JugMode.value == 'DiscreetLouise' or state.JugMode.value == 'Deepbed Soil' then
  731.                 PetName = "DiscreetLouise";JugInfo = "Deepbed Soil";PetInfo = "Funguar, Plantoid";PetJob = 'Warrior'
  732.                 ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  733.         elseif state.JugMode.value == 'FatsoFargann' or state.JugMode.value == 'Curdled Plasma Broth' or state.JugMode.value == 'C. Plasma Broth' then
  734.                 PetName = "FatsoFargann";JugInfo = "Curdled Plasma Broth";PetInfo = "Leech, Amorph";PetJob = 'Warrior'
  735.                 ReadyMoveOne = 'Suction';ReadyMoveTwo = 'Acid Mist';ReadyMoveThree = 'Drain Kiss'
  736.         elseif state.JugMode.value == 'FaithfulFalcorr' or state.JugMode.value == 'Lucky Broth' then
  737.                 PetName = "FaithfulFalcorr";JugInfo = "Lucky Broth";PetInfo = "Hippogryph, Bird";PetJob = 'Thief'
  738.                 ReadyMoveOne = 'Back Heel';ReadyMoveTwo = 'Choke Breath';ReadyMoveThree = 'Fantod'
  739.         elseif state.JugMode.value == 'BugeyedBroncha' or state.JugMode.value == 'Savage Mole Broth' or state.JugMode.value == 'Svg. Mole Broth' then
  740.                 PetName = "BugeyedBroncha";JugInfo = "Savage Mole Broth";PetInfo = "Eft, Lizard";PetJob = 'Warrior'
  741.                 ReadyMoveOne = 'Nimble Snap';ReadyMoveTwo = 'Cyclotail';ReadyMoveThree = 'Geist Wall'
  742.         elseif state.JugMode.value == 'BloodclawShasra' or state.JugMode.value == 'Razor Brain Broth' or state.JugMode.value == 'Rzr. Brain Broth' then
  743.                 PetName = "BloodclawShasra";JugInfo = "Razor Brain Broth";PetInfo = "Lynx, Beast";PetJob = 'Warrior'
  744.                 ReadyMoveOne = 'Blaster';ReadyMoveTwo = 'Chaotic Eye';ReadyMoveThree = 'Charged Whisker'
  745.         elseif state.JugMode.value == 'GorefangHobs' or state.JugMode.value == 'Burning Carrion Broth' then
  746.                 PetName = "GorefangHobs";JugInfo = "Burning Carrion Broth";PetInfo = "Tiger, Beast";PetJob = 'Warrior'
  747.                 ReadyMoveOne = 'Razor Fang';ReadyMoveTwo = 'Claw Cyclone';ReadyMoveThree = 'Roar'
  748.         elseif state.JugMode.value == 'GooeyGerard' or state.JugMode.value == 'Cloudy Wheat Broth' then
  749.                 PetName = "GooeyGerard";JugInfo = "Cloudy Wheat Broth";PetInfo = "Slug, Amorph";PetJob = 'Warrior'
  750.                 ReadyMoveOne = 'Purulent Ooze';ReadyMoveTwo = 'Corrosive Ooze';ReadyMoveThree = 'Corrosive Ooze'
  751.         elseif state.JugMode.value == 'CrudeRaphie' or state.JugMode.value == 'Shadowy Broth' then
  752.                 PetName = "CrudeRaphie";JugInfo = "Shadowy Broth";PetInfo = "Adamantoise, Lizard";PetJob = 'Paladin'
  753.                 ReadyMoveOne = 'Tortoise Stomp';ReadyMoveTwo = 'Harden Shell';ReadyMoveThree = 'Aqua Breath'
  754.         elseif state.JugMode.value == 'DroopyDortwin' or state.JugMode.value == 'SwirlingBroth' then
  755.                 PetName = "DroopyDortwin";JugInfo = "Swirling Broth";PetInfo = "Rabbit, Beast";PetJob = 'Warrior'
  756.                 ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot'
  757.         elseif state.JugMode.value == 'PonderingPeter' or state.JugMode.value == 'Viscous Broth' or state.JugMode.value == 'Vis. Broth' then
  758.                 PetName = "PonderingPeter";JugInfo = "Vis. Broth";PetInfo = "HQ Rabbit, Beast";PetJob = 'Warrior'
  759.                 ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot'
  760.         elseif state.JugMode.value == 'SunburstMalfik' or state.JugMode.value == 'Shimmering Broth' then
  761.                 PetName = "SunburstMalfik";JugInfo = "Shimmering Broth";PetInfo = "Crab, Aquan";PetJob = 'Paladin'
  762.                 ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  763.         elseif state.JugMode.value == 'AgedAngus' or state.JugMode.value == 'Fermented Broth' or state.JugMode.value == 'Ferm. Broth' then
  764.                 PetName = "AgedAngus";JugInfo = "Ferm. Broth";PetInfo = "HQ Crab, Aquan";PetJob = 'Paladin'
  765.                 ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  766.         elseif state.JugMode.value == 'WarlikePatrick' or state.JugMode.value == 'Livid Broth' then
  767.                 PetName = "WarlikePatrick";JugInfo = "Livid Broth";PetInfo = "Lizard, Lizard";PetJob = 'Warrior'
  768.                 ReadyMoveOne = 'Tail Blow';ReadyMoveTwo = 'Brain Crush';ReadyMoveThree = 'Fireball'
  769.         elseif state.JugMode.value == 'ScissorlegXerin' or state.JugMode.value == 'Spicy Broth' then
  770.                 PetName = "ScissorlegXerin";JugInfo = "Spicy Broth";PetInfo = "Chapuli, Vermin";PetJob = 'Warrior'
  771.                 ReadyMoveOne = 'Sensilla Blades';ReadyMoveTwo = 'Tegmina Buffet';ReadyMoveThree = 'Tegmina Buffet'
  772.         elseif state.JugMode.value == 'BouncingBertha' or state.JugMode.value == 'Bubbly Broth' then
  773.                 PetName = "BouncingBertha";JugInfo = "Bubbly Broth";PetInfo = "HQ Chapuli, Vermin";PetJob = 'Warrior'
  774.                 ReadyMoveOne = 'Sensilla Blades';ReadyMoveTwo = 'Tegmina Buffet';ReadyMoveThree = 'Tegmina Buffet'
  775.         elseif state.JugMode.value == 'RhymingShizuna' or state.JugMode.value == 'Lyrical Broth' then
  776.                 PetName = "RhymingShizuna";JugInfo = "Lyrical Broth";PetInfo = "Sheep, Beast";PetJob = 'Warrior'
  777.                 ReadyMoveOne = 'Lamb Chop';ReadyMoveTwo = 'Rage';ReadyMoveThree = 'Sheep Song'
  778.         elseif state.JugMode.value == 'AttentiveIbuki' or state.JugMode.value == 'Salubrious Broth' then
  779.                 PetName = "AttentiveIbuki";JugInfo = "Salubrious Broth";PetInfo = "Tulfaire, Bird";PetJob = 'Warrior'
  780.                 ReadyMoveOne = 'Swooping Frenzy';ReadyMoveTwo = 'Pentapeck';ReadyMoveThree = 'Molting Plumage'
  781.         elseif state.JugMode.value == 'SwoopingZhivago' or state.JugMode.value == 'Windy Greens' then
  782.                 PetName = "SwoopingZhivago";JugInfo = "Windy Greens";PetInfo = "HQ Tulfaire, Bird";PetJob = 'Warrior'
  783.                 ReadyMoveOne = 'Swooping Frenzy';ReadyMoveTwo = 'Pentapeck';ReadyMoveThree = 'Molting Plumage'
  784.         elseif state.JugMode.value == 'AmiableRoche' or state.JugMode.value == 'Airy Broth' then
  785.                 PetName = "AmiableRoche";JugInfo = "Airy Broth";PetInfo = "Pugil, Aquan";PetJob = 'Warrior'
  786.                 ReadyMoveOne = 'Recoil Dive';ReadyMoveTwo = 'Water Wall';ReadyMoveThree = 'Intimidate'
  787.         elseif state.JugMode.value == 'HeraldHenry' or state.JugMode.value == 'Translucent Broth' or state.JugMode.value == 'Trans. Broth' then
  788.                 PetName = "HeraldHenry";JugInfo = "Trans. Broth";PetInfo = "Crab, Aquan";PetJob = 'Paladin'
  789.                 ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain'
  790.         elseif state.JugMode.value == 'BrainyWaluis' or state.JugMode.value == 'CrumblySoil' then
  791.                 PetName = "BrainyWaluis";JugInfo = "Crumbly Soil";PetInfo = "Funguar, Plantoid";PetJob = 'Warrior'
  792.                 ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas'
  793.         elseif state.JugMode.value == 'HeadbreakerKen' or state.JugMode.value == 'Blackwater Broth' then
  794.                 PetName = "HeadbreakerKen";JugInfo = "Blackwater Broth";PetInfo = "Fly, Vermin";PetJob = 'Warrior'
  795.                 ReadyMoveOne = 'Somersault';ReadyMoveTwo = 'Cursed Sphere';ReadyMoveThree = 'Venom'
  796.         elseif state.JugMode.value == 'RedolentCandi' or state.JugMode.value == 'Electrified Broth' then
  797.                 PetName = "RedolentCandi";JugInfo = "Electrified Broth";PetInfo = "Snapweed, Plantoid";PetJob = 'Warrior'
  798.                 ReadyMoveOne = 'Tickling Tendrils';ReadyMoveTwo = 'Stink Bomb';ReadyMoveThree = 'Nepenthic Plunge'
  799.         elseif state.JugMode.value == 'AlluringHoney' or state.JugMode.value == 'Bug-Ridden Broth' then
  800.                 PetName = "AlluringHoney";JugInfo = "Bug-Ridden Broth";PetInfo = "HQ Snapweed, Plantoid";PetJob = 'Warrior'
  801.                 ReadyMoveOne = 'Tickling Tendrils';ReadyMoveTwo = 'Stink Bomb';ReadyMoveThree = 'Nectarous Deluge'
  802.         elseif state.JugMode.value == 'CaringKiyomaro' or state.JugMode.value == 'Fizzy Broth' then
  803.                 PetName = "CaringKiyomaro";JugInfo = "Fizzy Broth";PetInfo = "Raaz, Beast";PetJob = 'Monk'
  804.                 ReadyMoveOne = 'Sweeping Gouge';ReadyMoveTwo = 'Zealous Snort';ReadyMoveThree = 'Zealous Snort'
  805.         elseif state.JugMode.value == 'VivaciousVickie' or state.JugMode.value == 'Tantalizing Broth' or state.JugMode.value == 'Tant. Broth' then
  806.                 PetName = "VivaciousVickie";JugInfo = "Tant. Broth";PetInfo = "HQ Raaz, Beast";PetJob = 'Monk'
  807.                 ReadyMoveOne = 'Sweeping Gouge';ReadyMoveTwo = 'Zealous Snort';ReadyMoveThree = 'Zealous Snort'
  808.         elseif state.JugMode.value == 'HurlerPercival' or state.JugMode.value == 'Pale Sap' then
  809.                 PetName = "HurlerPercival";JugInfo = "Pale Sap";PetInfo = "Beetle, Vermin";PetJob = 'Paladin'
  810.                 ReadyMoveOne = 'Power Attack';ReadyMoveTwo = 'Rhino Attack';ReadyMoveThree = 'Hi-Freq Field'
  811.         elseif state.JugMode.value == 'BlackbeardRandy' or state.JugMode.value == 'Meaty Broth' then
  812.                 PetName = "BlackbeardRandy";JugInfo = "Meaty Broth";PetInfo = "Tiger, Beast";PetJob = 'Warrior'
  813.                 ReadyMoveOne = 'Razor Fang';ReadyMoveTwo = 'Claw Cyclone';ReadyMoveThree = 'Roar'
  814.         elseif state.JugMode.value == 'GenerousArthur' or state.JugMode.value == 'Dire Broth' then
  815.                 PetName = "GenerousArthur";JugInfo = "Dire Broth";PetInfo = "Slug, Amorph";PetJob = 'Warrior'
  816.                 ReadyMoveOne = 'Purulent Ooze';ReadyMoveTwo = 'Corrosive Ooze';ReadyMoveThree = 'Corrosive Ooze'
  817.         elseif state.JugMode.value == 'ThreestarLynn' or state.JugMode.value == 'Muddy Broth' then
  818.                 PetName = "ThreestarLynn";JugInfo = "Muddy Broth";PetInfo = "Ladybug, Vermin";PetJob = 'Thief'
  819.                 ReadyMoveOne = 'Spiral Spin';ReadyMoveTwo = 'Sudden Lunge';ReadyMoveThree = 'Noisome Powder'
  820.         elseif state.JugMode.value == 'BraveHeroGlenn' or state.JugMode.value == 'Wispy Broth' then
  821.                 PetName = "BraveHeroGlenn";JugInfo = "Wispy Broth";PetInfo = "Frog, Aquan";PetJob = 'Warrior'
  822.                 ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None'
  823.         elseif state.JugMode.value == 'SharpwitHermes' or state.JugMode.value == 'Saline Broth' then
  824.                 PetName = "SharpwitHermes";JugInfo = "Saline Broth";PetInfo = "Mandragora, Plantoid";PetJob = 'Monk'
  825.                 ReadyMoveOne = 'Head Butt';ReadyMoveTwo = 'Leaf Dagger';ReadyMoveThree = 'Wild Oats'
  826.         elseif state.JugMode.value == 'ColibriFamiliar' or state.JugMode.value == 'Sugary Broth' then
  827.                 PetName = "ColibriFamiliar";JugInfo = "Sugary Broth";PetInfo = "Colibri, Bird";PetJob = 'Red Mage'
  828.                 ReadyMoveOne = 'Pecking Flurry';ReadyMoveTwo = 'Pecking Flurry';ReadyMoveThree = 'Pecking Flurry'
  829.         elseif state.JugMode.value == 'ChoralLeera' or state.JugMode.value == 'Glazed Broth' then
  830.                 PetName = "ChoralLeera";JugInfo = "Glazed Broth";PetInfo = "HQ Colibri, Bird";PetJob = 'Red Mage'
  831.                 ReadyMoveOne = 'Pecking Flurry';ReadyMoveTwo = 'Pecking Flurry';ReadyMoveThree = 'Pecking Flurry'
  832.         elseif state.JugMode.value == 'SpiderFamiliar' or state.JugMode.value == 'Sticky Webbing' then
  833.                 PetName = "SpiderFamiliar";JugInfo = "Sticky Webbing";PetInfo = "Spider, Vermin";PetJob = 'Warrior'
  834.                 ReadyMoveOne = 'Sickle Slash';ReadyMoveTwo = 'Acid Spray';ReadyMoveThree = 'Spider Web'
  835.         elseif state.JugMode.value == 'GussyHachirobe' or state.JugMode.value == 'Slimy Webbing' then
  836.                 PetName = "GussyHachirobe";JugInfo = "Slimy Webbing";PetInfo = "HQ Spider, Vermin";PetJob = 'Warrior'
  837.                 ReadyMoveOne = 'Sickle Slash';ReadyMoveTwo = 'Acid Spray';ReadyMoveThree = 'Spider Web'
  838.         elseif state.JugMode.value == 'AcuexFamiliar' or state.JugMode.value == 'Poisonous Broth' then
  839.                 PetName = "AcuexFamiliar";JugInfo = "Poisonous Broth";PetInfo = "Acuex, Amorph";PetJob = 'Black Mage'
  840.                 ReadyMoveOne = 'Foul Waters';ReadyMoveTwo = 'Pestilent Plume';ReadyMoveThree = 'Pestilent Plume'
  841.         elseif state.JugMode.value == 'FluffyBredo' or state.JugMode.value == 'Venomous Broth' then
  842.                 PetName = "FluffyBredo";JugInfo = "Venomous Broth";PetInfo = "HQ Acuex, Amorph";PetJob = 'Black Mage'
  843.                 ReadyMoveOne = 'Foul Waters';ReadyMoveTwo = 'Pestilent Plume';ReadyMoveThree = 'Pestilent Plume'
  844.         elseif state.JugMode.value == 'SuspiciousAlice' or state.JugMode.value == 'Furious Broth' then
  845.                 PetName = "SuspiciousAlice";JugInfo = "Furious Broth";PetInfo = "Eft, Lizard";PetJob = 'Warrior'
  846.                 ReadyMoveOne = 'Nimble Snap';ReadyMoveTwo = 'Cyclotail';ReadyMoveThree = 'Geist Wall'
  847.         elseif state.JugMode.value == 'AnklebiterJedd' or state.JugMode.value == 'Crackling Broth' then
  848.                 PetName = "AnklebiterJedd";JugInfo = "Crackling Broth";PetInfo = "Diremite, Vermin";PetJob = 'Dark Knight'
  849.                 ReadyMoveOne = 'Double Claw';ReadyMoveTwo = 'Spinning Top';ReadyMoveThree = 'Filamented Hold'
  850.         elseif state.JugMode.value == 'FleetReinhard' or state.JugMode.value == 'Rapid Broth' then
  851.                 PetName = "FleetReinhard";JugInfo = "Rapid Broth";PetInfo = "Raptor, Lizard";PetJob = 'Warrior'
  852.                 ReadyMoveOne = 'Scythe Tail';ReadyMoveTwo = 'Ripper Fang';ReadyMoveThree = 'Chomp Rush'
  853.         elseif state.JugMode.value == 'CursedAnnabelle' or state.JugMode.value == 'Creepy Broth' then
  854.                 PetName = "CursedAnnabelle";JugInfo = "Creepy Broth";PetInfo = "Antlion, Vermin";PetJob = 'Warrior'
  855.                 ReadyMoveOne = 'Mandibular Bite';ReadyMoveTwo = 'Venom Spray';ReadyMoveThree = 'Sandblast'
  856.         elseif state.JugMode.value == 'SurgingStorm' or state.JugMode.value == 'Insipid Broth' then
  857.                 PetName = "SurgingStorm";JugInfo = "Insipid Broth";PetInfo = "Apkallu, Bird";PetJob = 'Monk'
  858.                 ReadyMoveOne = 'Beak Lunge';ReadyMoveTwo = 'Wing Slap';ReadyMoveThree = 'Wing Slap'
  859.         elseif state.JugMode.value == 'SubmergedIyo' or state.JugMode.value == 'Deepwater Broth' then
  860.                 PetName = "SubmergedIyo";JugInfo = "Deepwater Broth";PetInfo = "HQ Apkallu, Bird";PetJob = 'Monk'
  861.                 ReadyMoveOne = 'Beak Lunge';ReadyMoveTwo = 'Wing Slap';ReadyMoveThree = 'Wing Slap'
  862.         elseif state.JugMode.value == 'MosquitoFamiliar' or state.JugMode.value == 'Wetlands Broth' then
  863.                 PetName = "MosquitoFamiliar";JugInfo = "Wetlands Broth";PetInfo = "Mosquito, Vermin";PetJob = 'Dark Knight'
  864.                 ReadyMoveOne = 'Infected Leech';ReadyMoveTwo = 'Gloom Spray';ReadyMoveThree = 'Gloom Spray'
  865.         elseif state.JugMode.value == 'Left-HandedYoko' or state.JugMode.value == 'Heavenly Broth' then
  866.                 PetName = "Left-HandedYoko";JugInfo = "Heavenly Broth";PetInfo = "HQ Mosquito, Vermin";PetJob = 'Dark Knight'
  867.                 ReadyMoveOne = 'Infected Leech';ReadyMoveTwo = 'Gloom Spray';ReadyMoveThree = 'Gloom Spray'
  868.         end
  869.  
  870.     update_display_mode_info()
  871. end
  872.  
  873. -------------------------------------------------------------------------------------------------------------------
  874. -- Ready Move Presets - Credit to Bomberto
  875. -------------------------------------------------------------------------------------------------------------------
  876.  
  877. function job_self_command(cmdParams, eventArgs)
  878.     if cmdParams[1]:lower() == 'ready' then
  879.         ready_move(cmdParams)
  880.         eventArgs.handled = true
  881.     end
  882. end
  883.  
  884. function ready_move(cmdParams)
  885.      local move = cmdParams[2]:lower()
  886.  
  887.         if pet.name == 'DroopyDortwin' or pet.name == 'PonderingPeter' or pet.name == 'HareFamiliar' or pet.name == 'KeenearedSteffi' or pet.name == 'LuckyLulush' then
  888.             if move == 'one' then
  889.                 send_command('input /pet "Foot Kick" <me>')
  890.             elseif move == 'two' then
  891.                 send_command('input /pet "Whirl Claws" <me>')
  892.             elseif move == 'three' then
  893.                 send_command('input /pet "Wild Carrot" <me>') end
  894.         elseif pet.name == 'SunburstMalfik' or pet.name == 'AgedAngus' or pet.name == 'HeraldHenry' or pet.name == 'CrabFamiliar' or pet.name == 'CourierCarrie' then
  895.             if move == 'one' then
  896.                 send_command('input /pet "Big Scissors" <me>')
  897.             elseif move == 'two' then
  898.                 send_command('input /pet "Scissor Guard" <me>')
  899.             elseif move == 'three' then
  900.                 send_command('input /pet "Bubble Curtain" <me>') end
  901.         elseif pet.name == 'WarlikePatrick' or pet.name == 'LizardFamiliar' or pet.name == 'ColdbloodedComo' or pet.name == 'AudaciousAnna' then
  902.             if move == 'one' then
  903.                 send_command('input /pet "Tail Blow" <me>')
  904.             elseif move == 'two' then
  905.                 send_command('input /pet "Brain Crush" <me>')
  906.             elseif move == 'three' then
  907.                 send_command('input /pet "Fireball" <me>') end
  908.         elseif pet.name == 'ScissorlegXerin' or pet.name == 'BouncingBertha' then
  909.             if move == 'one' then
  910.                 send_command('input /pet "Sensilla Blades" <me>')
  911.             elseif move == 'two' or move == 'three' then
  912.                 send_command('input /pet "Tegmina Buffet" <me>') end
  913.         elseif pet.name == 'RhymingShizuna' or pet.name == 'SheepFamiliar' or pet.name == 'LullabyMelodia' or pet.name == 'NurseryNazuna' then
  914.             if move == 'one' then
  915.                 send_command('input /pet "Lamb Chop" <me>')
  916.             elseif move == 'two' then
  917.                 send_command('input /pet "Rage" <me>')
  918.             elseif move == 'three' then
  919.                 send_command('input /pet "Sheep Song" <me>') end
  920.         elseif pet.name == 'AttentiveIbuki' or pet.name == 'SwoopingZhivago' then
  921.             if move == 'one' then
  922.                 send_command('input /pet "Swooping Frenzy" <me>')
  923.             elseif move == 'two' then
  924.                 send_command('input /pet "Pentapeck" <me>')
  925.             elseif move == 'three' then
  926.                 send_command('input /pet "Molting Plumage" <me>') end
  927.         elseif pet.name == 'AmiableRoche' or pet.name == 'TurbidToloi' then
  928.             if move == 'one' then
  929.                 send_command('input /pet "Recoil Dive" <me>')
  930.             elseif move == 'two' then
  931.                 send_command('input /pet "Water Wall" <me>')
  932.             elseif move == 'three' then
  933.                 send_command('input /pet "Intimidate" <me>') end
  934.         elseif pet.name == 'BrainyWaluis' or pet.name == 'FunguarFamiliar' or pet.name == 'DiscreetLouise' then
  935.             if move == 'one' then
  936.                 send_command('input /pet "Frogkick" <me>')
  937.             elseif move == 'two' then
  938.                 send_command('input /pet "Spore" <me>')
  939.             elseif move == 'three' then
  940.                 send_command('input /pet "Silence Gas" <me>') end              
  941.         elseif pet.name == 'HeadbreakerKen' or pet.name == 'MayflyFamiliar' or pet.name == 'ShellbusterOrob' or pet.name == 'MailbusterCetas' then
  942.             if move == 'one' then
  943.                 send_command('input /pet "Somersault" <me>')  
  944.             elseif move == 'two' then
  945.                 send_command('input /pet "Cursed Sphere" <me>')
  946.             elseif move == 'three' then
  947.                 send_command('input /pet "Venom" <me>') end                
  948.         elseif pet.name == 'RedolentCandi' or pet.name == 'AlluringHoney' then
  949.             if move == 'one' then
  950.                 send_command('input /pet "Tickling Tendrils" <me>')
  951.             elseif move == 'two' then
  952.                 send_command('input /pet "Stink Bomb" <me>')
  953.             elseif move == 'three' then
  954.                 send_command('input /pet "Nectarous Deluge" <me>') end
  955.         elseif pet.name == 'CaringKiyomaro' or pet.name == 'VivaciousVickie' then
  956.             if move == 'one' then
  957.                 send_command('input /pet "Sweeping Gouge" <me>')
  958.             elseif move == 'two' or move == 'three' then
  959.                 send_command('input /pet "Zealous Snort" <me>') end
  960.         elseif pet.name == 'HurlerPercival' or pet.name == 'BeetleFamiliar' or pet.name == 'PanzerGalahad' then
  961.             if move == 'one' then
  962.                 send_command('input /pet "Power Attack" <me>')
  963.             elseif move == 'two' then
  964.                 send_command('input /pet "Rhino Attack" <me>')
  965.             elseif move == 'three' then
  966.                 send_command('input /pet "Hi-Freq Field" <me>') end
  967.         elseif pet.name == 'BlackbeardRandy' or pet.name == 'TigerFamiliar' or pet.name == 'SaberSiravarde' or pet.name == 'GorefangHobs' then
  968.             if move == 'one' then
  969.                 send_command('input /pet "Razor Fang" <me>')
  970.             elseif move == 'two' then
  971.                 send_command('input /pet "Claw Cyclone" <me>')
  972.             elseif move == 'three' then
  973.                 send_command('input /pet "Roar" <me>') end
  974.         elseif pet.name == 'ColibriFamiliar' or pet.name == 'ChoralLeera' then
  975.             if move == 'one' or move == 'two' or move == 'three' then
  976.                 send_command('input /pet "Pecking Flurry" <me>') end
  977.         elseif pet.name == 'SpiderFamiliar' or pet.name == 'GussyHachirobe' then
  978.             if move == 'one' then
  979.                 send_command('input /pet "Sickle Slash" <me>')
  980.             elseif move == 'two' then
  981.                 send_command('input /pet "Acid Spray" <me>')
  982.             elseif move == 'three' then
  983.                 send_command('input /pet "Spider Web" <me>') end
  984.         elseif pet.name == 'GenerousArthur' or pet.name == 'GooeyGerard' then
  985.             if move == 'one' then
  986.                 send_command('input /pet "Purulent Ooze" <me>')
  987.             elseif move == 'two' or move == 'three' then
  988.                 send_command('input /pet "Corrosive Ooze" <me>') end
  989.         elseif pet.name == 'ThreestarLynn' or pet.name == 'DipperYuly' then
  990.             if move == 'one' then
  991.                 send_command('input /pet "Spiral Spin" <me>')
  992.             elseif move == 'two' then
  993.                 send_command('input /pet "Sudden Lunge" <me>')
  994.             elseif move == 'three' then
  995.                 send_command('input /pet "Noisome Powder" <me>') end
  996.         elseif pet.name == 'SharpwitHermes' or pet.name == 'FlowerpotBill' or pet.name == 'FlowerpotBen' or pet.name == 'Homunculus' or pet.name == 'FlowerpotMerle' then
  997.             if move == 'one' then
  998.                 send_command('input /pet "Head Butt" <me>')
  999.             elseif move == 'two' then
  1000.                 send_command('input /pet "Leaf Dagger" <me>')
  1001.             elseif move == 'three' then
  1002.                 send_command('input /pet "Wild Oats" <me>') end
  1003.         elseif pet.name == 'AcuexFamiliar' or pet.name == 'FluffyBredo' then
  1004.             if move == 'one' then
  1005.                 send_command('input /pet "Foul Waters" <me>')
  1006.             elseif move == 'two' or move == 'three' then
  1007.                 send_command('input /pet "Pestilent Plume" <me>') end
  1008.         elseif pet.name == 'FlytrapFamiliar' or pet.name == 'VoraciousAudrey' or pet.name == 'PrestoJulio' then
  1009.             if move == 'one' then
  1010.                 send_command('input /pet "Soporific" <me>')
  1011.             elseif move == 'two' then
  1012.                 send_command('input /pet "Palsy Pollen" <me>')
  1013.             elseif move == 'three' then
  1014.                 send_command('input /pet "Gloeosuccus" <me>') end
  1015.         elseif pet.name == 'EftFamiliar' or pet.name == 'AmbusherAllie' or pet.name == 'BugeyedBroncha' or pet.name == 'SuspiciousAlice' then
  1016.             if move == 'one' then
  1017.                 send_command('input /pet "Nimble Snap" <me>')
  1018.             elseif move == 'two' then
  1019.                 send_command('input /pet "Cyclotail" <me>')
  1020.             elseif move == 'three' then
  1021.                 send_command('input /pet "Geist Wall" <me>') end
  1022.         elseif pet.name == 'AntlionFamiliar' or pet.name == 'ChopsueyChucky' or pet.name == 'CursedAnnabelle' then
  1023.             if move == 'one' then
  1024.                 send_command('input /pet "Mandibular Bite" <me>')
  1025.             elseif move == 'two' then
  1026.                 send_command('input /pet "Venom Spray" <me>')
  1027.             elseif move == 'three' then
  1028.                 send_command('input /pet "Sandblast" <me>') end
  1029.         elseif pet.name == 'MiteFamiliar' or pet.name == 'LifedrinkerLars' or pet.name == 'AnklebiterJedd' then
  1030.             if move == 'one' then
  1031.                 send_command('input /pet "Double Claw" <me>')
  1032.             elseif move == 'two' then
  1033.                 send_command('input /pet "Spinning Top" <me>')
  1034.             elseif move == 'three' then
  1035.                 send_command('input /pet "Filamented Hold" <me>') end
  1036.         elseif pet.name == 'AmigoSabotender' then
  1037.             if move == 'one' then
  1038.                 send_command('input /pet "Needleshot" <me>')
  1039.             elseif move == 'two' or move == 'three' then
  1040.                 send_command('input /pet "??? Needles" <me>') end
  1041.         elseif pet.name == 'CraftyClyvonne' or pet.name == 'BloodclawShashra' then
  1042.             if move == 'one' then
  1043.                 send_command('input /pet "Chaotic Eye" <me>')
  1044.             elseif move == 'two' then
  1045.                 send_command('input /pet "Blaster" <me>')
  1046.             elseif move == 'three' then
  1047.                 send_command('input /pet "Charged Whisker" <me>') end
  1048.         elseif pet.name == 'SwiftSieghard' or pet.name == 'FleetReinhard' then
  1049.             if move == 'one' then
  1050.                 send_command('input /pet "Scythe Tail" <me>')
  1051.             elseif move == 'two' then
  1052.                 send_command('input /pet "Ripper Fang" <me>')
  1053.             elseif move == 'three' then
  1054.                 send_command('input /pet "Chomp Rush" <me>') end
  1055.         elseif pet.name == 'DapperMac' or pet.name == 'SurgingStorm' or pet.name == 'SubmergedIyo' then
  1056.             if move == 'one' then
  1057.                 send_command('input /pet "Beak Lunge" <me>')
  1058.             elseif move == 'two' or move == 'three' then
  1059.                 send_command('input /pet "Wing Slap" <me>') end
  1060.         elseif pet.name == 'FatsoFargann' then
  1061.             if move == 'one' then
  1062.                 send_command('input /pet "Suction" <me>')
  1063.             elseif move == 'two' then
  1064.                 send_command('input /pet "Acid Mist" <me>')
  1065.             elseif move == 'three' then
  1066.                 send_command('input /pet "Drain Kiss" <me>') end
  1067.         elseif pet.name == 'FaithfulFalcorr' then
  1068.             if move == 'one' then
  1069.                 send_command('input /pet "Back Heel" <me>')
  1070.             elseif move == 'two' then
  1071.                 send_command('input /pet "Choke Breath" <me>')
  1072.             elseif move == 'three' then
  1073.                 send_command('input /pet "Fantod" <me>') end
  1074.         elseif pet.name == 'CrudeRaphie' then
  1075.             if move == 'one' then
  1076.                 send_command('input /pet "Tortoise Stomp" <me>')  
  1077.             elseif move == 'two' then
  1078.                 send_command('input /pet "Harden Shell" <me>')
  1079.             elseif move == 'three' then
  1080.                 send_command('input /pet "Aqua Breath" <me>') end
  1081.         elseif pet.name == 'MosquitoFamilia' or pet.name == 'Left-HandedYoko' then
  1082.             if move == 'one' then
  1083.                 send_command('input /pet "Infected Leech" <me>')
  1084.             elseif move == 'two' or move == 'three' then
  1085.                 send_command('input /pet "Gloom Spray" <me>') end
  1086.     end
  1087. end
  1088.  
  1089. -- Updates gear based on pet status changes.
  1090. function job_pet_status_change(newStatus, oldStatus, eventArgs)
  1091.     if newStatus == 'Idle' or newStatus == 'Engaged' then
  1092.         handle_equipping_gear(player.status)
  1093.     end
  1094.     if pet.hpp == 0 then
  1095.         clear_pet_buff_timers()
  1096.     end
  1097. end
  1098.  
  1099. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  1100. function display_current_job_state(eventArgs)
  1101.     local msg = 'Melee'
  1102.    
  1103.     if state.CombatForm.has_value then
  1104.         msg = msg .. ' (' .. state.CombatForm.value .. ')'
  1105.     end
  1106.    
  1107.     msg = msg .. ': '
  1108.    
  1109.     msg = msg .. state.OffenseMode.value
  1110.     if state.HybridMode.value ~= 'Normal' then
  1111.         msg = msg .. '/' .. state.HybridMode.value
  1112.     end
  1113.     msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  1114.    
  1115.     if state.DefenseMode.value ~= 'None' then
  1116.         msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  1117.     end
  1118.    
  1119.     if state.Kiting.value then
  1120.         msg = msg .. ', Kiting'
  1121.     end
  1122.  
  1123.     msg = msg .. ', Reward: '..state.RewardMode.value..', Corr.: '..state.CorrelationMode.value
  1124.  
  1125.     if state.JugMode.value ~= 'None' then
  1126.         add_to_chat(8,'-- Jug Pet: '.. PetName ..' -- Jug: '.. JugInfo ..' -- (Pet Info: '.. PetInfo ..', '.. PetJob ..')')
  1127.     end
  1128.  
  1129.     add_to_chat(28,'Ready Moves: 1.'.. ReadyMoveOne ..'  2.'.. ReadyMoveTwo ..'  3.'.. ReadyMoveThree ..'')
  1130.     add_to_chat(122, msg)
  1131.  
  1132.     eventArgs.handled = true
  1133. end
  1134.  
  1135. -------------------------------------------------------------------------------------------------------------------
  1136. -- Utility functions specific to this job.
  1137. -------------------------------------------------------------------------------------------------------------------
  1138.  
  1139. function get_combat_form()
  1140.     if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  1141.         state.CombatForm:set('DW')
  1142.     else
  1143.         state.CombatForm:reset()
  1144.     end
  1145. end
  1146.  
  1147. function pet_buff_timer(spell)
  1148.     if spell.english == 'Reward' then
  1149.         send_command('timers c "Pet: Regen" 180 down '..RewardRegenIcon..'')
  1150.     elseif spell.english == 'Spur' then
  1151.         send_command('timers c "Pet: Spur" 90 down '..SpurIcon..'')
  1152.     elseif spell.english == 'Run Wild' then
  1153.         send_command('timers c "'..spell.english..'" '..RunWildDuration..' down '..RunWildIcon..'')
  1154.     end
  1155. end
  1156.  
  1157. function clear_pet_buff_timers()
  1158.     send_command('timers c "Pet: Regen" 0 down '..RewardRegenIcon..'')
  1159.     send_command('timers c "Pet: Spur" 0 down '..SpurIcon..'')
  1160.     send_command('timers c "Run Wild" 0 down '..RunWildIcon..'')
  1161. end
  1162.  
  1163. function display_mode_info()
  1164.     if DisplayModeInfo == 'true' then
  1165.         send_command('text AccuracyText create Accuracy Mode: Normal')
  1166.         send_command('text AccuracyText pos '..TextBoxX..' '..TextBoxY..'')
  1167.         send_command('text AccuracyText size '..TextSize..'')
  1168.         TextBoxY = TextBoxY + (TextSize + 6)
  1169.         send_command('text CorrelationText create Correlation Mode: Neutral')
  1170.         send_command('text CorrelationText pos '..TextBoxX..' '..TextBoxY..'')
  1171.         send_command('text CorrelationText size '..TextSize..'')
  1172.         TextBoxY = TextBoxY + (TextSize + 6)
  1173.         send_command('text PetModeText create Pet Mode: PetOnly')
  1174.         send_command('text PetModeText pos '..TextBoxX..' '..TextBoxY..'')
  1175.         send_command('text PetModeText size '..TextSize..'')
  1176.         TextBoxY = TextBoxY + (TextSize + 6)
  1177.         send_command('text JugPetText create Jug Mode: Meaty Broth')
  1178.         send_command('text JugPetText pos '..TextBoxX..' '..TextBoxY..'')
  1179.         send_command('text JugPetText size '..TextSize..'')
  1180.     end
  1181. end
  1182.  
  1183. function update_display_mode_info()
  1184.     if DisplayModeInfo == 'true' then
  1185.         send_command('text AccuracyText text Acc. Mode: '..state.OffenseMode.value..'')
  1186.         send_command('text CorrelationText text Corr. Mode: '..state.CorrelationMode.value..'')
  1187.         send_command('text PetModeText text Pet Mode: '..state.PetMode.value..'')
  1188.         send_command('text JugPetText text Jug Mode: '..state.JugMode.value..'')
  1189.     end
  1190. end
  1191.  
  1192. function get_melee_groups()
  1193.     classes.CustomMeleeGroups:clear()
  1194.  
  1195.     if buffactive['Aftermath: Lv.3'] then
  1196.         classes.CustomMeleeGroups:append('Aftermath')
  1197.     end
  1198. end
Add Comment
Please, Sign In to add comment