Return to post
- settings
- {
- main
- {
Description: "Junkenstein: The Hidden Truth PVE - made by Waitedboat4#2760 - v3.2: Mercy Circles Pocket"
- Description: "Junkenstein: The Hidden Truth PVE - made by Waitedboat4#2760 - Work In Progress"
- }
- lobby
- {
- Max Team 1 Players: 4
- Max Team 2 Players: 0
Return To Lobby: Never
- }
- modes
- {
- Assault
- {
- enabled maps
- {
- }
- }
- Control
- {
- enabled maps
- {
- }
- }
- Escort
- {
- enabled maps
- {
- }
- }
- Hybrid
- {
- enabled maps
- {
- }
- }
- Team Deathmatch
- {
Game Length In Minutes: 15
- Mercy Resurrect Counteracts Kills: Off
- Self Initiated Respawn: Off
- enabled maps
- {
- Château Guillard Halloween
- }
- }
- General
- {
- Allow Hero Switching: Off
Game Mode Start: Immediately
- Kill Cam: Off
- Spawn Health Packs: Disabled
- }
- }
- heroes
- {
- Team 2
- {
- Junkrat
- {
- No Ammunition Requirement: On
- Ultimate Ability RIP-Tire: Off
- }
- Mercy
- {
- Weapons Enabled: Caduceus Staff Only
- }
- Symmetra
- {
- Spawn With Ultimate Ready: On
- }
- Zarya
- {
- Health: 40%
- }
- Zenyatta
- {
- Movement Speed: 65%
- }
- }
- }
- }
- variables
- {
- global:
- 0: _extendedGlobalCollection
- 2: Nodes
- 3: Segments
- 4: Attributes
- 5: UndeadSpawnPoints
- 6: map
- 7: _classIndexes
- 8: _tempNodes
- 9: _tempSegments
10: _tempAttributes
- 10: DoorHealth
- 11: TeamScore
12: Health
- 12: DocumentsHealth
- 13: Junkdiff
- 14: Reapdiff
- 15: Mondiff
- 16: Sumdiff
- 17: Witchdiff
18: CurrentPoint
19: PointChange
20: TargetPoint
- 21: Reaperintro
- 22: Monintro
- 23: Junkintro
- 24: Sumintro
- 25: Witchintro
- 26: NumberofZomnics
- 27: Effects
28: PlayerSpeaking
29: Stopspawningzomnics
30: HealthText
31: LastPoint
32: LastLastPoint
33: CurrentMission
- 34: NumberofZombardiers
35: Objectivedescription
- 36: RevengeIntro
38: CurrentBonusKills
- 50: Normal
- 51: Hard
- 52: Expert
- 53: Legendary
62: Kills
- player:
- 0: _extendedPlayerCollection
- 1: PathIndex
- 2: ZomnicPath
- 3: pathfinderDoGetCurrent
- 4: Finishedpath
- 5: pathmapReference
6: Scoreboard
- 6: parentArray
- 7: destination
- 8: lastAttribute
- 9: Dijkstra_Final_Path
10: parentArray
- 10: Dijkstra_Final_Path_Attributes
- 11: Dijkstra_Current
- 12: Dijkstra_Distances
- 13: Dijkstra_Unvisited
- 14: Dijkstra_Connected_Segments
- 15: Dijkstra_Neighbor_Index
- 16: Dijkstra_Distance
- 17: Dijkstra_Neighbor_Attributes
- 18: Dijkstra_Parent_Array
- 19: Invis
20: FarIcon
- 23: Dijkstra_Final_Path_0
- 24: Dijkstra_Final_Path_Attributes_0
- 25: Dijkstra_Current_0
- 26: Dijkstra_Distances_0
- 27: Dijkstra_Unvisited_0
- 28: Dijkstra_Connected_Segments_0
- 29: Dijkstra_Neighbor_Index_0
- 30: Dijkstra_Distance_0
- 31: Dijkstra_Neighbor_Attributes_0
- 32: Dijkstra_Parent_Array_0
- 33: Dijkstra_Final_Path_1
- 34: Dijkstra_Final_Path_Attributes_1
- 35: Dijkstra_Current_1
- 36: Dijkstra_Distances_1
- 37: Dijkstra_Unvisited_1
- 38: Dijkstra_Connected_Segments_1
- 39: Dijkstra_Neighbor_Index_1
- 40: Dijkstra_Distance_1
- 41: Dijkstra_Neighbor_Attributes_1
- 42: Dijkstra_Parent_Array_1
- 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
- }
rule("Me")
{
event
{
Ongoing - Each Player;
All;
All;
}
actions
{
Create HUD Text(Event Player, Null, Custom String("https://workshop.codes/hiddentruth"), Null, Right, 0, White, Green, Green,
Visible To and String, Default Visibility);
Create HUD Text(Event Player, Null, Null, Custom String("Created by Waitedboat4#2760\r"), Right, 0, White, White, Green,
Visible To and String, Default Visibility);
}
}
rule("Set Spawn")
{
event
{
Ongoing - Global;
}
conditions
{
(Is Waiting For Players || Is Game In Progress) == True;
}
actions
{
Global.CurrentPoint = Vector(181.170, 10.550, 101.947);
Global.TargetPoint = Vector(177.611, 10.551, 102.304);
Global.CurrentMission = Custom String("Defend The Documents");
}
}
- 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(180.730, 9, 102.110));
Modify Global Variable(_tempNodes, Append To Array, Vector(193.440, 8, 101.900));
Modify Global Variable(_tempNodes, Append To Array, Vector(205.990, 8.030, 101.580));
Modify Global Variable(_tempNodes, Append To Array, Vector(211.630, 8, 103.350));
Modify Global Variable(_tempNodes, Append To Array, Vector(211.900, 8, 100.180));
Modify Global Variable(_tempNodes, Append To Array, Vector(215.880, 8, 100.080));
Modify Global Variable(_tempNodes, Append To Array, Vector(216.250, 8, 95.850));
Modify Global Variable(_tempNodes, Append To Array, Vector(206.640, 9.030, 95.570));
Modify Global Variable(_tempNodes, Append To Array, Vector(194.980, 8, 95.620));
Modify Global Variable(_tempNodes, Append To Array, Vector(194.940, 8, 93.070));
Modify Global Variable(_tempNodes, Append To Array, Vector(219.490, 6, 103.640));
Modify Global Variable(_tempNodes, Append To Array, Vector(229.360, 4, 104.100));
Modify Global Variable(_tempNodes, Append To Array, Vector(229.010, 4, 114.780));
Modify Global Variable(_tempNodes, Append To Array, Vector(236.410, 4, 114.140));
Modify Global Variable(_tempNodes, Append To Array, Vector(237.220, 4, 104.860));
Modify Global Variable(_tempNodes, Append To Array, Vector(236.590, 2, 90.040));
Modify Global Variable(_tempNodes, Append To Array, Vector(219.280, 2, 90.620));
Modify Global Variable(_tempNodes, Append To Array, Vector(219.660, 1, 81.500));
Modify Global Variable(_tempNodes, Append To Array, Vector(219.660, 1.060, 76.060));
Modify Global Variable(_tempNodes, Append To Array, Vector(209.020, Empty Array, 80.850));
Modify Global Variable(_tempNodes, Append To Array, Vector(209.430, 0.040, 74.350));
Modify Global Variable(_tempNodes, Append To Array, Vector(203.050, Empty Array, 74.880));
Modify Global Variable(_tempNodes, Append To Array, Vector(202.650, Empty Array, 81.650));
Modify Global Variable(_tempNodes, Append To Array, Vector(197.010, 1, 81.460));
Modify Global Variable(_tempNodes, Append To Array, Vector(197.430, 1, 75.070));
Modify Global Variable(_tempNodes, Append To Array, Vector(186.200, 1, 80.660));
Modify Global Variable(_tempNodes, Append To Array, Vector(187.300, 1, 92.590));
Modify Global Variable(_tempNodes, Append To Array, Vector(176.300, 5, 92.530));
Modify Global Variable(_tempNodes, Append To Array, Vector(175.810, 5, 76.560));
Modify Global Variable(_tempNodes, Append To Array, Vector(170.110, 5, 76.990));
Modify Global Variable(_tempNodes, Append To Array, Vector(171.310, 5, 85.390));
Modify Global Variable(_tempNodes, Append To Array, Vector(176.140, 5, 85.800));
Modify Global Variable(_tempNodes, Append To Array, Vector(173.140, 5, 76.200));
Modify Global Variable(_tempNodes, Append To Array, Vector(172.940, 7, 66.550));
Modify Global Variable(_tempNodes, Append To Array, Vector(173.400, 7, 56.770));
Modify Global Variable(_tempNodes, Append To Array, Vector(183.160, 8, 56.120));
Modify Global Variable(_tempNodes, Append To Array, Vector(183.870, 8, 64.480));
Modify Global Variable(_tempNodes, Append To Array, Vector(183.580, 6, 76.120));
Modify Global Variable(_tempNodes, Append To Array, Vector(185.690, 6, 75.440));
Modify Global Variable(_tempNodes, Append To Array, Vector(185.220, 6, 85.950));
Modify Global Variable(_tempNodes, Append To Array, Vector(187.970, 6, 92.680));
Modify Global Variable(_tempNodes, Append To Array, Vector(188.430, 6, 80.900));
Modify Global Variable(_tempNodes, Append To Array, Vector(188.660, 8, 63.910));
Modify Global Variable(_tempNodes, Append To Array, Vector(200.580, 8, 62.950));
Modify Global Variable(_tempNodes, Append To Array, Vector(200.910, 8, 51.080));
Modify Global Variable(_tempNodes, Append To Array, Vector(211.040, 8, 51.090));
Modify Global Variable(_tempNodes, Append To Array, Vector(210.620, 8, 62.100));
Modify Global Variable(_tempNodes, Append To Array, Vector(220.950, 9, 62.570));
Modify Global Variable(_tempNodes, Append To Array, Vector(221.420, 8, 76.320));
Modify Global Variable(_tempNodes, Append To Array, Vector(220.210, 8, 81.270));
Modify Global Variable(_tempNodes, Append To Array, Vector(206.510, 9, 81.220));
Modify Global Variable(_tempNodes, Append To Array, Vector(206.520, 8, 62.720));
Modify Global Variable(_tempNodes, Append To Array, Vector(208.960, 8.050, 48.160));
Modify Global Variable(_tempNodes, Append To Array, Vector(208.050, 8, 52.020));
Modify Global Variable(_tempNodes, Append To Array, Vector(208.200, 9, 44.880));
Modify Global Variable(_tempNodes, Append To Array, Vector(217.610, 12, 45.250));
Modify Global Variable(_tempNodes, Append To Array, Vector(216.940, 14, 61.590));
Modify Global Variable(_tempNodes, Append To Array, Vector(228.900, 13, 62.170));
Modify Global Variable(_tempNodes, Append To Array, Vector(230, 9, 77.460));
Modify Global Variable(_tempNodes, Append To Array, Vector(193.270, 1, 75.860));
Modify Global Variable(_tempNodes, Append To Array, Vector(193.850, 1, 68.560));
Modify Global Variable(_tempNodes, Append To Array, Vector(188.080, 1, 69.290));
Modify Global Variable(_tempNodes, Append To Array, Vector(188.390, 3, 52.500));
Modify Global Variable(_tempNodes, Append To Array, Vector(196.690, 16.500, 51.100));
Modify Global Variable(_tempNodes, Append To Array, Vector(196.430, 16.500, 46.590));
Modify Global Variable(_tempNodes, Append To Array, Vector(212.660, 16.500, 47.750));
Modify Global Variable(_tempNodes, Append To Array, Vector(205.270, 8, 110.280));
Modify Global Variable(_tempNodes, Append To Array, Vector(192.890, 9, 110.840));
Modify Global Variable(_tempSegments, Append To Array, Vector(21, 22, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(21, 19, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(21, 20, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(22, 19, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(22, 20, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(19, 20, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(25, 26, Empty Array));
- Global.DoorHealth = Empty Array;
- Modify Global Variable(_tempNodes, Append To Array, Vector(237.620, 2, 93.040));
- Modify Global Variable(_tempNodes, Append To Array, Vector(220.050, 2, 90.620));
- Modify Global Variable(_tempNodes, Append To Array, Vector(237.910, 4, 104.170));
- Modify Global Variable(_tempNodes, Append To Array, Vector(236.080, 4, 114.150));
- Modify Global Variable(_tempNodes, Append To Array, Vector(229.270, 4, 114.350));
- Modify Global Variable(_tempNodes, Append To Array, Vector(229.840, 4, 104.010));
- Modify Global Variable(_tempNodes, Append To Array, Vector(219.150, 6, 104.930));
- Modify Global Variable(_tempNodes, Append To Array, Vector(212.860, 8, 102.650));
- Modify Global Variable(_tempNodes, Append To Array, Vector(206.780, 8.030, 102.810));
- Modify Global Variable(_tempNodes, Append To Array, Vector(194.700, 8, 102.580));
- Modify Global Variable(_tempNodes, Append To Array, Vector(194.970, 8, 95.100));
- Modify Global Variable(_tempNodes, Append To Array, Vector(205.900, 9.030, 95.520));
- Modify Global Variable(_tempNodes, Append To Array, Vector(216.640, 8, 95.190));
- Modify Global Variable(_tempNodes, Append To Array, Vector(213.010, 8, 100.500));
- Modify Global Variable(_tempNodes, Append To Array, Vector(216.260, 8, 100.190));
- Modify Global Variable(_tempNodes, Append To Array, Vector(193.110, 9, 111.320));
- Modify Global Variable(_tempNodes, Append To Array, Vector(206.410, 8, 110.220));
- Modify Global Variable(_tempNodes, Append To Array, Vector(181.260, 9, 102.090));
- Modify Global Variable(_tempNodes, Append To Array, Vector(187.110, 6, 92.870));
- Modify Global Variable(_tempNodes, Append To Array, Vector(186.540, 6, 85.440));
- Modify Global Variable(_tempNodes, Append To Array, Vector(187, 6, 80.710));
- Modify Global Variable(_tempNodes, Append To Array, Vector(186.090, 6, 75.310));
- Modify Global Variable(_tempNodes, Append To Array, Vector(183.060, 6, 75.700));
- Modify Global Variable(_tempNodes, Append To Array, Vector(183.890, 8, 64.340));
- Modify Global Variable(_tempNodes, Append To Array, Vector(199.870, 8, 63.660));
- Modify Global Variable(_tempNodes, Append To Array, Vector(201.130, 8, 51.650));
- Modify Global Variable(_tempNodes, Append To Array, Vector(211.440, 8, 52.500));
- Modify Global Variable(_tempNodes, Append To Array, Vector(210.220, 8, 62.320));
- Modify Global Variable(_tempNodes, Append To Array, Vector(206.720, 8, 63.350));
- Modify Global Variable(_tempNodes, Append To Array, Vector(206.890, 9, 80.450));
- Modify Global Variable(_tempNodes, Append To Array, Vector(221.250, 8, 80.570));
- Modify Global Variable(_tempNodes, Append To Array, Vector(221.300, 8, 76.820));
- Modify Global Variable(_tempNodes, Append To Array, Vector(221.320, 9, 61.450));
- Modify Global Variable(_tempNodes, Append To Array, Vector(228.720, 9, 76.620));
- Modify Global Variable(_tempNodes, Append To Array, Vector(229.120, 13, 62.380));
- Modify Global Variable(_tempNodes, Append To Array, Vector(216.910, 14, 61.530));
- Modify Global Variable(_tempNodes, Append To Array, Vector(216.480, 12, 44.560));
- Modify Global Variable(_tempNodes, Append To Array, Vector(208.090, 9, 44.450));
- Modify Global Variable(_tempNodes, Append To Array, Vector(207.240, 8, 52.270));
- Modify Global Variable(_tempNodes, Append To Array, Vector(181.750, 8, 56.170));
- Modify Global Variable(_tempNodes, Append To Array, Vector(173.790, 7, 55.670));
- Modify Global Variable(_tempNodes, Append To Array, Vector(173.490, 5, 76.080));
- Modify Global Variable(_tempNodes, Append To Array, Vector(170, 5, 75.930));
- Modify Global Variable(_tempNodes, Append To Array, Vector(170.500, 5, 84.750));
- Modify Global Variable(_tempNodes, Append To Array, Vector(176.650, 5, 86.280));
- Modify Global Variable(_tempNodes, Append To Array, Vector(177.010, 5, 92.960));
- Modify Global Variable(_tempNodes, Append To Array, Vector(187.230, 1, 92.530));
- Modify Global Variable(_tempNodes, Append To Array, Vector(186.940, 1, 81.130));
- Modify Global Variable(_tempNodes, Append To Array, Vector(194.100, 1, 80.730));
- Modify Global Variable(_tempNodes, Append To Array, Vector(193.210, 1, 69.020));
- Modify Global Variable(_tempNodes, Append To Array, Vector(188.880, 1, 68.720));
- Modify Global Variable(_tempNodes, Append To Array, Vector(188.460, 3, 51.770));
- Modify Global Variable(_tempNodes, Append To Array, Vector(196.310, 16.500, 52.180));
- Modify Global Variable(_tempNodes, Append To Array, Vector(196.630, 16.500, 47.060));
- Modify Global Variable(_tempNodes, Append To Array, Vector(220.160, 1, 80.430));
- Modify Global Variable(_tempNodes, Append To Array, Vector(218.560, 1.040, 75.820));
- Modify Global Variable(_tempNodes, Append To Array, Vector(193.280, 1, 73.770));
- Modify Global Variable(_tempSegments, Append To Array, Vector(48, 56, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(56, 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(52, 25, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(25, 38, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(38, 26, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(26, 27, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(27, 31, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(31, 28, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(28, 32, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(32, 29, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(29, 30, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(30, 31, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(31, 39, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(39, 40, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(39, 41, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(41, 38, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(27, 28, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(28, 24, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(24, 25, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(38, 37, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(37, 36, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(36, 42, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(42, 43, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(41, 23, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(23, 22, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(23, 59, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(23, 25, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(24, 23, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(59, 24, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(24, 21, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(21, 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(20, 18, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(18, 17, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(17, 16, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(16, 10, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(10, 3, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(10, 11, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(11, 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(14, 13, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(13, 12, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(12, 11, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(12, 66, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(66, 67, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(67, 1, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(1, 2, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(36, 35, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(35, 34, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(34, 33, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(33, 31, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(31, 30, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(30, 29, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(29, 28, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(27, 32, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(32, 31, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Left);
- Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 2, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(2, 3, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(3, 4, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(4, 5, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(5, 2, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(5, 6, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(14, 12, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(12, 11, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(11, 10, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(6, 7, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(7, 13, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(13, 14, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(7, 8, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(8, 9, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(9, 40, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(8, 1, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Left);
Modify Global Variable(_tempSegments, Append To Array, Vector(2, 7, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(2, 66, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(17, 19, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(62, 63, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(63, 64, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(64, 65, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(63, 44, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(44, 43, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(43, 51, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(51, 46, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(46, 45, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(45, 53, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(53, 52, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(52, 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, 58, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(58, 48, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(48, 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(8, 11, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(8, 16, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(16, 15, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(15, 9, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(9, 8, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(7, 9, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(9, 10, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(9, 17, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(10, 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(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(53, 44, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(36, 35, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(35, 34, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(34, 33, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(33, 32, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(37, 28, Empty Array));
Modify Global Variable(_tempSegments, Append To Array, Vector(62, 42, Empty Array));
Modify Global Variable(_tempAttributes, Append To Array, Vector(23, 41, 1));
Modify Global Variable(_tempAttributes, Append To Array, Vector(44, 63, 1));
Modify Global Variable(_tempAttributes, Append To Array, Vector(62, 42, 1));
- Modify Global Variable(_tempSegments, Append To Array, Vector(20, 21, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(21, 22, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(22, 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(44, 19, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(19, 48, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(48, 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(54, 1, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(1, 6, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(22, 23, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(23, 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(23, 24, Empty Array));
- Modify Global Variable(DoorHealth, Append To Array, Vector(25, 52, 1));
- Global.Nodes[Global._extendedGlobalCollection[1]] = Global._tempNodes;
- Global.Segments[Global._extendedGlobalCollection[1]] = Global._tempSegments;
Global.Attributes[Global._extendedGlobalCollection[1]] = Global._tempAttributes;
- Global.Attributes[Global._extendedGlobalCollection[1]] = Global.DoorHealth;
- Global.map = Global._extendedGlobalCollection[1];
- }
- }
- rule("Disable Global")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Disable Built-In Game Mode Announcer;
- Disable Built-In Game Mode Completion;
- Disable Built-In Game Mode Scoring;
Wait(1, Ignore Condition);
Big Message(All Players(Team 1), Custom String("DEFEND THE DOCUMENTS!"));
Global.Stopspawningzomnics = False;
Global.LastLastPoint = False;
- Disable Built-In Game Mode Music;
- }
- }
- rule("Disable Player")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
- Disable Game Mode HUD(Event Player);
- Disable Game Mode In-World UI(Event Player);
- }
- }
- rule("Player Spawn")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Has Spawned(Event Player) == True;
- Is Alive(Event Player) == True;
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
Teleport(Event Player, Global.CurrentPoint);
Set Facing(Event Player, Global.CurrentPoint + Forward, To World);
- Teleport(Event Player, Vector(181.465, 10.550, 102.313));
- Set Facing(Event Player, Vector(185.071, 10.550, 102.394), To World);
- }
- }
- rule("Undead Spawn Area")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
Global.UndeadSpawnPoints = Array(Vector(234.901, 5.550, 106.058), Vector(234.456, 3.550, 90.082), Vector(193.474, 10.550, 113.696),
Vector(218.414, 12.455, 45.828), Vector(174.689, 7.455, 56.794));
Global.Health = Workshop Setting Integer(Custom String("Settings"), Custom String("Documents Health"), 2000, 80, 9999999);
- Global.UndeadSpawnPoints = Array(Vector(234.901, 5.550, 106.058), Vector(234.456, 3.550, 90.082), Vector(193.474, 10.550,
- 113.696));
- Global.DocumentsHealth = Workshop Setting Integer(Custom String("Settings"), Custom String("Documents Health"), 2000, 80, 9999999);
- }
- }
- rule("Create Zomnics")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Number of Heroes(Hero(Zenyatta), Team 2) < Global.NumberofZomnics;
Global.PointChange == False;
Global.Stopspawningzomnics == False;
- }
- actions
- {
Wait(Random Integer(0, 5), Ignore Condition);
Abort If(Global.Stopspawningzomnics == True);
Abort If(Global.PointChange == True);
- Wait(Random Integer(1, 5), Ignore Condition);
- Create Dummy Bot(Hero(Zenyatta), Team 2, -1, Random Value In Array(Global.UndeadSpawnPoints), Vector(Empty Array, Empty Array,
- Empty Array));
- Loop If(Number of Heroes(Hero(Zenyatta), Team 2) < Global.NumberofZomnics);
- }
- }
- rule("Pathfind to Documents")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zenyatta;
- }
- conditions
- {
Is Alive(Event Player) == True;
- Is Dummy Bot(Event Player) == True;
Distance Between(Event Player, Global.TargetPoint) > 2;
Global.PointChange == False;
Global.Stopspawningzomnics == False;
- Has Spawned(Event Player) == True;
- Is Alive(Event Player) == True;
- Distance Between(Event Player, Vector(178.266, 10.700, 101.919)) > 2;
- }
- actions
- {
Start Facing(Event Player, Direction Towards(Event Player, Event Player._extendedPlayerCollection[2]), 200, To World,
- Start Throttle In Direction(Event Player, Direction Towards(Event Player, Event Player.ZomnicPath[Event Player.PathIndex]), 1,
- To World, Replace existing throttle, Direction and Magnitude);
- Start Facing(Event Player, Direction Towards(Event Player, Event Player.ZomnicPath[Event Player.PathIndex]), 200, To World,
- Direction and Turn Rate);
Event Player._extendedPlayerCollection[2] = Global.TargetPoint;
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.Scoreboard = 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;
- }
- }
- rule("Change Index")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zenyatta;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Distance Between(Event Player, Event Player.ZomnicPath[Event Player.PathIndex]) <= 1;
- Event Player.PathIndex < Count Of(Event Player.ZomnicPath);
- Is Alive(Event Player) == True;
- }
- actions
- {
- Event Player.PathIndex += 1;
- }
- }
- rule("Documents Explode")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zenyatta;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player) == True;
Distance Between(Event Player, Global.TargetPoint) <= 2;
- Distance Between(Event Player, Vector(178.266, 10.700, 101.919)) <= 2;
- }
- actions
- {
- Stop Throttle In Direction(Event Player);
- Stop Facing(Event Player);
- Set Status(Event Player, Null, Stunned, 1);
- Wait(1, Abort When False);
- Play Effect(All Players(All Teams), Good Explosion, Red, Event Player, 5);
- Damage(Players Within Radius(Event Player, 5, Team 1, Surfaces And All Barriers), Event Player, 20);
Global.Health -= 80;
- Global.DocumentsHealth -= 80;
- Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
- }
- }
- rule("Set path")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zenyatta;
- }
- actions
- {
- If(Distance Between(Event Player, First Of(Global.UndeadSpawnPoints)) <= 2);
- Event Player.ZomnicPath = Array(Vector(224.306, 6, 104.613), Vector(213.216, 8, 103.131), Vector(178.293, 9, 101.977));
- Else If(Distance Between(Event Player, Global.UndeadSpawnPoints[1]) <= 2);
- Event Player.ZomnicPath = Array(Vector(228.592, 2, 90.368), Vector(219.166, 2, 91.344), Vector(219.370, 6, 103.729), Vector(
- 177.860, 9, 102.037));
- Else If(Distance Between(Event Player, Global.UndeadSpawnPoints[2]) <= 2);
- Event Player.ZomnicPath = Array(Vector(193.370, 9, 108.447), Vector(191.668, 8, 101.839), Vector(178.157, 9, 101.977));
- End;
- }
- }
- rule("HUD")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Create HUD Text(All Players(All Teams), Null, Null, Custom String("Team Score: {0}", Global.TeamScore), Left, 0, White, White,
- White, Visible To and String, Default Visibility);
Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0}", Global.CurrentMission), Top, 1, White, White, White,
Visible To and String, Default Visibility);
Global.Objectivedescription = Last Created Entity;
Wait(0.250, Ignore Condition);
Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} {1}%", Icon String(Plus), Global.Health), Top, 2, White,
White, White, Visible To and String, Default Visibility);
Global.HealthText = Last Text ID;
- Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} {1}%", Icon String(Plus), Global.DocumentsHealth), Top, 0,
- White, White, White, Visible To and String, Default Visibility);
- }
- }
- rule("HUD - Each Player")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- actions
- {
Create HUD Text(All Players(All Teams), 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), Health(Event Player),
Ultimate Charge Percent(Event Player)), Left, 2, White, White, White, Visible To and String, Default Visibility);
- Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} | {1}HP | {2}%", Custom String("{0} {1}", Hero Icon String(
- Hero Of(Event Player)), Event Player), Health(Event Player), Ultimate Charge Percent(Event Player)), Left, 2, White, White,
- White, Visible To and String, Default Visibility);
- }
- }
- rule("Die Instantly")
- {
- event
- {
- Player Died;
- Team 2;
- All;
- }
- actions
- {
Wait(0.500, Ignore Condition);
- Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
- }
- }
- rule("Lose")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.Health <= 0;
- Global.DocumentsHealth <= 0;
- Is Game In Progress == True;
- }
- actions
- {
- Declare Team Victory(Team 2);
- }
- }
- rule("Pathfinder: Resolve Current")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Event Player.pathfinderDoGetCurrent == True;
- }
- actions
- {
- Event Player.Finishedpath = Index Of Array Value(Global.Nodes[Event Player.pathmapReference], First Of(Sorted Array(
- Global.Nodes[Event Player.pathmapReference], Distance Between(Position Of(Event Player), Current Array Element))));
- Start Throttle In Direction(Event Player, Direction Towards(Position Of(Event Player),
- Event Player.Finishedpath == -1 ? Event Player.destination : Global.Nodes[Event Player.pathmapReference][Event Player.Finishedpath]),
- 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.Finishedpath == -1 ? Event Player.destination : Global.Nodes[Event Player.pathmapReference][Event Player.Finishedpath])
- <= 0.400;
Event Player.Scoreboard != Null;
- Event Player.parentArray != Null;
- }
- actions
- {
- If(Event Player.Finishedpath != -1);
- Event Player.lastAttribute = Mapped Array(Filtered Array(Global.Attributes[Event Player.pathmapReference], X Component Of(
- Current Array Element) == Event Player.Finishedpath && Y Component Of(Current Array Element)
== Event Player.Scoreboard[Event Player.Finishedpath] - 1), Z Component Of(Current Array Element));
Event Player.Finishedpath = Event Player.Scoreboard[Event Player.Finishedpath] - 1;
- == Event Player.parentArray[Event Player.Finishedpath] - 1), Z Component Of(Current Array Element));
- Event Player.Finishedpath = Event Player.parentArray[Event Player.Finishedpath] - 1;
- Else;
- Stop Throttle In Direction(Event Player);
Event Player.Scoreboard = Null;
- Event Player.parentArray = Null;
- End;
- }
- }
- rule("Pathfind to Player")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Distance Between(Event Player, First Of(Sorted Array(Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Current Array Element.Invis == False), Distance Between(Event Player, Current Array Element)))) > 3;
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player) == True;
- Hero Of(Event Player) != Hero(Zenyatta);
- Hero Of(Event Player) != Hero(Mercy);
- Hero Of(Event Player) != Hero(Zarya);
- Event Player.Finishedpath == True;
- }
- actions
- {
- Event Player._extendedPlayerCollection[0] = First Of(Sorted Array(Filtered Array(All Living Players(Opposite Team Of(Team Of(
- Event Player))), Current Array Element.Invis == False), Distance Between(Event Player, Current Array Element)));
- Event Player.Dijkstra_Final_Path = Empty Array;
Event Player.parentArray = 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.Scoreboard = Event Player.Dijkstra_Parent_Array;
- 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(Filtered Array(All Living Players(Opposite Team Of(Team Of(
- Event Player))), Current Array Element.Invis == False), Distance Between(Event Player, Current Array Element)))) > 3);
- }
- }
rule("Stop Pathfind to player")
- rule("Stop Pathfind")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Distance Between(Event Player, First Of(Sorted Array(Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Current Array Element.Invis == False), Distance Between(Event Player, Current Array Element)))) <= 3;
- Is Alive(Event Player) == True;
- Hero Of(Event Player) != Hero(Zenyatta);
Hero Of(Event Player) != Hero(Zarya);
Hero Of(Event Player) != Hero(Junkrat);
- Hero Of(Event Player) != Hero(Mercy);
Event Player.Finishedpath == 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)))) <= 3;
- Hero Of(Event Player) != Hero(Zarya);
- Hero Of(Event Player) != Hero(Symmetra);
Hero Of(Event Player) != Hero(Reaper);
}
actions
{
Stop Throttle In Direction(Event Player);
Event Player.parentArray = Null;
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) * 3), 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)))) <= 3);
}
}
rule("Reaper Circle Wraith")
{
event
{
Ongoing - Each Player;
Team 2;
Reaper;
}
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)))) <= 3;
Event Player.Finishedpath == True;
Is Using Ability 1(Event Player) == True;
}
actions
{
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) * 3), 1, To World, Replace existing throttle, Direction and Magnitude);
}
}
rule("Stop Pathfind to player - Reaper")
{
event
{
Ongoing - Each Player;
Team 2;
Reaper;
}
conditions
{
Is Dummy Bot(Event Player) == True;
Event Player.Finishedpath == 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)))) <= 3;
Is Using Ability 1(Event Player) == False;
- }
- actions
- {
- Stop Throttle In Direction(Event Player);
- Event Player.parentArray = Null;
- }
- }
- rule("Invis")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Sombra;
- }
- conditions
- {
- Is Using Ability 1(Event Player) == True;
- }
- actions
- {
- Event Player.Invis = True;
- }
- }
- rule("Invis")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Sombra;
- }
- conditions
- {
- Is Using Ability 1(Event Player) == False;
- }
- actions
- {
- Event Player.Invis = False;
- }
- }
- rule("Heroes")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Workshop Setting Toggle(Custom String("Settings"), Custom String("All Heroes"), False) == False;
- }
- actions
- {
- Set Player Allowed Heroes(Event Player, Array(Hero(Brigitte), Hero(Hanzo), Hero(McCree), Hero(Soldier: 76), Hero(Torbjörn), Hero(
- Tracer), Hero(Widowmaker), Hero(Ana), Hero(Brigitte), Hero(Zenyatta), Hero(Genji)));
- }
- }
- rule("Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Hero Of(Event Player) != Hero(Zenyatta);
- Hero Of(Event Player) != Hero(Mercy);
- Hero Of(Event Player) != Hero(Zarya);
- Hero Of(Event Player) != Hero(Sigma);
- Is Using Ultimate(Event Player) == False;
- Event Player.Finishedpath == True;
- Hero Of(Event Player) != Hero(Junkrat);
- }
- actions
- {
- Start Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Hero Of(Event Player) != Hero(Zenyatta);
- Hero Of(Event Player) != Hero(Mercy);
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == False;
- Hero Of(Event Player) != Hero(Sigma);
- Event Player.Finishedpath == True;
- Hero Of(Event Player) != Hero(Junkrat);
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- Stop Holding Button(Event Player, Secondary Fire);
- }
- }
- rule("Ability 1")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Ability Cooldown(Event Player, Button(Ability 1)) == 0;
- Hero Of(Event Player) != Hero(Junkrat);
- Hero Of(Event Player) != Hero(Zarya);
- Hero Of(Event Player) != Hero(Zenyatta);
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Hero Of(Event Player) != Hero(Roadhog);
- Event Player.Finishedpath == True;
- Is Using Ability 2(Event Player) == False;
- Hero Of(Event Player) != Hero(Reaper);
- Hero Of(Event Player) != Hero(Symmetra);
- Hero Of(Event Player) != Hero(Mercy);
- }
- actions
- {
- Press Button(Event Player, Ability 1);
- }
- }
- rule("ULT")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Ultimate Charge Percent(Event Player) == 100;
- Hero Of(Event Player) != Hero(Zarya);
- Hero Of(Event Player) != Hero(Zenyatta);
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Hero Of(Event Player) != Hero(Junkrat);
- Hero Of(Event Player) != Hero(Sigma);
- Hero Of(Event Player) != Hero(Mercy);
- Hero Of(Event Player) != Hero(Symmetra);
- }
- actions
- {
- Press Button(Event Player, Ultimate);
- }
- }
- rule("Create Junkenstein")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Number of Heroes(Hero(Mercy), Team 2) == 0;
Global.PointChange == False;
Match Time > 0;
- }
- actions
- {
- Wait(Global.Junkdiff, Ignore Condition);
Abort If(Global.PointChange == True);
Abort If(Match Time <= 0);
Create Dummy Bot(Hero(Junkrat), Team 2, -1, Vector(195.865, 18.050, 55.760), Vector(Empty Array, Empty Array, Empty Array));
- Create Dummy Bot(Hero(Junkrat), Team 2, -1, Vector(205.737, 9.576, 102.643), Vector(Empty Array, Empty Array, Empty Array));
- Loop;
- }
- }
- rule("Junkrat immune to knockback")
- {
- event
- {
- Player Received Knockback;
- Team 2;
- Junkrat;
- }
- actions
- {
- Apply Impulse(Event Player, Event Direction, -1, To World, Cancel Contrary Motion);
- }
- }
- rule("Pathfind to Player")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- 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)))) > 20;
- }
- actions
- {
- Skip If(Global.Junkintro == True, 1);
- Wait(2, Ignore Condition);
- 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;
- 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.Scoreboard = Event Player.Dijkstra_Parent_Array_3;
- 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(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)))) > 20);
- }
- }
- rule("Stop Pathfind")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- 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)))) <= 20;
- }
- actions
- {
- Stop Throttle In Direction(Event Player);
Event Player.Scoreboard = Null;
- Event Player.parentArray = Null;
- Wait(0.250, 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)))) <= 20);
- }
- }
- rule("Create Junkenstein's Monster")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Number of Heroes(Hero(Mercy), Team 2) == 0;
Global.PointChange == False;
Match Time > 0;
- }
- actions
- {
- Wait(Global.Mondiff, Ignore Condition);
Abort If(Global.PointChange == True);
Abort If(Match Time <= 0);
- Create Dummy Bot(Hero(Roadhog), Team 2, -1, Vector(169.036, 6.550, 80.559), Forward);
- Loop;
- }
- }
- rule("Set True - Roadhog")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Roadhog;
- }
- actions
- {
- Skip If(Global.Monintro == True, 1);
- Wait(2, Ignore Condition);
- Event Player.Finishedpath = True;
- }
- }
- rule("Roadhog Right Click")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Roadhog;
- }
- conditions
- {
- Distance Between(Event Player, Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) > 10;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Is Dummy Bot(Event Player) == True;
- Event Player.Finishedpath == True;
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- Wait(0.250, Ignore Condition);
- Start Holding Button(Event Player, Secondary Fire);
- }
- }
- rule("Roadhog Right Click")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Roadhog;
- }
- conditions
- {
- Distance Between(Event Player, Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) <= 10;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Is Dummy Bot(Event Player) == True;
- Event Player.Finishedpath == True;
- }
- actions
- {
- Stop Holding Button(Event Player, Secondary Fire);
- Wait(0.250, Ignore Condition);
- Start Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Roadhog Abilities")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Roadhog;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Health(Event Player) < Max Health(Event Player);
- Ability Cooldown(Event Player, Button(Ability 2)) == 0;
- Is Using Ability 1(Event Player) == False;
- }
- actions
- {
- Press Button(Event Player, Ability 2);
- }
- }
- rule("Ability 1 Roadhog")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Roadhog;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Ability Cooldown(Event Player, Button(Ability 1)) == 0;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Is Using Ability 2(Event Player) == False;
- }
- actions
- {
- Wait(0.250, Ignore Condition);
- Press Button(Event Player, Ability 1);
- }
- }
- rule("Create The Witch")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
Global.PointChange == False;
Match Time > 0;
- }
- actions
- {
- Wait(Global.Witchdiff, Ignore Condition);
Abort If(Match Time <= 0);
Abort If(Global.PointChange == True);
- Create Dummy Bot(Hero(Mercy), Team 2, -1, Vector(168.641, 6.549, 78.929), Vector(Empty Array, Empty Array, Empty Array));
- Loop;
- }
- }
- rule("Revive")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mercy;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player) == True;
- Has Spawned(Event Player) == True;
- }
- actions
- {
- Set Facing(Event Player, Direction Towards(Event Player, Vector(176.780, 6.551, 79.674)), To World);
- Skip If(Global.Witchintro == True, 1);
- Wait(2, Ignore Condition);
- Event Player.Finishedpath = True;
- Wait(0.250, Ignore Condition);
- Skip If(Number of Heroes(Hero(Roadhog), Team 2) > 1, 1);
- Create Dummy Bot(Hero(Roadhog), Team 2, -1, Position Of(Event Player), Vector(Empty Array, Empty Array, Empty Array));
- Wait(0.250, Ignore Condition);
- Skip If(Number of Heroes(Hero(Junkrat), Team 2) > 1, 1);
Create Dummy Bot(Hero(Junkrat), Team 2, -1, Vector(195.865, 18.050, 55.760), Vector(Empty Array, Empty Array, Empty Array));
- Create Dummy Bot(Hero(Junkrat), Team 2, -1, Vector(56.648, 24.364, -104.668), Vector(Empty Array, Empty Array, Empty Array));
- }
- }
- rule("Revive")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mercy;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player) == True;
- Has Spawned(Event Player) == True;
- Is Alive(Players On Hero(Hero(Roadhog), Team 2)) == True;
- Is Alive(Players On Hero(Hero(Junkrat), Team 2)) == True;
- Event Player.Finishedpath == True;
- }
- actions
- {
- Global.Effects = Empty Array;
- Create Effect(All Players(All Teams), Orb, Yellow, Players On Hero(Hero(Roadhog), Team 2), 10, Visible To Position and Radius);
- Modify Global Variable(Effects, Append To Array, Last Created Entity);
- Create Effect(All Players(All Teams), Orb, Yellow, Players On Hero(Hero(Junkrat), Team 2), 10, Visible To Position and Radius);
- Modify Global Variable(Effects, Append To Array, Last Created Entity);
- Create Effect(All Players(All Teams), Orb, Yellow, Event Player, 4, Visible To Position and Radius);
- Modify Global Variable(Effects, Append To Array, Last Created Entity);
- Wait(2, Ignore Condition);
- Destroy Effect(First Of(Global.Effects));
- Destroy Effect(Global.Effects[1]);
- Destroy Effect(Global.Effects[2]);
- }
- }
- rule("Witch Heal")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mercy;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Has Spawned(Event Player) == True;
- Is Alive(Event Player) == True;
- Event Player.Finishedpath == True;
- Distance Between(Event Player, Last Of(Filtered Array(Filtered Array(Sorted Array(All Living Players(Team 2), Hero Of(
- Current Array Element) == Hero(Roadhog)), Hero Of(Current Array Element) != Hero(Junkrat)), Hero Of(Current Array Element)
- != Hero(Mercy)))) > 5;
- }
- actions
- {
- Start Facing(Event Player, Direction Towards(Event Player, First Of(Sorted Array(Filtered Array(Sorted Array(All Living Players(
- Team 2), Hero Of(Current Array Element) == Hero(Roadhog)), Hero Of(Current Array Element) != Hero(Mercy)), Distance Between(
- Event Player, Current Array Element)))), 200, To World, Direction and Turn Rate);
- Event Player._extendedPlayerCollection[6] = Last Of(Sorted Array(Filtered Array(All Living Players(Team 2), Hero Of(
- Current Array Element) != Hero(Mercy)), 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.Scoreboard = Event Player.Dijkstra_Parent_Array_2;
- 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, Last Of(Filtered Array(Filtered Array(Sorted Array(All Living Players(Team 2), Hero Of(
- Current Array Element) == Hero(Roadhog)), Hero Of(Current Array Element) != Hero(Junkrat)), Hero Of(Current Array Element)
- != Hero(Mercy)))) > 5);
- }
- }
- rule("Witch Heal")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mercy;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Has Spawned(Event Player) == True;
- Is Alive(Event Player) == True;
- Distance Between(Event Player, Last Of(Filtered Array(Filtered Array(Sorted Array(All Living Players(Team 2), Hero Of(
- Current Array Element) == Hero(Roadhog)), Hero Of(Current Array Element) != Hero(Junkrat)), Hero Of(Current Array Element)
- != Hero(Mercy)))) <= 5;
- }
- actions
- {
- Stop Throttle In Direction(Event Player);
- Event Player.parentArray = Null;
Wait(Random Integer(1, 2), Ignore Condition);
Start Throttle In Direction(Event Player, Direction Towards(Position Of(Event Player), Position Of(Last Of(Filtered Array(
Filtered Array(Sorted Array(All Living Players(Team 2), Hero Of(Current Array Element) == Hero(Roadhog)), Hero Of(
Current Array Element) != Hero(Junkrat)), Hero Of(Current Array Element) != Hero(Mercy)))) + 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);
- Wait(0.250, Ignore Condition);
- Loop If(Distance Between(Event Player, Last Of(Filtered Array(Filtered Array(Sorted Array(All Living Players(Team 2), Hero Of(
- Current Array Element) == Hero(Roadhog)), Hero Of(Current Array Element) != Hero(Junkrat)), Hero Of(Current Array Element)
- != Hero(Mercy)))) <= 5);
- }
- }
- rule("Witch Heal")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mercy;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Has Spawned(Event Player) == True;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Start Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Create The Reaper")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
Global.PointChange == False;
- }
- actions
- {
- Wait(Global.Reapdiff, Ignore Condition);
Abort If(Match Time <= 0);
Abort If(Global.PointChange == True);
Create Dummy Bot(Hero(Reaper), Team 2, -1, Vector(229.437, 14.551, 62.200), Vector(Empty Array, Empty Array, Empty Array));
- Create Dummy Bot(Hero(Reaper), Team 2, -1, Vector(195.781, 18.049, 57.611), Vector(Empty Array, Empty Array, Empty Array));
- Loop;
- }
- }
- rule("Set True - Reaper")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Reaper;
- }
- actions
- {
- Skip If(Global.Reaperintro == True, 1);
- Wait(2, Ignore Condition);
- Event Player.Finishedpath = True;
- }
- }
- rule("Ability 1 - Reaper")
- {
- event
- {
- Player Took Damage;
- Team 2;
- Reaper;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Ability Cooldown(Event Player, Button(Ability 1)) == 0;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Event Player.Finishedpath == True;
- Is Using Ability 2(Event Player) == False;
- }
- actions
- {
- Press Button(Event Player, Ability 1);
- }
- }
- rule("Wraith")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Reaper;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Using Ability 1(Event Player) == True;
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Wraith")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Reaper;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Using Ability 1(Event Player) == False;
- Event Player.Finishedpath == True;
- }
- actions
- {
- Start Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Create The Summoner")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
Global.PointChange == False;
Match Time > 0;
- }
- actions
- {
- Wait(Global.Sumdiff, Ignore Condition);
Abort If(Global.PointChange == True);
Abort If(Match Time <= 0);
- Create Dummy Bot(Hero(Symmetra), Team 2, -1, Vector(211.366, 9.550, 102.233), Vector(Empty Array, Empty Array, Empty Array));
- Loop;
- }
- }
rule("FinishedPath")
{
event
{
Ongoing - Each Player;
All;
All;
}
actions
{
Skip If(Global.Sumintro == True, 1);
Wait(2, Ignore Condition);
Event Player.Finishedpath = True;
}
}
- rule("Symmetra Circle")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Symmetra;
- }
- 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)))) <= 3;
- Event Player.Finishedpath == True;
- }
- actions
- {
- 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) * 3), 1, To World, Replace existing throttle, Direction and Magnitude);
- }
- }
- rule("Symmetra Right Click")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Symmetra;
- }
- conditions
- {
- Distance Between(Event Player, Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) > 10;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Is Dummy Bot(Event Player) == True;
- Event Player.Finishedpath == True;
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- Wait(0.250, Ignore Condition);
- Start Holding Button(Event Player, Secondary Fire);
- }
- }
- rule("Symmetra Right Click")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Symmetra;
- }
- conditions
- {
- Distance Between(Event Player, Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) <= 10;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- Is Dummy Bot(Event Player) == True;
- Event Player.Finishedpath == True;
- }
- actions
- {
- Stop Holding Button(Event Player, Secondary Fire);
- Wait(0.250, Ignore Condition);
- Start Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Sym Ult")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Symmetra;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Ultimate Charge Percent(Event Player) == 100;
- Has Spawned(Event Player) == True;
- Is Alive(Event Player) == True;
Is In Line of Sight(Event Player, First Of(Sorted Array(Filtered Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
Current Array Element.Invis == False), Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS)
== True;
- }
- actions
- {
Start Facing(Event Player, Direction Towards(Event Player, First Of(Filtered Array(Sorted Array(Filtered Array(Filtered Array(
Players in View Angle(Event Player, Opposite Team Of(Team Of(Event Player)), 180), Is Alive(Current Array Element)),
Is In Line of Sight(Event Player, Current Array Element, Barriers Do Not Block LOS)), Distance Between(Event Player,
Current Array Element)), Current Array Element.Invis == False))), 200, To World, Direction and Turn Rate);
- Start Facing(Event Player, Direction Towards(Event Player, Vector(200.786, 9.551, 102.014)), 10000, To World,
- Direction and Turn Rate);
- Wait(1, Ignore Condition);
- Press Button(Event Player, Ultimate);
- Wait(0.250, Ignore Condition);
- Press Button(Event Player, Primary Fire);
- Wait(1, Ignore Condition);
- Start Facing(Event Player, Direction Towards(Event Player, First Of(Filtered Array(Sorted Array(Filtered Array(Filtered Array(
- Players in View Angle(Event Player, Opposite Team Of(Team Of(Event Player)), 180), Is Alive(Current Array Element)),
- Is In Line of Sight(Event Player, Current Array Element, Barriers Do Not Block LOS)), Distance Between(Event Player,
- Current Array Element)), Current Array Element.Invis == False))), 200, To World, Direction and Turn Rate);
- Event Player.Finishedpath = True;
- }
- }
- rule("Create Zombardiers")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Number of Heroes(Hero(Zarya), Team 2) < Global.NumberofZombardiers;
- Is Game In Progress == True;
Global.PointChange == False;
Match Time > 0;
- }
- actions
- {
- Wait(Random Integer(10, 30), Ignore Condition);
- Abort If(Is Game In Progress == False);
Abort If(Match Time <= 0);
Abort If(Global.PointChange == True);
- Create Dummy Bot(Hero(Zarya), Team 2, -1, Random Value In Array(Global.UndeadSpawnPoints), Vector(Empty Array, Empty Array,
- Empty Array));
- Loop If(Number of Heroes(Hero(Zarya), Team 2) < Global.NumberofZombardiers);
- }
- }
- rule("Pathfind to player")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zarya;
- }
- 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)))) > 10;
- }
- actions
- {
- Event Player._extendedPlayerCollection[2] = First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element) > 10));
- 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.Scoreboard = Event Player.Dijkstra_Parent_Array_0;
- 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, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)))) > 10);
- }
- }
- rule("Pathfind away from player")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zarya;
- }
- 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)))) <= 10;
- }
- actions
- {
- Event Player._extendedPlayerCollection[4] = Position Of(Event Player) + Backward;
- 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.Scoreboard = Event Player.Dijkstra_Parent_Array_1;
- 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;
- 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)))) <= 10);
- }
- }
- rule("Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zarya;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == True;
- }
- actions
- {
- Start Holding Button(Event Player, Secondary Fire);
- }
- }
- rule("Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Zarya;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is In Line of Sight(Event Player, First Of(Filtered Array(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)), Current Array Element.Invis == False)), Barriers Do Not Block LOS)
- == False;
- }
- actions
- {
- Stop Holding Button(Event Player, Secondary Fire);
- }
- }
- rule("Reaper Intro")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Reaper;
- }
- conditions
- {
- Is Alive(Event Player) == True;
- Global.Reaperintro == False;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Set Slow Motion(35);
- Disable Hero HUD(Event Player);
- Set Status(All Players(Team 1), Null, Invincible, 2);
- Start Camera(All Players(Team 1), Eye Position(Players On Hero(Hero(Reaper), Team 2)) + Facing Direction Of(Event Player),
- Eye Position(Players On Hero(Hero(Reaper), Team 2)), 0);
- Big Message(All Players(All Teams), Custom String("The Reaper"));
- Wait(2, Ignore Condition);
- Global.Reaperintro = True;
- Stop Camera(All Players(Team 1));
- Set Slow Motion(100);
- Enable Hero HUD(Event Player);
- }
- }
- rule("Junkrat Intro")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- conditions
- {
- Is Alive(Event Player) == True;
- Global.Junkintro == False;
- Is Dummy Bot(Event Player) == True;
Global._tempAttributes != Event Player;
- Global.DoorHealth != Event Player;
- Global.RevengeIntro == False;
- }
- actions
- {
- Set Status(All Players(Team 1), Null, Invincible, 2);
- Disable Hero HUD(Event Player);
- Set Slow Motion(35);
Start Camera(All Players(Team 1), Eye Position(Players On Hero(Hero(Junkrat), Team 2)) + Facing Direction Of(Event Player),
Eye Position(Players On Hero(Hero(Junkrat), Team 2)), 0);
- Start Camera(All Players(Team 1), Eye Position(Players On Hero(Hero(Junkrat), Team 2)) + Forward, Eye Position(Players On Hero(
- Hero(Junkrat), Team 2)), 0);
- Big Message(All Players(All Teams), Custom String("Dr Junkenstein"));
- Wait(2, Ignore Condition);
- Global.Junkintro = True;
- Stop Camera(All Players(Team 1));
- Set Slow Motion(100);
- Enable Hero HUD(Event Player);
- }
- }
- rule("Road Intro")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Roadhog;
- }
- conditions
- {
- Is Alive(Event Player) == True;
- Global.Monintro == False;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Set Status(All Players(Team 1), Null, Invincible, 2);
- Set Slow Motion(35);
- Disable Hero HUD(Event Player);
- Start Camera(All Players(Team 1), Eye Position(Players On Hero(Hero(Roadhog), Team 2)) + Facing Direction Of(Event Player),
- Eye Position(Players On Hero(Hero(Roadhog), Team 2)), 0);
- Big Message(All Players(All Teams), Custom String("Junkenstein's Monster"));
- Wait(2, Ignore Condition);
- Global.Monintro = True;
- Stop Camera(All Players(Team 1));
- Set Slow Motion(100);
- Enable Hero HUD(Event Player);
- }
- }
- rule("Witch Intro")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mercy;
- }
- conditions
- {
- Is Alive(Event Player) == True;
- Global.Witchintro == False;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Set Status(All Players(Team 1), Null, Invincible, 2);
- Set Slow Motion(35);
- Disable Hero HUD(Event Player);
- Start Camera(All Players(Team 1), Eye Position(Players On Hero(Hero(Mercy), Team 2)) + Facing Direction Of(Event Player),
- Eye Position(Players On Hero(Hero(Mercy), Team 2)), 0);
- Big Message(All Players(All Teams), Custom String("The Witch"));
- Wait(2, Ignore Condition);
- Global.Witchintro = True;
- Stop Camera(All Players(Team 1));
- Set Slow Motion(100);
- Enable Hero HUD(Event Player);
- }
- }
- rule("Summoner Intro")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Symmetra;
- }
- conditions
- {
- Is Alive(Event Player) == True;
- Global.Sumintro == False;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Enable Messages(Event Player);
- Set Status(All Players(Team 1), Null, Invincible, 2);
- Disable Hero HUD(Event Player);
- Set Slow Motion(35);
- Start Camera(All Players(Team 1), Eye Position(Players On Hero(Hero(Symmetra), Team 2)) + Facing Direction Of(Event Player),
- Eye Position(Players On Hero(Hero(Symmetra), Team 2)), 0);
- Big Message(All Players(All Teams), Custom String("The Summoner"));
- Wait(2, Ignore Condition);
- Global.Sumintro = True;
- Stop Camera(All Players(Team 1));
- Set Slow Motion(100);
- Enable Hero HUD(Event Player);
- Disable Messages(Event Player);
- }
- }
- rule("Hardness")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Reapdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("The Reaper Delay"), 150, 10, 500);
- Global.Mondiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("Junkenstein's Monster Delay"), 200, 10, 500);
- Global.Sumdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("The Summoner Delay"), 250, 10, 500);
- Global.Junkdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("Dr Junkenstein Delay"), 300, 10, 500);
- Global.Witchdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("The Witch Delay"), 350, 10, 500);
- }
- }
- rule("Hardness")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Wait(60, Ignore Condition);
- Skip If(Global.Reapdiff <= 10, 1);
- Global.Reapdiff -= 10;
- Skip If(Global.Mondiff <= 10, 1);
- Global.Mondiff -= 10;
- Skip If(Global.Sumdiff <= 10, 1);
- Global.Sumdiff -= 10;
- Skip If(Global.Junkdiff <= 10, 1);
- Global.Junkdiff -= 10;
- Skip If(Global.Witchdiff <= 10, 1);
- Global.Witchdiff -= 10;
- Loop If(Is Game In Progress == True);
- }
- }
- rule("Number of Zombardiers/Zomnics")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.NumberofZomnics = Workshop Setting Integer(Custom String("Settings"), Custom String("Max Number of Zomnics"), 4, 0, 8);
- Global.NumberofZombardiers = Workshop Setting Integer(Custom String("Settings"), Custom String("Max Number of Zombardiers"), 2, 0,
- 8);
- }
- }
- rule("Mode")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.Normal = Workshop Setting Toggle(Custom String("Difficulty Mode"), Custom String("Normal"), True);
- Global.Hard = Workshop Setting Toggle(Custom String("Difficulty Mode"), Custom String("Hard"), False);
- Global.Expert = Workshop Setting Toggle(Custom String("Difficulty Mode"), Custom String("Expert"), False);
- Global.Legendary = Workshop Setting Toggle(Custom String("Difficulty Mode"), Custom String("Legendary"), False);
- }
- }
- rule("Junkrat Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- If(Global.Normal == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 2050, True, True);
- Else If(Global.Hard == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 2550, True, True);
- Else If(Global.Expert == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 2800, True, True);
- Else If(Global.Legendary == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 3050, True, True);
- }
- }
- rule("Roadhog Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Roadhog;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- If(Global.Normal == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 3200, True, True);
- Set Damage Dealt(Event Player, 25);
- Else If(Global.Hard == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 3650, True, True);
- Set Damage Dealt(Event Player, 50);
- Else If(Global.Expert == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 3900, True, True);
- Set Damage Dealt(Event Player, 75);
- Else If(Global.Legendary == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 4000, True, True);
- Set Damage Dealt(Event Player, 100);
- }
- }
- rule("Symmetra Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Symmetra;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- If(Global.Normal == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1300, True, True);
- Set Damage Dealt(Event Player, 25);
- Else If(Global.Hard == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1600, True, True);
- Set Damage Dealt(Event Player, 50);
- Else If(Global.Expert == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1800, True, True);
- Set Damage Dealt(Event Player, 75);
- Else If(Global.Legendary == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 2100, True, True);
- }
- }
- rule("Mercy Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mercy;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- If(Global.Normal == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1400, True, True);
- Else If(Global.Hard == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1550, True, True);
- Else If(Global.Expert == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1900, True, True);
- Else If(Global.Legendary == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 2300, True, True);
- }
- }
- rule("Reaper Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Reaper;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- If(Global.Normal == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 750, True, True);
- Set Damage Dealt(Event Player, 25);
- Else If(Global.Hard == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1000, True, True);
- Set Damage Dealt(Event Player, 50);
- Else If(Global.Expert == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1350, True, True);
- Set Damage Dealt(Event Player, 75);
- Else If(Global.Legendary == True);
- Remove All Health Pools From Player(Event Player);
- Wait(0.160, Ignore Condition);
- Add Health Pool To Player(Event Player, Health, 1750, True, True);
- Set Damage Dealt(Event Player, 100);
- }
- }
- rule("Facing - Zarya")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Global.RevengeIntro == False;
- Hero Of(Event Player) != Hero(Zenyatta);
- Hero Of(Event Player) != Hero(Mercy);
- Hero Of(Event Player) != Hero(Reaper);
- Hero Of(Event Player) != Hero(Junkrat);
- Hero Of(Event Player) != Hero(Symmetra);
- Hero Of(Event Player) != Hero(Roadhog);
- Hero Of(Event Player) != Hero(Sigma);
- }
- actions
- {
- Start Facing(Event Player, Direction Towards(Event Player, First Of(Filtered Array(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)), Current Array Element.Invis == False)) + Velocity Of(
- Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) * (Distance Between(Event Player,
- Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) / 24)), 200, To World,
- Direction and Turn Rate);
- }
- }
- rule("Facing - Roadhog + Sigma")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Global.RevengeIntro == False;
- Hero Of(Event Player) != Hero(Zenyatta);
- Hero Of(Event Player) != Hero(Mercy);
- Hero Of(Event Player) != Hero(Reaper);
- Hero Of(Event Player) != Hero(Junkrat);
- Hero Of(Event Player) != Hero(Symmetra);
- Hero Of(Event Player) != Hero(Zarya);
- Event Player.Finishedpath == True;
- }
- actions
- {
- Start Facing(Event Player, Direction Towards(Event Player, First Of(Filtered Array(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)), Current Array Element.Invis == False)) + Velocity Of(
- Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) * (Distance Between(Event Player,
- Player Closest To Reticle(Event Player, Opposite Team Of(Team Of(Event Player)))) / 24)), 200, To World,
- Direction and Turn Rate);
- }
- }
- rule("Facing - Junkrat")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Global.RevengeIntro == False;
- }
- actions
- {
- Start Facing(Event Player, Direction From Angles(Horizontal Angle From Direction(Vector Towards(Eye Position(Event Player),
- Position Of(First Of(Sorted Array(Filtered 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)), Current Array Element.Invis == False),
- Distance Between(Event Player, Current Array Element)))))), 0 - Arctangent In Degrees((625 - Square Root(
- 390625 - 156.250 * Distance Between(Vector(0, 0, 0), Vector Towards(Eye Position(Event Player), Position Of(First Of(
- Sorted Array(Filtered 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)), Current Array Element.Invis == False), Distance Between(
- Event Player, Current Array Element))))) * Vector(1, 0, 1)) * Distance Between(Vector(0, 0, 0), Vector Towards(Eye Position(
- Event Player), Position Of(First Of(Sorted Array(Filtered 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)),
- Current Array Element.Invis == False), Distance Between(Event Player, Current Array Element))))) * Vector(1, 0, 1))
- - 15625 * Y Component Of(Vector Towards(Eye Position(Event Player), Position Of(First Of(Sorted Array(Filtered 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)), Current Array Element.Invis == False), Distance Between(Event Player,
- Current Array Element)))))))) / (12.500 * Distance Between(Vector(0, 0, 0), Vector Towards(Eye Position(Event Player),
- Position Of(First Of(Sorted Array(Filtered 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)), Current Array Element.Invis == False),
- Distance Between(Event Player, Current Array Element))))) * Vector(1, 0, 1))), 1)), 200, To World, Direction and Turn Rate);
- }
- }
- rule("Facing - Reaper")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Reaper;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Start Facing(Event Player, Direction Towards(Event Player, First Of(Filtered Array(Sorted Array(Filtered Array(Filtered Array(
- Players in View Angle(Event Player, Opposite Team Of(Team Of(Event Player)), 180), Is Alive(Current Array Element)),
- Is In Line of Sight(Event Player, Current Array Element, Barriers Do Not Block LOS)), Distance Between(Event Player,
- Current Array Element)), Current Array Element.Invis == False))), 200, To World, Direction and Turn Rate);
- }
- }
- rule("Junkrat Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Start Holding Button(Event Player, Primary Fire);
- }
- }
rule("Lose")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Number of Living Players(Team 1) <= 0;
}
actions
{
Declare Team Victory(Team 2);
}
}
rule("Far Away")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Distance Between(Event Player, Global.CurrentPoint) > 10;
Is Game In Progress == True;
}
actions
{
Create In-World Text(Event Player, Custom String("DEFEND!"), Global.CurrentPoint, 2, Do Not Clip, Visible To Position and String,
Red, Default Visibility);
Event Player.FarIcon = Last Text ID;
}
}
rule("Far Away")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Distance Between(Event Player, Global.CurrentPoint) <= 10;
Is Game In Progress == True;
}
actions
{
Destroy In-World Text(Event Player.FarIcon);
}
}
rule("Change Point")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
}
actions
{
Wait(300, Ignore Condition);
Pause Match Time;
Global.PointChange = True;
Global.CurrentPoint = Vector(206.616, 1.549, 83.514);
Global.TargetPoint = Vector(206.270, 1.549, 84.465);
Big Message(All Players(Team 1), Custom String("Get to the Catacombes!"));
Global.PlayerSpeaking = Random Value In Array(All Living Players(Team 1));
Small Message(All Players(Team 1), Custom String(
"{0} {1}: Control says they've found more documents. They're located in the catacombes.", Hero Icon String(Hero Of(
Global.PlayerSpeaking)), Global.PlayerSpeaking));
}
}
rule("Change Point")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Global.PointChange == True;
Count Of(Players Within Radius(Global.CurrentPoint, 10, Team 1, Off)) == Number of Living Players(Team 1);
Global.LastLastPoint == False;
}
actions
{
Unpause Match Time;
Global.PointChange = False;
Global.Health = 2000;
Big Message(All Players(Team 1), Custom String("Defend the Catacombes!"));
Global.CurrentMission = Custom String("Defend The Catacombes");
}
}
rule("Change Point")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
}
actions
{
Wait(600, Ignore Condition);
Global.LastLastPoint = True;
Pause Match Time;
Global.PointChange = True;
Global.CurrentPoint = Vector(205.047, 11.040, 56.442);
Big Message(All Players(Team 1), Custom String("Get to the Collection Point!"));
Global.PlayerSpeaking = Random Value In Array(All Living Players(Team 1));
Small Message(All Players(Team 1), Custom String("{0} {1}: We need to get to the pick up point, and make our final escape.",
Hero Icon String(Hero Of(Global.PlayerSpeaking)), Global.PlayerSpeaking));
Global.Stopspawningzomnics = True;
Destroy HUD Text(Global.HealthText);
Global.CurrentMission = Custom String("Get to the Collection Point {0}/{1}", Count Of(Players Within Radius(Global.CurrentPoint,
10, Team 1, Off)), Number of Living Players(Team 1));
}
}
rule("Change Point")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
Global.PointChange == True;
Count Of(Players Within Radius(Global.CurrentPoint, 10, Team 1, Off)) == Number of Living Players(Team 1);
Global.LastLastPoint == True;
}
actions
{
Unpause Match Time;
Global.PointChange = False;
Global.Health = 100000000;
Big Message(All Players(Team 1), Custom String("Wait until Pick up"));
Create HUD Text(All Players(Team 1), Null, Null, Custom String("Pick Up Incoming in: {0} Seconds", Match Time), Top, 0, White,
White, White, Visible To and String, Default Visibility);
Global.LastPoint = True;
Global.CurrentMission = Custom String("Wait For Pick Up");
}
}
rule("Destroy all zomnics")
{
event
{
Ongoing - Each Player;
Team 2;
Zenyatta;
}
conditions
{
Is Dummy Bot(Event Player) == True;
Global.Stopspawningzomnics == True;
}
actions
{
Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
}
}
- rule("Victory")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.LastPoint == True;
- Is Game In Progress == True;
- Match Time <= 0;
Count Of(Players Within Radius(Global.CurrentPoint, 10, Team 1, Off)) == Number of Living Players(Team 1);
- }
- actions
- {
Pause Match Time;
Destroy All Dummy Bots;
Set Invisible(All Players(Team 1), All);
Small Message(All Players(Team 1), Custom String("Pilot: Alright get in, we're heading off."));
Start Camera(All Players(Team 1), Vector(207.449, 15.886, 56.177), Vector(208.810, 15.634, 54.002), 0);
Global.PlayerSpeaking = Random Value In Array(All Living Players(Team 1));
Wait(3, Ignore Condition);
Small Message(All Players(Team 1), Custom String("{0} {1}: Hopefully that Junkenstein doesn't make our day a hell again.",
Hero Icon String(Hero Of(Global.PlayerSpeaking)), Global.PlayerSpeaking));
Wait(3, Ignore Condition);
Global.PlayerSpeaking = Random Value In Array(All Living Players(Team 1));
Wait(0.250, Ignore Condition);
Small Message(All Players(Team 1), Custom String("{0} {1}: Let's not bet on it okay?", Hero Icon String(Hero Of(
Global.PlayerSpeaking)), Global.PlayerSpeaking));
Start Camera(All Players(Team 1), Vector(207.675, 24.902, 55.816), Vector(209.416, 24.580, 53.032), 1);
Wait(1, Ignore Condition);
Small Message(All Players(Team 1), Custom String("Pilot: Say Goodbye!"));
Wait(3, Ignore Condition);
Start Camera(All Players(Team 1), Vector(255.561, 29.660, 34.956), Vector(251.928, 28.909, 38.075), 2);
Wait(3, Ignore Condition);
Big Message(All Players(Team 1), Custom String("Junkenstein: The Hidden Truth"));
Small Message(All Players(Team 1), Custom String("Thanks for Playing!"));
Wait(1, Ignore Condition);
- Declare Team Victory(Team 1);
- }
- }
rule("Get to Dropship")
{
event
{
Ongoing - Global;
}
conditions
{
Global.LastPoint == True;
Is Game In Progress == True;
Match Time <= 0;
Count Of(Players Within Radius(Global.CurrentPoint, 10, Team 1, Off)) < Number of Living Players(Team 1);
}
actions
{
Big Message(All Players(Team 1), Custom String("Dropship has arrived!"));
Global.PlayerSpeaking = Random Value In Array(All Living Players(Team 1));
Wait(0.250, Ignore Condition);
Small Message(All Players(Team 1), Custom String("{0} {1}: Everyone get to the statue and get into the dropship", Hero Icon String(
Hero Of(Global.PlayerSpeaking)), Global.PlayerSpeaking));
Global.CurrentMission = Custom String("Get onto the Drop Ship{0}/{1}", Count Of(Players Within Radius(Global.CurrentPoint, 10,
Team 1, Off)), Number of Living Players(Team 1));
}
}
rule("Score - Reaper")
{
event
{
Player Dealt Final Blow;
Team 1;
All;
}
conditions
{
Is Game In Progress == True;
Hero Of(Victim) == Hero(Reaper);
}
actions
{
Global.TeamScore += 400;
}
}
rule("Score - Rest of Bosses")
{
event
{
Player Dealt Final Blow;
Team 1;
All;
}
conditions
{
Is Game In Progress == True;
Hero Of(Victim) != Hero(Reaper);
Hero Of(Victim) != Hero(Zenyatta);
Hero Of(Victim) != Hero(Zarya);
}
actions
{
Global.TeamScore += 800;
}
}
rule("Score - Zomnic")
{
event
{
Player Dealt Final Blow;
Team 1;
All;
}
conditions
{
Is Game In Progress == True;
Hero Of(Victim) == Hero(Zenyatta);
}
actions
{
Global.TeamScore += 20;
}
}
rule("Score - Zombardier")
{
event
{
Player Dealt Final Blow;
Team 1;
All;
}
conditions
{
Is Game In Progress == True;
Hero Of(Victim) == Hero(Zarya);
}
actions
{
Global.TeamScore += 20;
}
}
rule("Score - Enemies Killed")
{
event
{
Ongoing - Global;
}
conditions
{
Global.Kills == 25;
}
actions
{
Global.TeamScore += 25;
Global.CurrentBonusKills = 25;
Big Message(All Players(Team 1), Custom String("Survival Bonus +25XP"));
}
}
rule("Score - Enemies Killed")
- rule("Lose")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
Global.Kills == Global.CurrentBonusKills + 25;
Global.CurrentBonusKills <= 1200;
}
actions
{
Global.CurrentBonusKills = Global.Kills;
Wait(0.250, Ignore Condition);
Global.TeamScore += Global.CurrentBonusKills;
Big Message(All Players(Team 1), Custom String("Survival Bonus +{0}XP", Global.CurrentBonusKills));
}
}
rule("Score - Reset Bonus")
{
event
{
Player Died;
Team 1;
All;
}
conditions
{
- Is Game In Progress == True;
- Number of Living Players(Team 1) <= 0;
- }
- actions
- {
Global.Kills = 0;
Global.CurrentBonusKills = 0;
}
}
rule("Objective Description For Amount of Players")
{
event
{
Ongoing - Global;
}
conditions
{
Global.PointChange == True;
Global.LastLastPoint == False;
}
actions
{
Abort If(Global.LastLastPoint == True);
Global.CurrentMission = Custom String("Get To The Catacombes {0}/{1}", Count Of(Players Within Radius(Global.CurrentPoint, 5,
Team 1, Off)), Number of Living Players(Team 1));
Wait(0.250, Ignore Condition);
Loop If(Global.PointChange == True);
}
}
rule("Objective Description For Amount of Players")
{
event
{
Ongoing - Global;
}
conditions
{
Global.PointChange == True;
Global.LastLastPoint == True;
}
actions
{
Global.CurrentMission = Custom String("Get to the Collection Point {0}/{1}", Count Of(Players Within Radius(Global.CurrentPoint,
10, Team 1, Off)), Number of Living Players(Team 1));
Wait(0.250, Ignore Condition);
Loop If(Global.PointChange == True);
- Declare Team Victory(Team 2);
- }
- }