mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18: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.
|
||||
if (!game.isGameOver()) {
|
||||
checkGameOverCondition();
|
||||
}
|
||||
checkGameOverCondition();
|
||||
|
||||
if (game.getAge() != GameStage.Play) {
|
||||
return false;
|
||||
@@ -1885,6 +1883,10 @@ public class GameAction {
|
||||
}
|
||||
|
||||
public void checkGameOverCondition() {
|
||||
if (game.isGameOver()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// award loses as SBE
|
||||
GameEndReason reason = 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 (cause.isCopiedTrait()) {
|
||||
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();
|
||||
}
|
||||
movedCard.setExiledWith(exilingSource);
|
||||
|
||||
@@ -237,17 +237,17 @@ public class Cost implements Serializable {
|
||||
CostPartMana parsedMana = null;
|
||||
for (String part : parts) {
|
||||
if (part.startsWith("XMin")) {
|
||||
xMin = (part);
|
||||
xMin = part;
|
||||
} else if ("Mandatory".equals(part)) {
|
||||
this.isMandatory = true;
|
||||
} else {
|
||||
CostPart cp = parseCostPart(part, tapCost, untapCost);
|
||||
if (null != cp)
|
||||
if (cp instanceof CostPartMana) {
|
||||
parsedMana = (CostPartMana) cp;
|
||||
if (cp instanceof CostPartMana p) {
|
||||
parsedMana = p;
|
||||
} else {
|
||||
if (cp instanceof CostPartWithList) {
|
||||
((CostPartWithList)cp).setIntrinsic(intrinsic);
|
||||
if (cp instanceof CostPartWithList p) {
|
||||
p.setIntrinsic(intrinsic);
|
||||
}
|
||||
this.costParts.add(cp);
|
||||
}
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
Name:Aladdin's Lamp
|
||||
ManaCost:10
|
||||
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.
|
||||
SVar:TheMagic:DB$ Effect | Name$ Aladdin's Wish | ReplacementEffects$ DrawReplace
|
||||
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: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:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
|
||||
SVar:X:Count$xPaid
|
||||
SVar:DigNum:Number$0
|
||||
AI:RemoveDeck:Random
|
||||
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.
|
||||
|
||||
@@ -2,10 +2,8 @@ Name:Droning Bureaucrats
|
||||
ManaCost:3 W
|
||||
Types:Creature Human Advisor
|
||||
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.
|
||||
SVar:CreateDroningEffect:DB$ Effect | StaticAbilities$ NoCombat
|
||||
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.
|
||||
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: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:X:Count$xPaid
|
||||
SVar:DroningX:Number$0
|
||||
AI:RemoveDeck:All
|
||||
Oracle:{X}, {T}: Each creature with mana value X can't attack or block this turn.
|
||||
|
||||
Reference in New Issue
Block a user