midash

Orangebear_PLD

Jan 4th, 2014
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 20.94 KB | None | 0 0
  1.     include('organizer-lib.lua')
  2. -------------------------------------------------------------------------------------------------------------------
  3. -- Setup functions for this job.  Generally should not be modified.
  4. -------------------------------------------------------------------------------------------------------------------
  5.  
  6. -- Initialization function for this job file.
  7. function get_sets()
  8.     mote_include_version = 2
  9.  
  10.     -- Load and initialize the include file.
  11.     include('Mote-Include.lua')
  12. end
  13.  
  14.  
  15. -- Setup vars that are user-independent.  state.Buff vars initialized here will automatically be tracked.
  16. function job_setup()
  17.     state.Buff.Sentinel = buffactive.sentinel or false
  18.     state.Buff.Cover = buffactive.cover or false
  19.     state.Buff.Doom = buffactive.Doom or false
  20. end
  21.  
  22. -------------------------------------------------------------------------------------------------------------------
  23. -- User setup functions for this job.  Recommend that these be overridden in a sidecar file.
  24. -------------------------------------------------------------------------------------------------------------------
  25.  
  26. -- Setup vars that are user-dependent.  Can override this function in a sidecar file.
  27. function user_setup()
  28.     state.OffenseMode:options('Normal', 'HiAcc', 'AdoulinAcc')
  29.     state.HybridMode:options('Normal', 'PDT', 'Reraise')
  30.     state.WeaponskillMode:options('Normal', 'Acc')
  31.     state.CastingMode:options('Normal', 'Resistant')
  32.     state.PhysicalDefenseMode:options('PDT', 'HP', 'Reraise', 'Charm')
  33.     state.MagicalDefenseMode:options('MDT', 'HP', 'Reraise', 'Charm')
  34.    
  35.     state.ExtraDefenseMode = M{['description']='Extra Defense Mode', 'None', 'MP'}
  36.     state.EquipShield = M(false, 'Equip Shield w/Defense')
  37.  
  38.     update_defense_mode()
  39.    
  40.     send_command('bind ^f11 gs c cycle MagicalDefenseMode')
  41.     send_command('bind !f11 gs c cycle ExtraDefenseMode')
  42.     send_command('bind @f10 gs c toggle EquipShield')
  43.     send_command('bind @f11 gs c toggle EquipShield')
  44.  
  45.     select_default_macro_book()
  46. end
  47.  
  48. function user_unload()
  49.     send_command('unbind ^f11')
  50.     send_command('unbind !f11')
  51.     send_command('unbind @f10')
  52.     send_command('unbind @f11')
  53. end
  54.  
  55.  
  56. -- Define sets and vars used by this job file.
  57. function init_gear_sets()
  58.     --------------------------------------
  59.     -- Precast sets
  60.     --------------------------------------
  61.    
  62.     -- Precast sets to enhance JAs
  63.     sets.precast.JA['Invincible'] = {legs="Cab. Breeches +1"}
  64.     sets.precast.JA['Holy Circle'] = {feet="Reverence Leggings +1"}
  65.     sets.precast.JA['Shield Bash'] = {hands="Cab. Gauntlets +1"}
  66.     sets.precast.JA['Sentinel'] = {feet="Cab. Leggings"}
  67.     sets.precast.JA['Rampart'] = {head="Cab. Coronet +1"}
  68.     sets.precast.JA['Fealty'] = {body="Cab. Surcoat +1"}
  69.     sets.precast.JA['Divine Emblem'] = {feet="Creed Sabatons +2"}
  70.     sets.precast.JA['Cover'] = {head="Yorium Barbuta"}
  71.  
  72.     -- add mnd for Chivalry
  73.     sets.precast.JA['Chivalry'] = {
  74.         head="Yorium Barbuta",
  75.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Leviathan Ring",ring2="Leviathan Ring",
  76.         back="Weard Mantle",legs="Reverence Breeches +1",feet="Whirlpool Greaves"}
  77.    
  78.  
  79.     -- Waltz set (chr and vit)
  80.     sets.precast.Waltz = {ammo="Iron Gobbet",
  81.         head="Yorium Barbuta",
  82.         hands="Reverence Gauntlets +1",
  83.         back="Iximulew Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Whirlpool Greaves"}
  84.        
  85.     -- Don't need any special gear for Healing Waltz.
  86.     sets.precast.Waltz['Healing Waltz'] = {}
  87.    
  88.     sets.precast.Step = {waist="Chaac Belt"}
  89.     sets.precast.Flourish1 = {waist="Chaac Belt"}
  90.  
  91.     -- Fast cast sets for spells
  92.    
  93.     sets.precast.FC = {ammo="Incantor Stone",
  94.         head="Cizin Helm",hands="Leyline Gloves",ear2="Loquacious Earring",ring1="Weather. Ring",ring2="Prolix Ring",legs="Enif Cosciales",neck="Orunmila's Torque"}
  95.  
  96.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  97.  
  98.        
  99.     -- Weaponskill sets
  100.     -- Default set for any weaponskill that isn't any more specifically defined
  101.     sets.precast.WS = {ammo="Ginsen",
  102.         head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  103.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Rajas Ring",ring2="Ifrit Ring",
  104.         back="Atheling Mantle",waist="Metalsinger Belt",legs="Yorium Cuisses",feet="Yorium Sabatons"}
  105.  
  106.     sets.precast.WS.Acc = {ammo="Ginsen",
  107.         head="Yaoyotl Helm",neck="Agitator's Collar",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  108.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Rajas Ring",ring2="Patricius Ring",
  109.         back="Atheling Mantle",waist="Olseni Belt",legs="Yorium Cuisses",feet="Yorium Sabatons"}
  110.  
  111.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  112.     sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {
  113.         head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  114.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Leviathan Ring",ring2="Leviathan Ring",
  115.         back="Atheling Mantle",waist="Fotia Belt",legs="Yorium Cuisses",feet="Whirlpool Greaves"})
  116.     sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {neck="Agitator's Collar",waist="Olseni Belt",ring2="Patricius Ring"})
  117.  
  118.     sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {
  119.         ammo="Ginsen",
  120.         head="Lustratio Cap",neck="Asperity Necklace",
  121.         ear1="Bladeborn Earring",ear2="Steelflash Earring",
  122.         body="Founder's Breastplate",hands="Leyline Gloves",
  123.         ring1="Rajas Ring",ring2="Ifrit Ring",
  124.         back="Atheling Mantle",waist="Metalsinger Belt",
  125.         legs="Lustratio Subligar",feet="Yorium Sabatons"})
  126.        
  127.     sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS.Acc, {waist="Olseni Belt",ring1="Mars's Ring",ring2="Patricius Ring"})
  128.  
  129.     sets.precast.WS['Sanguine Blade'] = {ammo="Ginsen",
  130.         head="Yorium Barbuta",
  131.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring2="K'ayres Ring",
  132.         waist="Caudata Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  133.    
  134.     sets.precast.WS['Atonement'] = {ammo="Iron Gobbet",
  135.         head="Yorium Barbuta",neck="Fotia Gorget",ear1="Creed Earring",ear2="Trux Earring",
  136.         body="Phorcys Korazin",hands="Yorium Gauntlets",ring1="Rajas Ring",ring2="Vexer Ring",
  137.         back="Fierabras's Mantle",waist="Fotia Belt",legs="Yorium Cuisses",feet="Yorium Sabatons"}
  138.    
  139.     --------------------------------------
  140.     -- Midcast sets
  141.     --------------------------------------
  142.  
  143.     sets.midcast.FastRecast = {ammo="Incantor Stone",
  144.         head="Yorium Barbuta",neck="Orunmila's Torque",
  145.         body="Reverence Surcoat +1",hands="Leyline Gloves",
  146.         waist="Zoran's Belt",legs="Enif Cosciales",feet="Reverence Leggings +1"}
  147.        
  148.     sets.midcast.Enmity = {ammo="Iron Gobbet",
  149.         head="Yorium Barbuta",neck="Invidia Torque",
  150.         body="Reverence Surcoat +1",hands="Yorium Gauntlets",ring1="Vexer Ring",
  151.         back="Fierabras's Mantle",waist="Goading Belt",legs="Reverence Breeches +1",feet="Yorium Sabatons"}
  152.  
  153.     sets.midcast.Flash = set_combine(sets.midcast.Enmity, {legs="Enif Cosciales"})
  154.    
  155.     sets.midcast.Stun = sets.midcast.Flash
  156.    
  157.     sets.midcast.Cure = {ammo="Iron Gobbet",
  158.         head="Wivre Hairpin",neck="Invidia Torque",ear1="Hospitaler Earring",ear2="Bloodgem Earring",
  159.         body="Reverence Surcoat +1",hands="Leyline Gloves",ring1="Kunaji Ring",ring2="Vexer Ring",
  160.         back="Fierabras's Mantle",legs="Reverence Breeches +1",feet="Cab. Leggings"}
  161.  
  162.     sets.midcast['Enhancing Magic'] = {neck="Colossus's Torque",waist="Olympus Sash",legs="Reverence Breeches +1"}
  163.    
  164.     sets.midcast.Protect = {ring1="Sheltered Ring"}
  165.     sets.midcast.Shell = {ring1="Sheltered Ring"}
  166.    
  167.     --------------------------------------
  168.     -- Idle/resting/defense/etc sets
  169.     --------------------------------------
  170.  
  171.     sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
  172.    
  173.     sets.resting = {neck="Creed Collar",head="Wivre Hairpin",
  174.         ring1="Sheltered Ring",ring2="Paguroidea Ring",waist="Fucho-no-Obi",}
  175.    
  176.  
  177.     -- Idle sets
  178.     sets.idle = {ammo="Homiliary",
  179.         head="Wivre Hairpin",neck="Coatl Gorget +1",ear1="Infused Earring",ear2="Dawn Earring",
  180.         body="Ares' Cuirass +1",hands="Reverence Gauntlets +1",ring1="Paguroidea Ring",ring2="Sheltered Ring",
  181.         back="Iximulew Cape",waist="Fucho-no-Obi",legs="Blood Cuisses",feet="Reverence Leggings +1"}
  182.  
  183.     sets.idle.Town = {main="Claidheamh Soluis",ammo="Ginsen",
  184.         head="Cab. Coronet +1",neck="Creed Collar",ear1="Ethereal Earring",ear2="Creed Earring",
  185.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Sheltered Ring",ring2="Paguroidea Ring",
  186.         back="Iximulew Cape",waist="Flume Belt",legs="Blood Cuisses",feet="Reverence Leggings +1"}
  187.    
  188.     sets.idle.Weak = {ammo="Homiliary",
  189.         head="Yorium Barbuta",neck="Creed Collar",ear1="Ethereal Earring",ear2="Bloodgem Earring",
  190.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Dark Ring",ring2="Meridian Ring",
  191.         back="Iximulew Cape",waist="Flume Belt",legs="Blood Cuisses",feet="Reverence Leggings +1"}
  192.    
  193.     sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
  194.    
  195.     sets.Kiting = {legs="Blood Cuisses"}
  196.  
  197.     sets.latent_refresh = {waist="Fucho-no-obi"}
  198.  
  199.     --------------------------------------
  200.     -- Items to keep in Inventory
  201.     --------------------------------------
  202.     organizer_items = {
  203.   echos="Echo Drops",
  204.   remedy="Remedy",
  205.   orb="Macrocosmic Orb",
  206.   sushi="Squid Sushi",
  207.   sushi2="Sole Sushi",
  208.   brilliance="Brilliance"
  209. }
  210.  
  211.     --------------------------------------
  212.     -- Defense sets
  213.     --------------------------------------
  214.    
  215.     -- Extra defense sets.  Apply these on top of melee or defense sets.
  216.     sets.MP = {neck="Creed Collar",waist="Flume Belt"}
  217.    
  218.     -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here
  219.     -- when activating or changing defense mode:
  220.     sets.PhysicalShield = {sub="Ochain"} -- Ochain
  221.     sets.MagicalShield = {sub="Aegis"} -- Aegis
  222.  
  223.     -- Basic defense sets.
  224.        
  225.     sets.defense.PDT = {ammo="Angha Gem",
  226.         head="Yorium Barbuta",neck="Loricate Torque +1",ear1="Creed Earring",ear2="Ethereal Earring",
  227.         body="Reverence Surcoat +1",hands="Yorium Gauntlets",ring1="Dark Ring",ring2="Dark Ring",
  228.         back="Reiki Cloak",waist="Flume Belt",legs="Reverence Breeches +1",feet="Yorium Sabatons"}
  229.  
  230.   sets.defense.HP = {ammo="Angha Gem",
  231.         head="Yorium Barbuta",neck="Loricate Torque +1",ear1="Creed Earring",ear2="Bloodgem Earring",
  232.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",
  233.         ring1={ name="Dark Ring", augments={'Magic dmg. taken -4%','Breath dmg. taken -5%','Phys. dmg. taken -6%',}},ring2="Meridian Ring",
  234.         back="Weard Mantle",waist="Creed Baudrier",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  235.  
  236.         sets.defense.Reraise = {ammo="Angha Gem",
  237.         head="Twilight Helm",neck="Loricate Torque +1",ear1="Creed Earring",ear2="Ethereal Earring",
  238.         body="Twilight Mail",hands="Reverence Gauntlets +1",ring1="Dark Ring",ring2="Dark Ring",
  239.         back="Weard Mantle",waist="Flume Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  240.  
  241.         sets.defense.Charm = {ammo="Demonry Stone",
  242.         head="Yorium Barbuta",neck="Loricate Torque +1",ear1="Creed Earring",ear2="Ethereal Earring",
  243.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Dark Ring",ring2="Dark Ring",
  244.         back="Reiki Cloak",waist="Flume Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  245.  
  246.         -- To cap MDT with Shell IV (52/256), need 76/256 in gear.
  247.     -- Shellra V can provide 75/256, which would need another 53/256 in gear.
  248.     sets.defense.MDT = {ammo="Demonry Stone",
  249.         head="Yorium Barbuta",neck="Loricate Torque +1",ear1="Creed Earring",ear2="Sanare Earring",
  250.         body="Cab. Surcoat +1",hands="Reverence Gauntlets +1",
  251.         ring1={ name="Dark Ring", augments={'Magic dmg. taken -4%','Breath dmg. taken -5%','Phys. dmg. taken -6%',}},ring2="Shadow Ring",
  252.         back="Reiki Cloak",waist="Creed Baudrier",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  253.  
  254.  
  255.     --------------------------------------
  256.     -- Engaged sets
  257.     --------------------------------------
  258.    
  259.     sets.engaged = {ammo="Ginsen",
  260.         head="Otomi Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  261.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  262.         back="Atheling Mantle",waist="Windbuffet Belt +1",legs="Souveran Diechlings",feet="Whirlpool Greaves"}
  263.  
  264.     sets.engaged.HiAcc = {ammo="Ginsen",
  265.         head="Yaoyotl Helm",neck="Agitator's Collar",ear1="Zennaroi Earring",ear2="Steelflash Earring",
  266.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Mars's Ring",ring2="Patricius Ring",
  267.         back="Weard Mantle",waist="Olseni Belt",legs="Yorium Cuisses",feet="Yorium Sabatons"}
  268.  
  269.     sets.engaged.AdoulinAcc = {ammo="Ginsen",
  270.         head="Yorium Barbuta",neck="Agitator's Collar",ear1="Zennaroi Earring",ear2="Steelflash Earring",
  271.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Mars's Ring",ring2="Patricius Ring",
  272.         back="Weard Mantle",waist="Olseni Belt",legs="Souveran Diechlings",feet="Founder's Greaves"}
  273.    
  274.        
  275.     sets.engaged.DW = {ammo="Ginsen",
  276.         head="Otomi Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  277.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  278.         back="Atheling Mantle",waist="Windbuffet Belt +1",legs="Yorium Cuisses",feet="Whirlpool Greaves"}
  279.  
  280.     sets.engaged.DW.Acc = {ammo="Ginsen",
  281.         head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  282.         body="Founder's Breastplate",hands="Leyline Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  283.         back="Weard Mantle",waist="Zoran's Belt",legs="Yorium Cuisses",feet="Whirlpool Greaves"}
  284.  
  285.     sets.engaged.PDT = set_combine(sets.engaged, {body="Reverence Surcoat +1",neck="Loricate Torque +1",ring1="Dark Ring",ring2="Patricius Ring"})
  286.     sets.engaged.HiAcc.PDT = set_combine(sets.engaged.HiAcc, {body="Reverence Surcoat +1",neck="Agitator's Collar",ring1="Dark Ring",waist="Olseni Belt"})
  287.     sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise)
  288.     sets.engaged.HiAcc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise)
  289.  
  290.     sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +1",neck="Loricate Torque +1",ring1="Dark Ring"})
  291.     sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +1",neck="Loricate Torque +1",ring1="Dark Ring"})
  292.     sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise)
  293.     sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise)
  294.  
  295.  
  296.     --------------------------------------
  297.     -- Custom buff sets
  298.     --------------------------------------
  299.  
  300.     sets.buff.Doom = {ring2="Saida Ring"}
  301.     sets.buff.Cover = {head="Yorium Barbuta", body="Cab. Surcoat +1"}
  302. end
  303.  
  304.  
  305. -------------------------------------------------------------------------------------------------------------------
  306. -- Job-specific hooks for standard casting events.
  307. -------------------------------------------------------------------------------------------------------------------
  308.  
  309. function job_midcast(spell, action, spellMap, eventArgs)
  310.     -- If DefenseMode is active, apply that gear over midcast
  311.     -- choices.  Precast is allowed through for fast cast on
  312.     -- spells, but we want to return to def gear before there's
  313.     -- time for anything to hit us.
  314.     -- Exclude Job Abilities from this restriction, as we probably want
  315.     -- the enhanced effect of whatever item of gear applies to them,
  316.     -- and only one item should be swapped out.
  317.     if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  318.         handle_equipping_gear(player.status)
  319.         eventArgs.handled = true
  320.     end
  321. end
  322.  
  323. -------------------------------------------------------------------------------------------------------------------
  324. -- Job-specific hooks for non-casting events.
  325. -------------------------------------------------------------------------------------------------------------------
  326.  
  327. -- Called when the player's status changes.
  328. function job_state_change(field, new_value, old_value)
  329.     classes.CustomDefenseGroups:clear()
  330.     classes.CustomDefenseGroups:append(state.ExtraDefenseMode.current)
  331.     if state.EquipShield.value == true then
  332.         classes.CustomDefenseGroups:append(state.DefenseMode.current .. 'Shield')
  333.     end
  334.  
  335.     classes.CustomMeleeGroups:clear()
  336.     classes.CustomMeleeGroups:append(state.ExtraDefenseMode.current)
  337. end
  338.  
  339. -------------------------------------------------------------------------------------------------------------------
  340. -- User code that supplements standard library decisions.
  341. -------------------------------------------------------------------------------------------------------------------
  342.  
  343. -- Called by the 'update' self-command, for common needs.
  344. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  345. function job_update(cmdParams, eventArgs)
  346.     update_defense_mode()
  347. end
  348.  
  349. -- Modify the default idle set after it was constructed.
  350. function customize_idle_set(idleSet)
  351.     if player.mpp < 51 then
  352.        idleSet = set_combine(idleSet, sets.latent_refresh)
  353.    end
  354.    if state.Buff.Doom then
  355.        idleSet = set_combine(idleSet, sets.buff.Doom)
  356.    end
  357.    
  358.    return idleSet
  359. end
  360.  
  361. -- Modify the default melee set after it was constructed.
  362. function customize_melee_set(meleeSet)
  363.    if state.Buff.Doom then
  364.        meleeSet = set_combine(meleeSet, sets.buff.Doom)
  365.    end
  366.    
  367.    return meleeSet
  368. end
  369.  
  370. function customize_defense_set(defenseSet)
  371.    if state.ExtraDefenseMode.value ~= 'None' then
  372.        defenseSet = set_combine(defenseSet, sets[state.ExtraDefenseMode.value])
  373.    end
  374.    
  375.    if state.EquipShield.value == true then
  376.        defenseSet = set_combine(defenseSet, sets[state.DefenseMode.current .. 'Shield'])
  377.    end
  378.    
  379.    if state.Buff.Doom then
  380.        defenseSet = set_combine(defenseSet, sets.buff.Doom)
  381.    end
  382.    
  383.    return defenseSet
  384. end
  385.  
  386.  
  387. function display_current_job_state(eventArgs)
  388.    local msg = 'Melee'
  389.    
  390.    if state.CombatForm.has_value then
  391.        msg = msg .. ' (' .. state.CombatForm.value .. ')'
  392.    end
  393.    
  394.    msg = msg .. ': '
  395.    
  396.    msg = msg .. state.OffenseMode.value
  397.    if state.HybridMode.value ~= 'Normal' then
  398.        msg = msg .. '/' .. state.HybridMode.value
  399.    end
  400.    msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  401.    
  402.    if state.DefenseMode.value ~= 'None' then
  403.        msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  404.    end
  405.  
  406.    if state.ExtraDefenseMode.value ~= 'None' then
  407.        msg = msg .. ', Extra: ' .. state.ExtraDefenseMode.value
  408.    end
  409.    
  410.    if state.EquipShield.value == true then
  411.        msg = msg .. ', Force Equip Shield'
  412.    end
  413.    
  414.    if state.Kiting.value == true then
  415.        msg = msg .. ', Kiting'
  416.    end
  417.  
  418.    if state.PCTargetMode.value ~= 'default' then
  419.        msg = msg .. ', Target PC: '..state.PCTargetMode.value
  420.    end
  421.  
  422.    if state.SelectNPCTargets.value == true then
  423.        msg = msg .. ', Target NPCs'
  424.    end
  425.  
  426.    add_to_chat(122, msg)
  427.  
  428.    eventArgs.handled = true
  429. end
  430.  
  431. -------------------------------------------------------------------------------------------------------------------
  432. -- Utility functions specific to this job.
  433. -------------------------------------------------------------------------------------------------------------------
  434.  
  435. function update_defense_mode()
  436.    if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
  437.        classes.CustomDefenseGroups:append('Kheshig Blade')
  438.    end
  439.    
  440.    if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  441.        if player.equipment.sub and not player.equipment.sub:contains('Shield') and
  442.           player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
  443.            state.CombatForm:set('DW')
  444.        else
  445.            state.CombatForm:reset()
  446.        end
  447.    end
  448. end
  449.  
  450.  
  451. -- Select default macro book on initial load or subjob change.
  452. function select_default_macro_book()
  453.    -- Default macro set/book
  454.    if player.sub_job == 'DNC' then
  455.        set_macro_page(1, 14)
  456.    elseif player.sub_job == 'NIN' then
  457.        set_macro_page(1, 14)
  458.    elseif player.sub_job == 'RDM' then
  459.        set_macro_page(1, 14)
  460.    else
  461.        set_macro_page(1, 14)
  462.    end
  463. end
Advertisement
Add Comment
Please, Sign In to add comment