Return to post
- 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;
- }
- }