Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion forge-game/src/main/java/forge/game/card/Card.java
Original file line number Diff line number Diff line change
Expand Up @@ -2633,7 +2633,7 @@ private String keywordsToText(final Collection<KeywordInterface> keywords) {
|| keyword.equals("Horsemanship") || keyword.equals("Infect") || keyword.equals("Persist")
|| keyword.equals("Phasing") || keyword.equals("Shadow") || keyword.equals("Skulk")
|| keyword.equals("Undying") || keyword.equals("Wither") || keyword.equals("Bargain")
|| keyword.equals("Mentor") || keyword.equals("Training")) {
|| keyword.equals("Mentor") || keyword.equals("Training") || keyword.equals("Hope")) {
if (sb.length() != 0) {
sb.append("\r\n");
}
Expand Down
5 changes: 5 additions & 0 deletions forge-game/src/main/java/forge/game/card/CardFactoryUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -2312,6 +2312,11 @@ public static void addReplacementEffect(final KeywordInterface inst, final CardS

final ReplacementEffect re = makeEtbCounter(sb.toString(), card, intrinsic);

inst.addReplacement(re);
} else if (keyword.equals("Hope")) {
final String repeffstr = "Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Card.Self+attacking"
+ " | Prevent$ True | Secondary$ True | Description$ Hope (" + inst.getReminderText() + ")";
final ReplacementEffect re = ReplacementHandler.parseReplacement(repeffstr, host, intrinsic, card);
inst.addReplacement(re);
} else if (keyword.startsWith("Impending") && inst instanceof KeywordWithCostAndAmount impending) {
final String effect = "DB$ PutCounter | Defined$ ReplacedCard | CounterType$ TIME | CounterNum$ " + impending.getAmountString()
Expand Down
1 change: 1 addition & 0 deletions forge-game/src/main/java/forge/game/keyword/Keyword.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ public enum Keyword {
HEXPROOF("Hexproof", Hexproof.class, true, "This can't be the target of %s spells or abilities your opponents control."),
HIDEAWAY("Hideaway", KeywordWithAmount.class, false, "When this permanent enters, look at the top {%d:card} of your library, exile one face down, then put the rest on the bottom of your library."),
HIDDEN_AGENDA("Hidden agenda", SimpleKeyword.class, false, "Start the game with this conspiracy face down in the command zone and secretly choose a card name. You may turn this conspiracy face up any time and reveal that name."),
HOPE("Hope", SimpleKeyword.class, true, "Prevent all damage that would be dealt to attacking creatures with hope."),
HORSEMANSHIP("Horsemanship", SimpleKeyword.class, true, "This creature can't be blocked except by creatures with horsemanship."),
IMPENDING("Impending", KeywordWithCostAndAmount.class, false, "If you cast this spell for its impending cost, it enters with {%2$d:time counter} and isn't a creature until the last is removed. At the beginning of your end step, remove a time counter from it."),
IMPROVISE("Improvise", SimpleKeyword.class, true, "Your artifacts can help cast this spell. Each artifact you tap after you're done activating mana abilities pays for {1}."),
Expand Down
6 changes: 6 additions & 0 deletions forge-gui/res/cardsfolder/s/sliver_of_hope.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Name:Sliver of Hope
ManaCost:3 W
Types:Creature Sliver
PT:3/3
S:Mode$ Continuous | Affected$ Sliver.YouCtrl | AddKeyword$ Hope | Description$ Slivers you control have hope.
Oracle:Slivers you control have hope. (Prevent all damage that would be dealt to attacking creatures with hope.)