public void PlayOpponentCard( Player player, WorkingCard card, object target, Action <WorkingCard, object> completePlayCardCallback) { GameObject randomCard = _battlegroundController.OpponentHandCards[ Random.Range(0, _battlegroundController.OpponentHandCards.Count)]; _battlegroundController.OpponentHandCards.Remove(randomCard); _tutorialManager.ReportAction(Enumerators.TutorialReportAction.MOVE_CARD); _soundManager.PlaySound(Enumerators.SoundType.CARD_FLY_HAND_TO_BATTLEGROUND, Constants.CardsMoveSoundVolume); player.ThrowPlayCardEvent(card); randomCard.transform.DOMove(Vector3.up * 2.5f, 0.6f).OnComplete( () => { randomCard.transform.Find("RemoveCardParticle").GetComponent <ParticleSystem>().Play(); randomCard.transform.DOScale(Vector3.one * 1.2f, 0.6f).OnComplete( () => { RemoveOpponentCard(new object[] { randomCard }); _timerManager.AddTimer( x => { completePlayCardCallback?.Invoke(card, target); }, null, 0.1f); _ranksController.UpdateRanksByElements(player.BoardCards, card.LibraryCard); _timerManager.AddTimer( x => { player.GraveyardCardsCount++; }); }); }); randomCard.transform.DORotate(Vector3.zero, 0.5f); _battlegroundController.UpdatePositionOfCardsInOpponentHand(true); }
public void InitializePlayer() { _gameplayManager.OpponentPlayer = new Player(GameObject.Find("Opponent"), true); _fightTargetingArrowPrefab = _loadObjectsManager.GetObjectByPath <GameObject>("Prefabs/Gameplay/Arrow/AttackArrowVFX_Object"); _attackedUnitTargets = new List <BoardUnit>(); _unitsToIgnoreThisTurn = new List <BoardUnit>(); if (!_gameplayManager.IsSpecificGameplayBattleground) { List <string> playerDeck = new List <string>(); int deckId = _gameplayManager.OpponentDeckId; foreach (DeckCardData card in _dataManager.CachedOpponentDecksData.Decks.First(d => d.Id == deckId) .Cards) { for (int i = 0; i < card.Amount; i++) { playerDeck.Add(card.CardName); } } _gameplayManager.OpponentPlayer.SetDeck(playerDeck); _battlegroundController.UpdatePositionOfCardsInOpponentHand(); } _gameplayManager.OpponentPlayer.TurnStarted += TurnStartedHandler; _gameplayManager.OpponentPlayer.TurnEnded += TurnEndedHandler; }
public void MoveCardFromPlayerDeckToOpponentHandAnimation(Player fromDeck, Player toHand, GameObject boardCard) { Animator animator = boardCard.GetComponent <Animator>(); boardCard.transform.localScale = Vector3.zero; boardCard.transform.DOScale(new Vector3(0.9f, 0.9f, 0.9f), 0.15f); animator.enabled = true; animator.StopPlayback(); animator.Play("MoveCardFromPlayerDeckToOpponentHand"); _timerManager.AddTimer( x => { animator.enabled = false; _battlegroundController.OpponentHandCards.Add(boardCard); _battlegroundController.UpdatePositionOfCardsInOpponentHand(true); }, null, 1.1f); }