diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java index 3b6d542d8f5..eba79010782 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/DeckEditorPanel.java @@ -277,7 +277,7 @@ public class DeckEditorPanel extends javax.swing.JPanel { this.setVisible(true); this.repaint(); } - + private void hidePopup() { Plugins.getInstance().getActionCallback().mouseExited(null, null); } diff --git a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.form b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.form index 9b10b2b17bc..fa5f815e756 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.form +++ b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.form @@ -1,4 +1,4 @@ - +
@@ -33,39 +33,42 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + - - - - - - - - @@ -97,10 +100,11 @@ - + + @@ -184,5 +188,13 @@ + + + + + + + + diff --git a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java index 57c6522a986..fe4cca2940d 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/AddLandDialog.java @@ -34,11 +34,13 @@ package mage.client.dialog; +import java.util.Iterator; import java.util.List; import java.util.Random; import java.util.Set; import javax.swing.JLayeredPane; import mage.Constants; +import mage.Mana; import mage.cards.Card; import mage.cards.Sets; import mage.cards.decks.Deck; @@ -55,6 +57,8 @@ public class AddLandDialog extends MageDialog { private Deck deck; private Set setCodesland; + + private static int DEFAULT_SEALED_DECK_CARD_NUMBER = 40; /** Creates new form AddLandDialog */ public AddLandDialog() { @@ -110,6 +114,7 @@ public class AddLandDialog extends MageDialog { lblSwamp = new javax.swing.JLabel(); btnAdd = new javax.swing.JButton(); btnCancel = new javax.swing.JButton(); + btnAutoAdd = new javax.swing.JButton(); jButton2.setText("jButton2"); @@ -149,6 +154,13 @@ public class AddLandDialog extends MageDialog { } }); + btnAutoAdd.setText("Suggest"); + btnAutoAdd.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnAutoAddActionPerformed(evt); + } + }); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( @@ -157,32 +169,33 @@ public class AddLandDialog extends MageDialog { .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() - .addComponent(lblPains) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnPlains, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lblIsland) + .addComponent(lblMountain) + .addComponent(lblForest)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(spnMountain, javax.swing.GroupLayout.DEFAULT_SIZE, 85, Short.MAX_VALUE) + .addComponent(spnIsland) + .addComponent(spnForest))) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(lblPains) + .addGap(21, 21, 21) + .addComponent(spnPlains)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(lblSwamp) + .addGap(14, 14, 14) + .addComponent(spnSwamp))) + .addGap(114, 114, 114)) .addGroup(layout.createSequentialGroup() - .addComponent(lblMountain) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnMountain, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(lblIsland) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnIsland, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(lblForest) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnForest, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(lblSwamp) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(spnSwamp, javax.swing.GroupLayout.PREFERRED_SIZE, 49, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap(50, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(25, Short.MAX_VALUE) - .addComponent(btnCancel) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(btnAdd) - .addContainerGap()) + .addComponent(btnCancel) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnAutoAdd) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnAdd) + .addGap(0, 40, Short.MAX_VALUE)))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -207,10 +220,11 @@ public class AddLandDialog extends MageDialog { .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(lblSwamp) .addComponent(spnSwamp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 20, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 38, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnAdd) - .addComponent(btnCancel)) + .addComponent(btnCancel) + .addComponent(btnAutoAdd)) .addContainerGap()) ); @@ -236,9 +250,47 @@ public class AddLandDialog extends MageDialog { this.hideDialog(); }//GEN-LAST:event_btnAddActionPerformed + private void btnAutoAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAutoAddActionPerformed + autoAddLands(); + }//GEN-LAST:event_btnAutoAddActionPerformed + private void autoAddLands(){ + int red = 0; + int green = 0; + int black = 0; + int blue = 0; + int white = 0; + Set cards = deck.getCards(); + int land_number = DEFAULT_SEALED_DECK_CARD_NUMBER - cards.size(); + if(land_number < 0) land_number = 0; + for (Card cd : cards) { + Mana m = cd.getManaCost().getMana(); + red += m.getRed(); + green += m.getGreen(); + black += m.getBlack(); + blue += m.getBlue(); + white += m.getWhite(); + } + int total = red + green + black + blue + white; + int redcards = Math.round(land_number*((float)red/(float)total)); + total -= red; land_number -= redcards; + int greencards = Math.round(land_number*((float)green/(float)total)); + total -= green; land_number -= greencards; + int blackcards = Math.round(land_number*((float)black/(float)total)); + total -= black; land_number -= blackcards; + int bluecards = Math.round(land_number*((float)blue/(float)total)); + total -= blue; land_number -= bluecards; + int whitecards = land_number; + spnMountain.setValue(redcards); + spnForest.setValue(greencards); + spnSwamp.setValue(blackcards); + spnIsland.setValue(bluecards); + spnPlains.setValue(whitecards); + } + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnAdd; + private javax.swing.JButton btnAutoAdd; private javax.swing.JButton btnCancel; private javax.swing.JButton jButton2; private javax.swing.JLabel lblForest; diff --git a/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java b/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java index b1ccf6cfae9..4c3ec23dc37 100644 --- a/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java +++ b/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java @@ -134,11 +134,12 @@ public class MusicPlayer { byte tempBuffer[] = new byte[320]; public void run(){ try{ - int len; - while ((len = audioInputStream.read(tempBuffer, 0, - tempBuffer.length)) != -1){ - if(breaked_out) break; - if(len > 0) sourceDataLine.write(tempBuffer, 0, len); + sourceDataLine.flush(); + int len; + while ((len = audioInputStream.read(tempBuffer, 0, + tempBuffer.length)) != -1){ + if(breaked_out) break; + if(len > 0) sourceDataLine.write(tempBuffer, 0, len); } //breaked or stopped sourceDataLine.flush();