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

Method discard

forge-game/src/main/java/forge/game/player/Player.java:1430–1461  ·  view source on GitHub ↗
(final Card c, final SpellAbility sa, final boolean effect, Map<AbilityKey, Object> params)

Source from the content-addressed store, hash-verified

1428 }
1429
1430 public final Card discard(final Card c, final SpellAbility sa, final boolean effect, Map<AbilityKey, Object> params) {
1431 if (!c.canBeDiscardedBy(sa, effect)) {
1432 return null;
1433 }
1434
1435 discardedThisTurn.add(CardCopyService.getLKICopy(c));
1436
1437 params.put(AbilityKey.Discard, true);
1438 params.put(AbilityKey.EffectOnly, effect);
1439 final Card newCard = game.getAction().moveToGraveyard(c, sa, params);
1440
1441 StringBuilder sb = new StringBuilder();
1442 sb.append(this).append(" discards ").append(c);
1443 //sb.append(" to the library");
1444 //sb.append(" with Madness");
1445 sb.append(".");
1446 // Play the Discard sound
1447 game.fireEvent(new GameEventAddLog(GameLogEntryType.DISCARD, sb.toString(), c));
1448
1449 newCard.setDiscarded(true);
1450
1451 if (sa != null && sa.hasParam("RememberDiscarded")) {
1452 sa.getHostCard().addRemembered(newCard);
1453 }
1454 final Map<AbilityKey, Object> runParams = AbilityKey.mapFromPlayer(this);
1455 runParams.put(AbilityKey.Card, c);
1456 runParams.put(AbilityKey.Cause, sa);
1457 runParams.putAll(params);
1458 game.getTriggerHandler().runTrigger(TriggerType.Discarded, runParams, false);
1459
1460 return newCard;
1461 }
1462
1463 public final void addTokensCreatedThisTurn(Card token) {
1464 numTokenCreatedThisTurn++;

Callers 3

learnLessonMethod · 0.95
doPaymentMethod · 0.45
onPhaseBeginMethod · 0.45

Calls 15

getLKICopyMethod · 0.95
setDiscardedMethod · 0.95
mapFromPlayerMethod · 0.95
canBeDiscardedByMethod · 0.80
moveToGraveyardMethod · 0.80
runTriggerMethod · 0.80
getTriggerHandlerMethod · 0.80
addMethod · 0.65
getHostCardMethod · 0.65
putMethod · 0.45
getActionMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected