mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
- Converted the following card abilities to Keyword for possible use with other cards: Platinum Angel, Abyssal Persecutor, Ali From Cairo (and friends), Lich
- Added Angel's Grace using newly converted keywords and AF_Effect
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -225,6 +225,7 @@ res/cardsfolder/angelic_shield.txt svneol=native#text/plain
|
|||||||
res/cardsfolder/angelic_voices.txt -text svneol=native#text/plain
|
res/cardsfolder/angelic_voices.txt -text svneol=native#text/plain
|
||||||
res/cardsfolder/angelic_wall.txt -text svneol=native#text/plain
|
res/cardsfolder/angelic_wall.txt -text svneol=native#text/plain
|
||||||
res/cardsfolder/angels_feather.txt -text svneol=native#text/plain
|
res/cardsfolder/angels_feather.txt -text svneol=native#text/plain
|
||||||
|
res/cardsfolder/angels_grace.txt -text svneol=native#text/plain
|
||||||
res/cardsfolder/angels_mercy.txt -text svneol=native#text/plain
|
res/cardsfolder/angels_mercy.txt -text svneol=native#text/plain
|
||||||
res/cardsfolder/angelsong.txt -text svneol=native#text/plain
|
res/cardsfolder/angelsong.txt -text svneol=native#text/plain
|
||||||
res/cardsfolder/anger.txt -text svneol=native#text/plain
|
res/cardsfolder/anger.txt -text svneol=native#text/plain
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
Name:Abyssal Persecutor
|
Name:Abyssal Persecutor
|
||||||
ManaCost:2 B B
|
ManaCost:2 B B
|
||||||
Types:Creature Demon
|
Types:Creature Demon
|
||||||
Text:You can't win the game and your opponents can't lose the game.
|
Text:no text
|
||||||
PT:6/6
|
PT:6/6
|
||||||
K:Flying
|
K:Flying
|
||||||
K:Trample
|
K:Trample
|
||||||
|
K:You can't win the game.
|
||||||
|
K:Your opponents can't lose the game.
|
||||||
SVar:RemAIDeck:True
|
SVar:RemAIDeck:True
|
||||||
SVar:Rarity:Mythic
|
SVar:Rarity:Mythic
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/abyssal_persecutor.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/abyssal_persecutor.jpg
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
Name:Ali from Cairo
|
Name:Ali from Cairo
|
||||||
ManaCost:2 R R
|
ManaCost:2 R R
|
||||||
Types:Creature Human
|
Types:Creature Human
|
||||||
Text:Damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
Text:no text
|
||||||
PT:0/1
|
PT:0/1
|
||||||
|
K:Damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
||||||
SVar:Rarity:Uncommon
|
SVar:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/ali_from_cairo.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/ali_from_cairo.jpg
|
||||||
SetInfo:ARN|Uncommon|http://magiccards.info/scans/en/an/44.jpg
|
SetInfo:ARN|Uncommon|http://magiccards.info/scans/en/an/44.jpg
|
||||||
|
|||||||
13
res/cardsfolder/angels_grace.txt
Normal file
13
res/cardsfolder/angels_grace.txt
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
Name:Angel's Grace
|
||||||
|
ManaCost:W
|
||||||
|
Types:Instant
|
||||||
|
Text:no text
|
||||||
|
K:Split second
|
||||||
|
A:SP$ Effect | Cost$ W | Name$ Angel's Grace Effect | Keywords$ CantLose,OppsCantWin,AliFromCairo | SpellDescription$ You can't lose the game this turn and your opponents can't win the game this turn. Until end of turn, damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
||||||
|
SVar:CantLose:You can't lose the game.
|
||||||
|
SVar:OppsCantWin:Your opponents can't win the game.
|
||||||
|
SVar:AliFromCairo:Damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
||||||
|
SVar:RemAIDeck:True
|
||||||
|
SVar:Rarity:Rare
|
||||||
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/angels_grace.jpg
|
||||||
|
End
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
Name:Fortune Thief
|
Name:Fortune Thief
|
||||||
ManaCost:4 R
|
ManaCost:4 R
|
||||||
Types:Creature Human Rogue
|
Types:Creature Human Rogue
|
||||||
Text:Damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
Text:no text
|
||||||
PT:0/1
|
PT:0/1
|
||||||
K:Morph:R R
|
K:Morph:R R
|
||||||
|
K:Damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/fortune_thief.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/fortune_thief.jpg
|
||||||
SetInfo:TSP|Rare|http://magiccards.info/scans/en/ts/156.jpg
|
SetInfo:TSP|Rare|http://magiccards.info/scans/en/ts/156.jpg
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ Name:Lich
|
|||||||
ManaCost:B B B B
|
ManaCost:B B B B
|
||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
Text:As CARDNAME enters the battlefield, you lose life equal to your life total.\r\nYou don't lose the game for having 0 or less life.\r\nIf you would gain life, draw that many cards instead.\r\nWhenever you're dealt damage, sacrifice that many nontoken permanents. If you can't, you lose the game.\r\nWhen CARDNAME is put into a graveyard from the battlefield, you lose the game.
|
Text:As CARDNAME enters the battlefield, you lose life equal to your life total.\r\nYou don't lose the game for having 0 or less life.\r\nIf you would gain life, draw that many cards instead.\r\nWhenever you're dealt damage, sacrifice that many nontoken permanents. If you can't, you lose the game.\r\nWhen CARDNAME is put into a graveyard from the battlefield, you lose the game.
|
||||||
|
K:You don't lose the game for having 0 or less life.
|
||||||
SVar:RemRandomDeck:True
|
SVar:RemRandomDeck:True
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/lich.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/lich.jpg
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
Name:Platinum Angel
|
Name:Platinum Angel
|
||||||
ManaCost:7
|
ManaCost:7
|
||||||
Types:Artifact Creature Angel
|
Types:Artifact Creature Angel
|
||||||
Text:You can't lose the game and your opponents can't win the game.
|
Text:no text
|
||||||
PT:4/4
|
PT:4/4
|
||||||
K:Flying
|
K:Flying
|
||||||
|
K:You can't lose the game.
|
||||||
|
K:Your opponents can't win the game.
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/platinum_angel.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/platinum_angel.jpg
|
||||||
SetInfo:M11|Mythic|http://magiccards.info/scans/en/m11/212.jpg
|
SetInfo:M11|Mythic|http://magiccards.info/scans/en/m11/212.jpg
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
Name:Sustaining Spirit
|
Name:Sustaining Spirit
|
||||||
ManaCost:1 W
|
ManaCost:1 W
|
||||||
Types:Creature Angel Spirit
|
Types:Creature Angel Spirit
|
||||||
Text:Damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
Text:no text
|
||||||
PT:0/3
|
PT:0/3
|
||||||
K:Cumulative upkeep:1 W
|
K:Cumulative upkeep:1 W
|
||||||
|
K:Damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/sustaining_spirit.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/sustaining_spirit.jpg
|
||||||
SetInfo:ALL|Rare|http://magiccards.info/scans/en/ai/151.jpg
|
SetInfo:ALL|Rare|http://magiccards.info/scans/en/ai/151.jpg
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
Name:Worship
|
Name:Worship
|
||||||
ManaCost:3 W
|
ManaCost:3 W
|
||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
Text:If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
Text:no text
|
||||||
|
K:stPumpSelf:Permanent:0/0/Damage that would reduce your life total to less than 1 reduces it to 1 instead.:isPresent Creature.YouCtrl:If you control a creature, damage that would reduce your life total to less than 1 reduces it to 1 instead.
|
||||||
SVar:Rarity:Rare
|
SVar:Rarity:Rare
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/worship.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/worship.jpg
|
||||||
SetInfo:8ED|Rare|http://magiccards.info/scans/en/8e/57.jpg
|
SetInfo:8ED|Rare|http://magiccards.info/scans/en/8e/57.jpg
|
||||||
|
|||||||
@@ -905,23 +905,36 @@ public abstract class Player extends MyObservable{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean cantLose(){
|
public boolean cantLose(){
|
||||||
if ((AllZoneUtil.getPlayerCardsInPlay(this, "Platinum Angel").size() > 0) ||
|
CardList list = AllZoneUtil.getPlayerCardsInPlay(this);
|
||||||
(AllZoneUtil.getPlayerCardsInPlay(getOpponent(), "Abyssal Persecutor").size() > 0)){
|
list = list.getKeyword("You can't lose the game.");
|
||||||
|
|
||||||
|
if (list.size() > 0)
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
return false;
|
CardList oppList = AllZoneUtil.getPlayerCardsInPlay(getOpponent());
|
||||||
|
oppList = oppList.getKeyword("Your opponents can't win the game.");
|
||||||
|
|
||||||
|
return oppList.size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean cantLoseForZeroOrLessLife() {
|
public boolean cantLoseForZeroOrLessLife() {
|
||||||
return AllZoneUtil.isCardInPlay("Lich", this);
|
CardList list = AllZoneUtil.getPlayerCardsInPlay(this);
|
||||||
|
list = list.getKeyword("You don't lose the game for having 0 or less life.");
|
||||||
|
|
||||||
|
return list.size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean cantWin(){
|
public boolean cantWin(){
|
||||||
if ((AllZoneUtil.getPlayerCardsInPlay(getOpponent(), "Platinum Angel").size() > 0) ||
|
CardList list = AllZoneUtil.getPlayerCardsInPlay(getOpponent());
|
||||||
(AllZoneUtil.getPlayerCardsInPlay(this, "Abyssal Persecutor").size() > 0)){
|
list = list.getKeyword("You can't win the game.");
|
||||||
|
|
||||||
|
if (list.size() > 0)
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
return false;
|
CardList oppList = AllZoneUtil.getPlayerCardsInPlay(this);
|
||||||
|
oppList = oppList.getKeyword("Your opponents can't lose the game.");
|
||||||
|
|
||||||
|
return oppList.size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasLost(){
|
public boolean hasLost(){
|
||||||
|
|||||||
@@ -4,14 +4,15 @@ package forge;
|
|||||||
|
|
||||||
public class PlayerUtil {
|
public class PlayerUtil {
|
||||||
public static boolean worshipFlag(Player player) {
|
public static boolean worshipFlag(Player player) {
|
||||||
if( AllZoneUtil.isCardInPlay("Ali from Cairo", player)
|
// Instead of hardcoded Ali from Cairo like cards, it is now a Keyword
|
||||||
|| (AllZoneUtil.isCardInPlay("Worship", player) && AllZoneUtil.getCreaturesInPlay(player).size() > 0)
|
CardList list = AllZoneUtil.getPlayerCardsInPlay(player);
|
||||||
|| AllZoneUtil.isCardInPlay("Fortune Thief", player)
|
list = list.getKeyword("Damage that would reduce your life total to less than 1 reduces it to 1 instead.");
|
||||||
|| AllZoneUtil.isCardInPlay("Sustaining Spirit", player)) {
|
list = list.filter(new CardListFilter() {
|
||||||
return true;
|
public boolean addCard(Card c) {
|
||||||
}
|
return !c.isFaceDown();
|
||||||
else {
|
}
|
||||||
return false;
|
});
|
||||||
}
|
|
||||||
|
return list.size() > 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -112,6 +112,11 @@ public class AbilityFactory_Effect {
|
|||||||
public static String effectStackDescription(AbilityFactory af, SpellAbility sa){
|
public static String effectStackDescription(AbilityFactory af, SpellAbility sa){
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
if (sa instanceof Ability_Sub)
|
||||||
|
sb.append(" ");
|
||||||
|
else
|
||||||
|
sb.append(sa.getSourceCard().getName()).append(" - ");
|
||||||
|
|
||||||
sb.append(sa.getDescription());
|
sb.append(sa.getDescription());
|
||||||
|
|
||||||
Ability_Sub abSub = sa.getSubAbility();
|
Ability_Sub abSub = sa.getSubAbility();
|
||||||
@@ -186,6 +191,7 @@ public class AbilityFactory_Effect {
|
|||||||
eff.setController(controller);
|
eff.setController(controller);
|
||||||
eff.setOwner(controller);
|
eff.setOwner(controller);
|
||||||
eff.setImageName(card.getImageName());
|
eff.setImageName(card.getImageName());
|
||||||
|
eff.setColor(card.getColor());
|
||||||
|
|
||||||
// Effects should be Orange or something probably
|
// Effects should be Orange or something probably
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user