Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Overwatch: Uprising - made by Waitedboat4#2760 - BETA/WIP v1.4: anti-copy"
  • Description: "Overwatch: Uprising - made by Waitedboat4#2760 - BETA/WIP v1.6: Orisa bots can pathfind now :)"
  • }
  • lobby
  • {
  • Max Team 1 Players: 0
  • Max Team 2 Players: 4
  • Swap Teams After Match: No
  • }
  • modes
  • {
  • Assault
  • {
  • enabled maps
  • {
  • }
  • }
  • Control
  • {
  • enabled maps
  • {
  • }
  • }
  • Escort
  • {
  • enabled maps
  • {
  • }
  • }
  • Hybrid
  • {
  • Capture Speed Modifier: 500%
  • enabled maps
  • {
  • King's Row
  • }
  • }
  • General
  • {
  • Game Mode Start: Immediately
  • Spawn Health Packs: Disabled
  • }
  • }
  • heroes
  • {
  • Team 1
  • {
  • Bastion
  • {
  • Infinite Ultimate Duration: On
  • Spawn With Ultimate Ready: On
  • }
  • Wrecking Ball
  • {
  • Movement Speed: 85%
  • Roll Always Active: On
  • }
  • Zarya
  • {
  • No Ammunition Requirement: On
  • }
  • }
  • General
  • {
  • enabled heroes
  • {
  • Mercy
  • Reinhardt
  • Torbjörn
  • Tracer
  • }
  • }
  • }
  • workshop
  • {
  • Hacking Speed percentsec: 500
  • }
  • }
  • variables
  • {
  • global:
  • 0: _extendedGlobalCollection
  • 2: Nodes
  • 3: Segments
  • 4: Attributes
  • 5: map
  • 6: _classIndexes
  • 7: _tempNodes
  • 8: _tempSegments
  • 9: _tempAttributes
  • 10: TerminalPercent
  • 11: AllTerminalsHacked
  • 12: TerminalPosition
  • 13: PayloadFixed
  • 14: KillOR14
  • 15: NumberofOR14killed
  • 16: StartedCapture
  • 18: PayloadHP
  • 19: ReleaseHPkillers
  • 20: HUDtext
  • 21: Normal
  • 22: Hard
  • 23: Expert
  • 24: Legendary
  • 25: Fixingpayload
  • 26: SentryPos
  • 27: Healovertime
  • 28: Score
  • 29: Orisas
  • 30: CreateSelfPromotionText
  • 50: antiCrashActivated
  • player:
  • 0: _extendedPlayerCollection
  • 1: Spawn
  • 2: pathfinderDoGetCurrent
  • 3: pathfinderCurrent
  • 4: pathmapReference
  • 5: parentArray
  • 6: destination
  • 7: lastAttribute
  • 8: Dijkstra_Final_Path
  • 9: Dijkstra_Final_Path_Attributes
  • 10: Dijkstra_Current
  • 11: Dijkstra_Distances
  • 12: Dijkstra_Unvisited
  • 13: Dijkstra_Connected_Segments
  • 14: Dijkstra_Neighbor_Index
  • 15: Dijkstra_Distance
  • 16: Dijkstra_Neighbor_Attributes
  • 17: Dijkstra_Parent_Array
  • 18: LineofSight
  • 19: Dijkstra_Final_Path_0
  • 20: Dijkstra_Final_Path_Attributes_0
  • 21: Dijkstra_Current_0
  • 22: Dijkstra_Distances_0
  • 23: Dijkstra_Unvisited_0
  • 24: Invis
  • 25: Dijkstra_Connected_Segments_0
  • 26: Dijkstra_Neighbor_Index_0
  • 27: Dijkstra_Distance_0
  • 28: Dijkstra_Neighbor_Attributes_0
  • 29: Dijkstra_Parent_Array_0
  • 30: Dijkstra_Final_Path_1
  • 31: Dijkstra_Final_Path_Attributes_1
  • 32: Dijkstra_Current_1
  • 33: Dijkstra_Distances_1
  • 34: Dijkstra_Unvisited_1
  • 35: Dijkstra_Connected_Segments_1
  • 36: Dijkstra_Neighbor_Index_1
  • 37: Dijkstra_Distance_1
  • 38: Dijkstra_Neighbor_Attributes_1
  • 39: Dijkstra_Parent_Array_1
  • 40: ReviveEffect
  • 41: ReviveText
  • 42: Hasult
  • 43: Dijkstra_Final_Path_2
  • 44: Dijkstra_Final_Path_Attributes_2
  • 45: Dijkstra_Current_2
  • 46: Dijkstra_Distances_2
  • 47: Dijkstra_Unvisited_2
  • 48: Dijkstra_Connected_Segments_2
  • 49: Dijkstra_Neighbor_Index_2
  • 50: Dijkstra_Distance_2
  • 51: Dijkstra_Neighbor_Attributes_2
  • 52: Dijkstra_Parent_Array_2
  • 53: Dijkstra_Final_Path_3
  • 54: Dijkstra_Final_Path_Attributes_3
  • 55: Dijkstra_Current_3
  • 56: Dijkstra_Distances_3
  • 57: Dijkstra_Unvisited_3
  • 58: Dijkstra_Connected_Segments_3
  • 59: Dijkstra_Neighbor_Index_3
  • 60: Dijkstra_Distance_3
  • 61: Dijkstra_Neighbor_Attributes_3
  • 62: Dijkstra_Parent_Array_3
  • 63: Dijkstra_Final_Path_4
  • 64: Dijkstra_Final_Path_Attributes_4
  • 65: Dijkstra_Current_4
  • 66: Dijkstra_Distances_4
  • 67: Dijkstra_Unvisited_4
  • 68: Dijkstra_Connected_Segments_4
  • 69: Dijkstra_Neighbor_Index_4
  • 70: Dijkstra_Distance_4
  • 71: Dijkstra_Neighbor_Attributes_4
  • 72: Dijkstra_Parent_Array_4
  • }
  • rule("Me")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.CreateSelfPromotionText = True;
  • Create HUD Text(All Players(Team 2), Null, Custom String("https://workshop.codes/uprising"), Null, Right, 0, Color(White), Color(
  • Green), Color(Green), Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 2), Null, Null, Custom String("Created by Waitedboat4#2760"), Right, 0, Color(White), Color(
  • White), Color(Green), Visible To and String, Default Visibility);
  • }
  • }
  • rule("Bastion/Wrecking Ball POS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.SentryPos = Array(Vector(-9.545, 1.577, -20.975), Vector(-29.313, 1.800, -15.087));
  • }
  • }
  • rule("Scoreboard")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • }
  • actions
  • {
  • Create HUD Text(All Players(Team 2), Null, Null, Custom String("{0} | {1} HP | {2}%", Custom String("{0} {1}", Is Alive(
  • Event Player) == True ? Hero Icon String(Hero Of(Event Player)) : Icon String(X), Event Player), Round To Integer(Health(
  • Event Player), To Nearest), Ultimate Charge Percent(Event Player)), Left, 2, Color(White), Color(White), Color(White),
  • Visible To and String, Default Visibility);
  • }
  • }
  • rule("Initial Global")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global._classIndexes[1000] = 0;
  • Global._extendedGlobalCollection[1] = Index Of Array Value(Global._classIndexes, 0);
  • Global._classIndexes[Global._extendedGlobalCollection[1]] = -1;
  • Global._tempNodes = Empty Array;
  • Global._tempSegments = Empty Array;
  • Global._tempAttributes = Empty Array;
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-148.970, -2.860, 25.490));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-156.270, -2.920, 13.760));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-152.050, -2.930, 35.980));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-120.590, -1.220, 18.270));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-156.450, 0.070, 5.260));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-162.160, 0.070, 3.600));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-161.140, 0.070, 12.440));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-166.680, 0.070, 13.790));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-150.910, 0.070, 46.680));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-161.460, 0.070, 48.910));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-121.660, -1.220, -4.230));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-105.860, 0.770, -10.310));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-91, 0.860, -10.020));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-87.810, 0.900, 4.140));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-88.140, 0.770, -25.770));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-100.730, -0.490, -33.760));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-95.580, -2.500, -46.140));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-88.290, -1.490, -59.710));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-63.600, 0.390, -49.810));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-70.650, 0.250, -42.810));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-82.010, 0.280, -46.210));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-85.490, 0.850, -30.010));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-79.950, 4.500, -40.560));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-70.310, 4.500, -36.160));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-74.800, 4.500, -27.490));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-80.360, 2.500, -30.960));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-79.980, 2.500, -33.230));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-72.080, 0.500, -31.970));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-61.590, -0.340, -28.650));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-64.520, -0.320, -21.630));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-60.480, -0.350, -36.040));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-48.520, -0.180, -32.560));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-52.890, 0.070, -43.040));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-48.310, 0.090, -42.790));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-47.530, 2, -51.080));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-36.770, 2, -49.840));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-38.320, 0.070, -35.260));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-35.630, 2, -54.510));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-25.010, 1, -52.900));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-10.260, 1, -52.830));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-8.400, 1, -58.360));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-4.650, 1, -57.780));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-8.220, 6, -42));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-12.740, 6.060, -44.520));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-26.650, 6, -47.010));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-31.110, 6, -47.460));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-33.580, 9, -34.120));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-37.670, 9, -13.050));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-29.620, 9, -15.910));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-58.140, 4.960, -16.180));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-59.190, 5.020, -11));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-61.150, 3, -4.470));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-70.790, -0.190, -6.820));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-72.840, -0.190, -12.670));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-43.740, -0.150, -25.550));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-46.280, -0.060, -20.840));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-53.090, -0.060, -22.320));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-55.460, -0.060, -28.940));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-28.140, -0.100, -24.160));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-23.290, -0.100, -32.300));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-12.840, -0.110, -30.320));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-8.860, -0.030, -20.090));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-1.840, -0.130, -16.120));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(2.580, -0.140, -25.770));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-4.390, -0.150, -29.890));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-2.270, 0.020, -42.590));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-11.320, 1, -44.850));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(3.840, 6.030, -41.180));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(4.580, 6.030, -36.210));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(16.400, 6.030, -37.140));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(18.230, 0.080, -18.490));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-1.590, -0.110, -8.860));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(22.940, 4, -6.040));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(23.930, 4, -2.800));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(11.700, 6, -4.510));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(8.560, 6, -11.240));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(9.650, 6, -15.260));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-26.640, 0.140, -41.090));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-28.690, 0.140, -35.360));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-24.380, 0.030, -21.990));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-18.030, 1, -20.400));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-17.580, 1, -16.170));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-22.050, 1, -12.020));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-27.200, 0.080, -13.590));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-13.910, -0.130, -5.770));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-25.920, -0.120, -4.540));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-26.180, -0.130, 4.340));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-25.470, -0.110, 15.160));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-21.490, -0.120, 16.280));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-17.060, -1, 42.550));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-0.040, 1, 40.430));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(12.660, 1, 35.390));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(11, 6, 19.090));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(15.730, 6, 17.030));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(4.470, 1, 32.270));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-5.140, 1, 34.340));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-7.070, 1.150, 22.980));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-3.480, 1.150, 21.720));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(2.030, 1.150, 21.300));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-6.140, -0.070, 9.130));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-7.700, -0.120, -0.870));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-9.890, 0.080, 7.430));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-17.440, 0.260, 5.170));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-71.080, -0.130, 2.590));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-99.090, 1.070, 9.340));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-101.440, 1.070, 2.070));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-109.690, 1.070, 3.770));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-109.350, 2.070, 9.860));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-100.990, 5.070, 8.880));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-102.480, 6.930, -5.360));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-90.140, 6.930, -5.330));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-86.280, 6.930, -15.920));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-67.590, 5.020, -13.540));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-101.880, 6.930, -6.640));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-112.720, -0.930, 16.700));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-111.290, 1.070, 27.990));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-129.670, 1.070, 32.350));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-129.960, 0.070, 42.670));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-107.520, 1.070, -20.430));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-122.460, 1.070, -15.200));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-135.690, 0.070, -13.480));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-134.250, -1.020, -6.400));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-134.450, -1.020, -0.880));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-139.830, -0.930, 1.960));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-137.140, -0.930, 11.280));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-132.940, -0.930, 11.830));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-132.650, -1.320, 16.830));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-125.560, -1.290, 10.430));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-48.890, -0.040, 3.400));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-46.460, 0.960, -9.200));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-57.960, -0.040, 3.490));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-104.680, -3.500, -49.830));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-87.960, 0.660, -32.630));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-75.460, -0.030, -22.450));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-69.230, 0.020, -13.480));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-64.440, 0.020, -12.490));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-65.350, -0.080, -9.020));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-68.190, -0.010, -9.070));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-64.270, -0.110, -17.840));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(-109.650, -0.180, -4.460));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 2, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Up);
  • Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 3, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(7, 6, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(6, 5, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(5, 4, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(4, 1, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(2, 8, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(8, 9, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(3, 10, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(10, 11, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(11, 12, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(12, 13, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(12, 14, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(14, 15, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(15, 16, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(16, 17, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(17, 18, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(18, 19, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(19, 20, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(14, 21, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(21, 22, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(22, 23, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(23, 24, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(24, 25, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(25, 26, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(26, 27, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(27, 19, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(27, 28, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(29, 28, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(28, 30, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(30, 31, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(18, 31, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(18, 32, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(32, 33, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(33, 34, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(34, 35, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(35, 36, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(36, 31, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(35, 37, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(37, 38, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(38, 39, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(39, 40, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(40, 41, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(41, 42, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(42, 43, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(43, 44, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(44, 45, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(45, 46, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(46, 47, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(47, 48, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(47, 49, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(49, 50, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(50, 51, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(51, 52, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(52, 53, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(53, 29, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(31, 54, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(54, 55, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(55, 56, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(56, 57, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(57, 30, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(54, 58, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(58, 59, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(59, 60, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(60, 61, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(61, 62, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(63, 64, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(64, 60, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(64, 65, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(65, 66, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(66, 39, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(67, 68, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(68, 69, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(69, 70, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(70, 62, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(62, 71, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(71, 72, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(72, 73, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(73, 74, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(74, 75, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(75, 76, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(76, 70, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(63, 62, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(42, 64, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(44, 77, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(77, 78, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(78, 58, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(77, 38, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(46, 59, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(46, 31, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(79, 80, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(80, 81, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(81, 82, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(82, 83, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(83, 79, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(79, 58, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(81, 62, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(71, 84, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(84, 85, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(85, 86, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(86, 87, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(87, 88, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(88, 89, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(89, 90, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(90, 91, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(91, 92, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(92, 93, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(90, 95, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(90, 94, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(95, 96, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(96, 97, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(97, 98, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(98, 94, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(97, 99, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(99, 100, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(100, 71, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(99, 101, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(101, 102, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(102, 86, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(65, 67, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(13, 103, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(103, 52, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(13, 104, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(104, 105, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(105, 106, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(106, 107, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(107, 108, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(108, 109, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(110, 111, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(111, 112, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(112, 50, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(109, 113, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(110, 113, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(112, 29, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(3, 114, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(114, 115, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(115, 116, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(116, 117, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(117, 8, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(11, 118, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(118, 119, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(119, 120, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(120, 121, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(121, 10, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(121, 122, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(122, 123, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(123, 124, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(124, 125, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(125, 126, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(126, 3, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(125, 127, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(127, 3, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(128, 129, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(129, 50, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(103, 130, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(130, 128, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(16, 131, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(14, 133, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(133, 29, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(14, 132, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(132, 20, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(53, 134, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(134, 135, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(135, 136, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(136, 137, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(137, 52, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(138, 29, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(138, 49, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(106, 139, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(139, 11, Empty Array));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(70, 76, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(64, 42, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(77, 44, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(31, 46, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(59, 46, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(65, 67, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(29, 112, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(138, 49, 1));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(139, 106, 1));
  • Global.Nodes[Global._extendedGlobalCollection[1]] = Global._tempNodes;
  • Global.Segments[Global._extendedGlobalCollection[1]] = Global._tempSegments;
  • Global.Attributes[Global._extendedGlobalCollection[1]] = Global._tempAttributes;
  • Global.map = Global._extendedGlobalCollection[1];
  • }
  • }
  • rule("Pathfinder: Resolve Current")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.pathfinderDoGetCurrent == True;
  • }
  • actions
  • {
  • Event Player.pathfinderCurrent = Index Of Array Value(Global.Nodes[Event Player.pathmapReference], First Of(Sorted Array(
  • Filtered Array(Global.Nodes[Event Player.pathmapReference], Is In Line of Sight(Eye Position(Event Player),
  • Current Array Element, Barriers Do Not Block LOS) == True), Distance Between(Position Of(Event Player),
  • Current Array Element))));
  • Start Throttle In Direction(Event Player, Direction Towards(Position Of(Event Player),
  • Event Player.pathfinderCurrent == -1 ? Event Player.destination : Global.Nodes[Event Player.pathmapReference][Event Player.pathfinderCurrent]),
  • 1, To World, Replace existing throttle, Direction and Magnitude);
  • Event Player.pathfinderDoGetCurrent = False;
  • }
  • }
  • rule("Pathfinder: Resolve Next")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player),
  • Event Player.pathfinderCurrent == -1 ? Event Player.destination : Global.Nodes[Event Player.pathmapReference][Event Player.pathfinderCurrent])
  • <= 0.400;
  • Event Player.parentArray != Null;
  • }
  • actions
  • {
  • If(Event Player.pathfinderCurrent != -1);
  • Event Player.lastAttribute = Mapped Array(Filtered Array(Global.Attributes[Event Player.pathmapReference], X Component Of(
  • Current Array Element) == Event Player.pathfinderCurrent && Y Component Of(Current Array Element)
  • == Event Player.parentArray[Event Player.pathfinderCurrent] - 1), Z Component Of(Current Array Element));
  • Event Player.pathfinderCurrent = Event Player.parentArray[Event Player.pathfinderCurrent] - 1;
  • Else;
  • Stop Throttle In Direction(Event Player);
  • Event Player.parentArray = Null;
  • End;
  • }
  • }
  • rule("Pathfind to Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Hero Of(Event Player) != Hero(Ana);
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Distance Between(
  • Event Player, Current Array Element)))) > 5;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Event Player.LineofSight == True;
  • Hero Of(Event Player) != Hero(Symmetra);
  • Hero Of(Event Player) != Hero(Zarya);
  • Hero Of(Event Player) != Hero(Bastion);
  • Hero Of(Event Player) != Hero(Wrecking Ball);
  • Hero Of(Event Player) != Hero(Orisa);
  • }
  • actions
  • {
  • Event Player._extendedPlayerCollection[0] = First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)));
  • Event Player.Dijkstra_Final_Path = Empty Array;
  • Event Player.Dijkstra_Final_Path_Attributes = Empty Array;
  • Event Player.Dijkstra_Current = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
  • Distance Between(First Of(Event Player._extendedPlayerCollection), Current Array Element))));
  • Event Player.Dijkstra_Distances[Event Player.Dijkstra_Current] = 0.000;
  • Event Player.Dijkstra_Unvisited = Mapped Array(Global.Nodes[Global.map], Current Array Index);
  • While(Is True For Any(Event Player.Dijkstra_Unvisited, Event Player.Dijkstra_Distances[Current Array Element] != 0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Connected_Segments = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
  • Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
  • Event Player.Dijkstra_Current));
  • Event Player._extendedPlayerCollection[1] = 0;
  • While(Event Player._extendedPlayerCollection[1] < Count Of(Event Player.Dijkstra_Connected_Segments));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Neighbor_Index = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
  • Event Player.Dijkstra_Connected_Segments[Event Player._extendedPlayerCollection[1]])), Y Component Of(
  • Event Player.Dijkstra_Connected_Segments[Event Player._extendedPlayerCollection[1]])),
  • Current Array Element != Event Player.Dijkstra_Current));
  • Event Player.Dijkstra_Distance = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index],
  • Global.Nodes[Global.map][Event Player.Dijkstra_Current]) + Event Player.Dijkstra_Distances[Event Player.Dijkstra_Current];
  • Event Player.Dijkstra_Neighbor_Attributes = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
  • == Event Player.Dijkstra_Current && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index);
  • If((
  • Event Player.Dijkstra_Distances[Event Player.Dijkstra_Neighbor_Index] == 0 || Event Player.Dijkstra_Distance < Event Player.Dijkstra_Distances[Event Player.Dijkstra_Neighbor_Index])
  • && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes,
  • Array Contains(Null, Z Component Of(Current Array Element)))));
  • Event Player.Dijkstra_Distances[Event Player.Dijkstra_Neighbor_Index] = Event Player.Dijkstra_Distance;
  • Event Player.Dijkstra_Parent_Array[Event Player.Dijkstra_Neighbor_Index] = Event Player.Dijkstra_Current + 1;
  • End;
  • Event Player._extendedPlayerCollection[1] += 1;
  • End;
  • Modify Player Variable(Event Player, Dijkstra_Unvisited, Remove From Array By Value, Event Player.Dijkstra_Current);
  • Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
  • Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current, 2);
  • Event Player.Dijkstra_Current = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited,
  • Event Player.Dijkstra_Distances[Current Array Element] != 0), Event Player.Dijkstra_Distances[Current Array Element]));
  • End;
  • Event Player.pathmapReference = Global.map;
  • Event Player.parentArray = Event Player.Dijkstra_Parent_Array;
  • Event Player.destination = First Of(Event Player._extendedPlayerCollection);
  • Event Player.pathfinderDoGetCurrent = True;
  • Event Player.Dijkstra_Current = 0;
  • Event Player.Dijkstra_Distances = 0;
  • Event Player.Dijkstra_Connected_Segments = 0;
  • Event Player.Dijkstra_Neighbor_Index = 0;
  • Event Player.Dijkstra_Distance = 0;
  • Event Player.Dijkstra_Parent_Array = 0;
  • Wait(5, Ignore Condition);
  • Loop If(Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)))) > 5);
  • }
  • }
  • rule("Stop Pathfinding")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Hero Of(Event Player) != Hero(Ana);
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Distance Between(
  • Event Player, Current Array Element)))) <= 5;
  • Hero Of(Event Player) != Hero(Symmetra);
  • Hero Of(Event Player) != Hero(Wrecking Ball);
  • Hero Of(Event Player) != Hero(Zarya);
  • Hero Of(Event Player) != Hero(Bastion);
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • Wait(Random Integer(1, 2), Ignore Condition);
  • Start Throttle In Direction(Event Player, Direction Towards(Position Of(Event Player), Position Of(First Of(Sorted Array(
  • Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Is In Line of Sight(Event Player,
  • Current Array Element, Barriers Do Not Block LOS)), Distance Between(Event Player, Current Array Element))))
  • + Direction From Angles(Total Time Elapsed * 135, 0) * 5), 1, To World, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Integer(1, 2), Ignore Condition);
  • Loop If(Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)))) <= 5);
  • }
  • }
  • rule("Hack Terminals Big Message")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Disable Messages(All Players(Team 2));
  • Wait(3, Ignore Condition);
  • Enable Messages(All Players(Team 2));
  • Big Message(All Players(Team 2), Custom String("HACK THE TERMINALS"));
  • }
  • }
  • rule("Disable HUD")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Disable Game Mode HUD(Event Player);
  • Disable Game Mode In-World UI(Event Player);
  • }
  • }
  • rule("Enable HUD")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Global.AllTerminalsHacked == True;
  • }
  • actions
  • {
  • Enable Game Mode HUD(Event Player);
  • Enable Game Mode In-World UI(Event Player);
  • }
  • }
  • rule("Disable - Global")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Scoring;
  • Disable Built-In Game Mode Announcer;
  • Global.PayloadHP = 100;
  • }
  • }
  • rule("Disable - Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Respawning(Event Player);
  • }
  • }
  • rule("Start Facing")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Hero Of(Event Player) != Hero(Ana);
  • Hero Of(Event Player) != Hero(Symmetra);
  • }
  • actions
  • {
  • Start Facing(Event Player, Direction Towards(Event Player, First Of(Sorted Array(Filtered Array(Filtered Array(All Living Players(
  • Opposite Team Of(Team Of(Event Player))), Current Array Element.Invis == False), Is In Line of Sight(Event Player,
  • Current Array Element, Barriers Do Not Block LOS)), Distance Between(Event Player, Current Array Element)))), 200, To World,
  • Direction and Turn Rate);
  • }
  • }
  • rule("Shooting - Baptiste")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Baptiste;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • Is Firing Primary(Event Player) == False;
  • }
  • actions
  • {
  • Start Holding Button(Event Player, Button(Primary Fire));
  • }
  • }
  • rule("Stop Shooting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == False;
  • Hero Of(Event Player) != Hero(Ana);
  • Hero Of(Event Player) != Hero(Zarya);
  • Hero Of(Event Player) != Hero(Wrecking Ball);
  • Hero Of(Event Player) != Hero(Symmetra);
  • }
  • actions
  • {
  • Stop Holding Button(Event Player, Button(Primary Fire));
  • }
  • }
  • rule("Bap Reload")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Baptiste;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Ammo(Event Player, 0) < 1;
  • }
  • actions
  • {
  • Press Button(Event Player, Button(Reload));
  • }
  • }
  • rule("Reset Variables - Player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Event Player.Spawn = False;
  • }
  • }
  • rule("HUD")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Create HUD Text(All Players(Team 2), Null, Null, Custom String("HACK THE TERMINALS\r\n {0}%", Round To Integer(
  • Global.TerminalPercent, To Nearest)), Top, 0, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(All Players(Team 2), Null, Null, Custom String("HACK THE TERMINALS\r \n {0} {1} {2}", Count Of(
  • Global.TerminalPosition) == 3 ? Custom String("{0}%", Round To Integer(Global.TerminalPercent, To Nearest)) : (Count Of(
  • Global.TerminalPosition) > 3 ? Icon String(No) : Icon String(Checkmark)), Count Of(Global.TerminalPosition)
  • == 2 ? Custom String("{0}%", Round To Integer(Global.TerminalPercent, To Nearest)) : (Count Of(Global.TerminalPosition)
  • > 2 ? Icon String(No) : Icon String(Checkmark)), Count Of(Global.TerminalPosition) == 1 ? Custom String("{0}%",
  • Round To Integer(Global.TerminalPercent, To Nearest)) : (Count Of(Global.TerminalPosition) > 1 ? Icon String(No) : Icon String(
  • Checkmark))), Top, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Global.HUDtext = Last Text ID;
  • }
  • }
  • rule("Skip Setup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • }
  • actions
  • {
  • Set Match Time(0);
  • }
  • }
  • rule("Terminal Array")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.TerminalPosition = Array(Vector(-60.851, 1.250, 3.839), Vector(-2.205, 1.118, -15.754), Vector(0.606, 2.250, 39.854));
  • }
  • }
  • rule("Create Effect - Terminals")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create Effect(All Players(Team 2), Ring, Color(Blue), First Of(Global.TerminalPosition), 5, Visible To Position and Radius);
  • Create In-World Text(All Players(Team 2), Custom String(" {0}\r\nHACK", Icon String(Bolt)), Global.TerminalPosition, 1,
  • Do Not Clip, Visible To Position and String, Color(Blue), Default Visibility);
  • }
  • }
  • rule("Pause")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Pause Match Time;
  • }
  • }
  • rule("Force Spawn Point")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Start Forcing Spawn Room(Team 1, 2);
  • Start Forcing Spawn Room(Team 2, 2);
  • Wait(0.250, Ignore Condition);
  • Start Forcing Spawn Room(Team 2, 1);
  • }
  • }
  • rule("Contest Point")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Ana), Team 1, -1, Vector(-19.067, 1.322, -36.125), Vector(Empty Array, Empty Array, Empty Array));
  • }
  • }
  • rule("Ana Invincible")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ana;
  • }
  • actions
  • {
  • Set Invisible(Event Player, All);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • }
  • }
  • rule("Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Event Player.Spawn == False;
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(-103.528, -3.226, -66.614));
  • Set Facing(Event Player, Direction Towards(Event Player, Vector(-107.258, -3.401, -60.100)), To World);
  • Wait(0.250, Ignore Condition);
  • Event Player.Spawn = True;
  • }
  • }
  • rule("Get Through Exit")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(-92.782, 2.504, -28.929)) <= 2;
  • }
  • actions
  • {
  • Disable Movement Collision With Environment(Event Player, False);
  • }
  • }
  • rule("Get Through Exit - Disable")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(-92.782, 2.504, -28.929)) > 2;
  • }
  • actions
  • {
  • Enable Movement Collision With Environment(Event Player);
  • }
  • }
  • rule("Get Through Exit")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(-68.142, 1.754, -50.930)) <= 2;
  • }
  • actions
  • {
  • Disable Movement Collision With Environment(Event Player, False);
  • }
  • }
  • rule("Get Through Exit - Disable")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(-68.142, 1.754, -50.930)) > 2;
  • }
  • actions
  • {
  • Enable Movement Collision With Environment(Event Player);
  • }
  • }
  • rule("Terminal Finished")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.TerminalPercent == 100;
  • Global.AllTerminalsHacked == False;
  • }
  • actions
  • {
  • Play Effect(All Players(Team 2), Ring Explosion Sound, Color(White), All Players(Team 2), 200);
  • Modify Global Variable(TerminalPosition, Remove From Array By Value, First Of(Global.TerminalPosition));
  • Global.TerminalPercent = 0;
  • }
  • }
  • rule("Terminal Capture")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Count Of(Filtered Array(Players Within Radius(First Of(Global.TerminalPosition), 5, Team 2, Off), Is Alive(Current Array Element)))
  • > 0;
  • Global.AllTerminalsHacked == False;
  • }
  • actions
  • {
  • Chase Global Variable At Rate(TerminalPercent, 100, Workshop Setting Integer(Custom String("Settings"), Custom String(
  • "Hacking Speed (percent/sec)"), 1, 0, 500, 0), Destination and Rate);
  • Global.StartedCapture = True;
  • }
  • }
  • rule("Stop Terminal Capture")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.AllTerminalsHacked == False;
  • Count Of(Filtered Array(Players Within Radius(First Of(Global.TerminalPosition), 5, Team 2, Off), Is Alive(Current Array Element)))
  • <= 0;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(TerminalPercent);
  • }
  • }
  • rule("All Terminals Hacked")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Count Of(Global.TerminalPosition) == 0;
  • }
  • actions
  • {
  • Global.AllTerminalsHacked = True;
  • Destroy All Effects;
  • Destroy All In-World Text;
  • Destroy HUD Text(Global.HUDtext);
  • Set Objective Description(All Players(Team 2), Custom String("RENDEZVOUS AT THE PAYLOAD"), Visible To and String);
  • Big Message(All Players(Team 2), Custom String("GET TO THE PAYLOAD"));
  • }
  • }
  • rule("Remove Contest")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ana;
  • }
  • conditions
  • {
  • Global.AllTerminalsHacked == True;
  • }
  • actions
  • {
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • }
  • }
  • rule("Contest Payload")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Distance Between(Payload Position, Vector(-18.813, 1.334, -38.687)) <= 5;
  • Global.AllTerminalsHacked == True;
  • Is Game In Progress == True;
  • Global.PayloadFixed == False;
  • }
  • actions
  • {
  • Global.Fixingpayload = True;
  • Destroy All Dummy Bots;
  • Wait(0.250, Ignore Condition);
  • Create Progress Bar HUD Text(All Players(Team 2), Global.PayloadHP, Custom String("Payload Health: {0}%", Global.PayloadHP), Right,
  • 0.500, Color(White), Color(White), Visible To Values and Color, Default Visibility);
  • Global.AllTerminalsHacked = False;
  • Global.ReleaseHPkillers = True;
  • Big Message(All Players(Team 2), Custom String("DEFEND THE PAYLOAD"));
  • Set Objective Description(All Players(Team 2), Custom String("DEFEND THE PAYLOAD"), Visible To and String);
  • Set Match Time(240);
  • Unpause Match Time;
  • Create Dummy Bot(Hero(Ana), Team 1, -1, Vector(-19.070, 1.326, -37.026), Vector(Empty Array, Empty Array, Empty Array));
  • Wait(240, Ignore Condition);
  • Global.PayloadFixed = True;
  • Global.Fixingpayload = False;
  • }
  • }
  • rule("Time")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Match Time <= 0;
  • }
  • actions
  • {
  • Pause Match Time;
  • Set Match Time(240);
  • }
  • }
  • rule("Payload Fixed")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ana;
  • }
  • conditions
  • {
  • Global.PayloadFixed == True;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • Big Message(All Players(Team 2), Custom String("ESCORT THE PAYLOAD"));
  • Set Objective Description(All Players(Team 2), Custom String("ESCORT THE PAYLOAD"), Visible To and String);
  • }
  • }
  • rule("Kill OR14-NS UNITS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Distance Between(Payload Position, Vector(-101.517, 2.194, -8.275)) <= 5;
  • Is Game In Progress == True;
  • Global.PayloadFixed == True;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Destroy All Progress Bar HUD Text;
  • Wait(0.250, Ignore Condition);
  • Big Message(All Players(Team 2), Custom String("KILL THE OR14-NS UNITS"));
  • Set Objective Description(All Players(Team 2), Custom String("KILL THE OR14-NS UNITS"), Visible To and String);
  • Create HUD Text(All Players(Team 2), Null, Null, Custom String(" {0}/4 {1}\r\nELIMINATED", Global.NumberofOR14killed,
  • Icon String(Skull)), Top, 1, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Global.HUDtext = Last Text ID;
  • Destroy All Dummy Bots;
  • Global.Orisas = False;
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(Hero(Ana), Team 1, -1, Vector(-111.347, 0.825, -6.609), Vector(Empty Array, Empty Array, Empty Array));
  • Create Dummy Bot(Hero(Orisa), Team 1, -1, Vector(-147.976, -1.057, 24.536), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Orisa), Team 1, -1, Vector(-147.976, -1.057, 24.536), Vector(0, 0, 0));
  • Wait(0.250, Ignore Condition);
  • Wait(1, Ignore Condition);
  • Global.Orisas = True;
  • Create Dummy Bot(Hero(Orisa), Team 1, -1, Vector(-147.976, -1.057, 24.536), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Orisa), Team 1, -1, Vector(-147.976, -1.057, 24.536), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Bastion), Team 1, -1, Vector(-122.719, 2.321, -11.916), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Bastion), Team 1, -1, Vector(-131.052, 2.319, 30.021), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Bastion), Team 1, -1, Vector(-155.245, 1.321, 38.596), Vector(0, 0, 0));
  • Global.KillOR14 = True;
  • Set Match Time(360);
  • Unpause Match Time;
  • }
  • }
  • rule("Elims")
  • {
  • event
  • {
  • Player Died;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Orisa);
  • Global.KillOR14 == True;
  • }
  • actions
  • {
  • Global.NumberofOR14killed += 1;
  • }
  • }
  • rule("Win")
  • {
  • event
  • {
  • Player Died;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Count Of(Filtered Array(Players On Hero(Hero(Orisa), Team 1), Is Alive(Current Array Element))) == 0;
  • Global.KillOR14 == True;
  • }
  • actions
  • {
  • Start Camera(All Players(Team 2), Eye Position(Event Player) + Up, Eye Position(Event Player), 0);
  • Set Slow Motion(50);
  • Wait(1, Ignore Condition);
  • Declare Team Victory(Team 2);
  • }
  • }
  • rule("Subway bots")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(-94.559, -1.246, -46.642), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(-94.559, -1.246, -46.642), Vector(0, 0, 0));
  • }
  • }
  • rule("Outside Subway")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(-86.969, 2.274, -7.325), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(-91.223, 2.373, 3.848), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(-72.201, 1.127, 3.191), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(-71.291, 1.044, -2.007), Vector(0, 0, 0));
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Vector(-55.147, 1.250, 3.453), Vector(0, 0, 0));
  • }
  • }
  • rule("Line of Sight")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • }
  • actions
  • {
  • Event Player.LineofSight = True;
  • }
  • }
  • rule("Line of Sight")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Global.StartedCapture == True;
  • }
  • actions
  • {
  • Event Player.LineofSight = True;
  • }
  • }
  • rule("First Cap")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.StartedCapture == True;
  • Is Game In Progress == True;
  • Number Of Heroes(Hero(Baptiste), Team 1) < 5;
  • }
  • actions
  • {
  • Wait(Random Integer(0, 10), Ignore Condition);
  • Create Dummy Bot(Hero(Baptiste), Team 1, -1, Random Value In Array(Filtered Array(Global._tempNodes, !Is In Line of Sight(
  • All Players(Team 2), Current Array Element, Barriers Do Not Block LOS))), Vector(0, 0, 0));
  • Loop If(Number Of Heroes(Hero(Baptiste), Team 1) < 5);
  • }
  • }
  • rule("Insta-dead")
  • {
  • event
  • {
  • Player Died;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Hero Of(Event Player) != Hero(Orisa);
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • }
  • }
  • rule("Defeat")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Number Of Living Players(Team 2) == 0;
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("Slicer Properties")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Symmetra;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Set Max Health(Event Player, 50);
  • Start Scaling Player(Event Player, 0.700, True);
  • Set Damage Dealt(Event Player, 25);
  • Start Facing(Event Player, Direction Towards(Event Player, Payload Position), 200, To World, Direction and Turn Rate);
  • }
  • }
  • rule("Slicer Attack")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Symmetra;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Payload Position) <= 5;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • Start Holding Button(Event Player, Button(Primary Fire));
  • Chase Global Variable At Rate(PayloadHP, 0, 0.200, Destination and Rate);
  • }
  • }
  • rule("Pathfind to Payload")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Payload Position) > 5;
  • Is Dummy Bot(Event Player) == True;
  • Hero Of(Event Player) != Hero(Baptiste);
  • Hero Of(Event Player) != Hero(Brigitte);
  • Hero Of(Event Player) != Hero(Bastion);
  • Hero Of(Event Player) != Hero(Orisa);
  • Hero Of(Event Player) != Hero(Ana);
  • Hero Of(Event Player) != Hero(Zarya);
  • }
  • actions
  • {
  • Stop Holding Button(Event Player, Button(Primary Fire));
  • Stop Chasing Global Variable(PayloadHP);
  • Event Player._extendedPlayerCollection[2] = Payload Position;
  • Event Player.Dijkstra_Final_Path_0 = Empty Array;
  • Event Player.Dijkstra_Final_Path_Attributes_0 = Empty Array;
  • Event Player.Dijkstra_Current_0 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
  • Distance Between(Event Player._extendedPlayerCollection[2], Current Array Element))));
  • Event Player.Dijkstra_Distances_0[Event Player.Dijkstra_Current_0] = 0.000;
  • Event Player.Dijkstra_Unvisited_0 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
  • While(Is True For Any(Event Player.Dijkstra_Unvisited_0, Event Player.Dijkstra_Distances_0[Current Array Element] != 0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Connected_Segments_0 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
  • Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
  • Event Player.Dijkstra_Current_0));
  • Event Player._extendedPlayerCollection[3] = 0;
  • While(Event Player._extendedPlayerCollection[3] < Count Of(Event Player.Dijkstra_Connected_Segments_0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Neighbor_Index_0 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
  • Event Player.Dijkstra_Connected_Segments_0[Event Player._extendedPlayerCollection[3]])), Y Component Of(
  • Event Player.Dijkstra_Connected_Segments_0[Event Player._extendedPlayerCollection[3]])),
  • Current Array Element != Event Player.Dijkstra_Current_0));
  • Event Player.Dijkstra_Distance_0 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_0],
  • Global.Nodes[Global.map][Event Player.Dijkstra_Current_0])
  • + Event Player.Dijkstra_Distances_0[Event Player.Dijkstra_Current_0];
  • Event Player.Dijkstra_Neighbor_Attributes_0 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
  • == Event Player.Dijkstra_Current_0 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_0);
  • If((
  • Event Player.Dijkstra_Distances_0[Event Player.Dijkstra_Neighbor_Index_0] == 0 || Event Player.Dijkstra_Distance_0 < Event Player.Dijkstra_Distances_0[Event Player.Dijkstra_Neighbor_Index_0])
  • && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_0) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_0,
  • Array Contains(Null, Z Component Of(Current Array Element)))));
  • Event Player.Dijkstra_Distances_0[Event Player.Dijkstra_Neighbor_Index_0] = Event Player.Dijkstra_Distance_0;
  • Event Player.Dijkstra_Parent_Array_0[Event Player.Dijkstra_Neighbor_Index_0] = Event Player.Dijkstra_Current_0 + 1;
  • End;
  • Event Player._extendedPlayerCollection[3] += 1;
  • End;
  • Modify Player Variable(Event Player, Dijkstra_Unvisited_0, Remove From Array By Value, Event Player.Dijkstra_Current_0);
  • Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
  • Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_0, 2);
  • Event Player.Dijkstra_Current_0 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_0,
  • Event Player.Dijkstra_Distances_0[Current Array Element] != 0), Event Player.Dijkstra_Distances_0[Current Array Element]));
  • End;
  • Event Player.pathmapReference = Global.map;
  • Event Player.parentArray = Event Player.Dijkstra_Parent_Array_0;
  • Event Player.destination = Event Player._extendedPlayerCollection[2];
  • Event Player.pathfinderDoGetCurrent = True;
  • Event Player.Dijkstra_Current_0 = 0;
  • Event Player.Dijkstra_Distances_0 = 0;
  • Event Player.Dijkstra_Connected_Segments_0 = 0;
  • Event Player.Dijkstra_Neighbor_Index_0 = 0;
  • Event Player.Dijkstra_Distance_0 = 0;
  • Event Player.Dijkstra_Parent_Array_0 = 0;
  • Wait(5, Ignore Condition);
  • Loop If(Distance Between(Event Player, Payload Position) > 5);
  • }
  • }
  • rule("Payload HP DEFEAT")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.PayloadHP <= 0;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Big Message(All Players(Team 2), Custom String("PAYLOAD DESTROYED"));
  • Wait(0.250, Ignore Condition);
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("Detonator Properties")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Start Scaling Player(Event Player, 1.300, True);
  • Set Knockback Received(Event Player, 10);
  • Set Max Health(Event Player, 500);
  • Wait(0.250, Ignore Condition);
  • Set Player Health(Event Player, 3000);
  • Start Facing(Event Player, Direction Towards(Event Player, Payload Position), 200, To World, Direction and Turn Rate);
  • Set Move Speed(Event Player, 50);
  • }
  • }
  • rule("Detonator Explode")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Payload Position) <= 5;
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • Wait(1, Abort When False);
  • Play Effect(All Players(Team 2), Bad Explosion, Color(Red), Event Player, 5);
  • Global.PayloadHP -= 20;
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • }
  • }
  • rule("Bastion - Shooting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • }
  • actions
  • {
  • Start Holding Button(Event Player, Button(Primary Fire));
  • }
  • }
  • rule("Orisa - Shooting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • }
  • actions
  • {
  • Start Holding Button(Event Player, Button(Primary Fire));
  • }
  • }
  • rule("Orisa - Secondary Fire")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • Ability Cooldown(Event Player, Button(Secondary Fire)) == 0;
  • }
  • actions
  • {
  • Press Button(Event Player, Button(Secondary Fire));
  • Wait(1.500, Ignore Condition);
  • Press Button(Event Player, Button(Secondary Fire));
  • }
  • }
  • rule("Orisa - Shield")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • Ability Cooldown(Event Player, Button(Ability 2)) == 0;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Press Button(Event Player, Button(Ability 2));
  • }
  • }
  • rule("Orisa - Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • Ultimate Charge Percent(Event Player) == 100;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Press Button(Event Player, Button(Ultimate));
  • }
  • }
  • rule("Slicers")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Fixingpayload == True;
  • Number Of Heroes(Hero(Symmetra), Team 1) < 4;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Wait(Random Integer(5, 10), Ignore Condition);
  • Abort If(Global.KillOR14 == True);
  • Create Dummy Bot(Hero(Symmetra), Team 1, -1, Random Value In Array(Filtered Array(Global._tempNodes, !Is In Line of Sight(
  • All Players(Team 2), Current Array Element, Barriers Do Not Block LOS))), Vector(0, 0, 0));
  • Loop If(Number Of Heroes(Hero(Symmetra), Team 1) < 4);
  • }
  • }
  • rule("Pathfind to Setup")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Event Player.Hasult == 0;
  • Global.KillOR14 == False;
  • Distance Between(Event Player, First Of(Sorted Array(Global.SentryPos, Distance Between(Event Player, Current Array Element))))
  • > 2;
  • }
  • actions
  • {
  • Event Player._extendedPlayerCollection[4] = Random Value In Array(Global.SentryPos);
  • Event Player.Dijkstra_Final_Path_1 = Empty Array;
  • Event Player.Dijkstra_Final_Path_Attributes_1 = Empty Array;
  • Event Player.Dijkstra_Current_1 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
  • Distance Between(Event Player._extendedPlayerCollection[4], Current Array Element))));
  • Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Current_1] = 0.000;
  • Event Player.Dijkstra_Unvisited_1 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
  • While(Is True For Any(Event Player.Dijkstra_Unvisited_1, Event Player.Dijkstra_Distances_1[Current Array Element] != 0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Connected_Segments_1 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
  • Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
  • Event Player.Dijkstra_Current_1));
  • Event Player._extendedPlayerCollection[5] = 0;
  • While(Event Player._extendedPlayerCollection[5] < Count Of(Event Player.Dijkstra_Connected_Segments_1));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Neighbor_Index_1 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
  • Event Player.Dijkstra_Connected_Segments_1[Event Player._extendedPlayerCollection[5]])), Y Component Of(
  • Event Player.Dijkstra_Connected_Segments_1[Event Player._extendedPlayerCollection[5]])),
  • Current Array Element != Event Player.Dijkstra_Current_1));
  • Event Player.Dijkstra_Distance_1 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_1],
  • Global.Nodes[Global.map][Event Player.Dijkstra_Current_1])
  • + Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Current_1];
  • Event Player.Dijkstra_Neighbor_Attributes_1 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
  • == Event Player.Dijkstra_Current_1 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_1);
  • If((
  • Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Neighbor_Index_1] == 0 || Event Player.Dijkstra_Distance_1 < Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Neighbor_Index_1])
  • && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_1) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_1,
  • Array Contains(Null, Z Component Of(Current Array Element)))));
  • Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Neighbor_Index_1] = Event Player.Dijkstra_Distance_1;
  • Event Player.Dijkstra_Parent_Array_1[Event Player.Dijkstra_Neighbor_Index_1] = Event Player.Dijkstra_Current_1 + 1;
  • End;
  • Event Player._extendedPlayerCollection[5] += 1;
  • End;
  • Modify Player Variable(Event Player, Dijkstra_Unvisited_1, Remove From Array By Value, Event Player.Dijkstra_Current_1);
  • Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
  • Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_1, 2);
  • Event Player.Dijkstra_Current_1 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_1,
  • Event Player.Dijkstra_Distances_1[Current Array Element] != 0), Event Player.Dijkstra_Distances_1[Current Array Element]));
  • End;
  • Event Player.pathmapReference = Global.map;
  • Event Player.parentArray = Event Player.Dijkstra_Parent_Array_1;
  • Event Player.destination = Event Player._extendedPlayerCollection[4];
  • Event Player.pathfinderDoGetCurrent = True;
  • Event Player.Dijkstra_Current_1 = 0;
  • Event Player.Dijkstra_Distances_1 = 0;
  • Event Player.Dijkstra_Connected_Segments_1 = 0;
  • Event Player.Dijkstra_Neighbor_Index_1 = 0;
  • Event Player.Dijkstra_Distance_1 = 0;
  • Event Player.Dijkstra_Parent_Array_1 = 0;
  • }
  • }
  • rule("Setup")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, First Of(Sorted Array(Global.SentryPos, Distance Between(Event Player, Current Array Element))))
  • <= 2;
  • Is Alive(Event Player) == True;
  • Event Player.Hasult == 0;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Press Button(Event Player, Button(Ability 1));
  • }
  • }
  • rule("Bastions")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.AllTerminalsHacked == True;
  • Number Of Heroes(Hero(Bastion), Team 1) < 4;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Wait(Random Integer(10, 60), Ignore Condition);
  • Abort If(Global.KillOR14 == True);
  • Create Dummy Bot(Hero(Bastion), Team 1, -1, Random Value In Array(Filtered Array(Global._tempNodes, !Is In Line of Sight(
  • All Players(Team 2), Current Array Element, Barriers Do Not Block LOS))), Vector(0, 0, 0));
  • Loop If(Number Of Heroes(Hero(Bastion), Team 1) < 4);
  • }
  • }
  • rule("Revive")
  • {
  • event
  • {
  • Player Died;
  • Team 2;
  • All;
  • }
  • actions
  • {
  • Create Effect(All Players(Team 2), Ring, Color(Yellow), Position Of(Event Player), 3, Visible To Position and Radius);
  • Event Player.ReviveEffect = Last Created Entity;
  • Create In-World Text(All Players(Team 2), Custom String("REVIVE"), Position Of(Event Player), 1, Do Not Clip,
  • Visible To Position and String, Color(Yellow), Default Visibility);
  • Event Player.ReviveText = Last Text ID;
  • }
  • }
  • rule("Revive")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, First Of(Sorted Array(All Dead Players(Team Of(Event Player)), Distance Between(Event Player,
  • Current Array Element)))) <= 3;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Big Message(First Of(Sorted Array(All Dead Players(Team Of(Event Player)), Distance Between(Event Player, Current Array Element))),
  • Custom String("Reviving"));
  • Small Message(Event Player, Custom String("Reviving..."));
  • Wait(3, Abort When False);
  • Destroy Effect(First Of(Sorted Array(All Dead Players(Team Of(Event Player)), Distance Between(Event Player,
  • Current Array Element))).ReviveEffect);
  • Destroy In-World Text(First Of(Sorted Array(All Dead Players(Team Of(Event Player)), Distance Between(Event Player,
  • Current Array Element))).ReviveText);
  • Resurrect(First Of(Sorted Array(All Dead Players(Team Of(Event Player)), Distance Between(Event Player, Current Array Element))));
  • }
  • }
  • rule("Revive")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.ReviveEffect);
  • Destroy In-World Text(Event Player.ReviveText);
  • }
  • }
  • rule("Eradicator Properties")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Brigitte;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Start Holding Button(Event Player, Button(Secondary Fire));
  • Create Dummy Bot(Hero(Zarya), Team 1, -1, Position Of(Event Player), Vector(0, 0, 0));
  • Start Scaling Player(Event Player, 1.500, True);
  • Add Health Pool To Player(Event Player, Health, 350, True, True);
  • }
  • }
  • rule("Zarya Attach")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Zarya;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Attach Players(Event Player, First Of(Sorted Array(Players On Hero(Hero(Brigitte), Team 1), Distance Between(Event Player,
  • Current Array Element))), Event Player);
  • Current Array Element))), Vector(0, 0, 0));
  • Set Invisible(Event Player, All);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • }
  • }
  • rule("Zarya Die when Brig Die")
  • {
  • event
  • {
  • Player Died;
  • Team 1;
  • Brigitte;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Kill(First Of(Sorted Array(Filtered Array(Players On Hero(Hero(Zarya), Team 1), Hero Of(Current Array Element) != Hero(Ana)),
  • Distance Between(Event Player, Current Array Element))), Null);
  • }
  • }
  • rule("Zarya - Shooting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Zarya;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • }
  • actions
  • {
  • Start Holding Button(Event Player, Button(Secondary Fire));
  • }
  • }
  • rule("Zarya - Stop Shooting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Zarya;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == False;
  • }
  • actions
  • {
  • Wait(0.250, Abort When False);
  • Stop Holding Button(Event Player, Button(Secondary Fire));
  • }
  • }
  • rule("Create Eradicator")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Number Of Players(Team 1) <= 9;
  • Number Of Players(Team 1) < 6;
  • Count Of(Global.TerminalPosition) <= 2;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Wait(Random Integer(10, 60), Ignore Condition);
  • Abort If(Global.KillOR14 == True);
  • Create Dummy Bot(Hero(Brigitte), Team 1, -1, Random Value In Array(Filtered Array(Global._tempNodes, !Is In Line of Sight(
  • All Living Players(Team 2), Current Array Element, Barriers Do Not Block LOS))), Vector(0, 0, 0));
  • Loop If(Number Of Players(Team 1) <= 9);
  • Loop If(Number Of Players(Team 1) < 6);
  • }
  • }
  • rule("Stop When shield breaks")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Brigitte;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == False;
  • }
  • actions
  • {
  • Wait(0.250, Abort When False);
  • Stop Holding Button(Event Player, Button(Secondary Fire));
  • }
  • }
  • rule("Difficulties")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.Normal = Workshop Setting Toggle(Custom String("Difficulty"), Custom String("Normal"), True, 0);
  • Global.Hard = Workshop Setting Toggle(Custom String("Difficulty"), Custom String("Hard"), False, 0);
  • Global.Expert = Workshop Setting Toggle(Custom String("Difficulty"), Custom String("Expert"), False, 0);
  • Global.Legendary = Workshop Setting Toggle(Custom String("Difficulty"), Custom String("Legendary"), False, 0);
  • }
  • }
  • rule("Set Damage Types")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Hero Of(Event Player) != Hero(Symmetra);
  • }
  • actions
  • {
  • If(Global.Normal == True);
  • Set Damage Dealt(Event Player, 25);
  • Else If(Global.Hard == True);
  • Set Damage Dealt(Event Player, 50);
  • Else If(Global.Expert == True);
  • Set Damage Dealt(Event Player, 75);
  • Else If(Global.Legendary == True);
  • Set Damage Dealt(Event Player, 100);
  • End;
  • }
  • }
  • rule("Bastion - Properties - Tank")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Remove All Health Pools From Player(Event Player);
  • Wait(0.250, Ignore Condition);
  • Add Health Pool To Player(Event Player, Health, 450, True, True);
  • }
  • }
  • rule("Bastion - Properties - Sentry")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == False;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Remove All Health Pools From Player(Event Player);
  • Wait(0.250, Ignore Condition);
  • Add Health Pool To Player(Event Player, Health, 600, True, True);
  • }
  • }
  • rule("Orisa - Properties")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Add Health Pool To Player(Event Player, Health, 3000, True, True);
  • }
  • }
  • rule("Create Detonator")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Fixingpayload == True;
  • }
  • actions
  • {
  • Wait(Random Integer(10, 60), Ignore Condition);
  • Abort If(Global.KillOR14 == True);
  • Create Dummy Bot(Hero(Wrecking Ball), Team 1, -1, Global.SentryPos + Up + Up, Vector(0, 0, 0));
  • Loop If(Global.KillOR14 == False);
  • }
  • }
  • rule("Set Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Global.PayloadFixed == True;
  • Global.KillOR14 == False;
  • }
  • actions
  • {
  • Event Player.Hasult = 1;
  • }
  • }
  • rule("Bastion Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Event Player.Hasult == 1;
  • Global.KillOR14 == False;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Press Button(Event Player, Button(Ultimate));
  • }
  • }
  • rule("Pathfind to Player - Bastion Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • Distance Between(Event Player, First Of(Sorted Array(All Dead Players(Team Of(Event Player)), Distance Between(Event Player,
  • Current Array Element)))) > 5;
  • Event Player.Hasult == 1;
  • }
  • actions
  • {
  • Event Player._extendedPlayerCollection[6] = First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)));
  • Event Player.Dijkstra_Final_Path_2 = Empty Array;
  • Event Player.Dijkstra_Final_Path_Attributes_2 = Empty Array;
  • Event Player.Dijkstra_Current_2 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
  • Distance Between(Event Player._extendedPlayerCollection[6], Current Array Element))));
  • Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Current_2] = 0.000;
  • Event Player.Dijkstra_Unvisited_2 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
  • While(Is True For Any(Event Player.Dijkstra_Unvisited_2, Event Player.Dijkstra_Distances_2[Current Array Element] != 0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Connected_Segments_2 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
  • Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
  • Event Player.Dijkstra_Current_2));
  • Event Player._extendedPlayerCollection[7] = 0;
  • While(Event Player._extendedPlayerCollection[7] < Count Of(Event Player.Dijkstra_Connected_Segments_2));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Neighbor_Index_2 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
  • Event Player.Dijkstra_Connected_Segments_2[Event Player._extendedPlayerCollection[7]])), Y Component Of(
  • Event Player.Dijkstra_Connected_Segments_2[Event Player._extendedPlayerCollection[7]])),
  • Current Array Element != Event Player.Dijkstra_Current_2));
  • Event Player.Dijkstra_Distance_2 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_2],
  • Global.Nodes[Global.map][Event Player.Dijkstra_Current_2])
  • + Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Current_2];
  • Event Player.Dijkstra_Neighbor_Attributes_2 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
  • == Event Player.Dijkstra_Current_2 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_2);
  • If((
  • Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Neighbor_Index_2] == 0 || Event Player.Dijkstra_Distance_2 < Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Neighbor_Index_2])
  • && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_2) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_2,
  • Array Contains(Null, Z Component Of(Current Array Element)))));
  • Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Neighbor_Index_2] = Event Player.Dijkstra_Distance_2;
  • Event Player.Dijkstra_Parent_Array_2[Event Player.Dijkstra_Neighbor_Index_2] = Event Player.Dijkstra_Current_2 + 1;
  • End;
  • Event Player._extendedPlayerCollection[7] += 1;
  • End;
  • Modify Player Variable(Event Player, Dijkstra_Unvisited_2, Remove From Array By Value, Event Player.Dijkstra_Current_2);
  • Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
  • Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_2, 2);
  • Event Player.Dijkstra_Current_2 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_2,
  • Event Player.Dijkstra_Distances_2[Current Array Element] != 0), Event Player.Dijkstra_Distances_2[Current Array Element]));
  • End;
  • Event Player.pathmapReference = Global.map;
  • Event Player.parentArray = Event Player.Dijkstra_Parent_Array_2;
  • Event Player.destination = Event Player._extendedPlayerCollection[6];
  • Event Player.pathfinderDoGetCurrent = True;
  • Event Player.Dijkstra_Current_2 = 0;
  • Event Player.Dijkstra_Distances_2 = 0;
  • Event Player.Dijkstra_Connected_Segments_2 = 0;
  • Event Player.Dijkstra_Neighbor_Index_2 = 0;
  • Event Player.Dijkstra_Distance_2 = 0;
  • Event Player.Dijkstra_Parent_Array_2 = 0;
  • Wait(5, Ignore Condition);
  • Loop If(Distance Between(Event Player, First Of(Sorted Array(All Dead Players(Team Of(Event Player)), Distance Between(
  • Event Player, Current Array Element)))) > 5);
  • }
  • }
  • rule("Stop Pathfinding - Bastion Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Distance Between(
  • Event Player, Current Array Element)))) <= 5;
  • Event Player.Hasult == 1;
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • Wait(Random Integer(1, 2), Ignore Condition);
  • Start Throttle In Direction(Event Player, Direction Towards(Position Of(Event Player), Position Of(First Of(Sorted Array(
  • Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Is In Line of Sight(Event Player,
  • Current Array Element, Barriers Do Not Block LOS)), Distance Between(Event Player, Current Array Element))))
  • + Direction From Angles(Total Time Elapsed * 135, 0) * 5), 1, To World, Replace existing throttle, Direction and Magnitude);
  • Wait(Random Integer(1, 2), Ignore Condition);
  • Loop If(Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)))) <= 5);
  • }
  • }
  • rule("Setup on OR14")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Global.KillOR14 == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.500, Ignore Condition);
  • Press Button(Event Player, Button(Ability 1));
  • }
  • }
  • rule("Defeat - OR14")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Match Time <= 0;
  • Global.KillOR14 == True;
  • }
  • actions
  • {
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("Wrecking Ball Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • Press Button(Event Player, Button(Ability 1));
  • }
  • }
  • rule("Destroy Zarya if no Brig")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Zarya;
  • }
  • conditions
  • {
  • Number Of Heroes(Hero(Brigitte), Team 1) <= 0;
  • }
  • actions
  • {
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • }
  • }
  • rule("Heal over time")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.Healovertime = Workshop Setting Toggle(Custom String("Settings"), Custom String("Heal Over Time"), False, 0);
  • }
  • }
  • rule("Heal over time")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Health(Event Player) < Max Health(Event Player);
  • Global.Healovertime == True;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Start Heal Over Time(Event Player, Event Player, 9999, 20);
  • }
  • }
  • rule("Heal over time")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Health(Event Player) == Max Health(Event Player);
  • Global.Healovertime == True;
  • }
  • actions
  • {
  • Stop All Heal Over Time(Event Player);
  • }
  • }
  • rule("All Heroes")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Workshop Setting Toggle(Custom String("Settings"), Custom String("All Heroes"), False, 0) == True;
  • }
  • actions
  • {
  • Set Player Allowed Heroes(Event Player, All Heroes);
  • }
  • }
  • rule("Detonator go into ball")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Wrecking Ball;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Wait(3, Ignore Condition);
  • Wait(4.500, Ignore Condition);
  • Press Button(Event Player, Button(Ability 1));
  • }
  • }
  • rule("Insta-dead - Orisa")
  • {
  • event
  • {
  • Player Died;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • }
  • }
  • rule("Create Eradicator at this place lol")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Count Of(Global.TerminalPosition) == 2;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Brigitte), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
  • }
  • }
  • rule("anti crash")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.antiCrashActivated == False;
  • Server Load > 200;
  • }
  • actions
  • {
  • Wait(1, Abort When False);
  • Set Slow Motion(10);
  • Global.antiCrashActivated = True;
  • }
  • }
  • rule("disable anti crash")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.antiCrashActivated == True;
  • Server Load < 175;
  • }
  • actions
  • {
  • Set Slow Motion(100);
  • Global.antiCrashActivated = False;
  • }
  • }
  • rule("Scoring - Normal")
  • {
  • event
  • {
  • Player Dealt Final Blow;
  • Team 2;
  • All;
  • }
  • conditions
  • {
  • Global.Normal == True;
  • }
  • actions
  • {
  • If(Hero Of(Victim) == Hero(Baptiste));
  • Global.Score += 12.500;
  • Else If(Hero Of(Victim) == Hero(Brigitte));
  • Global.Score += 50;
  • Else If(Hero Of(Victim) == Hero(Symmetra));
  • Global.Score += 12.500;
  • Else If(Hero Of(Victim) == Hero(Wrecking Ball));
  • Global.Score += 62.500;
  • Else If(Hero Of(Victim) == Hero(Bastion));
  • Global.Score += 125;
  • Else If(Hero Of(Victim) == Hero(Orisa));
  • Global.Score += 125;
  • End;
  • }
  • }
  • rule("Scoring HUD")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create HUD Text(All Players(Team 2), Null, Null, Custom String("Team Score: {0}", Round To Integer(Global.Score, To Nearest)),
  • Left, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • }
  • }
  • rule("Repair - Bastion")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Bastion;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • If(Health(Event Player) < Max Health(Event Player));
  • If(Is Moving(Event Player) == False);
  • If(Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == False);
  • Start Holding Button(Event Player, Button(Secondary Fire));
  • Else;
  • Stop Holding Button(Event Player, Button(Secondary Fire));
  • End;
  • Else If(Is Moving(Event Player) == True);
  • Start Holding Button(Event Player, Button(Secondary Fire));
  • Else;
  • Stop Holding Button(Event Player, Button(Secondary Fire));
  • End;
  • Else If(Health(Event Player) == Max Health(Event Player));
  • Stop Holding Button(Event Player, Button(Secondary Fire));
  • End;
  • Wait(0.250, Ignore Condition);
  • Loop If(Is Using Ultimate(Event Player) == False);
  • }
  • }
  • rule("OR-14 Pathfind first 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Global.Orisas == False;
  • Distance Between(Event Player, First Of(Sorted Array(All Living Players(Team Of(Event Player)), Distance Between(Event Player,
  • Current Array Element)))) > 5;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Event Player._extendedPlayerCollection[8] = First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)));
  • Event Player.Dijkstra_Final_Path_3 = Empty Array;
  • Event Player.Dijkstra_Final_Path_Attributes_3 = Empty Array;
  • Event Player.Dijkstra_Current_3 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
  • Distance Between(Event Player._extendedPlayerCollection[8], Current Array Element))));
  • Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Current_3] = 0.000;
  • Event Player.Dijkstra_Unvisited_3 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
  • While(Is True For Any(Event Player.Dijkstra_Unvisited_3, Event Player.Dijkstra_Distances_3[Current Array Element] != 0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Connected_Segments_3 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
  • Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
  • Event Player.Dijkstra_Current_3));
  • Event Player._extendedPlayerCollection[9] = 0;
  • While(Event Player._extendedPlayerCollection[9] < Count Of(Event Player.Dijkstra_Connected_Segments_3));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Neighbor_Index_3 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
  • Event Player.Dijkstra_Connected_Segments_3[Event Player._extendedPlayerCollection[9]])), Y Component Of(
  • Event Player.Dijkstra_Connected_Segments_3[Event Player._extendedPlayerCollection[9]])),
  • Current Array Element != Event Player.Dijkstra_Current_3));
  • Event Player.Dijkstra_Distance_3 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_3],
  • Global.Nodes[Global.map][Event Player.Dijkstra_Current_3])
  • + Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Current_3];
  • Event Player.Dijkstra_Neighbor_Attributes_3 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
  • == Event Player.Dijkstra_Current_3 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_3);
  • If((
  • Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Neighbor_Index_3] == 0 || Event Player.Dijkstra_Distance_3 < Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Neighbor_Index_3])
  • && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_3) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_3,
  • Array Contains(Null, Z Component Of(Current Array Element)))));
  • Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Neighbor_Index_3] = Event Player.Dijkstra_Distance_3;
  • Event Player.Dijkstra_Parent_Array_3[Event Player.Dijkstra_Neighbor_Index_3] = Event Player.Dijkstra_Current_3 + 1;
  • End;
  • Event Player._extendedPlayerCollection[9] += 1;
  • End;
  • Modify Player Variable(Event Player, Dijkstra_Unvisited_3, Remove From Array By Value, Event Player.Dijkstra_Current_3);
  • Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
  • Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_3, 2);
  • Event Player.Dijkstra_Current_3 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_3,
  • Event Player.Dijkstra_Distances_3[Current Array Element] != 0), Event Player.Dijkstra_Distances_3[Current Array Element]));
  • End;
  • Event Player.pathmapReference = Global.map;
  • Event Player.parentArray = Event Player.Dijkstra_Parent_Array_3;
  • Event Player.destination = Event Player._extendedPlayerCollection[8];
  • Event Player.pathfinderDoGetCurrent = True;
  • Event Player.Dijkstra_Current_3 = 0;
  • Event Player.Dijkstra_Distances_3 = 0;
  • Event Player.Dijkstra_Connected_Segments_3 = 0;
  • Event Player.Dijkstra_Neighbor_Index_3 = 0;
  • Event Player.Dijkstra_Distance_3 = 0;
  • Event Player.Dijkstra_Parent_Array_3 = 0;
  • Wait(5, Ignore Condition);
  • Loop If(Distance Between(Event Player, First Of(Sorted Array(All Living Players(Team Of(Event Player)), Distance Between(
  • Event Player, Current Array Element)))) > 5);
  • }
  • }
  • rule("OR-14 Pathfind last 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Orisa;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Global.Orisas == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • Distance Between(Event Player, First Of(Sorted Array(All Living Players(Team Of(Event Player)), Distance Between(Event Player,
  • Current Array Element)))) > 5;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Event Player._extendedPlayerCollection[10] = First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)));
  • Event Player.Dijkstra_Final_Path_4 = Empty Array;
  • Event Player.Dijkstra_Final_Path_Attributes_4 = Empty Array;
  • Event Player.Dijkstra_Current_4 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
  • Distance Between(Event Player._extendedPlayerCollection[10], Current Array Element))));
  • Event Player.Dijkstra_Distances_4[Event Player.Dijkstra_Current_4] = 0.000;
  • Event Player.Dijkstra_Unvisited_4 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
  • While(Is True For Any(Event Player.Dijkstra_Unvisited_4, Event Player.Dijkstra_Distances_4[Current Array Element] != 0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Connected_Segments_4 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
  • Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
  • Event Player.Dijkstra_Current_4));
  • Event Player._extendedPlayerCollection[11] = 0;
  • While(Event Player._extendedPlayerCollection[11] < Count Of(Event Player.Dijkstra_Connected_Segments_4));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Neighbor_Index_4 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
  • Event Player.Dijkstra_Connected_Segments_4[Event Player._extendedPlayerCollection[11]])), Y Component Of(
  • Event Player.Dijkstra_Connected_Segments_4[Event Player._extendedPlayerCollection[11]])),
  • Current Array Element != Event Player.Dijkstra_Current_4));
  • Event Player.Dijkstra_Distance_4 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_4],
  • Global.Nodes[Global.map][Event Player.Dijkstra_Current_4])
  • + Event Player.Dijkstra_Distances_4[Event Player.Dijkstra_Current_4];
  • Event Player.Dijkstra_Neighbor_Attributes_4 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
  • == Event Player.Dijkstra_Current_4 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_4);
  • If((
  • Event Player.Dijkstra_Distances_4[Event Player.Dijkstra_Neighbor_Index_4] == 0 || Event Player.Dijkstra_Distance_4 < Event Player.Dijkstra_Distances_4[Event Player.Dijkstra_Neighbor_Index_4])
  • && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_4) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_4,
  • Array Contains(Null, Z Component Of(Current Array Element)))));
  • Event Player.Dijkstra_Distances_4[Event Player.Dijkstra_Neighbor_Index_4] = Event Player.Dijkstra_Distance_4;
  • Event Player.Dijkstra_Parent_Array_4[Event Player.Dijkstra_Neighbor_Index_4] = Event Player.Dijkstra_Current_4 + 1;
  • End;
  • Event Player._extendedPlayerCollection[11] += 1;
  • End;
  • Modify Player Variable(Event Player, Dijkstra_Unvisited_4, Remove From Array By Value, Event Player.Dijkstra_Current_4);
  • Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
  • Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_4, 2);
  • Event Player.Dijkstra_Current_4 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_4,
  • Event Player.Dijkstra_Distances_4[Current Array Element] != 0), Event Player.Dijkstra_Distances_4[Current Array Element]));
  • End;
  • Event Player.pathmapReference = Global.map;
  • Event Player.parentArray = Event Player.Dijkstra_Parent_Array_4;
  • Event Player.destination = Event Player._extendedPlayerCollection[10];
  • Event Player.pathfinderDoGetCurrent = True;
  • Event Player.Dijkstra_Current_4 = 0;
  • Event Player.Dijkstra_Distances_4 = 0;
  • Event Player.Dijkstra_Connected_Segments_4 = 0;
  • Event Player.Dijkstra_Neighbor_Index_4 = 0;
  • Event Player.Dijkstra_Distance_4 = 0;
  • Event Player.Dijkstra_Parent_Array_4 = 0;
  • Wait(5, Ignore Condition);
  • Loop If(Distance Between(Event Player, First Of(Sorted Array(All Living Players(Team Of(Event Player)), Distance Between(
  • Event Player, Current Array Element)))) > 5);
  • }
  • }
  • rule("OR-14 Pathfind last 2")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.CreateSelfPromotionText == False;
  • }
  • actions
  • {
  • Big Message(All Players(All Teams), Custom String("This version is not legitimate!"));
  • Small Message(All Players(All Teams), Custom String("MESSAGE WAITEDBOAT4#7816 AND REPORT THE CODE"));
  • Play Effect(All Players(All Teams), Buff Explosion Sound, Color(White), All Players(All Teams), 200);
  • Set Status(All Players(All Teams), Null, Rooted, 9999);
  • Wait(0.250, Ignore Condition);
  • Loop;
  • }
  • }
Join the Workshop.codes Discord