Implemented Issue#73: Enchant Player enchantments - show enchanted player

This commit is contained in:
magenoxx 2013-01-14 18:57:13 +04:00
parent 17b8619b3e
commit 55f40d2e9d
7 changed files with 64 additions and 5 deletions

View file

@ -386,6 +386,7 @@ public class Card extends MagePermanent implements MouseMotionListener, MouseLis
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.TARGET);
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.PAIRED);
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.SOURCE);
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.ENCHANT_PLAYERS);
}
}

View file

@ -119,6 +119,10 @@ public class PlayAreaPanel extends javax.swing.JPanel {
return battlefieldPanel;
}
public PlayerPanelExt getPlayerPanel() {
return playerPanel;
}
private void initComponents() {
setBorder(BorderFactory.createLineBorder(new Color(0,0,0,0)));
playerPanel = new PlayerPanelExt();

View file

@ -218,6 +218,12 @@ public class PlayerPanelExt extends javax.swing.JPanel {
session.sendPlayerUUID(gameId, playerId);
}
});
avatar.setOnHover(new Command() {
@Override
public void execute() {
}
});
r = new Rectangle(18, 18);
lifeLabel.setToolTipText("Life");
Image imageLife = ImageHelper.getImageFromResources("/info/life.png");
@ -563,6 +569,10 @@ public class PlayerPanelExt extends javax.swing.JPanel {
session.cheat(gameId, playerId, deckImporter.importDeck("cheat.dck"));
}
public PlayerView getPlayer() {
return player;
}
private HoverButton avatar;
private JButton btnPlayer;
private ImagePanel life;

View file

@ -10,6 +10,7 @@ import mage.client.cards.BigCard;
import mage.client.components.MageComponents;
import mage.client.dialog.PreferencesDialog;
import mage.client.game.PlayAreaPanel;
import mage.client.game.PlayerPanelExt;
import mage.client.plugins.impl.Plugins;
import mage.client.util.DefaultActionCallback;
import mage.client.util.ImageHelper;
@ -89,6 +90,7 @@ public class MageActionCallback implements ActionCallback {
drawArrowsForTargets(data, parentPoint);
drawArrowsForSource(data, parentPoint);
drawArrowsForPairedCards(data, parentPoint);
drawArrowsForEnchantPlayers(data, parentPoint);
showPopup(data, parentComponent, parentPoint);
}
@ -109,6 +111,23 @@ public class MageActionCallback implements ActionCallback {
}
}
private void drawArrowsForEnchantPlayers(TransferData data, Point parentPoint) {
for (PlayAreaPanel pa : MageFrame.getGame(data.gameId).getPlayers().values()) {
PlayerPanelExt playAreaPanel = pa.getPlayerPanel();
if (playAreaPanel != null && playAreaPanel.getPlayer() != null && playAreaPanel.getPlayer().hasAttachments()) {
Point me = new Point(data.locationOnScreen);
me.translate(-parentPoint.x, -parentPoint.y);
for (UUID attachmentId : playAreaPanel.getPlayer().getAttachments()) {
if (attachmentId.equals(data.card.getId())) {
Point player = pa.getLocationOnScreen();
player.translate(-parentPoint.x, -parentPoint.y);
ArrowBuilder.getBuilder().addArrow(data.gameId,(int) me.getX() + 35, (int) me.getY(), (int) player.getX() + 40, (int) player.getY() - 40, Color.magenta, ArrowBuilder.Type.ENCHANT_PLAYERS);
}
}
}
}
}
private void drawArrowsForSource(TransferData data, Point parentPoint) {
if (data.card.isAbility()) {
Point me = new Point(data.locationOnScreen);
@ -291,6 +310,7 @@ public class MageActionCallback implements ActionCallback {
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.TARGET);
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.PAIRED);
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.SOURCE);
ArrowBuilder.getBuilder().removeArrowsByType(gameId, ArrowBuilder.Type.ENCHANT_PLAYERS);
}
}

View file

@ -31,10 +31,9 @@ package mage.client.util;
import mage.cards.Card;
import mage.cards.repository.CardInfo;
import mage.cards.repository.CardRepository;
import mage.view.CardView;
import mage.view.CardsView;
import mage.view.SimpleCardView;
import mage.view.SimpleCardsView;
import mage.view.*;
import java.util.List;
/**
*
@ -56,4 +55,16 @@ public class CardsViewUtil {
return cards;
}
public static CardsView convertEmblems(List<EmblemView> view) {
CardsView cards = new CardsView();
for (EmblemView emblem : view) {
CardView cardView = new CardView(emblem.getName());
cardView.overrideRules(emblem.getRules());
cardView.setExpansionSetCode(emblem.getExpansionSetCode());
cards.put(emblem.getId(), cardView);
}
return cards;
}
}

View file

@ -38,7 +38,7 @@ public class ArrowBuilder {
private int currentHeight;
public enum Type {
PAIRED, SOURCE, TARGET, COMBAT;
PAIRED, SOURCE, TARGET, COMBAT, ENCHANT_PLAYERS;
}
/**