コード例 #1
0
ファイル: GameTable.cs プロジェクト: sciaopin/bang-sharp
        public void PlayerPlayCardOnTable(TableCard card)
        {
            Player owner = card.Owner;
            if(owner == null)
                throw new InvalidOperationException();
            if(!owner.RemoveCardFromHand(card))
                throw new InvalidOperationException();

            owner.AddCardToTable(card);
            game.Session.EventManager.OnPlayerPlayedCardOnTable(owner, card);
            owner.CheckEmptyHand();
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: sciaopin/bang-sharp
 public bool RemoveCardFromTable(TableCard card)
 {
     return table.Remove(card);
 }
コード例 #3
0
ファイル: GameTable.cs プロジェクト: sciaopin/bang-sharp
        public void PassTableCard(TableCard card, Player targetPlayer)
        {
            Player owner = card.Owner;
            if(owner == null)
                throw new InvalidOperationException();
            if(!owner.RemoveCardFromHand(card))
                if(!owner.RemoveCardFromTable(card))
                    throw new InvalidOperationException();

            targetPlayer.AddCardToTable(card);
            game.Session.EventManager.OnPassedTableCard(owner, card, targetPlayer);
            owner.CheckEmptyHand();
        }
コード例 #4
0
ファイル: Player.cs プロジェクト: sciaopin/bang-sharp
 public void AddCardToTable(TableCard card)
 {
     if(card == null)
         return;
     card.Owner = this;
     table.Add(card);
 }