Beispiel #1
0
    public override void takeAttackDamage(ACreature attacker, int damage)
    {
        mDamageTaken = damage;

        /*if ( attacker.getAttackType ( ) != RangedAttack.TYPE_ATTACK )
         *      counterAttackerTarget ( attacker );*/
    }
Beispiel #2
0
    private IEnumerator _attackTarget(ACreature target, float delay)
    {
        yield return(new WaitForSeconds(delay));

        GetComponent <AAttackComponent> ( ).attack(target.gameObject);

        target.takeAttackDamage(this, mAttack);
    }
Beispiel #3
0
    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);
        }
    }
Beispiel #4
0
    // 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( );
        }
    }
Beispiel #5
0
    // 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( );
        }
    }
Beispiel #6
0
 public override void attackTarget(ACreature target, float delay = 0f)
 {
     StartCoroutine(_attackTarget(target, delay));
 }
Beispiel #7
0
 public override void counterAttackerTarget(ACreature target)
 {
     target.takeCounterAttackDamage(attack);
 }
Beispiel #8
0
 abstract public void    counterAttackerTarget(ACreature target);
Beispiel #9
0
 abstract public void    takeAttackDamage(ACreature attacker, int damage);
Beispiel #10
0
 abstract public void    attackTarget(ACreature target, float delay);