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
|
Name:Honden of Cleansing Fire
|
||||||
ManaCost:3 W
|
ManaCost:3 W
|
||||||
Types:Legendary Enchantment Shrine
|
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:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_cleansing_fire.jpg
|
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
|
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/14.jpg
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
Name:Honden of Infinite Rage
|
Name:Honden of Infinite Rage
|
||||||
ManaCost:2 R
|
ManaCost:2 R
|
||||||
Types:Legendary Enchantment Shrine
|
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:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_infinite_rage.jpg
|
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
|
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/172.jpg
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
Name:Honden of Life's Web
|
Name:Honden of Life's Web
|
||||||
ManaCost:4 G
|
ManaCost:4 G
|
||||||
Types:Legendary Enchantment Shrine
|
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:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_lifes_web.jpg
|
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
|
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/213.jpg
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
Name:Honden of Night's Reach
|
Name:Honden of Night's Reach
|
||||||
ManaCost:3 B
|
ManaCost:3 B
|
||||||
Types:Legendary Enchantment Shrine
|
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:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_nights_reach.jpg
|
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
|
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/116.jpg
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
Name:Honden of Seeing Winds
|
Name:Honden of Seeing Winds
|
||||||
ManaCost:4 U
|
ManaCost:4 U
|
||||||
Types:Legendary Enchantment Shrine
|
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:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/honden_of_seeing_winds.jpg
|
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
|
SetInfo:CHK|Uncommon|http://magiccards.info/scans/en/chk/69.jpg
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>485</int>
|
<int>485</int>
|
||||||
<int>447</int>
|
<int>447</int>
|
||||||
<int>145</int>
|
<int>290</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>630</int>
|
<int>775</int>
|
||||||
<int>447</int>
|
<int>447</int>
|
||||||
<int>5</int>
|
<int>5</int>
|
||||||
</object>
|
</object>
|
||||||
@@ -134,9 +134,9 @@
|
|||||||
<void property="bounds">
|
<void property="bounds">
|
||||||
<object class="java.awt.Rectangle">
|
<object class="java.awt.Rectangle">
|
||||||
<int>0</int>
|
<int>0</int>
|
||||||
<int>635</int>
|
<int>780</int>
|
||||||
<int>447</int>
|
<int>447</int>
|
||||||
<int>192</int>
|
<int>47</int>
|
||||||
</object>
|
</object>
|
||||||
</void>
|
</void>
|
||||||
<void property="name">
|
<void property="name">
|
||||||
|
|||||||
@@ -43,11 +43,6 @@ public class GameActionUtil {
|
|||||||
upkeep_Master_of_the_Wild_Hunt();
|
upkeep_Master_of_the_Wild_Hunt();
|
||||||
upkeep_Carnophage();
|
upkeep_Carnophage();
|
||||||
upkeep_Sangrophage();
|
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_Dega_Sanctuary();
|
||||||
upkeep_Sheltered_Valley();
|
upkeep_Sheltered_Valley();
|
||||||
upkeep_Living_Artifact();
|
upkeep_Living_Artifact();
|
||||||
@@ -9175,202 +9170,7 @@ public class GameActionUtil {
|
|||||||
}
|
}
|
||||||
}// upkeep_Master_of_the_Wild_Hunt
|
}// 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() {
|
private static void upkeep_Seizan_Perverter_of_Truth() {
|
||||||
final Player player = AllZone.Phase.getPlayerTurn();
|
final Player player = AllZone.Phase.getPlayerTurn();
|
||||||
|
|||||||
Reference in New Issue
Block a user