public override void IsAttacked(AttackObject atk, Vector3 colPosition) { if(atk.ValidateAttack(this)) { float value = 1.0f; LoseHP(value); } }
public override void IsAttacked(AttackObject atk, Vector3 colPosition) { if (atk.ValidateAttack(this)) { float value = 1.0f; LoseHP(value); } }
// 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); } } }
// 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); } } }