public void DamageHero(CardInfoScript card, bool isEnemyAttacked)
    {
        if (isEnemyAttacked)
        {
            EnemyHP = Mathf.Clamp(EnemyHP - card.SelfCard.Attack, 0, int.MaxValue);
        }
        else
        {
            PlayerHP = Mathf.Clamp(PlayerHP - card.SelfCard.Attack, 0, int.MaxValue);
        }

        ShowHP();
        card.DeHighlightCard();
        CheckForResult();
    }
    void DestroyCard(CardInfoScript card)
    {
        card.GetComponent <CardMovementScript>().OnEndDrag(null); // для снятия прототипа карты с поля

        if (PlayerFieldCards.Exists(x => x == card))              //карта на поле игрока
        {
            PlayerFieldCards.Remove(card);
        }
        else /*if (EnemyFieldCards.Exists(x => x == card))*/ // поле соперника
        {
            EnemyFieldCards.Remove(card);
        }

        Destroy(card.gameObject);
    }
    public void OnDrop(PointerEventData eventData)
    {
        if (!GameManager.IsPlayerTurn)
        {
            return;
        }

        CardInfoScript card = eventData.pointerDrag.GetComponent <CardInfoScript>();

        if (card && card.SelfCard.CanAttack && Type == HeroType.ENEMY)
        {
            card.SelfCard.CanAttack = false;
            GameManager.DamageHero(card, true);
        }
    }
Esempio n. 4
0
    public void OnDrop(PointerEventData eventData)
    {
        if (!GetComponent <CardMovementScript>().GameManager.IsPlayerTurn)
        {
            return;
        }

        CardInfoScript card = eventData.pointerDrag.GetComponent <CardInfoScript>(); // атакующая карта

        if (card && card.SelfCard.CanAttack &&
            transform.parent == GetComponent <CardMovementScript>().GameManager.EnemyField)
        {
            card.SelfCard.ChangeAttackState(false);

            if (card.IsPlayer)
            {
                card.DeHighlightCard();
            }

            GetComponent <CardMovementScript>().GameManager.CardsFight(card, GetComponent <CardInfoScript>());
        }
    }
    /*void GiveNewCards()
     * {
     *
     *
     * }*/

    public void CardsFight(CardInfoScript playerCard, CardInfoScript enemyCard)
    {
        playerCard.SelfCard.GetDamage(enemyCard.SelfCard.Attack);
        enemyCard.SelfCard.GetDamage(playerCard.SelfCard.Attack);

        if (playerCard.SelfCard.IsAlive)
        {
            playerCard.RefreshData();
        }
        else
        {
            DestroyCard(playerCard);
        }

        if (enemyCard.SelfCard.IsAlive)
        {
            enemyCard.RefreshData();
        }
        else
        {
            DestroyCard(enemyCard);
        }
    }