Return to post
- 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
- 19: Effects
- 20: Allheroes
- 21: Forever
- player:
- 0: DoorPath
- 1: DoorPathIndex
- 2: Invis
- 3: Finishedpath
- }
- 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 HUD(Event Player);
- Disable Game Mode In-World UI(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,
- 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;
- }
- 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)) > 30;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Abort If(Is Alive(Event Player) == False);
- Apply Impulse(Event Player, Direction Towards(Event Player, Vector(85.024, 13.948, -89.771)), 70, To World,
- Cancel Contrary Motion);
- Wait(0.250, 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,
- White, White, Visible To and String, Default Visibility);
- }
- }
- rule("Score")
- {
- event
- {
- Player Dealt Damage;
- All;
- All;
- }
- actions
- {
- Global.Score += Event Damage;
- }
- }
- rule("Create Junkenstein")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Wait(Global.Junkdiff, Abort When False);
- Create Dummy Bot(Hero(Junkrat), Team 2, -1, Vector(82.019, 22.503, -64.994), Vector(0, 0, 0));
- Loop;
- }
- }
- rule("Move")
- {
- 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
- {
- Start Throttle In Direction(Event Player, Direction Towards(Event Player, Vector(82.019, 22.503, -64.994)), 1, To World,
- Replace existing throttle, Direction and Magnitude);
- }
- }
- rule("Stop Move")
- {
- 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
- {
- Stop Throttle In Direction(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);
- }
- actions
- {
- Skip If(Hero Of(Event Player) == Hero(Junkrat), 2);
- Skip If(Hero Of(Event Player) == Hero(Zarya), 1);
- 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);
- Abort If(Hero Of(Event Player) != Hero(Junkrat));
- Abort If(Hero Of(Event Player) != Hero(Zarya));
- 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, Abort When False);
- 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")
- {
- 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;
- }
- 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, Abort When False);
- 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, Abort When False);
- 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, Abort When False);
- 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), Abort When False);
- 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);
- }
- }
- 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);
- }
- }
- 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);
- }
- }