public static void AddListenersToLines()
    {
        CampaignPlayerController playerController = GameObject.Find("GameManager").GetComponent <CampaignPlayerController>();

        //Debug.Log("Player Controller: " + playerController);

        GameObject[] lineButtonsInLevel = GameObject.FindGameObjectsWithTag("LinePlacement");
        //Debug.Log("Line Buttons: " + lineButtonsInLevel.Length);


        foreach (GameObject obj in lineButtonsInLevel)
        {
            UnityEvent btnOnClick = obj.GetComponent <Button>().onClick;

            //Remove 2 empty listeners that are part of the prefab
            UnityEventTools.RemovePersistentListener(btnOnClick, 0);
            UnityEventTools.RemovePersistentListener(btnOnClick, 0);

            //Create Actions for methods to add
            UnityAction drawMethod    = new UnityAction(playerController.PlayerDrawLine);
            UnityAction destroyMethod = new UnityAction(playerController.DestroyStaticLine);

            //Add persistent listeners in editor
            UnityEventTools.AddPersistentListener(btnOnClick, drawMethod);
            UnityEventTools.AddPersistentListener(btnOnClick, destroyMethod);
        }

        EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
        Debug.Log("Added listeners to " + lineButtonsInLevel.Length + " line buttons.");
    }
    void Start()
    {
        Instance = this;

        mode = (SceneManager.GetActiveScene().name.Contains("HeroBoard")) ? "hero" : string.Empty;

        //playerLine = (GameObject) Resources.Load("PlayerLine");
        lineGridScale = GameObject.Find("LineGrid").transform.localScale;
        canDraw       = false;
        drawingTime   = 0f;

        _Dynamic = GameObject.Find("_Dynamic");

        //currentPowerUp = "";

        if (mode != "hero")
        {
            canUseBomb = false;
            bombToggle = GameObject.Find("BombToggle").GetComponent <Toggle>();
            bombToggle.gameObject.SetActive(false);
            bombToggle.onValueChanged.AddListener((isOn) => ToggleBomb());


            canUseThiefToken = false;
            thiefTokenToggle = GameObject.Find("ThiefTokenToggle").GetComponent <Toggle>();
            thiefTokenToggle.gameObject.SetActive(false);
            thiefTokenToggle.onValueChanged.AddListener((isOn) => ToggleThiefToken());

            drawDuration = 2.0f;
        }
        else
        {
            drawDuration = 0.5f;
        }
    }
    public static void ConnectPowerUps()
    {
        CampaignPlayerController playerController = GameObject.Find("GameManager").GetComponent <CampaignPlayerController>();

        Button bombButton  = GameObject.Find("BombButton").GetComponent <Button>();
        Button thiefButton = GameObject.Find("ThiefTokenButton").GetComponent <Button>();

        //Remove 2 empty listeners that are part of the prefab
        UnityEventTools.RemovePersistentListener(bombButton.onClick, 0);
        UnityEventTools.RemovePersistentListener(thiefButton.onClick, 0);

        UnityAction bombMethod  = new UnityAction(playerController.ToggleBomb);
        UnityAction thiefMethod = new UnityAction(playerController.ToggleThiefToken);

        UnityEventTools.AddPersistentListener(bombButton.onClick, bombMethod);
        UnityEventTools.AddPersistentListener(thiefButton.onClick, thiefMethod);


        EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
        Debug.Log("Added listeners to PowerUp buttons.");
    }