// Update is called once per frame void Update() { if (Input.GetKey(KeyCode.Q)) { if (move.RequestFreeze()) { if (!bombHeld && bombsManager.GetSelected() > 0 && pick.SpawnBomb()) { bombHeld = true; bomb = Instantiate(SelectBomb(bombSelector), move.transform.position, Quaternion.identity); pick.SetPayload(bomb); bombsManager.SubtractSelected(1); startingBomb = bombSelector; } else if (!bombHeld && bombsManager.GetSelected() < 1 && bombsManager.GetNonSelected() > 0 && pick.SpawnBomb()) { bombSelector = !bombSelector; bombsManager.ToggleSelected(); bombHeld = true; bomb = Instantiate(SelectBomb(bombSelector), move.transform.position, Quaternion.identity); pick.SetPayload(bomb); bombsManager.SubtractSelected(1); startingBomb = bombSelector; } else if (bombHeld) { bombsManager.AddSelected(1); Destroy(bomb); if (bombSelector != startingBomb || bombsManager.GetNonSelected() < 1) { pick.TossBomb(); bombHeld = false; bomb = null; } else { bombSelector = !bombSelector; bombsManager.ToggleSelected(); bombsManager.SubtractSelected(1); bomb = Instantiate(SelectBomb(bombSelector), move.transform.position, Quaternion.identity); pick.SetPayload(bomb); } } Invoke("CallReleaseFreeze", delay); } } else if (Input.GetKeyDown("space")) { if (bombHeld && move.RequestFreeze()) { pick.TossBomb(); bombHeld = false; bomb.GetComponent <BombFlight2>().target = move.transform.position + move.DirectionToVector(move.FaceDirection); bombSpeed = bomb.GetComponent <BombFlight2>().Speed; bomb.GetComponent <BombFlight2>().Fly(); bomb = null; Invoke("CallReleaseFreeze", delay); } } }