Android Open Source - GhostStories Ghost Deck Controller






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.controllers;
/*from w ww . ja v a  2 s . c  o m*/
import games.ghoststories.data.DragData;
import games.ghoststories.data.GhostDeckData;
import games.ghoststories.data.GhostStoriesGameManager;
import games.ghoststories.enums.EDragItem;
import games.ghoststories.enums.EGamePhase;
import games.ghoststories.views.aux_area.GhostDeckView;
import android.view.DragEvent;
import android.view.MotionEvent;
import android.view.View;

import com.views.listeners.DragTouchListener;

/**
 * Controller class responsible for handling interactions with the ghost deck.
 * These interactions include:
 * <li>Drawing the top card of the deck
 * <li>Dragging the top card of the deck to the game board
 */
public class GhostDeckController implements View.OnClickListener, View.OnDragListener {
   /**
    * Constructor
    * @param pGhostDeckData
    * @param pGhostDeckView
    */
   public GhostDeckController(GhostDeckData pGhostDeckData, 
         GhostDeckView pGhostDeckView) {
      mGhostDeckData = pGhostDeckData;
      mGhostDeckView = pGhostDeckView;
      mGhostDeckView.setOnClickListener(this);
      mGhostDeckView.setOnTouchListener(mDragTouchListener);
      mGhostDeckView.setOnDragListener(this);
   }

   /**
    * Called when the deck is "clicked" on. Flips the top card if it is not
    * already flipped and we are in the correct phase of the game.
    */
   public void onClick(View pView) {  
      if(GhostStoriesGameManager.getInstance().getCurrentGamePhase() ==
            EGamePhase.YinPhase3 && !mGhostDeckData.getTopCard().isFlipped()) {
         mGhostDeckData.flipTopCard();      
      }              
   }
   
   /**
    * Handles the end of a drag event. If the card was successfully dropped 
    * on the board the remove the top card from the ghost deck. Otherwise reset
    * the top card to a non dragging state.
    */
   public boolean onDrag(View pView, DragEvent pEvent) {   
      boolean handled = false;
      Object data = pEvent.getLocalState();
      if(data instanceof DragData) {
         DragData dragData = (DragData)data;
         if(dragData.getDragItem() == EDragItem.GHOST_CARD) {
            switch(pEvent.getAction()) {
            case DragEvent.ACTION_DRAG_ENDED:
               if(pEvent.getResult()) {
                  mGhostDeckData.removeTopCard();
               } else {
                  mGhostDeckData.setTopCardDragging(false);
               }
               handled = true;
               break;
            default:
               break;
            }
         }
      }      
      return handled;
   }

   /**
    * Touch listener that initiates a drag if dragging is allowed based on the
    * current game phase and top card state.
    */
   private DragTouchListener mDragTouchListener = new DragTouchListener() {
      public boolean onTouch(View pView, MotionEvent pEvent) {
         if(GhostStoriesGameManager.getInstance().getCurrentGamePhase() == 
               EGamePhase.YinPhase3 && mGhostDeckData.getTopCard().isFlipped()) {
            if(super.onTouch(pView, pEvent)) {
               mGhostDeckData.setTopCardDragging(true);
               return true;
            }
         }
         return false;
      };
   };           

   /** The data representing the ghost deck **/
   private final GhostDeckData mGhostDeckData;
   /** The view for the ghost deck **/
   private final GhostDeckView mGhostDeckView;
}




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