Return to post
- settings
- {
- main
- {
- Description: "Junkenstein: The Hidden Truth PVE - made by Waitedboat4#2760 - v3.2: Mercy Circles Pocket"
- }
- 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
- 11: TeamScore
- 12: Health
- 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
- 3: pathfinderDoGetCurrent
- 4: Finishedpath
- 5: pathmapReference
- 6: Scoreboard
- 7: destination
- 8: lastAttribute
- 9: Dijkstra_Final_Path
- 10: parentArray
- 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));
- 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(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(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, 6, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(6, 7, 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(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));
- Global.Nodes[Global._extendedGlobalCollection[1]] = Global._tempNodes;
- Global.Segments[Global._extendedGlobalCollection[1]] = Global._tempSegments;
- Global.Attributes[Global._extendedGlobalCollection[1]] = Global._tempAttributes;
- Global.map = Global._extendedGlobalCollection[1];
- }
- }
- rule("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;
- }
- }
- 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);
- }
- }
- 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);
- }
- }
- 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);
- 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;
- }
- actions
- {
- Start Facing(Event Player, Direction Towards(Event Player, Event Player._extendedPlayerCollection[2]), 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("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;
- }
- 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;
- Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
- }
- }
- 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;
- }
- }
- 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);
- }
- }
- 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;
- 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;
- }
- 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;
- Else;
- Stop Throttle In Direction(Event Player);
- Event Player.Scoreboard = 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_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.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")
- {
- 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(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(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));
- 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
- {
- 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.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;
- 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));
- }
- }
- 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.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);
- 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));
- 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);
- Wait(1, Ignore Condition);
- Press Button(Event Player, Ultimate);
- Wait(0.250, Ignore Condition);
- Press Button(Event Player, Primary Fire);
- Wait(1, Ignore Condition);
- }
- }
- 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.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.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.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);
- 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("Symmetra Health")
- rule("Junkrat Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
Symmetra;
- 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, 1300, True, True);
Set Damage Dealt(Event Player, 25);
- 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, 1600, True, True);
Set Damage Dealt(Event Player, 50);
- 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, 1800, True, True);
Set Damage Dealt(Event Player, 75);
- 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, 2100, True, True);
- Add Health Pool To Player(Event Player, Health, 3050, True, True);
- }
- }
rule("Junkrat Health")
- rule("Roadhog Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
Junkrat;
- Roadhog;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
Set Damage Dealt(Event Player, 41);
- 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);
- 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, 2550, True, True);
- 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, 2800, True, True);
- 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, 3050, True, True);
- Add Health Pool To Player(Event Player, Health, 4000, True, True);
- Set Damage Dealt(Event Player, 100);
- }
- }
rule("Roadhog Health")
- rule("Symmetra Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
Roadhog;
- 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, 3200, True, True);
- 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, 3650, True, True);
- 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, 3900, True, True);
- 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, 4000, True, True);
Set Damage Dealt(Event Player, 80);
- 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);
Set Healing Dealt(Event Player, 200);
- 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);
Set Healing Dealt(Event Player, 400);
- }
- }
- 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")
- {
- 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;
- }
- 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);
- }
- }