Advertisement
Guest User

Untitled

a guest
Jan 13th, 2014
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 21.46 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Initialization function that defines sets and variables to be used.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Last Modified: 1/4/2014 6:07:55 PM
  6.  
  7. -- IMPORTANT: Make sure to also get the Mote-Include.lua file to go with this.
  8.  
  9. function get_sets()
  10.     -- Load and initialize the include file that this depends on.
  11.     include('Mote-Include.lua')
  12.     init_include()
  13.    
  14.     -- Options: Override default values
  15.     options.OffenseModes = {'Normal', 'Acc'}
  16.     options.DefenseModes = {'Normal', 'Evasion', 'PDT'}
  17.     options.WeaponskillModes = {'Normal', 'Acc', 'Att', 'Mod'}
  18.     options.CastingModes = {'Normal'}
  19.     options.IdleModes = {'Normal'}
  20.     options.RestingModes = {'Normal'}
  21.     options.PhysicalDefenseModes = {'PDT', 'Evasion'}
  22.     options.MagicalDefenseModes = {'MDT'}
  23.  
  24.     state.Defense.PhysicalMode = 'PDT'
  25.    
  26.     state.Buff.Migawari = buffactive.migawari or false
  27.     state.Buff.Doom = buffactive.doom or false
  28.    
  29.     --------------------------------------
  30.     -- Start defining the sets
  31.     --------------------------------------
  32.    
  33.     -- Precast Sets
  34.  
  35.     -- Precast sets to enhance JAs
  36.  
  37.     -- Waltz set (chr and vit)
  38.     sets.precast.Waltz = {ammo="Sonia's Plectrum",
  39.         head="Whirlpool Mask",
  40.         body="Otronif Harness",hands="Buremte Gloves",
  41.         back="Iximulew Cape",waist="Caudata Belt",legs="Nahtirah Trousers",feet="Otronif Boots"}
  42.        
  43.     -- Don't need any special gear for Healing Waltz.
  44.     sets.precast.Waltz['Healing Waltz'] = {}
  45.  
  46.     sets.precast.JA.Innin = {head="Iga zunkin +2"}
  47.     sets.precast.JA.Yonin = {legs="Iga Hakana +2"}
  48.    
  49.     -- Set for acc on steps, since Yonin drops acc a fair bit
  50.     sets.precast.Step = {
  51.         head="Whirlpool Mask",neck="Peacock Charm",
  52.         body="Manibozho Jerkin",hands="Otronif Gloves",ring1="patricius Ring",
  53.         back="Letalis Mantle",waist="Anguinus Belt",legs="Manibozho Brais",feet="Manibozho Boots"}
  54.  
  55.     -- Fast cast sets for spells
  56.    
  57.     sets.precast.FC = {ammo="Impatiens",ear2="Loquacious Earring",hands="Thaumas Gloves", head="Athos's chapeau",
  58.                     feet="Suzaku's sune-ate", ring1="Prolix ring", ring2="veneficium ring"}
  59.  
  60.     sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads"})
  61.  
  62.        
  63.     -- Weaponskill sets
  64.     -- Default set for any weaponskill that isn't any more specifically defined
  65.     sets.precast.WS = {
  66.         head="Whirlpool Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  67.         body="Manibozho Jerkin",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  68.         back="Atheling Mantle",waist="Caudata Belt",legs="Manibozho Brais",feet="Otronif Boots"}
  69.  
  70.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  71.     sets.precast.WS['Blade: Jin'] = set_combine(sets.precast.WS, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring",
  72.         waist="Soil Belt"})
  73.  
  74.     sets.precast.WS['Blade: Hi'] = set_combine(sets.precast.WS, {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring",
  75.         hands="Hachiya Tekko +1",head="Uk'uxkaj Cap",body="Hachiya Chainmail +1",ring1="Dumakulem's Ring",legs="Hachiya Hakaman +1", feet="Hachiya Kyanhan +1", waist="Caudata Belt"})
  76.     sets.precast.WS['Blade: Hi'].Mod = set_combine(sets.precast.WS['Blade: Hi'], {back="atheling mantle"})
  77.  
  78.     sets.precast.WS['Blade: Shun'] = set_combine(sets.precast.WS, {neck="Thunder Gorget",waist="Thunder Belt"})
  79.  
  80.     sets.precast.WS['Blade: Kamu'] = set_combine(sets.precast.WS, {neck="Thunder Gorget"})
  81.     sets.precast.WS['Blade: Kamu'].Mod = set_combine(sets.precast.WS['Blade: Kamu'], {waist="Thunder Belt"})
  82.  
  83.     sets.precast.WS['Blade: Ku'] = set_combine(sets.precast.WS, {neck="Soil Gorget"})
  84.     sets.precast.WS['Blade: Ku'].Mod = set_combine(sets.precast.WS['Blade: Ku'], {waist="Soil Belt"})
  85.  
  86.     sets.precast.WS['Aeolian Edge'] = {
  87.         head="Thaumas Hat",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring",
  88.         body="Manibozho Jerkin",hands="Buremte Gloves",ring1="Rajas Ring",ring2="Demon's Ring",
  89.         back="Toro Cape",waist="Thunder Belt",legs="Manibozho Brais",feet="Otronif Boots"}
  90.    
  91.    
  92.     -- Midcast Sets
  93.     sets.midcast.FastRecast = {
  94.         head="Whirlpool Mask",ear2="Loquacious Earring",
  95.         body="Hachiya Chainmail +1",hands="Otronif Gloves",
  96.         waist="Twilight Belt",legs="otronif brais",feet="Otronif Boots"}
  97.        
  98.     -- any ninjutsu cast on self
  99.     sets.midcast.SelfNinjutsu = set_combine(sets.midcast.FastRecast, {neck="Torero Torque",ring1="Beeline Ring",back="Ix Cape"})
  100.  
  101.     -- any ninjutsu cast on enemies
  102.     sets.midcast.Ninjutsu = {
  103.         head="Hachiya Hatsuburi",neck="Stoichean Medal",ear1="Lifestorm Earring",ear2="Psystorm Earring",
  104.         --ear1="Friomisi Earring",ear2="Hecate's Earring",
  105.         body="Otronif Harness",hands="Otronif Gloves",ring1="Icesoul Ring",
  106.         back="Toro Cape",waist="Twilight Belt",legs="Nahtirah Troursers",feet="Hachiya Kyahan"}
  107.  
  108.     --sets.midcast.Ninjutsu.Resistant = set_combine(sets.midcast.Ninjutsu, {ear1="Lifestorm Earring",ear2="Psystorm Earring"})
  109.  
  110.    
  111.     -- Sets to return to when not performing an action.
  112.    
  113.     -- Resting sets
  114.     sets.resting = {head="Ocelomeh Headpiece +1",neck="Wiglen Gorget",
  115.         ring1="Sheltered Ring",ring2="Paguroidea Ring",back="Scuta cape"}
  116.    
  117.  
  118.     -- Idle sets (default idle set not needed since the other three are defined, but leaving for testing purposes)
  119.     sets.idle = { ammo="iron gobbet",
  120.         head="Felistris Mask",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
  121.         body="Hachiya Chainmail +1",hands="Hachiya Tekko +1",ring1="Defending Ring",ring2="Dark Ring",
  122.         back="Shadow Mantle",waist="Windbuffet Belt",legs="Hachiya Hakama +1",feet="Hachiya Kyahan +1"}
  123.  
  124.     sets.idle.Town = { ammo="iron gobbet",
  125.         head="Felistris Mask",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
  126.         body="Hachiya Chainmail +1",hands="Hachiya Tekko +1",ring1="Defending Ring",ring2="Dark Ring",
  127.         back="Shadow Mantle",waist="Windbuffet Belt",legs="Hachiya Hakama +1",feet="Hachiya Kyahan +1"}
  128.    
  129.     sets.idle.Weak = { ammo="iron gobbet",
  130.         head="Felistris Mask",neck="Twilight Torque",ear1="Merman's Earring",ear2="Merman's Earring",
  131.         body="Hachiya Chainmail +1",hands="Hachiya Tekko +1",ring1="Defending Ring",ring2="Dark Ring",
  132.         back="Shadow Mantle",waist="Windbuffet Belt",legs="Hachiya Hakama +1",feet="Hachiya Kyahan +1"}
  133.    
  134.     -- Defense sets
  135.     sets.defense.Evasion = {
  136.         head="Whirlpool Mask",neck="Torero Torque",
  137.         body="Otronif Harness",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Dark Ring",
  138.         back="Ik Cape",waist="Flume Belt",legs="Nahtirah Trousers",feet="Otronif Boots"}
  139.  
  140.     sets.defense.PDT = {ammo="Iron Gobbet",
  141.         head="Otronif Mask",neck="Twilight Torque",
  142.         body="Otronif Harness",hands="Otronif Gloves",ring1="Defending Ring",ring2="Dark Ring",
  143.         back="Mollusca Mantle",waist="Flume Belt",legs="Otronif Brais",feet="Otronif Boots"}
  144.  
  145.     sets.defense.MDT = {ammo="Demonry Stone",
  146.         head="Whirlpool Mask",neck="Torero Torque",
  147.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Shadow Ring",
  148.         back="Engulfer Cape",waist="Flume Belt",legs="Nahtirah Trousers",feet="Otronif Boots"}
  149.  
  150.  
  151.     sets.DayMovement = {feet="Danzo sune-ate"}
  152.  
  153.     sets.NightMovement = {feet="Hachiya Kyahan +1"}
  154.  
  155.     sets.Kiting = select_movement()
  156.  
  157.  
  158.     -- Engaged sets
  159.  
  160.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  161.     -- sets if more refined versions aren't defined.
  162.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  163.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  164.    
  165.     -- Normal melee group
  166.     sets.engaged = {ammo="Qirmiz Tathlum",
  167.         head="Iga Zukin +2",neck="Rancor collar",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  168.         body="Hachiya Chainmail +1",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  169.         back="Atheling Mantle",waist="Patentia Sash",legs="Hachiya Hakama +1",feet="Manibozho Boots"}
  170.     sets.engaged.Acc = {ammo="Qirmiz Tathlum",
  171.         head="Iga Zukin +2",neck="Rancor collar",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  172.         body="Hachiya Chainmail",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  173.         back="Letalis Mantle",waist="Patentia Sash",legs="Hachiya Hakama +1",feet="Manibozho Boots"}
  174.     sets.engaged.Evasion = {ammo="Qirmiz Tathlum",
  175.         head="Whirlpool Mask",neck="Torero Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  176.         body="Hachiya Chainmail",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  177.         back="Ik Cape",waist="Patentia Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  178.     sets.engaged.Acc.Evasion = {ammo="Qirmiz Tathlum",
  179.         head="Whirlpool Mask",neck="Torero Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  180.         body="Otronif Harness",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  181.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  182.     sets.engaged.PDT = {ammo="Qirmiz Tathlum",
  183.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  184.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  185.         back="Iximulew Cape",waist="Patentia Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  186.     sets.engaged.Acc.PDT = {ammo="Qirmiz Tathlum",
  187.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  188.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  189.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  190.  
  191.     -- Custom melee group: High Haste (~20% DW)
  192.     sets.engaged.HighHaste = {ammo="Qirmiz Tathlum",
  193.         head="Felistris mask",neck="Rancor collar",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  194.         body="Thaumas coat",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  195.         back="Atheling Mantle",waist="windbuffet belt",legs="Hachiya Hakama +1",feet="Manibozho Boots"}
  196.     sets.engaged.HighHaste.Acc = {ammo="Qirmiz Tathlum",
  197.         head="Felistris mask",neck="Rancor collar",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  198.         body="Thaumas coat",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  199.         back="Atheling Mantle",waist="windbuffet belt",legs="Hachiya Hakama +1",feet="Manibozho Boots"}
  200.     sets.engaged.HighHaste.Evasion = {ammo="Qirmiz Tathlum",
  201.         head="Whirlpool Mask",neck="Torero Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  202.         body="Hachiya Chainmail",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  203.         back="Ik Cape",waist="Patentia Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  204.     sets.engaged.HighHaste.Acc.Evasion = {ammo="Qirmiz Tathlum",
  205.         head="Whirlpool Mask",neck="Torero Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  206.         body="Otronif Harness",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  207.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  208.     sets.engaged.HighHaste.PDT = {ammo="Qirmiz Tathlum",
  209.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  210.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  211.         back="Iximulew Cape",waist="Patentia Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  212.     sets.engaged.HighHaste.Acc.PDT = {ammo="Qirmiz Tathlum",
  213.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  214.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  215.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  216.  
  217.     -- Custom melee group: Embrava Haste (7% DW)
  218.     sets.engaged.EmbravaHaste = {ammo="Qirmiz Tathlum",
  219.         head="Whirlpool Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  220.         body="Thaumas Coat",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  221.         back="Atheling Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Manibozho Boots"}
  222.     sets.engaged.EmbravaHaste.Acc = {ammo="Qirmiz Tathlum",
  223.         head="Whirlpool Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  224.         body="Otronif Harness",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  225.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Manibozho Boots"}
  226.     sets.engaged.EmbravaHaste.Evasion = {ammo="Qirmiz Tathlum",
  227.         head="Whirlpool Mask",neck="Torero Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  228.         body="Otronif Harness",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  229.         back="Ik Cape",waist="Windbuffet Belt",legs="Hachiya Hakama",feet="Otronif Boots"}
  230.     sets.engaged.EmbravaHaste.Acc.Evasion = {ammo="Qirmiz Tathlum",
  231.         head="Whirlpool Mask",neck="Torero Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  232.         body="Otronif Harness",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  233.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  234.     sets.engaged.EmbravaHaste.PDT = {ammo="Qirmiz Tathlum",
  235.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  236.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  237.         back="Iximulew Cape",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Otronif Boots"}
  238.     sets.engaged.EmbravaHaste.Acc.PDT = {ammo="Qirmiz Tathlum",
  239.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  240.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  241.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Otronif Boots"}
  242.  
  243.     -- Custom melee group: Max Haste (0% DW)
  244.     sets.engaged.MaxHaste = {ammo="Qirmiz Tathlum",
  245.         head="Felistris mask",neck="Rancor collar",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  246.         body="Thaumas coat",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  247.         back="Atheling Mantle",waist="windbuffet belt",legs="Hachiya Hakama +1",feet="Manibozho Boots"}
  248.     sets.engaged.MaxHaste.Acc = {ammo="Qirmiz Tathlum",
  249.         head="Felistris mask",neck="Rancor collar",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  250.         body="Thaumas coat",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  251.         back="Atheling Mantle",waist="windbuffet belt",legs="Hachiya Hakama +1",feet="Manibozho Boots"}
  252.     sets.engaged.MaxHaste.Evasion = {ammo="Qirmiz Tathlum",
  253.         head="Whirlpool Mask",neck="Torero Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  254.         body="Otronif Harness",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  255.         back="Ik Cape",waist="Windbuffet Belt",legs="Hachiya Hakama",feet="Otronif Boots"}
  256.     sets.engaged.MaxHaste.Acc.Evasion = {ammo="Qirmiz Tathlum",
  257.         head="Whirlpool Mask",neck="Torero Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  258.         body="Otronif Harness",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  259.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots"}
  260.     sets.engaged.MaxHaste.PDT = {ammo="Qirmiz Tathlum",
  261.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  262.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  263.         back="Iximulew Cape",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Otronif Boots"}
  264.     sets.engaged.MaxHaste.Acc.PDT = {ammo="Qirmiz Tathlum",
  265.         head="Whirlpool Mask",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  266.         body="Otronif Harness",hands="Otronif Gloves",ring1="Dark Ring",ring2="Epona's Ring",
  267.         back="Letalis Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Otronif Boots"}
  268.  
  269.  
  270.     sets.buff.Migawari = {body="Iga Ningi +2"}
  271.     sets.buff.Doom = {ring2="Saida Ring"}
  272.     sets.buff.Yonin = {}
  273.     sets.buff.Innin = {}
  274.  
  275.  
  276.     set_macro_page(1, 4)
  277.     binds_on_load()
  278.  
  279.     windower.send_command('bind ^- gs c toggle target')
  280.     windower.send_command('bind ^= gs c cycle targetmode')
  281. end
  282.  
  283. -- Called when this job file is unloaded (eg: job change)
  284. function file_unload()
  285.     --binds_on_unload()
  286. end
  287.  
  288. -------------------------------------------------------------------------------------------------------------------
  289. -- Job-specific hooks that are called to process player actions at specific points in time.
  290. -------------------------------------------------------------------------------------------------------------------
  291.  
  292. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  293. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  294. function job_precast(spell, action, spellMap, eventArgs)
  295.     if spell.skill == "Ninjutsu" and spell.target.type:lower() == 'self' then
  296.         classes.CustomClass = "SelfNinjutsu"
  297.     end
  298. end
  299.  
  300. -- Run after the general midcast() is done.
  301. -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  302. function job_post_midcast(spell, action, spellMap, eventArgs)
  303.     if state.Buff.Doom then
  304.         equip(sets.Buff.Doom)
  305.     end
  306. end
  307.  
  308.  
  309. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  310. function job_aftercast(spell, action, spellMap, eventArgs)
  311.     if not spell.interrupted and spell.english == "Migawari: Ichi" then
  312.         state.Buff.Migawari = true
  313.     end
  314. end
  315.  
  316.  
  317. -------------------------------------------------------------------------------------------------------------------
  318. -- Customization hooks for idle and melee sets, after they've been automatically constructed.
  319. -------------------------------------------------------------------------------------------------------------------
  320.  
  321. -- Called before the Include starts constructing melee/idle/resting sets.
  322. -- Can customize state or custom melee class values at this point.
  323. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  324. function job_handle_equipping_gear(status, eventArgs)
  325.     sets.Kiting = select_movement()
  326. end
  327.  
  328. -- Modify the default idle set after it was constructed.
  329. function customize_idle_set(idleSet)
  330.     idleSet = set_combine(idleSet, select_movement())
  331.     if state.Buff.Migawari then
  332.         idleSet = set_combine(idleSet, sets.Buff.Migawari)
  333.     end
  334.     if state.Buff.Doom then
  335.         idleSet = set_combine(idleSet, sets.Buff.Doom)
  336.     end
  337.     return idleSet
  338. end
  339.  
  340. -- Modify the default melee set after it was constructed.
  341. function customize_melee_set(meleeSet)
  342.     if state.Buff.Migawari then
  343.         meleeSet = set_combine(meleeSet, sets.Buff.Migawari)
  344.     end
  345.     if state.Buff.Doom then
  346.         meleeSet = set_combine(meleeSet, sets.Buff.Doom)
  347.     end
  348.     return meleeSet
  349. end
  350.  
  351. -------------------------------------------------------------------------------------------------------------------
  352. -- General hooks for other events.
  353. -------------------------------------------------------------------------------------------------------------------
  354.  
  355. -- Called when a player gains or loses a buff.
  356. -- buff == buff gained or lost
  357. -- gain == true if the buff was gained, false if it was lost.
  358. function job_buff_change(buff, gain)
  359.     if state.Buff[buff] ~= nil then
  360.         state.Buff[buff] = gain
  361.         handle_equipping_gear(player.status)
  362.     end
  363. end
  364.  
  365.  
  366. -------------------------------------------------------------------------------------------------------------------
  367. -- User code that supplements self-commands.
  368. -------------------------------------------------------------------------------------------------------------------
  369.  
  370. -------------------------------------------------------------------------------------------------------------------
  371. -- Utility functions specific to this job.
  372. -------------------------------------------------------------------------------------------------------------------
  373.  
  374. function select_movement()
  375.     -- world.time is given in minutes into each day
  376.     -- 7:00 AM would be 420 minutes
  377.     -- 17:00 PM would be 1020 minutes
  378.     if world.time >= 1020 or world.time <= 420 then
  379.         return sets.NightMovement
  380.     else
  381.         return sets.DayMovement
  382.     end
  383. end
  384.  
  385. function determine_haste_group()
  386.     -- We have three groups of DW in gear: Hachiya body/legs, Iga head + Patentia Sash, and DW earrings
  387.    
  388.     -- Standard gear set reaches near capped delay with just Haste (77%-78%, depending on HQs)
  389.  
  390.     -- For high haste, we want to be able to drop one of the 10% groups.
  391.     -- Basic gear hits capped delay (roughly) with:
  392.     -- 1 March + Haste
  393.     -- 2 March
  394.     -- Haste + Haste Samba
  395.     -- 1 March + Haste Samba
  396.     -- Embrava
  397.    
  398.     -- High haste buffs:
  399.     -- 2x Marches + Haste Samba == 19% DW in gear
  400.     -- 1x March + Haste + Haste Samba == 22% DW in gear
  401.     -- Embrava + Haste or 1x March == 7% DW in gear
  402.    
  403.     -- For max haste (capped magic haste + 25% gear haste), we can drop all DW gear.
  404.     -- Max haste buffs:
  405.     -- Embrava + Haste+March or 2x March
  406.     -- 2x Marches + Haste
  407.    
  408.     -- So we want four tiers:
  409.     -- Normal DW
  410.     -- 20% DW -- High Haste
  411.     -- 7% DW (earrings) - Embrava Haste (specialized situation with embrava and haste, but no marches)
  412.     -- 0 DW - Max Haste
  413.    
  414.     classes.CustomMeleeGroups:clear()
  415.    
  416.     if buffactive.embrava and (buffactive.march == 2 or (buffactive.march and buffactive.haste)) then
  417.         classes.CustomMeleeGroups:append('MaxHaste')
  418.     elseif buffactive.march == 2 and buffactive.haste then
  419.         classes.CustomMeleeGroups:append('MaxHaste')
  420.     elseif buffactive.embrava and (buffactive.haste or buffactive.march) then
  421.         classes.CustomMeleeGroups:append('EmbravaHaste')
  422.     elseif buffactive.march == 1 and buffactive.haste and buffactive['haste samba'] then
  423.         classes.CustomMeleeGroups:append('HighHaste')
  424.     elseif buffactive.march == 2 then
  425.         classes.CustomMeleeGroups:append('HighHaste')
  426.     end
  427. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement