加入天工3
This commit is contained in:
147
platforms/blue/TG3_cmdr.txt
Normal file
147
platforms/blue/TG3_cmdr.txt
Normal file
@@ -0,0 +1,147 @@
|
||||
# File generated by Wizard 2.9.0 on Oct 11, 2025.
|
||||
processor TG3_CMDR_TASK_MGR WSF_TASK_PROCESSOR
|
||||
number_of_servers 5
|
||||
|
||||
track_update_interval 5.0 sec
|
||||
|
||||
#script_debug_writes true
|
||||
#show_state_transitions
|
||||
#show_task_messages
|
||||
|
||||
script_variables
|
||||
int MAX_SAMS_PER_TARGET = 2;
|
||||
int MAX_ASSIGNMENTS_PER_SAM = 4;
|
||||
string WEAPON_NAME = "sam";
|
||||
end_script_variables
|
||||
|
||||
// determine if TRACK is assignable
|
||||
script bool IsAssignable()
|
||||
#writeln(TRACK);
|
||||
if ((! TRACK.IFF_Friend()) &&
|
||||
(TRACK.TimeSinceUpdated() < 30.0))
|
||||
{
|
||||
#writeln("find enermy");
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
end_script
|
||||
|
||||
// determine if the subordinate and/or his subordinates have weapons remaining
|
||||
script bool WeaponsAvailable(WsfPlatform aAssignee)
|
||||
bool weaponsAvailable = false;
|
||||
|
||||
int quantity = 0;
|
||||
WsfWeapon weapon = aAssignee.Weapon(WEAPON_NAME);
|
||||
if (weapon.IsTurnedOn())
|
||||
{
|
||||
quantity = quantity + weapon.QuantityRemaining();
|
||||
}
|
||||
if (quantity > 0)
|
||||
{
|
||||
weaponsAvailable = true;
|
||||
}
|
||||
|
||||
return weaponsAvailable;
|
||||
end_script
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
script void sendMessage()
|
||||
#writeln("MakeAssignments ");
|
||||
Array<WsfPlatform> firer = Array<WsfPlatform>();
|
||||
Array<WsfPlatform> mover = Array<WsfPlatform>();
|
||||
Array<WsfPlatform> waiter = Array<WsfPlatform>();
|
||||
foreach (WsfPlatform sub in PLATFORM.Subordinates())
|
||||
{
|
||||
|
||||
if (sub.Type() == "TG3_MISSILE")
|
||||
{
|
||||
#writeln("is LARGE_SAM_LAUNCHER");
|
||||
if (WeaponsAvailable(sub) &&
|
||||
(TasksAssignedTo(sub) < MAX_ASSIGNMENTS_PER_SAM) &&
|
||||
(TasksAssignedTo(sub, TRACK.TrackId()) < 1) &&
|
||||
(TRACK.WithinZoneOf(sub, "battalion_sector"))&&
|
||||
(TRACK.Altitude()>500))
|
||||
{
|
||||
#writeln("can fire");
|
||||
writeln("*** Adding ", sub.Name(), " to firer");
|
||||
firer.PushBack(sub);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
int i;
|
||||
int numAssignments = (int)MATH.Min(firer.Size(), MAX_SAMS_PER_TARGET);
|
||||
for (int i=0; i < numAssignments; i = i + 1)
|
||||
{
|
||||
writeln("assign fire");
|
||||
WsfControlMessage msg = WsfControlMessage();
|
||||
msg.SetAuxData("track",TRACK);
|
||||
msg.SetAuxData("task","FIRE");
|
||||
PLATFORM.Comm("sub_net").SendMessage(msg,firer[i].Name(),"cmdr_net");
|
||||
AssignTask(TRACK, "ENGAGE", firer[i]);
|
||||
}
|
||||
|
||||
|
||||
end_script
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
evaluation_interval DETECTED 10.0 sec
|
||||
time_to_evaluate DETECTED 5.0 secs
|
||||
state DETECTED
|
||||
next_state ASSIGNED
|
||||
if (! IsAssignable()) return false;
|
||||
#MakeAssignments();
|
||||
sendMessage();
|
||||
return true;
|
||||
end_next_state
|
||||
end_state
|
||||
|
||||
evaluation_interval ASSIGNED 10.0 sec
|
||||
time_to_evaluate ASSIGNED 1.0 secs
|
||||
state ASSIGNED
|
||||
next_state DETECTED
|
||||
if (! IsAssignable())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
#MakeAssignments();
|
||||
sendMessage();
|
||||
return false;
|
||||
end_next_state
|
||||
end_state
|
||||
end_processor
|
||||
|
||||
platform_type TG3_CMDR WSF_PLATFORM
|
||||
icon C4I
|
||||
|
||||
infrared_signature VEHICLE_INFRARED_SIGNATURE
|
||||
optical_signature VEHICLE_OPTICAL_SIGNATURE
|
||||
radar_signature VEHICLE_RADAR_SIGNATURE
|
||||
|
||||
mover WSF_GROUND_MOVER
|
||||
|
||||
end_mover
|
||||
|
||||
comm sub_net DATALINK
|
||||
network_name <local:master>
|
||||
internal_link data_mgr
|
||||
internal_link task_mgr
|
||||
end_comm
|
||||
|
||||
processor data_mgr WSF_TRACK_PROCESSOR
|
||||
purge_interval 60 sec
|
||||
end_processor
|
||||
|
||||
processor task_mgr TG3_CMDR_TASK_MGR
|
||||
operating_level ENGAGE 1
|
||||
|
||||
end_processor
|
||||
|
||||
|
||||
|
||||
end_platform_type
|
||||
49
platforms/blue/TG3_missile.txt
Normal file
49
platforms/blue/TG3_missile.txt
Normal file
@@ -0,0 +1,49 @@
|
||||
# File generated by Wizard 2.9.0 on Oct 10, 2025.
|
||||
include_once weapons/sam/large_sam.txt
|
||||
include_once behavior/behavior_fire.txt
|
||||
|
||||
|
||||
platform_type TG3_MISSILE WSF_PLATFORM
|
||||
icon SA-10_Launcher
|
||||
radar_signature VEHICLE_RADAR_SIGNATURE
|
||||
|
||||
|
||||
mover WSF_GROUND_MOVER
|
||||
end_mover
|
||||
|
||||
comm cmdr_net DATALINK
|
||||
network_name <local:slave>
|
||||
internal_link data_mgr
|
||||
internal_link task_mgr
|
||||
end_comm
|
||||
processor data_mgr WSF_TRACK_PROCESSOR
|
||||
purge_interval 60 sec
|
||||
end_processor
|
||||
|
||||
processor task_mgr WSF_SCRIPT_PROCESSOR
|
||||
|
||||
update_interval 5 sec
|
||||
advanced_behavior_tree
|
||||
btt on
|
||||
selector
|
||||
behavior_node behavior_fire
|
||||
|
||||
end_selector
|
||||
|
||||
end_advanced_behavior_tree
|
||||
|
||||
|
||||
end_processor
|
||||
|
||||
|
||||
weapon sam LARGE_SAM
|
||||
quantity 10
|
||||
end_weapon
|
||||
|
||||
zone battalion_sector
|
||||
circular maximum_radius 20 nm
|
||||
end_zone
|
||||
end_platform_type
|
||||
|
||||
|
||||
|
||||
29
platforms/blue/TG3_radar.txt
Normal file
29
platforms/blue/TG3_radar.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
# File generated by Wizard 2.9.0 on Oct 11, 2025.
|
||||
include_once sensors/radar/ew_radar.txt
|
||||
include_once processors/ep_operations.txt
|
||||
include_once platforms/red_radar_tactics.txt
|
||||
|
||||
platform_type TG3_RADAR WSF_PLATFORM
|
||||
icon Ground_Radar
|
||||
category 2D_RADAR
|
||||
infrared_signature VEHICLE_INFRARED_SIGNATURE
|
||||
optical_signature VEHICLE_OPTICAL_SIGNATURE
|
||||
radar_signature VEHICLE_RADAR_SIGNATURE
|
||||
|
||||
sensor ew_radar EW_RADAR
|
||||
on
|
||||
internal_link data_mgr
|
||||
ignore_same_side
|
||||
end_sensor
|
||||
|
||||
processor data_mgr WSF_LINKED_PROCESSOR
|
||||
report_to commander via sub_net
|
||||
end_processor
|
||||
|
||||
comm sub_net DATALINK
|
||||
network_name <local:slave>
|
||||
#internal_link task_mgr
|
||||
end_comm
|
||||
|
||||
|
||||
end_platform_type
|
||||
Reference in New Issue
Block a user