mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Add GameEventDoorChanged for log
This commit is contained in:
@@ -304,8 +304,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
||||
|
||||
@Override
|
||||
public GameLogEntry visit(GameEventCardForetold ev) {
|
||||
String sb = TextUtil.concatWithSpace(ev.activatingPlayer.toString(), "has foretold.");
|
||||
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, sb);
|
||||
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, ev.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -313,6 +312,11 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
||||
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, ev.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public GameLogEntry visit(GameEventDoorChanged ev) {
|
||||
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, ev.toString());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void recieve(GameEvent ev) {
|
||||
GameLogEntry le = ev.visit(this);
|
||||
|
||||
@@ -8,6 +8,7 @@ import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.SpellAbilityEffect;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardCollection;
|
||||
import forge.game.event.GameEventCardPlotted;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.trigger.TriggerType;
|
||||
@@ -48,6 +49,8 @@ public class AlterAttributeEffect extends SpellAbilityEffect {
|
||||
switch (attr.trim()) {
|
||||
case "Plotted":
|
||||
altered = gameCard.setPlotted(activate);
|
||||
|
||||
c.getGame().fireEvent(new GameEventCardPlotted(c, sa.getActivatingPlayer()));
|
||||
break;
|
||||
case "Solve":
|
||||
case "Solved":
|
||||
|
||||
@@ -8181,6 +8181,8 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
|
||||
|
||||
updateRooms();
|
||||
|
||||
getGame().fireEvent(new GameEventDoorChanged(p, this, stateName, true));
|
||||
|
||||
Map<AbilityKey, Object> unlockParams = AbilityKey.mapFromPlayer(p);
|
||||
unlockParams.put(AbilityKey.Card, this);
|
||||
unlockParams.put(AbilityKey.CardState, getState(stateName));
|
||||
@@ -8205,6 +8207,8 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
|
||||
|
||||
updateRooms();
|
||||
|
||||
getGame().fireEvent(new GameEventDoorChanged(p, this, stateName, false));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,6 @@ public class GameEventCardForetold extends GameEvent {
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
return activatingPlayer.getName() + " has foretold a card.";
|
||||
return activatingPlayer.getName() + " has foretold.";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
package forge.game.event;
|
||||
|
||||
import forge.card.CardStateName;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.player.Player;
|
||||
import forge.util.CardTranslation;
|
||||
import forge.util.Lang;
|
||||
|
||||
public class GameEventDoorChanged extends GameEvent {
|
||||
public final Player activatingPlayer;
|
||||
public final Card card;
|
||||
public final CardStateName state;
|
||||
public boolean unlock;
|
||||
|
||||
public GameEventDoorChanged(Player player, Card c, CardStateName state, boolean unlock) {
|
||||
activatingPlayer = player;
|
||||
card = c;
|
||||
this.state = state;
|
||||
this.unlock = unlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String doorName = CardTranslation.getTranslatedName(card.getState(state));
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(activatingPlayer);
|
||||
sb.append(" ");
|
||||
sb.append(unlock ? "unlocks" : "locks");
|
||||
sb.append(" ");
|
||||
sb.append(Lang.getInstance().getPossessedObject(doorName, "Door"));
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
@@ -60,6 +60,7 @@ public interface IGameEventVisitor<T> {
|
||||
T visit(GameEventCardForetold event);
|
||||
T visit(GameEventCardPlotted event);
|
||||
T visit(GameEventDayTimeChanged event);
|
||||
T visit(GameEventDoorChanged event);
|
||||
|
||||
// This is base class for all visitors.
|
||||
class Base<T> implements IGameEventVisitor<T>{
|
||||
@@ -118,5 +119,6 @@ public interface IGameEventVisitor<T> {
|
||||
public T visit(GameEventCardForetold event) { return null; }
|
||||
public T visit(GameEventCardPlotted event) { return null; }
|
||||
public T visit(GameEventDayTimeChanged event) { return null; }
|
||||
public T visit(GameEventDoorChanged event) { return null; }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user