// handles a skill press private void handleSkillPress(string pressedSkill) { if (pressedSkill == "") { return; } long elapsedTime = MyTime.ElapsedTime(previousTime); previousTime = MyTime.CurrentTimeMillis(); if (elapsedTime > MaxPauseDuration) { pressedSkills.Clear(); } pressedSkills.Add(new SkillPress(pressedSkill, elapsedTime)); GameObject[] enemies = GameObject.FindGameObjectsWithTag("Enemy"); GameObject[] spotlights = GameObject.FindGameObjectsWithTag("Spotlight"); GameObject[] triggerables = new GameObject[enemies.Length + spotlights.Length]; Array.Copy(enemies, triggerables, enemies.Length); Array.Copy(spotlights, 0, triggerables, enemies.Length, spotlights.Length); foreach (GameObject obj in triggerables) { Vector2 playerPosition = new Vector2(Player.transform.position.x, Player.transform.position.z); Vector2 melodyPosition = new Vector2(obj.transform.position.x, obj.transform.position.z); double dist = Vector2.Distance(playerPosition, melodyPosition); if ((dist <= Radius && obj.tag != "Spotlight") || (obj.tag == "Spotlight" && obj.GetComponent <Spotlight>().hasPlayer)) { Melody objMelody = obj.GetComponent <Melody>(); objMelody.Wait(); if (checkMelody(objMelody.rythem) && objMelody.IsValid()) { if (obj.tag == "Enemy") { obj.transform.parent.gameObject.GetComponent <KillEnemy>().setEnemyDead(true); } else if (obj.tag == "Spotlight") { GameObject movBlock = obj.GetComponent <Spotlight>().movingBlock; movBlock.GetComponent <AscendingObject>().Trigger(); } } } } }