Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Workshop Settings - The higher the numbers the easier the game is, the lower the numbers the harder the game is. Difficulty gets lower as game progresses. Game is 15 Mins. Made by Waitedboat4"
  • Description: "Workshop Settings - The higher the numbers the easier the game is, the lower the numbers the harder the game is. Difficulty gets higher as game progresses. Game is 15 Mins. Made by Waitedboat4#2760"
  • }
  • lobby
  • {
  • Map Rotation: Paused
  • Max Spectators: 6
  • Max Team 1 Players: 4
  • Max Team 2 Players: 0
  • Return To Lobby: Never
  • Swap Teams After Match: No
  • }
  • modes
  • {
  • Hybrid
  • {
  • enabled maps
  • {
  • Eichenwalde Halloween
  • }
  • }
  • General
  • {
  • Allow Hero Switching: Off
  • Kill Cam: Off
  • Spawn Health Packs: Disabled
  • }
  • }
  • heroes
  • {
  • Team 2
  • {
  • Junkrat
  • {
  • No Ammunition Requirement: On
  • }
  • Mercy
  • {
  • Weapons Enabled: Caduceus Staff Only
  • }
  • Reaper
  • {
  • Health: 400%
  • }
  • Sigma
  • {
  • Spawn With Ultimate Ready: On
  • }
  • Soldier: 76
  • {
  • Primary Fire: Off
  • }
  • Symmetra
  • {
  • Spawn With Ultimate Ready: On
  • }
  • Zarya
  • {
  • Health: 40%
  • }
  • Zenyatta
  • {
  • Movement Speed: 65%
  • }
  • }
  • General
  • {
  • enabled heroes
  • {
  • Ana
  • Brigitte
  • Genji
  • Hanzo
  • McCree
  • Soldier: 76
  • Torbjörn
  • Tracer
  • Widowmaker
  • Zenyatta
  • }
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 0: _extendedGlobalCollection
  • 2: Nodes
  • 3: Segments
  • 4: Attributes
  • 5: map
  • 6: _classIndexes
  • 7: _tempNodes
  • 8: _tempSegments
  • 9: _tempAttributes
  • 10: DoorHealth
  • 11: UndeadSpawnPoints
  • 12: Score
  • 13: Junkdiff
  • 14: Reapdiff
  • 15: Mondiff
  • 16: Sumdiff
  • 17: Witchdiff
  • 18: mins
  • 19: sec
  • 20: GAMEBROKE
  • 21: Reaperintro
  • 22: Monintro
  • 23: Junkintro
  • 24: Sumintro
  • 25: Witchintro
  • 26: BossDamage
  • 27: Effects
  • 28: Allheroes
  • 29: Forever
  • 30: TheMaeDiff
  • 31: TheMaeIntro
  • 32: Createmaestro
  • player:
  • 0: _extendedPlayerCollection
  • 1: DoorPath
  • 2: DoorPathIndex
  • 3: Invis
  • 4: Finishedpath
  • 5: Lastpos
  • 6: Scoreboard
  • 7: pathfinderDoGetCurrent
  • 8: pathfinderCurrent
  • 9: pathmapReference
  • 10: parentArray
  • 11: destination
  • 12: lastAttribute
  • 13: Dijkstra_Final_Path
  • 14: Dijkstra_Final_Path_Attributes
  • 15: Dijkstra_Current
  • 16: Dijkstra_Distances
  • 17: Dijkstra_Unvisited
  • 18: Dijkstra_Connected_Segments
  • 19: Dijkstra_Neighbor_Index
  • 20: Dijkstra_Distance
  • 21: Dijkstra_Neighbor_Attributes
  • 22: Dijkstra_Parent_Array
  • }
  • 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(87.490, 12.650, -70.530));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(93.410, 12.680, -72.450));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(102.730, 12.670, -73.350));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(103.750, 12.720, -78.780));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(90.900, 12.670, -76.850));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(103.520, 9.800, -87.460));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(102.180, 9.560, -92.380));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(97.720, 12.660, -78.340));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(85.080, 12.680, -77.650));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(78.850, 12.690, -99.410));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(66.450, 12.150, -95.730));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(74.890, 12.660, -66.760));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(72.400, 12.660, -71.620));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(67.580, 12.720, -70.360));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(64.760, 12.720, -76.080));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(61.620, 18.530, -87.460));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(60.900, 18.720, -92.560));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(59.470, 18.720, -98.660));
  • Modify Global Variable(_tempNodes, Append To Array, Vector(80.860, 12.670, -67.760));
  • Modify Global Variable(_tempSegments, Append To Array, Up);
  • Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 4, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 8, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 18, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(1, 4, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(1, 8, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(1, 18, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(4, 8, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(4, 18, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(8, 18, 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, 7, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(7, 4, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(3, 5, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(5, 6, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(8, 9, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(9, 10, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(18, 11, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(11, 12, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(12, 13, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(13, 14, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(14, 15, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(15, 16, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(16, 17, Empty Array));
  • Modify Global Variable(_tempSegments, Append To Array, Vector(16, 10, Empty Array));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(10, 16, 2));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(10, 16, Empty Array));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(16, 10, Empty Array));
  • Modify Global Variable(_tempAttributes, Append To Array, Vector(16, 10, -1));
  • Global.Nodes[Global._extendedGlobalCollection[1]] = Global._tempNodes;
  • Global.Segments[Global._extendedGlobalCollection[1]] = Global._tempSegments;
  • Global.Attributes[Global._extendedGlobalCollection[1]] = Global._tempAttributes;
  • Global.map = Global._extendedGlobalCollection[1];
  • }
  • }
  • rule("Pathfinder: Resolve Current")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.pathfinderDoGetCurrent == True;
  • }
  • actions
  • {
  • Event Player.pathfinderCurrent = Index Of Array Value(Global.Nodes[Event Player.pathmapReference], First Of(Sorted Array(
  • 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.pathfinderCurrent == -1 ? Event Player.destination : Global.Nodes[Event Player.pathmapReference][Event Player.pathfinderCurrent]),
  • 1, To World, Replace existing throttle, Direction and Magnitude);
  • Event Player.pathfinderDoGetCurrent = False;
  • }
  • }
  • rule("Pathfinder: Resolve Next")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Position Of(Event Player),
  • Event Player.pathfinderCurrent == -1 ? Event Player.destination : Global.Nodes[Event Player.pathmapReference][Event Player.pathfinderCurrent])
  • <= 0.400;
  • Event Player.parentArray != Null;
  • }
  • actions
  • {
  • If(Event Player.pathfinderCurrent != -1);
  • Event Player.lastAttribute = Mapped Array(Filtered Array(Global.Attributes[Event Player.pathmapReference], X Component Of(
  • Current Array Element) == Event Player.pathfinderCurrent && Y Component Of(Current Array Element)
  • == Event Player.parentArray[Event Player.pathfinderCurrent] - 1), Z Component Of(Current Array Element));
  • Event Player.pathfinderCurrent = Event Player.parentArray[Event Player.pathfinderCurrent] - 1;
  • Else;
  • Stop Throttle In Direction(Event Player);
  • Event Player.parentArray = Null;
  • End;
  • }
  • }
  • rule("Pathfind to player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • 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);
  • 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
  • {
  • Event Player._extendedPlayerCollection[0] = First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element)));
  • Event Player.Dijkstra_Final_Path = Empty Array;
  • Event Player.Dijkstra_Final_Path_Attributes = Empty Array;
  • Event Player.Dijkstra_Current = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
  • Distance Between(First Of(Event Player._extendedPlayerCollection), Current Array Element))));
  • Event Player.Dijkstra_Distances[Event Player.Dijkstra_Current] = 0.000;
  • Event Player.Dijkstra_Unvisited = Mapped Array(Global.Nodes[Global.map], Current Array Index);
  • While(Is True For Any(Event Player.Dijkstra_Unvisited, Event Player.Dijkstra_Distances[Current Array Element] != 0));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Connected_Segments = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
  • Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
  • Event Player.Dijkstra_Current));
  • Event Player._extendedPlayerCollection[1] = 0;
  • While(Event Player._extendedPlayerCollection[1] < Count Of(Event Player.Dijkstra_Connected_Segments));
  • Wait(0.016, Ignore Condition);
  • Event Player.Dijkstra_Neighbor_Index = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
  • Event Player.Dijkstra_Connected_Segments[Event Player._extendedPlayerCollection[1]])), Y Component Of(
  • Event Player.Dijkstra_Connected_Segments[Event Player._extendedPlayerCollection[1]])),
  • Current Array Element != Event Player.Dijkstra_Current));
  • Event Player.Dijkstra_Distance = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index],
  • Global.Nodes[Global.map][Event Player.Dijkstra_Current]) + Event Player.Dijkstra_Distances[Event Player.Dijkstra_Current];
  • Event Player.Dijkstra_Neighbor_Attributes = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
  • == Event Player.Dijkstra_Current && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index);
  • If((
  • Event Player.Dijkstra_Distances[Event Player.Dijkstra_Neighbor_Index] == 0 || Event Player.Dijkstra_Distance < Event Player.Dijkstra_Distances[Event Player.Dijkstra_Neighbor_Index])
  • && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes,
  • Array Contains(Null, Z Component Of(Current Array Element)))));
  • Event Player.Dijkstra_Distances[Event Player.Dijkstra_Neighbor_Index] = Event Player.Dijkstra_Distance;
  • Event Player.Dijkstra_Parent_Array[Event Player.Dijkstra_Neighbor_Index] = Event Player.Dijkstra_Current + 1;
  • End;
  • Event Player._extendedPlayerCollection[1] += 1;
  • End;
  • Modify Player Variable(Event Player, Dijkstra_Unvisited, Remove From Array By Value, Event Player.Dijkstra_Current);
  • Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
  • Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current, 2);
  • Event Player.Dijkstra_Current = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited,
  • Event Player.Dijkstra_Distances[Current Array Element] != 0), Event Player.Dijkstra_Distances[Current Array Element]));
  • End;
  • Event Player.pathmapReference = Global.map;
  • Event Player.parentArray = Event Player.Dijkstra_Parent_Array;
  • Event Player.destination = First Of(Event Player._extendedPlayerCollection);
  • Event Player.pathfinderDoGetCurrent = True;
  • Event Player.Dijkstra_Current = 0;
  • Event Player.Dijkstra_Distances = 0;
  • Event Player.Dijkstra_Connected_Segments = 0;
  • Event Player.Dijkstra_Neighbor_Index = 0;
  • Event Player.Dijkstra_Distance = 0;
  • Event Player.Dijkstra_Parent_Array = 0;
  • Wait(10, Ignore Condition);
  • Wait(5, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("Stop Pathfind to player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • 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;
  • }
  • actions
  • {
  • Event Player.parentArray = Null;
  • Stop Throttle In Direction(Event Player);
  • }
  • }
  • rule("Timer")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.Forever == True;
  • }
  • actions
  • {
  • Pause Match Time;
  • }
  • }
  • rule("Timer")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.Forever == False;
  • }
  • actions
  • {
  • Set Match Time(900);
  • }
  • }
  • rule("Disable")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Scoring;
  • Disable Game Mode In-World UI(Event Player);
  • Disable Game Mode HUD(Event Player);
  • Disable Built-In Game Mode Announcer;
  • Disable Messages(Event Player);
  • Wait(4, Ignore Condition);
  • Enable Messages(Event Player);
  • Wait(0.250, Ignore Condition);
  • Big Message(Event Player, Custom String("DEFEND THE DOOR"));
  • Small Message(Event Player, Custom String("Gamemode Created By Waitedboat4#2760"));
  • }
  • }
  • rule("Gamemode Made By Waitedboat4 - Please DO NOT Steal My Work As This Took Too Long To Make")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Small Message(All Players(All Teams), Custom String("Gamemode Created By Waitedboat4"));
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("Created By Waitedboat4"), Right, 0, White, White, Green,
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("Created By Waitedboat4#2760"), Right, 0, White, White, Green,
  • Visible To and String, Default Visibility);
  • }
  • }
  • rule("Skip Setup")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • }
  • actions
  • {
  • Set Match Time(0);
  • }
  • }
  • rule("Invis")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Sombra;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.Invis = True;
  • }
  • }
  • rule("Invis")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Sombra;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • Event Player.Invis = False;
  • }
  • }
  • rule("Barrier - Effect")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Workshop Setting Toggle(Custom String("Settings"), Custom String("Show Boundaries"), False) == True;
  • }
  • actions
  • {
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(85.024, 13.948, -89.771), 30, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(89.748, 14.543, -102.709), 2, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(90.352, 14.543, -115.488), 2, Visible To Position and Radius);
  • }
  • }
  • rule("Barrier - Push Back")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(85.024, 13.948, -89.771)) > 29;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.Lastpos = Position Of(Event Player);
  • }
  • }
  • rule("Barrier - Push Back")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(85.024, 13.948, -89.771)) > 30;
  • Is Alive(Event Player) == True;
  • Is On Ground(Event Player) == True;
  • }
  • actions
  • {
  • Abort If(Is Alive(Event Player) == False);
  • Teleport(Event Player, Event Player.Lastpos);
  • Wait(0.160, Ignore Condition);
  • Loop If(Distance Between(Event Player, Vector(85.024, 13.948, -89.771)) > 30);
  • }
  • }
  • rule("Player Spawn")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(87.559, 13.896, -69.931));
  • }
  • }
  • rule("Undead Spawn Points")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.UndeadSpawnPoints = Array(Vector(59.451, 19.973, -99.597), Vector(75.129, 11.941, -110.958), Vector(101.827, 10.854,
  • -93.440));
  • Global.DoorHealth = 2000;
  • Global.DoorHealth = Workshop Setting Integer(Custom String("Settings"), Custom String("Door Health"), 2000, 80, 9999999);
  • }
  • }
  • rule("Path to door")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Zenyatta;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Start Throttle In Direction(Event Player, Direction Towards(Event Player, Event Player.DoorPath[Event Player.DoorPathIndex]), 1,
  • To World, Replace existing throttle, Direction and Magnitude);
  • If(Distance Between(Event Player, First Of(Global.UndeadSpawnPoints)) <= 2);
  • Event Player.DoorPath = Array(Vector(61.533, 19.973, -89.165), Vector(66.128, 13.973, -73.540), Vector(69.729, 13.973, -70.517),
  • Vector(73.689, 13.910, -70.007), Vector(77.196, 13.910, -67.016), Vector(87.650, 13.969, -66.907), Vector(88.928, 14.062,
  • -63.771));
  • Else If(Distance Between(Event Player, Global.UndeadSpawnPoints[1]) <= 2);
  • Event Player.DoorPath = Vector(88.838, 14.064, -64.502);
  • Else If(Distance Between(Event Player, Global.UndeadSpawnPoints[2]) <= 2);
  • Event Player.DoorPath = Array(Vector(103.648, 11.016, -87.708), Vector(103.747, 13.976, -79.025), Vector(85.959, 13.914, -75.011),
  • Vector(88.725, 14.174, -64.664));
  • End;
  • }
  • }
  • rule("Zomnics Explode")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Zenyatta;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Vector(88.946, 14.053, -63.987)) <= 2;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • Wait(1, Ignore Condition);
  • Abort If(Is Alive(Event Player) == False);
  • Play Effect(All Players(All Teams), Bad Explosion, Red, Event Player, 5);
  • Damage(Players Within Radius(Event Player, 5, Opposite Team Of(Team Of(Event Player)), Surfaces And Enemy Barriers), Event Player,
  • 40);
  • Global.DoorHealth -= 80;
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • }
  • }
  • rule("Create Zomnics")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Number of Heroes(Hero(Zenyatta), Team 2) < 4;
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(Random Integer(2, 5), Ignore Condition);
  • Create Dummy Bot(Hero(Zenyatta), Team 2, -1, Random Value In Array(Global.UndeadSpawnPoints), Vector(Empty Array, Empty Array,
  • Empty Array));
  • Loop If(Number of Heroes(Hero(Zenyatta), Team 2) < 4);
  • }
  • }
  • rule("Zomnics Path")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Zenyatta;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Event Player.DoorPath[Event Player.DoorPathIndex]) <= 2;
  • Event Player.DoorPathIndex < Count Of(Event Player.DoorPath);
  • }
  • actions
  • {
  • Event Player.DoorPathIndex += 1;
  • }
  • }
  • rule("Bots Die")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Destroy Dummy Bot(Team Of(Event Player), Slot Of(Event Player));
  • }
  • }
  • rule("HUD")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create HUD Text(All Players(Team 1), Null, Null, Custom String("{1} {0}%"), Top, 1, White, White, White, Visible To and String,
  • Default Visibility);
  • Create HUD Text(All Players(Team 1), Custom String("Team Score: {0}"), Null, Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 1), Null, Null, Custom String("DEFEND THE DOOR | {0}:{1}"), Top, 0, White, White, White,
  • Create HUD Text(All Players(Team 1), Null, Null, Custom String("{1} {0}%", Global.DoorHealth, Icon String(Plus)), Top, 1, White,
  • White, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 1), Custom String("Team Score: {0}", Global.Score), Null, Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 1), Null, Null, Custom String("DEFEND THE DOOR | {0}:{1}", Global.mins, Global.sec), Top, 0,
  • White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Score")
  • {
  • event
  • {
  • Player Dealt Damage;
  • Team 1;
  • All;
  • }
  • actions
  • {
  • Global.Score += Event Damage;
  • }
  • }
  • rule("Create Maestro")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.Createmaestro = Workshop Setting Toggle(Custom String("Experimental Settings"), Custom String("The Maestro"), False);
  • }
  • }
  • rule("Create Junkenstein")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(Global.Junkdiff, Ignore Condition);
  • Create Dummy Bot(Hero(Junkrat), Team 2, -1, Vector(82.019, 22.503, -64.994), Vector(Empty Array, Empty Array, Empty Array));
  • Loop;
  • }
  • }
  • rule("Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Team 2;
  • Junkrat;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(82.019, 22.503, -64.994)) > 2;
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Vector(82.019, 22.503, -64.994)) > 2;
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(82.019, 22.503, -64.994));
  • Start Forcing Player Position(Event Player, Vector(82.019, 22.503, -64.994), True);
  • Wait(0.250, Ignore Condition);
  • Stop Forcing Player Position(Event Player);
  • }
  • }
  • rule("Health")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Junkrat;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Set Max Health(Event Player, 1125);
  • Wait(0.250, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • Set Move Speed(Event Player, 1000);
  • }
  • }
  • rule("Facing")
  • {
  • 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);
  • Hero Of(Event Player) != Hero(Reaper);
  • Hero Of(Event Player) != Hero(Zarya);
  • Hero Of(Event Player) != Hero(Junkrat);
  • Hero Of(Event Player) != Hero(Sigma);
  • }
  • 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("Facing")
  • {
  • 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);
  • Hero Of(Event Player) != Hero(Reaper);
  • Hero Of(Event Player) != Hero(Roadhog);
  • Hero Of(Event Player) != Hero(Symmetra);
  • }
  • 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("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(Reaper);
  • Hero Of(Event Player) != Hero(Sigma);
  • }
  • 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);
  • Hero Of(Event Player) != Hero(Zarya);
  • 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);
  • }
  • actions
  • {
  • Stop Holding Button(Event Player, Primary Fire);
  • Stop 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;
  • }
  • actions
  • {
  • 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;
  • }
  • actions
  • {
  • Stop 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;
  • }
  • actions
  • {
  • 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;
  • }
  • actions
  • {
  • Stop Holding Button(Event Player, Secondary Fire);
  • }
  • }
  • rule("Create Junkenstein's Monster")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(Global.Mondiff, Ignore Condition);
  • Create Dummy Bot(Hero(Roadhog), Team 2, -1, Vector(80.076, 14.239, -98.538), Vector(Empty Array, Empty Array, Empty Array));
  • Loop;
  • }
  • }
  • rule("Go to Door")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Roadhog;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Start Throttle In Direction(Event Player, Direction Towards(Event Player, Vector(86.653, 14.196, -71.812)), 1, To World,
  • Replace existing throttle, Direction and Magnitude);
  • Set Max Health(Event Player, 633);
  • Wait(0.250, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • }
  • }
  • rule("Start Following")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Roadhog;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Distance Between(Event Player, Vector(86.653, 14.196, -71.812)) <= 2;
  • }
  • actions
  • {
  • Start Throttle In Direction(Event Player, Direction Towards(Event Player, Filtered Array(Sorted Array(Filtered Array(
  • Filtered Array(Players in View Angle(Event Player, Opposite Team Of(Team Of(Event Player)), 180), Is In Line of Sight(
  • Event Player, Current Array Element, Barriers Do Not Block LOS)), Is Alive(Current Array Element)), Distance Between(
  • Event Player, Current Array Element)), Current Array Element.Invis == False)), 1, To World, Replace existing throttle,
  • Direction and Magnitude);
  • Event Player.Finishedpath = True;
  • }
  • }
  • rule("Stop Following")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • 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, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))), Distance Between(
  • Event Player, Current Array Element)))) <= 3;
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • }
  • }
  • rule("Sym Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Symmetra;
  • }
  • conditions
  • {
  • Ultimate Charge Percent(Event Player) == 100;
  • Is Dummy Bot(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.500, Ignore Condition);
  • Press Button(Event Player, Ultimate);
  • Wait(0.250, Ignore Condition);
  • Press Button(Event Player, Ultimate);
  • Wait(1, Ignore Condition);
  • Press Button(Event Player, Primary Fire);
  • }
  • }
  • rule("Ability 1 - Reaper")
  • {
  • event
  • {
  • Player Took Damage;
  • All;
  • 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("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);
  • }
  • actions
  • {
  • Press Button(Event Player, Ability 1);
  • }
  • }
  • 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;
  • }
  • actions
  • {
  • Wait(0.250, Ignore Condition);
  • Press Button(Event Player, Ability 1);
  • }
  • }
  • 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;
  • }
  • actions
  • {
  • Press Button(Event Player, Ability 2);
  • }
  • }
  • rule("ULT")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Ultimate Charge Percent(Event Player) == 100;
  • 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;
  • }
  • actions
  • {
  • Press Button(Event Player, Ultimate);
  • }
  • }
  • rule("Create The Witch")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(Global.Witchdiff, Ignore Condition);
  • Create Dummy Bot(Hero(Mercy), Team 2, -1, Vector(83.339, 14.454, -94.776), Vector(Empty Array, Empty Array, Empty Array));
  • Loop;
  • }
  • }
  • rule("Revive")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Mercy;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • 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(82.019, 22.503, -64.994), Vector(Empty Array, Empty Array, Empty Array));
  • }
  • }
  • rule("Revive")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • 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;
  • }
  • 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("Health")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Mercy;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Set Max Health(Event Player, 800);
  • Wait(0.250, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • }
  • }
  • rule("Witch Heal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Mercy;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Players On Hero(Hero(Roadhog), Team 2)) > 3;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Start Throttle In Direction(Event Player, Direction Towards(Event Player, Players On Hero(Hero(Roadhog), Team 2)), 1, To World,
  • Replace existing throttle, Direction and Magnitude);
  • Start Facing(Event Player, Direction Towards(Event Player, First Of(Sorted Array(Players On Hero(Hero(Roadhog), Team 2),
  • Distance Between(Event Player, Current Array Element)))), 200, To World, Direction and Turn Rate);
  • }
  • }
  • rule("Witch Heal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Mercy;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Players On Hero(Hero(Roadhog), Team 2)) <= 3;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • }
  • }
  • rule("Witch Heal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • 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("Lose")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Number of Living Players(Team 1) == 0;
  • Is Game In Progress == True;
  • Global.Forever == False;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Respawning(Event Player);
  • Declare Team Victory(Team 2);
  • }
  • }
  • rule("Lose")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Number of Living Players(Team 1) == 0;
  • Is Game In Progress == True;
  • Global.Forever == True;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Respawning(Event Player);
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("Win")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Match Time == 0;
  • Is Game In Progress == True;
  • Global.Forever == False;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Respawning(Event Player);
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("Create The Reaper")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(Global.Reapdiff, Ignore Condition);
  • Create Dummy Bot(Hero(Reaper), Team 2, -1, Vector(62.376, 20.399, -92.766), Vector(Empty Array, Empty Array, Empty Array));
  • Loop;
  • }
  • }
  • rule("Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Reaper;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Start Facing(Event Player, Direction Towards(Event Player, Vector(85.495, 13.932, -77.854)), 500, To World,
  • Direction and Turn Rate);
  • Wait(0.500, Ignore Condition);
  • Stop Facing(Event Player);
  • Press Button(Event Player, Ability 2);
  • Wait(0.500, Ignore Condition);
  • Press Button(Event Player, Primary Fire);
  • Wait(2, Ignore Condition);
  • Event Player.Finishedpath = True;
  • 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("Wraith")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • 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;
  • Team 2;
  • Reaper;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • Start Holding Button(Event Player, Primary Fire);
  • }
  • }
  • rule("Create The Summoner")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(Global.Sumdiff, Ignore Condition);
  • Create Dummy Bot(Hero(Symmetra), Team 2, -1, First Of(Global.UndeadSpawnPoints), Vector(Empty Array, Empty Array, Empty Array));
  • Loop;
  • }
  • }
  • rule("Path")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Symmetra;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Set Max Health(Event Player, 750);
  • Wait(0.250, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • Event Player.DoorPathIndex = 0;
  • Event Player.DoorPath = Array(Vector(61.533, 19.973, -89.165), Vector(66.128, 13.973, -73.540), Vector(69.729, 13.973, -70.517),
  • Vector(73.689, 13.910, -70.007), Vector(77.196, 13.910, -67.016), Vector(87.650, 13.969, -66.907));
  • Start Throttle In Direction(Event Player, Direction Towards(Event Player, Event Player.DoorPath[Event Player.DoorPathIndex]), 1,
  • To World, Replace existing throttle, Direction and Magnitude);
  • }
  • }
  • rule("Symmetra Path")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Symmetra;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Event Player.DoorPath[Event Player.DoorPathIndex]) <= 2;
  • Event Player.DoorPathIndex < Count Of(Event Player.DoorPath);
  • }
  • actions
  • {
  • Event Player.DoorPathIndex += 1;
  • }
  • }
  • rule("Symmetra Path")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Symmetra;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Event Player.DoorPathIndex == 5;
  • }
  • actions
  • {
  • Event Player.Finishedpath = True;
  • }
  • }
  • rule("Lose")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.DoorHealth <= 0;
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Big Message(All Players(All Teams), Custom String("DOOR DESTROYED"));
  • Disable Built-In Game Mode Respawning(All Players(Team 1));
  • Wait(1, Ignore Condition);
  • Declare Team Victory(Team 2);
  • }
  • }
  • rule("Create Zombardiers")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Number of Heroes(Hero(Zarya), Team 2) < 2;
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(Random Integer(10, 30), Ignore Condition);
  • 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) < 2);
  • }
  • }
  • 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("Path to door")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Zarya;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.DoorPathIndex = 0;
  • Start Throttle In Direction(Event Player, Direction Towards(Event Player, Event Player.DoorPath[Event Player.DoorPathIndex]), 1,
  • To World, Replace existing throttle, Direction and Magnitude);
  • If(Distance Between(Event Player, First Of(Global.UndeadSpawnPoints)) <= 2);
  • Event Player.DoorPath = Array(Vector(60.330, 20.148, -93.199), Vector(62.059, 20.270, -93.685));
  • Else If(Distance Between(Event Player, Global.UndeadSpawnPoints[1]) <= 2);
  • Event Player.DoorPath = Vector(81.578, 13.933, -93.675);
  • Else If(Distance Between(Event Player, Global.UndeadSpawnPoints[2]) <= 2);
  • Event Player.DoorPath = Array(Vector(103.594, 11.102, -88.685), Vector(104.527, 14.137, -77.604), Vector(102.692, 14.090, -73.167),
  • Vector(95.201, 14.121, -73.396));
  • End;
  • }
  • }
  • rule("Stop")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Zarya;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Last Of(Event Player.DoorPath)) <= 2;
  • Is Dummy Bot(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Stop Throttle In Direction(Event Player);
  • }
  • }
  • rule("Zarya Path")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Zarya;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Distance Between(Event Player, Event Player.DoorPath[Event Player.DoorPathIndex]) <= 2;
  • Event Player.DoorPathIndex < Count Of(Event Player.DoorPath);
  • }
  • actions
  • {
  • Event Player.DoorPathIndex += 1;
  • }
  • }
  • rule("Spawn No Heal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Spawn Room(Event Player) == True;
  • }
  • actions
  • {
  • Set Healing Received(Event Player, 0);
  • }
  • }
  • rule("Spawn No Heal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Spawn Room(Event Player) == False;
  • }
  • actions
  • {
  • Set Healing Received(Event Player, 100);
  • }
  • }
  • rule("Barrier - Push Back")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Spawn Room(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Abort If(Is Alive(Event Player) == False);
  • Teleport(Event Player, Vector(87.606, 14.069, -101.705));
  • Wait(0.160, Ignore Condition);
  • Loop If(Is In Spawn Room(Event Player) == True);
  • }
  • }
  • rule("Hardness")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.Reapdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("The Reaper Difficulty"), 150, 10, 500);
  • Global.Mondiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("Junkenstein's Monster Difficulty"), 200, 10,
  • 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);
  • Global.TheMaeDiff = Workshop Setting Integer(Custom String("Experimental Settings"), Custom String("The Maestro Delay"), 400, 10,
  • 500);
  • Global.Sumdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("The Summoner Difficulty"), 250, 10, 500);
  • Global.Junkdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("Dr Junkenstein Difficulty"), 300, 10, 500);
  • Global.Witchdiff = Workshop Setting Integer(Custom String("Difficulty"), Custom String("The Witch Difficulty"), 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;
  • Skip If(Global.TheMaeDiff <= 10, 1);
  • Global.TheMaeDiff -= 10;
  • Loop If(Is Game In Progress == True);
  • }
  • }
  • rule("Mins")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.sec == 59;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Global.mins += 1;
  • }
  • }
  • rule("Sec")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Global.sec += 1;
  • Loop If(Is Game In Progress == True);
  • }
  • }
  • rule("Sec")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.sec == 60;
  • }
  • actions
  • {
  • Global.sec = 0;
  • }
  • }
  • rule("Shooting - Reaper")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Reaper;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Event Player.Finishedpath == 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, Primary Fire);
  • }
  • }
  • rule("Create Zomnics - Game Broke")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Number of Heroes(Hero(Zenyatta), Team 2) < 4;
  • Is Game In Progress == True;
  • Global.GAMEBROKE == True;
  • }
  • actions
  • {
  • Wait(Random Integer(2, 5), Ignore Condition);
  • Create Dummy Bot(Hero(Zenyatta), Team 2, -1, Random Value In Array(Global.UndeadSpawnPoints), Vector(Empty Array, Empty Array,
  • Empty Array));
  • Loop If(Number of Heroes(Hero(Zenyatta), Team 2) < 4);
  • }
  • }
  • rule("Broke Verify")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Number of Heroes(Hero(Zenyatta), Team 2) == 0;
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Wait(6, Abort When False);
  • Big Message(All Players(All Teams), Custom String("GAME BROKEN Fixing..."));
  • Wait(1, Ignore Condition);
  • Global.GAMEBROKE = True;
  • Wait(0.250, Ignore Condition);
  • Global.GAMEBROKE = False;
  • }
  • }
  • 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);
  • Global.Reaperintro = True;
  • Set Status(All Players(Team 1), Null, Invincible, 2);
  • Start Camera(All Players(Team 1), Vector(64.829, 20.727, -91.771), Eye Position(Players On Hero(Hero(Reaper), Team 2)), 0);
  • Big Message(All Players(All Teams), Custom String("The Reaper"));
  • Wait(2, Ignore Condition);
  • 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.DoorHealth != Event Player;
  • }
  • actions
  • {
  • Set Status(All Players(Team 1), Null, Invincible, 2);
  • Disable Hero HUD(Event Player);
  • Set Slow Motion(35);
  • Global.Junkintro = True;
  • Start Camera(All Players(Team 1), Vector(82.489, 22.749, -67.924), Eye Position(Players On Hero(Hero(Junkrat), Team 2)), 0);
  • Big Message(All Players(All Teams), Custom String("Dr Junkenstein"));
  • Wait(2, Ignore Condition);
  • 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);
  • Global.Monintro = True;
  • Start Camera(All Players(Team 1), Vector(84.170, 14.557, -91.100), 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);
  • 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);
  • Global.Witchintro = True;
  • Start Camera(All Players(Team 1), Vector(85.866, 14.398, -99.525), Eye Position(Players On Hero(Hero(Mercy), Team 2)), 0);
  • Big Message(All Players(All Teams), Custom String("The Witch"));
  • Wait(2, Ignore Condition);
  • 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);
  • Global.Sumintro = True;
  • Start Camera(All Players(Team 1), Vector(59.837, 20.211, -96.009), Eye Position(Players On Hero(Hero(Symmetra), Team 2)), 0);
  • Big Message(All Players(All Teams), Custom String("The Summoner"));
  • Wait(2, Ignore Condition);
  • Stop Camera(All Players(Team 1));
  • Set Slow Motion(100);
  • Enable Hero HUD(Event Player);
  • Disable Messages(Event Player);
  • }
  • }
  • rule("Maestro Intro")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Global.TheMaeIntro == 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);
  • Global.TheMaeIntro = True;
  • Start Camera(All Players(Team 1), Vector(85.658, 20.763, -77.302), Eye Position(Players On Hero(Hero(Sigma), Team 2)), 0);
  • Big Message(All Players(All Teams), Custom String("The Maestro"));
  • Wait(2, Ignore Condition);
  • Stop Camera(All Players(Team 1));
  • Set Slow Motion(100);
  • Enable Hero HUD(Event Player);
  • }
  • }
  • rule("Damage")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.BossDamage = Workshop Setting Integer(Custom String("Difficulty"), Custom String("Boss Damage"), 100, 50, 250);
  • }
  • }
  • rule("Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Set Damage Dealt(All Players(Team 2), Global.BossDamage);
  • }
  • }
  • rule("Allowed heroes")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.Allheroes = Workshop Setting Toggle(Custom String("Settings"), Custom String("All Heroes"), False);
  • }
  • }
  • rule("Allowed heroes")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Allheroes == True;
  • }
  • actions
  • {
  • Set Player Allowed Heroes(Event Player, All Heroes);
  • }
  • }
  • rule("Allowed heroes")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.Allheroes == False;
  • }
  • actions
  • {
  • Set Player Allowed Heroes(Event Player, Array(Hero(Genji), Hero(Hanzo), Hero(McCree), Hero(Soldier: 76), Hero(Torbjörn), Hero(
  • Tracer), Hero(Widowmaker), Hero(Ana), Hero(Brigitte), Hero(Zenyatta)));
  • }
  • }
  • rule("Forever")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.Forever = Workshop Setting Toggle(Custom String("Settings"), Custom String("Never Ending Mode"), False);
  • }
  • }
  • rule("Scoreboard")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • actions
  • {
  • Create HUD Text(All Players(Team 1), Null, Null, Custom String("{0} {1} {2}%"), Left, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 1), Null, Null, Custom String("{0} | {1} | {2}%", Event Player, Event Player.Scoreboard,
  • Ultimate Charge Percent(Event Player)), Left, 2, White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Scoreboard")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Event Player.Scoreboard += Event Damage;
  • }
  • }
  • rule("Shorter Assemble Heroes")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Assembling Heroes == True;
  • }
  • actions
  • {
  • Wait(0.160, Abort When False);
  • Set Match Time(8);
  • Loop If(Number of Living Players(Team 1) < Number of Players(Team 1));
  • }
  • }
  • rule("Invincible")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • All;
  • }
  • conditions
  • {
  • Has Status(Event Player, Invincible) == False;
  • }
  • actions
  • {
  • If(Workshop Setting Toggle(Custom String("Settings"), Custom String("Invincible Mode"), False) == True);
  • Set Status(Event Player, Null, Invincible, 9999);
  • Else;
  • Clear Status(Event Player, Invincible);
  • }
  • }
  • rule("Create The Maestro")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.Createmaestro == True;
  • }
  • actions
  • {
  • Wait(Global.TheMaeDiff, Ignore Condition);
  • Create Dummy Bot(Hero(Sigma), Team 2, -1, Vector(83.198, 14.183, -87.143), Vector(Empty Array, Empty Array, Empty Array));
  • Loop;
  • }
  • }
  • rule("Spawn and Ult")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • Ultimate Charge Percent(Event Player) == 100;
  • }
  • actions
  • {
  • Press Button(Event Player, Ultimate);
  • Start Holding Button(Event Player, Jump);
  • Wait(0.500, Ignore Condition);
  • Stop Holding Button(Event Player, Jump);
  • Wait(0.500, Ignore Condition);
  • Press Button(Event Player, Primary Fire);
  • Wait(0.500, Ignore Condition);
  • Event Player.Finishedpath = True;
  • }
  • }
  • rule("Health")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Set Max Health(Event Player, 1125);
  • Wait(0.250, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • }
  • }
  • rule("Shooting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • 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
  • {
  • Start Holding Button(Event Player, Primary Fire);
  • }
  • }
  • rule("Shooting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • 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;
  • Is Dummy Bot(Event Player) == True;
  • Event Player.Finishedpath == True;
  • }
  • actions
  • {
  • Stop Holding Button(Event Player, Primary Fire);
  • }
  • }
  • rule("Sigma Black Hole")
  • {
  • event
  • {
  • Player Took Damage;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Press Button(Event Player, Ability 1);
  • }
  • }
  • rule("Sigma Shield")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True;
  • }
  • actions
  • {
  • Wait(5, Ignore Condition);
  • Press Button(Event Player, Secondary Fire);
  • Start Holding Button(Event Player, Secondary Fire);
  • Wait(0.300, Ignore Condition);
  • Stop Holding Button(Event Player, Secondary Fire);
  • Loop If(Is In Line of Sight(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
  • Distance Between(Event Player, Current Array Element))), Barriers Do Not Block LOS) == True);
  • }
  • }
  • rule("Rock")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Sigma;
  • }
  • conditions
  • {
  • 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;
  • Ability Cooldown(Event Player, Button(Ability 2)) == 0;
  • }
  • actions
  • {
  • Press Button(Event Player, Ability 2);
  • Wait(0.500, Ignore Condition);
  • Loop If(Ability Cooldown(Event Player, Button(Ability 2)) == 0);
  • }
  • }
Join the Workshop.codes Discord