Exemple #1
0
        private void ProcessLandIntoPlay(int playerId, Card land)
        {// put land into play under the control of target player
            Player targetPlayer = Players.FirstOrDefault(o => o.Stats.Id == playerId);

            //need to make decisions on whether land comes into play tapped
            targetPlayer.Lands.Add(land);
            //trigger land count changed events
        }
Exemple #2
0
        public void EndTurn()
        {
            Player nextPlayer = GetNextPlayer();

            Phase.PhaseName       = Enumerations.Phase.Beginning;
            Phase.SubPhaseName    = SubPhase.Untap;
            Phase.CurrentPlayer   = nextPlayer.Stats.Name;
            Phase.CurrentPlayerId = nextPlayer.Stats.Id;
        }
Exemple #3
0
        public void CastSpell(int playerId, int CardId, List <Target> targets)
        {
            Card card = FindCard(playerId, CardId);

            ActiveStack.Add(new StackEntry()
            {
                Card    = card,
                OwnerId = playerId,
                Targets = targets
            });
            Player activePlayer = Players.FirstOrDefault(o => o.Stats.Id == playerId);

            activePlayer.Hand.Remove(card);
        }
Exemple #4
0
 public void PlayerDrawsXCards(Player player, int drawCount)
 {
     if (player.Library.Count < drawCount)
     {
         player.LoseCondition = LoseCondition.NocardsInLibrary;
     }
     else
     {
         for (int i = 0; i < drawCount; i++)
         {
             var currentCard = player.Library[0];
             player.Hand.Add(currentCard);
             player.Library.RemoveAt(0);
         }
     }
 }
Exemple #5
0
        private void ProcessDamageEffect(int playerId, Effect effect)
        {//proccess damage effect on target player
            int    damageToDeal = effect.Value;
            Player targetPlayer = Players.FirstOrDefault(o => o.Stats.Id == playerId);

            if (targetPlayer.Stats.DamagePrevention > damageToDeal)
            {
                targetPlayer.Stats.DamagePrevention = targetPlayer.Stats.DamagePrevention - damageToDeal;
                damageToDeal = 0;
            }
            else if (targetPlayer.Stats.DamagePrevention > 0)
            {
                damageToDeal = damageToDeal - targetPlayer.Stats.DamagePrevention;
                targetPlayer.Stats.DamagePrevention = 0;
            }
            targetPlayer.Stats.Life = targetPlayer.Stats.Life - damageToDeal;
        }
Exemple #6
0
        private void ProcessPreventDamageEffect(int playerId, Effect effect)
        {//proccess PreventDamage effect on target player
            Player targetPlayer = Players.FirstOrDefault(o => o.Stats.Id == playerId);

            targetPlayer.Stats.DamagePrevention = targetPlayer.Stats.DamagePrevention + effect.Value;
        }
Exemple #7
0
        private void ProcessDrawXCardsEffect(int playerId, Effect effect)
        {//target player draws x cards
            Player targetPlayer = Players.FirstOrDefault(o => o.Stats.Id == playerId);

            PlayerDrawsXCards(targetPlayer, 1);
        }
Exemple #8
0
        private void ProcessAddLifeEffect(int playerId, Effect effect)
        {//process add life effect on target player
            Player targetPlayer = Players.FirstOrDefault(o => o.Stats.Id == playerId);

            targetPlayer.Stats.Life = targetPlayer.Stats.Life + effect.Value;
        }