public override void takeAttackDamage(ACreature attacker, int damage) { mDamageTaken = damage; /*if ( attacker.getAttackType ( ) != RangedAttack.TYPE_ATTACK ) * counterAttackerTarget ( attacker );*/ }
private IEnumerator _attackTarget(ACreature target, float delay) { yield return(new WaitForSeconds(delay)); GetComponent <AAttackComponent> ( ).attack(target.gameObject); target.takeAttackDamage(this, mAttack); }
public override void takeAttackDamage(ACreature attacker, int damage) { if (mLife - damage <= 0) { mSlot.isOccupied = false; } mDamageTaken = damage; if (attacker.getAttackType( ) != RangedAttack.TYPE_ATTACK) { counterAttackerTarget(attacker); } }
// On press void OnPress(string id, bool isPressed) { if (!mIsOnBoard || id != ID_CARD) { return; } if (mIsSleeping) { Debug.Log("Can't Attack : I'm Sleeping"); return; } if (mAlreadyAttack) { Debug.Log("Can't Attack : Already Attack"); return; } if (isPressed) { if (GameManager.getInstance( ).currentPlayerID == this.getOwnerID( )) { mBoardManager.useArrowAt(transform.position); } } else { ACreature target = mBoardManager.getTarget( ); if (target) { if (target.getOwnerID( ) != this.getOwnerID( ) && target.isOnBoard( )) { attackTarget(target, 0f); } else { Debug.Log("Invalid target"); } } mBoardManager.deactiveArrow( ); } }
// On press void OnPress(bool isPressed) { if (mAlreadyAttack) { Debug.Log("Can't Attack : Already Attack"); return; } if (isPressed) { if (_cost <= mPlayerManager.currentMana) { if (GameManager.getInstance( ).currentPlayerID == this.getOwnerID( )) { mBoardManager.useArrowAt(transform.position); } } else { Debug.Log("Not enough mana"); } } else { ACreature target = mBoardManager.getTarget( ); if (target) { if (target.getOwnerID( ) != this.getOwnerID( ) && target.isOnBoard( )) { attackTarget(target, 0f); } else { Debug.Log("Invalid target " + target.getOwnerID( ) + " " + this.getOwnerID( )); } } mBoardManager.deactiveArrow( ); } }
public override void attackTarget(ACreature target, float delay = 0f) { StartCoroutine(_attackTarget(target, delay)); }
public override void counterAttackerTarget(ACreature target) { target.takeCounterAttackDamage(attack); }
abstract public void counterAttackerTarget(ACreature target);
abstract public void takeAttackDamage(ACreature attacker, int damage);
abstract public void attackTarget(ACreature target, float delay);