public void OnMouseClick()
    {
        Player currentPlayer = PlayerManager.Instance.getCurrentPlayer();

        // If an object is currently selected, check if unit and then move to current tile
        if (currentPlayer.selectedObject != null)
        {
            if (currentPlayer.selectedObject.tag == "Unit")
            {
                // if the tile is marked as traversable travel to it
                Vector2i tilePos = GLOBAL.worldToGrid(transform.position);

                if (TileMarker.Instance.travTiles.ContainsKey(tilePos))
                {
                    currentPlayer.selectedObject.GetComponent <Unit>().TravelToPos(tilePos);
                    TileMarker.Instance.Clear();
                }

                // if the tile is marked with an AoE tile, begin AoE selection
                else if (TileMarker.Instance.AoETiles.ContainsKey(tilePos))
                {
                    //TileMarker.Instance.Clear(); // clear purple tiles
                    //CombatSequence.Instance.AoEWeapon.markAoEPattern(GLOBAL.worldToGrid(transform.position));
                    //CombatSequence.Instance.AoERoot = GLOBAL.worldToGrid(transform.position);
                    //UIManager.Instance.activateAttackButton();  // activate confirm button for AoE attacks
                }
            }
        }
    }
    public void createNext()
    {
        Unit     unit = CombatSequence.Instance.attacker;//PlayerManager.Instance.getCurrentPlayer().selectedObject.GetComponent<Unit>();
        Vector2i next = GLOBAL.worldToGrid(transform.position) + direction;

        if (next.x >= 0 && next.x < MapScript.Instance.mapWidth && next.y >= 0 && next.y < MapScript.Instance.mapHeight)
        {
            GameObject go = GameObject.Instantiate(Resources.Load("WeaponEffects/EnergyGreen") as GameObject, GLOBAL.gridToWorld(GLOBAL.worldToGrid(transform.position) + direction), Quaternion.identity) as GameObject;
            go.GetComponent <EnergyChainShot>().max       = max;
            go.GetComponent <EnergyChainShot>().direction = direction;
        }
    }
    public void OnMouseClick()
    {
        CombatSequence combatSequence = CombatSequence.Instance;

        TileMarker.Instance.Clear(); // clear purple tiles

        combatSequence.AoEWeapon.markAoEPattern(GLOBAL.worldToGrid(transform.position));
        combatSequence.AoERoot = GLOBAL.worldToGrid(transform.position);



        UIManager.Instance.activateAttackButton();  // activate confirm button for AoE attacks
    }
    public void destroy()
    {
        Vector2i pos  = GLOBAL.worldToGrid(transform.position);
        Unit     unit = CombatSequence.Instance.attacker;//PlayerManager.Instance.getCurrentPlayer().selectedObject.GetComponent<Unit>();

        if (pos.Distance(unit.pos) == max)
        {
            // last shot, administer damage (TODO: only administer once regardless of how many max distance tiles there are)
            CombatSequence.Instance.AoEDamage();
        }

        Destroy(gameObject);
    }