80 lines
1.8 KiB
Plaintext
80 lines
1.8 KiB
Plaintext
|
|
# File generated by Wizard 2.9.0 on Dec 16, 2024.
|
||
|
|
|
||
|
|
processor pathPatrol WSF_TASK_PROCESSOR
|
||
|
|
script_variables
|
||
|
|
double launchRange = 20.0 * MATH.M_PER_NM();
|
||
|
|
double salvoSize = 2;
|
||
|
|
string weaponName = "aa_mrm";
|
||
|
|
WsfWeapon aa_mrm = PLATFORM.Weapon(weaponName);
|
||
|
|
bool canPursue = false;
|
||
|
|
end_script_variables
|
||
|
|
|
||
|
|
script bool pursueCondition()
|
||
|
|
return (
|
||
|
|
aa_mrm.QuantityRemaining() > 0 &&
|
||
|
|
TRACK.Target().IsValid()
|
||
|
|
);
|
||
|
|
end_script
|
||
|
|
|
||
|
|
|
||
|
|
script bool Pursue()
|
||
|
|
if(pursueCondition())
|
||
|
|
{
|
||
|
|
PLATFORM.GoToLocation(TRACK.CurrentLocation());
|
||
|
|
return canPursue;
|
||
|
|
}
|
||
|
|
return canPursue;
|
||
|
|
end_script
|
||
|
|
|
||
|
|
script bool runAround()
|
||
|
|
if(PLATFORM.Side() == "red")
|
||
|
|
{
|
||
|
|
PLATFORM.FollowRoute(PLATFORM.Name());
|
||
|
|
}
|
||
|
|
return (TRACK.Target().IsValid());
|
||
|
|
end_script
|
||
|
|
|
||
|
|
on_initialize2
|
||
|
|
PLATFORM.FollowRoute(PLATFORM.Name());
|
||
|
|
end_on_initialize2
|
||
|
|
//////////////////////////////////////////STATE MACHINE///////////////////////////////////////
|
||
|
|
evaluation_interval DETECTED 1 sec
|
||
|
|
state DETECTED
|
||
|
|
next_state RUNAROUND
|
||
|
|
return (!pursueCondition()
|
||
|
|
|| PLATFORM.MasterTrackList().Count() <= 0
|
||
|
|
);
|
||
|
|
end_next_state
|
||
|
|
|
||
|
|
next_state PURSUE
|
||
|
|
return (pursueCondition());
|
||
|
|
end_next_state
|
||
|
|
end_state
|
||
|
|
|
||
|
|
evaluation_interval PURSUE 1 sec
|
||
|
|
state PURSUE
|
||
|
|
next_state WAIT
|
||
|
|
return Pursue();
|
||
|
|
end_next_state
|
||
|
|
end_state
|
||
|
|
|
||
|
|
evaluation_interval WAIT 1 sec
|
||
|
|
state WAIT
|
||
|
|
next_state DETECTED
|
||
|
|
return pursueCondition();
|
||
|
|
end_next_state
|
||
|
|
|
||
|
|
next_state RUNAROUND
|
||
|
|
return (!pursueCondition()
|
||
|
|
|| PLATFORM.MasterTrackList().Count() <= 0
|
||
|
|
);
|
||
|
|
end_next_state
|
||
|
|
end_state
|
||
|
|
|
||
|
|
evaluation_interval RUNAROUND 1 sec
|
||
|
|
state RUNAROUND
|
||
|
|
next_state DETECTED
|
||
|
|
return runAround();
|
||
|
|
end_next_state
|
||
|
|
end_state
|
||
|
|
end_processor
|