m |
m (rewording, thx Alan Alince) |
||
| Line 89: | Line 89: | ||
*# Therefore, while the '''Seek''' process normally requires cards to be revealed, the Trap mechanic ensures that this reveal is skipped. The handling of Traps shows how <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">AttachCard()</span> triggers card-specific logic (via callbacks) that overrides the default rules, allowing Traps to stay face-down as intended.<div style="height: 20px;"></div> | *# Therefore, while the '''Seek''' process normally requires cards to be revealed, the Trap mechanic ensures that this reveal is skipped. The handling of Traps shows how <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">AttachCard()</span> triggers card-specific logic (via callbacks) that overrides the default rules, allowing Traps to stay face-down as intended.<div style="height: 20px;"></div> | ||
* Intentional or not?<br />Yes we may say that the behavior of Traps not revealed after '''Seek''' function is intentionally coded by the developers, and here is why:<br /> | * Intentional or not?<br />Yes we may say that the behavior of Traps not revealed after '''Seek''' function is intentionally coded by the developers, and here is why:<br /> | ||
| − | *# Traps have specific mechanics that are fundamental | + | *# Traps have specific mechanics that are fundamental to their function: they are played facedown and ''only revealed when triggered''. There is no exception; if a Trap is revealed faceup in the graveyard it is because cards are placed faceup in the graveyard porecess; if a trap is returned to hand, nothing says in the returned to hand process that it should be revealed. |
| − | *# The fact that Traps aren’t revealed during a '''Seek''' mechanism follows the logic of the game. The code appears to be structured to ensure this rule is confirmed by preventing the <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">RevealCard()</span> function from | + | *# The fact that Traps aren’t revealed during a '''Seek''' mechanism follows the logic of the game. The code appears to be structured to ensure this rule is confirmed by preventing the <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">RevealCard()</span> function from being triggered for Traps. |
*# Functions like <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">PlayFaceDown()</span> and specific conditions in the code show that the developers have built these special rules for Traps, and they take effect before the standard rules apply. | *# Functions like <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">PlayFaceDown()</span> and specific conditions in the code show that the developers have built these special rules for Traps, and they take effect before the standard rules apply. | ||
*# Now, the following example code would essentially stop <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">PlayFaceDown()</span> from bypassing the reveal process for '''Seek'''ed cards. | *# Now, the following example code would essentially stop <span style="font-family: monospace; background-color: #f8f9fa; padding: 0.2em 0.4em; border: 1px solid #d1d5da; border-radius: 3px;">PlayFaceDown()</span> from bypassing the reveal process for '''Seek'''ed cards. | ||

| File References in the Game | Terms to Locate Seek Reference |
|---|---|
|
|
| Code seek: | |
public void StartTargetingForSeek() { ClearTargets(); MoveToCastPosition(); GameModel.UnhighlightCards(); GameModel.SetGameState(GameState.GameStateType.target); List<ShadowEraCard> abilityTargets = GetAbilityTargets(); for (int i = 0; i < GameModel.DeckCount(); i++) { ShadowEraCard deck = GameModel.GetDeck(i); if (abilityTargets.Contains(deck)) { GameModel.RemoveDeck(deck); i--; } } for (int j = 0; j < abilityTargets.Count; j++) { GameModel.AddDeck(abilityTargets[j]); } GameModel.HighlightCards(GetAbilityTargets()); DeckListDisplay.abilityCard = parent; DeckListDisplay.ShowDeck(GameModel.CurSide()); } public void DoSeek(bool usedShadowEnergy) { DeckListDisplay.CloseDeck(); if (targets.Count > 0 && GameModel.HandCount() < GameModel.MaxHandSize()) { GameModel.RemoveDeck(targets[0]); GameModel.ShowCardForPlayer(targets[0]); GameModel.AddHand(targets[0]); GameModel.OnSeek(targets[0]); } else { GameModel.OnSeek(null); } ShuffleOurDeck(); targets.Clear(); } public void ShuffleOurDeck() { GameModel.ShuffleDeck(); } | |
Alan said: "Card effects take precedence over the game rules."
| void PlayFaceDown(ShadowEraCard card, bool isSeeked)
{ if (isSeeked)
{
// Allow RevealCard() to be invoked for Seeked cards
RevealCard(card);
}
else
{
// Keep the card face-down as usual (normal Trap behavior)
KeepCardFaceDown(card);
}
} |