mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
- Converted all the mighty Honden Shrines to script.
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
Name:Honden of Cleansing Fire
|
||||
ManaCost:3 W
|
||||
Types:Legendary Enchantment Shrine
|
||||
Text:At the beginning of your upkeep, you gain 2 life for each Shrine you control.
|
||||
Text:no text
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigGainLife | TriggerDescription$ At the beginning of your upkeep, you gain 2 life for each Shrine you control.
|
||||
SVar:TrigGainLife:AB$GainLife | Cost$ 0 | Defined$ You | LifeAmount$ X
|
||||
SVar:X:Count$TypeYouCtrl.Shrine/Times.2
|
||||
SVar:Rarity:Uncommon
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_cleansing_fire.jpg
|
||||
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/14.jpg
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
Name:Honden of Infinite Rage
|
||||
ManaCost:2 R
|
||||
Types:Legendary Enchantment Shrine
|
||||
Text:At the beginning of your upkeep, Honden of Infinite Rage deals damage to target creature or player equal to the number of Shrines you control.
|
||||
Text:no text
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ At the beginning of your upkeep, Honden of Infinite Rage deals damage to target creature or player equal to the number of Shrines you control.
|
||||
SVar:TrigDamage:AB$DealDamage | Cost$ 0 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ X
|
||||
SVar:X:Count$TypeYouCtrl.Shrine
|
||||
SVar:Rarity:Uncommon
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_infinite_rage.jpg
|
||||
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/172.jpg
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
Name:Honden of Life's Web
|
||||
ManaCost:4 G
|
||||
Types:Legendary Enchantment Shrine
|
||||
Text:At the beginning of your upkeep, put a 1/1 colorless Spirit creature token onto the battlefield for each Shrine you control.
|
||||
Text:no text
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of your upkeep, put a 1/1 colorless Spirit creature token onto the battlefield for each Shrine you control.
|
||||
SVar:TrigToken:AB$Token | Cost$ 0 | TokenAmount$ X | TokenName$ Spirit | TokenTypes$ Creature,Spirit | TokenOwner$ Controller | TokenColors$ Colorless | TokenPower$ 1 | TokenToughness$ 1
|
||||
SVar:X:Count$TypeYouCtrl.Shrine
|
||||
SVar:Rarity:Uncommon
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_lifes_web.jpg
|
||||
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/213.jpg
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
Name:Honden of Night's Reach
|
||||
ManaCost:3 B
|
||||
Types:Legendary Enchantment Shrine
|
||||
Text:At the beginning of your upkeep, target opponent discards a card for each Shrine you control.
|
||||
Text:no text
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDiscard | TriggerDescription$ At the beginning of your upkeep, target opponent discards a card for each Shrine you control.
|
||||
SVar:TrigDiscard:AB$Discard | Cost$ 0 | Defined$ Opponent | NumCards$ X | Mode$ TgtChoose
|
||||
SVar:X:Count$TypeYouCtrl.Shrine
|
||||
SVar:Rarity:Uncommon
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_nights_reach.jpg
|
||||
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/116.jpg
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
Name:Honden of Seeing Winds
|
||||
ManaCost:4 U
|
||||
Types:Legendary Enchantment Shrine
|
||||
Text:At the beginning of your upkeep, draw a card for each Shrine you control.
|
||||
Text:no text
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ At the beginning of your upkeep, draw a card for each Shrine you control.
|
||||
SVar:TrigDraw:AB$Draw | Cost$ 0 | Defined$ You | NumCards$ X
|
||||
SVar:X:Count$TypeYouCtrl.Shrine
|
||||
SVar:Rarity:Uncommon
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_seeing_winds.jpg
|
||||
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/69.jpg
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
<int>0</int>
|
||||
<int>485</int>
|
||||
<int>447</int>
|
||||
<int>145</int>
|
||||
<int>290</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
@@ -119,7 +119,7 @@
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>630</int>
|
||||
<int>775</int>
|
||||
<int>447</int>
|
||||
<int>5</int>
|
||||
</object>
|
||||
@@ -134,9 +134,9 @@
|
||||
<void property="bounds">
|
||||
<object class="java.awt.Rectangle">
|
||||
<int>0</int>
|
||||
<int>635</int>
|
||||
<int>780</int>
|
||||
<int>447</int>
|
||||
<int>192</int>
|
||||
<int>47</int>
|
||||
</object>
|
||||
</void>
|
||||
<void property="name">
|
||||
|
||||
@@ -43,11 +43,6 @@ public class GameActionUtil {
|
||||
upkeep_Master_of_the_Wild_Hunt();
|
||||
upkeep_Carnophage();
|
||||
upkeep_Sangrophage();
|
||||
upkeep_Honden_of_Cleansing_Fire();
|
||||
upkeep_Honden_of_Seeing_Winds();
|
||||
upkeep_Honden_of_Lifes_Web();
|
||||
upkeep_Honden_of_Nights_Reach();
|
||||
upkeep_Honden_of_Infinite_Rage();
|
||||
upkeep_Dega_Sanctuary();
|
||||
upkeep_Sheltered_Valley();
|
||||
upkeep_Living_Artifact();
|
||||
@@ -9175,202 +9170,7 @@ public class GameActionUtil {
|
||||
}
|
||||
}// upkeep_Master_of_the_Wild_Hunt
|
||||
|
||||
private static void upkeep_Honden_of_Seeing_Winds() {
|
||||
final Player player = AllZone.Phase.getPlayerTurn();
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, player);
|
||||
|
||||
CardList list = new CardList();
|
||||
list.addAll(play.getCards());
|
||||
|
||||
list = list.getName("Honden of Seeing Winds");
|
||||
|
||||
for(int i = 0; i < list.size(); i++) {
|
||||
PlayerZone Play = AllZone.getZone(Constant.Zone.Battlefield, player);
|
||||
CardList hondlist = new CardList();
|
||||
hondlist.addAll(Play.getCards());
|
||||
hondlist = hondlist.getType("Shrine");
|
||||
player.drawCards(hondlist.size());
|
||||
}
|
||||
|
||||
}// upkeep_Honden_of_Seeing_Winds
|
||||
|
||||
private static void upkeep_Honden_of_Cleansing_Fire() {
|
||||
final Player player = AllZone.Phase.getPlayerTurn();
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, player);
|
||||
|
||||
CardList list = new CardList();
|
||||
list.addAll(play.getCards());
|
||||
|
||||
list = list.getName("Honden of Cleansing Fire");
|
||||
|
||||
for(int i = 0; i < list.size(); i++) {
|
||||
final Card source = list.get(i);
|
||||
final Ability ability = new Ability(source, "0") {
|
||||
@Override
|
||||
public void resolve() {
|
||||
PlayerZone Play = AllZone.getZone(Constant.Zone.Battlefield, player);
|
||||
CardList hondlist = new CardList();
|
||||
hondlist.addAll(Play.getCards());
|
||||
hondlist = hondlist.getType("Shrine");
|
||||
player.gainLife(2*hondlist.size(), source);
|
||||
}
|
||||
};// ability
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(source).append(" - ").append(source.getController());
|
||||
sb.append(" gains 2 life for each Shrine he controls.");
|
||||
ability.setStackDescription(sb.toString());
|
||||
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
}// upkeep_Honden_of_Cleansing_Fire
|
||||
|
||||
private static void upkeep_Honden_of_Nights_Reach() {
|
||||
final Player player = AllZone.Phase.getPlayerTurn();
|
||||
final Player opponent = player.getOpponent();
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, player);
|
||||
|
||||
CardList list = new CardList();
|
||||
list.addAll(play.getCards());
|
||||
|
||||
list = list.getName("Honden of Night's Reach");
|
||||
|
||||
for(int i = 0; i < list.size(); i++) {
|
||||
final Ability ability = new Ability(list.get(i), "0") {
|
||||
@Override
|
||||
public void resolve() {
|
||||
CardList shrineList = AllZoneUtil.getPlayerTypeInPlay(player, "Shrine");
|
||||
opponent.discard(shrineList.size(), this, false);
|
||||
}
|
||||
};// ability
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(list.get(i)).append(" - ").append(list.get(i).getController().getOpponent());
|
||||
sb.append(" discards a card for each Shrine ").append(list.get(i).getController()).append(" controls.");
|
||||
ability.setStackDescription(sb.toString());
|
||||
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
}
|
||||
|
||||
// upkeep_Honden_of_Nights_Reach()
|
||||
|
||||
private static void upkeep_Honden_of_Infinite_Rage() {
|
||||
final Player controller = AllZone.Phase.getPlayerTurn();
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, controller);
|
||||
|
||||
CardList list = new CardList();
|
||||
list.addAll(play.getCards());
|
||||
|
||||
list = list.getName("Honden of Infinite Rage");
|
||||
PlayerZone Play = AllZone.getZone(Constant.Zone.Battlefield, controller);
|
||||
CardList hondlist = new CardList();
|
||||
hondlist.addAll(Play.getCards());
|
||||
hondlist = hondlist.getType("Shrine");
|
||||
for(int i = 0; i < list.size(); i++) {
|
||||
|
||||
final Card card = list.get(i);
|
||||
final Ability ability = new Ability(list.get(i), "0") {
|
||||
|
||||
|
||||
@Override
|
||||
public void resolve() {
|
||||
PlayerZone Play = AllZone.getZone(Constant.Zone.Battlefield, controller);
|
||||
CardList hondlist = new CardList();
|
||||
hondlist.addAll(Play.getCards());
|
||||
hondlist = hondlist.getType("Shrine");
|
||||
if(controller.equals(AllZone.HumanPlayer)) {
|
||||
Player opp = controller.getOpponent();
|
||||
PlayerZone oppPlay = AllZone.getZone(Constant.Zone.Battlefield, opp);
|
||||
|
||||
String[] choices = {"Yes", "No, target a creature instead"};
|
||||
|
||||
Object q = GuiUtils.getChoiceOptional("Select computer as target?", choices);
|
||||
if(q != null && q.equals("Yes")) {
|
||||
AllZone.ComputerPlayer.addDamage(hondlist.size(), card);
|
||||
}
|
||||
else {
|
||||
CardList cards = new CardList(oppPlay.getCards());
|
||||
CardList oppCreatures = new CardList();
|
||||
for(int i = 0; i < cards.size(); i++) {
|
||||
if(cards.get(i).isPlaneswalker() || cards.get(i).isCreature()) {
|
||||
oppCreatures.add(cards.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
if(oppCreatures.size() > 0) {
|
||||
|
||||
Object o = GuiUtils.getChoiceOptional("Pick target creature",
|
||||
oppCreatures.toArray());
|
||||
Card c = (Card) o;
|
||||
c.addDamage(hondlist.size(), card);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
Card targetc = null;
|
||||
CardList flying = CardFactoryUtil.AI_getHumanCreature("Flying", card, true);
|
||||
if(AllZone.HumanPlayer.getLife() > hondlist.size() * 2) {
|
||||
for(int i = 0; i < flying.size(); i++) {
|
||||
if(flying.get(i).getNetDefense() <= hondlist.size()) {
|
||||
targetc = flying.get(i);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if(targetc != null) {
|
||||
if(AllZone.GameAction.isCardInPlay(targetc)) targetc.addDamage(hondlist.size(), card);
|
||||
} else {
|
||||
AllZone.HumanPlayer.addDamage(hondlist.size(), card);
|
||||
}
|
||||
}
|
||||
}//resolve()
|
||||
};//SpellAbility
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(list.get(i)).append(" - Deals ").append(hondlist.size());
|
||||
sb.append(" damage to target creature or player");
|
||||
ability.setStackDescription(sb.toString());
|
||||
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
}// upkeep_Honden_of_Infinite_Rage
|
||||
|
||||
|
||||
private static void upkeep_Honden_of_Lifes_Web() {
|
||||
final Player player = AllZone.Phase.getPlayerTurn();
|
||||
PlayerZone play = AllZone.getZone(Constant.Zone.Battlefield, player);
|
||||
|
||||
CardList list = new CardList();
|
||||
list.addAll(play.getCards());
|
||||
|
||||
list = list.getName("Honden of Life's Web");
|
||||
|
||||
for(int i = 0; i < list.size(); i++) {
|
||||
final Card crd = list.get(i);
|
||||
final Ability ability = new Ability(list.get(i), "0") {
|
||||
@Override
|
||||
public void resolve() {
|
||||
PlayerZone Play = AllZone.getZone(Constant.Zone.Battlefield, player);
|
||||
CardList hondlist = new CardList();
|
||||
hondlist.addAll(Play.getCards());
|
||||
hondlist = hondlist.getType("Shrine");
|
||||
for(int j = 0; j < hondlist.size(); j++) {
|
||||
CardFactoryUtil.makeToken("Spirit", "C 1 1 Spirit", crd.getController(), "", new String[] {
|
||||
"Creature", "Spirit"}, 1, 1, new String[] {""});
|
||||
}
|
||||
}
|
||||
};// Ability
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(list.get(i)).append(" - ").append(list.get(i).getController());
|
||||
sb.append(" puts a 1/1 colorless Spirit creature token onto the battlefield for each Shrine he controls.");
|
||||
ability.setStackDescription(sb.toString());
|
||||
|
||||
AllZone.Stack.add(ability);
|
||||
}
|
||||
}// upkeep_Honden_of_Lifes_Web
|
||||
|
||||
private static void upkeep_Seizan_Perverter_of_Truth() {
|
||||
final Player player = AllZone.Phase.getPlayerTurn();
|
||||
|
||||
Reference in New Issue
Block a user