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); } }
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); } }