示例#1
0
    /// <summary> Отбрасывает указанную цель, лишает книнематичного состояния и добавляет влияние гравитации </summary>
    void Explode(Destructable_Object target)
    {
        Rigidbody rb;

        rb = Find_RB(target);

        rb.isKinematic = false;
        rb.useGravity  = true;
        rb.AddExplosionForce(explode_force, transform.position, radius);
    }
示例#2
0
    void OnTriggerEnter(Collider collider)
    {
        Destructable_Object obj = collider.transform.GetComponent <Destructable_Object>();

        if (obj != null)
        {
            obj.Damage(dmg);
            Destroy(gameObject);
        }
    }
示例#3
0
 /// <summary> Наносит вред указанному разрушаемому объекту </summary>
 void Damage(Destructable_Object target, int damage)
 {
     if (target != null)
     {
         if (Can_Damage(target))             //Если этому объекту разрешено наносить вред
         {
             if (target.TakeDamage(damage))  //Наносим вред, если объект в итоге полностью разрушен
             {
                 Add_Score();                //Добавляем очки хозяину снаряда
             }
         }
     }
 }
示例#4
0
    /// <summary> Наносит урон указанной цели </summary>
    void Damage_To(Destructable_Object target)
    {
        Vector3 distance;
        int     damage;
        bool    is_destroy;

        if (Can_Damage(target))
        {
            distance   = target.transform.position - transform.position;
            damage     = Get_Damage(distance.magnitude);
            is_destroy = target.TakeDamage(damage);

            if (is_destroy)
            {
                owner.score += score;
            }
        }
    }
示例#5
0
 /// <summary> Возвращает true если снаряду разрешено наносить урон указанному объекту </summary>
 public bool Can_Damage(Destructable_Object target)
 {
     return(target.gameObject != owner.gameObject);           //Разрешаем наносить урон всем, кроме хозяина снаряда
 }
示例#6
0
 /// <summary> Находит Rigidbody </summary>
 static Rigidbody Find_RB(Destructable_Object destructable)
 {
     return(destructable.GetComponent <Rigidbody>());
 }