示例#1
0
    // public functions
    /// <summary>
    /// Function perform update of known information about player.
    /// </summary>
    /// <param name="playerID">ID of player which need update.</param>
    /// <param name="newCardID">ID of new card of player.</param>
    /// <param name="oldCardID">ID of old card of player, needed if card was removed.</param>
    /// <returns>Returns true if the change have visual consequencies, otherwise return false.</returns>
    public bool ApplyNewPlayerData(int playerID, BangCard newCardID, BangCard oldCardID)
    {
        PlayerStatus plStat = _playersStatusHolder[playerID];

        if (newCardID == BangCard.NONE)
        {
            // card removed
        }
        else if (newCardID == BangCard.UNKNOWN)
        {
            plStat.PlayerState = BangState.NEW_CARD_UNKNOWN;
        }
        else if (newCardID == BangCard.MUSTANG ||
                 newCardID == BangCard.SILVER ||
                 newCardID == BangCard.APPALOOSA)
        {
            plStat.PlayerState = BangState.NEW_CARD_HORSE_UPGRADE;
        }
        else if (newCardID == BangCard.VOLCANIC ||
                 newCardID == BangCard.SCHOFIELD ||
                 newCardID == BangCard.REMMINGTON ||
                 newCardID == BangCard.CARABINE ||
                 newCardID == BangCard.WINCHESTER)
        {
            plStat.PlayerState = BangState.NEW_CARD_GUN_UPGRADE;
        }
        return(true);
    }
示例#2
0
 /// <summary>
 /// Perform Bang state update, after the new card in common area Appear.
 /// </summary>
 /// <param name="playerID"></param>
 /// <param name="cardID"></param>
 /// <param name="packageID"> </param>
 /// <returns>Returns true if the change have visual consequencies, otherwise return false.</returns>
 public bool ApplyNewCommonData(int playerID, BangCard cardID, CommonAreaPackages packageID)
 {
     if (cardID == BangCard.UNKNOWN)
     {
         _currentState = BangState.NEW_CARD_UNKNOWN;
     }
     else if (cardID == BangCard.BANG_A ||
              cardID == BangCard.BANG_B)
     {
         _currentState = BangState.BANG_PLAYED;
     }
     else if ((cardID == BangCard.DODGE_A ||
               cardID == BangCard.DODGE_A_M ||
               cardID == BangCard.DODGE_B ||
               cardID == BangCard.DODGE_B_M) &&
              _currentState == BangState.BANG_PLAYED)
     {
         _currentState = BangState.DODGE_PLAYED;
     }
     return(true);
 }