public void Damage(Vector3 pos, AttackData attackData) { if (isDead == true) return; DamageMessage msg = attackData.AttackProcessor.ProcessAttack(attackData.AttackDataStat, characterStatController); msg.SetDamagePosition(pos); if (OnHit != null) OnHit.Invoke(msg); shakeSprite.Shake(0.05f, 0.2f); if (characterStatController.Hp <= 0) { //Death(attackData); Destroy(this.gameObject); return; } float hpMax = characterStatController.GetHPMax(); for (int i = 0; i < healthPercentage.Length; i++) { if ((characterStatController.Hp / hpMax) >= healthPercentage[i]) { objectAtHealth[i].gameObject.SetActive(true); return; } else { objectAtHealth[i].gameObject.SetActive(false); } } }
public void Damage(Vector3 pos, AttackData attackData) { if (isDead == true) return; DamageMessage msg = attackData.AttackProcessor.ProcessAttack(attackData.AttackDataStat, characterStatController); msg.SetDamagePosition(pos); if (OnHit != null) OnHit.Invoke(msg); //shakeSprite.Shake(0.05f, 0.2f); if (characterStatController.Hp <= 0 || characterStatController.Scratch == characterStatController.Hp) { characterStatController.Hp = 0; Death(); //Destroy(this.gameObject); return; } }
public void Damage(Vector3 pos, AttackData attackData) { if (isDead == true || isInvulnerable == true) return; /*if (characterAnimation.State == CharacterState.Dash) { OnInterrupt.Invoke(); }*/ DamageMessage msg = characterBodyPartController.Damage(attackData, characterMovement.CharacterDirection.DirectionTransform); //DamageMessage msg = attackData.AttackProcessor.ProcessAttack(attackData.AttackDataStat, characterStatController); msg.SetDamagePosition(pos); if (OnHit != null) OnHit.Invoke(msg); if(characterStatController.Hp <= 0) { Death(attackData); return; } if(msg.damageRaw + msg.damageScratch > 0) shakeSprite.Shake(0.05f, 0.2f); if(isInterruptable == true) { if (airborneClip != null) AudioManager.Instance.PlaySound(airborneClip); Knockback(); if(OnInterrupt != null) OnInterrupt.Invoke(); isInterruptable = false; } if (isKnockback == false && msg.knockback == true) Knockback(); else if (isKnockback == true) Knockback(); if (isKnockback == true && msg.launch == true) CheckLaunch(attackData); }