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

Class GameLogFormatter

forge-game/src/main/java/forge/game/GameLogFormatter.java:18–323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16import forge.util.*;
17
18public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
19 private final Localizer localizer = Localizer.getInstance();
20 private final GameLog log;
21 public GameLogFormatter(GameLog gameLog) {
22 log = gameLog;
23 }
24
25 @Override
26 public GameLogEntry visit(GameEventGameOutcome ev) {
27 // Turn number counted from the starting player
28 int lastTurn = (int)Math.ceil((float)ev.lastTurnNumber() / 2.0);
29 log.add(GameLogEntryType.GAME_OUTCOME, localizer.getMessage("lblTurn") + " " + lastTurn);
30
31 for (String outcome : ev.outcomeStrings()) {
32 log.add(GameLogEntryType.GAME_OUTCOME, outcome);
33 }
34 return new GameLogEntry(GameLogEntryType.MATCH_RESULTS, ev.matchSummary());
35 }
36
37 @Override
38 public GameLogEntry visit(GameEventScry ev) {
39 String scryOutcome;
40 if (ev.toTop() > 0 && ev.toBottom() > 0) {
41 scryOutcome = localizer.getMessage("lblLogScryTopBottomLibrary").replace("%s", ev.player().toString()).replace("%top", String.valueOf(ev.toTop())).replace("%bottom", String.valueOf(ev.toBottom()));
42 } else if (ev.toBottom() == 0) {
43 scryOutcome = localizer.getMessage("lblLogScryTopLibrary").replace("%s", ev.player().toString()).replace("%top", String.valueOf(ev.toTop()));
44 } else {
45 scryOutcome = localizer.getMessage("lblLogScryBottomLibrary").replace("%s", ev.player().toString()).replace("%bottom", String.valueOf(ev.toBottom()));
46 }
47
48 return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, scryOutcome);
49 }
50
51 @Override
52 public GameLogEntry visit(GameEventSurveil ev) {
53 String surveilOutcome;
54 if (ev.toLibrary() > 0 && ev.toGraveyard() > 0) {
55 surveilOutcome = localizer.getMessage("lblLogSurveiledToLibraryGraveyard", ev.player(), ev.toLibrary(), ev.toGraveyard());
56 } else if (ev.toGraveyard() == 0) {
57 surveilOutcome = localizer.getMessage("lblLogSurveiledToLibrary", ev.player(), ev.toLibrary());
58 } else {
59 surveilOutcome = localizer.getMessage("lblLogSurveiledToGraveyard", ev.player(), ev.toGraveyard());
60 }
61
62 return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, surveilOutcome);
63 }
64
65 @Override
66 public GameLogEntry visit(GameEventSpellResolved ev) {
67 String messageForLog = ev.hasFizzled() ? localizer.getMessage("lblLogCardAbilityFizzles", ev.spell().getHostCard().getName()) : ev.stackDescription();
68 return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, messageForLog, ev.spell().getHostCard());
69 }
70
71 @Override
72 public GameLogEntry visit(GameEventSpellAbilityCast event) {
73 String player = event.si().getActivatingPlayer().getName();
74 String action = event.sa().isSpell() ? localizer.getMessage("lblCast")
75 : event.si().isTrigger() ? localizer.getMessage("lblTriggered")

Callers

nothing calls this directly

Calls 1

getInstanceMethod · 0.95

Tested by

no test coverage detected