// My methof for main planner
    // basically followed by what Clark taught in class
    void SimperForwardPlanner()
    {
        plan = new List <HTNTask>();

        pickup        = false;
        findPlayer    = false;
        throwFinished = false;

        HTNTasks = new Stack <HTNTask>();
        HTNTasks.Push(beAMonster);
        while (HTNTasks.Count != 0)
        {
            HTNTask hTNTask = HTNTasks.Pop();
            if (hTNTask.isCompound)
            {
                List <HTNTask> foundTasks = hTNTask.addSubtasks();
                if (foundTasks.Count > 0)
                {
                    for (int i = foundTasks.Count - 1; i >= 0; i--)
                    {
                        HTNTasks.Push(foundTasks[i]);
                    }
                }
                else
                {
                    resotreWorldState();
                }
            }
            else
            {
                if (hTNTask.checkPre(worldState))
                {
                    plan.Add(hTNTask);
                }
                else
                {
                    resotreWorldState();
                }
            }
        }
    }