public virtual void Apply(assHealthDamageType type, assIHealthDamageHandler handler) { if (IsInvulnerable) { Debug.Log("No damage taken to this Entity " + this.gameObject.name); return; } float damageTaken = 0; switch (type) { case assHealthDamageType.NormalDamage: currentHealth = (float)(currentHealth - handler.NormalDamage); damageTaken = handler.NormalDamage; break; case assHealthDamageType.SkillDamage: currentHealth = (float)(currentHealth - handler.SkillDamage); damageTaken = handler.SkillDamage; break; case assHealthDamageType.UltimateDamage: currentHealth = (float)(currentHealth - handler.UltimateDamage); damageTaken = handler.UltimateDamage; break; case assHealthDamageType.Heal: currentHealth = (float)(currentHealth + handler.SkillDamage); break; case assHealthDamageType.Killed: //TODO died break; } if (damageTaken != 0) { DamageTakenCondition(); } if (DamageHit) { DamageAmount += damageTaken; if (DamageAmount >= DamageAmountTrigger) { //TODO different entity can have or not have different states //testing first state first SendMessageToBrain(assMessageType.FirstPhaseActivate); } } }
public virtual void OnApplyCallback(assHealthDamageType type, assIHealthDamageHandler recipient, params object[] args) { throw new NotImplementedException(); }
public override void OnApplyCallback(assHealthDamageType type, assIHealthDamageHandler recipient, params object[] args) { base.OnApplyCallback(type, recipient, args); }
public void Apply(assHealthDamageType type, assIHealthDamageHandler handler) { throw new System.NotImplementedException(); }
public override void Apply(assHealthDamageType type, assIHealthDamageHandler handler) { Debug.Log("applying damage"); base.Apply(type, handler); CurrentHealthStatus(); }