midash

Orangebear_WAR

Jan 4th, 2014
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 20.26 KB | None | 0 0
  1.     include('organizer-lib')
  2. -------------------------------------------------------------------------------------------------------------------
  3. -- Setup functions for this job.  Generally should not be modified.
  4. -------------------------------------------------------------------------------------------------------------------
  5. --[[ Updated 9/18/2014, functions with Mote's new includes.
  6. -- Have not played WAR recently, please PM me with any errors
  7.             BG: Fival
  8.             FFXIAH: Asura.Fiv
  9. ]]--
  10. -- Initialization function for this job file.
  11. function get_sets()
  12.     mote_include_version = 2
  13.  
  14.     -- Load and initialize the include file.
  15.     include('Mote-Include.lua')
  16. end
  17.  
  18.  
  19. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  20. function job_setup()
  21.             state.Buff['Aftermath'] = buffactive['Aftermath: Lv.1'] or
  22.             buffactive['Aftermath: Lv.2'] or
  23.             buffactive['Aftermath: Lv.3'] or false
  24.             state.Buff['Mighty Strikes'] = buffactive['Mighty Strikes'] or false
  25. end
  26.  
  27.  
  28. -------------------------------------------------------------------------------------------------------------------
  29. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  30. -------------------------------------------------------------------------------------------------------------------
  31.  
  32. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  33. function user_setup()
  34.     state.OffenseMode:options('Normal', 'AccLow', 'AccHigh')
  35.     state.RangedMode:options('Normal')
  36.     state.HybridMode:options('Normal', 'PDT')
  37.     state.WeaponskillMode:options('Normal', 'AccLow', 'AccHigh', 'Attack')
  38.     state.CastingMode:options('Normal')
  39.     state.IdleMode:options('Normal', 'Regen')
  40.     state.RestingMode:options('Normal')
  41.     state.PhysicalDefenseMode:options('PDT', 'Reraise')
  42.     state.MagicalDefenseMode:options('MDT')
  43.    
  44.     update_combat_weapon()
  45.     update_melee_groups()
  46.     select_default_macro_book()
  47.    
  48.     -- Additional Binds
  49.     --send_command('alias g510_m1g13 input /ws "Ukko\'s Fury" <t>;')
  50.     --send_command('alias g510_m1g14 input /ws "King\'s Justice" <t>;')
  51.     --send_command('alias g510_m1g15 input /ws "Upheaval" <t>;')
  52. end
  53.  
  54. function init_gear_sets()
  55.    
  56.     --------------------------------------
  57.     -- Precast sets
  58.     --------------------------------------
  59.     organizer_items = {
  60.   echos="Echo Drops",
  61.   remedy="Remedy",
  62.   orb="Macrocosmic Orb",
  63.   sushi="Squid Sushi",
  64.   Crepe="Pear Crepe",
  65.   sushi2="Sole Sushi"
  66. }
  67.     -- Sets to apply to arbitrary JAs
  68.     sets.precast.JA.Berserk = {body="Xaddi Mail",feet="Agoge Calligae +1"}
  69.     sets.precast.JA['Aggressor'] = {head="Pumm. Mask +1",body="Agoge Lorica +1"}
  70.     sets.precast.JA['Mighty Strikes'] = {hands="Cizin Mufflers"}
  71.     sets.precast.JA['Blood Rage'] = {body="Xaddi Mail"}
  72.     sets.precast.JA['Warcry'] = {head="Agoge Mask +1"}
  73.     sets.precast.JA['Tomahawk'] = {ammo="Thr. Tomahawk",feet="Agoge Calligae +1"}
  74.     -- Sets to apply to any actions of spell.type
  75.     sets.precast.Waltz = {}
  76.        
  77.     -- Sets for specific actions within spell.type
  78.     sets.precast.Waltz['Healing Waltz'] = {}
  79.  
  80.     -- Sets for fast cast gear for spells
  81.     sets.precast.FC = {ear2="Loquacious Earring"}
  82.  
  83.     -- Fast cast gear for specific spells or spell maps
  84.     sets.precast.FC.Utsusemi = set_combine(sets.precast.FC, {})
  85.  
  86.     -- Weaponskill sets
  87.     sets.precast.WS = {ammo="Aqreqaq Bomblet",
  88.                                     head="Otomi Helm",neck="Rancor Collar",ear1="Moonshade Earring",ear2="Brutal Earring",
  89.                                     body="Mes. Haubergeon",hands="Mikinaak Gauntlets",ring1="Ifrit Ring",ring2="Ifrit Ring",
  90.                                     back="Mauler's Mantle",waist="Windbuffet Belt +1",legs="Scuffler's Cosciales",feet="Scamp's Sollerets"}
  91.     sets.precast.WS.AccLow = set_combine(sets.precast.WS, {})
  92.     sets.precast.WS.AccHigh = set_combine(sets.precast.WS.AccLow, {})
  93.     sets.precast.WS.Attack = set_combine(sets.precast.WS, {})
  94.     sets.precast.WS.MS = set_combine(sets.precast.WS, {})
  95.    
  96.     -- Specific weaponskill sets.
  97.     sets.precast.WS['Upheaval'] = {}
  98.     sets.precast.WS['Upheaval'].AccLow = set_combine(sets.precast.WS['Upheaval'], {})
  99.     sets.precast.WS['Upheaval'].AccHigh = set_combine(sets.precast.WS['Upheaval'].AccLow, {})
  100.     sets.precast.WS['Upheaval'].Attack = set_combine(sets.precast.WS['Upheaval'], {})
  101.     sets.precast.WS['Upheaval'].MS = set_combine(sets.precast.WS['Upheaval'], {})
  102.    
  103.     sets.precast.WS['Ukko\'s Fury'] = {}
  104.     sets.precast.WS['Ukko\'s Fury'].AccLow = set_combine(sets.precast.WS['Ukko\'s Fury'], {})
  105.     sets.precast.WS['Ukko\'s Fury'].AccHigh = set_combine(sets.precast.WS['Ukko\'s Fury'].AccLow, {})
  106.     sets.precast.WS['Ukko\'s Fury'].Attack = set_combine(sets.precast.WS['Ukko\'s Fury'], {})
  107.     sets.precast.WS['Ukko\'s Fury'].MS = set_combine(sets.precast.WS['Ukko\'s Fury'], {})
  108.    
  109.     sets.precast.WS['King\'s Justice'] = set_combine(sets.precast.WS, {})
  110.     sets.precast.WS['King\'s Justice'].AccLow = set_combine(sets.precast.WS['King\'s Justice'], {})
  111.     sets.precast.WS['King\'s Justice'].AccHigh = set_combine(sets.precast.WS['King\'s Justice'].AccLow, {})
  112.     sets.precast.WS['King\'s Justice'].Attack = set_combine(sets.precast.WS['King\'s Justice'], {})
  113.     sets.precast.WS['King\'s Justice'].MS = set_combine(sets.precast.WS['King\'s Justice'], {})
  114.    
  115.     sets.precast.WS['Metatron Torment'] = set_combine(sets.precast.WS, {})
  116.     sets.precast.WS['Metatron Torment'].AccLow = set_combine(sets.precast.WS['Metatron Torment'], {})
  117.     sets.precast.WS['Metatron Torment'].AccHigh = set_combine(sets.precast.WS['Metatron Torment'].AccLow, {})
  118.     sets.precast.WS['Metatron Torment'].Attack = set_combine(sets.precast.WS['Metatron Torment'], {})
  119.     sets.precast.WS['Metatron Torment'].MS = set_combine(sets.precast.WS['Metatron Torment'], {})
  120.    
  121.     sets.precast.WS['Fell Cleave'] = set_combine(sets.precast.WS, {})
  122.     sets.precast.WS['Fell Cleave'].AccLow = set_combine(sets.precast.WS['Fell Cleave'], {})
  123.     sets.precast.WS['Fell Cleave'].AccHigh = set_combine(sets.precast.WS['Fell Cleave'].AccLow, {})
  124.     sets.precast.WS['Fell Cleave'].Attack = set_combine(sets.precast.WS['Fell Cleave'], {})
  125.     sets.precast.WS['Fell Cleave'].MS = set_combine(sets.precast.WS['Fell Cleave'], {})
  126.    
  127.     sets.precast.WS['Resolution'] = set_combine(sets.precast.WS, {})
  128.     sets.precast.WS['Resolution'].AccLow = set_combine(sets.precast.WS['Resolution'], {})
  129.     sets.precast.WS['Resolution'].AccHigh = set_combine(sets.precast.WS['Resolution'].AccLow, {})
  130.     sets.precast.WS['Resolution'].Attack = set_combine(sets.precast.WS['Resolution'], {})
  131.     sets.precast.WS['Resolution'].MS = set_combine(sets.precast.WS['Resolution'], {})
  132.    
  133.  
  134.     --------------------------------------
  135.     -- Midcast sets
  136.     --------------------------------------
  137.  
  138.     -- Generic spell recast set
  139.     sets.midcast.FastRecast = {}
  140.        
  141.     -- Specific spells
  142.     sets.midcast.Utsusemi = {}
  143.  
  144.    
  145.     --------------------------------------
  146.     -- Idle/resting/defense/etc sets
  147.     --------------------------------------
  148.    
  149.     -- Resting sets
  150.     sets.resting = {}
  151.    
  152.  
  153.     -- Idle sets
  154.     sets.idle = {ammo="Ginsen",
  155.                         head="Felistris Mask",neck="Loricate Torque +1",ear1="Tripudio Earring",ear2="Brutal Earring",
  156.                         body="Xaddi Mail",hands="Cizin Mufflers",ring1="Dark Ring",ring2="Dark Ring",
  157.                         back="Repulse Mantle",waist="Flume Belt",legs="Scuffler's Cosciales",feet="Scamp's Sollerets"}
  158.  
  159.     sets.idle.Town = {ammo="Ginsen",
  160.                         head="Otomi Helm",neck="Loricate Torque +1",ear1="Tripudio Earring",ear2="Brutal Earring",
  161.                         body="Xaddi Mail",hands="Cizin Mufflers",ring1="Ifrit Ring",ring2="Ifrit Ring",
  162.                         back="Mauler's Mantle",waist="Flume Belt",legs="Scuffler's Cosciales",feet="Scamp's Sollerets"}
  163.    
  164.     sets.idle.Regen = {ammo="Iron Gobbet",
  165.                         head="Adaman Barbuta",neck="Bathy Choker",ear1="Tripudio Earring",ear2="Dawn Earring",
  166.                         body="Mes. Haubergeon",hands="Cizin Mufflers",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  167.                         back="Repulse Mantle",waist="Flume Belt",legs="Scuffler's Cosciales",feet="Scamp's Sollerets"}
  168.    
  169.     sets.idle.Weak = {}
  170.    
  171.     -- Defense sets
  172.     sets.defense.PDT = {}
  173.     sets.defense.Reraise = set_combine(sets.defense.PDT, {head="Twilight Helm",body="Twilight Mail"})
  174.     sets.defense.MDT = {}
  175.  
  176.     -- Gear to wear for kiting
  177.     sets.Kiting = {feet="Scamp's Sollerets"}
  178.  
  179.     --------------------------------------
  180.     -- Engaged sets
  181.     --------------------------------------
  182.  
  183.     -- Variations for TP weapon and (optional) offense/defense modes.  Code will fall back on previous
  184.     -- sets if more refined versions aren't defined.
  185.     -- If you create a set with both offense and defense modes, the offense mode should be first.
  186.     -- EG: sets.engaged.Dagger.Accuracy.Evasion
  187.    
  188.     -- Normal melee group
  189.     -- If using a weapon that isn't specified later, the basic engaged sets should automatically be used.
  190.     -- Equip the weapon you want to use and engage, disengage, or force update with f12, the correct gear will be used; default weapon is whats equip when file loads.
  191.     sets.engaged = {ammo="Ginsen",
  192.                                     head="Felistris Mask",neck="Portus Collar",ear1="Trux Earring",ear2="Brutal Earring",
  193.                                     body="Xaddi Mail",hands="Cizin Mufflers",ring1="K'ayres Ring",ring2="Rajas Ring",
  194.                                     back="Mauler's Mantle",waist="Windbuffet Belt +1",legs="Scuffler's Cosciales",feet="Mikinaak Greaves"}
  195.     sets.engaged.AccLow = set_combine(sets.engaged, {body="Mes. Haubergeon"})
  196.     sets.engaged.AccHigh = set_combine(sets.engaged.AccLow, {head="Yaoyotl Helm"})
  197.     sets.engaged.PDT = set_combine(sets.engaged, {head="Ighwa Cap",neck="Loricate Torque +1"})
  198.     sets.engaged.AccLow.PDT = set_combine(sets.engaged.PDT, {})
  199.     sets.engaged.AccHigh.PDT = set_combine(sets.engaged.AccLow.PDT, {})
  200.    
  201.     sets.engaged.Conqueror = {}
  202.     sets.engaged.Conqueror.AccLow = set_combine(sets.engaged.Conqueror, {})
  203.     sets.engaged.Conqueror.AccHigh = set_combine(sets.engaged.Conqueror.AccLow, {})
  204.     sets.engaged.Conqueror.PDT = set_combine(sets.engaged.Conqueror, {})
  205.     sets.engaged.Conqueror.AccLow.PDT = set_combine(sets.engaged.Conqueror.PDT, {})
  206.     sets.engaged.Conqueror.AccHigh.PDT = set_combine(sets.engaged.Conqueror.AccLow.PDT, {})
  207.     -- Conqueror Aftermath Lv.3 sets
  208.     sets.engaged.Conqueror.AM3 = {}
  209.     sets.engaged.Conqueror.AccLow.AM3 = set_combine(sets.engaged.Conqueror.AM3, {})
  210.     sets.engaged.Conqueror.AccHigh.AM3 = set_combine(sets.engaged.Conqueror.AccLow.AM3, {})
  211.     sets.engaged.Conqueror.PDT.AM3 = set_combine(sets.engaged.Conqueror.AM3, {})
  212.     sets.engaged.Conqueror.AccLow.PDT.AM3 = set_combine(sets.engaged.Conqueror.PDT.AM3, {})
  213.     sets.engaged.Conqueror.AccHigh.PDT.AM3 = set_combine(sets.engaged.Conqueror.AccLow.PDT.AM3, {})
  214.    
  215.     sets.engaged.Ukonvasara = {}
  216.     sets.engaged.Ukonvasara.AccLow = set_combine(sets.engaged.Ukonvasara, {})
  217.     sets.engaged.Ukonvasara.AccHigh = set_combine(sets.engaged.Ukonvasara.AccLow, {})
  218.     sets.engaged.Ukonvasara.PDT = set_combine(sets.engaged.Ukonvasara, {})
  219.     sets.engaged.Ukonvasara.AccLow.PDT = set_combine(sets.engaged.Ukonvasara.PDT, {})
  220.     sets.engaged.Ukonvasara.AccHigh.PDT = set_combine(sets.engaged.Ukonvasara.AccLow.PDT, {})
  221.    
  222.     sets.engaged.Bravura = {}
  223.     sets.engaged.Bravura.AccLow = set_combine(sets.engaged.Bravura, {})
  224.     sets.engaged.Bravura.AccHigh = set_combine(sets.engaged.Bravura.AccLow, {})
  225.     sets.engaged.Bravura.PDT = set_combine(sets.engaged.Bravura, {})
  226.     sets.engaged.Bravura.AccLow.PDT = set_combine(sets.engaged.Bravura.PDT, {})
  227.     sets.engaged.Bravura.AccHigh.PDT = set_combine(sets.engaged.Bravura.AccLow.PDT, {})
  228.     -- Bravura Aftermath sets, will only apply if aftermath, bravura, and hybridmode are on
  229.     sets.engaged.Bravura.PDT.AM = set_combine(sets.engaged.Bravura, {})
  230.     sets.engaged.Bravura.AccLow.PDT.AM = set_combine(sets.engaged.Bravura.PDT.AM , {})
  231.     sets.engaged.Bravura.AccHigh.PDT.AM = set_combine(sets.engaged.Bravura.AccLow.PDT.AM , {})
  232.    
  233.     sets.engaged.Ragnarok = {}
  234.     sets.engaged.Ragnarok.AccLow = set_combine(sets.engaged.Ragnarok, {})
  235.     sets.engaged.Ragnarok.AccHigh = set_combine(sets.engaged.Ragnarok.AccLow, {})
  236.     sets.engaged.Ragnarok.PDT = set_combine(sets.engaged.Ragnarok, {})
  237.     sets.engaged.Ragnarok.AccLow.PDT = set_combine(sets.engaged.Ragnarok.PDT, {})
  238.     sets.engaged.Ragnarok.AccHigh.PDT = set_combine(sets.engaged.Ragnarok.AccLow.PDT, {})
  239.    
  240.     --------------------------------------
  241.     -- Custom buff sets
  242.     --------------------------------------
  243.     -- Mighty Strikes TP Gear, combines with current melee set.
  244.     sets.buff.MS = {ammo="Ginsen",neck="Portus Collar"}
  245.     -- Day/Element Helm, if helm is not in inventory or wardrobe, this will not fire, for those who do not own one
  246.     sets.WSDayBonus = {head="Otomi Helm"}
  247.     -- Earrings to use with Upheaval when TP is 3000
  248.     sets.VIT_earring = {ear2="Brutal Earring"}
  249.     -- Earrings to use with all other weaponskills when TP is 3000
  250.     sets.STR_earring = {ear2="Brutal Earring"}
  251.     -- Mantle to use with Upheaval on Darksday
  252.     sets.Upheaval_shadow = {back="Shadow Mantle"}
  253. end
  254.  
  255. -------------------------------------------------------------------------------------------------------------------
  256. -- Job-specific hooks for standard casting events.
  257. -------------------------------------------------------------------------------------------------------------------
  258.  
  259. -- Set eventArgs.handled to true if we don't want any automatic target handling to be done.
  260. function job_pretarget(spell, action, spellMap, eventArgs)
  261.  
  262. end
  263.  
  264. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  265. -- Set eventArgs.useMidcastGear to true if we want midcast gear equipped on precast.
  266. function job_precast(spell, action, spellMap, eventArgs)
  267.  
  268. end
  269.  
  270. -- Run after the default precast() is done.
  271. -- eventArgs is the same one used in job_precast, in case information needs to be persisted.
  272. function job_post_precast(spell, action, spellMap, eventArgs)
  273.     if spell.type == 'WeaponSkill' then
  274.             if is_sc_element_today(spell) and player.inventory['Otomi Helm'] or player.wardrobe['Otomi Helm'] then
  275.                 equip(sets.WSDayBonus)
  276.             end
  277.             if player.tp == 3000 then
  278.                 if spell.english == "Upheaval" then
  279.                     equip(sets.VIT_earring)
  280.                 else
  281.                     equip(sets.STR_earring)
  282.                 end
  283.             end
  284.             if spell.english == "Upheaval" and world.day_element == 'Dark' then
  285.                 equip(sets.Upheaval_shadow)
  286.             end
  287.     end
  288. end
  289.  
  290. -- Set eventArgs.handled to true if we don't want any automatic gear equipping to be done.
  291. function job_aftercast(spell, action, spellMap, eventArgs)
  292.     if spell.english == "Tomahawk" and not spell.interrupted then
  293.         send_command('timers create "Tomahawk" 90 down')
  294.     end
  295. end
  296.  
  297. -- Run after the default aftercast() is done.
  298. -- eventArgs is the same one used in job_aftercast, in case information needs to be persisted.
  299. function job_post_aftercast(spell, action, spellMap, eventArgs)
  300.  
  301. end
  302.  
  303. -------------------------------------------------------------------------------------------------------------------
  304. -- Job-specific hooks for non-casting events.
  305. -------------------------------------------------------------------------------------------------------------------
  306.  
  307. -- Called when the player's status changes.
  308. function job_status_change(newStatus, oldStatus, eventArgs)
  309.     update_combat_weapon()
  310.     update_melee_groups()
  311. end
  312.  
  313. -- Called when a player gains or loses a buff.
  314. -- buff == buff gained or lost
  315. -- gain == true if the buff was gained, false if it was lost.
  316. function job_buff_change(buff, gain)
  317.     if buff == "Aftermath: Lv.3" or buff == "Aftermath" then
  318.         classes.CustomMeleeGroups:clear()
  319.         if (buff == "Aftermath: Lv.3" and gain) or buffactive["Aftermath: Lv.3"] then
  320.             if player.equipment.main == "Conqueror" then
  321.                 classes.CustomMeleeGroups:append('AM3')
  322.                 if gain then
  323.                     send_command('timers create "Aftermath: Lv.3" 180 down;wait 120;input /echo Aftermath: Lv.3 [WEARING OFF IN 60 SEC.];wait 30;input /echo Aftermath: Lv.3 [WEARING OFF IN 30 SEC.];wait 20;input /echo Aftermath: Lv.3 [WEARING OFF IN 10 SEC.]')
  324.                 else
  325.                     send_command('timers delete "Aftermath: Lv.3"')
  326.                     add_to_chat(123,'AM3: [OFF]')
  327.                 end
  328.             end
  329.         end
  330.         if (buff == "Aftermath" and gain) or buffactive.Aftermath then
  331.             if player.equipment.main == "Bravura" and state.HybridMode.value == 'PDT' then
  332.                 classes.CustomMeleeGroups:append('AM')
  333.             end
  334.         end
  335.     end
  336.     if buff == "Aftermath: Lv.3" or buff == "Aftermath" then
  337.         handle_equipping_gear(player.status)
  338.     end
  339.     if buff == 'Blood Rage' and gain then
  340.         send_command('timers create "Blood Rage" 60 down abilities/00255.png')
  341.         else
  342.         send_command('timers delete "Blood Rage"')
  343.     end
  344.     if buff == 'Warcry' and gain then
  345.         send_command('timers create "Warcry" 60 down abilities/00255.png')
  346.         else
  347.         send_command('timers delete "Warcry"')
  348.     end
  349.     if buff == "sleep" and gain and player.hp > 200 and player.status == "Engaged" then
  350.         equip({neck="Berserker's Torque"})
  351.         else
  352.         handle_equipping_gear(player.status)
  353.     end
  354. end
  355.  
  356. -------------------------------------------------------------------------------------------------------------------
  357. -- User code that supplements standard library decisions.
  358. -------------------------------------------------------------------------------------------------------------------
  359.  
  360. -- Return a customized weaponskill mode to use for weaponskill sets.
  361. -- Don't return anything if you're not overriding the default value.
  362. function get_custom_wsmode(spell, spellMap, default_wsmode)
  363.     local wsmode = ''
  364.     if state.Buff['Mighty Strikes'] then
  365.         wsmode = wsmode .. 'MS'
  366.     end
  367.         if wsmode ~= '' then
  368.             return wsmode
  369.     end
  370. end
  371.  
  372. -- Modify the default melee set after it was constructed.
  373. function customize_melee_set(meleeSet)
  374.     if buffactive["Mighty Strikes"] then
  375.         meleeSet = set_combine(meleeSet, sets.buff.MS)
  376.     end
  377.     return meleeSet
  378. end
  379.  
  380. -- Called by the 'update' self-command, for common needs.
  381. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  382. function job_update(cmdParams, eventArgs)
  383.     update_combat_weapon()
  384.     update_melee_groups()
  385. end
  386.  
  387. -- Set eventArgs.handled to true if we don't want the automatic display to be run.
  388. function display_current_job_state(eventArgs)
  389. local msg = 'Melee'
  390. if state.CombatForm.has_value then
  391. msg = msg .. ' (' .. state.CombatForm.value .. ')'
  392. end
  393. if state.CombatWeapon.has_value then
  394. msg = msg .. ' (' .. state.CombatWeapon.value .. ')'
  395. end
  396. msg = msg .. ': '
  397. msg = msg .. state.OffenseMode.value
  398. if state.HybridMode.value ~= 'Normal' then
  399. msg = msg .. '/' .. state.HybridMode.value
  400. end
  401. msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  402. if state.DefenseMode.value ~= 'None' then
  403. msg = msg .. ', ' .. 'Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  404. end
  405. if state.Kiting.value == true then
  406. msg = msg .. ', Kiting'
  407. end
  408. if state.PCTargetMode.value ~= 'default' then
  409. msg = msg .. ', Target PC: '..state.PCTargetMode.value
  410. end
  411. if state.SelectNPCTargets.value == true then
  412. msg = msg .. ', Target NPCs'
  413. end
  414. add_to_chat(122, msg)
  415. eventArgs.handled = true
  416. end
  417.  
  418. -------------------------------------------------------------------------------------------------------------------
  419. -- Utility functions specific to this job.
  420. -------------------------------------------------------------------------------------------------------------------
  421.  
  422. -- Select default macro book on initial load or subjob change.
  423. function select_default_macro_book()
  424.     -- Default macro set/book
  425.     if player.sub_job == 'WAR' then
  426.         set_macro_page(1, 11)
  427.     elseif player.sub_job == 'NIN' then
  428.         set_macro_page(1, 11)
  429.     elseif player.sub_job == 'SAM' then
  430.         set_macro_page(1, 11)
  431.     else
  432.         set_macro_page(1, 11)
  433.     end
  434. end
  435.  
  436. function update_combat_weapon()
  437.     state.CombatWeapon:set(player.equipment.main)
  438. end
  439.  
  440. function update_melee_groups()
  441.     classes.CustomMeleeGroups:clear()
  442.     if buffactive['Aftermath: Lv.3'] and player.equipment.main == "Conqueror" then
  443.         classes.CustomMeleeGroups:append('AM3')
  444.     end
  445.     if buffactive.Aftermath and player.equipment.main == "Bravura" and state.HybridMode.value == 'PDT' then
  446.         classes.CustomMeleeGroups:append('AM')
  447.     end
  448. end
  449.  
  450. function is_sc_element_today(spell)
  451.     if spell.type ~= 'WeaponSkill' then
  452.         return
  453.     end
  454.  
  455.    local weaponskill_elements = S{}:
  456.     union(skillchain_elements[spell.skillchain_a]):
  457.     union(skillchain_elements[spell.skillchain_b]):
  458.     union(skillchain_elements[spell.skillchain_c])
  459.  
  460.     if weaponskill_elements:contains(world.day_element) then
  461.         return true
  462.     else
  463.         return false
  464.     end
  465. end
Advertisement
Add Comment
Please, Sign In to add comment