CombatViewer.java :  » Game » arena-card-game » magic » ui » viewer » Java Open Source

Java Open Source » Game » arena card game 
arena card game » magic » ui » viewer » CombatViewer.java
package magic.ui.viewer;

import java.util.ArrayList;
import java.util.Collection;
import java.util.SortedSet;
import java.util.TreeSet;

import javax.swing.border.Border;

import magic.ui.GameController;
import magic.ui.widget.FontsAndBorders;

public class CombatViewer extends PermanentsViewer {

  private static final long serialVersionUID = 1L;
    
  public CombatViewer(final ViewerInfo viewerInfo,final GameController controller) {

    super(viewerInfo,controller);
    update();
  }

  @Override
  public String getTitle() {

    return "Combat : "+viewerInfo.getAttackingPlayerInfo().name;
  }

  @Override
  public Collection<PermanentViewerInfo> getPermanents() {

    final PlayerViewerInfo attackingPlayerInfo=viewerInfo.getAttackingPlayerInfo();
    final PlayerViewerInfo defendingPlayerInfo=viewerInfo.getDefendingPlayerInfo();
    final SortedSet<PermanentViewerInfo> creatures=new TreeSet<PermanentViewerInfo>(PermanentViewerInfo.NAME_COMPARATOR);

    for (final PermanentViewerInfo permanentInfo : attackingPlayerInfo.permanents) {
      
      if (permanentInfo.attacking) {
        creatures.add(permanentInfo);
      }
    }
    
    for (final PermanentViewerInfo permanentInfo : defendingPlayerInfo.permanents) {
      
      if (permanentInfo.blocking&&permanentInfo.blockingInvalid) {
        creatures.add(permanentInfo);
      }
    }
      
    final Collection<PermanentViewerInfo> permanents=new ArrayList<PermanentViewerInfo>();
    for (final PermanentViewerInfo creature : creatures) {
      
      permanents.add(creature);
      permanents.addAll(creature.blockers);
    }    
    return permanents;
  }
  
  @Override
  public boolean isSeparated(final PermanentViewerInfo permanentInfo1,final PermanentViewerInfo permanentInfo2) {
    
    if (permanentInfo2.attacking) {
      return true;
    } 
    return permanentInfo2.blockingInvalid;
  }

  @Override
  public Border getBorder(PermanentViewerInfo permanentInfo) {

    return FontsAndBorders.getPlayerBorder(permanentInfo.visible);
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.