azerothcore / azerothcore-wotlk

Complete Open Source and Modular solution for MMO
http://www.azerothcore.org
GNU Affero General Public License v3.0
6.51k stars 2.61k forks source link

[AQ40] Twin Emperors - Teleport #13523

Open BeefSteaker opened 1 year ago

BeefSteaker commented 1 year ago

https://github.com/chromiecraft/chromiecraft/issues/4264

What client do you play on?

enUS

Faction

Both

Content Phase:

60

Current Behaviour

Vek’lor and Vek’nilash start their attacks right after swapping, sometimes this makes the two bosses go after their previous targets. Vek’nilash for example may attempt to go after its previous target to try to channel a new shadowbolt. https://www.twitch.tv/videos/1629467401?t=03h00m06s

Expected Blizzlike Behaviour

Vek’lor and Vek’nilash should have a delay of 2 seconds before retaking their attacks after the swamp. They complete full teleport animation, remove anyone on target, stop all actions and then retake their normal cycle of attacks.

Source

explanation: https://youtu.be/ulzbebfPxcg?t=261

example 1: https://youtu.be/ulzbebfPxcg?t=194 example 2: https://youtu.be/ulzbebfPxcg?t=233 example 3: https://youtu.be/ulzbebfPxcg?t=298 example 4: https://youtu.be/ulzbebfPxcg?t=330

another run: https://youtu.be/4CmadeEllDk?t=68

Steps to reproduce the problem

While in a raid group (22-25 players) Go c id 15276 Engage combat in this encounter

Extra Notes

I'm unable to replicate it on my own, even with multiple characters present. It does appear consistent in live attempts I've been watching. Might require more complex interactions between players

Without this 'grace period' , the fight gets buggy with threat and more challenging than it was designed to be as that short delay allows for the other tank/warlock to react and take initial action.

AC rev. hash/commit

https://github.com/chromiecraft/azerothcore-wotlk/commit/b427e8e18cb6baa80124ce8e3a7e79aa670bcc74

Operating system

Ubuntu 20.04

Modules

Customizations

None

Server

ChromieCraft

Gultask commented 1 year ago

Have you found a way to reproduce it outside a raid setting? Because it always worked for me.

BeefSteaker commented 1 year ago

No, it's just been consistent in the attempts I've been watching

Gultask commented 1 year ago

@BeefSteaker Could you mention that in the Steps to Reproduce? The mechanic is already implemented but something's breaking it and we don't know what.

Si1ker commented 1 year ago

@Gultask With "mechanic is already implemented" are you also taking in consideration the main point of the report: the 2 sec delay on both bosses after each TP? The threat issue is half of the problem only.

A lot of proof that the 2sec delay should be there, ty.

Gultask commented 1 year ago

It is there but there's something messing it up.

If you try it using 2 characters it'll probably be perfect.

Si1ker commented 1 year ago

https://github.com/azerothcore/azerothcore-wotlk/blob/master/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp#L164

huh, ye def not taking place in the encounter, more than +50 attempts and it was instant every time (I was the only warlock tanking the first kill on Twins in live ChromieCraft)

Idea/Opinion: I don't think this is the right way to handle it, just because players perceive it as a delay, it does not mean it should be a delay in code. In the old system for events, I'd try something like: (segmentation instead of running it all together, I think would also help to mimic the retail behavior more accurately)

event_tp_1: DoResetThreat(); me->SetReactState(REACT_PASSIVE); DoCastSelf(SPELL_TWIN_TELEPORT_VISUAL, true); events.ScheduleEvent(event_tp_2, 1000);

event_tp_2: me->SetTarget(); events.ScheduleEvent(event_tp_3, 1000);

event_tp_3: me->SetReactState(REACT_AGGRESSIVE); if (Unit* victim = me->SelectNearestTarget()) { me->AddThreat(victim, 2000.f); AttackStart(victim); }

Missiles/spells/procs/debuffs and stuff may be getting in the middle of the current handling, which would explain why with only 2 players it works but in live attempts it doesn't.