Merge branch 'rivet' into 'master'

SNC: Riveteers Charm and support

See merge request core-developers/forge!6484
This commit is contained in:
Michael Kamensky
2022-04-06 04:37:48 +00:00
5 changed files with 24 additions and 7 deletions

View File

@@ -310,6 +310,8 @@ public class EffectEffect extends SpellAbilityEffect {
game.getUpkeep().addUntil(controller, endEffect);
} else if (duration.equals("UntilEndOfCombat")) {
game.getEndOfCombat().addUntil(endEffect);
} else if (duration.equals("UntilYourNextEndStep")) {
game.getEndOfTurn().addUntil(controller, endEffect);
} else if (duration.equals("UntilTheEndOfYourNextTurn")) {
if (game.getPhaseHandler().isPlayerTurn(controller)) {
game.getEndOfTurn().registerUntilEnd(controller, endEffect);

View File

@@ -375,6 +375,7 @@ public class PhaseHandler implements java.io.Serializable {
break;
case END_OF_TURN:
game.getEndOfTurn().executeUntil(playerTurn);
if (playerTurn.getController().isAI()) {
playerTurn.getController().resetAtEndOfTurn();
}

View File

@@ -7,6 +7,6 @@ SVar:TrigCharm:DB$ Charm | Choices$ DBToken,DBDraw,DBExileYard
SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ bg_1_1_pest_lifegain | TokenOwner$ You | SpellDescription$ Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ DBLoseLife | SpellDescription$ You draw a card and you lose 1 life.
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1
SVar:DBExileYard:DB$ ChangeZoneAll | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Player | TgtPrompt$ Select target player | ChangeType$ Card | SpellDescription$ Exile all cards from target player's graveyard.
SVar:DBExileYard:DB$ ChangeZoneAll | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Player | TgtPrompt$ Select target player | ChangeType$ Card | SpellDescription$ Exile target player's graveyard.
DeckHas:Ability$Token|LifeGain
Oracle:When Callous Bloodmage enters the battlefield, choose one —\n• Create a 1/1 black and green Pest creature token with "When this creature dies, you gain 1 life."\n• You draw a card and you lose 1 life.\n• Exile target player's graveyard.

View File

@@ -1,12 +1,11 @@
Name:Soul Shatter
ManaCost:2 B
Types:Instant
A:SP$ RepeatEach | Cost$ 2 B | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ CreatureHighCMC | SubAbility$ DBSac | StackDescription$ Each opponent | SpellDescription$ Each opponent sacrifices a creature or planeswalker with the highest mana value among creatures and planeswalkers they control.
SVar:CreatureHighCMC:DB$ ChooseCard | ConditionCheckSVar$ X | ConditionSVarCompare$ GTY | Defined$ Player.IsRemembered | Choices$ Creature.RememberedPlayerCtrl+cmcEQX | ChoiceTitle$ Choose a creature with the highest mana value to sacrifice | Mandatory$ True | RememberChosen$ True | SubAbility$ WalkerHighCMC
SVar:WalkerHighCMC:DB$ ChooseCard | ConditionCheckSVar$ Y | ConditionSVarCompare$ GTX | Defined$ Player.IsRemembered | Choices$ Planeswalker.RememberedPlayerCtrl+cmcEQY | ChoiceTitle$ Choose a planeswalker with the highest mana value to sacrifice | Mandatory$ True | RememberChosen$ True | SubAbility$ TieCMC
SVar:TieCMC:DB$ ChooseCard | ConditionCheckSVar$ X | ConditionSVarCompare$ EQY | Defined$ Player.IsRemembered | Choices$ Creature.RememberedPlayerCtrl+cmcEQX,Planeswalker.RememberedPlayerCtrl+cmcEQX | ChoiceTitle$ Choose a creature or planeswalker with the highest mana value to sacrifice | Mandatory$ True | RememberChosen$ True
A:SP$ RepeatEach | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ DBChoose | SubAbility$ DBSac | StackDescription$ Each opponent | SpellDescription$ Each opponent sacrifices a creature or planeswalker with the highest mana value among creatures and planeswalkers they control.
SVar:DBChoose:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Creature.RememberedPlayerCtrl+cmcEQX,Planeswalker.RememberedPlayerCtrl+cmcEQX | ChoiceTitle$ Choose a creature or planeswalker with the highest mana value to sacrifice | Mandatory$ True | RememberChosen$ True
SVar:DBSac:DB$ SacrificeAll | ValidCards$ Card.IsRemembered | SubAbility$ DBCleanup | StackDescription$ sacrifices a creature or planeswalker with the highest mana value among creatures and planeswalkers they control.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearChosen$ True
SVar:X:Count$HighestCMC_Creature.RememberedPlayerCtrl+inZoneBattlefield
SVar:Y:Count$HighestCMC_Planeswalker.RememberedPlayerCtrl+inZoneBattlefield
SVar:X:SVar$Y/LimitMin.Z
SVar:Y:Count$HighestCMC_Creature.RememberedPlayerCtrl+inZoneBattlefield
SVar:Z:Count$HighestCMC_Planeswalker.RememberedPlayerCtrl+inZoneBattlefield
Oracle:Each opponent sacrifices a creature or planeswalker with the highest mana value among creatures and planeswalkers they control.

View File

@@ -0,0 +1,15 @@
Name:Riveteers Charm
ManaCost:B R G
Types:Instant
A:SP$ Charm | Choices$ DBSac,DBExilePlay,DBExileGrave
SVar:DBSac:DB$ Sacrifice | ValidTgts$ Opponent | TgtPrompt$ Choose target opponent | SacValid$ Creature.cmcEQX,Planeswalker.cmcEQX | SacMessage$ creature or planeswalker they control with the highest mana value among creatures and planeswalkers they control | SpellDescription$ Target opponent sacrifices a creature or planeswalker they control with the highest mana value among creatures and planeswalkers they control.
SVar:X:SVar$Y/LimitMin.Z
SVar:Y:Count$HighestCMC_Creature.TargetedPlayerCtrl+inZoneBattlefield
SVar:Z:Count$HighestCMC_Planeswalker.TargetedPlayerCtrl+inZoneBattlefield
SVar:DBExilePlay:DB$ Dig | Defined$ You | DigNum$ 3 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile the top three cards of your library. Until your next end step, you may play those cards.
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ STPlay | SubAbility$ DBCleanup | ForgetOnMoved$ Exile | Duration$ UntilYourNextEndStep
SVar:STPlay:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until your next end step, you may play those cards.
SVar:DBExileGrave:DB$ ChangeZoneAll | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Player | TgtPrompt$ Select target player | ChangeType$ Card | SpellDescription$ Exile target player's graveyard.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHas:Ability$Sacrifice
Oracle:Choose one —\n• Target opponent sacrifices a creature or planeswalker they control with the highest mana value among creatures and planeswalkers they control.\n• Exile the top three cards of your library. Until your next end step, you may play those cards.\n• Exile target player's graveyard.