Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Guardian Druid: Gore appears to apply the buff but not reset a Mangle charge

Đang mở
#11,918 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
cpp
Lĩnh vực
game-dev

Hướng nghiên cứu

Start by reading the Guardian Druid trigger_gore_t::impact() handler mentioned in the issue, then compare it with the Mangle cooldown reset behavior in Answered Calling and Berserk. The report’s test modifies that handler and runs a 300-second Patchwerk simulation with Harnessed Rage; done means determining whether Gore should reset Mangle and verifying the resulting Mangle charge behavior.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Guardian Druid: Gore appears to apply the buff but not reset a Mangle charge

Environment
  • SimulationCraft: 1210-01

  • WoW: 12.1.0.69933 Live

  • SimC commit: 6c50c3c7b96c81bbb8e7abefbd817ecf31519592

  • Fight style: Patchwerk

  • Fight length: fixed 300 seconds

  • Targets: 1

  • Guardian Druid

  • Harnessed Rage talented, so Mangle has multiple charges

Problem

Gore is supposed to reset the cooldown of Mangle when it procs.

However, in the current SimC implementation, trigger_gore_t::impact() appears to only trigger the Gore buff:

if ( BASE::rng().roll( gore_chance() ) )
  BASE::p()->buff.gore->trigger( this );

There does not appear to be a corresponding Mangle cooldown reset here.

By comparison, other Guardian effects such as Answered Calling and Berserk explicitly do:

p_->cooldown.mangle->reset( true );

This seems especially noticeable with Harnessed Rage, where Mangle uses a multi-charge cooldown.

Test

I modified the Gore handler to:

if ( BASE::rng().roll( gore_chance() ) )
{
  BASE::p()->buff.gore->trigger( this );

if ( BASE::p()->cooldown.mangle )
BASE::p()->cooldown.mangle->reset( true );
}

The APL was also configured with unconditional Mangle at the very top, ahead of cooldowns and the rest of the rotation, to make sure APL priority could not be responsible for delayed Mangle casts.

Results

Metric Current SimC With Gore reset
Mangle casts / 300 sec 107.67 136.69
DPS 98,044 102,029
DPS difference — +4.06%
Mangle Rage generated 1721.8 2075.2
Mangle Rage overflow 230.0 373.7
Gore starts 30.61 31.43
Gore refreshes 5.03 0.72
Gore average duration 1.84 s 0.97 s
Gore uptime 18.82% 10.13%

Baseline data:

Patched data:

The Mangle cast count increases by approximately:

107.67 → 136.69 (+29.02 casts, +26.9%)

The Gore behavior also changes in a way that seems consistent with the reset working correctly: Gore refreshes fall from about 5.03 to 0.72, and average Gore duration falls from 1.84 s to 0.97 s, because the newly available Mangle is usually used on the following GCD.

Interestingly, before running the patched sim I estimated that correctly restoring Mangle charges from Gore should result in roughly 135–138 Mangle casts over 300 seconds. The patched result was 136.69.

Additional rotational effects

The extra Mangle casts naturally replace some filler GCDs:

  • Thrash decreases from roughly 64.95 → 53.76 casts

  • Swipe decreases from roughly 53.07 → 31.97 casts

  • Raze increases from roughly 14.1 → 18.5 casts

This also reduces the number of future Gore proc opportunities, so the result is not simply current Mangles + number of Gore procs.

Caveat

The baseline run used approximately 5,000 iterations, while the patched run used approximately 50,000 iterations.

The observed difference is much larger than the expected statistical noise, but I can rerun the baseline at 50,000 iterations for a perfectly matched comparison if useful.

Question

Is the missing

cooldown.mangle->reset( true );

inside the Gore proc handler intentional, or is this a missing implementation of Gore's Mangle cooldown reset?

If useful, I can also provide the complete .simc profile and both JSON reports.

Ngôn ngữ chính
C++
Star
1.6k
Fork
789
Merge trung bình
8 giờ 18 phút
Pull request đã merge (30 ngày)
63

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của simulationcraft/simc

Tất cả issue của simulationcraft/simc

Issue tương tự

Thêm issue về C++

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.