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); //меняем жизни } } } } }
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); //проигрываем анимацию }
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); //вызываем функцию, возвращающую всё назад (на сколько время рыбка большая от уровня игрока) } }