// Update is called once per frame void Update() { if (powerupCharges > 0) { powerupIcon.SetBool("Powerup", true); } else { powerupIcon.SetBool("Powerup", false); } if (Input.GetKeyDown(KeyCode.Q) && powerupCharges > 0) { //Use powerup audioSource.PlayOneShot(useClip); powerupCharges--; ScrambleGhosts(); stormcloud = Instantiate(stormcloudref, new Vector3(scr_utilities.screenWidth + (2 * scr_utilities.padding), 0, 1), Quaternion.identity).GetComponent <scr_stormcloud>(); powerOn = true; StartCoroutine(Timer(powerupTime)); stormcloud.speed = scr_cloud.GetSpeed(); } if (powerOn) { for (int i = 0; i < ghosts.Count; ++i) { ghosts[i].acc.x += Random.Range(-0.03f, 0.03f); ghosts[i].acc.y += Random.Range(-0.03f, 0.03f); if (ghosts[i].pos.x <scr_utilities.GetEdge(edgeId.Left, false) || ghosts[i].pos.x> scr_utilities.GetEdge(edgeId.Right, false)) { ghosts[i].acc.x *= -1; } if (ghosts[i].pos.y <scr_utilities.GetEdge(edgeId.Bottom, false) || ghosts[i].pos.y> scr_utilities.GetEdge(edgeId.Top, false)) { ghosts[i].acc.y *= -1; } ghosts[i].acc *= 0.9f; ghosts[i].pos += ghosts[i].acc; } } }
IEnumerator CheckpointWaiting() { scr_stormcloud transition = Instantiate(transitionEffect, new Vector3(scr_utilities.screenWidth + (2 * scr_utilities.padding), 0, 1), Quaternion.identity).GetComponent <scr_stormcloud>(); scr_cloudcontroller.instance.SetIslandCount(0); scr_cloudcontroller.instance.SetCloudCover(0); transition.speed = scr_cloud.GetSpeed(); DontDestroyOnLoad(transition); yield return(new WaitForSeconds(5)); checkpoint.SetActive(true); waitingAtCheckpoint = true; while (waitingAtCheckpoint) { yield return(null); } checkpoint.SetActive(false); transition.speed = scr_cloud.GetSpeed(); SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1); }