Advertisement
Kuroganashi

NO Work NIN ><

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