蓝方兵力部署完成

This commit is contained in:
2025-10-20 17:47:36 +08:00
parent b648b7ef6d
commit 92af89206f
21 changed files with 952 additions and 119 deletions

30
platforms/blue/AH-1W.txt Normal file
View File

@@ -0,0 +1,30 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
include_once sensors/radar/acq_radar.txt
include_once signatures/copter_signature.txt
platform_type AH-1W WSF_PLATFORM
icon ah-64
infrared_signature COPTER_INFRARED_SIGNATURE
optical_signature COPTER_OPTICAL_SIGNATURE
radar_signature COPTER_RADAR_SIGNATURE
mover WSF_AIR_MOVER
end_mover
sensor acq_radar ACQ_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

30
platforms/blue/OH-58D.txt Normal file
View File

@@ -0,0 +1,30 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
include_once sensors/radar/acq_radar.txt
include_once signatures/copter_signature.txt
platform_type OH-58D WSF_PLATFORM
icon mh-60
infrared_signature COPTER_INFRARED_SIGNATURE
optical_signature COPTER_OPTICAL_SIGNATURE
radar_signature COPTER_RADAR_SIGNATURE
mover WSF_AIR_MOVER
end_mover
sensor acq_radar ACQ_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

29
platforms/blue/UH-1H.txt Normal file
View File

@@ -0,0 +1,29 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
include_once sensors/radar/acq_radar.txt
include_once signatures/copter_signature.txt
platform_type UH-1H WSF_PLATFORM
icon uh-60
infrared_signature COPTER_INFRARED_SIGNATURE
optical_signature COPTER_OPTICAL_SIGNATURE
radar_signature COPTER_RADAR_SIGNATURE
mover WSF_AIR_MOVER
end_mover
sensor acq_radar ACQ_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

View File

@@ -0,0 +1,146 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
processor COMMON_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 = "";
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;
string weapon_name=aAssignee->weapon_name;
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() == "MORTAR")
{
#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, "FIRE", firer[i]);
}
end_script
# -------------------------------------------------------------------------
evaluation_interval DETECTED 20.0 sec
time_to_evaluate DETECTED 5.0 secs
state DETECTED
next_state ASSIGNED
if (! IsAssignable()) return false;
sendMessage();
return true;
end_next_state
end_state
evaluation_interval ASSIGNED 20.0 sec
time_to_evaluate ASSIGNED 1.0 secs
state ASSIGNED
next_state DETECTED
if (! IsAssignable())
{
return true;
}
sendMessage();
return false;
end_next_state
end_state
end_processor
platform_type COMMON_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 COMMON_CMDR_TASK_MGR
operating_level ENGAGE 1
end_processor
end_platform_type

View File

@@ -0,0 +1,29 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
include_once sensors/radar/acq_radar.txt
include_once signatures/copter_signature.txt
platform_type COPTER_DRONE WSF_PLATFORM
icon apache
infrared_signature COPTER_INFRARED_SIGNATURE
optical_signature COPTER_OPTICAL_SIGNATURE
radar_signature COPTER_RADAR_SIGNATURE
mover WSF_AIR_MOVER
end_mover
sensor acq_radar ACQ_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

46
platforms/blue/man_am.txt Normal file
View File

@@ -0,0 +1,46 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
include_once weapons/sam/large_sam.txt
include_once behavior/behavior_fire.txt
include_once signatures/human_signature.txt
platform_type MAN_AM WSF_PLATFORM
icon human
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
script_variables
string weapon_name="sam";
end_script_variables
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 km
end_zone
end_platform_type

View File

@@ -0,0 +1,47 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
include_once weapons/sam/large_sam.txt
include_once behavior/behavior_fire.txt
platform_type 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
script_variables
string weapon_name="sam";
end_script_variables
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 5
end_weapon
zone battalion_sector
circular maximum_radius 100 km
end_zone
end_platform_type

51
platforms/blue/sniper.txt Normal file
View File

@@ -0,0 +1,51 @@
# File generated by Wizard 2.9.0 on Oct 20, 2025.
infrared_signature HUMAN_INFRARED_SIGNATURE
constant 1 watts/steradian
end_infrared_signature
optical_signature HUMAN_OPTICAL_SIGNATURE
constant 1 m^2
end_optical_signature
radar_signature HUMAN_RADAR_SIGNATURE
constant 0.1 m^2
end_radar_signature
platform_type SNIPER WSF_PLATFORM
icon human
radar_signature HUMAN_RADAR_SIGNATURE
optical_signature HUMAN_OPTICAL_SIGNATURE
infrared_signature HUMAN_INFRARED_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
script_variables
string weapon_name="sam";
end_script_variables
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
zone battalion_sector
circular maximum_radius 1 km
end_zone
end_platform_type

View File

@@ -41,6 +41,6 @@ platform_type MORTAR WSF_PLATFORM
end_processor
zone battalion_sector
circular maximum_radius 100 km
circular maximum_radius 50 km
end_zone
end_platform_type

View File

@@ -1,5 +1,5 @@
# File generated by Wizard 2.9.0 on Sep 17, 2025.
include_once sensors/radar/ew_radar.txt
include_once sensors/radar/acq_radar.txt
include_once processors/ep_operations.txt
include_once platforms/red_radar_tactics.txt
@@ -15,7 +15,7 @@ platform_type RADAR_APACHE WSF_PLATFORM
at_end_of_path remove
end_mover
sensor ew_radar EW_RADAR
sensor acq_radar ACQ_RADAR
on
internal_link data_mgr
ignore_same_side