Remove obsolete GameEvent (#6736)

This commit is contained in:
tool4ever
2025-01-01 18:24:47 +01:00
committed by GitHub
parent dfce81f67c
commit 1c0cb07a2e
10 changed files with 16 additions and 54 deletions

View File

@@ -15,6 +15,7 @@ import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardCollectionView; import forge.game.card.CardCollectionView;
import forge.game.card.CardLists; import forge.game.card.CardLists;
import forge.game.event.GameEventCardStatsChanged;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
@@ -87,6 +88,7 @@ public class ProtectAllEffect extends SpellAbilityEffect {
for (final Card tgtC : list) { for (final Card tgtC : list) {
tgtC.addChangedCardKeywords(gainsKWList, null, false, timestamp, null, true); tgtC.addChangedCardKeywords(gainsKWList, null, false, timestamp, null, true);
game.fireEvent(new GameEventCardStatsChanged(tgtC));
if (!"Permanent".equals(sa.getParam("Duration"))) { if (!"Permanent".equals(sa.getParam("Duration"))) {
// If not Permanent, remove protection at EOT // If not Permanent, remove protection at EOT
@@ -97,6 +99,7 @@ public class ProtectAllEffect extends SpellAbilityEffect {
public void run() { public void run() {
if (tgtC.isInPlay()) { if (tgtC.isInPlay()) {
tgtC.removeChangedCardKeywords(timestamp, 0, true); tgtC.removeChangedCardKeywords(timestamp, 0, true);
game.fireEvent(new GameEventCardStatsChanged(tgtC));
} }
} }
}; };

View File

@@ -18,6 +18,7 @@ import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardCollection; import forge.game.card.CardCollection;
import forge.game.card.CardUtil; import forge.game.card.CardUtil;
import forge.game.event.GameEventCardStatsChanged;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.util.Lang; import forge.util.Lang;
@@ -154,6 +155,7 @@ public class ProtectEffect extends SpellAbilityEffect {
} }
tgtC.addChangedCardKeywords(gainsKWList, null, false, timestamp, null, true); tgtC.addChangedCardKeywords(gainsKWList, null, false, timestamp, null, true);
game.fireEvent(new GameEventCardStatsChanged(tgtC));
if (!"Permanent".equals(sa.getParam("Duration"))) { if (!"Permanent".equals(sa.getParam("Duration"))) {
// If not Permanent, remove protection at EOT // If not Permanent, remove protection at EOT
@@ -164,6 +166,7 @@ public class ProtectEffect extends SpellAbilityEffect {
public void run() { public void run() {
if (tgtC.isInPlay()) { if (tgtC.isInPlay()) {
tgtC.removeChangedCardKeywords(timestamp, 0, true); tgtC.removeChangedCardKeywords(timestamp, 0, true);
game.fireEvent(new GameEventCardStatsChanged(tgtC));
} }
} }
}; };

View File

@@ -5150,8 +5150,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
if (updateView) { if (updateView) {
updateKeywords(); updateKeywords();
if (isToken())
game.fireEvent(new GameEventTokenStateUpdate(this));
} }
} }
@@ -5239,8 +5237,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
changed |= changedCardKeywordsByText.remove(timestamp, staticId) != null; changed |= changedCardKeywordsByText.remove(timestamp, staticId) != null;
if (updateView) { if (updateView) {
updateKeywords(); updateKeywords();
if (isToken())
game.fireEvent(new GameEventTokenStateUpdate(this));
} }
return changed; return changed;
} }
@@ -5515,8 +5511,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
if (change && updateView) { if (change && updateView) {
getView().updateCantHaveKeyword(this); getView().updateCantHaveKeyword(this);
updateKeywords(); updateKeywords();
if (isToken())
game.fireEvent(new GameEventTokenStateUpdate(this));
} }
return change; return change;
} }

View File

@@ -1,24 +0,0 @@
package forge.game.event;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import forge.game.card.Card;
public class GameEventTokenStateUpdate extends GameEvent {
public final Collection<Card> cards;
public GameEventTokenStateUpdate(Card affected) {
cards = Arrays.asList(affected);
}
public GameEventTokenStateUpdate(List<Card> affected) {
cards = affected;
}
@Override
public <T> T visit(IGameEventVisitor<T> visitor) {
return visitor.visit(this);
}
}

View File

@@ -42,7 +42,6 @@ public interface IGameEventVisitor<T> {
T visit(GameEventPlayerStatsChanged event); T visit(GameEventPlayerStatsChanged event);
T visit(GameEventRandomLog event); T visit(GameEventRandomLog event);
T visit(GameEventRollDie event); T visit(GameEventRollDie event);
T visit(GameEventTokenStateUpdate event);
T visit(GameEventScry event); T visit(GameEventScry event);
T visit(GameEventShuffle event); T visit(GameEventShuffle event);
T visit(GameEventSpellAbilityCast event); T visit(GameEventSpellAbilityCast event);
@@ -98,7 +97,6 @@ public interface IGameEventVisitor<T> {
public T visit(GameEventPlayerStatsChanged event) { return null; } public T visit(GameEventPlayerStatsChanged event) { return null; }
public T visit(GameEventRandomLog event) { return null; } public T visit(GameEventRandomLog event) { return null; }
public T visit(GameEventRollDie event) { return null; } public T visit(GameEventRollDie event) { return null; }
public T visit(GameEventTokenStateUpdate event) { return null; }
public T visit(GameEventScry event) { return null; } public T visit(GameEventScry event) { return null; }
public T visit(GameEventShuffle event) { return null; } public T visit(GameEventShuffle event) { return null; }
public T visit(GameEventSpellResolved event) { return null; } public T visit(GameEventSpellResolved event) { return null; }

View File

@@ -185,8 +185,6 @@ public class PhaseHandler implements java.io.Serializable {
final int lands = CardLists.count(playerTurn.getLandsInPlay(), CardPredicates.UNTAPPED); final int lands = CardLists.count(playerTurn.getLandsInPlay(), CardPredicates.UNTAPPED);
playerTurn.setNumPowerSurgeLands(lands); playerTurn.setNumPowerSurgeLands(lands);
} }
//update tokens
game.fireEvent(new GameEventTokenStateUpdate(playerTurn.getTokensInPlay()));
// Replacement effects // Replacement effects
final Map<AbilityKey, Object> repRunParams = AbilityKey.mapFromAffected(playerTurn); final Map<AbilityKey, Object> repRunParams = AbilityKey.mapFromAffected(playerTurn);

View File

@@ -207,10 +207,9 @@ public class FCardImageRenderer {
final String leftText = needTranslation ? CardTranslation.getTranslatedOracle(leftState) : leftState.getOracleText(); final String leftText = needTranslation ? CardTranslation.getTranslatedOracle(leftState) : leftState.getOracleText();
final CardStateView rightState = card.getRightSplitState(); final CardStateView rightState = card.getRightSplitState();
String rightText = needTranslation ? CardTranslation.getTranslatedOracle(rightState) : rightState.getOracleText(); String rightText = needTranslation ? CardTranslation.getTranslatedOracle(rightState) : rightState.getOracleText();
boolean isAftermath = (rightState.getKeywordKey().contains("Aftermath"));
BufferedImage leftArt = null; BufferedImage leftArt = null;
BufferedImage rightArt = null; BufferedImage rightArt = null;
if (isAftermath) { if (rightState.hasAftermath()) {
if (art != null) { if (art != null) {
int leftWidth = Math.round(art.getWidth() * 0.61328125f); int leftWidth = Math.round(art.getWidth() * 0.61328125f);
leftArt = art.getSubimage(0, 0, leftWidth, art.getHeight()); leftArt = art.getSubimage(0, 0, leftWidth, art.getHeight());

View File

@@ -788,7 +788,6 @@ public class MatchScreen extends FScreen {
public void forceRevalidate() { public void forceRevalidate() {
for (VPlayerPanel playerPanel : getPlayerPanels().values()) { for (VPlayerPanel playerPanel : getPlayerPanels().values()) {
playerPanel.revalidate(true); playerPanel.revalidate(true);
} }
} }

View File

@@ -190,10 +190,13 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
@Override @Override
public Void visit(final GameEventTurnPhase ev) { public Void visit(final GameEventTurnPhase ev) {
needPhaseUpdate = true; needPhaseUpdate = true;
if (ev.phaseDesc == "dev") needSaveState = !"dev".equals(ev.phaseDesc);
needSaveState = false;
else Player ap = ev.playerTurn;
needSaveState = true; boolean refreshField = !ap.getTokensInPlay().isEmpty() || (FModel.getPreferences().getPrefBoolean(FPref.UI_STACK_CREATURES) && !ap.getCreaturesInPlay().isEmpty());
if (refreshField) {
updateZone(ap, ZoneType.Battlefield);
}
return processEvent(); return processEvent();
} }
@@ -207,10 +210,6 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
public Void visit(final GameEventTurnBegan event) { public Void visit(final GameEventTurnBegan event) {
turnUpdate = event.turnOwner.getView(); turnUpdate = event.turnOwner.getView();
processPlayer(event.turnOwner, livesUpdate); processPlayer(event.turnOwner, livesUpdate);
if (FModel.getPreferences().getPrefBoolean(FPref.UI_STACK_CREATURES) && event.turnOwner != null) {
// anything except stack will get here
updateZone(event.turnOwner, ZoneType.Battlefield);
}
return processEvent(); return processEvent();
} }
@@ -408,7 +407,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
@Override @Override
public Void visit(final GameEventCardChangeZone event) { public Void visit(final GameEventCardChangeZone event) {
if(GuiBase.getInterface().isLibgdxPort()) { if (GuiBase.getInterface().isLibgdxPort()) {
updateZone(event.from); updateZone(event.from);
return updateZone(event.to); return updateZone(event.to);
} else { } else {
@@ -458,13 +457,6 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
return processCard(event.land, cardsRefreshDetails); return processCard(event.land, cardsRefreshDetails);
} }
@Override
public Void visit(final GameEventTokenStateUpdate event) {
refreshFieldUpdate = true;
processCards(event.cards, cardsRefreshDetails);
return processCards(event.cards, cardsUpdate);
}
@Override @Override
public Void visit(final GameEventCardRegenerated event) { public Void visit(final GameEventCardRegenerated event) {
refreshFieldUpdate = true; refreshFieldUpdate = true;

View File

@@ -96,6 +96,7 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
UI_SR_OPTIMIZE ("false"), UI_SR_OPTIMIZE ("false"),
UI_OPEN_PACKS_INDIV ("false"), UI_OPEN_PACKS_INDIV ("false"),
UI_STACK_CREATURES ("false"), UI_STACK_CREATURES ("false"),
UI_TOKENS_IN_SEPARATE_ROW("false"),
UI_UPLOAD_DRAFT ("false"), UI_UPLOAD_DRAFT ("false"),
UI_SCALE_LARGER ("true"), UI_SCALE_LARGER ("true"),
UI_RENDER_BLACK_BORDERS ("true"), UI_RENDER_BLACK_BORDERS ("true"),
@@ -135,7 +136,6 @@ public class ForgePreferences extends PreferencesStore<ForgePreferences.FPref> {
UI_STACK_EFFECT_NOTIFICATION_POLICY ("Never"), UI_STACK_EFFECT_NOTIFICATION_POLICY ("Never"),
UI_LAND_PLAYED_NOTIFICATION_POLICY ("Never"), UI_LAND_PLAYED_NOTIFICATION_POLICY ("Never"),
UI_PAUSE_WHILE_MINIMIZED("false"), UI_PAUSE_WHILE_MINIMIZED("false"),
UI_TOKENS_IN_SEPARATE_ROW("false"), // Display tokens in their own battlefield row.
UI_DISPLAY_CURRENT_COLORS(ForgeConstants.DISP_CURRENT_COLORS_NEVER), UI_DISPLAY_CURRENT_COLORS(ForgeConstants.DISP_CURRENT_COLORS_NEVER),
UI_FILTER_LANDS_BY_COLOR_IDENTITY("true"), UI_FILTER_LANDS_BY_COLOR_IDENTITY("true"),
UI_ALLOW_ESC_TO_END_TURN ("false"), UI_ALLOW_ESC_TO_END_TURN ("false"),