Advertisement
Guest User

Linxe

a guest
Nov 21st, 2014
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 27.73 KB | None | 0 0
  1.    
  2.  
  3.     -------------------------------------------------------------------------------------------------------------------
  4.     -- Setup functions for this job.  Generally should not be modified.
  5.     -------------------------------------------------------------------------------------------------------------------
  6.      
  7.     -- Initialization function for this job file.
  8.     function get_sets()
  9.         mote_include_version = 2
  10.      
  11.         -- Load and initialize the include file.
  12.         include('Mote-Include.lua')
  13.     end
  14.      
  15.      
  16.     -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  17.     function job_setup()
  18.         state.Buff.Migawari = buffactive.migawari or false
  19.         state.Buff.Doom = buffactive.doom or false
  20.         state.Buff.Yonin = buffactive.Yonin or false
  21.         state.Buff.Innin = buffactive.Innin or false
  22.         state.Buff.Futae = buffactive.Futae or false
  23.         state.Buff['Reive Mark'] = buffactive['Reive Mark'] or false
  24.         state.Buff['Voidwatcher'] = buffactive['Voidwatcher'] or false
  25.      
  26.         -- determine_haste_group()
  27.     end
  28.      
  29.     -------------------------------------------------------------------------------------------------------------------
  30.     -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  31.     -------------------------------------------------------------------------------------------------------------------
  32.      
  33.     -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  34.     function user_setup()
  35.         state.OffenseMode:options('Normal', 'Acc', 'Piercing', 'Slashing', 'Blunt','Usukane')
  36.         --state.HybridMode:options('Normal', 'Evasion', 'PDT')
  37.         state.WeaponskillMode:options('Normal', 'Acc', 'Mod')
  38.         --state.CastingMode:options('Normal', 'Resistant')
  39.         --state.PhysicalDefenseMode:options('PDT', 'Evasion')
  40.      
  41.         gear.MovementFeet = {name="Sarutobi Kyahan"}
  42.         gear.DayFeet = "sarutobi kyahan"
  43.         gear.NightFeet = "Ninja Kyahan"
  44.        
  45.         --used in gear sets
  46.         gear.WeaponskillEarring = {name="Suppanomimi"}
  47.         --used in function
  48.         gear.DayEarring = "Suppanomimi"
  49.         gear.Nightearring = "Fenrir's Earring"
  50.         --function to dtermine earring
  51.         select_weaponskill_earring()
  52.         select_movement_feet()
  53.         select_default_macro_book()
  54.     end
  55.      
  56.      
  57.     -- Define sets and vars used by this job file.
  58.     function init_gear_sets()
  59.         --------------------------------------
  60.         -- Precast sets
  61.         --------------------------------------
  62.      
  63.         -- Precast sets to enhance JAs
  64.         -- sets.precast.JA['Mijin Gakure'] = {legs="Mochizuki Hakama"}
  65.         sets.precast.JA['Futae'] = {legs="Iga Tekko +2"}
  66.         -- sets.precast.JA['Sange'] = {legs="Mochizuki Chainmail"}
  67.      
  68.         -- Waltz set (chr and vit)
  69.         --[[sets.precast.Waltz = {ammo="Sonia's Plectrum",
  70.             head="Felistris Mask",
  71.             body="Hachiya Chainmail +1",hands="Buremte Gloves",ring1="Spiral Ring",
  72.             back="Iximulew Cape",waist="Caudata Belt",legs="Nahtirah Trousers",feet="Otronif Boots +1"}]]
  73.             -- Uk'uxkaj Cap, Daihanshi Habaki
  74.            
  75.         -- Don't need any special gear for Healing Waltz.
  76.         -- sets.precast.Waltz['Healing Waltz'] = {}
  77.      
  78.         -- Set for acc on steps, since Yonin drops acc a fair bit
  79.         --[[sets.precast.Step = {
  80.             head="Whirlpool Mask",neck="Ej Necklace",
  81.             body="Otronif Harness +1",hands="Buremte Gloves",ring1="Patricius Ring",
  82.             back="Yokaze Mantle",waist="Chaac Belt",legs="Manibozho Brais",feet="Otronif Boots +1"}]]
  83.      
  84.         -- sets.precast.Flourish1 = {waist="Chaac Belt"}
  85.      
  86.         -- Fast cast sets for spells
  87.         sets.precast.WS = {neck=gear.ElementalGorget,waist=gear.ElementalBelt,ear1=gear.WeaponskillEarring}
  88.         sets.precast.FC = {ammo="Impatiens",ear2="Loquacious Earring",hands="Thaumas Gloves",ring1="Prolix Ring"}
  89.         sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {neck="Magoraga Beads",body="Mochizuki Chainmail"})
  90.      
  91.         -- Snapshot for ranged
  92.         sets.precast.RA = {range="Ungur Boomerang"} -- , hands="Manibozho Gloves",legs="Nahtirah Trousers",feet="Wurrukatte Boots"}
  93.            
  94.         -- Weaponskill sets
  95.         -- Default set for any weaponskill that isn't any more specifically defined
  96.         sets.precast.WS['Blade: Ku'] = set_combine(sets.precast.WS, {waist="Soil Belt", neck="Soil Gorget"})
  97.         sets.precast.WS['Blade: Shun'] = set_combine(sets.precast.WS, {waist="Soil Belt", feet="Daihanshi Habaki", neck="Soil Gorget"})
  98.         --[[sets.precast.WS = {ammo="Qirmiz Tathlum",
  99.             head="Whirlpool Mask",neck=gear.ElementalGorget,ear1="Bladeborn Earring",ear2="Steelflash Earring",
  100.             body="Qaaxo Harness",hands="Mochizuki Tekko",ring1="Rajas Ring",ring2="Epona's Ring",
  101.             back="Atheling Mantle",waist=gear.ElementalBelt,legs="Manibozho Brais",feet="Otronif Boots +1"}
  102.         sets.precast.WS.Acc = set_combine(sets.precast.WS, {ammo="Jukukik Feather",hands="Buremte Gloves",
  103.             back="Yokaze Mantle"})]]
  104.      
  105.         -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  106.         --[[sets.precast.WS['Blade: Jin'] = set_combine(sets.precast.WS,
  107.             {neck="Rancor Collar",ear1="Brutal Earring",ear2="Moonshade Earring",feet="Daihanshi Habaki"})]]
  108.      
  109.         sets.precast.WS['Blade: Hi'] = set_combine(sets.precast.WS,
  110.             {head="Felistris Mask",hands="Hachiya Tekko",ring1="Stormsoul Ring",legs="Nahtirah Trousers",
  111.             waist="Soil Belt"})
  112.      
  113.         sets.precast.WS['Aeolian Edge'] = {
  114.             head="Wayfarer Circlet",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Moonshade Earring",
  115.             body="Wayfarer Robe",hands="Wayfarer Cuffs",ring1="Acumen Ring",ring2="Demon's Ring",
  116.             back="Toro Cape",waist="Thunder Belt",legs="Shneddick Tights +1",feet="Daihanshi Habaki"}
  117.      
  118.        
  119.         --------------------------------------
  120.         -- Midcast sets
  121.         --------------------------------------
  122.      
  123.         sets.midcast.FastRecast = {
  124.             head="Felistris Mask",ear2="Loquacious Earring",
  125.             body="Hachiya Chainmail +1",hands="Mochizuki Tekko",ring1="Prolix Ring",
  126.             legs="Hachiya Hakama",feet="Qaaxo Leggings"}
  127.            
  128.         sets.midcast.Utsusemi = set_combine(sets.midcast.SelfNinjutsu, {feet="Iga Kyahan +2"})
  129.      
  130.         sets.midcast.ElementalNinjutsu = {
  131.             head="Hachiya Hatsuburi",neck="Stoicheion Medal",ear1="Friomisi Earring",ear2="Hecate's Earring",
  132.             body="Hachiya Chainmail +1",hands="Iga Tekko +2",ring1="Icesoul Ring",ring2="Acumen Ring",
  133.             back="Toro Cape",waist=gear.ElementalObi,legs="Nahtirah Trousers",feet="Hachiya Kyahan"}
  134.      
  135.         sets.midcast.ElementalNinjutsu.Resistant = set_combine(sets.midcast.Ninjutsu, {ear1="Lifestorm Earring",ear2="Psystorm Earring",
  136.             back="Yokaze Mantle"})
  137.      
  138.         sets.midcast.NinjutsuDebuff = {
  139.             head="Hachiya Hatsuburi",neck="Stoicheion Medal",ear1="Lifestorm Earring",ear2="Psystorm Earring",
  140.             hands="Mochizuki Tekko",ring2="Sangoma Ring",
  141.             back="Yokaze Mantle",feet="Hachiya Kyahan"}
  142.      
  143.         sets.midcast.NinjutsuBuff = {head="Hachiya Hatsuburi",neck="Ej Necklace",back="Yokaze Mantle"}
  144.      
  145.         sets.midcast.RA = {
  146.             head="Felistris Mask",neck="Ej Necklace",
  147.             body="Hachiya Chainmail +1",hands="Hachiya Tekko",ring1="Beeline Ring",
  148.             back="Yokaze Mantle",legs="Nahtirah Trousers",feet="Qaaxo Leggings"}
  149.         -- Hachiya Hakama/Thurandaut Tights +1
  150.      
  151.         --------------------------------------
  152.         -- Idle/resting/defense/etc sets
  153.         --------------------------------------
  154.        
  155.         -- Resting sets
  156.         sets.resting = {head="Ocelomeh Headpiece +1",neck="Republican Silver Medal",
  157.             ring1="Sheltered Ring",ring2="Paguroidea Ring"}
  158.        
  159.         -- Idle sets
  160.         sets.idle = {
  161.             head="Mochizuki Hatsuburi",neck="Peacock Charm",ear1="Suppanomimi",ear2="Brutal Earring",
  162.             body="Hachiryu Haramaki",hands="Noritsune Kote",ring1="Rajas Ring",ring2="Epona's Ring",
  163.             back="Yokaze Mantle",waist="Anguinus Belt",legs="Hachiryu Haidate",feet=gear.MovementFeet}
  164.      
  165.         sets.idle.Town = {main="Shigi",sub="Kaitsuburi",ammo="Qirmiz Tathlum",
  166.             head="Mochizuki Hatsuburi",neck="Peacock Charm",ear1="Suppanomimi",ear2="Brutal Earring",
  167.             body="Hachiryu Haramaki",hands="Noritsune Kote",ring1="Rajas Ring",ring2="Epona's Ring",
  168.             back="Yokaze Mantle",waist="Anguinus Belt",legs="Hachiryu Haidate",feet=gear.MovementFeet}
  169.        
  170.         sets.idle.Weak = {
  171.             head="Mochizuki Hatsuburi",neck="Magoraga Beads",ear1="Suppanomimi",ear2="Brutal Earring",
  172.             body="Hachiryu Haramaki",hands="Hachiryu Kote",ring1="Rajas Ring",ring2="Epona's Ring",
  173.             back="Yokaze Mantle",waist="Anguinus Belt",legs="Hachiryu Haidate",feet=gear.MovementFeet}
  174.        
  175.         -- Defense sets
  176.         --[[sets.defense.Evasion = {
  177.             head="Felistris Mask",neck="Ej Necklace",
  178.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Beeline Ring",
  179.             back="Yokaze Mantle",waist="Flume Belt",legs="Nahtirah Trousers",feet="Otronif Boots +1"}
  180.      
  181.         sets.defense.PDT = {ammo="Iron Gobbet",
  182.             head="Whirlpool Mask",neck="Twilight Torque",
  183.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2=gear.DarkRing.physical,
  184.             back="Shadow Mantle",waist="Flume Belt",legs="Nahtirah Trousers",feet="Otronif Boots +1"}
  185.      
  186.         sets.defense.MDT = {ammo="Demonry Stone",
  187.             head="Whirlpool Mask",neck="Twilight Torque",
  188.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Shadow Ring",
  189.             back="Engulfer Cape",waist="Flume Belt",legs="Nahtirah Trousers",feet="Otronif Boots +1"}]]
  190.      
  191.      
  192.         sets.Kiting = {feet=gear.MovementFeet}
  193.      
  194.      
  195.         --------------------------------------
  196.         -- Engaged sets
  197.         --------------------------------------
  198.      
  199.         -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  200.         -- sets if more refined versions aren't defined.
  201.         -- If you create a set with both offense and defense modes, the offense mode should be first.
  202.         -- EG: sets.engaged.Dagger.Accuracy.Evasion
  203.        
  204.         -- Normal melee group
  205.         sets.engaged = {ammo="Happo Shuriken",
  206.             head="Uk'uxkaj Cap",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  207.             body="Shneddick Tabard +1",hands="Mochizuki Tekko",ring1="Rajas Ring",ring2="Epona's Ring",
  208.             back="Yokaze Mantle",waist="Anguinus Belt",legs="Kaabnax Trousers",feet="Rager Ledelsens +1"}
  209.         sets.engaged.Acc = {main="Shigi", sub="Kaitsuburi", ammo="Happo Shuriken"   ,
  210.             head="Mochizuki Hatsuburi",neck="Asperity Necklace",ear1="Suppanomimi",ear2="Brutal Earring",
  211.             body="Mochizuki Chainmail",hands="Mochizuki Tekko",ring1="Rajas Ring",ring2="Heed Ring",
  212.             back="Yokaze Mantle",waist="Anguinus Belt",legs="Mochizuki Hakama",feet="Rager Ledelsens +1"}
  213.         sets.engaged.Piercing = {main="Eminent Dagger", sub="Blitto Needle", ammo="Qirmiz Tathlum"}
  214.         sets.engaged.Slashing = {main="Kiikanemitsu", ammo="Qirmiz Tathlum"}
  215.         sets.engaged.Blunt = {main="Afflictors", ammo="Qirmiz Tathlum"}
  216.         sets.engaged.Usukane = {main="Shigi", sub="Kaitsuburi", ammo="Happo Shuriken",
  217.             head="Usukane Somen",
  218.             body="Usukane Haramaki", hands="Usukane Gote",
  219.             legs="Usukane Hizayoroi", feet="Usukane Sune-ate"}
  220.      
  221.         --[[sets.engaged.Evasion = {ammo="Qirmiz Tathlum",
  222.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  223.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  224.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  225.         sets.engaged.Acc.Evasion = {ammo="Qirmiz Tathlum",
  226.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  227.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  228.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}]]
  229.         sets.engaged.PDT = {ammo="Qirmiz Tathlum",
  230.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  231.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  232.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  233.         sets.engaged.Acc.PDT = {ammo="Qirmiz Tathlum",
  234.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  235.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  236.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  237.      
  238.         -- Custom melee group: High Haste (~20% DW)
  239.         --[[sets.engaged.HighHaste = {ammo="Qirmiz Tathlum",
  240.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  241.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  242.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  243.         sets.engaged.Acc.HighHaste = {ammo="Qirmiz Tathlum",
  244.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  245.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  246.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  247.         sets.engaged.Evasion.HighHaste = {ammo="Qirmiz Tathlum",
  248.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  249.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  250.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  251.         sets.engaged.Acc.Evasion.HighHaste = {ammo="Qirmiz Tathlum",
  252.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  253.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  254.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  255.         sets.engaged.PDT.HighHaste = {ammo="Qirmiz Tathlum",
  256.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  257.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  258.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  259.         sets.engaged.Acc.PDT.HighHaste = {ammo="Qirmiz Tathlum",
  260.             head="Outrider Mask",neck="Evasion Torque",ear1="Suppanomimi",ear2="Brutal Earring",
  261.             body="Shneddick Tabard +1",hands="Outrider Mittens",ring1="Rajas Ring",ring2="Heed Ring",
  262.             back="Atheling Mantle",waist="Twilight Belt",legs="Outrider Hose",feet="Rager Ledelsens +1"}
  263.      
  264.         -- Custom melee group: Embrava Haste (7% DW)
  265.         sets.engaged.EmbravaHaste = {ammo="Qirmiz Tathlum",
  266.             head="Whirlpool Mask",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  267.             body="Qaaxo Harness",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  268.             back="Atheling Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Manibozho Boots"}
  269.         sets.engaged.Acc.EmbravaHaste = {ammo="Qirmiz Tathlum",
  270.             head="Whirlpool Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  271.             body="Mochizuki Chainmail",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  272.             back="Yokaze Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Manibozho Boots"}
  273.         sets.engaged.Evasion.EmbravaHaste = {ammo="Qirmiz Tathlum",
  274.             head="Whirlpool Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  275.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  276.             back="Yokaze Mantle",waist="Windbuffet Belt",legs="Hachiya Hakama",feet="Otronif Boots +1"}
  277.         sets.engaged.Acc.Evasion.EmbravaHaste = {ammo="Qirmiz Tathlum",
  278.             head="Whirlpool Mask",neck="Ej Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  279.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  280.             back="Yokaze Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots +1"}
  281.         sets.engaged.PDT.EmbravaHaste = {ammo="Qirmiz Tathlum",
  282.             head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  283.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Epona's Ring",
  284.             back="Yokaze Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Otronif Boots +1"}
  285.         sets.engaged.Acc.PDT.EmbravaHaste = {ammo="Qirmiz Tathlum",
  286.             head="Whirlpool Mask",neck="Twilight Torque",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  287.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Epona's Ring",
  288.             back="Yokaze Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Otronif Boots +1"}
  289.      
  290.         -- Custom melee group: Max Haste (0% DW)
  291.         sets.engaged.MaxHaste = {ammo="Qirmiz Tathlum",
  292.             head="Whirlpool Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  293.             body="Qaaxo Harness",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  294.             back="Atheling Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Manibozho Boots"}
  295.         sets.engaged.Acc.MaxHaste = {ammo="Qirmiz Tathlum",
  296.             head="Whirlpool Mask",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  297.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Rajas Ring",ring2="Epona's Ring",
  298.             back="Yokaze Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Manibozho Boots"}
  299.         sets.engaged.Evasion.MaxHaste = {ammo="Qirmiz Tathlum",
  300.             head="Whirlpool Mask",neck="Ej Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  301.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  302.             back="Yokaze Mantle",waist="Windbuffet Belt",legs="Hachiya Hakama",feet="Otronif Boots +1"}
  303.         sets.engaged.Acc.Evasion.MaxHaste = {ammo="Qirmiz Tathlum",
  304.             head="Whirlpool Mask",neck="Ej Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  305.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Beeline Ring",ring2="Epona's Ring",
  306.             back="Yokaze Mantle",waist="Hurch'lan Sash",legs="Hachiya Hakama",feet="Otronif Boots +1"}
  307.         sets.engaged.PDT.MaxHaste = {ammo="Qirmiz Tathlum",
  308.             head="Whirlpool Mask",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  309.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Epona's Ring",
  310.             back="Yokaze Mantle",waist="Windbuffet Belt",legs="Manibozho Brais",feet="Otronif Boots +1"}
  311.         sets.engaged.Acc.PDT.MaxHaste = {ammo="Qirmiz Tathlum",
  312.             head="Whirlpool Mask",neck="Twilight Torque",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  313.             body="Otronif Harness +1",hands="Otronif Gloves",ring1="Defending Ring",ring2="Epona's Ring",
  314.             back="Yokaze Mantle",waist="Hurch'lan Sash",legs="Manibozho Brais",feet="Otronif Boots +1"}]]
  315.      
  316.      
  317.         --------------------------------------
  318.         -- Custom buff sets
  319.         --------------------------------------
  320.      
  321.         sets.buff.Migawari = {body="Iga Ningi +2"}
  322.         sets.buff.Doom = {ring2="Saida Ring"}
  323.         sets.buff.Yonin = {legs="Iga Hakama +2"}
  324.         sets.buff.Innin = {head="Iga Zukin +2"}
  325.         sets.buff.Reive = {sub="Senkutanto"}
  326.         sets.buff.Voidwatcher = {body="Mextli Harness"}
  327.      
  328.     end
  329.      
  330.     -------------------------------------------------------------------------------------------------------------------
  331.     -- Job-specific hooks for standard casting events.
  332.     -------------------------------------------------------------------------------------------------------------------
  333.      
  334.     -- Run after the general midcast() is done.
  335.     -- eventArgs is the same one used in job_midcast, in case information needs to be persisted.
  336.     function job_post_midcast(spell, action, spellMap, eventArgs)
  337.         if state.Buff.Doom then
  338.             equip(sets.buff.Doom)
  339.         end
  340.     end
  341.      
  342.      
  343.     -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  344.     function job_aftercast(spell, action, spellMap, eventArgs)
  345.         if not spell.interrupted and spell.english == "Migawari: Ichi" then
  346.             state.Buff.Migawari = true
  347.         end
  348.     end
  349.      
  350.     -------------------------------------------------------------------------------------------------------------------
  351.     -- Job-specific hooks for non-casting events.
  352.     -------------------------------------------------------------------------------------------------------------------
  353.      
  354.     -- Called when a player gains or loses a buff.
  355.     -- buff == buff gained or lost
  356.     -- gain == true if the buff was gained, false if it was lost.
  357.     function job_buff_change(buff, gain)
  358.         -- If we gain or lose any haste buffs, adjust which gear set we target.
  359.         if S{'haste','march','embrava','haste samba'}:contains(buff:lower()) then
  360.             determine_haste_group()
  361.             handle_equipping_gear(player.status)
  362.         elseif S{'voidwatcher'}:contains(buff:lower()) then
  363.             Fanatic = "Fanatic's Drink"
  364.             windower.send_command('input /item "'..Fanatic..'" '..windower.ffxi.get_player()["name"])
  365.         elseif state.Buff[buff] ~= nil then
  366.             handle_equipping_gear(player.status)
  367.         end
  368.     end
  369.      
  370.     function job_status_change(new_status, old_status)
  371.         if new_status == 'Idle' then
  372.             select_movement_feet()
  373.         end
  374.         if new_status == 'Engaged' then
  375.             select_weaponskill_earring()
  376.         end
  377.     end
  378.      
  379.      
  380.     -------------------------------------------------------------------------------------------------------------------
  381.     -- User code that supplements standard library decisions.
  382.     -------------------------------------------------------------------------------------------------------------------
  383.      
  384.     -- Get custom spell maps
  385.     function job_get_spell_map(spell, default_spell_map)
  386.         if spell.skill == "Ninjutsu" then
  387.             if not default_spell_map then
  388.                 if spell.target.type == 'SELF' then
  389.                     return 'NinjutsuBuff'
  390.                 else
  391.                     return 'NinjutsuDebuff'
  392.                 end
  393.             end
  394.         end
  395.     end
  396.      
  397.     -- Modify the default idle set after it was constructed.
  398.     function customize_idle_set(idleSet)
  399.         if state.Buff.Migawari then
  400.             idleSet = set_combine(idleSet, sets.buff.Migawari)
  401.         end
  402.         if state.Buff.Doom then
  403.             idleSet = set_combine(idleSet, sets.buff.Doom)
  404.         end
  405.         return idleSet
  406.     end
  407.      
  408.      
  409.     -- Modify the default melee set after it was constructed.
  410.     function customize_melee_set(meleeSet)
  411.         if state.Buff.Migawari then
  412.             meleeSet = set_combine(meleeSet, sets.buff.Migawari)
  413.         end
  414.         if state.Buff.Doom then
  415.             meleeSet = set_combine(meleeSet, sets.buff.Doom)
  416.         end
  417.         if state.Buff['Reive Mark'] then
  418.             meleeSet = set_combine(meleeSet, sets.buff.Reive)
  419.         end
  420.         if state.Buff['Voidwatcher'] then
  421.             meleeSet = set_combine(meleeSet, sets.buff.Voidwatcher)
  422.         end
  423.         return meleeSet
  424.     end
  425.      
  426.     -- Called by the default 'update' self-command.
  427.     function job_update(cmdParams, eventArgs)
  428.         select_movement_feet()
  429.         determine_haste_group()
  430.         select_weaponskill_earring()
  431.     end
  432.      
  433.     -------------------------------------------------------------------------------------------------------------------
  434.     -- Utility functions specific to this job.
  435.     -------------------------------------------------------------------------------------------------------------------
  436.      
  437.     function determine_haste_group()
  438.         -- We have three groups of DW in gear: Hachiya body/legs, Iga head + Patentia Sash, and DW earrings
  439.        
  440.         -- Standard gear set reaches near capped delay with just Haste (77%-78%, depending on HQs)
  441.      
  442.         -- For high haste, we want to be able to drop one of the 10% groups.
  443.         -- Basic gear hits capped delay (roughly) with:
  444.         -- 1 March + Haste
  445.         -- 2 March
  446.         -- Haste + Haste Samba
  447.         -- 1 March + Haste Samba
  448.         -- Embrava
  449.        
  450.         -- High haste buffs:
  451.         -- 2x Marches + Haste Samba == 19% DW in gear
  452.         -- 1x March + Haste + Haste Samba == 22% DW in gear
  453.         -- Embrava + Haste or 1x March == 7% DW in gear
  454.        
  455.         -- For max haste (capped magic haste + 25% gear haste), we can drop all DW gear.
  456.         -- Max haste buffs:
  457.         -- Embrava + Haste+March or 2x March
  458.         -- 2x Marches + Haste
  459.        
  460.         -- So we want four tiers:
  461.         -- Normal DW
  462.         -- 20% DW -- High Haste
  463.         -- 7% DW (earrings) - Embrava Haste (specialized situation with embrava and haste, but no marches)
  464.         -- 0 DW - Max Haste
  465.        
  466.         classes.CustomMeleeGroups:clear()
  467.        
  468.         if buffactive.embrava and (buffactive.march == 2 or (buffactive.march and buffactive.haste)) then
  469.             classes.CustomMeleeGroups:append('MaxHaste')
  470.         elseif buffactive.march == 2 and buffactive.haste then
  471.             classes.CustomMeleeGroups:append('MaxHaste')
  472.         elseif buffactive.embrava and (buffactive.haste or buffactive.march) then
  473.             classes.CustomMeleeGroups:append('EmbravaHaste')
  474.         elseif buffactive.march == 1 and buffactive.haste and buffactive['haste samba'] then
  475.             classes.CustomMeleeGroups:append('HighHaste')
  476.         elseif buffactive.march == 2 then
  477.             classes.CustomMeleeGroups:append('HighHaste')
  478.         end
  479.     end
  480.      
  481.      
  482.     function select_movement_feet()
  483.         if world.time >= 17*60 or world.time < 7*60 then
  484.             gear.MovementFeet.name = gear.NightFeet
  485.         else
  486.             gear.MovementFeet.name = gear.DayFeet
  487.    
  488.         end
  489.     end
  490.    
  491.     function select_Weaponskill_Earring()
  492.         if world.time >= 17*60 or world.time < 7*60 then
  493.             gear.WeaponskillEarring.name = gear.NightEarring
  494.         else
  495.             gear.WeaponskillEarring.name = gear.DayEarring
  496.         end
  497.     end
  498.    
  499.     -- Select default macro book on initial load or subjob change.
  500.     function select_default_macro_book()
  501.         -- Default macro set/book
  502.         if player.sub_job == 'DNC' then
  503.             set_macro_page(2, 1)
  504.         elseif player.sub_job == 'THF' then
  505.             set_macro_page(3, 13)
  506.         else
  507.             set_macro_page(1, 2)
  508.         end
  509.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement