Tracer Tracking

E6ZBK

Good for tracking and sticking training. Deal 500 damage with Tracer on the bot before your allies to trigger the countdown to the Insanity Wave and defeat your opponents. Deal 60xthe dps of the enemy countdown trigger to abort his Insanity Wave release. The damage counted for the calculation of the DPS is reseted after your Insanity Wave is aborted.

Host can disable the ultimate ability and/or disable vicotory condition by using the ultimate charge communication and/or aknowledge communication on the first 5 seconds of the match.

The damage is reduced to 10% against an ana bot. Using Pulse Bomb raises your damage necessary to trigger the countdown by 8 but deal 35 damage if you hit.

There is still a problem that happens when the trigger player leaves the game. In some cases it's necessary to restart the game.

Code Snippet

View variables

Rules

No Rules are declared.
variables { global: 0: not_first_round 1: variables_on_default_state 2: third_phase_countdown 3: array_of_team_1_to_defuse 4: sum_of_damage_total_to_defuse 5: second_phase_countdown 6: freeze_time 7: wait_destroy_action_before_hud 8: defused 9: avoid_multiple_freezes_rules 10: array_of_team_1_to_be_killed 11: survive_after_untrapment 12: big_untrapment_message_sent 13: countdown_time 14: array_with_the_trigger_player 15: total_unstucks_count 16: activate_untrap_slots 17: respawn_not_2_points 19: total_time_elapsed_without_assem 20: Ultimate_on_off 21: Array_of_vectors_volskaya 22: TURN_VICTORY_CONDITION_ON_OFF 23: array_with_trigger_in_order 24: all_dmg_and_time_counts_frozen 25: victory_condition 26: WAIT_FREEZE_BEFORE_MEDIA_ON_RADI 46: unstucks_count_1 47: unstucks_count_2 48: unstucks_count_3 49: unstucks_count_4 50: unstucks_count_5 51: unstucks_count_6 52: unstucks_count_7 53: unstucks_count_8 54: unstucks_count_9 55: unstucks_count_10 56: unstuck_count_array 57: trigger_on_countdown_slot_1_busy 58: wait_destroy_action_before_effec 59: record_position_for_untrapment 64: time_frozen_when_bot_dies 65: first_phase_countdown 66: current_phase 67: countdown_ended 68: freeze_time_and_dmg_in_fall 69: UNTRAP_TIME_OVERHEAD player: 3: Damage_total 5: avarage_damage 6: damage_goal 8: damage_total_defuse_squad_player 9: TIME_ELAPSE_FOR_MEDIA_CALC 10: AVOID_RESTART_OF_MEDIA_RULE 12: damage_to_calculate_media 13: player_turn_to_trigger_not_used 15: O 18: START_TIME_FOR_MEDIA_0NCE 19: disallow_player_to_initiate_blas 20: player_is_on_trigger_queue 21: player_is_the_trigger 22: goal_reached } disabled rule("") { event { Ongoing - Global; } conditions { Is Game In Progress == True; } actions { Set Global Variable(not_first_round, Subtract(240, Match Time)); Wait(Absolute Value(8), Ignore Condition); Set Global Variable(not_first_round, Subtract(240, Match Time)); disabled Set Match Time(240); disabled Loop; } } rule("skip assembling") { event { Ongoing - Global; } conditions { Is Assembling Heroes == True; } actions { Set Match Time(17); disabled Create HUD Text(All Players(All Teams), Custom String( "on the beginning of the match, the host may communicate Aknowledge to disable dmg goal and Ultimate status to disable ultimate.", Null, Null, Null), Null, Null, Left, 0, Orange, White, White, Visible To and String, Default Visibility); disabled Big Message(All Players(All Teams), Custom String( "On the beginning of the match, the host may communicate Aknowledge to disable dmg goal and Ultimate status to disable ultimate.", Null, Null, Null)); } } rule("skip set up") { event { Ongoing - Global; } conditions { Is In Setup == True; } actions { Set Match Time(0); disabled Create Dummy Bot(Hero(Ana), Team 2, 1, Random Value In Array(Global Variable(Array_of_vectors_volskaya)), Random Value In Array( Global Variable(Array_of_vectors_volskaya))); } } rule("create dummy bot Ilios") { event { Ongoing - Global; } conditions { Is Assembling Heroes == True; Map(Ilios) == Current Map; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 0)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot Busan") { event { Ongoing - Global; } conditions { Map(Busan) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 0)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("NEpal") { event { Ongoing - Global; } conditions { Map(Nepal) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 0)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot lijiang") { event { Ongoing - Global; } conditions { Map(Lijiang Tower) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 0)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot oasis") { event { Ongoing - Global; } conditions { Map(Oasis) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 0)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot King's row") { event { Ongoing - Global; } conditions { Map(King's Row) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot bli") { event { Ongoing - Global; } conditions { Map(Blizzard World) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("creat dummy bot dorado") { event { Ongoing - Global; } conditions { Map(Dorado) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot eichen") { event { Ongoing - Global; } conditions { Map(Eichenwalde) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(0), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot hollywood") { event { Ongoing - Global; } conditions { Map(Hollywood) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("creat dummy bot junkertown") { event { Ongoing - Global; } conditions { Map(Junkertown) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot route 66") { event { Ongoing - Global; } conditions { Map(Route 66) == Current Map; Is Assembling Heroes == True; } actions { Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("PARIS") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Map(Paris) == Current Map; Is Assembling Heroes == True; } actions { disabled Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot havana") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Map(Havana) == Current Map; Is Assembling Heroes == True; } actions { disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 2)), Vector(0, 0, 0)); Set Global Variable(respawn_not_2_points, 1); } } rule("create dummy bot 2 points") { event { Ongoing - Global; } conditions { Global Variable(respawn_not_2_points) == 0; Is Assembling Heroes == True; } actions { Wait(1, Abort When False); Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 1)), Vector(0, 0, 0)); } } rule("spawn bot after death 2 points") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Global Variable(respawn_not_2_points) == 0; } actions { Wait(1, Abort When False); Teleport(Event Player, Objective Position(Random Integer(0, 1))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); } } rule("spawn bot after death ILIOS") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Ilios) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 0))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("spawn bot after death busaN") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Busan) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 0))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("spawn bot after death HAVANA") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Havana) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("spawn bot after death LIJIANG") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Lijiang Tower) == Current Map; Global Variable(countdown_ended) == False; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 0))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("NEPAL") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Nepal) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 0))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("OASIS") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Oasis) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 0))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("BLIZZAR") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Blizzard World) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("DORADO") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Dorado) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("EICHEN") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Eichenwalde) == Current Map; } actions { Teleport(Event Player, Objective Position(2)); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("HOLYWOOD") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Hollywood) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("KING") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(King's Row) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("PARIS") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Paris) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("JUNKERTOWN") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Junkertown) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("RIALTO") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Rialto) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("ROUTE 66") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; Map(Route 66) == Current Map; } actions { Teleport(Event Player, Objective Position(Random Integer(0, 2))); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); Set Global Variable(respawn_not_2_points, 1); } } rule("media") { event { Player Dealt Damage; All; All; } conditions { Has Spawned(Event Player) == True; Player Variable(Event Player, AVOID_RESTART_OF_MEDIA_RULE) == 0; Global Variable(all_dmg_and_time_counts_frozen) == False; } actions { Wait(0.500, Ignore Condition); Set Player Variable(Event Player, avarage_damage, Divide(Player Variable(Event Player, damage_to_calculate_media), Player Variable( Event Player, TIME_ELAPSE_FOR_MEDIA_CALC))); Set Player Variable(Event Player, AVOID_RESTART_OF_MEDIA_RULE, 1); Loop; disabled Set Player Variable(Event Player, avarage_damage, Divide(Subtract(Player Variable(Event Player, Damage_total), Player Variable( Event Player, E)), 60)); disabled Set Player Variable(Event Player, E, Player Variable(Event Player, Damage_total)); disabled Loop; disabled Set Global Variable(total_time_elapsed_without_assem, Subtract(Total Time Elapsed, 12)); disabled Set Player Variable(Event Player, avarage_damage, Divide(Player Variable(Event Player, Damage_total), Global Variable( total_time_elapsed_without_assem))); } } rule("hud") { event { Ongoing - Each Player; Team 1; All; } conditions { Is Game In Progress == True; Global Variable(wait_destroy_action_before_hud) == 1; } actions { disabled Create HUD Text(All Players(Team 1), Custom String("Total dmg and damgage/min", Null, Null, Null), Null, Null, Left, 0, White, White, White, String, Default Visibility); disabled Create HUD Text(All Players(Team 1), All Players(Team 1), Player Variable(All Players(Team 1), Damage_total), Player Variable( All Players(Team 1), avarage_damage), Left, Null, Green, Red, Yellow, String, Default Visibility); Create HUD Text(All Players(Team 1), Custom String("{0}/{1} DPS: {2}", Player Variable(Event Player, Damage_total), Player Variable(Event Player, damage_goal), Player Variable(Event Player, avarage_damage)), Custom String("dps time: {0}", Player Variable(Event Player, TIME_ELAPSE_FOR_MEDIA_CALC), Null, Null), Event Player, Right, 0, Aqua, Yellow, Yellow, Visible To and String, Visible Always); disabled Create In-World Text(All Players(All Teams), Custom String("test", Null, Null, Null), Players In Slot(1, Team 2), 100, Clip Against Surfaces, Visible To Position and String, White, Default Visibility); } } rule("damage count (blast trigger damage)") { event { Player Dealt Damage; All; All; } conditions { Global Variable(all_dmg_and_time_counts_frozen) == False; Global Variable(freeze_time_and_dmg_in_fall) == False; } actions { Modify Player Variable(Event Player, Damage_total, Add, Event Damage); } } rule("ultimate cost") { event { Ongoing - Each Player; Team 1; All; } conditions { Is Using Ultimate(Event Player) == True; Is Dead(Players In Slot(1, Team 2)) == False; } actions { Modify Player Variable(Event Player, damage_goal, Add, 8); Small Message(Event Player, Custom String("Ultimate cost: damage goal +8", Null, Null, Null)); } } rule("match time") { event { Ongoing - Global; } conditions { Is Game In Progress == True; } actions { Set Match Time(3600); disabled Big Message(All Players(All Teams), Custom String("Deal 500 dmg before your allies to win.", Null, Null, Null)); disabled Wait(15.250, Ignore Condition); disabled Create HUD Text(All Players(All Teams), Custom String("Deal 500 dmg before your allies to win.", Null, Null, Null), Null, Null, Top, 0, Green, White, White, Visible To and String, Default Visibility); disabled Wait(7.250, Ignore Condition); disabled Destroy HUD Text(Last Text ID); } } rule("trigger condition") { event { Ongoing - Each Player; Team 1; All; } conditions { Global Variable(victory_condition) == 0; Global Variable(TURN_VICTORY_CONDITION_ON_OFF) == 1; Player Variable(Event Player, disallow_player_to_initiate_blas) == False; Global Variable(defused) == False; Player Variable(Event Player, goal_reached) == True; } actions { Wait(0.100, Abort When False); Set Player Variable(Event Player, player_is_on_trigger_queue, False); Skip If(Compare(Global Variable(array_with_trigger_in_order), ==, Empty Array), 1); Set Global Variable(array_with_trigger_in_order, Remove From Array(Global Variable(array_with_trigger_in_order), Event Player)); Set Player Variable(Event Player, player_is_the_trigger, True); Wait(0.010, Ignore Condition); Set Global Variable(victory_condition, 1); Set Global Variable(countdown_time, 59.900); Wait(0.100, Ignore Condition); Chase Global Variable At Rate(countdown_time, 0, 1, None); Set Global Variable(wait_destroy_action_before_hud, 0); Wait(0.100, Ignore Condition); Destroy All HUD Text; Wait(0.100, Ignore Condition); Set Global Variable(wait_destroy_action_before_hud, 1); disabled Create HUD Text(All Players(All Teams), Custom String("Time Remaining to the blast: {0}", Global Variable(countdown_time), Null, Null), Null, Null, Top, 0, Purple, White, White, Visible To and String, Default Visibility); Wait(0.100, Ignore Condition); disabled Set Player Variable(Event Player, O, True); Big Message(All Players(All Teams), Custom String("{0} trggered the Insanity Wave!", Event Player, Null, Null)); disabled Go To Assemble Heroes; disabled Wait(0.100, Ignore Condition); disabled Create HUD Text(All Players(All Teams), Event Player, Custom String("Won", Null, Null, Null), Custom String( "Next round starts in 20 seconds.", Null, Null, Null), Top, 0, White, Green, White, Visible To and String, Default Visibility); disabled Destroy HUD Text(Last Text ID); disabled Wait(0.250, Ignore Condition); disabled Set Player Variable(All Players(All Teams), player_turn_to_trigger_not_used, False); Set Global Variable(array_with_the_trigger_player, Append To Array(Empty Array, Event Player)); Set Player Variable(Event Player, goal_reached, False); } } rule("avoid capture") { event { Ongoing - Global; } conditions { Point Capture Percentage >= 98; } actions { Destroy All Dummy Bots; Wait(4, Ignore Condition); Create Dummy Bot(Hero(Ana), Team 2, 1, Objective Position(Random Integer(0, 1)), Vector(0, 0, 0)); } } rule("Move bot (large movement)") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Has Spawned(Event Player) == True; Speed Of(Event Player) >= 4.900; } actions { Wait(Random Real(0, 1), Abort When False); disabled Stop Throttle In Direction(Event Player); disabled Start Accelerating(Event Player, Vector(Random Real(-1.000, 1), 0, Random Real(-1.000, 1)), 100, 20, To World, None); Start Throttle In Direction(Event Player, Vector(Random Real(-1.000, 1), 0, Random Real(-1.000, 1)), 20, To World, Replace existing throttle, Direction and Magnitude); Loop If Condition Is True; disabled Start Accelerating(Players In Slot(1, Team 2), Vector(Random Real(-1.000, 1), 0, Random Real(-1.000, 1)), 100, 20, To Player, Direction Rate and Max Speed); } } rule("unstuck primeiro quadrante") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Has Spawned(Event Player) == True; Speed Of(Event Player) < 4.900; X Component Of(Throttle Of(Event Player)) > 0; Z Component Of(Throttle Of(Event Player)) > 0; } actions { Wait(0.100, Abort When False); disabled Start Accelerating(Event Player, Vector(1, 0, 1), 100, 20, To World, None); disabled Start Throttle In Direction(Event Player, Vector(1, 0, 0), 20, To World, Replace existing throttle, None); Start Throttle In Direction(Event Player, Vector(Random Real(-1.000, 0), 0, Random Real(-1.000, 0)), 20, To World, Replace existing throttle, Direction and Magnitude); Skip If(Compare(Global Variable(survive_after_untrapment), ==, True), 1); Set Global Variable(activate_untrap_slots, True); Modify Global Variable(total_unstucks_count, Add, 1); Wait(0.001, Ignore Condition); disabled Press Button(Players In Slot(1, Team 2), Ability 2); Set Global Variable(activate_untrap_slots, False); Loop If Condition Is True; } } rule("test hud") { event { Ongoing - Global; } conditions { Has Spawned(Players In Slot(1, Team 2)) == True; } actions { disabled Create HUD Text(All Players(All Teams), Speed Of(Players In Slot(1, Team 2)), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); disabled Create HUD Text(Host Player, Velocity Of(Players In Slot(0, Team 1)), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); disabled Create HUD Text(Host Player, Position Of(Players In Slot(0, Team 1)), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); disabled Create HUD Text(Host Player, Global Variable(activate_untrap_slots), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); disabled Create HUD Text(All Players(All Teams), Array Slice(Global Variable(unstuck_count_array), 0, 9), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_1), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_2), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_3), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_4), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_5), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_6), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_7), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_8), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_9), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(All Players(All Teams), Global Variable(unstucks_count_10), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); } } rule("Face random direction") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Has Spawned(Event Player) == True; } actions { disabled Start Facing(Event Player, Vector(Random Real(-1.000, 1), 0, Random Real(-1.000, 1)), 100, To World, None); Set Facing(Event Player, Vector(Random Real(-1.000, 1), 0, Random Real(-1.000, 1)), To World); Wait(Random Real(0, 2), Ignore Condition); Loop; } } rule("Bot location icon") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { disabled Vertical Speed Of(Event Player) > 0.200; } actions { disabled Teleport(Event Player, Nearest Walkable Position(Event Player)); disabled Create Beam Effect(Event Player, Good Beam, Event Player, Players In Slot(1, Team 2), Red, Visible To Position and Radius); disabled Create Effect(All Players(All Teams), Ring, Red, Players In Slot(1, Team 2), 1, Visible To Position and Radius); Create Icon(All Players(All Teams), Players In Slot(1, Team 2), Arrow: Down, Visible To and Position, Red, True); } } rule("overhead stats") { event { Ongoing - Each Player; All; All; } conditions { disabled Is Firing Primary(Event Player) == True; } actions { Create In-World Text(Event Player, Custom String(" {0}/{1} DPS: {2}", Player Variable(Event Player, Damage_total), Player Variable(Event Player, damage_goal), Custom String("{0} {2} {1}", Player Variable(Event Player, avarage_damage), Global Variable(UNTRAP_TIME_OVERHEAD), String("{0} / {1}", Player Variable(Event Player, damage_total_defuse_squad_player), Multiply(Player Variable(Global Variable(array_with_the_trigger_player), avarage_damage), 60), Null))), Players In Slot(1, Team 2), 2.500, Do Not Clip, Visible To Position and String, Yellow, Default Visibility); } } rule("spawn player") { event { Ongoing - Each Player; Team 1; All; } conditions { Is In Spawn Room(Event Player) == True; } actions { Teleport(Event Player, Objective Position(0)); disabled Teleport(Event Player, Vector(-33.521, -2.732, 114.731)); } } rule("skip potg while afk") { event { Ongoing - Global; } conditions { Point Capture Percentage >= 99.500; } actions { Go To Assemble Heroes; } } rule("restart variables") { event { Ongoing - Global; } conditions { Global Variable(variables_on_default_state) == 0; Is Game In Progress == True; } actions { Set Player Variable(All Players(All Teams), player_is_on_trigger_queue, False); Set Player Variable(All Players(All Teams), goal_reached, False); Set Global Variable(all_dmg_and_time_counts_frozen, False); Set Global Variable(avoid_multiple_freezes_rules, False); Set Global Variable(array_with_trigger_in_order, Empty Array); Set Global Variable(time_frozen_when_bot_dies, 10); Set Global Variable(second_phase_countdown, 24.900); Set Global Variable(third_phase_countdown, 9.900); Set Global Variable(first_phase_countdown, 25); Set Global Variable(Ultimate_on_off, 1); Set Player Variable(All Players(All Teams), player_is_the_trigger, False); Set Global Variable(victory_condition, 0); Allow Button(All Players(All Teams), Ultimate); Set Global Variable(TURN_VICTORY_CONDITION_ON_OFF, 1); Wait(0.100, Ignore Condition); Set Player Variable(All Players(All Teams), AVOID_RESTART_OF_MEDIA_RULE, 0); Disable Built-In Game Mode Announcer; disabled Disable Built-In Game Mode Completion; Disable Built-In Game Mode Music; disabled Disable Built-In Game Mode Scoring; disabled Set Match Time(3600); Set Global Variable(variables_on_default_state, 1); Set Player Variable(All Players(All Teams), damage_total_defuse_squad_player, 0); disabled Skip If(Compare(Global Variable(not_first_round), ==, False), 3); disabled Go To Assemble Heroes; disabled Wait(0.100, Ignore Condition); disabled Set Match Time(5); Set Global Variable(wait_destroy_action_before_hud, 0); Wait(0.100, Ignore Condition); Destroy All HUD Text; Wait(0.100, Ignore Condition); Set Global Variable(wait_destroy_action_before_hud, 1); Wait(0.100, Ignore Condition); Set Player Variable(All Players(All Teams), damage_goal, 500); Set Player Variable(All Players(All Teams), damage_to_calculate_media, 0); Set Player Variable(All Players(All Teams), avarage_damage, 0); Set Player Variable(All Players(All Teams), Damage_total, 0); Set Match Time(3599); Set Global Variable(survive_after_untrapment, False); Set Global Variable(countdown_ended, False); Wait(1.100, Ignore Condition); Set Global Variable(record_position_for_untrapment, Position Of(Players In Slot(1, Team 2))); Respawn(Players In Slot(1, Team 2)); Wait(0.250, Ignore Condition); Set Player Variable(All Players(All Teams), START_TIME_FOR_MEDIA_0NCE, False); Stop Chasing Player Variable(All Players(All Teams), TIME_ELAPSE_FOR_MEDIA_CALC); Wait(0.250, Ignore Condition); Set Player Variable(All Players(All Teams), TIME_ELAPSE_FOR_MEDIA_CALC, 0); } } rule("Ultimate off") { event { Ongoing - Global; } conditions { Global Variable(Ultimate_on_off) == 1; Is Communicating(Host Player, Ultimate Status) == True; Match Time >= 3595; } actions { Disallow Button(All Players(All Teams), Ultimate); Set Global Variable(Ultimate_on_off, 0); disabled Big Message(All Players(All Teams), Custom String("Ultimate disabled", Null, Null, Null)); Play Effect(All Players(All Teams), Bad Pickup Effect, White, Objective Position(0), 1000); Play Effect(All Players(All Teams), Debuff Impact Sound, White, Objective Position(0), 1000); Wait(15.200, Ignore Condition); disabled Destroy HUD Text(Last Text ID); } } rule("unstuck segundo quadrante") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Has Spawned(Event Player) == True; Speed Of(Event Player) < 4.900; X Component Of(Throttle Of(Event Player)) < 0; Z Component Of(Throttle Of(Event Player)) >= 0; } actions { Wait(0.100, Abort When False); disabled Start Accelerating(Event Player, Vector(1, 0, 1), 100, 20, To World, None); disabled Start Throttle In Direction(Event Player, Vector(1, 0, 0), 20, To World, Replace existing throttle, None); Start Throttle In Direction(Event Player, Vector(Random Real(0, 1), 0, Random Real(-1.000, 0)), 20, To World, Replace existing throttle, Direction and Magnitude); Skip If(Compare(Global Variable(survive_after_untrapment), ==, True), 1); Set Global Variable(activate_untrap_slots, True); Modify Global Variable(total_unstucks_count, Add, 1); Wait(0.001, Ignore Condition); disabled Press Button(Players In Slot(1, Team 2), Ability 2); Set Global Variable(activate_untrap_slots, False); Loop If Condition Is True; } } rule("unstuck terceiro quadrante") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Has Spawned(Event Player) == True; Speed Of(Event Player) < 4.900; X Component Of(Throttle Of(Event Player)) < 0; Z Component Of(Throttle Of(Event Player)) < 0; } actions { Wait(0.100, Abort When False); disabled Start Accelerating(Event Player, Vector(1, 0, 1), 100, 20, To World, None); disabled Start Throttle In Direction(Event Player, Vector(1, 0, 0), 20, To World, Replace existing throttle, None); Start Throttle In Direction(Event Player, Vector(Random Real(0, 1), 0, Random Real(0, 1)), 20, To World, Replace existing throttle, Direction and Magnitude); Skip If(Compare(Global Variable(survive_after_untrapment), ==, True), 1); Set Global Variable(activate_untrap_slots, True); Modify Global Variable(total_unstucks_count, Add, 1); disabled Press Button(Players In Slot(1, Team 2), Ability 2); Wait(0.001, Ignore Condition); Set Global Variable(activate_untrap_slots, False); Loop If Condition Is True; } } rule("unstuck quarto quadrante") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Has Spawned(Event Player) == True; Speed Of(Event Player) < 4.900; X Component Of(Throttle Of(Event Player)) >= 0; Z Component Of(Throttle Of(Event Player)) < 0; } actions { Wait(0.100, Abort When False); disabled Start Accelerating(Event Player, Vector(1, 0, 1), 100, 20, To World, None); disabled Start Throttle In Direction(Event Player, Vector(1, 0, 0), 20, To World, Replace existing throttle, None); Start Throttle In Direction(Event Player, Vector(Random Real(-1.000, 0), 0, Random Real(0, 1)), 20, To World, Replace existing throttle, Direction and Magnitude); Skip If(Compare(Global Variable(survive_after_untrapment), ==, True), 1); Set Global Variable(activate_untrap_slots, True); disabled Press Button(Players In Slot(1, Team 2), Ability 2); Modify Global Variable(total_unstucks_count, Add, 1); Wait(0.001, Ignore Condition); Set Global Variable(activate_untrap_slots, False); Loop If Condition Is True; } } rule("i SAID ULTIMATE OFF") { event { Ongoing - Each Player; All; All; } conditions { Is Game In Progress == True; Global Variable(Ultimate_on_off) == 0; } actions { Wait(0.400, Abort When False); Disallow Button(Event Player, Ultimate); Create HUD Text(Event Player, Custom String("Ultimate disabled", Null, Null, Null), Null, Null, Top, 0, Yellow, White, White, Visible To and String, Default Visibility); disabled Wait(16.250, Ignore Condition); disabled Destroy HUD Text(Last Text ID); disabled Create HUD Text(All Players(All Teams), Custom String("Ultimate disabled", Null, Null, Null), Null, Null, Top, 0, Yellow, White, White, Visible To and String, Default Visibility); } } rule("DISABLE VICTORY CONDITION") { event { Ongoing - Global; } conditions { Is Communicating(Host Player, Acknowledge) == True; Global Variable(TURN_VICTORY_CONDITION_ON_OFF) == 1; Match Time >= 3595; } actions { Set Global Variable(TURN_VICTORY_CONDITION_ON_OFF, 0); Play Effect(All Players(All Teams), Bad Pickup Effect, White, Objective Position(0), 1000); Play Effect(All Players(All Teams), Debuff Impact Sound, White, Objective Position(0), 1000); disabled Create HUD Text(All Players(All Teams), Custom String("Victory condition disabled", Null, Null, Null), Null, Null, Top, 0, Yellow, White, White, Visible To and String, Default Visibility); Wait(10, Ignore Condition); Create HUD Text(All Players(All Teams), Custom String( "After the first 5 seconds, host may Communicate aknowledge again to activate dmg goal", Null, Null, Null), Null, Null, Top, 10, Orange, White, White, Visible To and String, Default Visibility); disabled Destroy HUD Text(Last Text ID); } } rule("enable victory condition") { event { Ongoing - Global; } conditions { Is Communicating(Host Player, Acknowledge) == True; Global Variable(TURN_VICTORY_CONDITION_ON_OFF) == 0; Match Time < 3595; } actions { Set Global Variable(TURN_VICTORY_CONDITION_ON_OFF, 1); Play Effect(All Players(All Teams), Bad Pickup Effect, White, Objective Position(0), 1000); Play Effect(All Players(All Teams), Debuff Impact Sound, White, Objective Position(0), 1000); Create HUD Text(All Players(All Teams), Custom String("Victory condition enabled", Null, Null, Null), Null, Null, Top, 0, Yellow, White, White, Visible To and String, Default Visibility); Wait(10, Ignore Condition); Destroy HUD Text(Last Text ID); } } rule("instructions after spawn (objective)") { event { Ongoing - Each Player; All; All; } conditions { Is Game In Progress == True; } actions { Wait(16.250, Ignore Condition); Big Message(Event Player, Custom String("Reach your damage goal before your allies to trigger the countdown to the Insanity Wave.", Null, Null, Null)); disabled Create HUD Text(Event Player, Custom String("Reach your damage goal before your allies to trigger the countdown to explosion.", Null, Null, Null), Null, Null, Top, 0, Green, White, White, Visible To and String, Default Visibility); disabled Wait(12.250, Ignore Condition); disabled Destroy HUD Text(Last Text ID); disabled Big Message(Event Player, Custom String("Reach your damage goal before your allies to win.", Null, Null, Null)); } } rule("instruction after spawn (settings)") { event { Ongoing - Each Player; All; All; } conditions { Is In Spawn Room(Event Player) == True; } actions { disabled Create HUD Text(Event Player, Custom String("", Null, Null, Null), Null, Custom String( "Host may communicate acknowledge and/or ult status to disable vicotory condition or ult and/or respectively at the beggining.", Null, Null, Null), Left, 0, White, White, White, Visible To and String, Default Visibility); Set Objective Description(All Players(All Teams), Custom String( "Host may communicate acknowledge and/or ult status to disable vicotory condition an/or ult respectively at the beggining.", Null, Null, Null), Visible To and String); } } rule("set dmg gold when joining") { event { Player Joined Match; All; All; } conditions { disabled Is In Spawn Room(Event Player) == True; } actions { Set Player Variable(Event Player, damage_goal, 500); } } rule("prevent fall dmg") { event { Player Dealt Damage; All; All; } conditions { Event Damage > 100; } actions { Modify Player Variable(Event Player, Damage_total, Subtract, Event Damage); disabled Wait(0.100, Abort When False); disabled Loop If Condition Is True; Skip If(Compare(Global Variable(victory_condition), ==, 0), 1); Modify Player Variable(Event Player, damage_total_defuse_squad_player, Subtract, Event Damage); Modify Player Variable(Event Player, damage_to_calculate_media, Subtract, Event Damage); } } rule("Insanity Wave trigger left") { event { Player Left Match; All; All; } actions { Skip If(Compare(Global Variable(victory_condition), ==, 0), 3); Skip If(Compare(Global Variable(array_with_the_trigger_player), !=, Empty Array), 2); Big Message(All Players(All Teams), Custom String("The Blast trigger {0} left.", Event Player, Null, Null)); Set Global Variable(defused, True); disabled Create Effect(All Players(All Teams), Energy Sound, Orange, Players In Slot(1, Team 2), 10000, Visible To Position and Radius); disabled Create Effect(All Players(All Teams), Sparkles, Orange, Players In Slot(1, Team 2), 2, Visible To Position and Radius); disabled Create Effect(All Players(All Teams), Sphere, Yellow, Players In Slot(1, Team 2), 2, Visible To Position and Radius); disabled Create Effect(All Players(All Teams), Light Shaft, White, Players In Slot(1, Team 2), 1, Visible To Position and Radius); disabled Create Effect(All Players(All Teams), Sparkles Sound, White, Players In Slot(10, Team 2), 10000, Visible To Position and Radius); disabled Wait(5, Ignore Condition); disabled Play Effect(All Players(All Teams), Buff Explosion Sound, White, Players In Slot(1, Team 2), 9999); disabled Play Effect(All Players(All Teams), Bad Explosion, Yellow, Players In Slot(1, Team 2), 10000); disabled Damage(All Players(Team 1), Players In Slot(1, Team 2), 10000); disabled Damage(All Players(All Teams), Null, 10000); disabled Set Global Variable(variables_on_default_state, 0); disabled Set Global Variable(not_first_round, True); disabled Wait(3, Ignore Condition); disabled Destroy All Effects; disabled Set Player Variable(All Players(Team 1), Damage_total, 0); disabled Go To Assemble Heroes; disabled Set Global Variable(victory_condition, 0); } } rule("heal bot") { event { Ongoing - Each Player; Team 2; Slot 1; } actions { Heal(Event Player, Event Player, 17); Wait(1, Ignore Condition); Loop; } } rule("survive after untrapment, restart big message variable") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Is In Spawn Room(Event Player) == True; } actions { Set Global Variable(survive_after_untrapment, True); Wait(1, Ignore Condition); Set Global Variable(big_untrapment_message_sent, False); Set Global Variable(survive_after_untrapment, False); } } rule("refund damage when bot dies during ult") { event { Ongoing - Each Player; Team 1; All; } conditions { Is Using Ultimate(Event Player) == True; Is Dead(Players In Slot(1, Team 2)) == True; } actions { Modify Player Variable(Event Player, damage_goal, Subtract, 8); Small Message(Event Player, Custom String("Bot died during ult: Damage Goal refund +8", Null, Null, Null)); } } rule("set defuse squad") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, player_is_the_trigger) == True; } actions { Set Global Variable(array_of_team_1_to_defuse, Remove From Array(All Players(Team 1), Event Player)); disabled Wait(0.100, Ignore Condition); disabled Set Global Variable(sum_of_damage_total_to_defuse, Add(Player Variable(Array Slice(Global Variable(array_of_team_1_to_defuse), 0, 4), damage_total_defuse_squad_player), 0)); } } rule("defuse") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, damage_total_defuse_squad_player) > Multiply(Player Variable(Global Variable( array_with_the_trigger_player), avarage_damage), 60); Player Variable(Event Player, player_is_the_trigger) == False; Global Variable(victory_condition) == 1; Global Variable(defused) == False; Global Variable(countdown_ended) == False; } actions { Wait(0.001, Abort When False); Big Message(All Players(All Teams), Custom String("Insanity Wave aborted by {0}.", Event Player, Null, Null)); Set Global Variable(defused, True); } } rule("defuse squad member dmg") { event { Player Dealt Damage; Team 1; All; } conditions { Global Variable(victory_condition) == 1; Global Variable(all_dmg_and_time_counts_frozen) == False; Global Variable(freeze_time_and_dmg_in_fall) == False; Array Contains(Remove From Array(All Players(All Teams), Value In Array(Global Variable(array_with_the_trigger_player), 0)), Event Player) == True; } actions { Modify Player Variable(Event Player, damage_total_defuse_squad_player, Add, Event Damage); } } rule("Insanity Wave released") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(victory_condition) == 1; Global Variable(defused) == False; Player Variable(Event Player, player_is_the_trigger) == True; Global Variable(third_phase_countdown) == 0; } actions { Wait(0.100, Abort When False); Set Global Variable(countdown_ended, True); Play Effect(All Players(All Teams), Buff Explosion Sound, White, Event Player, 9999); Play Effect(All Players(All Teams), Ring Explosion, Yellow, Event Player, 10000); Set Global Variable(array_of_team_1_to_be_killed, Remove From Array(All Players(All Teams), Event Player)); Wait(0.300, Ignore Condition); Kill(Global Variable(array_of_team_1_to_be_killed), Event Player); Wait(0.400, Ignore Condition); Set Global Variable(array_of_team_1_to_be_killed, Empty Array); Set Player Variable(All Players(Team 1), Damage_total, 0); Set Global Variable(not_first_round, True); Destroy All Effects; Big Message(All Players(All Teams), Custom String("Insanity Wave released by {0}! Game restarting in 5", Event Player, Null, Null)); Wait(3, Ignore Condition); Play Effect(All Players(All Teams), Buff Impact Sound, Aqua, Event Player, 1); Play Effect(All Players(All Teams), Good Pickup Effect, Aqua, Event Player, 1); Wait(0.500, Ignore Condition); Teleport(Event Player, Objective Position(0)); Set Global Variable(variables_on_default_state, 0); } } rule("specify the trigger and show the hud to it") { event { Ongoing - Each Player; All; All; } conditions { Is Game In Progress == True; Global Variable(victory_condition) == 1; Player Variable(Event Player, player_is_the_trigger) == True; Global Variable(defused) == False; Global Variable(wait_destroy_action_before_hud) == 1; } actions { disabled Create HUD Text(All Players(All Teams), Custom String("Current damage: {1}", Player Variable(Event Player, damage_total_defuse_squad_player), Null, Null), Null, Null, Top, 0, Red, White, White, Visible To and String, Default Visibility); Set Global Variable(array_with_the_trigger_player, Append To Array(Empty Array, Event Player)); Create HUD Text(Event Player, Custom String("Your Insanity Wave abort dmg (DPSx60): {0}", Multiply(Player Variable(Event Player, avarage_damage), 60), Player Variable(Event Player, avarage_damage), Null), Null, Null, Top, 0, Yellow, White, White, Visible To and String, Visible Always); } } rule("countdown damage hud") { event { Ongoing - Each Player; All; All; } conditions { Is Game In Progress == True; Global Variable(victory_condition) == 1; Player Variable(Global Variable(array_of_team_1_to_defuse), player_is_the_trigger) == False; Player Variable(Event Player, player_is_the_trigger) == False; Global Variable(wait_destroy_action_before_hud) == 1; } actions { disabled Create HUD Text(All Players(All Teams), Custom String("Current damage: {1}", Multiply(Player Variable(Event Player, avarage_damage), 25), Null, Null), Null, Null, Top, 0, Red, White, White, Visible To and String, Default Visibility); Wait(0.100, Ignore Condition); Create HUD Text(Event Player, Custom String("Deal {2}'s DPSx60 as damage to abort his Isanity Wave", Player Variable(Event Player, damage_total_defuse_squad_player), Multiply(Player Variable(Global Variable(array_with_the_trigger_player), avarage_damage), 60), Global Variable(array_with_the_trigger_player)), Null, Null, Top, 0, Green, White, White, Visible To and String, Visible Always); } } rule("freeze all times and dmg when bot dies and revive it") { event { Ongoing - Global; } conditions { Is Dead(Players In Slot(1, Team 2)) == True; Global Variable(avoid_multiple_freezes_rules) == False; } actions { Set Global Variable(WAIT_FREEZE_BEFORE_MEDIA_ON_RADI, True); Set Global Variable(freeze_time, Subtract(Global Variable(time_frozen_when_bot_dies), 0.100)); Wait(0.100, Restart When True); Chase Global Variable At Rate(freeze_time, 0, 1, Destination and Rate); Set Global Variable(wait_destroy_action_before_hud, 0); Wait(0.100, Restart When True); Destroy All HUD Text; Wait(0.100, Restart When True); Set Global Variable(wait_destroy_action_before_hud, 1); Set Global Variable(all_dmg_and_time_counts_frozen, True); Set Global Variable(avoid_multiple_freezes_rules, True); Small Message(All Players(All Teams), Custom String("Bot died: All time and dmg frozen for {0}s.", Global Variable( time_frozen_when_bot_dies), Null, Null)); Stop Chasing Global Variable(second_phase_countdown); Stop Chasing Global Variable(third_phase_countdown); Stop Chasing Global Variable(first_phase_countdown); Stop Chasing Global Variable(countdown_time); Stop Chasing Player Variable(All Players(All Teams), TIME_ELAPSE_FOR_MEDIA_CALC); Wait(1, Restart When True); Respawn(Players In Slot(1, Team 2)); Wait(0.100, Restart When True); Wait(Subtract(Global Variable(time_frozen_when_bot_dies), 0), Restart When True); Set Global Variable(avoid_multiple_freezes_rules, False); } } rule("count damage to calculate media") { event { Player Dealt Damage; All; All; } conditions { Global Variable(all_dmg_and_time_counts_frozen) == False; Player Variable(Event Player, player_is_on_trigger_queue) == False; Global Variable(freeze_time_and_dmg_in_fall) == False; } actions { Modify Player Variable(Event Player, damage_to_calculate_media, Add, Event Damage); } } rule("triger queue on countdown") { event { Ongoing - Each Player; Team 1; All; } conditions { Global Variable(victory_condition) == 1; Player Variable(Event Player, Damage_total) >= Player Variable(Event Player, damage_goal); disabled Global Variable(trigger_on_countdown_slot_1_busy) == False; disabled Player Variable(Event Player, player_is_the_trigger) == False; disabled Global Variable(trigger_on_countdown_slot_1_busy) == True; disabled Global Variable(wait_destroy_action_before_effec) == True; } actions { disabled Set Global Variable(trigger_on_countdown_slot_1_busy, True); disabled Set Player Variable(Event Player, player_turn_to_trigger_not_used, True); Set Global Variable(array_with_trigger_in_order, Append To Array(Global Variable(array_with_trigger_in_order), Event Player)); Create Effect(All Players(All Teams), Good Aura Sound, Orange, Event Player, 10000, Visible To Position and Radius); Create Effect(All Players(All Teams), Sparkles, Aqua, Event Player, 2, Visible To Position and Radius); disabled Stop Chasing Player Variable(Event Player, TIME_ELAPSE_FOR_MEDIA_CALC); Set Player Variable(Event Player, player_is_on_trigger_queue, True); Big Message(All Players(All Teams), Custom String("{0} entered on queue to trigger the next blast countdown.", Event Player, Null, Null)); Wait(1, Ignore Condition); disabled Small Message(Event Player, Custom String("DPS frozen whlile on queue", Null, Null, Null)); } } rule("allow player in queue to trigger the blast") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(victory_condition) == 0; Compare(Global Variable(array_with_trigger_in_order), ==, Empty Array) == False; Global Variable(defused) == False; } actions { Set Player Variable(Value In Array(Global Variable(array_with_trigger_in_order), 0), disallow_player_to_initiate_blas, False); disabled Wait(0.100, Abort When False); disabled Set Global Variable(trigger_on_countdown_slot_1_busy, True); disabled Set Player Variable(Event Player, player_turn_to_trigger_not_used, True); disabled Set Global Variable(array_with_trigger_in_order, Remove From Array(Global Variable(array_with_trigger_in_order), Array Slice( Global Variable(array_with_trigger_in_order), 0, 1))); Set Player Variable(Value In Array(Global Variable(array_with_trigger_in_order), 0), goal_reached, True); } } rule("allow all players to rigger blast if queue is empty") { event { Ongoing - Global; } conditions { Compare(Global Variable(array_with_trigger_in_order), ==, Empty Array) == True; } actions { Set Player Variable(All Players(All Teams), disallow_player_to_initiate_blas, False); } } rule("raise goal by 500 if player triggers") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Damage_total) >= Player Variable(Event Player, damage_goal); } actions { Wait(0.100, Ignore Condition); Set Player Variable(Event Player, damage_goal, Add(500, Player Variable(Event Player, damage_goal))); } } rule("actions when Insanity Wave is defused") { event { Ongoing - Global; } conditions { Global Variable(defused) == True; } actions { Stop Chasing Global Variable(first_phase_countdown); Stop Chasing Global Variable(second_phase_countdown); Stop Chasing Global Variable(third_phase_countdown); Wait(0.016, Ignore Condition); Set Global Variable(second_phase_countdown, 25); Set Global Variable(third_phase_countdown, 10); Set Global Variable(first_phase_countdown, 25); Set Player Variable(Global Variable(array_with_the_trigger_player), damage_to_calculate_media, 0); Set Player Variable(Global Variable(array_with_the_trigger_player), TIME_ELAPSE_FOR_MEDIA_CALC, 0); Set Player Variable(All Players(All Teams), damage_total_defuse_squad_player, 0); Set Player Variable(All Players(All Teams), player_is_the_trigger, False); Skip If(Compare(Global Variable(array_with_trigger_in_order), ==, Empty Array), 1); Set Player Variable(All Players(All Teams), disallow_player_to_initiate_blas, True); Play Effect(All Players(All Teams), Bad Pickup Effect, White, Global Variable(array_with_the_trigger_player), 1); Play Effect(All Players(All Teams), Debuff Impact Sound, Aqua, Global Variable(array_with_the_trigger_player), 10000); Destroy All Effects; Wait(0.100, Ignore Condition); Create Effect(All Players(All Teams), Good Aura Sound, Orange, Global Variable(array_with_trigger_in_order), 10000, Visible To Position and Radius); Create Effect(All Players(All Teams), Sparkles, Aqua, Global Variable(array_with_trigger_in_order), 2, Visible To Position and Radius); Set Global Variable(victory_condition, 0); Set Global Variable(wait_destroy_action_before_hud, 0); Wait(0.100, Ignore Condition); Destroy All HUD Text; Wait(0.100, Ignore Condition); Set Global Variable(wait_destroy_action_before_hud, 1); Wait(0.100, Ignore Condition); Set Global Variable(defused, False); } } disabled rule("test blast") { event { Ongoing - Global; } conditions { Is Button Held(Host Player, Jump) == True; } actions { Set Player Variable(Host Player, Damage_total, 500); } } rule("countdown on phase 1") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(victory_condition) == 1; Player Variable(Event Player, player_is_the_trigger) == True; } actions { Set Global Variable(first_phase_countdown, 25); Create Effect(All Players(All Teams), Energy Sound, Orange, Event Player, 10000, Visible To Position and Radius); Create Effect(All Players(All Teams), Sparkles, Orange, Event Player, 2, Visible To Position and Radius); Chase Global Variable At Rate(first_phase_countdown, 0, 1, Destination and Rate); Set Global Variable(current_phase, 1); } } rule("countdown on phase 2") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(victory_condition) == 1; disabled Global Variable(third_phase_countdown) == True; Player Variable(Event Player, player_is_the_trigger) == True; Global Variable(first_phase_countdown) == 0; } actions { Wait(0.100, Abort When False); Set Global Variable(second_phase_countdown, 24.900); Create Effect(All Players(All Teams), Cloud, White, Event Player, 1, Visible To Position and Radius); Create Effect(All Players(All Teams), Smoke Sound, White, Event Player, 10000, Visible To Position and Radius); Chase Global Variable At Rate(second_phase_countdown, 0, 1, Destination and Rate); Set Global Variable(current_phase, 2); } } rule("countdown on phase 3") { event { Ongoing - Each Player; All; All; } conditions { Global Variable(victory_condition) == 1; disabled Global Variable(third_phase_countdown) == True; Player Variable(Event Player, player_is_the_trigger) == True; Global Variable(second_phase_countdown) == 0; } actions { Wait(0.100, Abort When False); Set Global Variable(third_phase_countdown, 9.900); Create Effect(All Players(All Teams), Sphere, Yellow, Event Player, 2, Visible To Position and Radius); Chase Global Variable At Rate(third_phase_countdown, 0, 1, Destination and Rate); Set Global Variable(current_phase, 3); } } disabled rule("kill bot to test") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Host Player, Crouch) == True; } actions { Wait(8, Ignore Condition); Kill(Players In Slot(1, Team 2), Null); disabled Loop; } } rule("START COUNTING TIME FOR MEDIA") { event { Ongoing - Each Player; All; All; } conditions { Players Within Radius(Players In Slot(1, Team 2), 13, All Teams, Surfaces) == True; Player Variable(Event Player, START_TIME_FOR_MEDIA_0NCE) == False; Global Variable(WAIT_FREEZE_BEFORE_MEDIA_ON_RADI) == False; } actions { Chase Player Variable At Rate(Event Player, TIME_ELAPSE_FOR_MEDIA_CALC, 10000, 1, Destination and Rate); disabled Set Player Variable(Event Player, avarage_damage, Divide(Subtract(Player Variable(Event Player, Damage_total), Player Variable( Event Player, E)), 60)); disabled Set Player Variable(Event Player, E, Player Variable(Event Player, Damage_total)); disabled Loop; disabled Set Global Variable(total_time_elapsed_without_assem, Subtract(Total Time Elapsed, 12)); disabled Set Player Variable(Event Player, avarage_damage, Divide(Player Variable(Event Player, Damage_total), Global Variable( total_time_elapsed_without_assem))); Set Player Variable(Event Player, START_TIME_FOR_MEDIA_0NCE, True); } } rule("freeze time hud") { event { Ongoing - Each Player; All; All; } conditions { Is Game In Progress == True; disabled Global Variable(victory_condition) == 1; Global Variable(wait_destroy_action_before_hud) == 1; Global Variable(all_dmg_and_time_counts_frozen) == True; } actions { Create HUD Text(Event Player, Custom String("Damage and time resume counting in: {0}", Global Variable(freeze_time), Null, Null), Null, Null, Top, 0, Sky Blue, White, White, Visible To and String, Visible Always); } } rule("countdown time hud") { event { Ongoing - Each Player; All; All; } conditions { Is Game In Progress == True; Global Variable(victory_condition) == 1; Global Variable(wait_destroy_action_before_hud) == 1; } actions { Create HUD Text(Event Player, Custom String("Countdown to the Insanity Wave: {0}", Global Variable(countdown_time), Null, Null), Null, Null, Top, 0, Orange, White, White, Visible To and String, Visible Always); } } rule("actions on freeze time = 0") { event { Ongoing - Global; } conditions { Global Variable(freeze_time) == 0; Global Variable(freeze_time_and_dmg_in_fall) == False; } actions { Wait(0.250, Ignore Condition); Chase Player Variable At Rate(All Players(All Teams), TIME_ELAPSE_FOR_MEDIA_CALC, 10000, 1, Destination and Rate); Chase Global Variable At Rate(countdown_time, 0, 1, None); Skip If(Compare(Global Variable(victory_condition), ==, 0), 4); Skip If(Compare(Global Variable(current_phase), <, 3), Subtract(3, Global Variable(current_phase))); Chase Global Variable At Rate(third_phase_countdown, 0, 1, Destination and Rate); Chase Global Variable At Rate(second_phase_countdown, 0, 1, Destination and Rate); Chase Global Variable At Rate(first_phase_countdown, 0, 1, Destination and Rate); Set Global Variable(all_dmg_and_time_counts_frozen, False); Wait(0.100, Ignore Condition); Set Global Variable(WAIT_FREEZE_BEFORE_MEDIA_ON_RADI, False); Set Global Variable(wait_destroy_action_before_hud, 0); Wait(0.100, Ignore Condition); Destroy All HUD Text; Wait(0.100, Ignore Condition); Set Global Variable(wait_destroy_action_before_hud, 1); Set Global Variable(avoid_multiple_freezes_rules, False); } } rule("goal signal variable") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Damage_total) >= Player Variable(Event Player, damage_goal); } actions { Set Player Variable(Event Player, goal_reached, True); } } rule("queue hud") { event { Ongoing - Each Player; Team 1; All; } conditions { Is Game In Progress == True; Global Variable(wait_destroy_action_before_hud) == 1; Player Variable(Event Player, player_is_on_trigger_queue) == True; } actions { Wait(0.250, Ignore Condition); disabled Create HUD Text(All Players(Team 1), Custom String("Total dmg and damgage/min", Null, Null, Null), Null, Null, Left, 0, White, White, White, String, Default Visibility); disabled Create HUD Text(All Players(Team 1), All Players(Team 1), Player Variable(All Players(Team 1), Damage_total), Player Variable( All Players(Team 1), avarage_damage), Left, Null, Green, Red, Yellow, String, Default Visibility); Create HUD Text(All Players(Team 1), Custom String("{1}: {0}", Event Player, Add(Index Of Array Value(Global Variable( array_with_trigger_in_order), Event Player), 1), Null), Null, Null, Left, 0, Aqua, Yellow, Green, Visible To and String, Visible Always); disabled Create In-World Text(All Players(All Teams), Custom String("test", Null, Null, Null), Players In Slot(1, Team 2), 100, Clip Against Surfaces, Visible To Position and String, White, Default Visibility); } } rule("start moving when stopped") { event { Ongoing - Each Player; Team 2; Slot 1; } conditions { Has Spawned(Event Player) == True; Speed Of(Event Player) < 4.900; X Component Of(Throttle Of(Event Player)) == 0; Z Component Of(Throttle Of(Event Player)) == 0; } actions { Wait(0.100, Abort When False); disabled Start Accelerating(Event Player, Vector(1, 0, 1), 100, 20, To World, None); disabled Start Throttle In Direction(Event Player, Vector(1, 0, 0), 20, To World, Replace existing throttle, None); Start Throttle In Direction(Event Player, Vector(Random Real(-1.000, 1), 0, Random Real(-1.000, 1)), 20, To World, Replace existing throttle, Direction and Magnitude); Skip If(Compare(Global Variable(survive_after_untrapment), ==, True), 1); Set Global Variable(activate_untrap_slots, True); Modify Global Variable(total_unstucks_count, Add, 1); Wait(0.001, Ignore Condition); disabled Press Button(Players In Slot(1, Team 2), Ability 2); Set Global Variable(activate_untrap_slots, False); Loop If Condition Is True; } } rule("trigger queue indicator") { event { Ongoing - Global; } conditions { Is Game In Progress == True; Global Variable(wait_destroy_action_before_hud) == 1; Compare(Global Variable(array_with_trigger_in_order), ==, Empty Array) == False; } actions { Create HUD Text(All Players(All Teams), Custom String("Trigger queue shown above", Null, Null, Null), Null, Null, Left, 0, Purple, White, White, Visible To and String, Visible Always); } } rule("untrap") { event { Ongoing - Global; } conditions { Players Within Radius(Global Variable(record_position_for_untrapment), 2, Team 2, Off) == True; Global Variable(survive_after_untrapment) == False; } actions { Set Global Variable(UNTRAP_TIME_OVERHEAD, 3.484); Wait(0.016, Abort When False); Chase Global Variable At Rate(UNTRAP_TIME_OVERHEAD, 0, 1, Destination and Rate); Wait(3.484, Abort When False); Kill(Players In Slot(1, Team 2), Players In Slot(1, Team 2)); Skip If(Compare(Global Variable(big_untrapment_message_sent), ==, True), 1); Big Message(All Players(All Teams), Custom String("Bot feels trapped.", Null, Null, Null)); Set Global Variable(big_untrapment_message_sent, True); } } rule("untrap radius") { event { Ongoing - Global; } conditions { Players Within Radius(Global Variable(record_position_for_untrapment), 2, Team 2, Off) == False; } actions { Set Global Variable(record_position_for_untrapment, Position Of(Players In Slot(1.200, Team 2))); disabled Create Effect(All Players(All Teams), Ring, Red, Position Of(Global Variable(record_position_for_untrapment)), 2, Visible To Position and Radius); } } rule("freeze damage and time while bot falls") { event { Ongoing - Global; } conditions { Y Component Of(Velocity Of(Players In Slot(1, Team 2))) < -6.000; } actions { Set Global Variable(freeze_time_and_dmg_in_fall, True); Small Message(All Players(All Teams), Custom String( " Bot is falling: All time and dmg frozen until one 1 after reaching the ground.", Global Variable(time_frozen_when_bot_dies), Null, Null)); Stop Chasing Player Variable(All Players(All Teams), TIME_ELAPSE_FOR_MEDIA_CALC); Stop Chasing Global Variable(second_phase_countdown); Stop Chasing Global Variable(third_phase_countdown); Stop Chasing Global Variable(first_phase_countdown); Stop Chasing Global Variable(countdown_time); } } rule("restart all dmg and time counting after reaching the ground") { event { Ongoing - Global; } conditions { Y Component Of(Velocity Of(Players In Slot(1, Team 2))) >= -6.000; } actions { Wait(1, Abort When False); Set Global Variable(freeze_time_and_dmg_in_fall, False); } } disabled rule("Rule 98") { event { Ongoing - Global; } conditions { Is Button Held(Host Player, Ability 1) == True; } actions { Teleport(Players In Slot(1, Team 2), Vector(0, 10, 0)); } }
View Fullscreen
Copy current Rule
Copy all Rules
Made by | Truzen
Categories | Solo, 1vs1, Practice Mode
Heroes | Tracer
Created at |
Last updated |
Current version | 0.97

Update Log

0.97
E6ZBK

-Changed the in game description to avoid crash on the game loading.

0.97
7PBWQ

-Added the damage necessary to abort the Insanity Wave and the countdown to the bot suicide due to the untrap system at the overhead text.

EDIT: Removed a mechanic that locked the dps of the players that is on queue while an opponent is trying to release the wave.

0.97
53XN3

-Removed Hanamura from map rotation becouse bot dies too much falling out of the map and goes to a lot of narrow spaces.

-Added a mechanic to freeze damage while bot is falling. The damage restart 1 second after touching the ground.

0.97
WAF72

-Changed the untrapment system to a ring where if the bot stands for 3 seconds it feels trapped and suicides.

Edit: Set the ring effect invisible.

0.95
Y7E22

-Added a defuse mechaninc where the allies can try to deal 60 x the dps of the player that triggered the countdown to the explosion in 1 minute to abort the explosion and survive. And the game continues until a player is successful in exploding everyone.

I am trying to create a queue to, while a countdown to the explosion is in progress, show the players that reaches the goal during the countdown in order of who reached there first. But it's not working.

EDIT: I think it's working now.

0.9
2R0TJV

-Added a visual effect and a world explosion that kills everyone except the winner player when victory condition is achieved.

-Added an anti-trap system that kills the bot whe it "feels" like it got trapped in a corner by humans.

-Disabled King of the Hill maps because the bot spawn at weird location on these maps.

0.9
AE3ZN

-Added in game option to disable or enable victory condition.

Edit: Made a new code with minor adjustments.

0.9
NJM4Q

-Added the in game option to disable the ultimate ability in the first 5 seconds of the match.

EDIT: Changed the code again to fix the script.

0.9
5AWD8

Forgot to change the code.

0.9
VSGGR

-Bot now changes direction after 1 secont at maximum.

0.9
VSGGR

Added a sound when victory condition is achieved

0.9
20NN5

-Fixed the overhead text

0.9
DXFY9

-Made the game create a bot automatcally with random movements, so its harder to hit and its not necessary to create a bot manually before start the game.

-Created a text over the head of the bot showing the avarage damage per second and the total damage

-Created an icon visible anywhere on the map showing the location of the bot.

-Ajusted the spawn script so now the players and the bot spawns randomly on an objective point, making it possible to play in any map with an objective.

-Made a few adjustments on the hud.

-Fixed the issue of the hud showing more than one victory players.

0.73
GEBNQ

Just corrected an spelling mistake on the hud.

0.73
44W9T

Lowered the ultimate penalty and the damage goal.

Fixed an issue where the damage scoreen was not going to zero on round restart.

0.73
87Q2N

Added a hud notifying the player that reached the damage goal and won the round, skipping annoying stuffs like the "play of the game screen".

0.73
HFWHB
0.73
HFWHB
0.7
HFWHB

0 Comments

Log in or Sign up to place a comment.
Workshop.codes - Background image