Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fixes to import harness and import latest scripts #994

Merged
merged 60 commits into from
Sep 4, 2021

Conversation

johnnylam88
Copy link
Contributor

No description provided.

The name of the script registration method was changed to
`registerScript` in commit af6216a.
The offending line is in T27_Warlock_Affliction.simc:

  /use_item,name=name=shadowed_orb_of_torment,...

where the `name=name=` looks like a copy-and-paste error.
The SimulationCraft parser accepts `&` as a valid character in
name strings, which is surprising since it's a keyword token. The
offending lines are in T27_Warrior_Fury.simc:

  /sequence,...,name=BT&Charge:bloodthirst:heroic_charge
  /sequence,...,name=BT&Reck:bloodthirst:recklessness

and we simply replace the `&` with `_` to harmlessly fix the error.
SimulationCraft profiles use an warlock-specific action `interrupt`
as a catch-all action to trigger pet interrupt abilities. Convert
that action to a warlock-specific `InterruptActions` function in
the Ovale script.
Fix a bug in the SimC usage of `from_the_shadows` as it's
implemented as a target debuff, but the profile is using it as a
player buff.
Orcs can't (currently) be paladins, but the `T27_Paladin_Holy.simc`
profile tries suggesting `blood_fury`, so make it work.
Bonedust Brew coats friendlies and enemies alike with the same
aura, but it is a buff or debuff depending on the target.
This is the buff that's triggered by the Sinful Hysteria legendary
when the druid casts the Venthyr covenant ability Ravenous Frenzy.
Ignore all modifiers for the `newfound_resolve` action and just
replace it with a check for whether the Trial of Doubt debuff
exists and whether it's time to face the manifestation.
`cp_gain` is the actual number of combo points that would be gained
by using an ability, taking into account the combo point cap.
Serrated Bone Spikes grants one combo point on use plus an
additional combo point for each Serrated Bone Spike that is active.
For now, ignore `retarget_auto_attack`. It's an indication to
target other enemies for attack and used by havoc demon hunter
profiles to suggest spreading Burning Wound, but the SimC
implementation is clunky and not worth directly translating.
SimulationCraft added a way to get the cooldown of an item by
checking the cooldown of the procced buff. Translate the buff name
back into the item name and directly check the item cooldown.
For Ovale, `duration_expected` and `remains_expected` are
essentially the same as `duration` and `remains` since we are
constantly updating state from the game client.
The implementation of these two properties should factor in energy
regenerated from active buffs, but for now, treating them the same
as `regen` and `time_to_max` is sufficient.
Correctly handle the `:` token that separates the different
sub-actions within each sequence. Each sub-action can have
modifiers as well, which are separated by `,` tokens.
Add `Define(identifier nnn)` lines to `ovale_common` for better
readability.
Emit code for more `trinket` conditions:
  - `trinket.cooldown.ready`
  - `trinket.has_buff.<stat>`
  - `trinket.has_proc.<stat>.duration`
  - `trinket.has_use_buff`
Disambiguate `bs_inc` into `berserk_bear` or `berserk_cat` based
on druid specialization so that we can correctly check the cooldown
of the spell.
Disambiguate `berserk` into `berserk_bear` or `berserk_cat` based
on the druid specialization so we refer to the corect action.
`buff.ca_inc.up` should check for either Celestial Alignment or
Incarnation: Chosen of Elune, so create a `ca_inc_buff` spell list
for those two buffs.
Note which spells add and remove Winter's Chill debuff from the
target.
Support `raid_event.vulnerable.*` events by assuming the target is
always vulnerable.
The MM hunter profile uses `precast_etf_equip=1` to test if the
Eagletalon's True Focus legendary is equipped.
`pause_action` is a dummy action that indicates that the enemy is
not attacking the player. Model this dummy action as never
happening.
`buff.recent_purifies.value` is how SimC exports the amount of
Stagger that was removed by the most recent Purifying Brew. Model
this as simply always being the value `MaxHealth() * 0.05` for now.
Assume that on-use items have an execute time of zero seconds.
Don't set `isSpell` when describing the first positional parameter
to `BuffPresent` and its aliases. Otherwise, the compiler will
complain if `BuffPresent` is called with an ID not in the
spellbook, which can often happen with buffs.
Many SimC profiles are now very sophisticated in using specific
trinkets under specific conditions. Use the exact trinket if the
name is provided in `use_item` actions.
There is probably a better way to do this by telling the compiler
that item cannot be undefined, but I'm not sure how to do that yet.
@johnnylam88
Copy link
Contributor Author

This pullup probably requires using the latest wow-mock.

@johnnylam88
Copy link
Contributor Author

It builds cleanly in my development environment using the latest wow-mock. I'm not sure how to update the dependency, but I think there's usually a dependabot pullup for those.

@Sidoine Sidoine merged commit 47a513d into Sidoine:master Sep 4, 2021
@johnnylam88 johnnylam88 deleted the fix/import-20210903 branch September 4, 2021 12:13
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