protected virtual void OnCollisionEnter2D(Collision2D collision) { var damage = collision.relativeVelocity.magnitude * DamageScale; if (damage >= DamageThreshold) { if (damageable == null) damageable = GetComponent<D2D_Damageable>(); damageable.InflictDamage(damage); } }
protected virtual void OnCollisionEnter2D(Collision2D collision) { var damage = collision.relativeVelocity.magnitude * DamageScale; if (damage >= DamageThreshold) { if (damageable == null) { damageable = GetComponent <D2D_Damageable>(); } damageable.InflictDamage(damage); } }
public void UpdateSprite() { if (damageable == null) { damageable = GetComponent <D2D_Damageable>(); } UpdateDamageLevels(); var bestDamageLevel = default(DamageLevel); var damage = damageable.Damage; foreach (var damageLevel in DamageLevels) { if (damageLevel != null) { if (bestDamageLevel == null || damage >= damageLevel.DamageRequired) { // Skip if this is below the best if (bestDamageLevel != null && damageLevel.DamageRequired < bestDamageLevel.DamageRequired) { continue; } bestDamageLevel = damageLevel; } } } // Replace sprite? if (bestDamageLevel != null) { if (spriteRenderer == null) { spriteRenderer = GetComponent <SpriteRenderer>(); } if (spriteRenderer.sprite != bestDamageLevel.Sprite) { if (bestDamageLevel.Sprite != null) { spriteRenderer.sprite = bestDamageLevel.Sprite; } else { spriteRenderer.sprite = null; } } } }
protected virtual void OnCollisionEnter2D(Collision2D collision) { var damage = collision.relativeVelocity.magnitude * DamageScale; D2D_Helper.BroadcastMessage(collision.transform, "OnDamage", damage, SendMessageOptions.DontRequireReceiver); if (damage >= DamageThreshold) { if (damageable == null) { damageable = GetComponent <D2D_Damageable>(); } damageable.InflictDamage(damage); } }
private void UpdateFracture() { #if UNITY_EDITOR if (Application.isPlaying == false) { return; } #endif if (damageable == null) { damageable = GetComponent <D2D_Damageable>(); } if (damageable.Damage >= DamageLimit) { Fracture(); } }
public void UpdateSprite() { if (damageable == null) damageable = GetComponent<D2D_Damageable>(); UpdateDamageLevels(); var bestDamageLevel = default(DamageLevel); var damage = damageable.Damage; foreach (var damageLevel in DamageLevels) { if (damageLevel != null) { if (bestDamageLevel == null || damage >= damageLevel.DamageRequired) { // Skip if this is below the best if (bestDamageLevel != null && damageLevel.DamageRequired < bestDamageLevel.DamageRequired) { continue; } bestDamageLevel = damageLevel; } } } // Replace sprite? if (bestDamageLevel != null) { if (spriteRenderer == null) spriteRenderer = GetComponent<SpriteRenderer>(); if (spriteRenderer.sprite != bestDamageLevel.Sprite) { if (bestDamageLevel.Sprite != null) { spriteRenderer.sprite = bestDamageLevel.Sprite; } else { spriteRenderer.sprite = null; } } } }
protected virtual void OnCollisionEnter2D(Collision2D collision) { damage = collision.relativeVelocity.magnitude * DamageScale; if (isColliderwithMoto) { if (ObjectToCollided != null || ObjectToCollided2 != null || BodyToCollided != null || PoliToCollided != null || HelmetToCollided != null) { if (ObjectToCollided.name == collision.gameObject.name || ObjectToCollided2.name == collision.gameObject.name || BodyToCollided.name == collision.gameObject.name || PoliToCollided.name == collision.gameObject.name || HelmetToCollided.name == collision.gameObject.name) { if(ifkinematic){ gameObject.GetComponent<Rigidbody2D>().isKinematic = false; } if (UsedSlowMotion) { count = count + 1; if (count == 1) { SlowMotionController.AddSlowMotion (desiredFreezeDuration, desiredTimeScale, delay); } } if (damage >= DamageThreshold) { if (damageable == null) damageable = GetComponent<D2D_Damageable> (); //if(usedtime){ Invoke ("MyWaitingFunction", time); /*}else{ damageable.InflictDamage (damage); AudioSource.PlayClipAtPoint (Sound, gameObject.transform.position); Physics2D.IgnoreCollision(BodyToCollided.GetComponent<Collider2D>(), GetComponent<Collider2D>()); Physics2D.IgnoreCollision(ObjectToCollided.GetComponent<Collider2D>(), GetComponent<Collider2D>()); Physics2D.IgnoreCollision(ObjectToCollided2.GetComponent<Collider2D>(), GetComponent<Collider2D>()); }*/ } } else { } } } else { if (UsedSlowMotion) { count = count + 1; if (count == 1) { SlowMotionController.AddSlowMotion (desiredFreezeDuration, desiredTimeScale, delay); } } if (damage >= DamageThreshold) { if (damageable == null) damageable = GetComponent<D2D_Damageable> (); // if(usedtime){ Invoke ("MyWaitingFunction", time); /*}else{ damageable.InflictDamage (damage); AudioSource.PlayClipAtPoint (Sound, gameObject.transform.position); Physics2D.IgnoreCollision(BodyToCollided.GetComponent<Collider2D>(), GetComponent<Collider2D>()); Physics2D.IgnoreCollision(ObjectToCollided.GetComponent<Collider2D>(), GetComponent<Collider2D>()); Physics2D.IgnoreCollision(ObjectToCollided2.GetComponent<Collider2D>(), GetComponent<Collider2D>()); }*/ } } }
protected virtual void OnCollisionEnter2D(Collision2D collision) { damage = collision.relativeVelocity.magnitude * DamageScale; if (isColliderwithMoto) { if (ObjectToCollided != null || ObjectToCollided2 != null || BodyToCollided != null || PoliToCollided != null || HelmetToCollided != null) { if (ObjectToCollided.name == collision.gameObject.name || ObjectToCollided2.name == collision.gameObject.name || BodyToCollided.name == collision.gameObject.name || PoliToCollided.name == collision.gameObject.name || HelmetToCollided.name == collision.gameObject.name) { if(ifkinematic){ gameObject.GetComponent<Rigidbody2D>().isKinematic = false; } if (UsedSlowMotion) { count = count + 1; if (count == 1) { SlowMotionController.AddSlowMotion(desiredFreezeDuration, desiredTimeScale, delay); UsedSlowMotionActivated = true; } } if (damage >= DamageThreshold) { if (damageable == null) damageable = GetComponent<D2D_Damageable> (); Invoke ("MyWaitingFunction", time); } } } } else { if (damage >= DamageThreshold) { if (damageable == null) damageable = GetComponent<D2D_Damageable> (); Invoke ("MyWaitingFunction", time); } } }