// Update is called once per frame
    void FixedUpdate()
    {
        if (timer_started)
        {
            time_to_go_back_to_menu -= Time.deltaTime;
            if(time_to_go_back_to_menu <= 0.0f)
            {
                time_to_go_back_to_menu = time_to_go_back_to_menu_max;
                timer_started = false;
                game_manager.gstate = vars.game_state.main_menu;

                firework_holder.GetComponent<firework_animator>().stop_all();
                player1_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();
                player2_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();
                player3_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();
                player4_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();

                gm.reset_game();
            }
        }

        if(win_state == wstate.waiting_for_win){
            win_pos_holder.SetActive(false);
            if(game_manager.gstate == vars.game_state.win_sequenze){
                win_state = wstate.goto_win_plattform;
            }
        }

        if(win_state == wstate.show_win_animations){
            //bla bla
            firework_holder.GetComponent<firework_animator>().stop_all();
            firework_holder.GetComponent<firework_animator>().play_all();
            player1_scrpit_obj.GetComponent<adv_playercontroller>().enabel_dance();
            player2_scrpit_obj.GetComponent<adv_playercontroller>().enabel_dance();
            player3_scrpit_obj.GetComponent<adv_playercontroller>().enabel_dance();
            player4_scrpit_obj.GetComponent<adv_playercontroller>().enabel_dance();

        }

        if (win_state == wstate.goto_win_plattform){
            win_pos_holder.SetActive(true);
            timer_started = true;
            time_to_go_back_to_menu = time_to_go_back_to_menu_max;
            gm.generate_win_table();
          //REMOVE BALL FROM HEAD
          GameObject.Find("ball").GetComponent<ball>().carried_by = vars.player_id.none;
          GameObject.Find("ball").GetComponent<ball>().set_to_pause_pos();

            player1_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();
            player2_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();
            player3_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();
            player4_scrpit_obj.GetComponent<adv_playercontroller>().set_pause_pos();

          player1_scrpit_obj.GetComponent<adv_playercontroller>().reset_velocity_and_gravity();
          player2_scrpit_obj.GetComponent<adv_playercontroller>().reset_velocity_and_gravity();
          player3_scrpit_obj.GetComponent<adv_playercontroller>().reset_velocity_and_gravity();
          player4_scrpit_obj.GetComponent<adv_playercontroller>().reset_velocity_and_gravity();

            for (int i = 0; i < gm.winner_score_list.Count; i++)
            {

                Transform current_place;
                Debug.Log( i.ToString() + " : player:" +gm.winner_score_list[i].player +" score:" + gm.winner_score_list[i].score);

                switch (i)
                {
                        case 0:

                        current_place = GameObject.Find("1st_place").transform;
                        break;

                    case 1:
                        current_place = GameObject.Find("2nd_place").transform;
                        break;

                    case 2:
                        current_place = GameObject.Find("3rd_place").transform;
                        break;

                    case 3:
                        current_place = GameObject.Find("4th_place").transform;
                        break;

                    default:
                        current_place = GameObject.Find("pause_position").transform;
                        break;
                }

                if(gm.winner_score_list[i].player == vars.player_id.player_1 && player1_scrpit_obj.GetComponent<adv_playercontroller>().is_playing)
                {
                    player1_scrpit_obj.GetComponent<adv_playercontroller>().physics_container.transform.position = current_place.position;
                }
                else if (gm.winner_score_list[i].player == vars.player_id.player_2 && player2_scrpit_obj.GetComponent<adv_playercontroller>().is_playing)
                {
                    player2_scrpit_obj.GetComponent<adv_playercontroller>().physics_container.transform.position = current_place.position;
                }
                else if (gm.winner_score_list[i].player == vars.player_id.player_3 && player3_scrpit_obj.GetComponent<adv_playercontroller>().is_playing)
                {
                    player3_scrpit_obj.GetComponent<adv_playercontroller>().physics_container.transform.position = current_place.position;
                }
                else if (gm.winner_score_list[i].player == vars.player_id.player_4 && player4_scrpit_obj.GetComponent<adv_playercontroller>().is_playing)
                {
                    player4_scrpit_obj.GetComponent<adv_playercontroller>().physics_container.transform.position = current_place.position;
                }

            }

            win_state = wstate.show_win_animations;

        }
    }
 // Use this for initialization
 void Start()
 {
     gm =GameObject.Find("game_manager").GetComponent<game_manager>();
     win_state = wstate.waiting_for_win;
     win_pos_holder.SetActive(false);
     time_to_go_back_to_menu = time_to_go_back_to_menu_max;
     timer_started = false;
 }