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"
  • }
  • 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
  • {
  • Mercy
  • {
  • Weapons Enabled: Caduceus Staff Only
  • }
  • Reaper
  • {
  • Health: 400%
  • }
  • 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: DoorHealth
  • 1: UndeadSpawnPoints
  • 2: Score
  • 4: Junkdiff
  • 5: Reapdiff
  • 6: Mondiff
  • 7: Sumdiff
  • 8: Witchdiff
  • 9: mins
  • 10: sec
  • 11: GAMEBROKE
  • 12: Reaperintro
  • 13: Monintro
  • 14: Junkintro
  • 15: Sumintro
  • 16: Witchintro
  • 17: Damage
  • 17: BossDamage
  • 19: Effects
  • 20: Allheroes
  • 21: Forever
  • player:
  • 0: DoorPath
  • 1: DoorPathIndex
  • 2: Invis
  • 3: Finishedpath
  • 5: Lastpos
  • 6: Scoreboard
  • }
  • rule("Timer")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Global.Forever == True;
  • }
  • actions
  • {
  • Pause Match Time;
  • Create HUD Text(All Players(Team 1), Custom String("Match Time {0}:{1}", Global.mins, Global.sec), Null, Null, Top, 0, White,
  • White, White, Visible To and String, Default Visibility);
  • }
  • }
  • 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 HUD(Event Player);
  • Disable Game Mode In-World UI(Event Player);
  • Disable Game Mode HUD(Event Player);
  • }
  • }
  • 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);
  • Big 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"), Top, 0, White, White, Green,
  • 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,
  • 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
  • {
  • disabled Create Effect(All Players(All Teams), Sphere, Blue, Vector(85.024, 13.948, -89.771), 30, Visible To Position and Radius);
  • disabled Create Effect(All Players(All Teams), Sphere, Blue, Vector(89.748, 14.543, -102.709), 2, Visible To Position and Radius);
  • disabled Create Effect(All Players(All Teams), Sphere, Blue, Vector(90.352, 14.543, -115.488), 2, Visible To Position and Radius);
  • 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;
  • }
  • 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;
  • }
  • }
  • 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, Global.UndeadSpawnPoints[0]) <= 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));
  • }
  • }
  • 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(0, 0, 0));
  • 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), Custom String("DOOR HEALTH {0}%", Global.DoorHealth), Null, Null, Right, 0, White, White,
  • White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 1), Custom String("Score {0}", Global.Score), Null, Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 1), Custom String("Match Time {0}:{1}", Global.mins, Global.sec), Null, Null, Top, 0, 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;
  • All;
  • Team 1;
  • All;
  • }
  • actions
  • {
  • Global.Score += Event Damage;
  • }
  • }
  • 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(0, 0, 0));
  • Loop;
  • }
  • }
  • rule("Teleport")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Junkrat;
  • }
  • conditions
  • {
  • Distance Between(Event Player, Vector(82.019, 22.503, -64.994)) > 2;
  • Is Dummy Bot(Event Player) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Vector(82.019, 22.503, -64.994));
  • }
  • }
  • 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);
  • }
  • 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);
  • }
  • 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;
  • }
  • 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(0, 0, 0));
  • 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("Start Following")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == True;
  • Has Spawned(Event Player) == True;
  • Is Alive(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(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);
  • }
  • }
  • 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;
  • 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 Throttle In Direction(Event Player);
  • }
  • }
  • 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(0, 0, 0));
  • 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(0, 0, 0));
  • 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(0, 0, 0));
  • }
  • }
  • 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(Global.Effects[0]);
  • 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
  • {
  • 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
  • {
  • 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
  • {
  • 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(0, 0, 0));
  • 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, Global.UndeadSpawnPoints[0], Vector(0, 0, 0));
  • 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"));
  • 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(0, 0, 0));
  • 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, Global.UndeadSpawnPoints[0]) <= 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));
  • }
  • }
  • 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,
  • 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;
  • 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(0, 0, 0));
  • 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);
  • 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);
  • }
  • }
  • 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);
  • 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);
  • }
  • }
  • 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);
  • 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);
  • }
  • }
  • 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);
  • 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);
  • }
  • }
  • 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
  • {
  • Set Status(All Players(Team 1), Null, Invincible, 2);
  • 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);
  • }
  • }
  • rule("Damage")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.Damage = Workshop Setting Integer(Custom String("Difficulty"), Custom String("Boss Damage"), 100, 50, 250);
  • 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.Damage);
  • 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}%", 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));
  • }
  • }
Join the Workshop.codes Discord