Пример #1
0
    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);
        }
    }
Пример #2
0
    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);
        }
    }
Пример #3
0
    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;
                }
            }
        }
    }
Пример #4
0
    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);
        }
    }
Пример #5
0
    private void UpdateFracture()
    {
#if UNITY_EDITOR
        if (Application.isPlaying == false)
        {
            return;
        }
#endif
        if (damageable == null)
        {
            damageable = GetComponent <D2D_Damageable>();
        }

        if (damageable.Damage >= DamageLimit)
        {
            Fracture();
        }
    }
Пример #6
0
    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);

				

			}
		}
	
	}