private void FireProjectile() { var color = _projectileColors.Dequeue(); var info = _projectileQueue[color]; var projectileToFire = info.Item2.Next(); var cInfo = offsets.First(c=>c.color == color); projectileToFire.transform.position = new Vector3(_transform.position.x, _transform.position.y + cInfo.offset, cInfo.zOffset); projectileToFire.Launch(info.Item1.speed, ForceMode); projectileToFire.CurrentRail = _currentRail; if (!fired.Contains(color)) { Debug.Log("Sending First Fired " + color); delayMessage = new ProjectileFirstFiredMessage(color); Invoke("SendDelayedMessage", 1); fired.Add(color); } }
private void OnFirstFired(ProjectileFirstFiredMessage obj) { if (obj.Color == ProjectileColor.Red && (IgnoreTutorialPref || !PlayerPrefs.HasKey("TutorialOne"))) { Time.timeScale = 0; Screen.lockCursor = false; PlayerPrefs.SetInt("TutorialOne", 1); TutorialMenu.Show(Tutorial.Red); } else if (obj.Color == ProjectileColor.Green && (IgnoreTutorialPref || !PlayerPrefs.HasKey("TutorialTwo"))) { Time.timeScale = 0; Screen.lockCursor = false; PlayerPrefs.SetInt("TutorialTwo", 1); TutorialMenu.Show(Tutorial.Green); } else if (obj.Color == ProjectileColor.Blue && (IgnoreTutorialPref || !PlayerPrefs.HasKey("TutorialThree"))) { Time.timeScale = 0; Screen.lockCursor = false; PlayerPrefs.SetInt("TutorialThree", 1); TutorialMenu.Show(Tutorial.Blue); } }