public async Task <TrainerCard> UpdateTrainerCard(TrainerCard card) { _trainingPlannerDbContext.Update(card); await _trainingPlannerDbContext.SaveChangesAsync(); return(card); }
public void DiscardAny_OnlyTrainer() { var effect = new DiscardCardEffect() { Amount = 1, CardType = CardType.Any }; var player = new Player(); var target = new TrainerCard(); player.Hand.Add(new EnergyCard()); player.Hand.Add(new PokemonCard()); player.Hand.Add(target); var sub = Substitute.For <INetworkPlayer>(); sub.SendAndWaitForResponse <CardListMessage>(Arg.Any <NetworkMessage>()).ReturnsForAnyArgs(new CardListMessage { Cards = new List <NetworkId> { target.Id } }); player.SetNetworkPlayer(sub); effect.Process(new GameField(), player, null, null); Assert.Single(player.DiscardPile); Assert.Equal(2, player.Hand.Count); Assert.Equal(target.Id, player.DiscardPile[0].Id); }
public async Task <IActionResult> Edit(int id, [Bind("CardID,CardName,CardImageURL,CardImageHiURL,CardCatID,CardTypeID,SetID,CardNum,Artist,CardRarityID,LastUpdateDate")] TrainerCard trainerCard) { if (id != trainerCard.CardID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(trainerCard); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!TrainerCardExists(trainerCard.CardID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CardCatID"] = new SelectList(_context.CardCats, "CardCatID", "CardCatID", trainerCard.CardCatID); ViewData["CardRarityID"] = new SelectList(_context.CardRarities, "CardRarityID", "CardRarityID", trainerCard.CardRarityID); ViewData["CardTypeID"] = new SelectList(_context.CardTypes, "CardTypeID", "CardTypeID", trainerCard.CardTypeID); ViewData["SetID"] = new SelectList(_context.Sets, "SetID", "SetID", trainerCard.SetID); return(View(trainerCard)); }
public async Task <TrainerCard> CreateTrainerCard(TrainerCard card) { await _trainingPlannerDbContext.TrainerCards.AddAsync(card); await _trainingPlannerDbContext.SaveChangesAsync(); return(card); }
internal void SetCard(TrainerCard trainerCard) { if (card == null || !card.Id.Equals(trainerCard.Id)) { CardImageLoader.Instance.LoadSprite(trainerCard, image); } card = trainerCard; }
public void TriggerCardPlayed(TrainerCard card) { GameController.Instance.playerHand.RemoveCard(card); if (card.Owner.Id.Equals(GameController.Instance.myId)) { GameController.Instance.Player.DiscardPile.Add(card); } StartCoroutine(DisplayCardEnumerator(card)); }
public void CanActivate_Stadium() { var card = new TrainerCard(); card.Ability = new RetreatCostModifierAbility(); var game = new GameField(); game.InitTest(); Assert.True(card.Ability.CanActivate(game, game.ActivePlayer, game.NonActivePlayer)); }
public async Task <IActionResult> Create([Bind("CardID,CardName,CardImageURL,CardImageHiURL,CardCatID,CardTypeID,SetID,CardNum,Artist,CardRarityID,LastUpdateDate")] TrainerCard trainerCard) { if (ModelState.IsValid) { _context.Add(trainerCard); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["CardCatID"] = new SelectList(_context.CardCats, "CardCatID", "CardCatID", trainerCard.CardCatID); ViewData["CardRarityID"] = new SelectList(_context.CardRarities, "CardRarityID", "CardRarityID", trainerCard.CardRarityID); ViewData["CardTypeID"] = new SelectList(_context.CardTypes, "CardTypeID", "CardTypeID", trainerCard.CardTypeID); ViewData["SetID"] = new SelectList(_context.Sets, "SetID", "SetID", trainerCard.SetID); return(View(trainerCard)); }
IEnumerator DisplayCardEnumerator(TrainerCard card) { cardImage.sprite = null; cardImage.rectTransform.localScale = new Vector3(0.1f, 0.1f, 1); cardImage.color = new Color(cardImage.color.r, cardImage.color.g, cardImage.color.b, 0); yield return(loader.LoadSpriteRoutine(card, cardImage)); while (true) { bool anyChanged = false; if (cardImage.color.a < 1) { cardImage.color = new Color(cardImage.color.r, cardImage.color.g, cardImage.color.b, cardImage.color.a + 0.05f); anyChanged = true; } if (cardImage.rectTransform.localScale.x < 1) { cardImage.rectTransform.localScale = new Vector3(cardImage.rectTransform.localScale.x + 0.05f, cardImage.rectTransform.localScale.y + 0.05f, 1); anyChanged = true; } if (!anyChanged) { break; } yield return(new WaitForSeconds(0.01f)); } yield return(new WaitForSeconds(1)); while (cardImage.color.a > 0) { cardImage.color = new Color(cardImage.color.r, cardImage.color.g, cardImage.color.b, cardImage.color.a - 0.05f); yield return(new WaitForSeconds(0.01f)); } GameEventHandler.Instance.EventCompleted(); }
private void PlayStadiumCard(TrainerCard trainerCard) { trainerCard.RevealToAll(); CurrentTrainerCard = trainerCard; TriggerAllAbilitiesOfType(TriggerType.TrainerCardPlayed); GameLog.AddMessage(ActivePlayer.NetworkPlayer?.Name + " Plays " + trainerCard.GetName()); PushGameLogUpdatesToPlayers(); ActivePlayer.Hand.Remove(trainerCard); var trainerEvent = new StadiumCardPlayedEvent() { Card = trainerCard, Player = ActivePlayer.Id }; SendEventToPlayers(trainerEvent); trainerCard.Process(this, ActivePlayer, NonActivePlayer); if (StadiumCard != null) { StadiumCard.Owner.DiscardPile.Add(StadiumCard); } StadiumCard = trainerCard; CurrentTrainerCard = null; if (ActivePlayer.IsDead) { GameLog.AddMessage($"{ActivePlayer.NetworkPlayer?.Name} loses because they drew to many cards"); EndGame(NonActivePlayer.Id); } SendEventToPlayers(new GameInfoEvent { }); }
public void PlayTrainerCard(TrainerCard trainerCard, Player asPlayer = null) { var caster = asPlayer == null ? ActivePlayer : asPlayer; var opponent = GetOpponentOf(caster); if (asPlayer == null && !caster.Hand.Contains(trainerCard)) { GameLog.AddMessage($"{ActivePlayer?.NetworkPlayer?.Name} Tried to play a trainer ({trainerCard.Name}) card not in his hand"); return; } if (GetAllPassiveAbilities().Any(ability => ability.ModifierType == PassiveModifierType.StopTrainerCast)) { GameLog.AddMessage($"{trainerCard.Name} stopped by ability"); return; } else if (!trainerCard.CanCast(this, caster, opponent)) { GameLog.AddMessage($"{trainerCard.Name} could not be cast because something is missing"); return; } if (trainerCard.IsStadium()) { PlayStadiumCard(trainerCard); return; } trainerCard.RevealToAll(); CurrentTrainerCard = trainerCard; TriggerAllAbilitiesOfType(TriggerType.TrainerCardPlayed); GameLog.AddMessage(caster.NetworkPlayer?.Name + " Plays " + trainerCard.GetName()); PushGameLogUpdatesToPlayers(); caster.Hand.Remove(trainerCard); var trainerEvent = new TrainerCardPlayed() { Card = trainerCard, Player = caster.Id }; SendEventToPlayers(trainerEvent); trainerCard.Process(this, caster, opponent); if (trainerCard.AddToDiscardWhenCasting) { trainerCard.Owner.DiscardPile.Add(trainerCard); } CurrentTrainerCard = null; if (caster.IsDead) { GameLog.AddMessage($"{caster.NetworkPlayer?.Name} loses because they drew to many cards"); EndGame(opponent.Id); } SendEventToPlayers(new GameInfoEvent { }); }
public async Task DeleteTrainerCard(TrainerCard card) { _trainingPlannerDbContext.TrainerCards.Remove(card); await _trainingPlannerDbContext.SaveChangesAsync(); }
public void Update(TrainerCard obj) { throw new NotImplementedException(); }