Exemplo n.º 1
0
        public void AddCardToHand(Player player, WorkingCard card = null)
        {
            if (card == null)
            {
                if (player.CardsInDeck.Count == 0)
                {
                    if (!_tutorialManager.IsTutorial)
                    {
                        player.DamageByNoMoreCardsInDeck++;
                        player.Health -= player.DamageByNoMoreCardsInDeck;
                        _vfxController.SpawnGotDamageEffect(player, -player.DamageByNoMoreCardsInDeck);
                    }
                    return;
                }

                card = player.CardsInDeck[0];
            }

            if (CheckIsMoreThanMaxCards(card, player))
            {
                return;
            }

            player.RemoveCardFromDeck(card);
            player.AddCardToHand(card);
        }
Exemplo n.º 2
0
        public void AttackPlayerByUnit(BoardUnit attackingUnit, Player attackedPlayer)
        {
            int damageAttacking = attackingUnit.CurrentDamage;

            if (attackingUnit != null && attackedPlayer != null)
            {
                attackedPlayer.Health -= damageAttacking;
            }

            attackingUnit.InvokeUnitAttacked(attackedPlayer, damageAttacking, true);

            _vfxController.SpawnGotDamageEffect(attackedPlayer, -damageAttacking);

            _tutorialManager.ReportAction(Enumerators.TutorialReportAction.ATTACK_CARD_HERO);

            _actionsQueueController.PostGameActionReport(_actionsQueueController.FormatGameActionReport(
                                                             Enumerators.ActionType.ATTACK_PLAYER_BY_CREATURE, new object[]
            {
                attackingUnit, attackedPlayer
            }));
        }