It is currently 07 Jul 2021, 11:55
   
Text Size

Shandalar - Feature Requests

Use new mulligan rules (implemented)

 

Report

The game still uses the 4th-edition era optional mulligan rule, i.e. you may mulligan if you have 0 lands or 7 lands in your opponent hand, or if your opponent mulligans; and you draw 7 cards.

Current rules:

103. Starting the Game

103.4. Each player draws a number of cards equal to his or her starting hand size, which is normally seven. (Some effects can modify a player's starting hand size.) A player who is dissatisfied with his or her initial hand may take a mulligan. First, the starting player declares whether or not he or she will take a mulligan. Then each other player in turn order does the same. Once each player has made a declaration, all players who decided to take mulligans do so at the same time. To take a mulligan, a player shuffles his or her hand back into his or her library, then draws a new hand of one fewer cards than he or she had before. If a player kept his or her hand of cards, those cards become the player's opening hand, and that player may not take any further mulligans. This process is then repeated until no player takes a mulligan. (Note that if a player's hand size reaches zero cards, that player must keep that hand.)

103.4a In a Vanguard game, each player's starting hand size is seven plus or minus the hand modifier of his or her vanguard card.

103.4b If an effect allows a player to perform an action "any time [that player] could mulligan," the player may perform that action at a time he or she would declare whether or not he or she will take a mulligan. This need not be in the first round of mulligans. Other players may have already made their mulligan declarations by the time the player has the option to perform this action. If the player performs the action, he or she then declares whether or not he or she will take a mulligan.

103.4c In a multiplayer game, the first time a player takes a mulligan, he or she draws a new hand of as many cards as he or she had before. Subsequent hands decrease by one card as normal.

103.4d In a multiplayer game using the shared team turns option, first each player on the starting team declares whether or not he or she will take a mulligan, then the players on each other team in turn order do the same. Teammates may consult while making their decisions. Then all mulligans are taken at the same time. A player may take a mulligan even after his or her teammate has decided to keep his or her opening hand.

103.4e The Commander casual variant uses an alternate mulligan rule. Each time a player takes a mulligan, rather than shuffling his or her entire hand of cards into his or her library, that player exiles any number of cards from his or her hand face down. Then the player draws a number of cards equal to one less than the number of cards he or she exiled this way. Once a player keeps an opening hand, that player shuffles all cards he or she exiled this way into his or her library.

714. Restarting the Game

714.3. Because each player draws seven cards when the new game begins, any player with fewer than seven cards in his or her library will lose the game when state-based actions are checked during the upkeep step of the first turn, regardless of any mulligans that player takes. (See rule 704, "State-Based Actions.")

715. Subgames

715.3. Because each player draws seven cards when a game begins, any player with fewer than seven cards in his or her deck will lose the subgame when state-based actions are checked during the upkeep step of the first turn, regardless of any mulligans that player takes. (See rule 704, "State-Based Actions.")
Last edited by Korath on 26 May 2015, 00:17, edited 1 time in total.
Reason: Component none->Duel Engine

Comments

Posted by Korath » 04 Aug 2016, 01:19

commit 740bf8d6cb2d3df9761d1326858af926a0a6dcc0
Author: Korath <dgk@Dirge.none>
Date: Wed Aug 3 21:12:53 2016 -0400

[HS] #546: Pre-BFZ (Paris) mulligan rules

(i.e., current mulligan rules, without the scry)

Shandalar.ini: [Duel]AiMulliganBiasConstant, [Duel]AiMulliganBiasPerMulligan,
[Duel]LogAIMulligan

The AI works by comparing the value of its hand against the average value of
ten new hands (with one fewer card), with a bias toward keeping its current
one.

The value assessment works like:
1. Put all land cards from the AI's hand on the battlefield. (Don't play them;
that is, no triggers or other effects are run.)
2. Put all permanents in the AI's hand that the AI has enough mana to cast on
the battlefield. (Again, no triggers or as-enter-the-battlefield effects
are run. Auras go through an abbreviated casting process so they're
attached to a valid object.)
3. Repeat step 2 until no more permanents are put on the battlefield, just in
case any could produce mana or affect the amount of mana other permanents
could produce.
4. Obliterate any cards remaining in the AI's hand that it doesn't have enough
mana to cast.
5. Compute the AI's opinion of that putative gamestate normally.
6. If it's the actual hand being valued, and not one of the putative ones, add
a bias based on values in Shandalar.ini: [Duel]AiMulliganBiasConstant +
greater_of(0, 7 - cards_in_hand) * [Duel]AiMulliganBiasPerMulligan.

AI and human mulligan announcement is properly interspersed, though the AI
doesn't pay attention to whether the human mulligans or not.

Mulligans are moved from immediately after the coin flip and play-or-draw
decision to immediately before the game starts. In particular, this makes
enemies using the Mind Control ability (like Mind Stealer) mulligan their
copied hands from their copied decks, rather than drawing and mulliganning from
their original ones and then copying the human's deck.

Absolutely no support for multiplayer; it calls abort(). I've previously gone
through the motions of making card functions multiplayer-friendly, even though
large portions of the multiplayer implementation isn't present in Shandalar;
that was because it wouldn't require additional work to speak of. This would.
Last edited by Korath on 04 Aug 2016, 03:04, edited 1 time in total.
Reason: rebased

Posted by Korath » 04 Aug 2016, 04:54

commit 7664e6de831ebf07c13cded83ba3d552a45d227c
Author: Korath <dgk@Dirge.none>
Date: Thu Aug 4 00:53:56 2016 -0400

[HS] FIX #546: Post-BFZ (Vancouver) mulligan rules

(i.e., with the scry)

Ticket details

  • Ticket ID: 546
  • Project: Shandalar
  • Status: Implemented
  • Component: (unknown)
  • Project version: (unknown)
  • Priority: Normal
  • Assigned to: Korath
  • Reported by: Korath
  • Reporter's tickets: List all tickets
  • Reported on: 26 May 2015, 00:04
  • Last visited by Korath » 04 Aug 2016, 04:54.
 
cron

Login Form