Android Open Source - GhostStories Player Info View






From Project

Back to project page GhostStories.

License

The source code is released under:

GNU General Public License

If you think the Android project GhostStories listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package games.ghoststories.views.aux_area;
//  ww  w . ja va  2 s .com
import games.ghoststories.R;
import games.ghoststories.data.GhostStoriesGameManager;
import games.ghoststories.data.PlayerData;
import games.ghoststories.data.interfaces.IGamePhaseListener;
import games.ghoststories.enums.EColor;
import games.ghoststories.enums.EGamePhase;
import games.ghoststories.utils.GameUtils;
import games.ghoststories.views.common.BuddhaTokenView;
import games.ghoststories.views.common.QiTokenView;
import games.ghoststories.views.common.TaoTokenView;
import games.ghoststories.views.common.YinYangTokenView;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable.Orientation;
import android.util.AttributeSet;
import android.widget.LinearLayout;

import com.drawable.shapes.GradientRectangle;

/**
 * High level view that shows all of the info for a player. This includes:
 * <li>Qi
 * <li>Tao Tokens
 * <li>Buddhas
 * <li>Yin Yang 
 */
public class PlayerInfoView extends LinearLayout implements IGamePhaseListener {

   /**
    * Constructor
    * @param pContext
    */
   public PlayerInfoView(Context pContext) {
      super(pContext);
      initialize();
   }

   /**
    * Constructor
    * @param pContext
    * @param pAttrs
    */
   public PlayerInfoView(Context pContext, AttributeSet pAttrs) {
      super(pContext, pAttrs);
      initialize();
   }

   /**
    * Constructor
    * @param pContext
    * @param pAttrs
    * @param pDefStyle
    */
   public PlayerInfoView(Context pContext, AttributeSet pAttrs, int pDefStyle) {
      super(pContext, pAttrs, pDefStyle);
      initialize();
   }
   
   /*
    * (non-Javadoc)
    * @see games.ghoststories.data.interfaces.IGamePhaseListener#gamePhaseUpdated(games.ghoststories.enums.EGamePhase)
    */
   public void gamePhaseUpdated(EGamePhase pGamePhase) {  
      //When it is a new players turn invalidate the view and redraw
      GameUtils.invalidateView(this);
   }
   
   /**
    * @return The {@link PlayerData} for this view
    */
   public PlayerData getPlayerData() {
      return mPlayerData;
   }
   
   /**
    * Sets the data used to populate the contents of the views contained within
    * the player info area.
    * @param pPlayerData The data model
    */
   public void setPlayerData(PlayerData pPlayerData) {
      mPlayerData = pPlayerData;
            
      EColor color = mPlayerData.getColor();
      int lightColor = color.getLightColor();
      int darkColor = color.getDarkColor();
      setBackground(new GradientRectangle(Orientation.TOP_BOTTOM, 
            Color.argb(125, Color.red(lightColor), Color.green(lightColor), Color.blue(lightColor)),
            Color.argb(125, Color.red(darkColor), Color.green(darkColor), Color.blue(darkColor)), 25,
            sInstanceCount == 2 ? Color.WHITE : Color.BLACK));      
      //Update the different token views in this player area      
      BuddhaTokenView buddhaTokenView = (BuddhaTokenView)findViewById(R.id.buddha_tokens);
      if(buddhaTokenView != null) {
         buddhaTokenView.setData(mPlayerData);
      }
      
      QiTokenView qiTokenView = (QiTokenView)findViewById(R.id.qi_tokens);
      if(qiTokenView != null) {
         qiTokenView.setData(mPlayerData);
      }
      
      for(EColor c : EColor.values()) {
         TaoTokenView taoTokenView = (TaoTokenView)findViewById(c.getTokenId());
         taoTokenView.setData(mPlayerData);
      }
            
      YinYangTokenView yinYangTokenView = (YinYangTokenView)findViewById(R.id.yin_yang);
      if(yinYangTokenView != null) {
         yinYangTokenView.setData(mPlayerData);
      }
        
      GameUtils.invalidateView(this);
   }

   /*
    * (non-Javadoc)
    * @see android.widget.LinearLayout#onDraw(android.graphics.Canvas)
    */
   @Override
   protected void onDraw(Canvas pCanvas) {
      super.onDraw(pCanvas);

      if(!isInEditMode()) {
         //Highlight the player data if it is their turn
         GradientRectangle bg = ((GradientRectangle)getBackground());
         if(mPlayerData != null && mPlayerData.getColor() == 
               GhostStoriesGameManager.getInstance().getCurrentPlayerData().getColor()) {
            bg.setBorderColor(Color.WHITE);
         } else {           
            bg.setBorderColor(Color.BLACK);
         }
      }
   }
   
   /**
    * Initialize the view
    */
   private void initialize() {  
      if(!isInEditMode()) {
         GhostStoriesGameManager.getInstance().addGamePhaseListener(this);
      } else {
         //Cheap hack to test layouts in editor mode.         
         sInstanceCount = sInstanceCount % EColor.getPlayerColors().size();
         if(sInstanceCount < EColor.getPlayerColors().size()) {
            EColor color = EColor.getPlayerColors().toArray(new EColor[0])[sInstanceCount];
            int lightColor = color.getLightColor();
            int darkColor = color.getDarkColor();
            setBackground(new GradientRectangle(Orientation.TOP_BOTTOM, 
                  //color.getLightColor(), color.getDarkColor(), 25));
                  Color.argb(125, Color.red(lightColor), Color.green(lightColor), Color.blue(lightColor)),
                  Color.argb(125, Color.red(darkColor), Color.green(darkColor), Color.blue(darkColor)), 25,
                  sInstanceCount == 0 ? Color.WHITE : Color.BLACK));    
            if(sInstanceCount == 3) {
               //setVisibility(View.GONE);
            }
         }
         sInstanceCount++;
      }
   }

   /** Debug field used to test layout in editor mode **/
   private static int sInstanceCount = 0;
   
   /** The data model **/
   private PlayerData mPlayerData = null;
}




Java Source Code List

com.drawable.shapes.GradientRectangle.java
com.interfaces.IDraggable.java
com.utils.AndroidUtils.java
com.utils.AnimationUtils2.java
com.utils.ImageLoadingTask.java
com.utils.ImageRotationTask.java
com.utils.ImageViewUtils.java
com.views.NumberedImageView.java
com.views.ToggledImageView.java
com.views.layouts.ScaledLinearLayout.java
com.views.layouts.ScaledRelativeLayout.java
com.views.layouts.SquareGridLayout.java
com.views.layouts.SquareLinearLayout.java
com.views.layouts.SquareTableLayout.java
com.views.layouts.ZoomableRelativeLayout.java
com.views.listeners.DragTouchListener.java
games.ghoststories.activities.GameLoadingActivity.java
games.ghoststories.activities.GameScreenActivity.java
games.ghoststories.activities.TitleActivity.java
games.ghoststories.controllers.GhostDeckController.java
games.ghoststories.controllers.HaunterController.java
games.ghoststories.controllers.PlayerBoardCardController.java
games.ghoststories.controllers.VillageTileController.java
games.ghoststories.controllers.combat.CombatAreaController.java
games.ghoststories.controllers.combat.DiceDragListener.java
games.ghoststories.controllers.combat.GhostDragListener.java
games.ghoststories.controllers.combat.TaoTokenDragListener.java
games.ghoststories.data.DragData.java
games.ghoststories.data.GameBoardData.java
games.ghoststories.data.GhostData.java
games.ghoststories.data.GhostDeckData.java
games.ghoststories.data.GhostGraveyardData.java
games.ghoststories.data.GhostStoriesBitmaps.java
games.ghoststories.data.GhostStoriesConstants.java
games.ghoststories.data.GhostStoriesGameManager.java
games.ghoststories.data.PlayerData.java
games.ghoststories.data.TokenSupplyData.java
games.ghoststories.data.interfaces.IGameBoardListener.java
games.ghoststories.data.interfaces.IGamePhaseListener.java
games.ghoststories.data.interfaces.IGameTokenListener.java
games.ghoststories.data.interfaces.IGhostDeckListener.java
games.ghoststories.data.interfaces.IGhostListener.java
games.ghoststories.data.interfaces.ITokenListener.java
games.ghoststories.data.interfaces.IVillageTileListener.java
games.ghoststories.data.village.BuddhistTempleTileData.java
games.ghoststories.data.village.CircleOfPrayerTileData.java
games.ghoststories.data.village.VillageTileDataFactory.java
games.ghoststories.data.village.VillageTileData.java
games.ghoststories.enums.EBoardLocation.java
games.ghoststories.enums.ECardLocation.java
games.ghoststories.enums.EColor.java
games.ghoststories.enums.ECombatPhase.java
games.ghoststories.enums.EDiceSide.java
games.ghoststories.enums.EDice.java
games.ghoststories.enums.EDifficulty.java
games.ghoststories.enums.EDragItem.java
games.ghoststories.enums.EGamePhase.java
games.ghoststories.enums.EGhostAbility.java
games.ghoststories.enums.EHaunterLocation.java
games.ghoststories.enums.EPlayerAbility.java
games.ghoststories.enums.ETileLocation.java
games.ghoststories.enums.EVillageTile.java
games.ghoststories.fragments.AuxAreaFragment.java
games.ghoststories.fragments.GameboardFragment.java
games.ghoststories.utils.BitmapUtils.java
games.ghoststories.utils.GameUtils.java
games.ghoststories.utils.XmlUtils.java
games.ghoststories.views.GameScreen.java
games.ghoststories.views.aux_area.CardInfoView.java
games.ghoststories.views.aux_area.GamePhaseDetailsView.java
games.ghoststories.views.aux_area.GamePhaseView.java
games.ghoststories.views.aux_area.GhostDeckView.java
games.ghoststories.views.aux_area.GhostGraveyardCardView.java
games.ghoststories.views.aux_area.PlayerInfoView.java
games.ghoststories.views.combat.CombatDamageView.java
games.ghoststories.views.combat.CombatDiceAreaView.java
games.ghoststories.views.combat.CombatDiceView.java
games.ghoststories.views.combat.CombatGhostView.java
games.ghoststories.views.combat.CombatInstructionsView.java
games.ghoststories.views.combat.CombatRollView.java
games.ghoststories.views.combat.CombatView.java
games.ghoststories.views.combat.ExtraCombatDiceView.java
games.ghoststories.views.combat.GhostHealthView.java
games.ghoststories.views.common.AbstractNumberedTokenView.java
games.ghoststories.views.common.BuddhaTokenView.java
games.ghoststories.views.common.QiTokenView.java
games.ghoststories.views.common.TaoTokenView.java
games.ghoststories.views.common.YinYangTokenView.java
games.ghoststories.views.gameboard.PlayerAreaView.java
games.ghoststories.views.gameboard.PlayerBoardCardView.java
games.ghoststories.views.gameboard.PlayerBoardView.java
games.ghoststories.views.gameboard.PlayerTokenAreaView.java
games.ghoststories.views.gameboard.VillageTileView.java
games.ghoststories.views.graveyard.GraveyardScrollView.java
games.ghoststories.views.graveyard.GraveyardView.java
games.ghoststories.views.title.TitleButton.java
games.ghoststories.views.title.TitleScreen.java
games.ghoststories.views.village.CircleOfPrayerView.java