Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------------------------------------------------------------
- -- Setup functions for this job. Generally should not be modified.
- -------------------------------------------------------------------------------------------------------------------
- -- Initialization function for this job file.
- function get_sets()
- mote_include_version = 2
- -- Load and initialize the include file.
- include('Mote-Include.lua')
- end
- -- Setup vars that are user-independent. state.Buff vars initialized here will automatically be tracked.
- function job_setup()
- -- List of pet weaponskills to check for
- petWeaponskills = S{"Slapstick", "Knockout", "Magic Mortar",
- "Chimera Ripper", "String Clipper", "Cannibal Blade", "Bone Crusher", "String Shredder",
- "Arcuballista", "Daze", "Armor Piercer", "Armor Shatterer"}
- petRangeskills = S{"Arcuballista", "Daze", "Armor Piercer", "Armor Shatterer"}
- -- Map automaton heads to combat roles
- petModes = {
- ['Harlequin Head'] = 'Melee',
- ['Sharpshot Head'] = 'Ranged',
- ['Valoredge Head'] = 'Tank',
- ['Stormwaker Head'] = 'Magic',
- ['Soulsoother Head'] = 'Heal',
- ['Spiritreaver Head'] = 'Nuke'
- }
- -- Subset of modes that use magic
- magicPetModes = S{'Nuke','Heal','Magic'}
- -- Var to track the current pet mode.
- state.PetMode = M{['description']='Pet Mode', 'None', 'Melee', 'Ranged', 'Tank', 'Magic', 'Heal', 'Nuke'}
- -- Var to track Enmity Cure rule
- state.CureEnmity = M{['description']='Cure Enmity', 'None', 'CureEnmity'}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User setup functions for this job. Recommend that these be overridden in a sidecar file.
- -------------------------------------------------------------------------------------------------------------------
- -- Setup vars that are user-dependent. Can override this function in a sidecar file.
- function user_setup()
- -- Set up Treasure Modes and keybind Ctrl+=
- state.TreasureMode = M{['description']='Treasure Mode', 'Tag', 'Normal'}
- state.OffenseMode:options('Normal', 'Acc', 'HighAcc', 'Fodder')
- state.HybridMode:options('Normal', 'PetTP', 'PetWS', 'RangeWS')
- state.CastingMode:options('Normal', 'LowResist', 'HighResist')
- state.WeaponskillMode:options('Normal', 'Acc', 'Fodder')
- state.IdleMode:options('Normal', 'PDT', 'PetTurtle', 'PetTank', 'Refresh', 'PetMagic')
- state.PhysicalDefenseMode:options('PDT', 'PetTurtle', 'PetTank', 'PetEnmity')
- state.H2H = M{['description']='Current H2H', 'None', 'Kenkonken', 'Ohtas', 'Midnights'}--, 'Verethragna', 'Godhands'}
- state.CureEnmity = M{['description']='Cure Enmity', 'None', 'CureEnmity'}
- state.CP = M(false, "Capacity Points Mode")
- -- Default maneuvers 1, 2, 3 and 4 for each pet mode.
- -- defaultManeuvers = {
- -- ['Melee'] = {'Fire Maneuver', 'Thunder Maneuver', 'Wind Maneuver', 'Light Maneuver'},
- -- ['Ranged'] = {'Wind Maneuver', 'Fire Maneuver', 'Thunder Maneuver', 'Light Maneuver'},
- -- ['Tank'] = {'Earth Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Wind Maneuver'},
- -- ['Magic'] = {'Ice Maneuver', 'Light Maneuver', 'Dark Maneuver', 'Earth Maneuver'},
- -- ['Heal'] = {'Light Maneuver', 'Dark Maneuver', 'Water Maneuver', 'Earth Maneuver'},
- -- ['Nuke'] = {'Ice Maneuver', 'Dark Maneuver', 'Light Maneuver', 'Earth Maneuver'}
- -- }
- -- Additional local binds
- send_command('bind ^= gs c cycle TreasureMode')
- send_command('bind @g gs c cycle H2H')
- send_command('bind @c gs c toggle CP')
- send_command('bind @e gs c cycle CureEnmity')
- update_pet_mode()
- -- List of abilities to reference for applying Treasure Hunter +1 via Chaac Belt.
- 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', 'Smeak Attack', 'Trick Attack'}
- end
- function user_unload()
- send_command('unbind ^=')
- send_command('unbind @g')
- send_command('unbind @c')
- send_command('unbind @e')
- end
- -- Define sets used by this job file.
- function init_gear_sets()
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Precast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- Fast cast sets for spells
- sets.precast.FC = {
- head=gear.Herculean_Head_TA,
- neck="Voltsurge Torque",
- ear1="Enchntr. Earring +1",
- ear2="Loquac. Earring",
- body=gear.Taeon_Body_Fastcast,
- ring1="Prolix Ring",
- ring2="Lebeche Ring",
- back="Perimede Cape",
- waist="Klouskap Sash",
- legs="Rawhide Trousers",
- feet="Regal Pumps +1"
- }
- sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {
- neck="Magoraga Beads"})
- sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {})
- sets.precast.FC['Elemental Magic'] = set_combine(sets.precast.FC, {})
- sets.precast.FC.Cure = set_combine(sets.precast.FC, {})
- -- body="Heka's Kalasiris",back="Pahtli Cape"
- sets.precast.FC.Curaga = sets.precast.FC.Cure
- -- Precast sets to enhance JAs
- sets.precast.JA['Overdrive'] = {body="Pitre Tobe +1"}
- sets.precast.JA['Role Reversal'] = {feet="Pitre Babouches +1"}
- sets.precast.JA['Deactivate'] = {body="Pitre Tobe +1"}
- sets.precast.JA['Tactical Switch'] = {feet="Karagoz Scarpe +1"}
- sets.precast.JA['Ventriloquy'] = {legs="Pitre Churidars +3"}
- sets.precast.JA.Maneuver = {
- ear2="Burana Earring",
- body="Karagoz Farsetto +1",
- hands="Foire Dastanas +2",
- back=gear.Dispersal_PetTP,
- }
- sets.precast.JA['Repair'] = {
- ammo="Automat. Oil +3",
- head=gear.Taeon_Head_Repair,
- ear1="Guignol Earring",
- ear2="Pratik Earring",
- body=gear.Taeon_Body_Repair,
- hands=gear.Taeon_Hands_Repair,
- legs=gear.Taeon_Legs_Repair,
- feet="Foire Babouches +2"
- }
- sets.precast.JA['Maintenance'] = {
- ammo="Automat. Oil +3",
- ear1="Guignol Earring",
- feet="Foire Babouches +2"
- }
- -- Waltz set (chr and vit)
- sets.precast.Waltz = {
- }
- -- Don't need any special gear for Healing Waltz.
- sets.precast.Waltz['Healing Waltz'] = {}
- sets.precast.Flourish1 = {}
- -- Magic accuracy
- sets.precast.Flourish1['Violent Flourish'] = {
- }
- -- Chakra set (vit)
- sets.precast.JA['Chakra'] = {
- }
- -- Chi Blast set (mnd)
- sets.precast.JA['Chi Blast'] = {
- }
- -- Enmity Set (Master)
- sets.precast.JA['Provoke'] = {}
- -- Pet Cure Set Builds (minus & max HP).
- sets.HPMin = {
- }
- sets.HPMax = {
- }
- ------------------------------------------------------------------------------------------------
- ------------------------------------- Weapon Skill Sets ----------------------------------------
- ------------------------------------------------------------------------------------------------
- -- Default set for any weaponskill that isn't any more specifically defined
- sets.precast.WS = {
- head=gear.Herculean_Head_WS,
- neck="Sanctity Necklace",
- ear1="Steelflash Earring",
- ear2="Bladeborn Earring",
- body=gear.Herculean_Body_WS,
- hands="Pitre Dastanas +3",
- ring1="Epona's Ring",
- ring2="Shukuyu Ring",
- back=gear.PUP_Hybrid,
- waist="Windbuffet Belt +1",
- legs="Hiza. Hizayoroi +2",
- feet=gear.Herculean_Feet_WS,
- }
- -- Specific weaponskill sets. Uses the base set if an appropriate WSMod version isn't found.
- -- STR32/VIT32 - Shadow /Soil/Flame
- sets.precast.WS['Stringing Pummel'] = set_combine(sets.precast.WS, {
- neck="Fotia Gorget",
- waist="Fotia Belt"
- })
- sets.precast.WS['Stringing Pummel'].Acc = set_combine(sets.precast.WS['Stringing Pummel'], {
- })
- -- STR80 - Light/Breeze/Thunder
- sets.precast.WS['Victory Smite'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Victory Smite'].Acc = set_combine(sets.precast.WS['Victory Smite'], {
- })
- -- DEX73~85 - Flame/Light/Aqua
- sets.precast.WS['Shijin Spiral'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Shijin Spiral'].Acc = set_combine(sets.precast.WS['Shijin Spiral'], {
- })
- -- STR20/DEX50 - Light/Thunder
- sets.precast.WS['Howling Fist'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Howling Fist'].Acc = set_combine(sets.precast.WS['Howling Fist'], {
- })
- -- STR100 - Flame/Thunder
- sets.precast.WS['Spinning Attack'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Spinning Attack'].Acc = set_combine(sets.precast.WS['Spinning Attack'], {
- })
- -- STR30/DEX30 - Thunder
- sets.precast.WS['Raging Fists'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Raging Fists'].Acc = set_combine(sets.precast.WS['Raging Fists'], {
- })
- -- VIT100 - Aqua/Thunder
- sets.precast.WS['Shoulder Tackle'] = set_combine(sets.precast.WS, {
- })
- sets.precast.WS['Shoulder Tackle'].Acc = set_combine(sets.precast.WS['Shoulder Tackle'], {
- })
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Midcast Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.midcast.FastRecast = {
- }
- sets.midcast.Cure = {}
- sets.midcast.Curaga = sets.midcast.Cure
- sets.midcast['Enhancing Magic'] = {}
- sets.midcast.Protectra = set_combine(sets.midcast['Enhancing Magic'], {
- ring1="Sheltered Ring"})
- sets.midcast.Shellra = set_combine(sets.midcast['Enhancing Magic'], {
- ring1="Sheltered Ring"})
- sets.midcast.Stoneskin = set_combine(sets.midcast['Enhancing Magic'], {})
- sets.midcast['Enfeebling Magic'] = {}
- sets.midcast.ElementalEnfeeble = set_combine(sets.midcast['Enfeebling Magic'], {})
- sets.midcast['Dark Magic'] = {}
- sets.midcast.Drain = sets.midcast['Dark Magic']
- sets.midcast.Aspir = sets.midcast.Drain
- sets.midcast['Elemental Magic'] = {}
- sets.midcast['Elemental Magic'].Resistant = {}
- sets.midcast.Utsusemi = {}
- sets.midcast.ElementalNinjutsu = {}
- sets.midcast.ElementalNinjutsu.Resistant = set_combine(sets.midcast.ElementalNinjutsu, {})
- sets.midcast.NinjutsuDebuff = {}
- sets.midcast.NinjutsuBuff = {}
- -- Midcast sets for pet actions
- sets.midcast.Pet.Cure = {
- head="Naga Somen",
- neck="Phalaina Locket",
- body="Naga Samue",
- back=gear.Visucius_PetMage,
- waist="Gishdubar Sash",
- legs="Foire Churidars +2",
- feet="Naga Kyahan"
- }
- sets.midcast.Pet.Cure.Enmity = set_combine(sets.midcast.Pet.Cure, {
- head="Heyoka Cap",
- body="Heyoka Harness",
- ear2="Rimeice Earring",
- ear2="Domes. Earring",
- hands="Heyoka Mittens",
- feet="Heyoka Leggings",
- })
- sets.midcast.Pet['Elemental Magic'] = {
- head=gear.Taeon_Head_PetMAB,
- neck="Adad Amulet",
- ear1="Cirque Earring",
- ear2="Burana Earring",
- body=gear.Taeon_Body_PetMAB,
- hands=gear.Naga_Hands_PetMAB,
- ring1="Tali'ah Ring",
- back=gear.Visucius_PetMage,
- waist="Ukko Sash",
- legs="Pitre Churidars +3",
- feet="Foire Babouches +2",
- }
- -- ear1="Enmerkar Earring",
- -- body="Udug Jacket",
- sets.midcast.Pet['Elemental Magic'].LowResist = set_combine(sets.midcast.Pet['Elemental Magic'], {
- head="Tali'ah Turban +1",
- ear1="Charivari Earring",
- body="Tali'ah Manteel +2",
- hands=gear.Naga_Hands_PetMAB,
- })
- sets.midcast.Pet['Elemental Magic'].HighResist = set_combine(sets.midcast.Pet['Elemental Magic'].LowResist, {
- head="Tali'ah Turban +1",
- body="Tali'ah Manteel +2",
- hands="Tali'ah Gages +1",
- })
- sets.midcast.Pet['Enfeebling Magic'] = {
- head="Tali'ah Turban +1",
- neck="Adad Amulet",
- ear1="Charivari Earring",
- body="Tali'ah Manteel +2",
- hands="Tali'ah Gages +1",
- back=gear.PUP_Pet_Magic,
- waist="Ukko Sash",
- legs="Pitre Churidars +3",
- feet="Foire Babouches +2",
- }
- sets.midcast.Pet['Enhancing Magic'] = {}
- sets.midcast.Pet.Protect = set_combine(sets.midcast.Pet['Enhancing Magic'], {lring="Sheltered Ring"})
- sets.midcast.Pet.Protectra = sets.midcast.Pet.Protect
- sets.midcast.Pet.Shell = set_combine(sets.midcast.Pet['Enhancing Magic'], {lring="Sheltered Ring"})
- sets.midcast.Pet.Shellra = sets.midcast.Pet.Shell
- -- sets.midcast.Pet.WeaponSkill = {}
- -- sets.midcast.Pet.RangeSkill = {}
- ------------------------------------------------------------------------------------------------
- ----------------------------------------- Idle Sets --------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- Resting sets
- sets.resting = {}
- sets.resting.pet = {}
- -- Idle sets
- sets.idle = {
- head="Pitre Taj +1",
- neck="Bathy Choker +1",
- ear1="Dawn Earring",
- ear2="Infused Earring",
- body="Hiza. Haramaki +2",
- hands=gear.Rao_Body_WS,
- ring1="Sheltered Ring",
- ring2="Chirich Ring",
- back=gear.Visucius_PetTP,
- waist="Moonbow Belt",
- legs=gear.Rao_Legs_WS,
- feet=gear.Rao_Feet_PetTank,
- }
- -- Master Idle Refresh set (for sub mage)
- sets.idle.Refresh = set_combine(sets.idle, {
- })
- sets.idle.Town = set_combine(sets.idle, {
- body="Councilor's Garb",
- feet="Hermes' Sandals",
- })
- -- Set for idle while pet is out (eg: pet regen/refresh gear)
- sets.idle.Pet = set_combine(sets.idle, {
- back="Contriver's Cape"})
- sets.idle.PetTurtle = set_combine(sets.idle, {
- ear1="Rimeice Earring",
- ear2="Domes. Earring",
- body=gear.Taeon_Body_PetTank,
- hands=gear.Taeon_Hands_PetTank,
- ring1="Thur. Ring +1",
- waist="Isa Belt",
- legs=gear.Taeon_Legs_PetTank,
- feet=gear.Taeon_Feet_PetTank,
- })
- sets.idle.PetTank = set_combine(sets.defense.PetTurtle, {
- head="Heyoka Cap",
- body="Heyoka Harness",
- hands="Heyoka Mittens",
- legs="Heyoka Subligar",
- feet="Heyoka Leggings",
- })
- sets.idle.PetMagic = set_combine(sets.idle.Pet, {
- head="Naga Somen",
- body="Naga Samue",
- waist="Ukko Sash",
- legs="Pitre Churidars +3",
- feet="Naga Kyahan",
- })
- -- Idle sets to wear while pet is engaged
- sets.idle.Pet.Engaged = {
- head="Tali'ah Turban +1",
- neck="Shulmanu Collar",
- ear1="Rimeice Earring",
- ear2="Domes. Earring",
- body="Pitre Tobe +1",
- hands=gear.Taeon_Hands_PetDD_TP,
- ring1="Thur. Ring +1",
- ring2="Varar Ring",
- back=gear.Visucius_PetTP,
- waist="Incarnation Sash",
- legs=gear.Herculean_Legs_PetTP_Atk,
- feet=gear.Herculean_Feet_PetTP_Atk,
- }
- -- ear1="Burana Earring",
- sets.idle.Pet.Engaged.Tank = set_combine(sets.idle.Pet.Engaged, {
- ear1="Rimeice Earring",
- ear2="Handler's Earring +1",
- body=gear.Taeon_Body_PetTank,
- hands=gear.Taeon_Hands_PetTank,
- ring1="Thur. Ring +1",
- waist="Isa Belt",
- legs=gear.Taeon_Legs_PetTank,
- feet=gear.Taeon_Feet_PetTank,
- })
- sets.idle.Pet.Engaged.Ranged = set_combine(sets.idle.Pet.Engaged, {
- })
- sets.idle.Pet.Engaged.Nuke = set_combine(sets.idle.Pet.Engaged, {
- })
- sets.idle.Pet.Engaged.Magic = set_combine(sets.idle.Pet.Engaged, {
- })
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Defense Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- sets.defense.PDT = {
- head="Otronif Mask +1",
- neck="Loricate Torque +1",
- ear1="Genmei Earring",
- ear2="Odnowa Earring +1",
- body=gear.Taeon_Body_PetTank,
- hands=gear.Taeon_Hands_PetTank,
- ring1="Defending Ring",
- ring2="Dark Ring",
- back="Solemnity Cape",
- legs="Otronif Brais +1",
- feet="Otronif Boots +1"
- }
- -- body="Otro. Harness +1",
- -- hands="Otronif Gloves +1",
- sets.defense.MDT = set_combine(sets.defense.PDT, {
- ear1="Etiolation Earring",
- ring2="Shadow Ring"
- })
- sets.defense.PetTurtle = {
- neck="Loricate Torque +1",
- ear1="Rimeice Earring",
- ear2="Domes. Earring",
- body=gear.Taeon_Body_PetTank,
- hands=gear.Taeon_Hands_PetTank,
- ring1="Defending Ring",
- ring2="Dark Ring",
- back=gear.Visucius_PetTP,
- waist="Isa Belt",
- legs=gear.Taeon_Legs_PetTank,
- feet=gear.Taeon_Feet_PetTank,
- }
- sets.defense.PetTank = set_combine(sets.defense.PetTurtle, {
- ring1="Thur. Ring +1",
- ring2="Overbearing Ring"
- })
- sets.defense.PetEnmity = set_combine(sets.defense.PetTurtle, {
- head="Heyoka Cap",
- body="Heyoka Harness",
- hands="Heyoka Mittens",
- legs="Heyoka Subligar",
- feet="Heyoka Leggings"
- })
- sets.Kiting = {feet="Hermes' Sandals"}
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Engaged Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- Variations for TP weapon and (optional) offense/defense modes. Code will fall back on previous
- -- sets if more refined versions aren't defined.
- -- If you create a set with both offense and defense modes, the offense mode should be first.
- -- EG: sets.engaged.Dagger.Accuracy.Evasion
- -- Normal melee group (Master focus)
- sets.engaged = {
- head=gear.Herculean_Head_TA,
- neck="Shulmanu Collar",
- ear1="Telos Earring",
- ear2="Cessance Earring",
- body="Tali'ah Manteel +2",
- hands=gear.Herculean_Hands_TA,
- ring1="Epona's Ring",
- ring2="Niqmaddu Ring",
- back=gear.Visucius_MastDA,
- waist="Moonbow Belt",
- legs=gear.Herculean_Legs_TA,
- feet=gear.Herculean_Feet_TA,
- }
- sets.engaged.Acc = set_combine(sets.engaged, {
- })
- sets.engaged.HighAcc = set_combine(sets.engaged.Acc, {
- ear2="Zennaroi Earring",
- waist="Klouskap Sash"
- })
- -- Normal melee group (Pet focus)
- sets.engaged.PetTP = {
- }
- sets.engaged.Acc.PetTP = set_combine(sets.engaged.PetTP, {
- head="Tali'ah Turban +1",
- body="Tali'ah Manteel +2",
- hands="Tali'ah Gages +1",
- legs="Tali'ah Sera. +2",
- feet="Tali'ah Crackows +1",
- })
- sets.engaged.HighAcc.PetTP = set_combine(sets.engaged.Acc.PetTP, {
- })
- -- Normal melee group (Pet WS focus)
- sets.engaged.PetWS = {
- }
- sets.engaged.Acc.PetWS = set_combine(sets.engaged.PetWS, {
- })
- sets.engaged.HighAcc.PetWS = set_combine(sets.engaged.Acc.PetWS, {
- })
- sets.engaged.RangeWS = set_combine(sets.engaged.PetWS, {})
- sets.engaged.Acc.RangeWS = set_combine(sets.engaged.RangeWS, {
- ear1="Charivari Earring",
- body="Tali'ah Manteel +2",
- ring2="Varar Ring"
- })
- sets.engaged.HighAcc.RangeWS = set_combine(sets.engaged.Acc.RangeWS, {
- head="Tali'ah Turban +1",
- hands="Tali'ah Gages +1",
- legs="Tali'ah Sera. +1"
- })
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Hybrid Sets -------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- TBD
- ------------------------------------------------------------------------------------------------
- ---------------------------------------- Special Sets ------------------------------------------
- ------------------------------------------------------------------------------------------------
- -- sets.latent_ORing = {ring1="Oneiros Ring"}
- sets.THBelt = {waist="Chaac Belt"}
- sets.CP = {back="Mecisto. Mantle"}
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for standard casting events.
- -------------------------------------------------------------------------------------------------------------------
- function job_precast(spell, action, spellMap, eventArgs)
- -- 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.THBelt)
- end
- end
- -- Called when pet is about to perform an action
- function job_pet_midcast(spell, action, spellMap, eventArgs)
- -- if petWeaponskills:contains(spell.english) then
- -- classes.CustomClass = "Weaponskill"
- -- equip(sets.midcast.Pet.WeaponSkill)
- -- end
- -- if petRangeskills:contains(spell.english) then
- -- classes.CustomClass = "Rangeskill"
- -- equip(sets.midcast.Pet.RangeSkill)
- -- end
- if spell.skill == 'Elemental Magic' then
- if state.CastingMode.value == 'LowResist' then
- equip(sets.midcast.Pet['Elemental Magic'].LowResist)
- elseif state.CastingMode.value == 'HighResist' then
- equip(sets.midcast.Pet['Elemental Magic'].HighResist)
- else
- equip(sets.midcast.Pet['Elemental Magic'])
- end
- elseif spell.skill == 'Healing Magic' then
- if state.CureEnmity.value == 'CureEnmity' then
- equip(sets.midcast.Pet.Cure.Enmity)
- else
- equip(sets.midcast.Pet.Cure)
- end
- state.CureEnmity:reset()
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- Job-specific hooks for non-casting events.
- -------------------------------------------------------------------------------------------------------------------
- -- Called when a player gains or loses a buff.
- -- buff == buff gained or lost
- -- gain == true if the buff was gained, false if it was lost.
- function job_buff_change(buff, gain)
- if buff == 'Wind Maneuver' then
- handle_equipping_gear(player.status)
- end
- end
- -- Called when a player gains or loses a pet.
- -- pet == pet gained or lost
- -- gain == true if the pet was gained, false if it was lost.
- function job_pet_change(pet, gain)
- update_pet_mode()
- end
- -- Called when the pet's status changes.
- function job_pet_status_change(newStatus, oldStatus)
- if newStatus == 'Engaged' then
- display_pet_status()
- end
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User code that supplements standard library decisions.
- -------------------------------------------------------------------------------------------------------------------
- -- 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)
- update_pet_mode()
- end
- -- Set eventArgs.handled to true if we don't want the automatic display to be run.
- function display_current_job_state(eventArgs)
- display_pet_status()
- end
- -- Modify the default idle set after it was constructed.
- function customize_idle_set(idleSet)
- -- Current H2H Weapon
- if state.H2H.current == 'Kenkonken' then
- equip({main="Kenkonken"})
- elseif state.H2H.current == 'Ohtas' then
- equip({main="Ohtas"})
- elseif state.H2H.current == 'Midnights' then
- equip({main="Midnights"})
- -- elseif state.H2H.current == 'Verethragna' then
- -- equip({main="Verethragna"})
- -- elseif state.H2H.current == 'Godhands' then
- -- equip({main="Godhands"})
- end
- if state.CP.current == 'on' then
- equip(sets.CP)
- disable('back')
- else
- enable('back')
- end
- return idleSet
- end
- function customize_melee_set(meleeSet)
- --if state.DefenseMode.value == 'None' and player.mp > 100 then
- -- meleeSet = set_combine(meleeSet, sets.latent_ORing)
- --end
- return meleeSet
- end
- -------------------------------------------------------------------------------------------------------------------
- -- User self-commands.
- -------------------------------------------------------------------------------------------------------------------
- -- Called for custom player commands.
- -- function job_self_command(cmdParams, eventArgs)
- -- if cmdParams[1] == 'maneuver' then
- -- if pet.isvalid then
- -- local man = defaultManeuvers[state.PetMode.value]
- -- if man and tonumber(cmdParams[2]) then
- -- man = man[tonumber(cmdParams[2])]
- -- end
- --
- -- if man then
- -- send_command('input /pet "'..man..'" <me>')
- -- end
- -- else
- -- add_to_chat(123,'No valid pet.')
- -- end
- -- end
- --end
- -------------------------------------------------------------------------------------------------------------------
- -- Utility functions specific to this job.
- -------------------------------------------------------------------------------------------------------------------
- -- Get the pet mode value based on the equipped head of the automaton.
- -- Returns nil if pet is not valid.
- function get_pet_mode()
- if pet.isvalid then
- return petModes[pet.head] or 'None'
- else
- return 'None'
- end
- end
- -- Update state.PetMode, as well as functions that use it for set determination.
- function update_pet_mode()
- state.PetMode:set(get_pet_mode())
- update_custom_groups()
- end
- -- Update custom groups based on the current pet.
- function update_custom_groups()
- classes.CustomIdleGroups:clear()
- if pet.isvalid then
- classes.CustomIdleGroups:append(state.PetMode.value)
- end
- end
- -- Display current pet status.
- function display_pet_status()
- if pet.isvalid then
- local petInfoString = pet.name..' ['..pet.head..']: '..tostring(pet.status)..' TP='..tostring(pet.tp)..' HP%='..tostring(pet.hpp)
- if magicPetModes:contains(state.PetMode.value) then
- petInfoString = petInfoString..' MP%='..tostring(pet.mpp)
- end
- add_to_chat(122,petInfoString)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement