Leviathan.Comeatmebro said:
»[...] it's caused by aftercast [...]
I was intrigued by this, so I went to test it, spamming songs manually with NT up.
Without any NT precast rules, I changed my idle set to my song casting gear. I got gimped songs (5min on display instead of 7min) within the first round of testing. I then essentially eliminated aftercast (and buff_change) altogether (returning immediately, leaving me in midcast). Again, I got gimped songs on the first round.
Showswaps was used to confirm that gear was registering as expected. There is no way that I was not casting in precast gear. This isn't to say that aftercast could not possibly cause an issue of the same result, but at the least, special handling for aftercast would not be enough to prevent the issue as a whole.
As a note though, I couldn't get a gimped song within 10 rounds of NT spamming with just an NT precast rule. But that doesn't necessarily prove anything.
Bismarck.Speedyjim said:
»He uses a Mote LUA and needs to be compatible with it. Also, need a rule to equip a second Kali when subbed NIN or DNC. Currently, there's a rule setup for melee'ing but none for song casting.
Assuming he didn't change anything from the original BRD file Mote has posted on Github,
For NT, try adding this function:
Code
function job_post_precast(spell, action, spellMap, eventArgs)
if spell.action_type == 'Magic' then
if spell.type == 'BardSong' and buffactive.Nightingale then
handle_actions(spell, 'midcast')
end
end
end
For DW,
change the get_song_class function:
Code
-- Determine the custom class to use for the given song.
function get_song_class(spell)
local songclass = 'SongEffect'
-- Can't use spell.targets:contains() because this is being pulled from resources
if set.contains(spell.targets, 'Enemy') then
if state.CastingMode.value == 'Resistant' then
songclass = 'ResistantSongDebuff'
else
songclass = 'SongDebuff'
end
elseif state.ExtraSongsMode.value == 'Dummy' then
songclass = 'DaurdablaDummy'
end
if songclass ~= 'DaurdablaDummy' and S{"DNC","NIN"}:contains(player.sub_job:upper()) then
songclass = songclass..'DW'
end
return songclass
end
and add sets.midcast.SongEffectDW, sets.midcast.ResistantSongDebuffDW, and sets.midcast.SongDebuffDW.