public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { int cardsShuffled = currentState.PlayerDiscard.Count; ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this); if (currentState.PlayerExhaust.Count > 0) { mutator.ResurrectFromExhaustToHand(currentState.PlayerExhaust.Last()); } foreach (IPlayerCard repairedDamage in targetCards) { if (repairedDamage != null) { mutator.ExhaustFromHand(repairedDamage); } } return(mutator .DiscardFromHand(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { ChaseMutator muta = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .AddPlayerSpeed(currentState.MaxPlayerSpeed - currentState.PlayerSpeed) .AddLead(LeadIncrease) .AddDamageToTopOfDeck(DamageTaken); foreach (IRouteCard targetCard in targetCards) { if (targetCard != null) { muta.DiscardFromRoute(targetCard); } } return(muta .DiscardFromHand(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { int speedIncrease = SpeedIncrease; int leadIncrease = LeadIncrease; if (currentState.PlayerSpeed != 0) { speedIncrease = 0; leadIncrease = 0; } ChaseMutator muta = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .AddPlayerSpeed(speedIncrease) .AddLead(leadIncrease) .DiscardFromHand(this); foreach (IRouteCard targetCard in targetCards) { if (targetCard != null) { muta.DiscardFromRoute(targetCard); } } return(muta.Done()); }
public override Chase Play(Chase currentState, UIManager uiManager) { ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}"); mutator.ActivateCard(this); mutator.AddPlayerSpeed(-(currentState.PlayerSpeed - SetSpeedTo)); mutator.AddLead(LeadIncrease); return(mutator.ExhaustFromRoute(this).Done()); }
public override Chase Play(Chase currentState, UIManager uiManager) { ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}"); mutator.ActivateCard(this); if (currentState.PlayerSpeed > SpeedThreshold) { mutator.AddDamageToTopOfDeck(Damage); } return(mutator.DiscardFromRoute(this).Done()); }
public override Chase Play(Chase currentState, UIManager uiManager) { ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}"); if (currentState.Lead >= LeadRequired) { mutator.SetPlayerHasWon(); } return(mutator .ActivateCard(this) .DiscardFromRoute(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { ChaseMutator muta = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .AddControl( Mathf.FloorToInt(ControlPerSpeed * currentState.PlayerSpeed) ) .DiscardFromHand(this); return(muta.Done()); }
public override Chase Play(Chase currentState, UIManager uiManager) { ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}"); mutator.ActivateCard(this); bool triggerFirstDecrease = currentState.PlayerSpeed > SpeedThreshold1; bool triggerSecondDecrease = currentState.PlayerSpeed - SpeedDecrease1 > SpeedThreshold2; if (triggerFirstDecrease) { mutator.AddPlayerSpeed(-SpeedDecrease1); } if (triggerSecondDecrease) { mutator.AddPlayerSpeed(-SpeedDecrease2); } return(mutator.DiscardFromRoute(this).Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager) { ChaseMutator chaseMutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .AddLead(LeadGained); if (currentState.Lead <= ExtraLeadGainMaxTrigger) { chaseMutator.AddLead(ExtraLeadGainValue); } return(chaseMutator .ExhaustFromHand(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this); foreach (IPlayerCard card in targetCards) { mutator.DrawSpecific(card); } return(mutator .DiscardFromHand(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .AddLead(LeadIncrease); if (currentState.CurrentRoute.Exists(route => route.CardType == RouteCardType.Maneuver)) { mutator.AddLead(LeadIncreaseOnManeuver); } return(mutator .ExhaustFromHand(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { ChaseMutator muta = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .DiscardFromHand(this); foreach (IRouteCard targetCard in targetCards) { if (targetCard != null) { muta.DiscardFromRoute(targetCard); } } return(muta.Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { int cardsShuffled = currentState.PlayerDiscard.Count; ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .RecyclePlayerDeck(); if (cardsShuffled >= MinCardsShuffledForDraw) { mutator.DrawCards(NumCardsToDraw); } return(mutator .DiscardFromHand(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { ChaseMutator mutator = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this); foreach (IPlayerCard repairedDamage in targetCards) { if (repairedDamage != null) { mutator.ExhaustFromHand(repairedDamage); } } return(mutator .ExhaustFromHand(this) .Done()); }
public override Chase Play( Chase currentState, List <ICard> targetCards, UIManager uiManager ) { ChaseMutator chase = new ChaseMutator(currentState, uiManager, $"playing {this.Name}") .AddControl(-this.ControlCost) .ActivateCard(this) .DrawCards(CardsToDraw); foreach (IPlayerCard discardedCard in targetCards) { if (discardedCard != null) { chase.DiscardFromHand(discardedCard); } } return(chase .DiscardFromHand(this) .Done()); }