[Warlock] Fix Demonology/Destruction infinite loops, remove version guard#10956
Closed
Braxtar wants to merge 1 commit intosimulationcraft:midnightfrom
Closed
[Warlock] Fix Demonology/Destruction infinite loops, remove version guard#10956Braxtar wants to merge 1 commit intosimulationcraft:midnightfrom
Braxtar wants to merge 1 commit intosimulationcraft:midnightfrom
Conversation
…guard Demonology - summon_vilefiend: - Talent spell 1251778 has 0s duration AND 0s cooldown in Midnight DBC - Spell 1251781 has the correct values (15s duration) - Added cooldown->duration = 45s (matches in-game, both DBC spells show 0) - Added set_default_duration for vilefiends pet spawner (was missing) - Fixed vilefiend buff duration to use spell 1251781 Destruction - dimensional_rift: - Spell data already has 3 charges / 45s recharge but the charge system was never initialized in the constructor - Added cooldown->charges = data().charges() Without these fixes both specs enter infinite event loops on the first cast of vilefiend/dimensional_rift. Tested: Affliction ~21k DPS, Demonology ~11k DPS, Destruction ~30k DPS (default profiles, load_default_gear=1, load_default_talents=1, 100 iter)
Contributor
|
The Warlock module hasn't been updated for Midnight yet, which is why there are so many errors. There's a large pending PR that includes many changes for the initial implementation of the Warlock module for Midnight here: #10923 |
Contributor
|
"Sim runs" and "sim gives accurate results" are two very distinct things. This does the former without doing the latter, which makes it basically useless. |
Author
|
Thank you for the feedback. You're right — these are band-aid fixes that make specs run without ensuring accuracy. Closing in favor of #10923 which is the proper Midnight implementation. Appreciate the pointer! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
All three Warlock specs are currently blocked from simming on the
midnightbranch. After removing the version guard, I found two runtime bugs that cause infinite event loops:Demonology —
summon_vilefiend:summon_vilefiend(ID 1251778) has 0s duration and 0s cooldown in the Midnight DBC data. This is a trait_data mismatch — the actual gameplay values live on spell 1251781 (15s duration).find_spell(1251781)->duration()for spawn duration/buff, hardcode 45s cooldown (matches in-game).set_default_durationfor vilefiends — it was the only pet spawner missing this call.Destruction —
dimensional_rift:dimensional_rift_tnever initializes the charge system in its constructor.cooldown->charges = as<int>( data().charges() );Version guard:
wowv_t( 13, 0, 0 )check invalidate_actor()since all three specs now sim successfully with these fixes.Test results
Ran with
load_default_gear=1 load_default_talents=1 default_actions=1 iterations=100:Note: some APL talent references (e.g.
vile_taint,eradication,the_houndmasters_gambit) log warnings because these talents were renamed in Midnight. The APL still runs — expressions with missing talents just evaluate to false. A separate APL update pass would clean those up.Files changed
sc_warlock.cpp— removed version guardsc_warlock_actions.cpp— vilefiend cooldown + duration fix, dimensional_rift charge initsc_warlock_init.cpp— vilefiendset_default_duration+ buff duration fix