// Update is called once per frame
    void Update()
    {
        if (timeRemaining > 0 && playing)
        {
            timeRemaining -= Time.deltaTime;
            timer_sprite.transform.Rotate(Vector3.back * (360 * Time.deltaTime / TIME_TO_COUNT));

            if (send_next)
            {
                Ballot created_ballot = Instantiate(ballot, new Vector3(0f + Random.Range(-1f, 1f), -10f + Random.Range(-1f, 1f), 0f + Random.Range(-1f, 1f)), Quaternion.Euler(0, 0, Random.Range(-5, 5)));
                int    candidate      = Random.Range(0, 100) < johny_chance ? 2 : 1;
                if (timeRemaining > TIME_TO_COUNT * 3 / 4)
                {
                    candidate = Random.Range(0, 100) < ((johny_chance / 3) * 2) ? 2 : 1;
                    created_ballot.GetComponent <Ballot>().SetCandidate(candidate, 1);
                }
                else if (timeRemaining > TIME_TO_COUNT / 2)
                {
                    created_ballot.GetComponent <Ballot>().SetCandidate(candidate, 2);
                }
                else if (timeRemaining > TIME_TO_COUNT / 4)
                {
                    created_ballot.GetComponent <Ballot>().SetCandidate(candidate, 3);
                }
                else
                {
                    created_ballot.GetComponent <Ballot>().SetCandidate(candidate, 4);
                }
                created_ballot.GetComponent <Ballot>().MoveTo(new Vector3(0f, -1f, 0f));
                current_ballot = created_ballot;
                send_next      = false;
            }

            if (!send_next)
            {
                if (Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.A))
                {
                    votes[current_ballot.GetComponent <Ballot>().GetCandidate()]++;
                    UpdatePerentages();

                    if (current_ballot.GetComponent <Ballot>().GetCandidate() == 1)
                    {
                        eagle.PlaySound();
                    }

                    current_ballot.GetComponent <Ballot>().MoveToAndDestroy(new Vector3(-15f, 0f, 0f));
                    send_next = true;
                }
                if (Input.GetKeyDown(KeyCode.RightArrow) || Input.GetKeyDown(KeyCode.D))
                {
                    if (current_ballot.GetComponent <Ballot>().GetCandidate() == 2)
                    {
                        eagle.PlaySound();
                    }

                    current_ballot.GetComponent <Ballot>().MoveToAndDestroy(new Vector3(15f, 0f, 0f));
                    shredder.Shake();
                    send_next = true;
                }
            }

            if (timeRemaining < TIME_TO_COUNT / 4 && !clock.shaking)
            {
                clock.StartShaking(timeRemaining);
            }
        }
        else if (playing)
        {
            StartCoroutine(StopTheCount());
            playing = false;
        }
        else if (!playing && Input.GetKeyDown(KeyCode.Space) && can_restart)
        {
            Destroy(title_screen);

            rank_table.GetComponent <RankTable>().ResetPositonAndStopSounds();

            johny.GetComponent <Bythem>().ResetPosition();
            ronald.GetComponent <Dump>().ResetPosition();

            timeRemaining = TIME_TO_COUNT;

            votes       = new Dictionary <int, int>();
            percentages = new Dictionary <int, float>();

            // Initial votes
            votes.Add(1, 20);   // Ronald
            votes.Add(2, 4);    // Johny
            UpdatePerentages();

            playing              = true;
            send_next            = true;
            can_restart          = false;
            restart_text.enabled = false;

            clock.StartCountdown();
        }
    }