MCPcopy Create free account
hub / github.com/Card-Forge/forge / playLand

Method playLand

forge-game/src/main/java/forge/game/player/Player.java:1639–1666  ·  view source on GitHub ↗
(final Card land, SpellAbility cause)

Source from the content-addressed store, hash-verified

1637 }
1638
1639 public final Card playLand(final Card land, SpellAbility cause) {
1640 land.setController(this, 0);
1641 if (land.isFaceDown()) {
1642 land.turnFaceUp(null);
1643 if (cause.isLandAbility()) {
1644 land.changeToState(cause.getCardStateName());
1645 }
1646 }
1647
1648 Map<AbilityKey, Object> runParams = AbilityKey.mapFromCard(land);
1649 runParams.put(AbilityKey.Origin, land.getZone().getZoneType().name());
1650
1651 game.copyLastState();
1652 final Card c = game.getAction().moveTo(getZone(ZoneType.Battlefield), land, cause);
1653 game.updateLastStateForCard(c);
1654
1655 // Run triggers
1656 runParams.put(AbilityKey.SpellAbility, cause);
1657 game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false);
1658
1659 game.getStack().unfreezeStack();
1660 addLandPlayedThisTurn();
1661
1662 // play a sound
1663 game.fireEvent(new GameEventLandPlayed(PlayerView.get(this), CardView.get(c)));
1664
1665 return c;
1666 }
1667
1668 public final boolean canPlayLand(final Card land, final boolean ignoreZoneAndTiming, SpellAbility landSa) {
1669 if (!ignoreZoneAndTiming) {

Callers 3

resolveMethod · 0.95
resolveMethod · 0.80
simulateSpellAbilityMethod · 0.80

Calls 15

mapFromCardMethod · 0.95
getZoneMethod · 0.95
addLandPlayedThisTurnMethod · 0.95
getMethod · 0.95
getMethod · 0.95
turnFaceUpMethod · 0.80
changeToStateMethod · 0.80
getCardStateNameMethod · 0.80
copyLastStateMethod · 0.80
runTriggerMethod · 0.80
getTriggerHandlerMethod · 0.80

Tested by

no test coverage detected