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