mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
Fix crash when getting commander info
This commit is contained in:
@@ -22,6 +22,12 @@ import forge.trackable.TrackableProperty;
|
||||
import forge.util.FCollectionView;
|
||||
|
||||
public class GameView extends TrackableObject {
|
||||
private static GameView currentGame;
|
||||
|
||||
public static GameView getCurrentGame() {
|
||||
return currentGame;
|
||||
}
|
||||
|
||||
/*private final TrackableIndex<CardView> cards = new TrackableIndex<CardView>();
|
||||
private final TrackableIndex<PlayerView> players = new TrackableIndex<PlayerView>();
|
||||
private final TrackableIndex<SpellAbilityView> spellAbilities = new TrackableIndex<SpellAbilityView>();
|
||||
@@ -32,6 +38,7 @@ public class GameView extends TrackableObject {
|
||||
|
||||
public GameView(Game game0) {
|
||||
super(-1); //ID not needed
|
||||
currentGame = this;
|
||||
game = game0;
|
||||
set(TrackableProperty.WinningTeam, -1);
|
||||
|
||||
@@ -110,6 +117,9 @@ public class GameView extends TrackableObject {
|
||||
set(TrackableProperty.GameOver, game.isGameOver());
|
||||
set(TrackableProperty.MatchOver, game.getMatch().isMatchOver());
|
||||
set(TrackableProperty.WinningTeam, game.getOutcome() == null ? -1 : game.getOutcome().getWinningTeam());
|
||||
if (game.isGameOver()) {
|
||||
currentGame = null;
|
||||
}
|
||||
}
|
||||
|
||||
public GameLog getGameLog() {
|
||||
|
||||
@@ -32,6 +32,7 @@ import forge.card.mana.ManaCostShard;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameEntity;
|
||||
import forge.game.GameLogEntryType;
|
||||
import forge.game.GameView;
|
||||
import forge.game.ability.AbilityFactory;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.ability.ApiType;
|
||||
@@ -42,6 +43,7 @@ import forge.game.cost.CostPayment;
|
||||
import forge.game.event.GameEventCardStatsChanged;
|
||||
import forge.game.phase.PhaseHandler;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.player.PlayerView;
|
||||
import forge.game.replacement.ReplacementEffect;
|
||||
import forge.game.replacement.ReplacementHandler;
|
||||
import forge.game.replacement.ReplacementLayer;
|
||||
@@ -1984,7 +1986,6 @@ public class CardFactoryUtil {
|
||||
}
|
||||
|
||||
public static void correctAbilityChainSourceCard(final SpellAbility sa, final Card card) {
|
||||
|
||||
sa.setHostCard(card);
|
||||
|
||||
if (sa.getSubAbility() != null) {
|
||||
@@ -2027,9 +2028,10 @@ public class CardFactoryUtil {
|
||||
cmd.addStaticAbility("Mode$ RaiseCost | Amount$ CommanderCostRaise | Type$ Spell | ValidCard$ Card.Self+wasCastFromCommand | EffectZone$ All | AffectedZone$ Stack");
|
||||
}
|
||||
*/
|
||||
public static final String getCommanderInfo(final Player originPlayer) {
|
||||
|
||||
public static final String getCommanderInfo(final PlayerView originPlayer) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (Player p : originPlayer.getGame().getPlayers()) {
|
||||
for (PlayerView p : GameView.getCurrentGame().getPlayers()) {
|
||||
final String text;
|
||||
if (p.equals(originPlayer)) {
|
||||
text = "Commander Damage from own Commander: ";
|
||||
|
||||
@@ -521,7 +521,7 @@ public class CardView extends GameEntityView {
|
||||
}
|
||||
if (isCommander()) {
|
||||
sb.append(getOwner()).append("'s Commander\r\n");
|
||||
sb.append(CardFactoryUtil.getCommanderInfo(Player.get(getOwner()))).append("\r\n");
|
||||
sb.append(CardFactoryUtil.getCommanderInfo(getOwner())).append("\r\n");
|
||||
}
|
||||
sb.append(state.getAbilityText());
|
||||
|
||||
|
||||
@@ -4,8 +4,6 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.apache.commons.lang3.NotImplementedException;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import forge.LobbyPlayer;
|
||||
@@ -118,8 +116,11 @@ public class PlayerView extends GameEntityView {
|
||||
set(TrackableProperty.Commander, PlayerView.get(p.getCommander()));
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getCommanderDamage() {
|
||||
return get(TrackableProperty.CommanderDamage);
|
||||
public int getCommanderDamage(CardView commander) {
|
||||
Map<Integer, Integer> map = get(TrackableProperty.CommanderDamage);
|
||||
if (map == null) { return 0; }
|
||||
Integer damage = map.get(commander.getId());
|
||||
return damage == null ? 0 : damage.intValue();
|
||||
}
|
||||
void updateCommanderDamage(Player p) {
|
||||
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
|
||||
@@ -129,10 +130,6 @@ public class PlayerView extends GameEntityView {
|
||||
set(TrackableProperty.CommanderDamage, map);
|
||||
}
|
||||
|
||||
public String getCommanderInfo() {
|
||||
throw new NotImplementedException("Not implemented");
|
||||
}
|
||||
|
||||
public PlayerView getMindSlaveMaster() {
|
||||
return get(TrackableProperty.MindSlaveMaster);
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import javax.swing.ScrollPaneConstants;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import net.miginfocom.swing.MigLayout;
|
||||
import forge.game.card.CardFactoryUtil;
|
||||
import forge.game.card.CardView;
|
||||
import forge.game.player.PlayerView;
|
||||
import forge.gui.framework.DragCell;
|
||||
@@ -179,7 +180,7 @@ public enum VPlayers implements IVDoc<CPlayers> {
|
||||
temp[6].setText(sb.toString());
|
||||
}
|
||||
if (isCommander) {
|
||||
temp[7].setText(p0.getCommanderInfo());
|
||||
temp[7].setText(CardFactoryUtil.getCommanderInfo(p0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
|
||||
import forge.Graphics;
|
||||
import forge.assets.FImage;
|
||||
import forge.assets.FSkinFont;
|
||||
import forge.game.card.CardFactoryUtil;
|
||||
import forge.game.card.CardView;
|
||||
import forge.game.player.PlayerView;
|
||||
import forge.match.MatchUtil;
|
||||
@@ -89,7 +90,7 @@ public class VPlayers extends FDropDown {
|
||||
}
|
||||
}
|
||||
if (MatchUtil.getGameView().isCommander()) {
|
||||
builder.append(" | " + player.getCommanderInfo());
|
||||
builder.append(" | " + CardFactoryUtil.getCommanderInfo(player));
|
||||
}
|
||||
|
||||
g.drawText(builder.toString(), FONT, FList.FORE_COLOR, x, y, getWidth() - PADDING - x, h, true, HAlignment.LEFT, true);
|
||||
|
||||
Reference in New Issue
Block a user