mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Fix Henzie + Gorex (#8829)
This commit is contained in:
@@ -1602,9 +1602,7 @@ public class GameAction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// recheck the game over condition at this point to make sure no other win conditions apply now.
|
// recheck the game over condition at this point to make sure no other win conditions apply now.
|
||||||
if (!game.isGameOver()) {
|
checkGameOverCondition();
|
||||||
checkGameOverCondition();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (game.getAge() != GameStage.Play) {
|
if (game.getAge() != GameStage.Play) {
|
||||||
return false;
|
return false;
|
||||||
@@ -1885,6 +1883,10 @@ public class GameAction {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void checkGameOverCondition() {
|
public void checkGameOverCondition() {
|
||||||
|
if (game.isGameOver()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// award loses as SBE
|
// award loses as SBE
|
||||||
GameEndReason reason = null;
|
GameEndReason reason = null;
|
||||||
List<Player> losers = null;
|
List<Player> losers = null;
|
||||||
|
|||||||
@@ -1069,7 +1069,7 @@ public abstract class SpellAbilityEffect {
|
|||||||
// if ability was granted use that source so they can be kept apart later
|
// if ability was granted use that source so they can be kept apart later
|
||||||
if (cause.isCopiedTrait()) {
|
if (cause.isCopiedTrait()) {
|
||||||
exilingSource = cause.getOriginalHost();
|
exilingSource = cause.getOriginalHost();
|
||||||
} else if (cause.getKeyword() != null && cause.getKeyword().getStatic() != null) {
|
} else if (!cause.isSpell() && cause.getKeyword() != null && cause.getKeyword().getStatic() != null) {
|
||||||
exilingSource = cause.getKeyword().getStatic().getOriginalHost();
|
exilingSource = cause.getKeyword().getStatic().getOriginalHost();
|
||||||
}
|
}
|
||||||
movedCard.setExiledWith(exilingSource);
|
movedCard.setExiledWith(exilingSource);
|
||||||
|
|||||||
@@ -237,17 +237,17 @@ public class Cost implements Serializable {
|
|||||||
CostPartMana parsedMana = null;
|
CostPartMana parsedMana = null;
|
||||||
for (String part : parts) {
|
for (String part : parts) {
|
||||||
if (part.startsWith("XMin")) {
|
if (part.startsWith("XMin")) {
|
||||||
xMin = (part);
|
xMin = part;
|
||||||
} else if ("Mandatory".equals(part)) {
|
} else if ("Mandatory".equals(part)) {
|
||||||
this.isMandatory = true;
|
this.isMandatory = true;
|
||||||
} else {
|
} else {
|
||||||
CostPart cp = parseCostPart(part, tapCost, untapCost);
|
CostPart cp = parseCostPart(part, tapCost, untapCost);
|
||||||
if (null != cp)
|
if (null != cp)
|
||||||
if (cp instanceof CostPartMana) {
|
if (cp instanceof CostPartMana p) {
|
||||||
parsedMana = (CostPartMana) cp;
|
parsedMana = p;
|
||||||
} else {
|
} else {
|
||||||
if (cp instanceof CostPartWithList) {
|
if (cp instanceof CostPartWithList p) {
|
||||||
((CostPartWithList)cp).setIntrinsic(intrinsic);
|
p.setIntrinsic(intrinsic);
|
||||||
}
|
}
|
||||||
this.costParts.add(cp);
|
this.costParts.add(cp);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,12 @@
|
|||||||
Name:Aladdin's Lamp
|
Name:Aladdin's Lamp
|
||||||
ManaCost:10
|
ManaCost:10
|
||||||
Types:Artifact
|
Types:Artifact
|
||||||
A:AB$ StoreSVar | Cost$ XMin1 X T | SVar$ DigNum | Type$ Count | Expression$ xPaid | SubAbility$ TheMagic | SpellDescription$ The next time you would draw a card this turn, instead look at the top X cards of your library, put all but one of them on the bottom of your library in a random order, then draw a card. X can't be 0.
|
A:AB$ Effect | Cost$ XMin1 X T | Name$ Aladdin's Wish | ReplacementEffects$ DrawReplace | SetChosenNumber$ X | SpellDescription$ The next time you would draw a card this turn, instead look at the top X cards of your library, put all but one of them on the bottom of your library in a random order, then draw a card. X can't be 0.
|
||||||
SVar:TheMagic:DB$ Effect | Name$ Aladdin's Wish | ReplacementEffects$ DrawReplace
|
|
||||||
SVar:DrawReplace:Event$ Draw | ValidPlayer$ You | ReplaceWith$ AladdinDraw | Description$ The next time you would draw a card this turn, instead look at the top X cards of your library, put all but one of them on the bottom of your library in a random order, then draw a card.
|
SVar:DrawReplace:Event$ Draw | ValidPlayer$ You | ReplaceWith$ AladdinDraw | Description$ The next time you would draw a card this turn, instead look at the top X cards of your library, put all but one of them on the bottom of your library in a random order, then draw a card.
|
||||||
SVar:AladdinDraw:DB$ Dig | DigNum$ DigNum | ChangeNum$ 1 | RestRandomOrder$ True | DestinationZone$ Library | LibraryPosition$ 0 | SubAbility$ DBDraw
|
SVar:AladdinDraw:DB$ Dig | DigNum$ Count$ChosenNumber | ChangeNum$ 1 | RestRandomOrder$ True | DestinationZone$ Library | LibraryPosition$ 0 | SubAbility$ DBDraw
|
||||||
SVar:DBDraw:DB$ Draw | SubAbility$ ExileEffect
|
SVar:DBDraw:DB$ Draw | SubAbility$ ExileEffect
|
||||||
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
|
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
|
||||||
SVar:X:Count$xPaid
|
SVar:X:Count$xPaid
|
||||||
SVar:DigNum:Number$0
|
|
||||||
AI:RemoveDeck:Random
|
AI:RemoveDeck:Random
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
Oracle:{X}, {T}: The next time you would draw a card this turn, instead look at the top X cards of your library, put all but one of them on the bottom of your library in a random order, then draw a card. X can't be 0.
|
Oracle:{X}, {T}: The next time you would draw a card this turn, instead look at the top X cards of your library, put all but one of them on the bottom of your library in a random order, then draw a card. X can't be 0.
|
||||||
|
|||||||
@@ -2,10 +2,8 @@ Name:Droning Bureaucrats
|
|||||||
ManaCost:3 W
|
ManaCost:3 W
|
||||||
Types:Creature Human Advisor
|
Types:Creature Human Advisor
|
||||||
PT:1/4
|
PT:1/4
|
||||||
A:AB$ StoreSVar | Cost$ X T | SVar$ DroningX | Type$ Count | Expression$ xPaid | SubAbility$ CreateDroningEffect | SpellDescription$ Each creature with mana value X can't attack or block this turn.
|
A:AB$ Effect | Cost$ X T | StaticAbilities$ NoCombat | SetChosenNumber$ X | SpellDescription$ Each creature with mana value X can't attack or block this turn.
|
||||||
SVar:CreateDroningEffect:DB$ Effect | StaticAbilities$ NoCombat
|
SVar:NoCombat:Mode$ Continuous | Affected$ Creature.cmcChosen | AddHiddenKeyword$ CARDNAME can't attack or block. | Description$ Each creature with mana value X can't attack or block this turn.
|
||||||
SVar:NoCombat:Mode$ Continuous | Affected$ Creature.cmcEQDroningX | AddHiddenKeyword$ CARDNAME can't attack or block. | Description$ Each creature with mana value X can't attack or block this turn.
|
|
||||||
SVar:X:Count$xPaid
|
SVar:X:Count$xPaid
|
||||||
SVar:DroningX:Number$0
|
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
Oracle:{X}, {T}: Each creature with mana value X can't attack or block this turn.
|
Oracle:{X}, {T}: Each creature with mana value X can't attack or block this turn.
|
||||||
|
|||||||
Reference in New Issue
Block a user