Fix many more problems with the GUI refactoring (plus some preparations for mobile GUI support).

This commit is contained in:
elcnesh
2014-09-09 08:37:17 +00:00
parent 7bc8bf6c9c
commit 0222c64b62
25 changed files with 265 additions and 134 deletions

View File

@@ -0,0 +1,42 @@
package forge.game.event;
import java.util.Arrays;
import java.util.Collection;
import com.google.common.collect.Iterables;
import forge.game.player.Player;
import forge.util.Lang;
/**
* This means card's characteristics have changed on server, clients must re-request them
*/
public class GameEventPlayerStatsChanged extends GameEvent {
public final Collection<Player> players;
public GameEventPlayerStatsChanged(Player affected) {
players = Arrays.asList(affected);
}
public GameEventPlayerStatsChanged(Collection<Player> affected) {
players = affected;
}
/* (non-Javadoc)
* @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor)
*/
@Override
public <T> T visit(IGameEventVisitor<T> visitor) {
// TODO Auto-generated method stub
return visitor.visit(this);
}
@Override
public String toString() {
if (null == players || Iterables.isEmpty(players)) {
return "Player state changes: (empty list)";
}
return String.format("Player state changes: %s", Lang.joinHomogenous(players));
}
}

View File

@@ -33,6 +33,7 @@ public interface IGameEventVisitor<T> {
T visit(GameEventPlayerDamaged gameEventPlayerDamaged);
T visit(GameEventPlayerPoisoned event);
T visit(GameEventPlayerPriority event);
T visit(GameEventPlayerStatsChanged event);
T visit(GameEventShuffle event);
T visit(GameEventSpellAbilityCast gameEventSpellAbilityCast);
T visit(GameEventSpellResolved event);
@@ -72,6 +73,7 @@ public interface IGameEventVisitor<T> {
public T visit(GameEventPlayerControl event) { return null; }
public T visit(GameEventPlayerPoisoned event) { return null; }
public T visit(GameEventPlayerPriority event) { return null; }
public T visit(GameEventPlayerStatsChanged event) { return null; }
public T visit(GameEventShuffle event) { return null; }
public T visit(GameEventSpellResolved event) { return null; }
public T visit(GameEventSpellAbilityCast event) { return null; }

View File

@@ -1159,9 +1159,11 @@ public class Player extends GameEntity implements Comparable<Player> {
}
this.changedKeywords.put(timestamp, new KeywordsChange(addKeywords, removeKeywords, false));
game.fireEvent(new GameEventPlayerStatsChanged(this));
}
public final KeywordsChange removeChangedKeywords(final Long timestamp) {
game.fireEvent(new GameEventPlayerStatsChanged(this));
return changedKeywords.remove(Long.valueOf(timestamp));
}
@@ -1205,6 +1207,8 @@ public class Player extends GameEntity implements Comparable<Player> {
this.changedKeywords.remove(ck.getKey());
}
}
game.fireEvent(new GameEventPlayerStatsChanged(this));
}
/*