20 ref BotHunt_Tracking m_Tracking;
21 ref BotHunt_Hunting m_Hunting;
28 m_Tracking =
new BotHunt_Tracking(m_Bot,
this);
29 m_Hunting =
new BotHunt_Hunting(m_Bot,
this);
36 m_FSM.AddTransition(
new BotTransition( m_Tracking, __InSight__, m_Hunting));
37 m_FSM.AddTransition(
new BotTransition( m_Hunting, __Lost__ , m_Tracking));
39 m_FSM.SetInitialState(m_Tracking);
82 Print(
"Searching...");
92 bool m_TargetInSight =
false;
93 bool m_TargetLost =
false;
94 bool m_Tracking =
true;
100 m_TargetLost =
false;
101 m_TargetInSight =
false;
107 m_TargetLost =
false;
108 m_TargetInSight =
false;
116 m_TargetLost =
false;
117 m_TargetInSight =
false;
135 m_TargetInSight =
true;
139 m_TargetInSight =
false;
142 if (!m_TargetInSight)
144 GetPlayerOwner().GetInputController().OverrideMovementSpeed(
true, 1);
145 GetPlayerOwner().GetInputController().OverrideMovementAngle(
true, 1);
149 GetPlayerOwner().GetInputController().OverrideMovementSpeed(
false, 0);
150 GetPlayerOwner().GetInputController().OverrideMovementAngle(
false, 0);
164 m_TargetInSight =
false;
167 GetPlayerOwner().GetInputController().OverrideMovementSpeed(
false, 0);
168 GetPlayerOwner().GetInputController().OverrideMovementAngle(
false, 0);
218 vector pos = bot.GetPosition();
223 GetGame().GetObjectsAtPosition(pos, 100.0, objects, proxyCargos);
225 float min_dist = 1234567.0;
227 int c = objects.Count();
228 for (
int i = 0; i < c; i++)
234 float d =
vector.Distance(o.GetPosition(), bot.GetPosition());
244 botDebugPrint(
"[bot] + " + bot +
" BotSelectNearestTarget idx=" + min_index +
" dist=" + min_dist +
" obj=" + o);
245 return Man.Cast( objects.Get(min_index) );