예제 #1
0
    public float attack1()
    {
        switch (itemSlots.weaponSlot)
        {
        case 1:     //Epées
        case 2:     //Hache TEST
            if (comboCounter == 0)
            {
                anim.Play("SingleHandSlash");
                //Debug.Log("FrontSlash");
                comboCounter++;
            }
            else if (comboCounter >= 1)
            {
                anim.Play("SingleHandBackSlash");
                //Debug.Log("BackSlash");
                comboCounter = 0;
            }
            Collider2D[] ennemiesToDamage;
            // Si l'attaque de l'arme est en forme de sphere
            if (itemList.items[itemSlots.weaponSlot].attackAreaSimple.GetComponent <attackArea>().shape == "Sphere")
            {    // récupère la liste des Collider 2D des ennemis à endommager en fonction de la taille de l'attaque de l'arme
                ennemiesToDamage = Physics2D.OverlapCircleAll(itemList.items[itemSlots.weaponSlot].attackAreaSimple.transform.position,
                                                              itemList.items[itemSlots.weaponSlot].attackAreaSimple.GetComponent <attackArea>().attackRangeSphere, whatIsEnnemy);
            }
            else
            {    // Sinon si l'attaque est en forme de cube
                ennemiesToDamage = Physics2D.OverlapBoxAll(itemList.items[itemSlots.weaponSlot].attackAreaSimple.transform.position,
                                                           new Vector2(itemList.items[itemSlots.weaponSlot].attackAreaSimple.GetComponent <attackArea>().attackRangeX, itemList.items[itemSlots.weaponSlot].attackAreaSimple.GetComponent <attackArea>().attackRangeY),
                                                           whatIsEnnemy);
            }

            for (int i = 0; i < ennemiesToDamage.Length; i++)
            {
                if (ennemiesToDamage[i].tag == "Enemy")
                {    // Parcourt la liste des ennemis à endommager
                    ennemiesToDamage[i].GetComponent <BattleStats>().takeDamage(battleStats.finalAttackDamage());
                    ennemiesToDamage[i].GetComponent <BattleStats>().hitStun(gameObject, 0.1f, 0.2f);
                }
            }
            return(battleStats.finalAttackDelay());

        default:
            return(0);
        }
    }