Files
afsim_addfuel/processors/pathPatrol.txt

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