mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user