Fix/3992 taboo_id to meta.extra_deck cards during decklist loading#4147
Open
wdqin wants to merge 1 commit intohalogenandtoast:mainfrom
Open
Fix/3992 taboo_id to meta.extra_deck cards during decklist loading#4147wdqin wants to merge 1 commit intohalogenandtoast:mainfrom
wdqin wants to merge 1 commit intohalogenandtoast:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Title:
Apply taboo_id to meta.extra_deck cards during decklist loading
Issue ID: 3992
#3992
Summary:
This fixes decklist loading so cards loaded from
meta.extra_deckreceivetaboo_idexactly the same way cards loaded from main-deckslotsandsideSlotsalready do.Problem:
The bug showed up with side-deck style cards serialized through
meta.extra_deck, such as Parallel Jim Culver spirit-deck cards. That code path applied owner and customizations, but never appliedtaboo_id, so taboo-sensitive cards were loaded as their original versions.For example,
Mr. Rookloaded frommeta.extra_deckended up withtabooList = nullandmutated = null, even when the investigator deck itself was usingTabooList23.Change:
Added
Arkham.Card.PlayerCard.setTaboo (fromTabooId $ taboo_id decklist)to themeta.extra_deckbranch ofloadExtraDeckKept the existing
sideSlotspath unchangedAdded regression coverage for both:
meta.extra_deckapplying taboo correctlysideSlotscontinuing to apply taboo correctlyImplementation references:
This change follows the same decklist-loading pattern already used by existing card-loading logic in:
loadDecklistCardsmain-deck
slotsextra-deck
sideSlotsFiles changed:
backend/arkham-api/library/Arkham/Decklist.hs
backend/arkham-api/tests/Arkham/DecklistSpec.hs
Test coverage:
Added regression coverage for:
loading
05153frommeta.extra_deckwithtaboo_id = 23setspcTabooList = Just TabooList23loading
05153frommeta.extra_deckwithtaboo_id = 23setspcMutated = Just "Mutated20"loading the same card from
sideSlotsstill preserves the existing taboo behaviorValidation:
Ran:
stack test arkham-api:spec --test-arguments='--match "loadDecklist"'
Result:

I started a new campaign with the same imported deck. Mr.Rook is now tabooed correctly from the spirit deck.