\hypertarget{classObserverScoutTask}{\section{\-Observer\-Scout\-Task \-Class \-Reference}
\label{classObserverScoutTask}\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}}
}


{\ttfamily \#include $<$\-Observer\-Scout\-Task.\-h$>$}



\-Inheritance diagram for \-Observer\-Scout\-Task\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classObserverScoutTask__inherit__graph}
\end{center}
\end{figure}


\-Collaboration diagram for \-Observer\-Scout\-Task\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{classObserverScoutTask__coll__graph}
\end{center}
\end{figure}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classObserverScoutTask_adfe2dd71baa95dd9bea7919d3b075d01}{\-Observer\-Scout\-Task} (\hyperlink{Task_8h_a7b31e3712710b22657fc622787547497}{\-Task\-Type} priority, \hyperlink{ScoutData_8h_a3951f1ab933a5f06cae3ddac28e86de0}{\-Scout\-Data} data)
\item 
virtual int \hyperlink{classObserverScoutTask_adc23ef0561279e0e276c1edbf10a51b6}{get\-End\-Time} () const 
\item 
virtual int \hyperlink{classObserverScoutTask_a007138c6ff295caafa6e78c674478699}{get\-End\-Time} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit) const 
\item 
virtual int \hyperlink{classObserverScoutTask_a7557714c50d24b016ae72313494ef073}{get\-Priority} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit) const 
\item 
virtual \hyperlink{Interface_8h_a7ae5d695cf6b7c013c5ad30d124278e0}{\-Position} \hyperlink{classObserverScoutTask_a5e76dd3c690a9c9bbd8252bf22dee8e4}{get\-Start\-Location} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit) const 
\item 
virtual \hyperlink{Interface_8h_a7ae5d695cf6b7c013c5ad30d124278e0}{\-Position} \hyperlink{classObserverScoutTask_a8dfc9803030e0cca6082195f6f1313bc}{get\-End\-Location} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit) const 
\item 
virtual bool \hyperlink{classObserverScoutTask_ae44dbb700564961b96919463d82ef99e}{pre\-Update} ()
\item 
virtual bool \hyperlink{classObserverScoutTask_a94ccaa72d41dbcc528fcc00607f6bab8}{update} ()
\item 
virtual void \hyperlink{classObserverScoutTask_a7736247e4470735622a6073c972774a2}{update\-Requirements} ()
\item 
virtual bool \hyperlink{classObserverScoutTask_a902f7323650c782d4100919add3c7256}{waiting\-For\-Unit} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit) const 
\item 
virtual void \hyperlink{classObserverScoutTask_a2d874768b94dbf0c288af14fb1bf3589}{give\-Unit} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit)
\item 
virtual void \hyperlink{classObserverScoutTask_a24c1ef40f066e25aa7957980fdb3c77c}{return\-Unit} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit)
\item 
virtual bool \hyperlink{classObserverScoutTask_aa2d569cb7869c1d6bb555d416ade770e}{morph} (\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} unit, \hyperlink{classBWAPI_1_1UnitType}{\-B\-W\-A\-P\-I\-::\-Unit\-Type} previous\-Type)
\item 
virtual \hyperlink{classUnitGroup}{\-Unit\-Group} \hyperlink{classObserverScoutTask_a8452ecc8614cc3e87edfecd89f6c23ec}{get\-Finished\-Units} ()
\item 
virtual std\-::string \hyperlink{classObserverScoutTask_aba7566d889aa105f040d14a34d58de38}{get\-Task\-Name} () const 
\item 
virtual std\-::string \hyperlink{classObserverScoutTask_ae0c6e541b4636820150d4efbb537c4d5}{get\-Output\-Name} () const 
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{Interface_8h_ab8fbb9e601c27f783b69f16c5a1fd40a}{\-Unit} \hyperlink{classObserverScoutTask_adf699750a07f93ef061b6da6a32113fb}{m\-Unit}
\item 
\hyperlink{classBehaviour}{\-Behaviour} \hyperlink{classObserverScoutTask_a7280a327564c01ab0075d541d5cb9e14}{m\-Unit\-Behaviour}
\item 
\hyperlink{ScoutData_8h_a3951f1ab933a5f06cae3ddac28e86de0}{\-Scout\-Data} \hyperlink{classObserverScoutTask_a569e9b447e009644d88338f9f4513473}{m\-Data}
\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}


\-Definition at line 12 of file \-Observer\-Scout\-Task.\-h.



\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classObserverScoutTask_adfe2dd71baa95dd9bea7919d3b075d01}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}}
\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{\-Observer\-Scout\-Task}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-Observer\-Scout\-Task\-::\-Observer\-Scout\-Task} (
\begin{DoxyParamCaption}
\item[{{\bf \-Task\-Type}}]{priority, }
\item[{{\bf \-Scout\-Data}}]{data}
\end{DoxyParamCaption}
)}}\label{classObserverScoutTask_adfe2dd71baa95dd9bea7919d3b075d01}


\-Definition at line 4 of file \-Observer\-Scout\-Task.\-cpp.


\begin{DoxyCode}
        : Task(priority)
        , mData(data)
{
}
\end{DoxyCode}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classObserverScoutTask_a8dfc9803030e0cca6082195f6f1313bc}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-End\-Location@{get\-End\-Location}}
\index{get\-End\-Location@{get\-End\-Location}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-End\-Location}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-Position} {\bf \-Observer\-Scout\-Task\-::get\-End\-Location} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a8dfc9803030e0cca6082195f6f1313bc}


\-Implements \hyperlink{classTask_ae1c96f2085a7126fb0baf5f039caeee4}{\-Task}.



\-Definition at line 33 of file \-Observer\-Scout\-Task.\-cpp.



\-References m\-Data.


\begin{DoxyCode}
{
        if(mData)
                return mData->getLastPosition(unit->getPosition());

        return unit->getPosition();
}
\end{DoxyCode}
\hypertarget{classObserverScoutTask_adc23ef0561279e0e276c1edbf10a51b6}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-End\-Time@{get\-End\-Time}}
\index{get\-End\-Time@{get\-End\-Time}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-End\-Time}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-Observer\-Scout\-Task\-::get\-End\-Time} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_adc23ef0561279e0e276c1edbf10a51b6}


\-Implements \hyperlink{classTask_a2d89c4f298ec499a3ecc02c45c361f41}{\-Task}.



\-Definition at line 10 of file \-Observer\-Scout\-Task.\-cpp.



\-References \-Requirement\-::max\-Time.



\-Referenced by get\-End\-Time().


\begin{DoxyCode}
{
        return Requirement::maxTime;
}
\end{DoxyCode}


\-Here is the caller graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_adc23ef0561279e0e276c1edbf10a51b6_icgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_a007138c6ff295caafa6e78c674478699}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-End\-Time@{get\-End\-Time}}
\index{get\-End\-Time@{get\-End\-Time}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-End\-Time}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-Observer\-Scout\-Task\-::get\-End\-Time} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a007138c6ff295caafa6e78c674478699}


\-Implements \hyperlink{classTask_afba4a0f2a63ee2bd30b29bee33324982}{\-Task}.



\-Definition at line 15 of file \-Observer\-Scout\-Task.\-cpp.



\-References get\-End\-Time().


\begin{DoxyCode}
{
        return getEndTime();
}
\end{DoxyCode}


\-Here is the call graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_a007138c6ff295caafa6e78c674478699_cgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_a8452ecc8614cc3e87edfecd89f6c23ec}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-Finished\-Units@{get\-Finished\-Units}}
\index{get\-Finished\-Units@{get\-Finished\-Units}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-Finished\-Units}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-Unit\-Group} {\bf \-Observer\-Scout\-Task\-::get\-Finished\-Units} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a8452ecc8614cc3e87edfecd89f6c23ec}


\-Implements \hyperlink{classTask_af44e192b780e39d89c79f40d92a1e2a8}{\-Task}.



\-Definition at line 116 of file \-Observer\-Scout\-Task.\-cpp.



\-References \-Unit\-Group\-::insert(), and m\-Unit.


\begin{DoxyCode}
{
        UnitGroup returnUnits;

        returnUnits.insert(mUnit);

        return returnUnits;
}\end{DoxyCode}


\-Here is the call graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_a8452ecc8614cc3e87edfecd89f6c23ec_cgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_ae0c6e541b4636820150d4efbb537c4d5}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-Output\-Name@{get\-Output\-Name}}
\index{get\-Output\-Name@{get\-Output\-Name}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-Output\-Name}]{\setlength{\rightskip}{0pt plus 5cm}virtual std\-::string {\bf \-Observer\-Scout\-Task\-::get\-Output\-Name} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}\label{classObserverScoutTask_ae0c6e541b4636820150d4efbb537c4d5}


\-Implements \hyperlink{classTask_ad6349b722f8dd48bcde4020d225d047b}{\-Task}.



\-Definition at line 37 of file \-Observer\-Scout\-Task.\-h.


\begin{DoxyCode}
{ return ""; }
\end{DoxyCode}
\hypertarget{classObserverScoutTask_a7557714c50d24b016ae72313494ef073}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-Priority@{get\-Priority}}
\index{get\-Priority@{get\-Priority}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-Priority}]{\setlength{\rightskip}{0pt plus 5cm}int {\bf \-Observer\-Scout\-Task\-::get\-Priority} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a7557714c50d24b016ae72313494ef073}


\-Implements \hyperlink{classTask_a01453612cced63eaf9e8c1de24742415}{\-Task}.



\-Definition at line 20 of file \-Observer\-Scout\-Task.\-cpp.


\begin{DoxyCode}
{
        return 10;
}
\end{DoxyCode}
\hypertarget{classObserverScoutTask_a5e76dd3c690a9c9bbd8252bf22dee8e4}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-Start\-Location@{get\-Start\-Location}}
\index{get\-Start\-Location@{get\-Start\-Location}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-Start\-Location}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-Position} {\bf \-Observer\-Scout\-Task\-::get\-Start\-Location} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a5e76dd3c690a9c9bbd8252bf22dee8e4}


\-Implements \hyperlink{classTask_a5b911073755ecca5536db6c73fb85127}{\-Task}.



\-Definition at line 25 of file \-Observer\-Scout\-Task.\-cpp.



\-References m\-Data.


\begin{DoxyCode}
{
        if(mData)
                return mData->getNextPosition(unit->getPosition());

        return unit->getPosition();
}
\end{DoxyCode}
\hypertarget{classObserverScoutTask_aba7566d889aa105f040d14a34d58de38}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!get\-Task\-Name@{get\-Task\-Name}}
\index{get\-Task\-Name@{get\-Task\-Name}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{get\-Task\-Name}]{\setlength{\rightskip}{0pt plus 5cm}virtual std\-::string {\bf \-Observer\-Scout\-Task\-::get\-Task\-Name} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline, virtual\mbox{]}}}}\label{classObserverScoutTask_aba7566d889aa105f040d14a34d58de38}


\-Implements \hyperlink{classTask_ad188a18386ae1120317eac922228ce18}{\-Task}.



\-Definition at line 36 of file \-Observer\-Scout\-Task.\-h.


\begin{DoxyCode}
{ return "Observer Scout"; }
\end{DoxyCode}
\hypertarget{classObserverScoutTask_a2d874768b94dbf0c288af14fb1bf3589}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!give\-Unit@{give\-Unit}}
\index{give\-Unit@{give\-Unit}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{give\-Unit}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf \-Observer\-Scout\-Task\-::give\-Unit} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a2d874768b94dbf0c288af14fb1bf3589}


\-Implements \hyperlink{classTask_a40f1808c208279c99223c1ce5bc9607d}{\-Task}.



\-Definition at line 94 of file \-Observer\-Scout\-Task.\-cpp.



\-References m\-Unit, m\-Unit\-Behaviour, and \-Behaviour\-::set().


\begin{DoxyCode}
{
        mUnit = unit;
        mUnitBehaviour.set(unit);
}
\end{DoxyCode}


\-Here is the call graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_a2d874768b94dbf0c288af14fb1bf3589_cgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_aa2d569cb7869c1d6bb555d416ade770e}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!morph@{morph}}
\index{morph@{morph}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{morph}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf \-Observer\-Scout\-Task\-::morph} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit, }
\item[{{\bf \-B\-W\-A\-P\-I\-::\-Unit\-Type}}]{previous\-Type}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_aa2d569cb7869c1d6bb555d416ade770e}


\-Implements \hyperlink{classTask_a084117559b93bfb82c4f6c3b88c6609c}{\-Task}.



\-Definition at line 111 of file \-Observer\-Scout\-Task.\-cpp.


\begin{DoxyCode}
{
        return true;
}
\end{DoxyCode}
\hypertarget{classObserverScoutTask_ae44dbb700564961b96919463d82ef99e}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!pre\-Update@{pre\-Update}}
\index{pre\-Update@{pre\-Update}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{pre\-Update}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf \-Observer\-Scout\-Task\-::pre\-Update} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_ae44dbb700564961b96919463d82ef99e}


\-Implements \hyperlink{classTask_a3cb1ce7dab90a8a2290381f78b665fe4}{\-Task}.



\-Definition at line 41 of file \-Observer\-Scout\-Task.\-cpp.



\-References \-Singleton$<$ T $>$\-::\-Instance(), m\-Data, and m\-Unit.


\begin{DoxyCode}
{
        if(mData && mData->isAchieved())
                mData.reset();

        if(mUnit && !mData)
                mData = ScoutManager::Instance().getScoutData(
      ScoutUnitType::Observer);

        return false;
}
\end{DoxyCode}


\-Here is the call graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_ae44dbb700564961b96919463d82ef99e_cgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_a24c1ef40f066e25aa7957980fdb3c77c}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!return\-Unit@{return\-Unit}}
\index{return\-Unit@{return\-Unit}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{return\-Unit}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf \-Observer\-Scout\-Task\-::return\-Unit} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a24c1ef40f066e25aa7957980fdb3c77c}


\-Implements \hyperlink{classTask_a34a365e54af1b184d43fcbf7a7730696}{\-Task}.



\-Definition at line 100 of file \-Observer\-Scout\-Task.\-cpp.



\-References \-Task\-::complete(), \-Scout\-Type\-Def\-::\-Failed\-With\-Air, \-Singleton$<$ T $>$\-::\-Instance(), m\-Data, m\-Unit, m\-Unit\-Behaviour, \-Static\-Units\-::nullunit, and \-Behaviour\-::on\-Deleted().


\begin{DoxyCode}
{
        if(!mUnit->exists() && mData)
                ScoutManager::Instance().updateLastScoutType(mData, 
      ScoutType::FailedWithAir);

        complete();

        mUnit = StaticUnits::nullunit;
        mUnitBehaviour.onDeleted();
}
\end{DoxyCode}


\-Here is the call graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_a24c1ef40f066e25aa7957980fdb3c77c_cgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_a94ccaa72d41dbcc528fcc00607f6bab8}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!update@{update}}
\index{update@{update}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{update}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf \-Observer\-Scout\-Task\-::update} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a94ccaa72d41dbcc528fcc00607f6bab8}


\-Implements \hyperlink{classTask_a88e5096a1943df5d72f3329af2bc2562}{\-Task}.



\-Definition at line 52 of file \-Observer\-Scout\-Task.\-cpp.



\-References \-Action\-Type\-Def\-::\-Fall\-Back, \-Goal\-::get\-Goal\-Type(), \-Task\-::has\-Ended(), m\-Data, m\-Unit, m\-Unit\-Behaviour, \-B\-W\-A\-P\-I\-::\-Bullet\-Types\-::\-None, and \-Behaviour\-::update().


\begin{DoxyCode}
{
        if(mUnit)
        {
                Goal observerGoal;

                if(mData)
                        observerGoal = Goal(ActionType::FallBack, mData->
      getNextPosition(mUnit->getPosition()));

                if(observerGoal.getGoalType() == GoalType::None)
                {
                        ;//TODO: go to closest cloaked enemy unit
                        //TODO: go to closest enemy scv that is in the fog
                }

                mUnitBehaviour.update(observerGoal, UnitGroup());
        }

        return hasEnded() && !mUnit;
}
\end{DoxyCode}


\-Here is the call graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_a94ccaa72d41dbcc528fcc00607f6bab8_cgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_a7736247e4470735622a6073c972774a2}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!update\-Requirements@{update\-Requirements}}
\index{update\-Requirements@{update\-Requirements}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{update\-Requirements}]{\setlength{\rightskip}{0pt plus 5cm}void {\bf \-Observer\-Scout\-Task\-::update\-Requirements} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a7736247e4470735622a6073c972774a2}


\-Reimplemented from \hyperlink{classTask_a939d9adfef004e349e78d5949ba37dd8}{\-Task}.



\-Definition at line 73 of file \-Observer\-Scout\-Task.\-cpp.



\-References \-Task\-::add\-Requirement(), \-Requirement\-Group\-::add\-Unit\-Filter\-Requirement(), \-Task\-::clear\-Requirements(), \-Unit\-Filter\-Flags\-::\-Is\-Complete, \-Requirement\-::max\-Time, m\-Data, m\-Unit, \-B\-W\-A\-P\-I\-::\-Unit\-Types\-::\-Protoss\-\_\-\-Observer, and \-Task\-::should\-Return\-Unit().


\begin{DoxyCode}
{
        clearRequirements();

        if(!mUnit && !shouldReturnUnit())
        {
                RequirementGroup requirementOne;
                if(mData)
                        requirementOne.addUnitFilterRequirement(10, 
      Requirement::maxTime, UnitFilter(BWAPI::UnitTypes::Protoss_Observer) && 
      UnitFilter(UnitFilterFlags::IsComplete), mData->getNextPosition());
                else
                        requirementOne.addUnitFilterRequirement(10, 
      Requirement::maxTime, UnitFilter(BWAPI::UnitTypes::Protoss_Observer) && 
      UnitFilter(UnitFilterFlags::IsComplete));

                addRequirement(requirementOne);
        }
}
\end{DoxyCode}


\-Here is the call graph for this function\-:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{classObserverScoutTask_a7736247e4470735622a6073c972774a2_cgraph}
\end{center}
\end{figure}


\hypertarget{classObserverScoutTask_a902f7323650c782d4100919add3c7256}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!waiting\-For\-Unit@{waiting\-For\-Unit}}
\index{waiting\-For\-Unit@{waiting\-For\-Unit}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{waiting\-For\-Unit}]{\setlength{\rightskip}{0pt plus 5cm}bool {\bf \-Observer\-Scout\-Task\-::waiting\-For\-Unit} (
\begin{DoxyParamCaption}
\item[{{\bf \-Unit}}]{unit}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}\label{classObserverScoutTask_a902f7323650c782d4100919add3c7256}


\-Implements \hyperlink{classTask_a173eafb86a3d9d6c148d005f7778361c}{\-Task}.



\-Definition at line 89 of file \-Observer\-Scout\-Task.\-cpp.


\begin{DoxyCode}
{
        return false;
}
\end{DoxyCode}


\subsection{\-Member \-Data \-Documentation}
\hypertarget{classObserverScoutTask_a569e9b447e009644d88338f9f4513473}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!m\-Data@{m\-Data}}
\index{m\-Data@{m\-Data}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{m\-Data}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-Scout\-Data} {\bf \-Observer\-Scout\-Task\-::m\-Data}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}\label{classObserverScoutTask_a569e9b447e009644d88338f9f4513473}


\-Definition at line 43 of file \-Observer\-Scout\-Task.\-h.



\-Referenced by get\-End\-Location(), get\-Start\-Location(), pre\-Update(), return\-Unit(), update(), and update\-Requirements().

\hypertarget{classObserverScoutTask_adf699750a07f93ef061b6da6a32113fb}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!m\-Unit@{m\-Unit}}
\index{m\-Unit@{m\-Unit}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{m\-Unit}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-Unit} {\bf \-Observer\-Scout\-Task\-::m\-Unit}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}\label{classObserverScoutTask_adf699750a07f93ef061b6da6a32113fb}


\-Definition at line 40 of file \-Observer\-Scout\-Task.\-h.



\-Referenced by get\-Finished\-Units(), give\-Unit(), pre\-Update(), return\-Unit(), update(), and update\-Requirements().

\hypertarget{classObserverScoutTask_a7280a327564c01ab0075d541d5cb9e14}{\index{\-Observer\-Scout\-Task@{\-Observer\-Scout\-Task}!m\-Unit\-Behaviour@{m\-Unit\-Behaviour}}
\index{m\-Unit\-Behaviour@{m\-Unit\-Behaviour}!ObserverScoutTask@{\-Observer\-Scout\-Task}}
\subsubsection[{m\-Unit\-Behaviour}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-Behaviour} {\bf \-Observer\-Scout\-Task\-::m\-Unit\-Behaviour}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}\label{classObserverScoutTask_a7280a327564c01ab0075d541d5cb9e14}


\-Definition at line 41 of file \-Observer\-Scout\-Task.\-h.



\-Referenced by give\-Unit(), return\-Unit(), and update().



\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\-Skynet/\-Skynet/\hyperlink{ObserverScoutTask_8h}{\-Observer\-Scout\-Task.\-h}\item 
\-Skynet/\-Skynet/\hyperlink{ObserverScoutTask_8cpp}{\-Observer\-Scout\-Task.\-cpp}\end{DoxyCompactItemize}
