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 }
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; }
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); }
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); } } }
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; }
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; }
private void ProcessDrawXCardsEffect(int playerId, Effect effect) {//target player draws x cards Player targetPlayer = Players.FirstOrDefault(o => o.Stats.Id == playerId); PlayerDrawsXCards(targetPlayer, 1); }
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; }