public void Attack()
    {
        CharacterInfo targetInfo = towerInfo.RunAI();

        if (targetInfo != null && towerInfo.WithinRange(targetInfo))
        {
            towerInfo.SetAttackInfo(targetInfo);
            towerInfo.ChangeState("attack", targetInfo);
        }
        else
        {
            towerInfo.ChangeState("idle");
        }
    }