Example #1
0
 public override void IsAttacked(AttackObject atk, Vector3 colPosition)
 {
     if(atk.ValidateAttack(this))
     {
         float value = 1.0f;
         LoseHP(value);
     }
 }
Example #2
0
 public override void IsAttacked(AttackObject atk, Vector3 colPosition)
 {
     if (atk.ValidateAttack(this))
     {
         float value = 1.0f;
         LoseHP(value);
     }
 }
Example #3
0
    // The object has just been hit with an attack.
    public virtual void IsAttacked(AttackObject atk, Vector3 colPosition)
    {
        if(atk.ValidateAttack(this))
        {
            bool blocked = false;
            if(H_ObjectState == ObjectState.Blocking)
            {
                //Compare Positions, to see if succesful guard
                Vector2 oppDir = atk.transform.parent.position - transform.position;
                if(Vector2.Angle(H_objectDirection,oppDir) < 46.0f)
                {
                    blocked = true;
                    Debug.Log("BLOCKED");
                }
            }
            if(!blocked && H_invulnerability == false){
                // This function calculates the damage dealt before applying resistances.
                float damageDealt = CalculateDamage(atk, H_defenseValue+P_defenseBonus+(int)(H_defenseValue*P_defenseBonusPercent));

                switch (atk.P_attackType){
                case AttackObject.AttackType.Normal :
                    damageDealt *= H_normalResistance;
                    GameObject.Instantiate(P_hitParticle,colPosition,Quaternion.identity);
                    break;
                case AttackObject.AttackType.Fire :
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_fireResistance;
                    GameObject.Instantiate(P_hitParticle,colPosition,Quaternion.identity);
                    break;
                case AttackObject.AttackType.Ice :
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_iceResistance;
                    GameObject.Instantiate(P_hitParticle,colPosition,Quaternion.identity);
                    break;
                case AttackObject.AttackType.Lightning :
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_lightningResistance;
                    GameObject.Instantiate(P_hitParticle,colPosition,Quaternion.identity);
                    break;
                case AttackObject.AttackType.Poison :
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_poisonResistance;
                    GameObject.Instantiate(P_hitParticle,colPosition,Quaternion.identity);
                    break;
                }
                BattleInterface.Instance.ShowDamage(damageDealt, this);
                if(atk.P_statusEffect != null){
                    atk.P_statusEffect.Init(true, this, atk);
                }
                LoseHP(damageDealt);
            }
        }
    }
Example #4
0
    // The object has just been hit with an attack.
    public virtual void IsAttacked(AttackObject atk, Vector3 colPosition)
    {
        if (atk.ValidateAttack(this))
        {
            bool blocked = false;
            if (H_ObjectState == ObjectState.Blocking)
            {
                //Compare Positions, to see if succesful guard
                Vector2 oppDir = atk.transform.parent.position - transform.position;
                if (Vector2.Angle(H_objectDirection, oppDir) < 46.0f)
                {
                    blocked = true;
                    Debug.Log("BLOCKED");
                }
            }
            if (!blocked && H_invulnerability == false)
            {
                // This function calculates the damage dealt before applying resistances.
                float damageDealt = CalculateDamage(atk, H_defenseValue + P_defenseBonus + (int)(H_defenseValue * P_defenseBonusPercent));

                switch (atk.P_attackType)
                {
                case AttackObject.AttackType.Normal:
                    damageDealt *= H_normalResistance;
                    GameObject.Instantiate(P_hitParticle, colPosition, Quaternion.identity);
                    break;

                case AttackObject.AttackType.Fire:
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_fireResistance;
                    GameObject.Instantiate(P_hitParticle, colPosition, Quaternion.identity);
                    break;

                case AttackObject.AttackType.Ice:
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_iceResistance;
                    GameObject.Instantiate(P_hitParticle, colPosition, Quaternion.identity);
                    break;

                case AttackObject.AttackType.Lightning:
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_lightningResistance;
                    GameObject.Instantiate(P_hitParticle, colPosition, Quaternion.identity);
                    break;

                case AttackObject.AttackType.Poison:
                    // A MODIFIER : créer une particule pour chaque type
                    // d'attaque!
                    damageDealt *= H_poisonResistance;
                    GameObject.Instantiate(P_hitParticle, colPosition, Quaternion.identity);
                    break;
                }
                BattleInterface.Instance.ShowDamage(damageDealt, this);
                if (atk.P_statusEffect != null)
                {
                    atk.P_statusEffect.Init(true, this, atk);
                }
                LoseHP(damageDealt);
            }
        }
    }