From 37ebb5731d72a05f9e225a53aadee1bbf3b984e2 Mon Sep 17 00:00:00 2001 From: Agetian Date: Wed, 13 Sep 2017 16:35:11 +0000 Subject: [PATCH] - Added Ydwen Efreet. - Forge is now at 100 unsupported cards total. --- .gitattributes | 1 + .../effects/RemoveFromCombatEffect.java | 19 +++++++++++++++++++ forge-gui/res/cardsfolder/y/ydwen_efreet.txt | 10 ++++++++++ 3 files changed, 30 insertions(+) create mode 100644 forge-gui/res/cardsfolder/y/ydwen_efreet.txt diff --git a/.gitattributes b/.gitattributes index 5133f73b7a5..1c93b32ff09 100644 --- a/.gitattributes +++ b/.gitattributes @@ -18495,6 +18495,7 @@ forge-gui/res/cardsfolder/y/yawgmoths_bargain.txt svneol=native#text/plain forge-gui/res/cardsfolder/y/yawgmoths_edict.txt svneol=native#text/plain forge-gui/res/cardsfolder/y/yawgmoths_will.txt -text forge-gui/res/cardsfolder/y/yawning_fissure.txt svneol=native#text/plain +forge-gui/res/cardsfolder/y/ydwen_efreet.txt -text forge-gui/res/cardsfolder/y/yellow_scarves_cavalry.txt svneol=native#text/plain forge-gui/res/cardsfolder/y/yellow_scarves_general.txt svneol=native#text/plain forge-gui/res/cardsfolder/y/yellow_scarves_troops.txt svneol=native#text/plain diff --git a/forge-game/src/main/java/forge/game/ability/effects/RemoveFromCombatEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RemoveFromCombatEffect.java index b0e97e673a3..d4a18151893 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RemoveFromCombatEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RemoveFromCombatEffect.java @@ -3,6 +3,7 @@ package forge.game.ability.effects; import forge.game.Game; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; +import forge.game.card.CardCollection; import forge.game.combat.Combat; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -36,7 +37,25 @@ public class RemoveFromCombatEffect extends SpellAbilityEffect { for (final Card c : getTargetCards(sa)) { final Combat combat = game.getPhaseHandler().getCombat(); if (combat != null && (tgt == null || c.canBeTargetedBy(sa))) { + // Unblock creatures that were blocked only by this card (e.g. Ydwen Efreet) + if (sa.hasParam("UnblockCreaturesBlockedOnlyBySelf")) { + CardCollection blockedBySelf = combat.getAttackersBlockedBy(sa.getHostCard()); + for (Card atk : blockedBySelf) { + boolean blockedOnlyBySelf = true; + for (Card blocker : combat.getBlockers(atk)) { + if (!blocker.equals(sa.getHostCard())) { + blockedOnlyBySelf = false; + break; + } + } + if (blockedOnlyBySelf) { + combat.setBlocked(atk, false); + } + } + } + combat.removeFromCombat(c); + if (rem) { sa.getHostCard().addRemembered(c); } diff --git a/forge-gui/res/cardsfolder/y/ydwen_efreet.txt b/forge-gui/res/cardsfolder/y/ydwen_efreet.txt new file mode 100644 index 00000000000..95c1d022aa4 --- /dev/null +++ b/forge-gui/res/cardsfolder/y/ydwen_efreet.txt @@ -0,0 +1,10 @@ +Name:Ydwen Efreet +ManaCost:R R R +Types:Creature Efreet +PT:3/6 +T:Mode$ Blocks | ValidCard$ Card.Self | Execute$ FlipCoin | TriggerDescription$ Whenever CARDNAME blocks, flip a coin. If you lose the flip, remove CARDNAME from combat and it can't block this turn. Creatures it was blocking that had become blocked by only CARDNAME this combat become unblocked. +SVar:FlipCoin:DB$ FlipACoin | LoseSubAbility$ DBRemoveFromCombat +SVar:DBRemoveFromCombat:DB$ RemoveFromCombat | Defined$ Self | UnblockCreaturesBlockedOnlyBySelf$ True | SubAbility$ DBCantBlock +SVar:DBCantBlock:DB$ Pump | Defined$ Self | KW$ HIDDEN CARDNAME can't block. +SVar:Picture:http://www.wizards.com/global/images/magic/general/ydwen_efreet.jpg +Oracle:Whenever Ydwen Efreet blocks, flip a coin. If you lose the flip, remove Ydwen Efreet from combat and it can't block this turn. Creatures it was blocking that had become blocked by only Ydwen Efreet this combat become unblocked.