public void Initialize() { timer = 0; syringe_mode = SyringeMode.None; left_iris.transform.localScale = left_iris_scale; right_iris.transform.localScale = right_iris_scale; this.transform.position = outside_pos; handle.transform.position = handle_initial_pos; already_gave_life = false; }
// Update is called once per frame public void update_injection() { if (syringe_mode == SyringeMode.None || syringe_mode == SyringeMode.Done) { return; } if (syringe_mode == SyringeMode.Waiting) { if (my_camera.camera_state == CameraLogic.CameraState.Overall) { syringe_mode = SyringeMode.Moving; } else if (my_camera.camera_state == CameraLogic.CameraState.Game) { syringe_mode = SyringeMode.Done; } return; } timer += 1; if (timer < TIME_TO_NECK) { float lambda = (float)this.timer / (float)this.TIME_TO_NECK; this.transform.position = lambda * neck_pos + (1 - lambda) * outside_pos; this.handle.transform.localPosition = handle_initial_pos; this.setAmplitude(lambda); } else if (timer < TIME_TO_NECK + TIME_ON_NECK) { if (timer == TIME_TO_NECK) { GetComponent <AudioSource>().Play(); } int local_timer = timer - TIME_TO_NECK; float lambda = (float)local_timer / (float)this.TIME_ON_NECK; this.transform.position = neck_pos; float h = handle.GetComponent <Renderer>().bounds.size.y *handle.transform.localScale.y / handle.transform.lossyScale.y * 0.5f; this.handle.transform.localPosition = handle_initial_pos + new Vector3(0f, -lambda * h, 0f); left_iris.transform.localScale = left_iris_scale + lambda * 0.8f * left_iris_scale; right_iris.transform.localScale = right_iris_scale + lambda * 0.8f * right_iris_scale; liquid.transform.localScale = new Vector3(1.0f, 1 - lambda, 1.0f); this.transform.rotation = Quaternion.Euler(0.0f, 0.0f, -40.0f); if (!already_gave_life) { already_gave_life = true; GameObject.Find("MainGame").GetComponent <MainGame>().addHealth(50); } } else if (timer < TIME_TO_NECK * 2 + TIME_ON_NECK) { int local_timer = timer - TIME_TO_NECK - TIME_ON_NECK; local_timer = TIME_TO_NECK - local_timer; float lambda = (float)local_timer / (float)this.TIME_TO_NECK; this.transform.position = lambda * neck_pos + (1 - lambda) * outside_pos; this.setAmplitude(lambda); } else { syringe_mode = SyringeMode.Waiting; my_camera.setState(CameraLogic.CameraState.ToGame); } }
public void Prepare() { syringe_mode = SyringeMode.Waiting; my_camera.setState(CameraLogic.CameraState.ToOverall); }