Arms slayer_st APL bug

Open Beginner friendly
#11,747 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
69/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
cpp
Domain
game-dev

Research direction

The issue identifies the Arms slayer_st APL condition directly. Read the displayed Execute condition and check how its operators and Imminent Demise stack checks are interpreted; use the suggested equivalent conditions as a guide. Done means the condition matches the intended 0-or-2-stack cases, with the project’s relevant APL validation or tests passing.

Written by the indexing model from the issue text.

Description

Describe the bug

I think there may be a bug in the current Arms APL

actions.slayer_st+=/execute,if=buff.sudden_death.stack=2|cooldown.bladestorm.ready&(!buff.imminent_demise.stack=1|!buff.imminent_demise.stack=3)

Looks like it is intended to use Execute before a Bladestorm when Imminent Demise is not at 1 or 3 stacks — i.e. at 0 or 2 stacks. That would make sense with Unhinged, since going 0 to 1 or 2 to 3 adds an extra Unhinged Mortal

However, because ! has higher priority than =, I believe !buff.imminent_demise.stack=1 is parsed as (!buff.imminent_demise.stack)=1 rather than !(buff.imminent_demise.stack=1)

As a result, the second part of the condition effectively only succeeds at 0 Imminent Demise stacks, and the 2 to 3 case is missed

Expected behavior

If the intended logic is "Execute when Bladestorm is ready and Imminent Demise is 0 or 2", I think this should be written as either:

cooldown.bladestorm.ready&(buff.imminent_demise.stack=0|buff.imminent_demise.stack=2)

or:

cooldown.bladestorm.ready&!(buff.imminent_demise.stack=1|buff.imminent_demise.stack=3)

Dominant language
C++
Stars
1.6k
Forks
789
Avg merge
13h 25m
Merged PRs (30d)
52

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from simulationcraft/simc

All issues in simulationcraft/simc

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.