diff --git a/.gitattributes b/.gitattributes index bce8517866b..6b3f3a0ef32 100644 --- a/.gitattributes +++ b/.gitattributes @@ -4505,6 +4505,7 @@ forge-gui/res/cardsfolder/d/dominarias_judgment.txt svneol=native#text/plain forge-gui/res/cardsfolder/d/dominate.txt svneol=native#text/plain forge-gui/res/cardsfolder/d/dominating_licid.txt -text forge-gui/res/cardsfolder/d/domineer.txt svneol=native#text/plain +forge-gui/res/cardsfolder/d/domineering_will.txt -text forge-gui/res/cardsfolder/d/dominus_of_fealty.txt svneol=native#text/plain forge-gui/res/cardsfolder/d/domri_rade.txt -text forge-gui/res/cardsfolder/d/donate.txt svneol=native#text/plain @@ -7334,6 +7335,7 @@ forge-gui/res/cardsfolder/i/infernal_genesis.txt svneol=native#text/plain forge-gui/res/cardsfolder/i/infernal_harvest.txt -text forge-gui/res/cardsfolder/i/infernal_kirin.txt svneol=native#text/plain forge-gui/res/cardsfolder/i/infernal_medusa.txt svneol=native#text/plain +forge-gui/res/cardsfolder/i/infernal_offering.txt -text forge-gui/res/cardsfolder/i/infernal_plunge.txt -text forge-gui/res/cardsfolder/i/infernal_tribute.txt svneol=native#text/plain forge-gui/res/cardsfolder/i/infernal_tutor.txt -text diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index f201a82356b..0b0d032cdfd 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -1049,14 +1049,14 @@ public class AbilityUtils { } else if (defined.equals("ChosenPlayer")) { final Player p = card.getChosenPlayer(); - if (!players.contains(p)) { + if (p != null && !players.contains(p)) { players.add(p); } } else if (defined.equals("ChosenAndYou")) { players.add(sa.getActivatingPlayer()); final Player p = card.getChosenPlayer(); - if (!players.contains(p)) { + if (p != null && !players.contains(p)) { players.add(p); } } diff --git a/forge-gui/res/cardsfolder/d/domineering_will.txt b/forge-gui/res/cardsfolder/d/domineering_will.txt new file mode 100644 index 00000000000..a0663ffff2e --- /dev/null +++ b/forge-gui/res/cardsfolder/d/domineering_will.txt @@ -0,0 +1,8 @@ +Name:Domineering Will +ManaCost:3 U +Types:Instant +A:SP$ Pump | Cost$ 3 U | ValidTgts$ Player | StackDescription$ None | SubAbility$ DBGainControl | SpellDescription$ Target player gains control of up to three target nonattacking creatures until end of turn. Untap those creatures. They block this turn if able. +SVar:DBGainControl:DB$ GainControl | ValidTgts$ Creature.notattacking | TgtPrompt$ Select target nonattacking creature | AddKWs$ HIDDEN CARDNAME blocks each turn if able. | LoseControl$ EOT | TargetMin$ 0 | TargetMax$ 3 | NewController$ ParentTarget | Untap$ True +SVar:RemAIDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/domineering_will.jpg +Oracle:Target player gains control of up to three target nonattacking creatures until end of turn. Untap those creatures. They block this turn if able. diff --git a/forge-gui/res/cardsfolder/i/infernal_offering.txt b/forge-gui/res/cardsfolder/i/infernal_offering.txt new file mode 100644 index 00000000000..0a2956b4297 --- /dev/null +++ b/forge-gui/res/cardsfolder/i/infernal_offering.txt @@ -0,0 +1,16 @@ +Name:Infernal Offering +ManaCost:4 B +Types:Sorcery +A:SP$ ChoosePlayer | Cost$ 4 B | Defined$ You | Choices$ Player.Opponent | SubAbility$ DBSac | SpellDescription$ Choose an opponent. You and that player each sacrifice a creature. Each player who sacrificed a creature this way draws two cards. Choose an opponent. Return a creature card from your graveyard to the battlefield, then that player returns a creature card from his or her graveyard to the battlefield. +SVar:DBSac:DB$ Sacrifice | Defined$ ChosenAndYou | SacValid$ Creature | RememberSacrificed$ True | SubAbility$ DBRepeat +SVar:DBRepeat:DB$ RepeatEach | RepeatPlayers$ ChosenAndYou | RepeatSubAbility$ DBDraw | SubAbility$ DBChoose +SVar:DBDraw:DB$ Draw | Defined$ Player.IsRemembered | NumCards$ 2 | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | References$ X +SVar:X:RememberedLKI$Valid Creature.RememberedPlayerCtrl +SVar:DBChoose:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | SubAbility$ DBReturnYou +SVar:DBReturnYou:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature.YouCtrl | ChangeNum$ 1 | Hidden$ True | SubAbility$ DBReturnOpp +SVar:DBReturnOpp:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | ChangeType$ Creature.ChosenCtrl | DefinedPlayer$ ChosenPlayer | Chooser$ ChosenPlayer | ChangeNum$ 1 | Hidden$ True | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:RemAIDeck:True +SVar:RemRandomDeck:True +SVar:Picture:http://www.wizards.com/global/images/magic/general/infernal_offering.jpg +Oracle:Choose an opponent. You and that player each sacrifice a creature. Each player who sacrificed a creature this way draws two cards.\nChoose an opponent. Return a creature card from your graveyard to the battlefield, then that player returns a creature card from his or her graveyard to the battlefield.