//========================================================================================== // // uje_forbidden_city.gm // uje forbidden city B6 // Who When What //------------------------------------------------------------------------------------------ // ^1[UJE]^3Niek 14 April 2020 Initial Script // ^1[UJE]^3Captain 18 September 2020 added defense / attack and improvement //========================================================================================== // global Map = { Debug = 0, // please set to zero before distributing your script //set status' for conditionals, fountain = true, Axis_Command_Post_Built = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_Axis_Command_Post" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_Axis_Command_Post" ); Util.MapDebugPrint( "Axis_Command_Post_Built" ); }, Axis_Command_Post_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_Axis_Command_Post" ); SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_Axis_Command_Post" ); Util.MapDebugPrint( "Axis_Command_Post_Destroyed" ); }, Allied_Command_Post_Built = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Allied_Command_Post" ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_Allied_Command_Post" ); Util.MapDebugPrint( "Allied_Command_Post_Built" ); }, Allied_Command_Post_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Allied_Command_Post" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_Allied_Command_Post" ); Util.MapDebugPrint( "Allied_Command_Post_Destroyed" ); }, first_door_Destroyed = function( trigger ) { if ( Map.fountain ) { SetAvailableMapGoals( TEAM.AXIS, true, { "PLANT_Fountain", "ATTACK_Fountain.*" } ); } SetAvailableMapGoals( TEAM.AXIS, false, { "PLANT_first_door", "ATTACK_first_door.*", "ATTACK_flag.*" } ); Wp.SetWaypointFlag( "first_door", "closed", false ); Util.MapDebugPrint( "First_door_Destroyed" ); }, second_door_Destroyed = function( trigger ) { if ( Map.fountain ) { SetAvailableMapGoals( TEAM.AXIS, true, { "PLANT_Fountain", "ATTACK_Fountain.*" } ); } SetAvailableMapGoals( TEAM.AXIS, false, { "PLANT_second_door", "ATTACK_second_door.*", "ATTACK_flag.*" } ); Wp.SetWaypointFlag( "second_door", "closed", false ); Util.MapDebugPrint( "Second_door_Destroyed" ); }, oldcityflag_Axis_Captured = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_flag.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "CHECKPOINT.*" ); Util.MapDebugPrint( "oldcityflag_Axis_Captured" ); }, oldcityflag_Allies_Captured = function( trigger ) { if ( Map.fountain ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_flag.*" ); } SetAvailableMapGoals( TEAM.ALLIES, false, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT.*" ); Util.MapDebugPrint( "oldcityflag_Allies_Captured" ); }, allies_capture_oldcityflag = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT.*" ); Util.MapDebugPrint( "Allied Captured The Town!" ); }, Fountain_entrance_Destroyed = function( trigger ) { Map.fountain = false; SetAvailableMapGoals( TEAM.ALLIES, false, { "PLANT_Axis_Command_Post", "BUILD_Allied_Command_Post", "DEFEND_flag.*", "DEFEND_Fountain.*" } ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Gold.*" ); SetAvailableMapGoals( TEAM.AXIS, false, { "PLANT_Fountain", "ATTACK_Fountain.*" } ); SetAvailableMapGoals( TEAM.AXIS, true, { "PLANT_Allied_Gold.*", "ATTACK_Gold.*" } ); Wp.SetWaypointFlag( "teleport_S", "blockwall", false ); Util.MapDebugPrint( "Fountain_entrance_Destroyed" ); }, Allied_Gold_1_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Gold_1_.*" ); SetAvailableMapGoals( TEAM.AXIS, false, { "ATTACK_Gold_1_.*", "PLANT_Allied_Gold_1" } ); Util.MapDebugPrint( "Allied_Gold_1_Destroyed" ); }, Allied_Gold_2_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Gold_2_.*" ); SetAvailableMapGoals( TEAM.AXIS, false, { "ATTACK_Gold_2_.*", "PLANT_Allied_Gold_2" } ); Util.MapDebugPrint( "Allied_Gold_2_Destroyed" ); }, Allied_Gold_3_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Gold_0_.*" ); SetAvailableMapGoals( TEAM.AXIS, false, { "ATTACK_Gold_0_.*", "PLANT_Allied_Gold" } ); Util.MapDebugPrint( "Allied_Gold_Destroyed" ); }, }; global OnMapLoad = function() { // Register callback functions OnTrigger( "Allied Command Post constructed. Charge speed increased!", Map.Allied_Command_Post_Built ); OnTrigger( "Axis team has destroyed the Allied Command Post!", Map.Allied_Command_Post_Destroyed ); OnTrigger( "Axis Command Post constructed. Charge speed increased!", Map.Axis_Command_Post_Built ); OnTrigger( "Allied team has destroyed the Axis Command Post!", Map.Axis_Command_Post_Destroyed ); OnTrigger( "The first door has been destroyed", Map.first_door_Destroyed ); OnTrigger( "The second door has been destroyed", Map.second_door_Destroyed ); OnTrigger( "Axis reclaim the City!", Map.oldcityflag_Axis_Captured ); OnTrigger( "Allied Captured The Town!", Map.oldcityflag_Allies_Captured ); OnTrigger( "allies_capture_oldcityflag", Map.allies_capture_oldcityflag ); OnTrigger( "Axis have gained access to the underground", Map.Fountain_entrance_Destroyed ); OnTrigger( "Axis have destroyed the first Gold", Map.Allied_Gold_2_Destroyed ); OnTrigger( "Axis have destroyed the second gold!", Map.Allied_Gold_3_Destroyed ); OnTrigger( "Axis have destroyed the Thirth Gold!", Map.Allied_Gold_1_Destroyed ); Util.DisableGoal( ".*", true ); // all but routes // activation ALLIES SetAvailableMapGoals( TEAM.ALLIES, true, { "BUILD_Allied_Command_Post", "CHECKPOINT.*", "DEFEND_Fountain.*", "DEFEND_flag.*", ".*CAB_uje1.*", ".*CAB_uje4.*", ".*CAB_uje7.*" } ); // activation AXIS SetAvailableMapGoals( TEAM.AXIS, true, { "BUILD_Axis_Command_Post", ".*CAB_uje6.*", ".*CAB_uje7.*", "ATTACK_flag.*", "ATTACK_.*door.*", "PLANT_first_door", "PLANT_second_door", "CHECKPOINT.*" } ); // Max users per goal Util.SetMaxUsers( 1, "ATTACK_.*" ); Util.SetMaxUsers( 1, "DEFEND.*" ); Util.SetMaxUsers( 1, "PLANT.*" ); Util.SetMaxUsers( 1, "BUILD.*" ); Util.SetMaxUsers( 1, "CHECKPOINT.*" ); Util.SetMaxUsers( 1, "DEFUSE.*" ); //SetPriority SetGoalPriority( "PLANT_first_door", 0.95 ); SetGoalPriority( "PLANT_second_door", 0.95 ); SetGoalPriority( "PLANT_Fountain", 0.98 ); SetGoalPriority( "BUILD_Allied_Command_Post", 0.95 ); SetGoalPriority( "BUILD_Axis_Command_Post", 0.95 ); SetGoalPriority( "CHECKPOINT.*", 0.95 ); SetGoalPriority( "PLANT_Allied_Command_Post", 1.0, TEAM.AXIS, CLASS.COVERTOPS ); SetGoalPriority( "PLANT_Axis_Command_Post", 1.0, TEAM.ALLIES, CLASS.COVERTOPS ); // Camp times SetMapGoalProperties( "ATTACK.*", {MinCampTime=30, MaxCampTime=45}); SetMapGoalProperties( "DEFEND.*", {MinCampTime=30, MaxCampTime=45}); //Offset Plant Fix Util.SetGoalOffset( -60, 0, 0, "PLANT_Allied_Gold" ); Util.SetGoalOffset( -50, 0, 0, "PLANT_Allied_Gold_1" ); Util.SetGoalOffset( -60, 0, 0, "PLANT_Allied_Gold_2" ); Wp.SetWaypointFlag( "first_door", "closed", true ); Wp.SetWaypointFlag( "second_door", "closed", true ); Wp.SetWaypointFlag( "teleport_S", "blockwall", true ); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); }; global OnBotJoin = function( bot ) { // Uncomment for shootable breakables bot.TargetBreakableDist = 90.0; // Only set MaxViewDistance on maps with limited sight (e.g. fog) //~bot.MaxViewDistance = 2400; }; global InitializeRoutes = function() { MapRoutes = { PLANT_Fountain_entrance = { }, CHECKPOINT_oldcityflag = { }, PLANT_Allied_Gold = { }, PLANT_Allied_Gold_1 = { }, PLANT_Allied_Gold_2 = { }, BUILD_Allied_Command_Post = { }, PLANT_Allied_Command_Post = { }, BUILD_Axis_Command_Post = { }, PLANT_Axis_Command_Post = { }, PLANT_first_door = { }, PLANT_second_door = { }, }; Util.Routes(MapRoutes); };