Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---------------------------------------
- -- Last Revised: February 23rd, 2021 --
- ---------------------------------------
- -- Added Gleti's Armor Set
- ---------------------------------------------
- -- Gearswap Commands Specific to this File --
- ---------------------------------------------
- -- Universal Ready Move Commands -
- -- //gs c Ready one
- -- //gs c Ready two
- -- //gs c Ready three
- -- //gs c Ready four
- --
- -- alt+F8 cycles through designated Jug Pets
- -- ctrl+F8 cycles backwards through designated Jug Pets
- -- alt+F11 toggles Monster Correlation between Neutral and Favorable
- -- alt+= switches between Pet-Only (Axe Swaps) and Master (no Axe Swap) modes
- -- ctrl+= switches between Reward Modes (Theta / Roborant)
- -- alt+` can swap in the usage of Chaac Belt for Treasure Hunter on common subjob abilities.
- -- ctrl+F11 cycles between Magical Defense Modes
- --
- -------------------------------
- -- General Gearswap Commands --
- -------------------------------
- -- F9 cycles Accuracy modes
- -- ctrl+F9 cycles Hybrid modes
- -- F10 equips Physical Defense
- -- alt+F10 toggles Kiting on or off
- -- ctrl+F10 cycles Physical Defense modes
- -- F11 equips Magical Defense
- -- alt+F12 turns off Defense modes
- -- ctrl+F12 cycles Idle modes
- --
- -- Keep in mind that any time you Change Jobs/Subjobs, your Pet/Correlation/etc reset to default options.
- -- F12 will list your current options.
- --
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function that defines sets and variables to be used.
- -------------------------------------------------------------------------------------------------------------------
- -- IMPORTANT: Make sure to also get the Mote-Include.lua file (and its supplementary files) to go with this.
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- function job_setup()
- -- Display and Random Lockstyle Generator options
- DisplayPetBuffTimers = 'false'
- DisplayModeInfo = 'false'
- RandomLockstyleGenerator = 'false'
- PetName = 'None';PetJob = 'None';PetInfo = 'None';ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None';ReadyMoveFour = 'None'
- pet_info_update()
- -- Input Pet:TP Bonus values for Skirmish Axes used during Pet Buffs
- TP_Bonus_Main = 200
- TP_Bonus_Sub = 200
- -- 1200 Job Point Gift Bonus (Set equal to 0 if below 1200 Job Points)
- TP_Gift_Bonus = 40
- -- (Adjust Run Wild Duration based on # of Job Points)
- RunWildDuration = 340;RunWildIcon = 'abilities/00121.png'
- RewardRegenIcon = 'spells/00023.png'
- SpurIcon = 'abilities/00037.png'
- BubbleCurtainDuration = 180;BubbleCurtainIcon = 'spells/00048.png'
- ScissorGuardIcon = 'spells/00043.png'
- SecretionIcon = 'spells/00053.png'
- RageIcon = 'abilities/00002.png'
- RhinoGuardIcon = 'spells/00053.png'
- ZealousSnortIcon = 'spells/00057.png'
- -- Display Mode Info as on-screen Text
- TextBoxX = 1075
- TextBoxY = 47
- TextSize = 10
- -- List of Equipment Sets created for Random Lockstyle Generator
- -- (If you want to have the same Lockstyle every time, reduce the list to a single Equipset #)
- random_lockstyle_list = {1,2,3,4,5,6,7,8,9,10,11,12,13}
- state.Buff['Aftermath: Lv.3'] = buffactive['Aftermath: Lv.3'] or false
- state.Buff['Killer Instinct'] = buffactive['Killer Instinct'] or false
- if DisplayModeInfo == 'true' then
- DisplayTrue = 1
- end
- get_combat_form()
- get_melee_groups()
- end
- function user_setup()
- state.OffenseMode:options('Normal', 'MedAcc', 'HighAcc', 'MaxAcc')
- state.WeaponskillMode:options('Normal', 'WSMedAcc', 'WSHighAcc')
- state.HybridMode:options('Normal', 'SubtleBlow')
- state.CastingMode:options('Normal')
- state.IdleMode:options('Normal', 'Reraise', 'Refresh')
- state.RestingMode:options('Normal')
- state.PhysicalDefenseMode:options('PDT', 'PetPDT')
- state.MagicalDefenseMode:options('MDT', 'PetMDT')
- -- Set up Jug Pet cycling and keybind Alt+F8/Ctrl+F8
- -- INPUT PREFERRED JUG PETS HERE
- state.JugMode = M{['description']='Jug Mode', 'Dire Broth', 'Tant. Broth', 'Lyrical Broth'}
- send_command('bind !f8 gs c cycle JugMode')
- send_command('bind ^f8 gs c cycleback JugMode')
- -- Set up Monster Correlation Modes and keybind Alt+F11
- state.CorrelationMode = M{['description']='Correlation Mode', 'Neutral', 'Favorable'}
- send_command('bind !f11 gs c cycle CorrelationMode')
- -- Set up Axe Swapping Modes and keybind alt+=
- state.AxeMode = M{['description']='Axe Mode', 'NoSwaps', 'PetOnly'}
- send_command('bind != gs c cycle AxeMode')
- -- Set up Reward Modes and keybind ctrl+=
- state.RewardMode = M{['description']='Reward Mode', 'Theta', 'Roborant'}
- send_command('bind ^= gs c cycle RewardMode')
- -- Keybind Ctrl+F11 to cycle Magical Defense Modes
- send_command('bind ^f11 gs c cycle MagicalDefenseMode')
- -- Set up Treasure Modes and keybind Alt+`
- state.TreasureMode = M{['description']='Treasure Mode', 'Tag', 'Normal'}
- send_command('bind !` gs c cycle TreasureMode')
- -- 'Out of Range' distance; Melee WSs will auto-cancel
- target_distance = 8
- -- Categorized list of Ready moves
- physical_ready_moves = S{'Foot Kick','Whirl Claws','Sheep Charge','Lamb Chop','Head Butt','Wild Oats',
- 'Leaf Dagger','Claw Cyclone','Razor Fang','Crossthrash','Nimble Snap','Cyclotail','Rhino Attack',
- 'Power Attack','Mandibular Bite','Big Scissors','Grapple','Spinning Top','Double Claw','Frogkick',
- 'Blockhead','Brain Crush','Tail Blow','Scythe Tail','Ripper Fang','Chomp Rush','Needleshot',
- 'Recoil Dive','Sudden Lunge','Spiral Spin','Wing Slap','Beak Lunge','Suction','Back Heel',
- 'Fantod','Tortoise Stomp','Sensilla Blades','Tegmina Buffet','Pentapeck','Sweeping Gouge',
- 'Somersault','Tickling Tendrils','Pecking Flurry','Sickle Slash','Disembowel','Extirpating Salvo',
- 'Mega Scissors','Rhinowrecker','Hoof Volley','Fluid Toss','Fluid Spread'}
- magic_atk_ready_moves = S{'Dust Cloud','Cursed Sphere','Venom','Toxic Spit','Bubble Shower','Drainkiss',
- 'Silence Gas','Dark Spore','Fireball','Plague Breath','Snow Cloud','Charged Whisker','Corrosive Ooze',
- 'Aqua Breath','Stink Bomb','Nectarous Deluge','Nepenthic Plunge','Pestilent Plume','Foul Waters',
- 'Acid Spray','Infected Leech','Gloom Spray','Venom Shower'}
- magic_acc_ready_moves = S{'Sheep Song','Scream','Dream Flower','Roar','Predatory Glare','Gloeosuccus',
- 'Palsy Pollen','Soporific','Geist Wall','Toxic Spit','Numbing Noise','Spoil','Hi-Freq Field',
- 'Sandpit','Sandblast','Venom Spray','Filamented Hold','Queasyshroom','Numbshroom','Spore','Shakeshroom',
- 'Infrasonics','Chaotic Eye','Blaster','Purulent Ooze','Intimidate','Noisome Powder','Acid Mist',
- 'Choke Breath','Jettatura','Nihility Song','Molting Plumage','Swooping Frenzy','Spider Web'}
- multi_hit_ready_moves = S{'Pentapeck','Tickling Tendrils','Sweeping Gouge','Chomp Rush','Wing Slap',
- 'Pecking Flurry'}
- tp_based_ready_moves = S{'Foot Kick','Dust Cloud','Snow Cloud','Sheep Song','Sheep Charge','Lamb Chop',
- 'Head Butt','Scream','Dream Flower','Wild Oats','Leaf Dagger','Claw Cyclone','Razor Fang','Roar',
- 'Gloeosuccus','Palsy Pollen','Soporific','Cursed Sphere','Somersault','Geist Wall','Numbing Noise',
- 'Frogkick','Nimble Snap','Cyclotail','Spoil','Rhino Attack','Hi-Freq Field','Sandpit','Sandblast',
- 'Mandibular Bite','Metallic Body','Bubble Shower','Grapple','Spinning Top','Double Claw','Spore',
- 'Filamented Hold','Blockhead','Fireball','Tail Blow','Plague Breath','Brain Crush','Infrasonics',
- 'Needleshot','Chaotic Eye','Blaster','Ripper Fang','Intimidate','Recoil Dive','Water Wall',
- 'Sudden Lunge','Noisome Powder','Wing Slap','Beak Lunge','Suction','Drainkiss','Acid Mist',
- 'TP Drainkiss','Back Heel','Jettatura','Choke Breath','Fantod','Charged Whisker','Purulent Ooze',
- 'Corrosive Ooze','Tortoise Stomp','Aqua Breath','Sensilla Blades','Tegmina Buffet','Sweeping Gouge',
- 'Tickling Tendrils','Pecking Flurry','Pestilent Plume','Foul Waters','Spider Web','Gloom Spray',
- 'Disembowel','Extirpating Salvo','Rhinowrecker','Venom Shower','Fluid Toss','Fluid Spread','Digest'}
- -- List of Pet Buffs and Ready moves exclusively modified by Pet TP Bonus gear.
- pet_buff_moves = S{'Wild Carrot','Bubble Curtain','Scissor Guard','Secretion','Rage','Harden Shell',
- 'TP Drainkiss','Fantod','Rhino Guard','Zealous Snort','Frenzied Rage','Digest'}
- -- List of Jug Modes that will cancel if Call Beast is used (Bestial Loyalty-only jug pets, HQs generally).
- call_beast_cancel = S{'Vis. Broth','Ferm. Broth','Bubbly Broth','Windy Greens','Bug-Ridden Broth','Tant. Broth',
- 'Glazed Broth','Slimy Webbing','Deepwater Broth','Venomous Broth','Heavenly Broth'}
- -- List of abilities to reference for applying Treasure Hunter gear.
- abilities_to_check = S{'Feral Howl','Quickstep','Box Step','Stutter Step','Desperate Flourish',
- 'Violent Flourish','Animated Flourish','Provoke','Dia','Dia II','Flash','Bio','Bio II',
- 'Sleep','Sleep II','Drain','Aspir','Dispel','Stun','Steal','Mug'}
- enmity_plus_moves = S{'Provoke','Berserk','Warcry','Aggressor','Holy Circle','Sentinel','Last Resort',
- 'Souleater','Vallation','Swordplay'}
- -- Random Lockstyle generator.
- if RandomLockstyleGenerator == 'true' then
- local randomLockstyle = random_lockstyle_list[math.random(1, #random_lockstyle_list)]
- send_command('@wait 5;input /lockstyleset '.. randomLockstyle)
- end
- display_mode_info()
- end
- function file_unload()
- if binds_on_unload then
- binds_on_unload()
- end
- -- Unbinds the Reward, Correlation, JugMode, AxeMode and Treasure hotkeys.
- send_command('unbind !=')
- send_command('unbind ^=')
- send_command('unbind @=')
- send_command('unbind !f8')
- send_command('unbind ^f8')
- send_command('unbind @f8')
- send_command('unbind ^f11')
- -- Removes any Text Info Boxes
- send_command('text JugPetText delete')
- send_command('text CorrelationText delete')
- send_command('text AxeModeText delete')
- send_command('text AccuracyText delete')
- end
- -- BST gearsets
- function init_gear_sets()
- -------------------------------------------------
- -- AUGMENTED GEAR AND GENERAL GEAR DEFINITIONS --
- -------------------------------------------------
- Pet_Idle_AxeMain = "Pangu"
- Pet_Idle_AxeSub = "Izizoeksi"
- Pet_PDT_AxeMain = "Pangu"
- Pet_PDT_AxeSub = {name="Kumbhakarna", augments={'Pet: DEF+20','Pet: Damage taken -4%','Pet: STR+14 Pet: DEX+14 Pet: VIT+14',}}
- Pet_MDT_AxeMain = "Pangu"
- Pet_MDT_AxeSub = "Izizoeksi"
- Pet_TP_AxeMain = "Skullrender"
- Pet_TP_AxeSub = "Skullrender"
- Pet_Regen_AxeMain = "Buramgh +1"
- Pet_Regen_AxeSub = {name="Kumbhakarna", augments={'Pet: Mag. Evasion+20','Pet: "Regen"+3','MND+17',}}
- Ready_Atk_Axe = "Aymur"
- Ready_Atk_Axe2 = "Agwu's Axe"
- Ready_Atk_TPBonus_Axe = "Aymur"
- Ready_Atk_TPBonus_Axe2 = {name="Kumbhakarna", augments={'Pet: Attack+25 Pet: Rng.Atk.+25','Pet: "Dbl.Atk."+4 Pet: Crit.hit rate +4','Pet: TP Bonus+200',}}
- Ready_Acc_Axe = "Arktoi"
- Ready_Acc_Axe2 = "Agwu's Axe"
- Ready_MAB_Axe = {name="Digirbalag", augments={'Pet: Mag. Acc.+21','Pet: "Mag.Atk.Bns."+30','INT+2 MND+2 CHR+2',}}
- Ready_MAB_Axe2 = "Deacon Tabar"
- Ready_MAB_TPBonus_Axe = {name="Kumbhakarna", augments={'Pet: "Mag.Atk.Bns."+25','Pet: Phys. dmg. taken -4%','Pet: TP Bonus+200',}}
- Ready_MAB_TPBonus_Axe2 = {name="Kumbhakarna", augments={'Pet: "Mag.Atk.Bns."+22','Pet: Phys. dmg. taken -5%','Pet: TP Bonus+200',}}
- Ready_MAcc_Axe = {name="Kumbhakarna", augments={'Pet: Mag. Acc.+20','"Cure" potency +15%','Pet: TP Bonus+180',}}
- Ready_MAcc_Axe2 = "Agwu's Axe"
- Reward_Axe = "Farsha"
- Reward_Axe2 = {name="Kumbhakarna", augments={'Pet: Mag. Evasion+20','Pet: "Regen"+3','MND+17',}}
- Reward_back = {name="Artio's Mantle", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%',}}
- Pet_PDT_head = "Anwig Salade"
- Pet_PDT_body = "Totemic Jackcoat +3"
- Pet_PDT_hands = "Gleti's Gauntlets"
- Pet_PDT_legs = "Tali'ah Seraweels +2"
- Pet_PDT_feet = "Ankusa Gaiters +3"
- Pet_PDT_back = {name="Artio's Mantle", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','Evasion+10','Pet: "Regen"+10','System: 1 ID: 1246 Val: 4',}}
- Pet_MDT_head = "Anwig Salade"
- Pet_MDT_body = "Totemic Jackcoat +3"
- Pet_MDT_hands = "Gleti's Gauntlets"
- Pet_MDT_legs = "Tali'ah Seraweels +2"
- Pet_MDT_feet = {name="Taeon Boots", augments={'Pet: Mag. Evasion+22','Pet: "Regen"+3','Pet: Damage taken -4%',}}
- Pet_MDT_back = {name="Artio's Mantle", augments={'INT+20','Eva.+20 /Mag. Eva.+20','Pet: "Regen"+10','System: 1 ID: 1247 Val: 4',}}
- Pet_DT_head = "Anwig Salade"
- Pet_DT_body = {name="Acro Surcoat", augments={'Pet: DEF+22','Pet: "Regen"+3','Pet: Damage taken -4%',}}
- Pet_DT_hands = {name="Acro Gauntlets", augments={'Pet: DEF+22','Pet: "Regen"+3','Pet: Damage taken -4%',}}
- Pet_DT_legs = {name="Acro Breeches", augments={'Pet: DEF+25','Pet: "Regen"+3','Pet: Damage taken -4%',}}
- Pet_DT_feet = {name="Acro Leggings", augments={'Pet: DEF+25','Pet: "Regen"+3','Pet: Damage taken -4%',}}
- Pet_Regen_head = {name="Valorous Mask", augments={'Pet: "Regen"+5','Pet: Accuracy+13 Pet: Rng. Acc.+13',}}
- Pet_Regen_body = {name="Valorous Mail", augments={'Pet: Accuracy+27 Pet: Rng. Acc.+27','Pet: "Regen"+5','Pet: Attack+4 Pet: Rng.Atk.+4',}}
- Pet_Regen_hands = {name="Valorous Mitts", augments={'Pet: Accuracy+29 Pet: Rng. Acc.+29','Pet: "Regen"+5','Pet: DEX+7','Pet: Attack+15 Pet: Rng.Atk.+15',}}
- Pet_Regen_legs = {name="Valorous Hose", augments={'Pet: "Regen"+5','Pet: Attack+1 Pet: Rng.Atk.+1',}}
- Pet_Regen_feet = "Emicho Gambieras +1"
- Pet_Regen_back = {name="Artio's Mantle", augments={'Pet: M.Acc.+20 Pet: M.Dmg.+20','Eva.+20 /Mag. Eva.+20','Pet: Mag. Acc.+10','Pet: "Regen"+10','Pet: "Regen"+5',}}
- Ready_Atk_head = "Emicho Coronet +1"
- Ready_Atk_body = {name="Valorous Mail", augments={'Pet: Attack+30 Pet: Rng.Atk.+30','Pet: STR+13',}}
- Ready_Atk_hands = "Emicho Gauntlets +1"
- Ready_Atk_legs = "Totemic Trousers +3"
- Ready_Atk_feet = "Gleti's Boots"
- Ready_Atk_back = {name="Artio's Mantle", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20','Eva.+20 /Mag. Eva.+20','Pet: Attack+10 Pet: Rng.Atk.+10','Pet: Haste+10','System: 1 ID: 1246 Val: 4',}}
- Ready_Acc_head = "Gleti's Mask"
- Ready_Acc_body = "Heyoka Harness +1"
- Ready_Acc_hands = "Gleti's Gauntlets"
- Ready_Acc_legs = "Heyoka Subligar +1"
- Ready_Acc_feet = "Gleti's Boots"
- Ready_Acc_back = {name="Artio's Mantle", augments={'Pet: Acc.+20 Pet: R.Acc.+20 Pet: Atk.+20 Pet: R.Atk.+20','Eva.+20 /Mag. Eva.+20','Pet: Accuracy+10 Pet: Rng. Acc.+10','Pet: Haste+10','System: 1 ID: 1246 Val: 4',}}
- Ready_MAB_head = {name="Valorous Mask", augments={'Pet: "Mag.Atk.Bns."+30','Pet: "Store TP"+2','Pet: INT+8','Pet: Attack+6 Pet: Rng.Atk.+6',}}
- Ready_MAB_body = "Udug Jacket"
- Ready_MAB_hands = {name="Valorous Mitts", augments={'Pet: "Mag.Atk.Bns."+29','Pet: "Store TP"+9','Pet: INT+12','Pet: Attack+4 Pet: Rng.Atk.+4',}}
- Ready_MAB_legs = {name="Valorous Hose", augments={'Pet: "Mag.Atk.Bns."+30','Pet: INT+10','Pet: Accuracy+7 Pet: Rng. Acc.+7','Pet: Attack+6 Pet: Rng.Atk.+6',}}
- Ready_MAB_feet = {name="Valorous Greaves", augments={'Pet: "Mag.Atk.Bns."+30','Pet: INT+13','Pet: Accuracy+9 Pet: Rng. Acc.+9','Pet: Attack+15 Pet: Rng.Atk.+15',}}
- Ready_MAcc_head = "Gleti's Mask"
- Ready_MAcc_body = "Gleti's Cuirass"
- Ready_MAcc_hands = "Gleti's Gauntlets"
- Ready_MAcc_legs = "Gleti's Greaves"
- Ready_MAcc_feet = "Gleti's Boots"
- Ready_MAcc_back = {name="Artio's Mantle", augments={'Pet: M.Acc.+20 Pet: M.Dmg.+20','Eva.+20 /Mag. Eva.+20','Pet: Mag. Acc.+10','Pet: "Regen"+10','Pet: "Regen"+5',}}
- Ready_DA_Axe = "Skullrender"
- Ready_DA_Axe2 = "Skullrender"
- Ready_DA_head = "Emicho Coronet +1"
- Ready_DA_body = {name="Valorous Mail", augments={'Pet: Mag. Acc.+27','Pet: "Dbl. Atk."+5','Pet: Accuracy+3 Pet: Rng. Acc.+3','Pet: Attack+15 Pet: Rng.Atk.+15',}}
- Ready_DA_hands = "Emicho Gauntlets +1"
- Ready_DA_legs = "Emicho Hose +1"
- Ready_DA_feet = {name="Valorous Greaves", augments={'Pet: Mag. Acc.+20','Pet: "Dbl. Atk."+5','Pet: STR+9','Pet: Accuracy+13 Pet: Rng. Acc.+13','Pet: Attack+14 Pet: Rng.Atk.+14',}}
- Pet_Melee_head = "Emicho Coronet +1"
- Pet_Melee_body = {name="Valorous Mail", augments={'Pet: Mag. Acc.+27','Pet: "Dbl. Atk."+5','Pet: Accuracy+3 Pet: Rng. Acc.+3','Pet: Attack+15 Pet: Rng.Atk.+15',}}
- Pet_Melee_hands = "Emicho Gauntlets +1"
- Pet_Melee_legs = "Ankusa Trousers +3"
- Pet_Melee_feet = {name="Taeon Boots", augments={'Pet: Attack+23 Pet: Rng.Atk.+23','Pet: "Dbl. Atk."+5','Pet: Damage taken -4%',}}
- Hybrid_head = {name="Valorous Mask", augments={'Pet: "Regen"+5','Pet: Accuracy+13 Pet: Rng. Acc.+13',}}
- Hybrid_body = Pet_PDT_body
- Hybrid_hands = Pet_PDT_hands
- Hybrid_legs = {name="Taeon Tights", augments={'Accuracy+20 Attack+20','"Triple Atk."+2','Pet: Damage taken -4%',}}
- Hybrid_feet = {name="Taeon Boots", augments={'Accuracy+25','"Triple Atk."+2','Pet: Damage taken -4%',}}
- DW_head = {name="Taeon Chapeau", augments={'Accuracy+19 Attack+19','"Dual Wield"+5','STR+3 VIT+3',}}
- DW_body = {name="Taeon Tabard", augments={'Accuracy+20 Attack+20','"Dual Wield"+5','Crit. hit damage +2%',}}
- DW_hands = "Emicho Gauntlets +1"
- DW_legs = {name="Taeon Tights", augments={'Accuracy+22','"Dual Wield"+5','Crit. hit damage +2%',}}
- DW_feet = {name="Taeon Boots", augments={'Accuracy+23','"Dual Wield"+5','Crit. hit damage +2%',}}
- DW_back = {name="Artio's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Dual Wield"+10','Phys. dmg. taken-10%',}}
- MAB_head = {name="Valorous Mask", augments={'AGI+5','"Mag.Atk.Bns."+25','Haste+2','Accuracy+19 Attack+19','Mag. Acc.+19 "Mag.Atk.Bns."+19',}}
- MAB_body = "Sacro Breastplate"
- MAB_hands = "Leyline Gloves"
- MAB_legs = {name="Valorous Hose", augments={'"Mag.Atk.Bns."+30','Accuracy+10','Crit.hit rate+2','Mag. Acc.+20 "Mag.Atk.Bns."+20',}}
- MAB_feet = {name="Valorous Greaves", augments={'CHR+8','"Mag.Atk.Bns."+28','"Refresh"+2','Accuracy+2 Attack+2','Mag. Acc.+14 "Mag.Atk.Bns."+14',}}
- FC_head = {name="Valorous Mask", augments={'"Resist Silence"+2','MND+3','"Fast Cast"+7','Mag. Acc.+9 "Mag.Atk.Bns."+9',}}
- FC_body = "Sacro Breastplate"
- FC_hands = "Leyline Gloves"
- FC_legs = {name="Valorous Hose", augments={'Crit.hit rate+2','"Dual Wield"+1','"Fast Cast"+7',}}
- FC_feet = {name="Valorous Greaves", augments={'"Mag.Atk.Bns."+17','AGI+7','"Fast Cast"+7','Accuracy+14 Attack+14',}}
- FC_back = {name="Artio's Mantle", augments={'INT+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','"Fast Cast"+10','Spell interruption rate down-10%',}}
- MAcc_head = "Malignance Chapeau"
- MAcc_body = "Malignance Tabard"
- MAcc_hands = "Malignance Gloves"
- MAcc_legs = "Malignance Tights"
- MAcc_feet = "Malignance Boots"
- MAcc_back = {name="Artio's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','Enmity+10','Phys. dmg. taken-10%',}}
- PDT_back = {name="Artio's Mantle", augments={'VIT+20','Eva.+20 /Mag. Eva.+20','VIT+10','Enmity-10','Phys. dmg. taken-10%',}}
- MEva_head = "Malignance Chapeau"
- MEva_body = "Malignance Tabard"
- MEva_hands = "Malignance Gloves"
- MEva_legs = "Malignance Tights"
- MEva_feet = "Malignance Boots"
- MEva_back = {name="Artio's Mantle", augments={'MND+20','Eva.+20 /Mag. Eva.+20','Mag. Evasion+10','Enmity-10','Occ. inc. resist. to stat. ailments+10',}}
- CB_head = {name="Acro Helm", augments={'Pet: Mag. Acc.+25','"Call Beast" ability delay -5',}}
- CB_body = "Mirke Wardecors"
- CB_hands = "Ankusa Gloves +3"
- CB_legs = {name="Acro Breeches", augments={'Pet: Mag. Acc.+25','"Call Beast" ability delay -5',}}
- CB_feet = "Armada Sollerets"
- Cure_Potency_axe = {name="Kumbhakarna", augments={'Pet: Mag. Acc.+20','"Cure" potency +15%','Pet: TP Bonus+180',}}
- Cure_Potency_head = "Emicho Coronet +1"
- Cure_Potency_body = "Jumalik Mail"
- Cure_Potency_hands = "Buremte Gloves"
- Cure_Potency_legs = "Totemic Trousers +3"
- Cure_Potency_feet = {name="Taeon Boots", augments={'"Cure" potency +5%',}}
- Cure_Potency_back = {name="Artio's Mantle", augments={'MND+20','Eva.+20 /Mag. Eva.+20','MND+10','"Cure" potency +10%','Spell interruption rate down-10%',}}
- Waltz_back = {name="Artio's Mantle", augments={'CHR+20','Mag. Acc+20 /Mag. Dmg.+20','CHR+10','Weapon skill damage +10%',}}
- STP_back = {name="Artio's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','Accuracy+10','"Store TP"+10','Phys. dmg. taken-10%',}}
- STR_DA_back = {name="Artio's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','"Dbl.Atk."+10','Phys. dmg. taken-10%',}}
- STR_WS_back = {name="Artio's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
- Crit_back = {name="Artio's Mantle", augments={'STR+20','Accuracy+20 Attack+20','STR+10','Crit.hit rate+10','Phys. dmg. taken-10%',}}
- Onslaught_back = {name="Artio's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','DEX+10','Weapon skill damage +10%','Phys. dmg. taken-10%',}}
- Primal_back = {name="Artio's Mantle", augments={'CHR+20','Mag. Acc+20 /Mag. Dmg.+20','CHR+10','Weapon skill damage +10%',}}
- Cloud_back = {name="Artio's Mantle", augments={'MND+20','Mag. Acc+20 /Mag. Dmg.+20','MND+10','Weapon skill damage +10%',}}
- STP_head = {name="Valorous Mask", augments={'Attack+27','"Store TP"+8','Accuracy+1',}}
- STP_feet = {name="Valorous Greaves", augments={'Accuracy+23 Attack+23','"Store TP"+8','AGI+4',}}
- Regain_head = {name="Valorous Mask", augments={'"Cure" spellcasting time -7%','MND+8','Damage taken-4%','Mag. Acc.+15 "Mag.Atk.Bns."+15',}}
- Regain_body = "Gleti's Cuirass"
- Regain_hands = "Gleti's Gauntlets"
- Regain_legs = "Gleti's Greaves"
- Regain_feet = "Gleti's Boots"
- TH_legs = {name="Valorous Hose", augments={'STR+3','INT+5','"Treasure Hunter"+2','Mag. Acc.+18 "Mag.Atk.Bns."+18',}}
- Enmity_plus_feet = {name="Acro Leggings", augments={'Pet: Mag. Acc.+23','Enmity+10',}}
- Enmity_plus_back = {name="Artio's Mantle", augments={'INT+20','Mag. Acc+20 /Mag. Dmg.+20','Mag. Acc.+10','Enmity+10','Phys. dmg. taken-10%',}}
- sets.Enmity = {ammo="Paeapua",
- head="Halitus Helm",neck="Unmoving Collar +1",ear1="Trux Earring",ear2="Cryptic Earring",
- body="Emet Harness +1",hands="Macabre Gauntlets +1",ring1="Pernicious Ring",ring2="Eihwaz Ring",
- back=Enmity_plus_back,waist="Trance Belt",legs="Zoar Subligar +1",
- feet=Enmity_plus_feet}
- sets.EnmityNE = set_combine(sets.Enmity, {main="Freydis",sub="Evalach +1"})
- sets.EnmityNEDW = set_combine(sets.Enmity, {main="Freydis",sub="Evalach +1"})
- ---------------------
- -- JA PRECAST SETS --
- ---------------------
- -- Most gearsets are divided into 3 categories:
- -- 1. Default - No Axe swaps involved.
- -- 2. NE (Not engaged) - Axe/Shield swap included, for use with Pet Only mode.
- -- 3. NEDW (Not engaged; Dual-wield) - Axe swaps included, for use with Pet Only mode.
- sets.precast.JA.Familiar = {legs="Ankusa Trousers +3"}
- sets.precast.JA['Call Beast'] = {head=CB_head,
- body=CB_body,hands=CB_hands,
- legs=CB_legs,feet=CB_feet}
- sets.precast.JA['Bestial Loyalty'] = sets.precast.JA['Call Beast']
- sets.precast.JA.Tame = {head="Totemic Helm +3",ear1="Tamer's Earring",legs="Stout Kecks"}
- sets.precast.JA.Spur = {back="Artio's Mantle",feet="Nukumi Ocreae +1"}
- sets.precast.JA.SpurNE = set_combine(sets.precast.JA.Spur, {main="Skullrender"})
- sets.precast.JA.SpurNEDW = set_combine(sets.precast.JA.Spur, {main="Skullrender",sub="Skullrender"})
- sets.precast.JA['Feral Howl'] = {ammo="Pemphredo Tathlum",
- head=MAcc_head,neck="Beastmaster Collar +2",ear1="Hermetic Earring",ear2="Dignitary's Earring",
- body="Ankusa Jackcoat +3",hands=MAcc_hands,ring1="Rahab Ring",ring2="Sangoma Ring",
- back=MAcc_back,waist="Eschan Stone",legs=MAcc_legs,feet=MAcc_feet}
- --sets.precast.JA['Feral Howl'] = set_combine(sets.Enmity, {body="Ankusa Jackcoat +3"})
- sets.precast.JA['Killer Instinct'] = set_combine(sets.Enmity, {head="Ankusa Helm +3"})
- sets.precast.JA.Reward = {
- head="Stout Bonnet",neck="Aife's Medal",ear1="Lifestorm Earring",ear2="Neptune's Pearl",
- body="Totemic Jackcoat +3",hands="Malignance Gloves",ring1="Leviathan Ring +1",ring2="Leviathan Ring +1",
- back=Reward_back,waist="Engraved Belt",legs="Ankusa Trousers +3",feet="Ankusa Gaiters +3"}
- sets.precast.JA.RewardNE = set_combine(sets.precast.JA.Reward, {main=Reward_Axe,sub="Matamata Shield +1"})
- sets.precast.JA.RewardNEDW = set_combine(sets.precast.JA.RewardNE, {sub=Reward_Axe2})
- sets.precast.JA.Charm = {ammo="Voluspa Tathlum",
- head="Totemic Helm +3",neck="Unmoving Collar +1",ear1="Enchanter's Earring",ear2="Enchanter Earring +1",
- body="Ankusa Jackcoat +3",hands="Ankusa Gloves +3",ring1="Dawnsoul Ring",ring2="Dawnsoul Ring",
- back=Primal_back,waist="Aristo Belt",legs="Ankusa Trousers +3",feet="Ankusa Gaiters +3"}
- sets.precast.JA.CharmNE = set_combine(sets.precast.JA.Charm, {main="Buramgh +1",sub="Thuellaic Ecu +1"})
- sets.precast.JA.CharmNEDW = set_combine(sets.precast.JA.CharmNE, {sub="Buramgh"})
- ---------------------------
- -- PET SIC & READY MOVES --
- ---------------------------
- sets.ReadyRecast = {legs="Gleti's Greaves"}
- sets.midcast.Pet.TPBonus = {hands="Nukumi Manoplas +1"}
- sets.midcast.Pet.Neutral = {head=Ready_Atk_head}
- sets.midcast.Pet.Favorable = {head="Nukumi Cabasset +1"}
- sets.midcast.Pet.Normal = {ammo="Hesperiidae",
- neck="Shulmanu Collar",ear1="Ruby Earring",ear2="Hija Earring",
- body=Ready_Atk_body,hands=Ready_Atk_hands,ring1="Thurandaut Ring +1",ring2="Cath Palug Ring",
- back=Ready_Atk_back,waist="Incarnation Sash",legs=Ready_Atk_legs,feet=Ready_Atk_feet}
- sets.midcast.Pet.MedAcc = set_combine(sets.midcast.Pet.Normal, {
- ear2="Enmerkar Earring",
- body=Ready_Acc_body,
- back=Ready_Acc_back,waist="Incarnation Sash",legs=Ready_Acc_legs})
- sets.midcast.Pet.HighAcc = set_combine(sets.midcast.Pet.Normal, {
- ear1="Ferine Earring",ear2="Enmerkar Earring",
- body=Ready_Acc_body,
- back=Ready_Acc_back,waist="Klouskap Sash +1",legs=Ready_Acc_legs,feet=Ready_Acc_feet})
- sets.midcast.Pet.MaxAcc = set_combine(sets.midcast.Pet.Normal, {ammo="Voluspa Tathlum",
- head="Gleti's Mask",neck="Beastmaster Collar +2",ear1="Enmerkar Earring",ear2="Kyrene's Earring",
- body="Heyoka Harness +1",hands="Gleti's Gauntlets",
- back=Ready_Acc_back,waist="Klouskap Sash +1",legs="Heyoka Subligar +1",feet="Gleti's Boots"})
- sets.midcast.Pet.MagicAtkReady = {}
- sets.midcast.Pet.MagicAtkReady.Normal = {ammo="Voluspa Tathlum",
- head=Ready_MAB_head,neck="Adad Amulet",ear1="Diamond Earring",ear2="Hija Earring",
- body=Ready_MAB_body,hands=Ready_MAB_hands,ring1="Tali'ah Ring",ring2="Cath Palug Ring",
- back="Argochampsa Mantle",waist="Incarnation Sash",legs=Ready_MAB_legs,feet=Ready_MAB_feet}
- sets.midcast.Pet.MagicAtkReady.MedAcc = set_combine(sets.midcast.Pet.MagicAtkReady.Normal, {
- head=Ready_MAcc_head,ear2="Enmerkar Earring",
- legs=Ready_MAcc_legs})
- sets.midcast.Pet.MagicAtkReady.HighAcc = set_combine(sets.midcast.Pet.MagicAtkReady.Normal, {
- head=Ready_MAcc_head,ear2="Enmerkar Earring",
- body=Ready_MAcc_body,hands=Ready_MAcc_hands,
- back=Ready_MAcc_back,legs=Ready_MAcc_legs})
- sets.midcast.Pet.MagicAtkReady.MaxAcc = set_combine(sets.midcast.Pet.MagicAtkReady.Normal, {
- head=Ready_MAcc_head,neck="Beastmaster Collar +2",ear1="Kyrene's Earring",ear2="Enmerkar Earring",
- body=Ready_MAcc_body,hands=Ready_MAcc_hands,
- back=Ready_MAcc_back,legs=Ready_MAcc_legs,feet=Ready_MAcc_feet})
- sets.midcast.Pet.MagicAccReady = set_combine(sets.midcast.Pet.Normal, {ammo="Voluspa Tathlum",
- head=Ready_MAcc_head,neck="Beastmaster Collar +2",ear1="Kyrene's Earring",ear2="Enmerkar Earring",
- body=Ready_MAcc_body,hands=Ready_MAcc_hands,ring1="Tali'ah Ring",ring2="Cath Palug Ring",
- back=Ready_MAcc_back,legs=Ready_MAcc_legs,feet=Ready_MAcc_feet})
- sets.midcast.Pet.MultiStrike = set_combine(sets.midcast.Pet.Normal, {
- neck="Beastmaster Collar +2",ear1="Domesticator's Earring",ear2="Kyrene's Earring",
- body=Ready_DA_body,hands=Ready_DA_hands,legs=Ready_DA_legs,feet=Ready_DA_feet})
- sets.midcast.Pet.Buff = set_combine(sets.midcast.Pet.TPBonus, {
- body="Emicho Haubert +1"})
- --------------------------------------
- -- SINGLE WIELD PET-ONLY READY SETS --
- --------------------------------------
- -- Physical Ready Attacks w/o TP Modifier for Damage (ex. Sickle Slash, Whirl Claws, Swooping Frenzy, etc.)
- sets.midcast.Pet.ReadyNE = {}
- sets.midcast.Pet.ReadyNE.Normal = set_combine(sets.midcast.Pet.Normal, {main=Ready_Atk_Axe})
- sets.midcast.Pet.ReadyNE.MedAcc = set_combine(sets.midcast.Pet.MedAcc, {main=Ready_Atk_Axe})
- sets.midcast.Pet.ReadyNE.HighAcc = set_combine(sets.midcast.Pet.HighAcc, {main=Ready_Atk_Axe})
- sets.midcast.Pet.ReadyNE.MaxAcc = set_combine(sets.midcast.Pet.MaxAcc, {main=Ready_Acc_Axe})
- -- Physical TP Bonus Ready Attacks (ex. Razor Fang, Tegmina Buffet, Tail Blow, Recoil Dive, etc.)
- sets.midcast.Pet.ReadyNE.TPBonus = {}
- sets.midcast.Pet.ReadyNE.TPBonus.Normal = set_combine(sets.midcast.Pet.ReadyNE.Normal, {main=Ready_Atk_TPBonus_Axe})
- sets.midcast.Pet.ReadyNE.TPBonus.MedAcc = set_combine(sets.midcast.Pet.ReadyNE.MedAcc, {main=Ready_Atk_TPBonus_Axe})
- sets.midcast.Pet.ReadyNE.TPBonus.HighAcc = set_combine(sets.midcast.Pet.ReadyNE.HighAcc, {main=Ready_Atk_TPBonus_Axe})
- sets.midcast.Pet.ReadyNE.TPBonus.MaxAcc = set_combine(sets.midcast.Pet.ReadyNE.MaxAcc, {main=Ready_Acc_Axe})
- -- Multihit Ready Attacks w/o TP Modifier for Damage (Pentapeck, Chomp Rush)
- sets.midcast.Pet.MultiStrikeNE = set_combine(sets.midcast.Pet.MultiStrike, {main=Ready_Atk_Axe2})
- -- Multihit TP Bonus Ready Attacks (Sweeping Gouge, Tickling Tendrils, Pecking Flurry, Wing Slap)
- sets.midcast.Pet.MultiStrikeNE.TPBonus = set_combine(sets.midcast.Pet.MultiStrike, {main=Ready_Atk_TPBonus_Axe})
- -- Magical Ready Attacks w/o TP Modifier for Damage (ex. Molting Plumage, Venom, Stink Bomb, etc.)
- sets.midcast.Pet.MagicAtkReadyNE = {}
- sets.midcast.Pet.MagicAtkReadyNE.Normal = set_combine(sets.midcast.Pet.MagicAtkReady.Normal, {main=Ready_MAB_Axe})
- sets.midcast.Pet.MagicAtkReadyNE.MedAcc = set_combine(sets.midcast.Pet.MagicAtkReady.MedAcc, {main=Ready_MAB_Axe})
- sets.midcast.Pet.MagicAtkReadyNE.HighAcc = set_combine(sets.midcast.Pet.MagicAtkReady.HighAcc, {main=Ready_MAB_Axe})
- sets.midcast.Pet.MagicAtkReadyNE.MaxAcc = set_combine(sets.midcast.Pet.MagicAtkReady.MaxAcc, {main=Ready_MAcc_Axe2})
- -- Magical TP Bonus Ready Attacks (ex. Fireball, Cursed Sphere, Corrosive Ooze, etc.)
- sets.midcast.Pet.MagicAtkReadyNE.TPBonus = {}
- sets.midcast.Pet.MagicAtkReadyNE.TPBonus.Normal = set_combine(sets.midcast.Pet.MagicAtkReadyNE.Normal, {main=Ready_MAB_TPBonus_Axe})
- sets.midcast.Pet.MagicAtkReadyNE.TPBonus.MedAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.MedAcc, {main=Ready_MAB_TPBonus_Axe})
- sets.midcast.Pet.MagicAtkReadyNE.TPBonus.HighAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.HighAcc, {main=Ready_MAB_TPBonus_Axe})
- sets.midcast.Pet.MagicAtkReadyNE.TPBonus.MaxAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.MaxAcc, {main=Ready_MAcc_Axe2})
- -- Magical Ready Enfeebles (ex. Roar, Sheep Song, Infrasonics, etc.)
- sets.midcast.Pet.MagicAccReadyNE = set_combine(sets.midcast.Pet.MagicAccReady, {main="Pangu"})
- -- Pet Buffs/Cures (Bubble Curtain, Scissor Guard, Secretion, Rage, Rhino Guard, Zealous Snort, Wild Carrot)
- sets.midcast.Pet.BuffNE = set_combine(sets.midcast.Pet.Buff, {main=Ready_Atk_TPBonus_Axe})
- -- Axe Swaps for when Pet TP is above a certain value.
- sets.UnleashAtkAxeShield = {}
- sets.UnleashAtkAxeShield.Normal = {main=Ready_Atk_Axe}
- sets.UnleashAtkAxeShield.MedAcc = {main=Ready_Atk_Axe}
- sets.UnleashAtkAxeShield.HighAcc = {main=Ready_Atk_Axe}
- sets.UnleashMultiStrikeAxeShield = {main=Ready_DA_Axe}
- sets.UnleashMABAxeShield = {}
- sets.UnleashMABAxeShield.Normal = {main=Ready_MAB_Axe}
- sets.UnleashMABAxeShield.MedAcc = {main=Ready_MAB_Axe}
- sets.UnleashMABAxeShield.HighAcc = {main=Ready_MAB_Axe}
- ------------------------------------
- -- DUAL WIELD PET-ONLY READY SETS --
- ------------------------------------
- -- DW Axe Swaps for Physical Ready Attacks w/o TP Modifier for Damage (ex. Sickle Slash, Whirl Claws, Swooping Frenzy, etc.)
- sets.midcast.Pet.ReadyDWNE = {}
- sets.midcast.Pet.ReadyDWNE.Normal = set_combine(sets.midcast.Pet.ReadyNE.Normal, {main=Ready_Atk_Axe,sub=Ready_Atk_Axe2})
- sets.midcast.Pet.ReadyDWNE.MedAcc = set_combine(sets.midcast.Pet.ReadyNE.MedAcc, {main=Ready_Atk_Axe,sub=Ready_Acc_Axe})
- sets.midcast.Pet.ReadyDWNE.HighAcc = set_combine(sets.midcast.Pet.ReadyNE.HighAcc, {main=Ready_Atk_Axe,sub=Ready_Acc_Axe})
- sets.midcast.Pet.ReadyDWNE.MaxAcc = set_combine(sets.midcast.Pet.ReadyNE.MaxAcc, {main=Ready_Acc_Axe,sub=Ready_Acc_Axe2})
- -- DW Axe Swaps for Physical TP Bonus Ready Attacks (ex. Razor Fang, Tegmina Buffet, Tail Blow, Recoil Dive, etc.)
- sets.midcast.Pet.ReadyDWNE.TPBonus = {}
- sets.midcast.Pet.ReadyDWNE.TPBonus.Normal = set_combine(sets.midcast.Pet.ReadyNE.Normal, {main=Ready_Atk_TPBonus_Axe,sub=Ready_Atk_Axe2})
- sets.midcast.Pet.ReadyDWNE.TPBonus.MedAcc = set_combine(sets.midcast.Pet.ReadyNE.MedAcc, {main=Ready_Atk_TPBonus_Axe,sub=Ready_Acc_Axe2})
- sets.midcast.Pet.ReadyDWNE.TPBonus.HighAcc = set_combine(sets.midcast.Pet.ReadyNE.HighAcc, {main=Ready_Atk_TPBonus_Axe,sub=Ready_Acc_Axe2})
- sets.midcast.Pet.ReadyDWNE.TPBonus.MaxAcc = set_combine(sets.midcast.Pet.ReadyNE.MaxAcc, {main=Ready_Acc_Axe,sub=Ready_Acc_Axe2})
- -- DW Axe Swaps for Multihit Ready Attacks w/o TP Modifier for Damage (Pentapeck, Chomp Rush)
- sets.midcast.Pet.MultiStrikeDWNE = set_combine(sets.midcast.Pet.MultiStrikeNE, {main=Ready_Atk_Axe,sub=Ready_Atk_Axe2})
- -- DW Axe Swaps for Multihit TP Bonus Ready Attacks (Sweeping Gouge, Tickling Tendrils, Pecking Flurry, Wing Slap)
- sets.midcast.Pet.MultiStrikeDWNE.TPBonus = set_combine(sets.midcast.Pet.MultiStrikeNE, {main=Ready_Atk_TPBonus_Axe,sub=Ready_Atk_TPBonus_Axe2})
- -- DW Axe Swaps for Magical Ready Attacks w/o TP Modifier for Damage (ex. Molting Plumage, Stink Bomb, Venom, etc.)
- sets.midcast.Pet.MagicAtkReadyDWNE = {}
- sets.midcast.Pet.MagicAtkReadyDWNE.Normal = set_combine(sets.midcast.Pet.MagicAtkReadyNE.Normal, {main=Ready_MAB_Axe,sub=Ready_MAB_Axe2})
- sets.midcast.Pet.MagicAtkReadyDWNE.MedAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.MedAcc, {main=Ready_MAB_Axe,sub=Ready_MAB_Axe2})
- sets.midcast.Pet.MagicAtkReadyDWNE.HighAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.HighAcc, {main=Ready_MAB_Axe,sub=Ready_MAcc_Axe})
- sets.midcast.Pet.MagicAtkReadyDWNE.MaxAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.MaxAcc, {main=Ready_MAB_Axe,sub=Ready_MAcc_Axe})
- -- DW Axe Swaps for Magical TP Bonus Ready Attacks (ex. Fireball, Cursed Sphere, Corrosive Ooze, etc.)
- sets.midcast.Pet.MagicAtkReadyDWNE.TPBonus = {}
- sets.midcast.Pet.MagicAtkReadyDWNE.TPBonus.Normal = set_combine(sets.midcast.Pet.MagicAtkReadyNE.Normal, {main=Ready_MAB_TPBonus_Axe,sub=Ready_MAB_TPBonus_Axe2})
- sets.midcast.Pet.MagicAtkReadyDWNE.TPBonus.MedAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.MedAcc, {main=Ready_MAB_TPBonus_Axe,sub=Ready_MAB_TPBonus_Axe2})
- sets.midcast.Pet.MagicAtkReadyDWNE.TPBonus.HighAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.HighAcc, {main=Ready_MAB_TPBonus_Axe,sub=Ready_MAB_TPBonus_Axe2})
- sets.midcast.Pet.MagicAtkReadyDWNE.TPBonus.MaxAcc = set_combine(sets.midcast.Pet.MagicAtkReadyNE.MaxAcc, {main=Ready_MAB_Axe,sub=Ready_MAcc_Axe})
- -- DW Axe Swaps for Magical Ready Enfeebles (ex. Roar, Sheep Song, Infrasonics, etc.)
- sets.midcast.Pet.MagicAccReadyDWNE = set_combine(sets.midcast.Pet.MagicAccReadyNE, {main="Pangu",sub="Pangu"})
- -- DW Axe Swaps for Pet Buffs/Cures (Bubble Curtain, Scissor Guard, Secretion, Rage, Rhino Guard, Zealous Snort, Wild Carrot)
- sets.midcast.Pet.BuffDWNE = set_combine(sets.midcast.Pet.BuffNE, {main=Ready_Atk_TPBonus_Axe,sub=Ready_MAB_TPBonus_Axe})
- -- Axe Swaps for when Pet TP is above a certain value.
- sets.UnleashAtkAxes = {}
- sets.UnleashAtkAxes.Normal = {main=Ready_Atk_Axe,sub=Ready_Atk_Axe2}
- sets.UnleashAtkAxes.MedAcc = {main=Ready_Atk_Axe,sub=Ready_Atk_Axe2}
- sets.UnleashAtkAxes.HighAcc = {main=Ready_Atk_Axe,sub=Ready_Atk_Axe2}
- sets.UnleashMultiStrikeAxes = {main=Ready_DA_Axe,sub=Ready_DA_Axe2}
- sets.UnleashMABAxes = {}
- sets.UnleashMABAxes.Normal = {main=Ready_MAB_Axe,sub=Ready_MAB_Axe2}
- sets.UnleashMABAxes.MedAcc = {main=Ready_MAB_Axe,sub=Ready_MAB_Axe2}
- sets.UnleashMABAxes.HighAcc = {main=Ready_MAB_Axe,sub=Ready_MAB_Axe2}
- ---------------
- -- IDLE SETS --
- ---------------
- sets.idle = {ammo="Staunch Tathlum +1",
- head=Regain_head,neck="Bathy Choker +1",ear1="Tuisto Earring",ear2="Odnowa Earring +1",
- body=Regain_body,hands=Regain_hands,ring1="Paguroidea Ring",ring2="Warden's Ring",
- back=PDT_back,waist="Flume Belt +1",legs=Regain_legs,feet="Skadi's Jambeaux +1"}
- sets.idle.Refresh = set_combine(sets.idle, {head="Jumalik Helm",body="Jumalik Mail",ring1="Stikini Ring +1",ring2="Stikini Ring +1"})
- sets.idle.Reraise = set_combine(sets.idle, {head="Twilight Helm",body="Twilight Mail"})
- sets.idle.Pet = set_combine(sets.idle, {back=Pet_Regen_back})
- --sets.idle.PetRegen = set_combine(sets.idle.Pet, {neck="Empath Necklace",feet=Pet_Regen_feet})
- sets.idle.Pet.Engaged = {ammo="Hesperiidae",
- head=Pet_Melee_head,neck="Beastmaster Collar +2",ear1="Domesticator's Earring",ear2="Enmerkar Earring",
- body=Pet_Melee_body,hands=Pet_Melee_hands,ring1="Varar Ring +1",ring2="Varar Ring +1",
- back=Ready_Atk_back,waist="Incarnation Sash",legs=Pet_Melee_legs,feet=Pet_Melee_feet}
- sets.idle.Pet.Engaged.PetSBMNK = set_combine(sets.idle.Pet.Engaged, {
- --ear1="Gelai Earring",body=Pet_SB_body,
- waist="Isa Belt"})
- sets.idle.Pet.Engaged.PetSBNonMNK = set_combine(sets.idle.Pet.Engaged, {
- --ear1="Gelai Earring",body=Pet_SB_body,
- waist="Isa Belt"})
- sets.idle.Pet.Engaged.PetSTP = set_combine(sets.idle.Pet.Engaged, {
- ring1="Varar Ring +1",ring2="Varar Ring +1"})
- sets.resting = {}
- ------------------
- -- DEFENSE SETS --
- ------------------
- -- Pet PDT and MDT sets:
- sets.defense.PetPDT = {ammo="Hesperiidae",
- head="Anwig Salade",neck="Shepherd's Chain",ear1="Handler's Earring +1",ear2="Enmerkar Earring",
- body=Pet_PDT_body,hands=Pet_PDT_hands,ring1="Thurandaut Ring +1",ring2="Defending Ring",
- back=Pet_PDT_back,waist="Isa Belt",legs=Pet_DT_legs,feet=Pet_DT_feet}
- sets.defense.PetMDT = {ammo="Hesperiidae",
- head="Anwig Salade",neck="Shepherd's Chain",ear1="Rimeice Earring",ear2="Enmerkar Earring",
- body="Totemic Jackcoat +3",hands=Pet_MDT_hands,ring1="Thurandaut Ring +1",ring2="Defending Ring",
- back=Pet_MDT_back,waist="Isa Belt",legs=Pet_MDT_legs,feet=Pet_MDT_feet}
- -- Master PDT and MDT sets:
- sets.defense.PDT = {ammo="Iron Gobbet",
- head="Gleti's Mask",neck="Loricate Torque +1",ear1="Tuisto Earring",ear2="Odnowa Earring +1",
- body="Gleti's Cuirass",hands="Gleti's Gauntlets",ring1="Fortified Ring",ring2="Warden's Ring",
- back="Shadow Mantle",waist="Flume Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.defense.Reraise = set_combine(sets.defense.PDT, {head="Twilight Helm",body="Twilight Mail"})
- sets.defense.HybridPDT = {ammo="Staunch Tathlum +1",
- head="Anwig Salade",neck="Loricate Torque +1",ear1="Handler's Earring +1",ear2="Enmerkar Earring",
- body="Tartarus Platemail",hands=Pet_PDT_hands,ring1="Thurandaut Ring +1",ring2="Defending Ring",
- back=Pet_PDT_back,waist="Isa Belt",legs=Pet_PDT_legs,feet=Pet_PDT_feet}
- sets.defense.MDT = {ammo="Vanir Battery",
- head=MEva_head,neck="Inquisitor Bead Necklace",ear1="Sanare Earring",ear2="Etiolation Earring",
- body="Tartarus Platemail",hands=MEva_hands,ring1="Shadow Ring",ring2="Purity Ring",
- back="Engulfer Cape +1",waist="Asklepian Belt",legs=MEva_legs,feet=MEva_feet}
- sets.defense.MEva = {ammo="Staunch Tathlum +1",
- head=MEva_head,neck="Warder's Charm +1",ear1="Hearty Earring",ear2="Eabani Earring",
- body="Malignance Tabard",hands=MEva_hands,ring1="Vengeful Ring",ring2="Purity Ring",
- back=MEva_back,waist="Engraved Belt",legs=MEva_legs,feet=MEva_feet}
- sets.defense.Killer = {ammo="Staunch Tathlum +1",
- head="Ankusa Helm +3",neck="Loricate Torque +1",ear1="Beast Earring",ear2="Odnowa Earring +1",
- body="Nukumi Gausape +1",hands="Malignance Gloves",ring1="Gelatinous Ring +1",ring2="Defending Ring",
- back=PDT_back,waist="Flume Belt +1",legs="Malignance Tights",feet="Malignance Boots"}
- sets.Kiting = {feet="Skadi's Jambeaux +1"}
- -------------------------------------------------------
- -- Single-wield Pet Only Mode Idle/Defense Axe Swaps --
- -------------------------------------------------------
- sets.idle.NE = {main="Pangu",sub="Sacro Bulwark",ammo="Staunch Tathlum +1",
- head=Regain_head,neck="Bathy Choker +1",ear1="Tuisto Earring",ear2="Odnowa Earring +1",
- body=Regain_body,hands=Regain_hands,ring1="Paguroidea Ring",ring2="Warden's Ring",
- back=PDT_back,waist="Flume Belt +1",legs=Regain_legs,feet="Skadi's Jambeaux +1"}
- sets.idle.NE.PetEngaged = {main=Pet_TP_AxeMain,sub="Sacro Bulwark",ammo="Hesperiidae",
- head=Pet_Melee_head,neck="Beastmaster Collar +2",ear1="Domesticator's Earring",ear2="Enmerkar Earring",
- body=Pet_Melee_body,hands=Pet_Melee_hands,ring1="Varar Ring +1",ring2="Varar Ring +1",
- back=Ready_Atk_back,waist="Incarnation Sash",legs=Pet_Melee_legs,feet=Pet_Melee_feet}
- --sets.idle.NE.PetRegen = {main=Pet_Regen_AxeMain,sub="Sacro Bulwark",
- -- neck="Empath Necklace",
- -- feet=Pet_Regen_feet}
- sets.defense.NE = {}
- sets.defense.NE.PDT = {main="Pangu",sub="Sacro Bulwark",ammo="Iron Gobbet",
- head="Gleti's Mask",neck="Loricate Torque +1",ear1="Tuisto Earring",ear2="Ethereal Earring",
- body="Udug Jacket",hands="Gleti's Gauntlets",ring1="Fortified Ring",ring2="Warden's Ring",
- back="Shadow Mantle",waist="Flume Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.defense.NE.MDT = {main="Pangu",sub="Sacro Bulwark",ammo="Vanir Battery",
- head=MEva_head,neck="Inquisitor Bead Necklace",ear1="Sanare Earring",ear2="Etiolation Earring",
- body="Tartarus Platemail",hands=MEva_hands,ring1="Shadow Ring",ring2="Purity Ring",
- back="Engulfer Cape +1",waist="Asklepian Belt",legs=MEva_legs,feet=MEva_feet}
- sets.defense.NE.MEva = {main=MEva_Axe_main,sub="Sacro Bulwark",ammo="Staunch Tathlum +1",
- head=MEva_head,neck="Warder's Charm +1",ear1="Hearty Earring",ear2="Eabani Earring",
- body="Udug Jacket",hands=MEva_hands,ring1="Vengeful Ring",ring2="Purity Ring",
- back=MEva_back,waist="Engraved Belt",legs=MEva_legs,feet=MEva_feet}
- sets.defense.NE.Killer = {main="Pangu",sub="Kaidate",ammo="Iron Gobbet",
- head="Ankusa Helm +3",neck="Loricate Torque +1",ear1="Tuisto Earring",ear2="Odnowa Earring +1",
- body="Nukumi Gausape +1",hands="Gleti's Gauntlets",ring1="Fortified Ring",ring2="Warden's Ring",
- back="Shadow Mantle",waist="Flume Belt +1",legs="Totemic Trousers +3",feet="Malignance Boots"}
- sets.defense.NE.PetPDT = {main="Pangu",sub="Sacro Bulwark",ammo="Hesperiidae",
- head="Anwig Salade",neck="Shepherd's Chain",ear1="Handler's Earring +1",ear2="Enmerkar Earring",
- body=Pet_PDT_body,hands=Pet_PDT_hands,ring1="Thurandaut Ring +1",ring2="Defending Ring",
- back=Pet_PDT_back,waist="Isa Belt",legs=Pet_DT_legs,feet=Pet_DT_feet}
- sets.defense.NE.PetMDT = {main="Pangu",sub="Sacro Bulwark",ammo="Hesperiidae",
- head="Anwig Salade",neck="Shepherd's Chain",ear1="Rimeice Earring",ear2="Enmerkar Earring",
- body="Totemic Jackcoat +3",hands=Pet_MDT_hands,ring1="Thurandaut Ring +1",ring2="Defending Ring",
- back=Pet_MDT_back,waist="Isa Belt",legs=Pet_MDT_legs,feet=Pet_MDT_feet}
- -----------------------------------------------------
- -- Dual-wield Pet Only Mode Idle/Defense Axe Swaps --
- -----------------------------------------------------
- sets.idle.DWNE = {main="Pangu",sub="Freydis",ammo="Staunch Tathlum +1",
- head=Regain_head,neck="Bathy Choker +1",ear1="Tuisto Earring",ear2="Odnowa Earring +1",
- body=Regain_body,hands=Regain_hands,ring1="Paguroidea Ring",ring2="Warden's Ring",
- back=PDT_back,waist="Flume Belt +1",legs=Regain_legs,feet="Skadi's Jambeaux +1"}
- sets.idle.DWNE.PetEngaged = {main=Pet_TP_AxeMain,sub=Pet_TP_AxeSub,ammo="Hesperiidae",
- head=Pet_Melee_head,neck="Beastmaster Collar +2",ear1="Domesticator's Earring",ear2="Enmerkar Earring",
- body=Pet_Melee_body,hands=Pet_Melee_hands,ring1="Varar Ring +1",ring2="Varar Ring +1",
- back=Ready_Atk_back,waist="Incarnation Sash",legs=Pet_Melee_legs,feet=Pet_Melee_feet}
- --sets.idle.DWNE.PetRegen = {main=Pet_Regen_AxeMain,sub=Pet_Regen_AxeSub,
- -- neck="Empath Necklace",
- -- feet=Pet_Regen_feet}
- sets.defense.DWNE = {}
- sets.defense.DWNE.PDT = {main="Pangu",sub="Arktoi",ammo="Iron Gobbet",
- head="Gleti's Mask",neck="Loricate Torque +1",ear1="Tuisto Earring",ear2="Odnowa Earring +1",
- body="Udug Jacket",hands="Gleti's Gauntlets",ring1="Fortified Ring",ring2="Warden's Ring",
- back="Shadow Mantle",waist="Flume Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.defense.DWNE.MDT = {main="Pangu",sub="Purgation",ammo="Vanir Battery",
- head=MEva_head,neck="Inquisitor Bead Necklace",ear1="Sanare Earring",ear2="Etiolation Earring",
- body="Tartarus Platemail",hands=MEva_hands,ring1="Shadow Ring",ring2="Purity Ring",
- back="Engulfer Cape +1",waist="Asklepian Belt",legs=MEva_legs,feet=MEva_feet}
- sets.defense.DWNE.MEva = {main=MEva_Axe_main,sub=MEva_Axe_sub,ammo="Staunch Tathlum +1",
- head=MEva_head,neck="Warder's Charm +1",ear1="Hearty Earring",ear2="Eabani Earring",
- body="Udug Jacket",hands=MEva_hands,ring1="Vengeful Ring",ring2="Purity Ring",
- back=MEva_back,waist="Engraved Belt",legs=MEva_legs,feet=MEva_feet}
- sets.defense.DWNE.Killer = {main="Pangu",sub="Arktoi",ammo="Iron Gobbet",
- head="Ankusa Helm +3",neck="Loricate Torque +1",ear1="Tuisto Earring",ear2="Odnowa Earring +1",
- body="Nukumi Gausape +1",hands="Gleti's Gauntlets",ring1="Fortified Ring",ring2="Warden's Ring",
- back="Shadow Mantle",waist="Flume Belt +1",legs="Totemic Trousers +3",feet="Malignance Boots"}
- sets.defense.DWNE.PetPDT = {main="Pangu",sub=Pet_PDT_AxeSub,ammo="Hesperiidae",
- head="Anwig Salade",neck="Shepherd's Chain",ear1="Handler's Earring +1",ear2="Enmerkar Earring",
- body=Pet_PDT_body,hands=Pet_PDT_hands,ring1="Thurandaut Ring +1",ring2="Defending Ring",
- back=Pet_PDT_back,waist="Isa Belt",legs=Pet_DT_legs,feet=Pet_DT_feet}
- sets.defense.DWNE.PetMDT = {main="Pangu",sub=Pet_MDT_AxeSub,ammo="Hesperiidae",
- head="Anwig Salade",neck="Shepherd's Chain",ear1="Rimeice Earring",ear2="Enmerkar Earring",
- body="Totemic Jackcoat +3",hands=Pet_MDT_hands,ring1="Thurandaut Ring +1",ring2="Defending Ring",
- back=Pet_MDT_back,waist="Isa Belt",legs=Pet_MDT_legs,feet=Pet_MDT_feet}
- --------------------
- -- FAST CAST SETS --
- --------------------
- sets.precast.FC = {ammo="Sapience Orb",
- head=FC_head,neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Enchanter Earring +1",
- body=FC_body,hands=FC_hands,ring1="Prolix Ring",ring2="Rahab Ring",
- back=FC_back,waist="Moblin Cest",legs=FC_legs,feet=FC_feet}
- sets.precast.FCNE = set_combine(sets.precast.FC, {main="Shukuyu's Scythe",sub="Vivid Strap +1"})
- sets.precast.FC["Utsusemi: Ichi"] = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
- sets.precast.FC["Utsusemi: Ni"] = set_combine(sets.precast.FC, {ammo="Impatiens",neck="Magoraga Beads",ring1="Lebeche Ring",ring2="Veneficium Ring"})
- ------------------
- -- MIDCAST SETS --
- ------------------
- sets.midcast.FastRecast = {ammo="Sapience Orb",
- head=FC_head,neck="Orunmila's Torque",ear1="Loquacious Earring",ear2="Enchanter Earring +1",
- body=FC_body,hands=FC_hands,ring1="Prolix Ring",ring2="Rahab Ring",
- back=FC_back,waist="Moblin Cest",legs=FC_legs,feet=FC_feet}
- sets.midcast.Cure = {ammo="Quartz Tathlum +1",
- head=Cure_Potency_head,neck="Phalaina Locket",ear1="Beatific Earring",ear2="Mendicant's Earring",
- body=Cure_Potency_body,hands=Cure_Potency_hands,ring1="Menelaus's Ring",ring2="Asklepian Ring",
- back=Cure_Potency_back,waist="Gishdubar Sash",legs=Cure_Potency_legs,feet=Cure_Potency_feet}
- sets.midcast.Curaga = sets.midcast.Cure
- sets.CurePetOnly = {main=Cure_Potency_axe,sub="Sacro Bulwark"}
- sets.midcast.Stoneskin = {ammo="Quartz Tathlum +1",
- head="Jumalik Helm",neck="Stone Gorget",ear1="Earthcry Earring",ear2="Lifestorm Earring",
- body="Totemic Jackcoat +3",hands="Stone Mufflers",ring1="Leviathan Ring +1",ring2="Leviathan Ring +1",
- back=Pet_PDT_back,waist="Engraved Belt",legs="Haven Hose"}
- sets.midcast.Cursna = set_combine(sets.midcast.FastRecast, {neck="Malison Medallion",
- ring1="Eshmun's Ring",ring2="Haoma's Ring",waist="Gishdubar Sash"})
- sets.midcast.Protect = {ring2="Sheltered Ring"}
- sets.midcast.Protectra = sets.midcast.Protect
- sets.midcast.Shell = {ring2="Sheltered Ring"}
- sets.midcast.Shellra = sets.midcast.Shell
- sets.midcast['Enfeebling Magic'] = {ammo="Pemphredo Tathlum",
- head=MAcc_head,neck="Sanctity Necklace",ear1="Hermetic Earring",ear2="Dignitary's Earring",
- body=MAcc_body,hands=MAcc_hands,ring1="Rahab Ring",ring2="Sangoma Ring",
- back=MAcc_back,waist="Eschan Stone",legs=MAcc_legs,feet=MAcc_feet}
- sets.midcast['Elemental Magic'] = {ammo="Pemphredo Tathlum",
- head=MAB_head,neck="Baetyl Pendant",ear1="Hecate's Earring",ear2="Friomisi Earring",
- body=MAB_body,hands=MAB_hands,ring1="Acumen Ring",ring2="Fenrir Ring +1",
- back=MAcc_back,waist="Eschan Stone",legs=MAB_legs,feet=MAB_feet}
- sets.midcast.Flash = sets.Enmity
- --------------------------------------
- -- SINGLE-WIELD MASTER ENGAGED SETS --
- --------------------------------------
- sets.engaged = {ammo="Coiste Bodhar",
- head="Malignance Chapeau",neck="Ainia Collar",ear1="Sherida Earring",ear2="Brutal Earring",
- body="Tali'ah Manteel +2",hands="Malignance Gloves",ring1="Gere Ring",ring2="Epona's Ring",
- back=STP_back,waist="Windbuffet Belt +1",legs="Meghanada Chausses +2",feet=STP_feet}
- sets.engaged.Aftermath = {ammo="Aurgelmir Orb +1",
- head="Malignance Chapeau",neck="Ainia Collar",ear1="Dedition Earring",ear2="Telos Earring",
- body="Malignance Tabard",hands="Malignance Gloves",ring1="Chirich Ring +1",ring2="Chirich Ring +1",
- back=STP_back,waist="Windbuffet Belt +1",legs="Malignance Tights",feet=STP_feet}
- sets.engaged.Hybrid = {ammo="Staunch Tathlum +1",
- head="Malignance Chapeau",neck="Anu Torque",ear1="Sherida Earring",ear2="Brutal Earring",
- body="Tali'ah Manteel +2",hands="Malignance Gloves",ring1="Moonlight Ring",ring2="Defending Ring",
- back=STP_back,waist="Windbuffet Belt +1",legs="Malignance Tights",feet="Malignance Boots"}
- sets.engaged.SubtleBlow = {ammo="Coiste Bodhar",
- head="Malignance Chapeau",neck="Agasaya's Collar",ear1="Sherida Earring",ear2="Brutal Earring",
- body="Sacro Breastplate",hands="Malignance Gloves",ring1="Chirich Ring +1",ring2="Chirich Ring +1",
- back=STP_back,waist="Sarissaphoroi Belt",legs="Malignance Tights",feet="Malignance Boots"}
- sets.engaged.MaxAcc = {ammo="Aurgelmir Orb +1",
- head="Totemic Helm +3",neck="Beastmaster Collar +2",ear1="Zennaroi Earring",ear2="Telos Earring",
- body="Totemic Jackcoat +3",hands="Totemic Gloves +3",ring1="Ilabrat Ring",ring2="Regal Ring",
- back=STP_back,waist="Klouskap Sash +1",legs="Totemic Trousers +3",feet="Totemic Gaiters +3"}
- sets.engaged.Farsha = {ammo="Coiste Bodhar",
- head="Nukumi Cabasset +1",neck="Beastmaster Collar +2",ear1="Sherida Earring",ear2="Moonshade Earring",
- body="Nukumi Gausape +1",hands="Nukumi Manoplas +1",ring1="Gere Ring",ring2="Epona's Ring",
- back=STP_back,waist="Windbuffet Belt +1",legs="Nukumi Quijotes +1",feet="Nukumi Ocreae +1"}
- ------------------------------------
- -- DUAL-WIELD MASTER ENGAGED SETS --
- ------------------------------------
- sets.engaged.DW = {ammo="Coiste Bodhar",
- head="Malignance Chapeau",neck="Ainia Collar",ear1="Sherida Earring",ear2="Eabani Earring",
- body="Tali'ah Manteel +2",hands=DW_hands,ring1="Gere Ring",ring2="Epona's Ring",
- back=STP_back,waist="Reiki Yotai",legs="Meghanada Chausses +2",feet=STP_feet}
- sets.engaged.DW.Aftermath = {ammo="Aurgelmir Orb +1",
- head="Malignance Chapeau",neck="Ainia Collar",ear1="Dedition Earring",ear2="Eabani Earring",
- body="Malignance Tabard",hands="Malignance Gloves",ring1="Chirich Ring +1",ring2="Chirich Ring +1",
- back=STP_back,waist="Reiki Yotai",legs="Malignance Tights",feet=STP_feet}
- sets.engaged.DW.MedAcc = {ammo="Coiste Bodhar",
- head=DW_head,neck="Shulmanu Collar",ear1="Suppanomimi",ear2="Eabani Earring",
- body=DW_body,hands=DW_hands,ring1="Gere Ring",ring2="Epona's Ring",
- back=DW_back,waist="Reiki Yotai",legs=DW_legs,feet=DW_feet}
- sets.engaged.DW.HighAcc = {ammo="Coiste Bodhar",
- head=DW_head,neck="Shulmanu Collar",ear1="Suppanomimi",ear2="Eabani Earring",
- body=DW_body,hands=DW_hands,ring1="Gere Ring",ring2="Epona's Ring",
- back=DW_back,waist="Reiki Yotai",legs=DW_legs,feet=DW_feet}
- sets.engaged.DW.MaxAcc = {ammo="Aurgelmir Orb +1",
- head="Totemic Helm +3",neck="Beastmaster Collar +2",ear1="Suppanomimi",ear2="Eabani Earring",
- body="Totemic Jackcoat +3",hands="Totemic Gloves +3",ring1="Ilabrat Ring",ring2="Regal Ring",
- back=DW_back,waist="Reiki Yotai",legs="Totemic Trousers +3",feet=DW_feet}
- sets.engaged.DW.SubtleBlow = {ammo="Coiste Bodhar",
- head="Malignance Chapeau",neck="Beastmaster Collar +2",ear1="Suppanomimi",ear2="Eabani Earring",
- body="Sacro Breastplate",hands=DW_hands,ring1="Chirich Ring +1",ring2="Chirich Ring +1",
- back=DW_back,waist="Reiki Yotai",legs="Malignance Tights",feet="Malignance Boots"}
- sets.ExtraSubtleBlow = {ear1="Sherida Earring"}
- sets.engaged.DW.KrakenClub = {ammo="Aurgelmir Orb +1",
- head="Totemic Helm +3",neck="Beastmaster Collar +2",ear1="Suppanomimi",ear2="Eabani Earring",
- body="Totemic Jackcoat +3",hands="Totemic Gloves +3",ring1="Ilabrat Ring",ring2="Regal Ring",
- back=DW_back,waist="Reiki Yotai",legs="Totemic Trousers +3",feet=DW_feet}
- --------------------
- -- MASTER WS SETS --
- --------------------
- -- AXE WSs --
- sets.precast.WS = {ammo="Aurgelmir Orb +1",
- head="Gleti's Mask",neck="Beastmaster Collar +2",ear1="Moonshade Earring",ear2="Telos Earring",
- body="Gleti's Cuirass",hands="Gleti's Gauntlets",ring1="Regal Ring",ring2="Epona's Ring",
- back=STR_WS_back,waist="Sailfi Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.precast.WS['Rampage'] = {ammo="Coiste Bodhar",
- head="Blistering Sallet +1",neck="Fotia Gorget",ear1="Sherida Earring",ear2="Moonshade Earring",
- body="Gleti's Cuirass",hands="Gleti's Gauntlets",ring1="Gere Ring",ring2="Begrudging Ring",
- back=Crit_back,waist="Fotia Belt",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.precast.WS['Calamity'] = {ammo="Aurgelmir Orb +1",
- head="Ankusa Helm +3",neck="Beastmaster Collar +2",ear1="Moonshade Earring",ear2="Thrud Earring",
- body="Gleti's Cuirass",hands="Totemic Gloves +3",ring1="Regal Ring",ring2="Epaminondas's Ring",
- back=STR_WS_back,waist="Sailfi Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.precast.WS['Mistral Axe'] = {ammo="Aurgelmir Orb +1",
- head="Ankusa Helm +3",neck="Beastmaster Collar +2",ear1="Moonshade Earring",ear2="Thrud Earring",
- body="Gleti's Cuirass",hands="Totemic Gloves +3",ring1="Regal Ring",ring2="Epaminondas's Ring",
- back=STR_WS_back,waist="Sailfi Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.precast.WS['Decimation'] = {ammo="Coiste Bodhar",
- head="Gleti's Mask",neck="Fotia Gorget",ear1="Sherida Earring",ear2="Brutal Earring",
- body="Tali'ah Manteel +2",hands="Gleti's Gauntlets",ring1="Gere Ring",ring2="Epona's Ring",
- back=STR_DA_back,waist="Fotia Belt",legs="Meghanada Chausses +2",feet="Gleti's Boots"}
- sets.precast.WS['Decimation'].Gavialis = set_combine(sets.precast.WS['Ruinator'], {head="Gavialis Helm"})
- sets.precast.WS['Bora Axe'] = {ammo="Aurgelmir Orb +1",
- head="Ankusa Helm +3",neck="Beastmaster Collar +2",ear1="Sherida Earring",ear2="Telos Earring",
- body="Gleti's Cuirass",hands="Totemic Gloves +3",ring1="Ilabrat Ring",ring2="Epona's Ring",
- back=Onslaught_back,waist="Sailfi Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.precast.WS['Ruinator'] = {ammo="Coiste Bodhar",
- head="Gleti's Mask",neck="Fotia Gorget",ear1="Sherida Earring",ear2="Telos Earring",
- body="Gleti's Cuirass",hands="Gleti's Gauntlets",ring1="Gere Ring",ring2="Epona's Ring",
- back=STR_DA_back,waist="Fotia Belt",legs="Meghanada Chausses +2",feet="Gleti's Boots"}
- sets.precast.WS['Ruinator'].Gavialis = set_combine(sets.precast.WS['Ruinator'], {head="Gavialis Helm"})
- sets.precast.WS['Onslaught'] = {ammo="Aurgelmir Orb +1",
- head="Ankusa Helm +3",neck="Caro Necklace",ear1="Ishvara Earring",ear2="Thrud Earring",
- body="Gleti's Cuirass",hands="Totemic Gloves +3",ring1="Epaminondas's Ring",ring2="Ilabrat Ring",
- back=Onslaught_back,waist="Sailfi Belt +1",legs="Gleti's Greaves",feet="Gleti's Boots"}
- sets.precast.WS['Primal Rend'] = {ammo="Pemphredo Tathlum",
- head=MAB_head,neck="Baetyl Pendant",ear1="Moonshade Earring",ear2="Friomisi Earring",
- body=MAB_body,hands=MAB_hands,ring1="Acumen Ring",ring2="Epaminondas's Ring",
- back=Primal_back,waist="Eschan Stone",legs=MAB_legs,feet=MAB_feet}
- sets.precast.WS['Primal Rend'].HighAcc = {ammo="Pemphredo Tathlum",
- head=MAcc_head,neck="Sanctity Necklace",ear1="Hermetic Earring",ear2="Dignitary's Earring",
- body=MAcc_body,hands=MAcc_hands,ring1="Sangoma Ring",ring2="Rufescent Ring",
- back=MAcc_back,waist="Eschan Stone",legs=MAcc_legs,feet=MAcc_feet}
- sets.precast.WS['Cloudsplitter'] = set_combine(sets.precast.WS['Primal Rend'], {back=Cloud_back})
- -- DAGGER WSs --
- sets.precast.WS['Evisceration'] = {ammo="Coiste Bodhar",
- head="Blistering Sallet +1",neck="Fotia Gorget",ear1="Sherida Earring",ear2="Moonshade Earring",
- body="Gleti's Cuirass",hands="Gleti's Gauntlets",ring1="Gere Ring",ring2="Begrudging Ring",
- back=Crit_back,waist="Fotia Belt",legs="Heyoka Subligar +1",feet="Gleti's Boots"}
- sets.precast.WS['Aeolian Edge'] = {ammo="Pemphredo Tathlum",
- head=MAB_head,neck="Baetyl Pendant",ear1="Moonshade Earring",ear2="Friomisi Earring",
- body=MAB_body,hands=MAB_hands,ring1="Acumen Ring",ring2="Epaminondas's Ring",
- back=Primal_back,waist="Eschan Stone",legs=MAB_legs,feet=MAB_feet}
- sets.precast.WS['Exenterator'] = {ammo="Coiste Bodhar",
- head="Gleti's Mask",neck="Fotia Gorget",ear1="Sherida Earring",ear2="Telos Earring",
- body="Gleti's Cuirass",hands="Gleti's Gauntlets",ring1="Gere Ring",ring2="Epona's Ring",
- back=STR_DA_back,waist="Fotia Belt",legs="Meghanada Chausses +2",feet="Gleti's Boots"}
- sets.precast.WS['Exenterator'].Gavialis = set_combine(sets.precast.WS['Exenterator'], {head="Gavialis Helm"})
- -- SWORD WSs --
- sets.precast.WS['Savage Blade'] = {ammo="Aurgelmir Orb +1",
- head="Ankusa Helm +3",neck="Caro Necklace",ear1="Ishvara Earring",ear2="Thrud Earring",
- body="Nzingha Cuirass",hands="Totemic Gloves +3",ring1="Epaminondas's Ring",ring2="Ilabrat Ring",
- back=STR_WS_back,waist="Sailfi Belt +1",legs="Ankusa Trousers +3",feet="Ankusa Gaiters +3"}
- -- SCYTHE WSs --
- sets.precast.WS['Spiral Hell'] = {ammo="Aurgelmir Orb +1",
- head="Ankusa Helm +3",neck="Caro Necklace",ear1="Moonshade Earring",ear2="Thrud Earring",
- body="Nzingha Cuirass",hands="Totemic Gloves +3",ring1="Epaminondas's Ring",ring2="Ilabrat Ring",
- back=STR_WS_back,waist="Sailfi Belt +1",legs="Ankusa Trousers +3",feet="Ankusa Gaiters +3"}
- sets.precast.WS['Cross Reaper'] = {ammo="Aurgelmir Orb +1",
- head="Ankusa Helm +3",neck="Caro Necklace",ear1="Moonshade Earring",ear2="Thrud Earring",
- body="Nzingha Cuirass",hands="Totemic Gloves +3",ring1="Epaminondas's Ring",ring2="Ilabrat Ring",
- back=STR_WS_back,waist="Sailfi Belt +1",legs="Ankusa Trousers +3",feet="Ankusa Gaiters +3"}
- sets.precast.WS['Entropy'] = {ammo="Coiste Bodhar",
- head="Gleti's Mask",neck="Fotia Gorget",ear1="Sherida Earring",ear2="Telos Earring",
- body="Gleti's Cuirass",hands="Gleti's Gauntlets",ring1="Gere Ring",ring2="Epona's Ring",
- back=STR_DA_back,waist="Fotia Belt",legs="Meghanada Chausses +2",feet="Gleti's Boots"}
- sets.precast.WS['Entropy'].Gavialis = set_combine(sets.precast.WS['Entropy'], {head="Gavialis Helm"})
- sets.midcast.ExtraMAB = {ear1="Hecate's Earring"}
- sets.midcast.ExtraWSDMG = {ear1="Ishvara Earring"}
- ----------------
- -- OTHER SETS --
- ----------------
- --Precast Gear Sets for DNC subjob abilities:
- sets.precast.Waltz = {ammo="Sonia's Plectrum",
- head="Totemic Helm +3",neck="Unmoving Collar +1",ear1="Handler's Earring +1",ear2="Enchanter Earring +1",
- body="Gleti's Cuirass",hands="Totemic Gloves +3",ring1="Asklepian Ring",ring2="Valseur's Ring",
- back=Waltz_back,waist="Chaac Belt",legs="Dashing Subligar",feet="Totemic Gaiters +3"}
- sets.precast.Step = {ammo="Aurgelmir Orb +1",
- head="Totemic Helm +3",neck="Beastmaster Collar +2",ear1="Zennaroi Earring",ear2="Telos Earring",
- body="Totemic Jackcoat +3",hands="Totemic Gloves +3",ring1="Ilabrat Ring",ring2="Regal Ring",
- back=DW_back,waist="Klouskap Sash +1",legs="Totemic Trousers +3",feet=DW_feet}
- sets.precast.Flourish1 = {}
- sets.precast.Flourish1['Violent Flourish'] = {ammo="Pemphredo Tathlum",
- head=MAcc_head,neck="Sanctity Necklace",ear1="Hermetic Earring",ear2="Dignitary's Earring",
- body=MAcc_body,hands=MAcc_hands,ring1="Rahab Ring",ring2="Sangoma Ring",
- back=MAcc_back,waist="Eschan Stone",legs=MAcc_legs,feet=MAcc_feet}
- --Precast Gear Sets for DRG subjob abilities:
- sets.precast.JA.Jump = {hands="Crusher Gauntlets",feet="Ostro Greaves"}
- sets.precast.JA['High Jump'] = sets.precast.JA.Jump
- --Misc Gear Sets
- sets.FrenzySallet = {head="Frenzy Sallet"}
- sets.precast.LuzafRing = {ring1="Luzaf's Ring"}
- sets.buff['Killer Instinct'] = {body="Nukumi Gausape +1"}
- sets.THGear = {ammo="Perfect Lucky Egg",legs=TH_legs,waist="Chaac Belt"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks that are called to process player actions at specific points in time.
- -------------------------------------------------------------------------------------------------------------------
- function job_pretarget(spell)
- --checkblocking(spell)
- end
- function job_precast(spell, action, spellMap, eventArgs)
- if spell.type == "Monster" and not spell.interrupted then
- equip_ready_gear(spell)
- if not buffactive['Unleash'] then
- equip(sets.ReadyRecast)
- end
- eventArgs.handled = true
- end
- if spell.english == 'Reward' then
- RewardAmmo = ''
- if state.RewardMode.value == 'Theta' then
- RewardAmmo = 'Pet Food Theta'
- elseif state.RewardMode.value == 'Roborant' then
- RewardAmmo = 'Pet Roborant'
- else
- RewardAmmo = 'Pet Food Theta'
- end
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip({ammo=RewardAmmo}, sets.precast.JA.RewardNEDW)
- else
- equip({ammo=RewardAmmo}, sets.precast.JA.RewardNE)
- end
- else
- equip({ammo=RewardAmmo}, sets.precast.JA.Reward)
- end
- end
- if enmity_plus_moves:contains(spell.english) then
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.EnmityNEDW)
- else
- equip(sets.EnmityNE)
- end
- else
- equip(sets.Enmity)
- end
- end
- if spell.english == 'Spur' then
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.precast.JA.SpurNEDW)
- else
- equip(sets.precast.JA.SpurNE)
- end
- else
- equip(sets.precast.JA.Spur)
- end
- end
- if spell.english == 'Charm' then
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.precast.JA.CharmNEDW)
- else
- equip(sets.precast.JA.CharmNE)
- end
- else
- equip(sets.precast.JA.Charm)
- end
- end
- if spell.english == 'Bestial Loyalty' or spell.english == 'Call Beast' then
- jug_pet_info()
- if spell.english == "Call Beast" and call_beast_cancel:contains(JugInfo) then
- add_to_chat(123, spell.name..' Canceled: [HQ Jug Pet]')
- return
- end
- equip({ammo=JugInfo})
- end
- if player.equipment.main == 'Aymur' then
- custom_aftermath_timers_precast(spell)
- end
- if spell.type == "WeaponSkill" and spell.name ~= 'Mistral Axe' and spell.name ~= 'Bora Axe' and spell.target.distance > target_distance then
- cancel_spell()
- add_to_chat(123, spell.name..' Canceled: [Out of Range]')
- handle_equipping_gear(player.status)
- return
- end
- if spell.type == 'CorsairRoll' or spell.english == "Double-Up" then
- equip(sets.precast.LuzafRing)
- end
- if spell.prefix == '/magic' or spell.prefix == '/ninjutsu' or spell.prefix == '/song' then
- if state.AxeMode.value == 'PetOnly' then
- equip(sets.precast.FCNE)
- else
- equip(sets.precast.FC)
- end
- end
- end
- function job_post_precast(spell, action, spellMap, eventArgs)
- --If Killer Instinct is active during WS (except for Primal/Cloudsplitter where Sacro Body is superior), equip Nukumi Gausape +1.
- if spell.type:lower() == 'weaponskill' and buffactive['Killer Instinct'] then
- if spell.english ~= "Primal Rend" and spell.english ~= "Cloudsplitter" then
- equip(sets.buff['Killer Instinct'])
- end
- end
- if spell.english == "Calamity" or spell.english == "Mistral Axe" then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if player.tp > 2750 then
- equip(sets.midcast.ExtraWSDMG)
- end
- else
- if player.tp > 2520 then
- equip(sets.midcast.ExtraWSDMG)
- end
- end
- end
- if spell.english == "Primal Rend" or spell.english == "Cloudsplitter" then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if player.tp > 2750 then
- equip(sets.midcast.ExtraMAB)
- end
- else
- if player.tp > 2520 then
- equip(sets.midcast.ExtraMAB)
- end
- end
- end
- -- Equip Chaac Belt for TH+1 on common Subjob Abilities or Spells.
- if abilities_to_check:contains(spell.english) and state.TreasureMode.value == 'Tag' then
- equip(sets.THGear)
- end
- end
- function job_midcast(spell, action, spellMap, eventArgs)
- if state.AxeMode.value == 'PetOnly' then
- if spell.english == "Cure" or spell.english == "Cure II" or spell.english == "Cure III" or spell.english == "Cure IV" then
- equip(sets.CurePetOnly)
- end
- if spell.english == "Curaga" or spell.english == "Curaga II" or spell.english == "Curaga III" then
- equip(sets.CurePetOnly)
- end
- end
- end
- -- Return true if we handled the aftercast work. Otherwise it will fall back
- -- to the general aftercast() code in Mote-Include.
- function job_aftercast(spell, action, spellMap, eventArgs)
- if spell.type == "Monster" or spell.name == "Sic" then
- equip_ready_gear(spell)
- eventArgs.handled = true
- end
- if spell.english == 'Fight' or spell.english == 'Bestial Loyalty' or spell.english == 'Call Beast' then
- if not spell.interrupted then
- pet_info_update()
- end
- end
- if spell.english == "Leave" and not spell.interrupted then
- clear_pet_buff_timers()
- PetName = 'None';PetJob = 'None';PetInfo = 'None';ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None';ReadyMoveFour = 'None'
- end
- if player.equipment.main == 'Aymur' then
- custom_aftermath_timers_aftercast(spell)
- end
- if player.status ~= 'Idle' and state.AxeMode.value == 'PetOnly' and spell.type ~= "Monster" then
- pet_only_equip_handling()
- end
- end
- function job_pet_midcast(spell, action, spellMap, eventArgs)
- if spell.type == "Monster" or spell.name == "Sic" then
- eventArgs.handled = true
- end
- end
- function job_pet_aftercast(spell, action, spellMap, eventArgs)
- pet_only_equip_handling()
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Customization hook for idle and melee sets.
- -------------------------------------------------------------------------------------------------------------------
- function customize_idle_set(idleSet)
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if state.DefenseMode.value == "Physical" then
- idleSet = set_combine(idleSet, sets.defense.DWNE[state.PhysicalDefenseMode.value])
- elseif state.DefenseMode.value == "Magical" then
- idleSet = set_combine(idleSet, sets.defense.DWNE[state.MagicalDefenseMode.value])
- else
- if pet.status == "Engaged" then
- idleSet = set_combine(idleSet, sets.idle.DWNE.PetEngaged)
- else
- idleSet = set_combine(idleSet, sets.idle.DWNE)
- end
- end
- else
- if state.DefenseMode.value == "Physical" then
- idleSet = set_combine(idleSet, sets.defense.NE[state.PhysicalDefenseMode.value])
- elseif state.DefenseMode.value == "Magical" then
- idleSet = set_combine(idleSet, sets.defense.NE[state.MagicalDefenseMode.value])
- else
- if pet.status == "Engaged" then
- idleSet = set_combine(idleSet, sets.idle.NE.PetEngaged)
- else
- idleSet = set_combine(idleSet, sets.idle.NE)
- end
- end
- end
- end
- idleSet = apply_kiting(idleSet)
- return idleSet
- end
- function customize_melee_set(meleeSet)
- if state.AxeMode.value ~= 'PetOnly' and state.DefenseMode.value == "None" then
- if player.equipment.main == 'Farsha' then
- meleeSet = set_combine(meleeSet, sets.engaged.Farsha)
- elseif player.equipment.sub == 'Kraken Club' then
- meleeSet = set_combine(meleeSet, sets.engaged.DW.KrakenClub)
- elseif state.HybridMode.value == 'SubtleBlow' then
- if player.sub_job == 'NIN' then
- meleeSet = set_combine(meleeSet, sets.engaged.DW.SubtleBlow)
- elseif player.sub_job == 'DNC' then
- meleeSet = set_combine(meleeSet, sets.engaged.DW.SubtleBlow, sets.ExtraSubtleBlow)
- else
- meleeSet = set_combine(meleeSet, sets.engaged.SubtleBlow)
- end
- end
- end
- pet_only_equip_handling()
- meleeSet = apply_kiting(meleeSet)
- return meleeSet
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Hooks for Reward, Correlation, Treasure Hunter, and Pet Mode handling.
- -------------------------------------------------------------------------------------------------------------------
- function job_state_change(stateField, newValue, oldValue)
- if stateField == 'Correlation Mode' then
- state.CorrelationMode:set(newValue)
- elseif stateField == 'Treasure Mode' then
- state.TreasureMode:set(newValue)
- elseif stateField == 'Reward Mode' then
- state.RewardMode:set(newValue)
- elseif stateField == 'Pet Mode' then
- state.CombatWeapon:set(newValue)
- end
- end
- function get_custom_wsmode(spell, spellMap, default_wsmode)
- if default_wsmode == 'Normal' then
- if spell.english == "Ruinator" and (world.day_element == 'Water' or world.day_element == 'Wind' or world.day_element == 'Ice') then
- return 'Gavialis'
- end
- if spell.english == "Rampage" and world.day_element == 'Earth' then
- return 'Gavialis'
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements self-commands.
- -------------------------------------------------------------------------------------------------------------------
- -- Called any time we attempt to handle automatic gear equips (ie: engaged or idle gear).
- function job_handle_equipping_gear(playerStatus, eventArgs)
- end
- -- Called by the 'update' self-command, for common needs.
- -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
- function job_update(cmdParams, eventArgs)
- get_combat_form()
- get_melee_groups()
- pet_info_update()
- update_display_mode_info()
- pet_only_equip_handling()
- end
- -- Updates gear based on pet status changes.
- function job_pet_status_change(newStatus, oldStatus, eventArgs)
- if newStatus == 'Idle' or newStatus == 'Engaged' then
- if state.DefenseMode.value ~= "Physical" and state.DefenseMode.value ~= "Magical" then
- handle_equipping_gear(player.status)
- end
- end
- if pet.hpp == 0 then
- clear_pet_buff_timers()
- PetName = 'None';PetJob = 'None';PetInfo = 'None';ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None';ReadyMoveFour = 'None'
- end
- customize_melee_set(meleeSet)
- pet_info_update()
- end
- function job_buff_change(status, gain, gain_or_loss)
- --Equip Frenzy Sallet if we're asleep and engaged.
- if (status == "sleep" and gain_or_loss) and player.status == 'Engaged' then
- if gain then
- equip(sets.FrenzySallet)
- else
- handle_equipping_gear(player.status)
- end
- end
- if (status == "Aftermath: Lv.3" and gain_or_loss) and player.status == 'Engaged' then
- if player.equipment.main == 'Aymur' and gain then
- job_update(cmdParams, eventArgs)
- handle_equipping_gear(player.status)
- else
- job_update(cmdParams, eventArgs)
- handle_equipping_gear(player.status)
- end
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Ready Move Presets and Pet TP Evaluation Functions - Credit to Bomberto and Verda
- -------------------------------------------------------------------------------------------------------------------
- pet_tp=0
- function job_self_command(cmdParams, eventArgs)
- if cmdParams[1]:lower() == 'ready' then
- if pet.status == "Engaged" then
- ready_move(cmdParams)
- else
- send_command('input /pet "Fight" <t>')
- end
- eventArgs.handled = true
- end
- if cmdParams[1]:lower() == 'gearhandle' then
- pet_only_equip_handling()
- end
- if cmdParams[1] == 'pet_tp' then
- pet_tp = tonumber(cmdParams[2])
- end
- if cmdParams[1]:lower() == 'charges' then
- charges = 3
- ready = windower.ffxi.get_ability_recasts()[102]
- if ready ~= 0 then
- charges = math.floor(((30 - ready) / 10))
- end
- add_to_chat(28,'Ready Recast:'..ready..' Charges Remaining:'..charges..'')
- end
- end
- function ready_move(cmdParams)
- local move = cmdParams[2]:lower()
- local ReadyMove = ''
- if move == 'one' then
- ReadyMove = ReadyMoveOne
- elseif move == 'two' then
- ReadyMove = ReadyMoveTwo
- elseif move == 'three' then
- ReadyMove = ReadyMoveThree
- else
- ReadyMove = ReadyMoveFour
- end
- send_command('input /pet "'.. ReadyMove ..'" <me>')
- end
- pet_tp = 0
- --Fix missing Pet.TP field by getting the packets from the fields lib
- packets = require('packets')
- function update_pet_tp(id,data)
- if id == 0x068 then
- pet_tp = 0
- local update = packets.parse('incoming', data)
- pet_tp = update["Pet TP"]
- windower.send_command('lua c gearswap c pet_tp '..pet_tp)
- end
- end
- id = windower.raw_register_event('incoming chunk', update_pet_tp)
- -------------------------------------------------------------------------------------------------------------------
- -- Current Job State Display
- -------------------------------------------------------------------------------------------------------------------
- -- Set eventArgs.handled to true if we don't want the automatic display to be run.
- function display_current_job_state(eventArgs)
- local msg = 'Melee'
- if state.CombatForm.has_value then
- msg = msg .. ' (' .. state.CombatForm.value .. ')'
- end
- msg = msg .. ': '
- msg = msg .. state.OffenseMode.value
- if state.HybridMode.value ~= 'Normal' then
- msg = msg .. '/' .. state.HybridMode.value
- end
- msg = msg .. ', WS: ' .. state.WeaponskillMode.value
- if state.DefenseMode.value ~= 'None' then
- msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
- end
- if state.Kiting.value then
- msg = msg .. ', Kiting'
- end
- msg = msg .. ', Corr.: '..state.CorrelationMode.value
- if state.JugMode.value ~= 'None' then
- add_to_chat(8,'-- Jug Pet: '.. PetName ..' -- (Pet Info: '.. PetInfo ..', '.. PetJob ..')')
- end
- add_to_chat(28,'Ready Moves: 1.'.. ReadyMoveOne ..' 2.'.. ReadyMoveTwo ..' 3.'.. ReadyMoveThree ..' 4.'.. ReadyMoveFour ..'')
- add_to_chat(122, msg)
- eventArgs.handled = true
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- function equip_ready_gear(spell)
- if physical_ready_moves:contains(spell.name) then
- if state.AxeMode.value == 'PetOnly' then
- if multi_hit_ready_moves:contains(spell.name) then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if tp_based_ready_moves:contains(spell.name) then
- equip(sets.midcast.Pet.MultiStrikeDWNE.TPBonus)
- else
- equip(sets.midcast.Pet.MultiStrikeDWNE)
- end
- else
- if tp_based_ready_moves:contains(spell.name) then
- equip(sets.midcast.Pet.MultiStrikeNE.TPBonus)
- else
- equip(sets.midcast.Pet.MultiStrikeNE)
- end
- end
- else
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if tp_based_ready_moves:contains(spell.name) then
- equip(sets.midcast.Pet.ReadyDWNE.TPBonus[state.OffenseMode.value])
- else
- equip(sets.midcast.Pet.ReadyDWNE[state.OffenseMode.value])
- end
- else
- if tp_based_ready_moves:contains(spell.name) then
- equip(sets.midcast.Pet.ReadyNE.TPBonus[state.OffenseMode.value])
- else
- equip(sets.midcast.Pet.ReadyNE[state.OffenseMode.value])
- end
- end
- end
- else
- if multi_hit_ready_moves:contains(spell.name) then
- equip(sets.midcast.Pet.MultiStrike)
- else
- equip(sets.midcast.Pet[state.OffenseMode.value])
- end
- end
- -- Equip Headgear based on Neutral or Favorable Correlation Modes:
- if state.OffenseMode.value ~= 'MaxAcc' then
- equip(sets.midcast.Pet[state.CorrelationMode.value])
- end
- end
- if magic_atk_ready_moves:contains(spell.name) then
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if tp_based_ready_moves:contains(spell.name) then
- equip(sets.midcast.Pet.MagicAtkReadyDWNE.TPBonus[state.OffenseMode.value])
- else
- equip(sets.midcast.Pet.MagicAtkReadyDWNE[state.OffenseMode.value])
- end
- else
- if tp_based_ready_moves:contains(spell.name) then
- equip(sets.midcast.Pet.MagicAtkReadyNE.TPBonus[state.OffenseMode.value])
- else
- equip(sets.midcast.Pet.MagicAtkReadyNE[state.OffenseMode.value])
- end
- end
- else
- equip(sets.midcast.Pet.MagicAtkReady[state.OffenseMode.value])
- end
- end
- if magic_acc_ready_moves:contains(spell.name) then
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.midcast.Pet.MagicAccReadyDWNE)
- else
- equip(sets.midcast.Pet.MagicAccReadyNE)
- end
- else
- equip(sets.midcast.Pet.MagicAccReady)
- end
- end
- if pet_buff_moves:contains(spell.name) then
- if state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.midcast.Pet.BuffDWNE)
- else
- equip(sets.midcast.Pet.BuffNE)
- end
- else
- equip(sets.midcast.Pet.Buff)
- end
- end
- --If Pet TP, before bonuses, is less than a certain value then equip Nukumi Manoplas +1.
- --Or if Pet TP, before bonuses, is more than a certain value then equip Unleash-specific Axes.
- if (physical_ready_moves:contains(spell.name) or magic_atk_ready_moves:contains(spell.name)) and state.OffenseMode.value ~= 'MaxAcc' then
- if tp_based_ready_moves:contains(spell.name) and PetJob == 'Warrior' then
- if pet_tp < 1300 then
- equip(sets.midcast.Pet.TPBonus)
- elseif pet_tp > 2000 and state.AxeMode.value == 'PetOnly' then
- if multi_hit_ready_moves:contains(spell.name) then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.UnleashMultiStrikeAxes)
- else
- equip(sets.UnleashMultiStrikeAxeShield)
- end
- elseif physical_ready_moves:contains(spell.name) then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.UnleashAtkAxes[state.OffenseMode.value])
- else
- equip(sets.UnleashAtkAxeShield[state.OffenseMode.value])
- end
- else
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.UnleashMABAxes[state.OffenseMode.value])
- else
- equip(sets.UnleashMABAxeShield[state.OffenseMode.value])
- end
- end
- end
- elseif tp_based_ready_moves:contains(spell.name) and PetJob ~= 'Warrior' then
- if pet_tp < 1800 then
- equip(sets.midcast.Pet.TPBonus)
- elseif pet_tp > 2500 and state.AxeMode.value == 'PetOnly' then
- if multi_hit_ready_moves:contains(spell.name) then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.UnleashMultiStrikeAxes)
- else
- equip(sets.UnleashMultiStrikeAxeShield)
- end
- elseif physical_ready_moves:contains(spell.name) then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.UnleashAtkAxes[state.OffenseMode.value])
- else
- equip(sets.UnleashAtkAxeShield[state.OffenseMode.value])
- end
- else
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- equip(sets.UnleashMABAxes[state.OffenseMode.value])
- else
- equip(sets.UnleashMABAxeShield[state.OffenseMode.value])
- end
- end
- end
- end
- end
- end
- function jug_pet_info()
- JugInfo = ''
- if state.JugMode.value == 'FunguarFamiliar' or state.JugMode.value == 'Seedbed Soil' then
- JugInfo = 'Seedbed Soil'
- elseif state.JugMode.value == 'CourierCarrie' or state.JugMode.value == 'Fish Oil Broth' then
- JugInfo = 'Fish Oil Broth'
- elseif state.JugMode.value == 'AmigoSabotender' or state.JugMode.value == 'Sun Water' then
- JugInfo = 'Sun Water'
- elseif state.JugMode.value == 'NurseryNazuna' or state.JugMode.value == 'Dancing Herbal Broth' or state.JugMode.value == 'D. Herbal Broth' then
- JugInfo = 'D. Herbal Broth'
- elseif state.JugMode.value == 'CraftyClyvonne' or state.JugMode.value == 'Cunning Brain Broth' or state.JugMode.value == 'Cng. Brain Broth' then
- JugInfo = 'Cng. Brain Broth'
- elseif state.JugMode.value == 'PrestoJulio' or state.JugMode.value == 'Chirping Grasshopper Broth' or state.JugMode.value == 'C. Grass Broth' then
- JugInfo = 'C. Grass Broth'
- elseif state.JugMode.value == 'SwiftSieghard' or state.JugMode.value == 'Mellow Bird Broth' or state.JugMode.value == 'Mlw. Bird Broth' then
- JugInfo = 'Mlw. Bird Broth'
- elseif state.JugMode.value == 'MailbusterCetas' or state.JugMode.value == 'Goblin Bug Broth' or state.JugMode.value == 'Gob. Bug Broth' then
- JugInfo = 'Gob. Bug Broth'
- elseif state.JugMode.value == 'AudaciousAnna' or state.JugMode.value == 'Bubbling Carrion Broth' then
- JugInfo = 'B. Carrion Broth'
- elseif state.JugMode.value == 'TurbidToloi' or state.JugMode.value == 'Auroral Broth' then
- JugInfo = 'Auroral Broth'
- elseif state.JugMode.value == 'SlipperySilas' or state.JugMode.value == 'Wormy Broth' then
- JugInfo = 'Wormy Broth'
- elseif state.JugMode.value == 'LuckyLulush' or state.JugMode.value == 'Lucky Carrot Broth' or state.JugMode.value == 'L. Carrot Broth' then
- JugInfo = 'L. Carrot Broth'
- elseif state.JugMode.value == 'DipperYuly' or state.JugMode.value == 'Wool Grease' then
- JugInfo = 'Wool Grease'
- elseif state.JugMode.value == 'FlowerpotMerle' or state.JugMode.value == 'Vermihumus' then
- JugInfo = 'Vermihumus'
- elseif state.JugMode.value == 'DapperMac' or state.JugMode.value == 'Briny Broth' then
- JugInfo = 'Briny Broth'
- elseif state.JugMode.value == 'DiscreetLouise' or state.JugMode.value == 'Deepbed Soil' then
- JugInfo = 'Deepbed Soil'
- elseif state.JugMode.value == 'FatsoFargann' or state.JugMode.value == 'Curdled Plasma Broth' or state.JugMode.value == 'C. Plasma Broth' then
- JugInfo = 'C. Plasma Broth'
- elseif state.JugMode.value == 'FaithfulFalcorr' or state.JugMode.value == 'Lucky Broth' then
- JugInfo = 'Lucky Broth'
- elseif state.JugMode.value == 'BugeyedBroncha' or state.JugMode.value == 'Savage Mole Broth' or state.JugMode.value == 'Svg. Mole Broth' then
- JugInfo = 'Svg. Mole Broth'
- elseif state.JugMode.value == 'BloodclawShasra' or state.JugMode.value == 'Razor Brain Broth' or state.JugMode.value == 'Rzr. Brain Broth' then
- JugInfo = 'Rzr. Brain Broth'
- elseif state.JugMode.value == 'GorefangHobs' or state.JugMode.value == 'Burning Carrion Broth' then
- JugInfo = 'B. Carrion Broth'
- elseif state.JugMode.value == 'GooeyGerard' or state.JugMode.value == 'Cloudy Wheat Broth' or state.JugMode.value == 'Cl. Wheat Broth' then
- JugInfo = 'Cl. Wheat Broth'
- elseif state.JugMode.value == 'CrudeRaphie' or state.JugMode.value == 'Shadowy Broth' then
- JugInfo = 'Shadowy Broth'
- elseif state.JugMode.value == 'DroopyDortwin' or state.JugMode.value == 'Swirling Broth' then
- JugInfo = 'Swirling Broth'
- elseif state.JugMode.value == 'PonderingPeter' or state.JugMode.value == 'Viscous Broth' or state.JugMode.value == 'Vis. Broth' then
- JugInfo = 'Vis. Broth'
- elseif state.JugMode.value == 'SunburstMalfik' or state.JugMode.value == 'Shimmering Broth' then
- JugInfo = 'Shimmering Broth'
- elseif state.JugMode.value == 'AgedAngus' or state.JugMode.value == 'Fermented Broth' or state.JugMode.value == 'Ferm. Broth' then
- JugInfo = 'Ferm. Broth'
- elseif state.JugMode.value == 'WarlikePatrick' or state.JugMode.value == 'Livid Broth' then
- JugInfo = 'Livid Broth'
- elseif state.JugMode.value == 'ScissorlegXerin' or state.JugMode.value == 'Spicy Broth' then
- JugInfo = 'Spicy Broth'
- elseif state.JugMode.value == 'BouncingBertha' or state.JugMode.value == 'Bubbly Broth' then
- JugInfo = 'Bubbly Broth'
- elseif state.JugMode.value == 'RhymingShizuna' or state.JugMode.value == 'Lyrical Broth' then
- JugInfo = 'Lyrical Broth'
- elseif state.JugMode.value == 'AttentiveIbuki' or state.JugMode.value == 'Salubrious Broth' then
- JugInfo = 'Salubrious Broth'
- elseif state.JugMode.value == 'SwoopingZhivago' or state.JugMode.value == 'Windy Greens' then
- JugInfo = 'Windy Greens'
- elseif state.JugMode.value == 'AmiableRoche' or state.JugMode.value == 'Airy Broth' then
- JugInfo = 'Airy Broth'
- elseif state.JugMode.value == 'HeraldHenry' or state.JugMode.value == 'Translucent Broth' or state.JugMode.value == 'Trans. Broth' then
- JugInfo = 'Trans. Broth'
- elseif state.JugMode.value == 'BrainyWaluis' or state.JugMode.value == 'Crumbly Soil' then
- JugInfo = 'Crumbly Soil'
- elseif state.JugMode.value == 'HeadbreakerKen' or state.JugMode.value == 'Blackwater Broth' then
- JugInfo = 'Blackwater Broth'
- elseif state.JugMode.value == 'RedolentCandi' or state.JugMode.value == 'Electrified Broth' then
- JugInfo = 'Electrified Broth'
- elseif state.JugMode.value == 'AlluringHoney' or state.JugMode.value == 'Bug-Ridden Broth' then
- JugInfo = 'Bug-Ridden Broth'
- elseif state.JugMode.value == 'CaringKiyomaro' or state.JugMode.value == 'Fizzy Broth' then
- JugInfo = 'Fizzy Broth'
- elseif state.JugMode.value == 'VivaciousVickie' or state.JugMode.value == 'Tantalizing Broth' or state.JugMode.value == 'Tant. Broth' then
- JugInfo = 'Tant. Broth'
- elseif state.JugMode.value == 'HurlerPercival' or state.JugMode.value == 'Pale Sap' then
- JugInfo = 'Pale Sap'
- elseif state.JugMode.value == 'BlackbeardRandy' or state.JugMode.value == 'Meaty Broth' then
- JugInfo = 'Meaty Broth'
- elseif state.JugMode.value == 'GenerousArthur' or state.JugMode.value == 'Dire Broth' then
- JugInfo = 'Dire Broth'
- elseif state.JugMode.value == 'ThreestarLynn' or state.JugMode.value == 'Muddy Broth' then
- JugInfo = 'Muddy Broth'
- elseif state.JugMode.value == 'BraveHeroGlenn' or state.JugMode.value == 'Wispy Broth' then
- JugInfo = 'Wispy Broth'
- elseif state.JugMode.value == 'SharpwitHermes' or state.JugMode.value == 'Saline Broth' then
- JugInfo = 'Saline Broth'
- elseif state.JugMode.value == 'ColibriFamiliar' or state.JugMode.value == 'Sugary Broth' then
- JugInfo = 'Sugary Broth'
- elseif state.JugMode.value == 'ChoralLeera' or state.JugMode.value == 'Glazed Broth' then
- JugInfo = 'Glazed Broth'
- elseif state.JugMode.value == 'SpiderFamiliar' or state.JugMode.value == 'Sticky Webbing' then
- JugInfo = 'Sticky Webbing'
- elseif state.JugMode.value == 'GussyHachirobe' or state.JugMode.value == 'Slimy Webbing' then
- JugInfo = 'Slimy Webbing'
- elseif state.JugMode.value == 'AcuexFamiliar' or state.JugMode.value == 'Poisonous Broth' then
- JugInfo = 'Poisonous Broth'
- elseif state.JugMode.value == 'FluffyBredo' or state.JugMode.value == 'Venomous Broth' then
- JugInfo = 'Venomous Broth'
- elseif state.JugMode.value == 'SuspiciousAlice' or state.JugMode.value == 'Furious Broth' then
- JugInfo = 'Furious Broth'
- elseif state.JugMode.value == 'AnklebiterJedd' or state.JugMode.value == 'Crackling Broth' then
- JugInfo = 'Crackling Broth'
- elseif state.JugMode.value == 'FleetReinhard' or state.JugMode.value == 'Rapid Broth' then
- JugInfo = 'Rapid Broth'
- elseif state.JugMode.value == 'CursedAnnabelle' or state.JugMode.value == 'Creepy Broth' then
- JugInfo = 'Creepy Broth'
- elseif state.JugMode.value == 'SurgingStorm' or state.JugMode.value == 'Insipid Broth' then
- JugInfo = 'Insipid Broth'
- elseif state.JugMode.value == 'SubmergedIyo' or state.JugMode.value == 'Deepwater Broth' then
- JugInfo = 'Deepwater Broth'
- elseif state.JugMode.value == 'MosquitoFamiliar' or state.JugMode.value == 'Wetlands Broth' then
- JugInfo = 'Wetlands Broth'
- elseif state.JugMode.value == 'Left-HandedYoko' or state.JugMode.value == 'Heavenly Broth' then
- JugInfo = 'Heavenly Broth'
- elseif state.JugMode.value == 'SweetCaroline' or state.JugMode.value == 'Aged Humus' then
- JugInfo = 'Aged Humus'
- elseif state.JugMode.value == 'WeevilFamiliar' or state.JugMode.value == 'Pristine Sap' then
- JugInfo = 'Pristine Sap'
- elseif state.JugMode.value == 'StalwartAngelin' or state.JugMode.value == 'Truly Pristine Sap' or state.JugMode.value == 'T. Pristine Sap' then
- JugInfo = 'Truly Pristine Sap'
- elseif state.JugMode.value == 'P.CrabFamiliar' or state.JugMode.value == 'Rancid Broth' then
- JugInfo = 'Rancid Broth'
- elseif state.JugMode.value == 'JovialEdwin' or state.JugMode.value == 'Pungent Broth' then
- JugInfo = 'Pungent Broth'
- elseif state.JugMode.value == 'Y.BeetleFamiliar' or state.JugMode.value == 'Zestful Sap' then
- JugInfo = 'Zestful Sap'
- elseif state.JugMode.value == 'EnergeticSefina' or state.JugMode.value == 'Gassy Sap' then
- JugInfo = 'Gassy Sap'
- elseif state.JugMode.value == 'LynxFamiliar' or state.JugMode.value == 'Frizzante Broth' then
- JugInfo = 'Frizzante Broth'
- elseif state.JugMode.value == 'VivaciousGaston' or state.JugMode.value == 'Spumante Broth' then
- JugInfo = 'Spumante Broth'
- elseif state.JugMode.value == 'Hip.Familiar' or state.JugMode.value == 'Turpid Broth' then
- JugInfo = 'Turpid Broth'
- elseif state.JugMode.value == 'DaringRoland' or state.JugMode.value == 'Feculent Broth' then
- JugInfo = 'Feculent Broth'
- elseif state.JugMode.value == 'SlimeFamiliar' or state.JugMode.value == 'Decaying Broth' then
- JugInfo = 'Decaying Broth'
- elseif state.JugMode.value == 'SultryPatrice' or state.JugMode.value == 'Putrescent Broth' then
- JugInfo = 'Putrescent Broth'
- end
- end
- function pet_info_update()
- if pet.isvalid then
- PetName = pet.name
- if pet.name == 'DroopyDortwin' or pet.name == 'PonderingPeter' or pet.name == 'HareFamiliar' or pet.name == 'KeenearedSteffi' then
- PetInfo = "Rabbit, Beast";PetJob = 'Warrior';ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot';ReadyMoveFour = 'Dust Cloud'
- elseif pet.name == 'LuckyLulush' then
- PetInfo = "Rabbit, Beast";PetJob = 'Warrior';ReadyMoveOne = 'Foot Kick';ReadyMoveTwo = 'Whirl Claws';ReadyMoveThree = 'Wild Carrot';ReadyMoveFour = 'Snow Cloud'
- elseif pet.name == 'SunburstMalfik' or pet.name == 'AgedAngus' or pet.name == 'HeraldHenry' or pet.name == 'CrabFamiliar' or pet.name == 'CourierCarrie' then
- PetInfo = "Crab, Aquan";PetJob = 'Paladin';ReadyMoveOne = 'Big Scissors';ReadyMoveTwo = 'Scissor Guard';ReadyMoveThree = 'Bubble Curtain';ReadyMoveFour = 'Metallic Body'
- elseif pet.name == 'P.CrabFamiliar' or pet.name == 'JovialEdwin' then
- PetInfo = "Barnacle Crab, Aquan";PetJob = 'Paladin';ReadyMoveOne = 'Mega Scissors';ReadyMoveTwo = 'Venom Shower';ReadyMoveThree = 'Bubble Curtain';ReadyMoveFour = 'Metallic Body'
- elseif pet.name == 'WarlikePatrick' or pet.name == 'LizardFamiliar' or pet.name == 'ColdbloodComo' or pet.name == 'AudaciousAnna' then
- PetInfo = "Lizard, Lizard";PetJob = 'Warrior';ReadyMoveOne = 'Tail Blow';ReadyMoveTwo = 'Fireball';ReadyMoveThree = 'Brain Crush';ReadyMoveFour = 'Blockhead'
- elseif pet.name == 'ScissorlegXerin' or pet.name == 'BouncingBertha' then
- PetInfo = "Chapuli, Vermin";PetJob = 'Warrior';ReadyMoveOne = 'Sensilla Blades';ReadyMoveTwo = 'Tegmina Buffet';ReadyMoveThree = 'Tegmina Buffet';ReadyMoveFour = 'Tegmina Buffet'
- elseif pet.name == 'RhymingShizuna' or pet.name == 'SheepFamiliar' or pet.name == 'LullabyMelodia' or pet.name == 'NurseryNazuna' then
- PetInfo = "Sheep, Beast";PetJob = 'Warrior';ReadyMoveOne = 'Sheep Charge';ReadyMoveTwo = 'Rage';ReadyMoveThree = 'Sheep Song';ReadyMoveFour = 'Lamb Chop'
- elseif pet.name == 'AttentiveIbuki' or pet.name == 'SwoopingZhivago' then
- PetInfo = "Tulfaire, Bird";PetJob = 'Warrior';ReadyMoveOne = 'Swooping Frenzy';ReadyMoveTwo = 'Pentapeck';ReadyMoveThree = 'Molting Plumage';ReadyMoveFour = 'Molting Plumage'
- elseif pet.name == 'AmiableRoche' or pet.name == 'TurbidToloi' then
- PetInfo = "Pugil, Aquan";PetJob = 'Warrior';ReadyMoveOne = 'Recoil Dive';ReadyMoveTwo = 'Water Wall';ReadyMoveThree = 'Intimidate';ReadyMoveFour = 'Intimidate'
- elseif pet.name == 'BrainyWaluis' or pet.name == 'FunguarFamiliar' or pet.name == 'DiscreetLouise' then
- PetInfo = "Funguar, Plantoid";PetJob = 'Warrior';ReadyMoveOne = 'Frogkick';ReadyMoveTwo = 'Spore';ReadyMoveThree = 'Silence Gas';ReadyMoveFour = 'Dark Spore'
- elseif pet.name == 'HeadbreakerKen' or pet.name == 'MayflyFamiliar' or pet.name == 'ShellbusterOrob' or pet.name == 'MailbusterCetas' then
- PetInfo = "Fly, Vermin";PetJob = 'Warrior';ReadyMoveOne = 'Somersault';ReadyMoveTwo = 'Cursed Sphere';ReadyMoveThree = 'Venom';ReadyMoveFour = 'Venom'
- elseif pet.name == 'RedolentCandi' or pet.name == 'AlluringHoney' then
- PetInfo = "Snapweed, Plantoid";PetJob = 'Warrior';ReadyMoveOne = 'Tickling Tendrils';ReadyMoveTwo = 'Stink Bomb';ReadyMoveThree = 'Nectarous Deluge';ReadyMoveFour = 'Nepenthic Plunge'
- elseif pet.name == 'CaringKiyomaro' or pet.name == 'VivaciousVickie' then
- PetInfo = "Raaz, Beast";PetJob = 'Monk';ReadyMoveOne = 'Sweeping Gouge';ReadyMoveTwo = 'Zealous Snort';ReadyMoveThree = 'Zealous Snort';ReadyMoveFour = 'Zealous Snort'
- elseif pet.name == 'HurlerPercival' or pet.name == 'BeetleFamiliar' or pet.name == 'PanzerGalahad' then
- PetInfo = "Beetle, Vermin";PetJob = 'Paladin';ReadyMoveOne = 'Power Attack';ReadyMoveTwo = 'Rhino Attack';ReadyMoveThree = 'Hi-Freq Field';ReadyMoveFour = 'Rhino Guard'
- elseif pet.name == 'Y.BeetleFamilia' or pet.name == 'EnergizedSefina' then
- PetInfo = "Beetle (Horn), Vermin";PetJob = 'Paladin';ReadyMoveOne = 'Rhinowrecker';ReadyMoveTwo = 'Hi-Freq Field';ReadyMoveThree = 'Rhino Attack';ReadyMoveFour = 'Rhino Guard'
- elseif pet.name == 'BlackbeardRandy' or pet.name == 'TigerFamiliar' or pet.name == 'SaberSiravarde' or pet.name == 'GorefangHobs' then
- PetInfo = "Tiger, Beast";PetJob = 'Warrior';ReadyMoveOne = 'Razor Fang';ReadyMoveTwo = 'Crossthrash';ReadyMoveThree = 'Roar';ReadyMoveFour = 'Predatory Glare'
- elseif pet.name == 'ColibriFamiliar' or pet.name == 'ChoralLeera' then
- PetInfo = "Colibri, Bird";PetJob = 'Red Mage';ReadyMoveOne = 'Pecking Flurry';ReadyMoveTwo = 'Pecking Flurry';ReadyMoveThree = 'Pecking Flurry';ReadyMoveFour = 'Pecking Flurry'
- elseif pet.name == 'SpiderFamiliar' or pet.name == 'GussyHachirobe' then
- PetInfo = "Spider, Vermin";PetJob = 'Warrior';ReadyMoveOne = 'Sickle Slash';ReadyMoveTwo = 'Acid Spray';ReadyMoveThree = 'Spider Web';ReadyMoveFour = 'Spider Web'
- elseif pet.name == 'GenerousArthur' or pet.name == 'GooeyGerard' then
- PetInfo = "Slug, Amorph";PetJob = 'Warrior';ReadyMoveOne = 'Purulent Ooze';ReadyMoveTwo = 'Corrosive Ooze';ReadyMoveThree = 'Corrosive Ooze';ReadyMoveFour = 'Corrosive Ooze'
- elseif pet.name == 'ThreestarLynn' or pet.name == 'DipperYuly' then
- PetInfo = "Ladybug, Vermin";PetJob = 'Thief';ReadyMoveOne = 'Spiral Spin';ReadyMoveTwo = 'Sudden Lunge';ReadyMoveThree = 'Noisome Powder';ReadyMoveFour = 'Noisome Powder'
- elseif pet.name == 'SharpwitHermes' or pet.name == 'SweetCaroline' or pet.name == 'FlowerpotBill' or pet.name == 'FlowerpotBen' or pet.name == 'Homunculus' or pet.name == 'FlowerpotMerle' then
- PetInfo = "Mandragora, Plantoid";PetJob = 'Monk';ReadyMoveOne = 'Head Butt';ReadyMoveTwo = 'Leaf Dagger';ReadyMoveThree = 'Wild Oats';ReadyMoveFour = 'Scream'
- elseif pet.name == 'AcuexFamiliar' or pet.name == 'FluffyBredo' then
- PetInfo = "Acuex, Amorph";PetJob = 'Black Mage';ReadyMoveOne = 'Foul Waters';ReadyMoveTwo = 'Pestilent Plume';ReadyMoveThree = 'Pestilent Plume';ReadyMoveFour = 'Pestilent Plume'
- elseif pet.name == 'FlytrapFamiliar' or pet.name == 'VoraciousAudrey' or pet.name == 'PrestoJulio' then
- PetInfo = "Flytrap, Plantoid";PetJob = 'Warrior';ReadyMoveOne = 'Soporific';ReadyMoveTwo = 'Palsy Pollen';ReadyMoveThree = 'Gloeosuccus';ReadyMoveFour = 'Gloeosuccus'
- elseif pet.name == 'EftFamiliar' or pet.name == 'AmbusherAllie' or pet.name == 'BugeyedBroncha' or pet.name == 'SuspiciousAlice' then
- PetInfo = "Eft, Lizard";PetJob = 'Warrior';ReadyMoveOne = 'Nimble Snap';ReadyMoveTwo = 'Cyclotail';ReadyMoveThree = 'Geist Wall';ReadyMoveFour = 'Numbing Noise'
- elseif pet.name == 'AntlionFamiliar' or pet.name == 'ChopsueyChucky' or pet.name == 'CursedAnnabelle' then
- PetInfo = "Antlion, Vermin";PetJob = 'Warrior';ReadyMoveOne = 'Mandibular Bite';ReadyMoveTwo = 'Venom Spray';ReadyMoveThree = 'Sandblast';ReadyMoveFour = 'Sandpit'
- elseif pet.name == 'MiteFamiliar' or pet.name == 'LifedrinkerLars' or pet.name == 'AnklebiterJedd' then
- PetInfo = "Diremite, Vermin";PetJob = 'Dark Knight';ReadyMoveOne = 'Double Claw';ReadyMoveTwo = 'Spinning Top';ReadyMoveThree = 'Filamented Hold';ReadyMoveFour = 'Grapple'
- elseif pet.name == 'AmigoSabotender' then
- PetInfo = "Cactuar, Plantoid";PetJob = 'Warrior';ReadyMoveOne = 'Needle Shot';ReadyMoveTwo = '??? Needles';ReadyMoveThree = '??? Needles';ReadyMoveFour = '??? Needles'
- elseif pet.name == 'CraftyClyvonne' then
- PetInfo = "Coeurl, Beast";PetJob = 'Warrior';ReadyMoveOne = 'Blaster';ReadyMoveTwo = 'Chaotic Eye';ReadyMoveThree = 'Chaotic Eye';ReadyMoveFour = 'Chaotic Eye'
- elseif pet.name == 'BloodclawShasra' then
- PetInfo = "Lynx, Beast";PetJob = 'Warrior';ReadyMoveOne = 'Blaster';ReadyMoveTwo = 'Charged Whisker';ReadyMoveThree = 'Chaotic Eye';ReadyMoveFour = 'Chaotic Eye'
- elseif pet.name == 'LynxFamiliar' or pet.name == 'VivaciousGaston' then
- PetInfo = "Collared Lynx, Beast";PetJob = 'Warrior';ReadyMoveOne = 'Frenzied Rage';ReadyMoveTwo = 'Charged Whisker';ReadyMoveThree = 'Chaotic Eye';ReadyMoveFour = 'Blaster'
- elseif pet.name == 'SwiftSieghard' or pet.name == 'FleetReinhard' then
- PetInfo = "Raptor, Lizard";PetJob = 'Warrior';ReadyMoveOne = 'Scythe Tail';ReadyMoveTwo = 'Ripper Fang';ReadyMoveThree = 'Chomp Rush';ReadyMoveFour = 'Chomp Rush'
- elseif pet.name == 'DapperMac' or pet.name == 'SurgingStorm' or pet.name == 'SubmergedIyo' then
- PetInfo = "Apkallu, Bird";PetJob = 'Monk';ReadyMoveOne = 'Beak Lunge';ReadyMoveTwo = 'Wing Slap';ReadyMoveThree = 'Wing Slap';ReadyMoveFour = 'Wing Slap'
- elseif pet.name == 'FatsoFargann' then
- PetInfo = "Leech, Amorph";PetJob = 'Warrior';ReadyMoveOne = 'Suction';ReadyMoveTwo = 'TP Drainkiss';ReadyMoveThree = 'Drainkiss';ReadyMoveFour = 'Acid Mist'
- elseif pet.name == 'Hip.Familiar' or pet.name == 'DaringRoland' or pet.name == 'FaithfulFalcorr' then
- PetInfo = "Hippogryph, Bird";PetJob = 'Thief';ReadyMoveOne = 'Hoof Volley';ReadyMoveTwo = 'Fantod';ReadyMoveThree = 'Nihility Song';ReadyMoveFour = 'Back Heel'
- elseif pet.name == 'CrudeRaphie' then
- PetInfo = "Adamantoise, Lizard";PetJob = 'Paladin';ReadyMoveOne = 'Tortoise Stomp';ReadyMoveTwo = 'Harden Shell';ReadyMoveThree = 'Aqua Breath';ReadyMoveFour = 'Aqua Breath'
- elseif pet.name == 'MosquitoFamilia' or pet.name == 'Left-HandedYoko' then
- PetInfo = "Mosquito, Vermin";PetJob = 'Dark Knight';ReadyMoveOne = 'Infected Leech';ReadyMoveTwo = 'Gloom Spray';ReadyMoveThree = 'Gloom Spray';ReadyMoveFour = 'Gloom Spray'
- elseif pet.name == 'WeevilFamiliar' or pet.name == 'StalwartAngelin' then
- PetInfo = "Weevil, Vermin";PetJob = 'Thief';ReadyMoveOne = 'Disembowel';ReadyMoveTwo = 'Extirpating Salvo';ReadyMoveThree = 'Extirpating Salvo';ReadyMoveFour = 'Extirpating Salvo'
- elseif pet.name == 'SlimeFamiliar' or pet.name == 'SultryPatrice' then
- PetInfo = "Slime, Amorph";PetJob = 'Warrior';ReadyMoveOne = 'Fluid Toss';ReadyMoveTwo = 'Fluid Spread';ReadyMoveThree = 'Digest';ReadyMoveFour = 'Digest'
- end
- else
- PetName = 'None';PetJob = 'None';PetInfo = 'None';ReadyMoveOne = 'None';ReadyMoveTwo = 'None';ReadyMoveThree = 'None';ReadyMoveFour = 'None'
- end
- end
- function pet_only_equip_handling()
- if player.status == 'Engaged' and state.AxeMode.value == 'PetOnly' then
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- if state.DefenseMode.value == "Physical" then
- equip(sets.defense.DWNE[state.PhysicalDefenseMode.value])
- elseif state.DefenseMode.value == "Magical" then
- equip(sets.defense.DWNE[state.MagicalDefenseMode.value])
- else
- if pet.status == "Engaged" then
- equip(sets.idle.DWNE.PetEngaged)
- else
- equip(sets.idle.DWNE)
- end
- end
- else
- if state.DefenseMode.value == "Physical" then
- equip(sets.defense.NE[state.PhysicalDefenseMode.value])
- elseif state.DefenseMode.value == "Magical" then
- equip(sets.defense.NE[state.MagicalDefenseMode.value])
- else
- if pet.status == "Engaged" then
- equip(sets.idle.NE.PetEngaged)
- else
- equip(sets.idle.NE)
- end
- end
- end
- end
- end
- function pet_buff_timer(spell)
- if spell.english == 'Reward' then
- send_command('timers c "Pet: Regen" 180 down '..RewardRegenIcon..'')
- elseif spell.english == 'Spur' then
- send_command('timers c "Pet: Spur" 90 down '..SpurIcon..'')
- elseif spell.english == 'Run Wild' then
- send_command('timers c "'..spell.english..'" '..RunWildDuration..' down '..RunWildIcon..'')
- end
- end
- function clear_pet_buff_timers()
- send_command('timers c "Pet: Regen" 0 down '..RewardRegenIcon..'')
- send_command('timers c "Pet: Spur" 0 down '..SpurIcon..'')
- send_command('timers c "Run Wild" 0 down '..RunWildIcon..'')
- end
- function display_mode_info()
- if DisplayModeInfo == 'true' and DisplayTrue == 1 then
- local x = TextBoxX
- local y = TextBoxY
- send_command('text AccuracyText create Acc. Mode: '..state.OffenseMode.value..'')
- send_command('text AccuracyText pos '..x..' '..y..'')
- send_command('text AccuracyText size '..TextSize..'')
- y = y + (TextSize + 6)
- send_command('text CorrelationText create Corr. Mode: '..state.CorrelationMode.value..'')
- send_command('text CorrelationText pos '..x..' '..y..'')
- send_command('text CorrelationText size '..TextSize..'')
- y = y + (TextSize + 6)
- send_command('text AxeModeText create Axe Mode: '..state.AxeMode.value..'')
- send_command('text AxeModeText pos '..x..' '..y..'')
- send_command('text AxeModeText size '..TextSize..'')
- y = y + (TextSize + 6)
- send_command('text JugPetText create Jug Mode: '..state.JugMode.value..'')
- send_command('text JugPetText pos '..x..' '..y..'')
- send_command('text JugPetText size '..TextSize..'')
- DisplayTrue = DisplayTrue - 1
- end
- end
- function update_display_mode_info()
- if DisplayModeInfo == 'true' then
- send_command('text AccuracyText text Acc. Mode: '..state.OffenseMode.value..'')
- send_command('text CorrelationText text Corr. Mode: '..state.CorrelationMode.value..'')
- send_command('text AxeModeText text Axe Mode: '..state.AxeMode.value..'')
- send_command('text JugPetText text Jug Mode: '..state.JugMode.value..'')
- end
- end
- function checkblocking(spell)
- if buffactive.sleep or buffactive.petrification or buffactive.terror then
- --add_to_chat(3,'Canceling Action - Asleep/Petrified/Terror!')
- cancel_spell()
- return
- end
- if spell.english == "Double-Up" then
- if not buffactive["Double-Up Chance"] then
- add_to_chat(3,'Canceling Action - No ability to Double Up')
- cancel_spell()
- return
- end
- end
- if spell.name ~= 'Ranged' and spell.type ~= 'WeaponSkill' and spell.type ~= 'Scholar' and spell.type ~= 'Monster' then
- if spell.action_type == 'Ability' then
- if buffactive.Amnesia then
- cancel_spell()
- add_to_chat(3,'Canceling Ability - Currently have Amnesia')
- return
- else
- recasttime = windower.ffxi.get_ability_recasts()[spell.recast_id]
- if spell and (recasttime >= 1) then
- --add_to_chat(3,'Ability Canceled:'..spell.name..' - Waiting on Recast:(seconds) '..recasttime..'')
- cancel_spell()
- return
- end
- end
- end
- end
- --if spell.type == 'WeaponSkill' and player.tp < 1000 then
- -- cancel_spell()
- -- add_to_chat(3,'Canceled WS:'..spell.name..' - Current TP is less than 1000.')
- -- return
- --end
- --if spell.type == 'WeaponSkill' and buffactive.Amnesia then
- -- cancel_spell()
- -- add_to_chat(3,'Canceling Ability - Currently have Amnesia.')
- -- return
- --end
- --if spell.name == 'Utsusemi: Ichi' and (buffactive['Copy Image (3)'] or buffactive ['Copy Image (4+)']) then
- -- cancel_spell()
- -- add_to_chat(3,'Canceling Utsusemi - Already have maximum shadows (3).')
- -- return
- --end
- if spell.type == 'Monster' or spell.name == 'Reward' then
- if pet.isvalid then
- if spell.name == 'Fireball' and pet.status ~= "Engaged" then
- cancel_spell()
- send_command('input /pet Fight <t>')
- return
- end
- local s = windower.ffxi.get_mob_by_target('me')
- local pet = windower.ffxi.get_mob_by_target('pet')
- local PetMaxDistance = 4
- local pettargetdistance = PetMaxDistance + pet.model_size + s.model_size
- if pet.model_size > 1.6 then
- pettargetdistance = PetMaxDistance + pet.model_size + s.model_size + 0.1
- end
- if pet.distance:sqrt() >= pettargetdistance then
- --add_to_chat(3,'Canceling: '..spell.name..' - Outside valid JA Distance.')
- cancel_spell()
- return
- end
- else
- add_to_chat(3,'Canceling: '..spell.name..' - That action requires a pet.')
- cancel_spell()
- return
- end
- end
- if spell.name == 'Fight' then
- if pet.isvalid then
- local t = windower.ffxi.get_mob_by_target('t') or windower.ffxi.get_mob_by_target('st')
- local pet = windower.ffxi.get_mob_by_target('pet')
- local PetMaxDistance = 32
- local DistanceBetween = ((t.x - pet.x)*(t.x-pet.x) + (t.y-pet.y)*(t.y-pet.y)):sqrt()
- if DistanceBetween > PetMaxDistance then
- --add_to_chat(3,'Canceling: Fight - Replacing with Heel since target is 30 yalms away from pet.')
- cancel_spell()
- send_command('@wait .5; input /pet Heel <me>')
- return
- end
- end
- end
- end
- function get_melee_groups()
- classes.CustomMeleeGroups:clear()
- if buffactive['Aftermath: Lv.3'] then
- classes.CustomMeleeGroups:append('Aftermath')
- end
- end
- function get_combat_form()
- if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
- state.CombatForm:set('DW')
- else
- state.CombatForm:reset()
- end
- end
Add Comment
Please, Sign In to add comment