mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Merge branch 'zara' into 'master'
CMR: Zara and ChangeZoneEffect support See merge request core-developers/forge!3330
This commit is contained in:
@@ -619,11 +619,20 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
if (sa.hasParam("Attacking")) {
|
||||
final Combat combat = game.getCombat();
|
||||
if (null != combat) {
|
||||
final FCollectionView<GameEntity> e = combat.getDefenders();
|
||||
|
||||
FCollectionView<GameEntity> defs = null;
|
||||
String attacking = sa.getParam("Attacking");
|
||||
if ("True".equalsIgnoreCase(attacking)) {
|
||||
defs = combat.getDefenders();
|
||||
} else if (sa.hasParam("ChoosePlayerOrPlaneswalker")) {
|
||||
Player defendingPlayer = Iterables.getFirst(AbilityUtils.getDefinedPlayers(hostCard,
|
||||
attacking, sa), null);
|
||||
if (defendingPlayer != null) {
|
||||
defs = combat.getDefendersControlledBy(defendingPlayer);
|
||||
}
|
||||
}
|
||||
GameEntity defender = null;
|
||||
if (sa.hasParam("DefinedDefender")) {
|
||||
FCollection<GameObject> objs = AbilityUtils.getDefinedObjects(sa.getHostCard(), sa.getParam("DefinedDefender"), sa);
|
||||
FCollection<GameObject> objs = AbilityUtils.getDefinedObjects(hostCard, sa.getParam("DefinedDefender"), sa);
|
||||
for(GameObject obj : objs) {
|
||||
if (obj instanceof GameEntity) {
|
||||
defender = (GameEntity)obj;
|
||||
@@ -634,7 +643,8 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
String title = Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", CardTranslation.getTranslatedName(movedCard.getName()));
|
||||
Map<String, Object> params = Maps.newHashMap();
|
||||
params.put("Attacker", movedCard);
|
||||
defender = player.getController().chooseSingleEntityForEffect(e, sa, title, params);
|
||||
defender = player.getController().chooseSingleEntityForEffect(defs, sa, title,false,
|
||||
params);
|
||||
}
|
||||
if (defender != null) {
|
||||
combat.addAttacker(movedCard, defender);
|
||||
@@ -1141,11 +1151,21 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
if (sa.hasParam("Attacking")) {
|
||||
final Combat combat = game.getCombat();
|
||||
if (null != combat) {
|
||||
final FCollectionView<GameEntity> e = combat.getDefenders();
|
||||
|
||||
FCollectionView<GameEntity> defs = null;
|
||||
String attacking = sa.getParam("Attacking");
|
||||
if ("True".equalsIgnoreCase(attacking)) {
|
||||
defs = combat.getDefenders();
|
||||
} else if (sa.hasParam("ChoosePlayerOrPlaneswalker")) {
|
||||
Player defendingPlayer = Iterables.getFirst(AbilityUtils.getDefinedPlayers(source,
|
||||
attacking, sa), null);
|
||||
if (defendingPlayer != null) {
|
||||
defs = combat.getDefendersControlledBy(defendingPlayer);
|
||||
}
|
||||
}
|
||||
GameEntity defender = null;
|
||||
if (sa.hasParam("DefinedDefender")) {
|
||||
FCollection<GameObject> objs = AbilityUtils.getDefinedObjects(source, sa.getParam("DefinedDefender"), sa);
|
||||
FCollection<GameObject> objs = AbilityUtils.getDefinedObjects(source,
|
||||
sa.getParam("DefinedDefender"), sa);
|
||||
for (GameObject obj : objs) {
|
||||
if (obj instanceof GameEntity) {
|
||||
defender = (GameEntity) obj;
|
||||
@@ -1153,10 +1173,12 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
String title = Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard", CardTranslation.getTranslatedName(c.getName()));
|
||||
String title = Localizer.getInstance().getMessage("lblChooseDefenderToAttackWithCard",
|
||||
CardTranslation.getTranslatedName(c.getName()));
|
||||
Map<String, Object> params = Maps.newHashMap();
|
||||
params.put("Attacker", c);
|
||||
defender = player.getController().chooseSingleEntityForEffect(e, sa, title, params);
|
||||
defender = decider.getController().chooseSingleEntityForEffect(defs, sa, title,false,
|
||||
params);
|
||||
}
|
||||
if (defender != null) {
|
||||
combat.addAttacker(c, defender);
|
||||
|
||||
10
forge-gui/res/cardsfolder/upcoming/zara_renegade_recruiter.txt
Executable file
10
forge-gui/res/cardsfolder/upcoming/zara_renegade_recruiter.txt
Executable file
@@ -0,0 +1,10 @@
|
||||
Name:Zara, Renegade Recruiter
|
||||
ManaCost:3 U R
|
||||
Types:Legendary Creature Human Pirate
|
||||
PT:4/3
|
||||
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigBorrow | TriggerDescription$ Whenever CARDNAME attacks, look at defending player's hand. You may put a creature card from it onto the battlefield under your control tapped and attacking that player or a planeswalker they control. Return that creature to its owner's hand at the beginning of the next end step.
|
||||
SVar:TrigBorrow:DB$ ChangeZone | ChangeNum$ 1 | DefinedPlayer$ TriggeredDefendingPlayer | Chooser$ You | ChangeType$ Creature | Origin$ Hand | Destination$ Battlefield | GainControl$ True | Tapped$ True | Attacking$ DefendingPlayer | ChoosePlayerOrPlaneswalker$ True | RememberChanged$ True | SubAbility$ DBDelayTrig
|
||||
SVar:DBDelayTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | ValidPlayer$ Player | RememberObjects$ Remembered | Execute$ DBChange | StackDescription$ None | SubAbility$ DBCleanup | TriggerDescription$ Return that creature to its owner's hand at the beginning of the next end step.
|
||||
SVar:DBChange:DB$ ChangeZone | Defined$ DelayTriggerRemembered | Origin$ Battlefield | Destination$ Hand
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
Oracle:Flying\nWhenever Zara, Renegade Recruiter attacks, look at defending player's hand. You may put a creature card from it onto the battlefield under your control tapped and attacking that player or a planeswalker they control. Return that creature to its owner's hand at the beginning of the next end step.
|
||||
Reference in New Issue
Block a user