Skip to content

Conversation

@DaveAlessi
Copy link

Migration of Protection and Retribution Paladin Simulators from SoD to Classic

From what I could tell, the ret and prot paladin sims were not fully migrated over from Season of Discovery (SoD). This PR migrates the prot and ret simulators from SoD to Classic by removing SoD-specific content and ensuring compatibility with Classic mechanics.

Changes Made

Protocol Buffers (proto/paladin.proto)

  • Removed Martyrdom = 3 from the PaladinSeal enum (SoD-only seal)
  • Removed IsUsingDivineStormStopAttack option (Divine Storm is a SoD rune ability)
  • Removed IsUsingCrusaderStrikeStopAttack option (Crusader Strike is a SoD rune ability)
  • Kept IsUsingJudgementStopAttack (valid for Classic seal twisting)

Retribution Paladin

  • sim/paladin/retribution/retribution.go: Removed Divine Storm and Crusader Strike stop attack fields from the struct
  • sim/paladin/retribution/retribution_test.go: Removed Seal of Martyrdom test options, updated tests to use Seal of Righteousness
  • ui/retribution_paladin/inputs.ts: Removed Seal of Martyrdom from seal selection options
  • ui/retribution_paladin/presets.ts:
    • Updated DefaultOptions to use PaladinSeal.Righteousness
    • Replaced SoD APL presets with new basic_ret.apl.json
  • ui/retribution_paladin/apls/basic_ret.apl.json: New Classic-compatible APL using Judgement and seal twisting between SoR/SoC

Protection Paladin

  • sim/paladin/protection/protection.go: Removed Divine Storm and Crusader Strike stop attack fields from the struct
  • sim/paladin/protection/protection_test.go: Updated tests to use Seal of Righteousness
  • ui/protection_paladin/inputs.ts: Removed Seal of Martyrdom from seal selection options
  • ui/protection_paladin/presets.ts:
    • Updated DefaultOptions to use PaladinSeal.Righteousness
    • Replaced SoD APL presets with basic_prot.apl.json and p5prot.apl.json
  • ui/protection_paladin/apls/basic_prot.apl.json: New Classic-compatible APL
  • ui/protection_paladin/apls/p5prot.apl.json: New Classic-compatible APL with defensive cooldowns

Removed SoD APL Files

Deleted Phase 4/5 SoD-specific APL files that referenced SoD rune abilities and spell IDs.

Updated index.html

Updated the index to point to

  • href="/classic/retribution_paladin/"
  • href="/classic/protection_paladin/"

Test Results

Regenerated TestRetribution.results and TestProtection.results to reflect the updated test configurations. This is the part I'm least sure about, tests initially failed. From what I can tell the failures were expected because all the APLs had to be updated so I used the make update-tests command.

Testing

  • All tests pass (make test)
  • Frontend builds successfully (make)
  • Manual testing confirms both sims function correctly in the browser

…om apl, inputs.ts, presets.ts, and paladin.proto
…Fixed a few things with retribution as well but still a ways to go there. Was able to get the build running and did several end to end manual tests and everything looks pretty good as far as I can tell.
… really bad one (I don't know how to play Ret sorry)
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.

1 participant