public override void DamageRecieve(Transform other, IDDamage damageType, Vector3 sourcePos, Vector3 velocity) { if (IsDead) { return; } base.DamageRecieve(other, damageType, sourcePos, velocity); //Debug.LogFormat("{0} firing", name); actionStack.Push(() => Attack(other)); }
//private void OnDrawGizmos() { // Gizmos.DrawLine(initialPos, targetPos); // Gizmos.color = Color.red; // Gizmos.DrawLine(initialPos, initialPos + archDir); //} #endregion ^ Unity Methods #region Public Methods public void Initialize(Transform target, IDDamage damageType, float speed) { initialPos = myTransform.position; DamageType = damageType; Speed = speed; targetPos = target.position; targetPos.y = HEIGHT; archDir = Vector3.Cross(targetPos - initialPos, Vector3.up).normalized; distToTarget = (targetPos - initialPos).magnitude; timeToDestination = distToTarget / speed; IsArching = true; GameManager.Instance.HitStop.SmallHit(); }
public void Deflect(Vector3 direction, IDDamage damageType) { AudioManager.Instance.PlayAudio(audioSource, Audio.Mortal.DEFLECT_SOUND); DamageType = damageType; initialPos = myTransform.position; initialPos.y = HEIGHT; targetPos = initialPos + direction; targetPos.y = HEIGHT; time = 0; Speed *= 1.25f; timeToDestination = direction.magnitude / Speed; IsArching = false; GameManager.Instance.HitStop.BigHit(); }
public override void DamageRecieve(Transform other, IDDamage damageType, Vector3 sourcePos, Vector3 velocity) { if (IsDead) { return; } Vector3 myPos = transform.position; sourcePos.y = myPos.y; Vector3 impactDir = (myPos - sourcePos).normalized; float impact = Mathf.Clamp(velocity.magnitude, 0, maxImpact); RBody?.AddForce(((Vector3.up * 0.5f) + impactDir).normalized * (impactScale + impact), ForceMode.Impulse); AddHealth(-1); AudioManager.Instance.PlayAudio(audioSource, Audio.Enemy.HIT); CheckHealth(); }
public override void DamageRecieve(Transform other, IDDamage damageType, Vector3 sourcePos, Vector3 velocity) { if (IsDead) { return; } if (damageType != MyDamageID()) { Vector3 myPos = myTransform.position; sourcePos.y = myPos.y; Vector3 impactDir = (myPos - sourcePos).normalized; float impact = Mathf.Clamp(velocity.magnitude, 0, 2); RBody?.AddForce(impactDir * (2 + impact), ForceMode.Impulse); AddHealth(-1); AudioManager.Instance.PlayAudio(audioSource, Audio.Player.HIT); } }
public abstract void DamageRecieve(Transform other, IDDamage damageType, Vector3 sourcePos, Vector3 velocity);
public override void DamageRecieve(Transform other, IDDamage damageType, Vector3 sourcePos, Vector3 velocity) { }