Skip to content

Conversation

insunaa
Copy link
Contributor

@insunaa insunaa commented Sep 8, 2025

BossAI: Add timed respawn on evade

BossAI: Correctly set instance data on evade

BossAI: Add Queued casts on death

For some reason I squashed the original commit of this, so 3 separate things are happening here. They all make sense to me, but if required I can rip them apart into separate commits.

BossAI: Add timed respawn on evade

BossAI: Correctly set instance data on evade
@killerwife
Copy link
Contributor

I am not sure I like queued cast on death. Reason being that the death of each boss is very custom. Illidan for example fake dies and talks instead of it being actual death. Many bosses also cast it immediately. I feel like just like EAI on death event, should be done by the scripter himself. You can easily do a custom action on death without the need for this specifically.

The other two, no issue ofc

@insunaa
Copy link
Contributor Author

insunaa commented Sep 8, 2025

@killerwife Well this isn't mandatory to use, of course. The point of this is just to data-ify bosses which always cast a spell on death. If a more customized solution is required then this can just be skipped and done manually.

@killerwife
Copy link
Contributor

Riddle me this then, how many bosses whose solution isnt to move to db, would use this

@insunaa
Copy link
Contributor Author

insunaa commented Sep 8, 2025

@killerwife Where in a spell list would I set a spell that's cast only on death? If the IS_DYING combat condition is only hit once and allows for immediate execution of a spell then of course it's kinda pointless, yes.

Edit: at least from my reading of the code IS_DYING is unlikely to be hit, given that there's an

if (AI() && IsAlive())

check before

AI()->UpdateAI(diff);

is called

@killerwife
Copy link
Contributor

Spell lists arent the replacement here. This is EAI on death territory. Also if i remember correctly, on B end, dead mobs dont update by default and there is a flag for it. So in terms of knowledge there is all sorts of hurdles for any generalized timer while dead.

@insunaa
Copy link
Contributor Author

insunaa commented Sep 8, 2025

@killerwife Can EAI now work together with ScriptedAI/CombatAI/BossAI? I was under the impression it was either ScriptDev or EAI

@killerwife
Copy link
Contributor

Scriptdev ai is a shell now. It cant work with combat ai and boss ai but i actually did an EAI extension AI. Not saying thats the way to go rly. But im trying to say that on death spell isnt smth blizz has. They have on death event (eai hook or Justdied func) and they can do all group actions from it. (eai actions or any c++ on our end). So its kinda a useless abstraction vs the original. Unless you tell me it will be used like by 50 mobs in C++, then we start talking.

@insunaa
Copy link
Contributor Author

insunaa commented Sep 8, 2025

At least in WotLK there are a few bosses where this is used (for example I use the queued cast in the Ignis encounter). In Vanilla content it's probably not as present. If you want it removed then I'll probably have to remove it in WotLK too, because I personally like the cores to have parity with such stuff so that cherrypicking becomes easier and doesn't introduce bugs

@killerwife
Copy link
Contributor

I pretty much see no use for it and i did rework a roflcopter level of bosses at this point in tbc at least. Hence my asumptions that its obsolete already when you need to do smth more complex.

void BossAI::Reset()
{
CombatAI::Reset();
m_creature->SetSpellList(m_creature->GetCreatureInfo()->SpellList);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't remember if you fixed the need for this at some point

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants