void Update() { if (active_puzzle) { if (door_puzzle_level2 != null) { if (door_puzzle_level2.GetComponent <DoorLevel2>().door_closed&& phase_active == 0) { phase_active = 1; countdown.StartCountdown(); } } if (phase_active > 0) { actualtime_puzzle += Time.deltaTime; } if (phase_active == 1 && actualtime_puzzle >= phase1) { phase_active = 2; actualtime_projectils = 0.0f; } else if (phase_active == 2 && actualtime_puzzle >= phase1 + phase2) { phase_active = 3; actualtime_projectils = 0.0f; } else if (phase_active == 3 && actualtime_puzzle >= phase1 + phase2 + phase3) { phase_active = 4; } else if (phase_active == 4 && actualtime_puzzle >= phase1 + phase2 + phase3 + wait_open_exit_door) { if (door_puzzle_level2_exit != null) { door_puzzle_level2_exit.GetComponent <DoorLevel2>().OpenDoor(); } active_puzzle = false; countdown.StopCountdown(); phase_active = -1; } switch (phase_active) { case 1: if (actualtime_projectils >= phase1_projects_per_time) { if (last_shoot > 0) { ApplyProjectil(Random.Range(1, number_projectils, last_shoot)); int shoot_two = Random.Range(1, 100); if (shoot_two <= probability_two_shoots) { ApplyProjectil(Random.Range(1, number_projectils, last_shoot)); } actualtime_projectils = 0.0f; } else { ApplyProjectil(Random.Range(1, number_projectils)); actualtime_projectils = 0.0f; } } else { actualtime_projectils += Time.deltaTime; } break; case 2: if (actualtime_projectils >= phase2_projects_per_time) { ApplyProjectil(Random.Range(1, number_projectils, last_shoot)); int shoot_two = Random.Range(1, 100); if (shoot_two <= probability_two_shoots) { ApplyProjectil(Random.Range(1, number_projectils, last_shoot)); } actualtime_projectils = 0.0f; } else { actualtime_projectils += Time.deltaTime; } break; case 3: if (actualtime_projectils >= phase3_projects_per_time) { ApplyProjectil(Random.Range(1, number_projectils, last_shoot)); int shoot_two = Random.Range(1, 100); if (shoot_two <= probability_two_shoots) { ApplyProjectil(Random.Range(1, number_projectils, last_shoot)); } actualtime_projectils = 0.0f; } else { actualtime_projectils += Time.deltaTime; } break; } } }
void Update() { //-- TMP: Debug ----- /* if(on_lever_animation && anim_controller.IsAnimationStopped(lever_animation_name)) * { * OnLeverAnimFinish(); * }*/ //-- Lever Triggered ----- if (on_lever_range && !active_lever && !on_lever_animation) { //TODO: Change to GetKey_Action if (Input.GetInput_KeyDown("Interact", "Player")) { //Reset other puzzles if exists to avoid audio conflicts if (other_lever_1 != null) { other_lever_1.GetComponent <Lever>().ResetPuzzle(); other_lever_1.GetComponent <PuzzleCountdown>().StopCountdown(); } if (other_lever_2 != null) { other_lever_2.GetComponent <Lever>().ResetPuzzle(); other_lever_2.GetComponent <PuzzleCountdown>().StopCountdown(); } SetOrientationVectors(); OnLeverActivated(); GetComponent <CompAudio>().PlayEvent("Lever"); lever_interact.SetActive(false); } } //--------------------- if (on_lever_animation) { anim_controller = lever_go.GetComponent <CompAnimation>(); if (anim_controller != null) { if (anim_controller.IsAnimationStopped(lever_animation_name)) { // The lever animation has stopped so puzzle must start. OnLeverAnimFinish(); } } } if (active_lever) { if (!phase1) // Set info all barrels { SetInfo(line1, 0); SetInfo(line2, 1); SetInfo(line3, 2); SetInfo(line4, 3); SetInfo(line5, 4); SetInfo(line6, 5); phase1 = true; } if (!phase2) // Move barrels mode.PUZZLE { MoveBarrels(line1); MoveBarrels(line2); MoveBarrels(line3); MoveBarrels(line4); MoveBarrels(line5); MoveBarrels(line6); phase3 = true; phase2 = true; phase_wait = true; time = Time.realtimeSinceStartup + delay_second_mode; audio.PlayEvent("Chain"); MoveChains(true); } if (phase_wait) // wait to move the other mode { // Wait delay to move other barrels float time_transcured = Time.realtimeSinceStartup; if (time_transcured >= time) { phase3 = false; phase_wait = false; } } if (!phase3) // Move barrels mode.FILLING { MoveBarrels(line1, true); MoveBarrels(line2, true); MoveBarrels(line3, true); MoveBarrels(line4, true); MoveBarrels(line5, true); MoveBarrels(line6, true); phase3 = true; editmap = true; } if (fill_barrel != null && fill_barrel.IsPlaced() == true) { if (editmap) { audio.StopEvent("Chain"); SetPathWalkable(0, 3); editmap = false; countdown.StartCountdown(); MoveChains(false); } else if (countdown.IsCountdownOver()) { ResetPuzzle(); } } } }