Exemplo n.º 1
0
    private void OnTriggerStay2D(Collider2D col) //при соприкосновении
    {
        if (!godMode)                            // если не было недавно урона
        {
            if (col.gameObject.tag == "Enemy")
            {
                Vector2 mouseP = Input.mousePosition;
                mouseP = Camera.main.ScreenToWorldPoint(mouseP);

                bool enemy_mov = col.gameObject.GetComponent <EnemyMoving>().enabled;

                float EnemyMass = col.gameObject.GetComponent <EnemyBehaviour>().EnemyMass;//получил массу етого объекта
                if (EnemyMass < UserMass)
                {
                    _anim.SetBool("is_eating", true);
                    if (transform.localScale.x > 0)
                    {
                        Stats.Scale = transform.localScale + new Vector3(EnemyMass / 80, EnemyMass / 80, 0);
                    }
                    else
                    {
                        Stats.Scale = transform.localScale + new Vector3(-EnemyMass / 80, EnemyMass / 80, 0);
                    }

                    sourse.PlayOneShot(eatSound);
                    Stats.Change_score((int)(10f * EnemyMass));//добавление очков
                    Stats.IsTarget(col.transform.parent.name);
                    EnemyMoving mov = col.GetComponent <EnemyMoving>();
                    mov.enabled = true; //восстанавливаем движение врага
                    UserMass   += EnemyMass / 10;
                    EnemyBehaviour.Changepos(mov);
                    count++;
                    if (count > 5)
                    {
                        MapEditor.CheckCamera();
                        count = 0;
                    }
                }
                else
                {
                    if (enemy_mov)                  //если враг в движении
                    {
                        godMode = true;             // включаем режим бессмертия
                        Invoke("OffGodMode", 3.5f); //через 2 секунды вырубаем
                        Stats.Change_life(1);       //меняем жизни
                    }
                }
            }
        }
    }
Exemplo n.º 2
0
 private void ChangeSizeBack()//возвращение размера рыбки назад
 {
     cntrl.UserMass -= old_mass;
     if (transform.localScale.x < 0)//зависит от поворота
     {
         transform.localScale = new Vector3(transform.localScale.x + Math.Abs(old_Scale.x), transform.localScale.y - old_Scale.y, transform.localScale.z);
     }
     else
     {
         transform.localScale = new Vector3(transform.localScale.x - Math.Abs(old_Scale.x), transform.localScale.y - old_Scale.y, transform.localScale.z);
     }
     Change_score(0);                        //вызываем применение изменени
     MapEditor.CheckCamera();                //нужно ли приблизить камеру
     _anim.SetBool("is_using_skill", false); //проигрываем анимацию
 }
Exemplo n.º 3
0
 protected override void UseSkill()
 {
     if (Time.timeScale == 1 && transform.position.z < 2)
     {
         cooldown  = 0;
         old_mass  = 0.25f * cntrl.UserMass;       //сохраняем старую массу, чтобы потом её вычесть
         old_Scale = 0.25f * transform.localScale; //сохраняем старые размеры
         _anim.SetBool("is_using_skill", true);    //проигрывание анимации
         cntrl.UserMass *= 1.25f;                  //увеличиваем массу и размер
         Scale           = new Vector3(transform.localScale.x * 1.25f, transform.localScale.y * 1.25f, transform.localScale.z);
         Change_score(0);                          //вызываем применение изменений
         MapEditor.CheckCamera();                  //проверяем увеличение камеры
         float timeSkill = 5 + TotalStatistics.levelPlayer * 0.1f;
         Invoke("ChangeSizeBack", timeSkill);      //вызываем функцию, возвращающую всё назад (на сколько время рыбка большая от уровня игрока)
     }
 }