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 script translations of totem pets #768

Merged
merged 4 commits into from Dec 29, 2020

Conversation

johnnylam88
Copy link
Contributor

@johnnylam88 johnnylam88 commented Dec 23, 2020

This pullup does the following:

  • Adds totem support to every class since almost all classes can summon guardians which are treated in-game as totems.
  • Try to pattern-match for EmitOperandSpecial() before falling through to the rest of the pet operand logic. This allows for
    handling of special cases sooner in the flow.
  • Fix translating death knight ghouls.
  • Fix translating monk pets.

This fixes issue #761.

Every spell or item that summons minions has those minions treated
as totems by the game. Their information can be retrieved via the
Blizzard API function GetTotemInfo(slot). Treat every class as a
totem-capable class and track their totem states appropriately
through game events.
Try to pattern-match for EmitOperandSpecial() before falling
through to the rest of the pet operand logic. This allows for
checking for specific problematic actions that need to be handled
specially before doing the usual pet operand logic.

Verified to emit the same scripts as before this change.
Blood and frost death knights summon a ghoul with Raise Dead that
the game treats as a totem, so use TotemPresent() and
TotemRemaining() to translate "active" and "remains".

Unholy death knights summon a true pet ghoul, but also have three
abilities that summon minions that are not true pets: Army of the
Dead, Apocalypse, and Summon Gargoyle. Army of the Dead and
Apocalypse ghouls are neither pets nor totems, so translate
pet.*.active by comparing the remaining spell cooldown with the
cooldown duration. Summon Gargoyle functions as a totem, so use
TotemPresent() and TotemRemaining() to translate "active" and
"remains".
Remove Niuzao and Xuen, which are actual pets. Add Chi-Ji and Yulon
for mistweavers which are totems.
@Sidoine Sidoine merged commit be32bcb into Sidoine:master Dec 29, 2020
@johnnylam88 johnnylam88 deleted the fix/totem-pets branch January 4, 2021 17:01
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.

None yet

2 participants