Lygre

MwetllicPLd

Oct 18th, 2016
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 21.78 KB | None | 0 0
  1. -------------------------------------------------------------------------------------------------------------------
  2. -- Setup functions for this job.  Generally should not be modified.
  3. -------------------------------------------------------------------------------------------------------------------
  4.  
  5. -- Initialization function for this job file.
  6. function get_sets()
  7.     mote_include_version = 2
  8.  
  9.     -- Load and initialize the include file.
  10.     include('Mote-Include.lua')
  11.     include('organizer-lib')
  12.  
  13. end
  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', 'Acc')
  29.     state.HybridMode:options('Normal', 'PDT', 'Reraise')
  30.     state.WeaponskillMode:options('Normal', 'Acc')
  31.     state.CastingMode:options('Normal', 'Resistant')
  32.     state.IdleMode:options('Normal','Reraise')
  33.     --Setting this to true causes the lua to change between aegis or ochain when MDT or PDT Defense modes are active, respectively
  34.     state.ShieldMode = M{['description']='Shield Select', 'Aegis', 'Ochain'}
  35.     -- state.ShieldMode:options('Aegis','Ochain')
  36.     --
  37.     update_defense_mode()
  38.  
  39.     send_command('bind ^!` gs c cycle ShieldMode')
  40.     select_default_macro_book()
  41. end
  42.  
  43. function user_unload()
  44.     send_command('unbind ^!`')
  45. end
  46.  
  47.  
  48. -- Define sets and vars used by this job file.
  49. function init_gear_sets()
  50.     --------------------------------------
  51.     -- Precast sets
  52.     --------------------------------------
  53.         sets.midcast.Enmity = {
  54.     ammo="sapience orb",
  55.     head="Loess Barbuta +1",
  56.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  57.     hands={ name="Yorium Gauntlets", augments={'Enmity+10',}},
  58.     legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  59.     feet={ name="Yorium Sabatons", augments={'Enmity+10',}},
  60.     neck="Unmoving Collar +1",
  61.     waist="Creed Baudrier",
  62.     left_ear="Trux Earring",
  63.     right_ear="Cryptic Earring",
  64.     left_ring="Apeile Ring",
  65.     right_ring="Apeile Ring +1",
  66.     back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Enmity+10',}},
  67. }
  68.  
  69.     sets.precast.JA.Provoke = sets.midcast.Enmity
  70.     sets.precast.JA.Warcry = sets.midcast.Enmity
  71.     sets.precast.JA.Sentinel = sets.midcast.Enmity
  72.     sets.precast.JA.Rampart = sets.midcast.Enmity
  73.     sets.precast.JA.Fealty = sets.midcast.Enmity   
  74.     sets.precast.JA.DivineEmblem = sets.midcast.Enmity
  75.     sets.precast.JA.Palisade = sets.midcast.Enmity
  76.     sets.precast.JA.Cover = sets.midcast.Enmity
  77.     sets.precast.JA.Chivalry = sets.midcast.Enmity
  78.    
  79.    -- Precast sets to enhance JAs
  80.     sets.precast.JA['Invincible'] = {legs="Caballarius Breeches +1"}
  81.     sets.precast.JA['Holy Circle'] = {feet="Reverence Leggings +1"}
  82.     sets.precast.JA['Shield Bash'] = {hands="Caballarius Gauntlets +1"}
  83.     sets.precast.JA['Sentinel'] = {feet="Caballarius Leggings +1"}
  84.     sets.precast.JA['Rampart'] = {head="Caballarius Coronet +1"}
  85.     sets.precast.JA['Fealty'] = {body="Caballarius Surcoat +1"}
  86.     sets.precast.JA['Divine Emblem'] = {feet="Chevalier's Sabatons +1"}
  87.     sets.precast.JA['Cover'] = {head="Reverence Coronet +1"}
  88.  
  89.     -- add mnd for Chivalry
  90.     sets.precast.JA['Chivalry'] = {
  91.         head="Reverence Coronet +1",
  92.         body="Caballarius Surcoat +1",hands="Caballarius gauntlets +1",ring1="Leviathan Ring",ring2="Leviathan Ring",
  93.         back="Weard Mantle",legs="Caballarius breeches +1",feet="Whirlpool Greaves"}
  94.    
  95.  
  96.     -- Waltz set (chr and vit)
  97.     sets.precast.Waltz = {ammo="Sonia's Plectrum",
  98.         head="Reverence Coronet +1",
  99.         body="Gorney Haubert +1",hands="Reverence Gauntlets +1",ring2="Asklepian Ring",
  100.         back="Iximulew Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Whirlpool Greaves"}
  101.        
  102.     -- Don't need any special gear for Healing Waltz.
  103.     sets.precast.Waltz['Healing Waltz'] = {}
  104.    
  105.     sets.precast.Step = {waist="Chaac Belt"}
  106.     sets.precast.Flourish1 = {waist="Chaac Belt"}
  107.  
  108.     -- Fast cast sets for spells
  109.    
  110.     sets.precast.FC = {
  111.     ammo="Impatiens",
  112.     head={ name="Carmine Mask +1", augments={'Accuracy+20','Mag. Acc.+12','"Fast Cast"+4',}},
  113.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  114.     hands={ name="Odyssean Gauntlets", augments={'"Fast Cast"+6','Attack+1',}},
  115.     legs={ name="Odyssean Cuisses", augments={'"Fast Cast"+6','Attack+4',}},
  116.     feet={ name="Odyssean Greaves", augments={'Accuracy+30','"Fast Cast"+6','Attack+1',}},
  117.     neck="Creed Collar",
  118.     waist="Tempus Fugit",
  119.     left_ear="Enchanter earring +1",
  120.     right_ear="Loquac. Earring",
  121.     left_ring="Defending Ring",
  122.     right_ring="Veneficium Ring",
  123.     back={ name="Rudianos's Mantle", augments={'Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
  124.     }
  125.  
  126.    
  127.  
  128.     sets.precast.FC['Enhancing Magic'] = set_combine(sets.precast.FC, {waist="Siegel Sash"})
  129.  
  130.        
  131.     -- Weaponskill sets
  132.     -- Default set for any weaponskill that isn't any more specifically defined
  133.     sets.precast.WS = {
  134.     ammo="Ginsen",
  135.     head="Ynglinga Sallet",
  136.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  137.     hands="Sulev. Gauntlets +1",
  138.     legs="Sulevi. Cuisses +1",
  139.     feet="Sulev. Leggings +1",
  140.     neck="Fotia Gorget",
  141.     waist="Fotia Belt",
  142.     left_ear="Trux Earring",
  143.     right_ear="Brutal Earring",
  144.     left_ring="Rufescent Ring",
  145.     right_ring="Hetairoi Ring",
  146.     back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
  147. }
  148.  
  149.     sets.precast.WS.Acc = set_combine(sets.precast.WS,{})
  150.  
  151.     -- Specific weaponskill sets.  Uses the base set if an appropriate WSMod version isn't found.
  152.     sets.precast.WS['Requiescat'] = set_combine(sets.precast.WS, {ring1="Leviathan Ring",ring2="Aquasoul Ring"})
  153.     sets.precast.WS['Requiescat'].Acc = set_combine(sets.precast.WS.Acc, {ring1="Leviathan Ring"})
  154.  
  155.     sets.precast.WS['Chant du Cygne'] = set_combine(sets.precast.WS, {feet="thereoid greaves"})
  156.     sets.precast.WS['Chant du Cygne'].Acc = set_combine(sets.precast.WS.Acc, {})
  157.  
  158.     sets.precast.WS['Sanguine Blade'] = {ammo="Ginsen",
  159.         head="Reverence Coronet +1",neck="Eddy Necklace",ear1="Friomisi Earring",ear2="Hecate's Earring",
  160.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Shiva Ring",ring2="K'ayres Ring",
  161.         back="Toro Cape",waist="Caudata Belt",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  162.    
  163.     sets.precast.WS['Atonement'] = {ammo="Iron Gobbet",
  164.         head="Reverence Coronet +1",neck=gear.ElementalGorget,ear1="Creed Earring",ear2="Steelflash Earring",
  165.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Rajas Ring",ring2="Vexer Ring",
  166.         back="Fierabras's Mantle",waist=gear.ElementalBelt,legs="Reverence Breeches +1",feet="Caballarius Leggings"}
  167.      
  168.    
  169.    
  170.     --------------------------------------
  171.     -- Midcast sets
  172.     --------------------------------------
  173.  
  174.     sets.midcast.FastRecast = {
  175.     ammo="Impatiens",
  176.     head={ name="Souveran Schaller", augments={'HP+80','VIT+10','Phys. dmg. taken -3',}},
  177.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  178.     hands={ name="Souv. Handsch. +1", augments={'HP+65','Shield skill +15','Phys. dmg. taken -4',}},
  179.     legs={ name="Founder's Hose", augments={'MND+5','Mag. Acc.+5','Attack+3','Breath dmg. taken -2%',}},
  180.     feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  181.     neck="Unmoving Collar +1",
  182.     waist="Tempus Fugit",
  183.     left_ear="Trux Earring",
  184.     right_ear="Brutal Earring",
  185.     left_ring="Defending Ring",
  186.     right_ring="Patricius Ring",
  187.     back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Enmity+10',}},}
  188.  
  189.        
  190.  
  191.     sets.midcast.Phalanx = set_combine(sets.midcast.Enmity, {
  192.         head={ name="Yorium Barbuta", augments={'Weapon Skill Acc.+15','Phalanx +3',}},
  193.         body={ name="Yorium Cuirass",augments={'Phalanx +3',}},
  194.         hands={ name="Souv. Handsch. +1", augments={'HP+65','Shield skill +15','Phys. dmg. taken -4',}},
  195.         feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  196.         legs={ name="Yorium Cuisses", augments={'"Store TP"+6','Phalanx +3',}},
  197.         back={ name="Rudianos's Mantle", augments={'Accuracy+2 Attack+2',}},})
  198.    
  199.    
  200.     sets.midcast.Flash = set_combine(sets.midcast.Enmity, {})
  201.    
  202.     sets.midcast.Stun = sets.midcast.Flash
  203.    
  204.     sets.midcast.Cure = set_combine(sets.midcast.Enmity, {
  205.         head="Carmine Mask +1",
  206.         body="Souv. Cuirass",
  207.         hands="Macabre gauntlets +1",
  208.         feet="Souveran Schuhs +1",
  209.         legs="Yorium Cuisses",
  210.         back="Fierabras's mantle"})
  211.          
  212.        
  213.        
  214.     sets.midcast.Diaga = set_combine(sets.midcast.Enmity, {})
  215.  
  216.     sets.midcast['Blue Magic'] = set_combine(sets.midcast.Enmity, {})
  217.  
  218.     sets.midcast['Enhancing Magic'] = {neck="Colossus's Torque",waist="Olympus Sash"}
  219.    
  220.     sets.midcast.Protect = {ring1="Sheltered Ring"}
  221.     sets.midcast.Shell = {ring1="Sheltered Ring"}
  222.    
  223.     --------------------------------------
  224.     -- Idle/resting/defense/etc sets
  225.     --------------------------------------
  226.  
  227.     sets.Reraise = {head="Twilight Helm", body="Twilight Mail"}
  228.    
  229.     sets.resting = {neck="Creed Collar",
  230.         ring1="Sheltered Ring",ring2="Paguroidea Ring",
  231.         waist="Austerity Belt"}
  232.    
  233.  
  234.     -- Idle sets
  235.     sets.idle = {
  236.     ammo="Homiliary",
  237.     head="Loess Barbuta +1",
  238.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  239.     hands={ name="Souv. Handsch. +1", augments={'HP+65','Shield skill +15','Phys. dmg. taken -4',}},
  240.     legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  241.     feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  242.     neck="Sanctity Necklace",
  243.     waist="Creed Baudrier",
  244.     left_ear="Infused Earring",
  245.     right_ear="Cryptic Earring",
  246.     left_ring="Defending Ring",
  247.     right_ring="Patricius Ring",
  248.    
  249. }
  250.     sets.idle.Town = {
  251.     ammo="Homiliary",
  252.     head="Loess Barbuta +1",
  253.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  254.     hands={ name="Souv. Handsch. +1", augments={'HP+65','Shield skill +15','Phys. dmg. taken -4',}},
  255.     legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  256.     feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  257.     neck="Sanctity Necklace",
  258.     waist="Creed Baudrier",
  259.     left_ear="Infused Earring",
  260.     right_ear="Cryptic Earring",
  261.     left_ring="Defending Ring",
  262.     right_ring="Patricius Ring",
  263.     back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Enmity+10',}},
  264. }
  265.    
  266.     sets.idle.Weak = {
  267.     ammo="Homiliary",
  268.     head="Loess Barbuta +1",
  269.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  270.     hands={ name="Souv. Handsch. +1", augments={'HP+65','Shield skill +15','Phys. dmg. taken -4',}},
  271.     legs={ name="Souv. Diechlings +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  272.     feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  273.     neck="Sanctity Necklace",
  274.     waist="Creed Baudrier",
  275.     left_ear="Infused Earring",
  276.     right_ear="Cryptic Earring",
  277.     left_ring="Defending Ring",
  278.     right_ring="Patricius Ring",
  279.     back={ name="Rudianos's Mantle", augments={'VIT+20','Accuracy+20 Attack+20','VIT+10','Enmity+10',}},
  280.     }
  281.     sets.idle.Weak.Reraise = set_combine(sets.idle.Weak, sets.Reraise)
  282.     sets.idle.Reraise = set_combine(sets.idle,sets.Reraise)
  283.     sets.Kiting = {legs="Carmine Cuisses +1"}
  284.  
  285.     sets.latent_refresh = {waist="Fucho-no-obi"}
  286.  
  287.  
  288.     --------------------------------------
  289.     -- Defense sets
  290.     --------------------------------------
  291.    
  292.     -- Extra defense sets.  Apply these on top of melee or defense sets.
  293.     -- sets.Knockback = {back="Repulse Mantle"}
  294.     -- sets.MP = {neck="Creed Collar",waist="Flume Belt +1"}
  295.     -- sets.MP_Knockback = {neck="Creed Collar",waist="Flume Belt +1",back="Repulse Mantle"}
  296.    
  297.     -- If EquipShield toggle is on (Win+F10 or Win+F11), equip the weapon/shield combos here
  298.     -- when activating or changing defense mode:
  299.     sets.PhysicalShield = {sub="Ochain"} -- Ochain
  300.     sets.MagicalShield = {sub="Aegis"} -- Aegis
  301.  
  302.     -- Basic defense sets.
  303.        
  304.     sets.defense.PDT = {ammo="Iron Gobbet",
  305.         head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Buckler Earring",
  306.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2=gear.DarkRing.physical,
  307.         back="Weard Mantle",legs="Reverence Breeches +1",feet="Reverence Leggings +1"}
  308.     -- To cap MDT with Shell IV (52/256), need 76/256 in gear.
  309.     -- Shellra V can provide 75/256, which would need another 53/256 in gear.
  310.     sets.defense.MDT = {ammo="Demonry Stone",
  311.         head="Reverence Coronet +1",neck="Twilight Torque",ear1="Creed Earring",ear2="Bloodgem Earring",
  312.         body="Reverence Surcoat +1",hands="Reverence Gauntlets +1",ring1="Defending Ring",ring2="Shadow Ring",
  313.         back="Engulfer Cape",waist="Creed Baudrier",legs="Osmium Cuisses",feet="Caballarius Leggings +1"}
  314.  
  315.     --------------------------------------
  316.     -- Engaged sets
  317.     --------------------------------------
  318.    
  319.     sets.engaged = {
  320.     ammo="Hasty Pinion +1",
  321.     head="Sulevia's Mask +1",
  322.     body={ name="Souv. Cuirass +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  323.     hands={ name="Souv. Handsch. +1", augments={'HP+65','Shield skill +15','Phys. dmg. taken -4',}},
  324.     legs="Sulevi. Cuisses +1",
  325.     feet={ name="Souveran Schuhs +1", augments={'HP+105','Enmity+9','Potency of "Cure" effect received +15%',}},
  326.     neck="Creed Collar",
  327.     waist="Tempus Fugit",
  328.     left_ear="Trux Earring",
  329.     right_ear="Cryptic Earring",
  330.     left_ring="Defending Ring",
  331.     right_ring="Patricius Ring",
  332.     back={ name="Rudianos's Mantle", augments={'DEX+20','Accuracy+20 Attack+20','"Dbl.Atk."+10',}},
  333. }
  334.  
  335.     sets.engaged.Acc = {ammo="Ginsen",
  336.         head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Bladeborn Earring",ear2="Steelflash Earring",
  337.         body="Gorney Haubert +1",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  338.         back="Weard Mantle",waist="Zoran's Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
  339.  
  340.     sets.engaged.DW = {ammo="Ginsen",
  341.         head="Otomi Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  342.         body="Gorney Haubert +1",hands="Cizin Mufflers",ring1="Rajas Ring",ring2="K'ayres Ring",
  343.         back="Atheling Mantle",waist="Cetl Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
  344.  
  345.     sets.engaged.DW.Acc = {ammo="Ginsen",
  346.         head="Yaoyotl Helm",neck="Asperity Necklace",ear1="Dudgeon Earring",ear2="Heartseeker Earring",
  347.         body="Gorney Haubert +1",hands="Buremte Gloves",ring1="Rajas Ring",ring2="K'ayres Ring",
  348.         back="Weard Mantle",waist="Zoran's Belt",legs="Cizin Breeches",feet="Whirlpool Greaves"}
  349.  
  350.     sets.engaged.PDT = set_combine(sets.engaged, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  351.     sets.engaged.Acc.PDT = set_combine(sets.engaged.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  352.     sets.engaged.Reraise = set_combine(sets.engaged, sets.Reraise)
  353.     sets.engaged.Acc.Reraise = set_combine(sets.engaged.Acc, sets.Reraise)
  354.  
  355.     sets.engaged.DW.PDT = set_combine(sets.engaged.DW, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  356.     sets.engaged.DW.Acc.PDT = set_combine(sets.engaged.DW.Acc, {body="Reverence Surcoat +1",neck="Twilight Torque",ring1="Defending Ring"})
  357.     sets.engaged.DW.Reraise = set_combine(sets.engaged.DW, sets.Reraise)
  358.     sets.engaged.DW.Acc.Reraise = set_combine(sets.engaged.DW.Acc, sets.Reraise)
  359.  
  360.  
  361.     --------------------------------------
  362.     -- Custom buff sets
  363.     --------------------------------------
  364.  
  365.     sets.buff.Doom = {ring2="Saida Ring"}
  366.     sets.buff.Cover = {head="Reverence Coronet +1", body="Caballarius Surcoat +1"}
  367. end
  368.  
  369.  
  370. -------------------------------------------------------------------------------------------------------------------
  371. -- Job-specific hooks for standard casting events.
  372. -------------------------------------------------------------------------------------------------------------------
  373.  
  374. function job_midcast(spell, action, spellMap, eventArgs)
  375.     -- If DefenseMode is active, apply that gear over midcast
  376.     -- choices.  Precast is allowed through for fast cast on
  377.     -- spells, but we want to return to def gear before there's
  378.     -- time for anything to hit us.
  379.     -- Exclude Job Abilities from this restriction, as we probably want
  380.     -- the enhanced effect of whatever item of gear applies to them,
  381.     -- and only one item should be swapped out.
  382.     if state.DefenseMode.value ~= 'None' and spell.type ~= 'JobAbility' then
  383.         handle_equipping_gear(player.status)
  384.         eventArgs.handled = true
  385.     end
  386. end
  387.  
  388. -------------------------------------------------------------------------------------------------------------------
  389. -- Job-specific hooks for non-casting events.
  390. -------------------------------------------------------------------------------------------------------------------
  391.  
  392. -- Called when the player's status changes.
  393. function job_state_change(field, new_value, old_value)
  394.     if field == 'Shield Select' then
  395.         handle_equipping_gear(player.status)
  396.     end
  397. end
  398.  
  399. -------------------------------------------------------------------------------------------------------------------
  400. -- User code that supplements standard library decisions.
  401. -------------------------------------------------------------------------------------------------------------------
  402.  
  403. -- Called by the 'update' self-command, for common needs.
  404. -- Set eventArgs.handled to true if we don't want automatic equipping of gear.
  405. function job_update(cmdParams, eventArgs)
  406.     update_defense_mode()
  407.     handle_equipping_gear(player.status)
  408. end
  409.  
  410. -- Modify the default idle set after it was constructed.
  411. function customize_idle_set(idleSet)
  412.     if player.mpp < 51 then
  413.         idleSet = set_combine(idleSet, sets.latent_refresh)
  414.     end
  415.     if state.Buff.Doom then
  416.         idleSet = set_combine(idleSet, sets.buff.Doom)
  417.     end
  418.    
  419.     if state.ShieldMode.value == 'Aegis' then
  420.         idleSet = set_combine(idleSet, sets.MagicalShield)
  421.     elseif state.ShieldMode.value == 'Ochain' then
  422.         idleSet = set_combine(idleSet, sets.PhysicalShield)
  423.     end
  424.    
  425.     return idleSet
  426. end
  427.  
  428. -- Modify the default melee set after it was constructed.
  429. function customize_melee_set(meleeSet)
  430.     if state.Buff.Doom then
  431.         meleeSet = set_combine(meleeSet, sets.buff.Doom)
  432.     end
  433.     if state.CombatForm.value ~= 'DW' then
  434.         if state.ShieldMode.value == 'Aegis' then
  435.             meleeSet = set_combine(meleeSet, sets.MagicalShield)
  436.         elseif state.ShieldMode.value == 'Ochain' then
  437.             meleeSet = set_combine(meleeSet, sets.PhysicalShield)
  438.         end
  439.     end
  440.     return meleeSet
  441. end
  442.  
  443. function customize_defense_set(defenseSet)
  444.     --Because of this, make any extra defense mode sets to be defined by only the gear to be combined with correct DEF mode set.   
  445.     if state.Buff.Doom then
  446.         defenseSet = set_combine(defenseSet, sets.buff.Doom)
  447.     end
  448.    
  449.     if state.ShieldMode.value == 'Aegis' then
  450.         defenseSet = set_combine(defenseSet, sets.MagicalShield)
  451.     elseif state.ShieldMode.value == 'Ochain' then
  452.         defenseSet = set_combine(defenseSet, sets.PhysicalShield)
  453.     end
  454.    
  455.     return defenseSet
  456. end
  457.  
  458.  
  459. function display_current_job_state(eventArgs)
  460.     local msg = 'Melee'
  461.    
  462.     if state.CombatForm.has_value then
  463.         msg = msg .. ' (' .. state.CombatForm.value .. ')'
  464.     end
  465.    
  466.     msg = msg .. ': '
  467.    
  468.     msg = msg .. state.OffenseMode.value
  469.     if state.HybridMode.value ~= 'Normal' then
  470.         msg = msg .. '/' .. state.HybridMode.value
  471.     end
  472.     msg = msg .. ', WS: ' .. state.WeaponskillMode.value
  473.    
  474.     if state.DefenseMode.value ~= 'None' then
  475.         msg = msg .. ', Defense: ' .. state.DefenseMode.value .. ' (' .. state[state.DefenseMode.value .. 'DefenseMode'].value .. ')'
  476.     end
  477.    
  478.     if state.ShieldMode.value then
  479.         msg = msg .. ' Shield:['..state.ShieldMode.value..']'
  480.     end
  481.     -- if state.EquipShield.value == true then
  482.         -- msg = msg .. ', Force Equip Shield'
  483.     -- end
  484.    
  485.     if state.Kiting.value == true then
  486.         msg = msg .. ', Kiting'
  487.     end
  488.  
  489.     if state.PCTargetMode.value ~= 'default' then
  490.         msg = msg .. ', Target PC: '..state.PCTargetMode.value
  491.     end
  492.  
  493.     if state.SelectNPCTargets.value == true then
  494.         msg = msg .. ', Target NPCs'
  495.     end
  496.  
  497.     add_to_chat(122, msg)
  498.  
  499.     eventArgs.handled = true
  500. end
  501.  
  502. -------------------------------------------------------------------------------------------------------------------
  503. -- Utility functions specific to this job.
  504. -------------------------------------------------------------------------------------------------------------------
  505.  
  506. function update_defense_mode()
  507.     -- if player.equipment.main == 'Kheshig Blade' and not classes.CustomDefenseGroups:contains('Kheshig Blade') then
  508.     --  classes.CustomDefenseGroups:append('Kheshig Blade')
  509.     -- end
  510.    
  511.     if player.sub_job == 'NIN' or player.sub_job == 'DNC' then
  512.         if player.equipment.sub and (not player.equipment.sub:contains('Shield')) and
  513.            player.equipment.sub ~= 'Aegis' and player.equipment.sub ~= 'Ochain' then
  514.             state.CombatForm:set('DW')
  515.         else
  516.             state.CombatForm:reset()
  517.         end
  518.     end
  519. end
  520.  
  521.  
  522. -- Select default macro book on initial load or subjob change.
  523. function select_default_macro_book()
  524.     -- Default macro set/book
  525.     if player.sub_job == 'DNC' then
  526.         set_macro_page(5, 2)
  527.     elseif player.sub_job == 'NIN' then
  528.         set_macro_page(4, 2)
  529.     elseif player.sub_job == 'RDM' then
  530.         set_macro_page(3, 2)
  531.     else
  532.         set_macro_page(5, 1)
  533.     end
  534. end
Add Comment
Please, Sign In to add comment