Return to post
- settings
- {
- main
- {
Description: "Yeti Hunter Boss Battle - made by Waitedboat4#2760 - Update v2 - Add AI Feature"
- Description: "Yeti Hunter Boss Battle - made by Waitedboat4#2760 - Update v2.1 - General Updates"
- }
- lobby
- {
- Max Team 2 Players: 5
- Return To Lobby: Never
- }
- modes
- {
- Elimination
- {
- enabled maps
- {
- Nepal Village
- }
- }
- General
- {
- Hero Limit: Off
- Score To Win: 1
- Tiebreaker After Match Time Elapsed: 300
- }
- }
- heroes
- {
- Team 1
- {
- enabled heroes
- {
- Winston
- }
- }
- Team 2
- {
- enabled heroes
- {
- Mei
- }
- }
- General
- {
- Mei
- {
- Healing Received: 200%
- }
- Winston
- {
Damage Dealt: 150%
- Damage Dealt: 160%
- Ultimate Duration: 200%
- Ultimate Generation - Combat Primal Rage: 0%
- Ultimate Generation - Passive Primal Rage: 0%
- Ultimate Generation Primal Rage: 10%
- }
- }
- }
- workshop
- {
- Add AI: On
- Max Amount of Mei AI: 1
- }
- }
- variables
- {
- global:
- 0: _extendedGlobalCollection
- 2: Nodes
- 3: Segments
- 4: Attributes
- 5: map
- 6: _classIndexes
- 7: _tempNodes
- 8: _tempSegments
- 9: _tempAttributes
- 10: MeatPos
- 11: Lives
- 12: LivesYetiPOV
- 13: MeatEaten
- 14: UltTimer
- 15: UltText
- 16: Preulthealth
- 17: EffectIndex
- 18: EffectArray
- 19: Ulted
- 20: TextArray
- 21: TempMeatPos
- 22: Intro
- 23: AddAI
- 24: YetiHUDChange
- 25: HuntersHUDChange
- player:
- 0: _extendedPlayerCollection
- 1: pathfinderDoGetCurrent
- 2: pathfinderCurrent
- 3: pathmapReference
- 4: parentArray
- 5: destination
- 6: lastAttribute
- 7: Dijkstra_Final_Path
- 8: Dijkstra_Final_Path_Attributes
- 9: Dijkstra_Current
- 10: Dijkstra_Distances
- 11: Dijkstra_Unvisited
- 12: Dijkstra_Connected_Segments
- 13: Dijkstra_Neighbor_Index
- 14: Dijkstra_Distance
- 15: Dijkstra_Neighbor_Attributes
- 16: Dijkstra_Parent_Array
- 27: Dijkstra_Final_Path_1
- 28: Dijkstra_Final_Path_Attributes_1
- 29: Dijkstra_Current_1
- 30: Dijkstra_Distances_1
- 31: Dijkstra_Unvisited_1
- 32: Dijkstra_Connected_Segments_1
- 33: Dijkstra_Neighbor_Index_1
- 34: Dijkstra_Distance_1
- 35: Dijkstra_Neighbor_Attributes_1
- 36: Dijkstra_Parent_Array_1
- 37: Dijkstra_Final_Path_2
- 38: Dijkstra_Final_Path_Attributes_2
- 39: Dijkstra_Current_2
- 40: Dijkstra_Distances_2
- 41: Dijkstra_Unvisited_2
- 42: Dijkstra_Connected_Segments_2
- 43: Dijkstra_Neighbor_Index_2
- 44: Dijkstra_Distance_2
- 45: Dijkstra_Neighbor_Attributes_2
- 46: Dijkstra_Parent_Array_2
- 47: Dijkstra_Final_Path_3
- 48: Dijkstra_Final_Path_Attributes_3
- 49: Dijkstra_Current_3
- 50: Dijkstra_Distances_3
- 51: Dijkstra_Unvisited_3
- 52: Dijkstra_Connected_Segments_3
- 53: Dijkstra_Neighbor_Index_3
- 54: Dijkstra_Distance_3
- 55: Dijkstra_Neighbor_Attributes_3
- 56: Dijkstra_Parent_Array_3
- }
- 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(-159.980, -97.520, 78.310));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-141.510, -94.400, 69.970));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-158.780, -98.130, 63.960));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-164.080, -98.790, 59.010));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-184.780, -98.280, 65.830));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-182.310, -99.160, 71.090));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-158.760, -90.390, 45.180));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-160.740, -89.990, 40.950));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-177.480, -90, 41.550));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-162.850, -88, 25.650));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-177.900, -90, 35.310));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-180.900, -90, 35.350));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-180.890, -90, 20.340));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-197.300, -94.700, 41.960));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-192.920, -98.500, 61.080));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-200.910, -94, 30.250));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-193.360, -94.260, 28.290));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-192.800, -94.130, 12.820));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-171.840, -92.010, 13.860));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-162.560, -92.040, 13.930));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-171.170, -92, 20.070));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-163.050, -92, 20));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-161.690, -89.200, -0.220));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-161.930, -92.020, -13.520));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-190.140, -87, 0.070));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-189.900, -87, 5.510));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-199.620, -87, 5.720));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-200.600, -87, 0.100));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-198.220, -87, -5.500));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-190.980, -87, -5.060));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-220.310, -88.210, -0.080));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-219.100, -92.210, 21.310));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-201.650, -94, 21.030));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-202.430, -94.120, 13.010));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-219.010, -92.210, -22.530));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-202.110, -94, -20.880));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-202.710, -94.130, -13.810));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-171.390, -92.030, -13.550));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-162.320, -88, 18.940));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-157.130, -88, 18.510));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-158.230, -89.120, 4.870));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-158.710, -89.050, -3.550));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-157.120, -88, -19.750));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-161.300, -88, -19.410));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-162.450, -89.270, -29.620));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-159.090, -97.520, -78.750));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-158.920, -98.010, -62.720));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-163.830, -98.750, -59));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-183.390, -98.190, -65.880));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-181.360, -99.170, -70.220));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-158.720, -90.480, -45.950));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-160, -90.040, -42.290));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-176.840, -90, -41.550));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-177.470, -90, -35.130));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-180.710, -90, -34.310));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-180.520, -90, -20.210));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-170.960, -92, -19.710));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-161.780, -92, -19.300));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-192.970, -94.190, -14.020));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-192.910, -94.280, -27.300));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-188.070, -93.960, -26.600));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-187.880, -93.900, -35.430));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-194.070, -94.380, -36.860));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-198.070, -95.630, -48.560));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-191.710, -98.480, -62.660));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-196.120, -94.640, -42));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-164.100, -98.290, -52.840));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-172.380, -94.410, -30.770));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-205, -94.020, -0.530));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-205.110, -94.020, -6.530));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-220.170, -94.040, -5.710));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-219.750, -93.570, Empty Array));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-219.710, -94.020, 5.770));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-205.020, -94.020, 5.210));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-212.630, -94, -0.080));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-213.590, -94, -5.740));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-212.520, -94, 5.290));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-185.720, -94.150, 12.550));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-184.370, -94.110, 0.670));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-184.450, -94.020, -13.820));
- Modify Global Variable(_tempNodes, Append To Array, Vector(-171.920, -94.350, 29.140));
- Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 2, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(Empty Array, 3, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(2, 3, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(3, 4, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(4, 5, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(5, 2, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(5, Empty Array, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Up);
- Modify Global Variable(_tempSegments, Append To Array, Vector(1, 6, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(6, 2, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(6, 7, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(7, 8, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(7, 9, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(8, 10, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(10, 11, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(11, 12, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(4, 14, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(14, 13, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(13, 8, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(13, 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(18, 19, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(12, 20, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(20, 21, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(21, 19, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(18, 20, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(19, 22, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(22, 23, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(22, 24, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(24, 25, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(25, 26, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(26, 27, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(27, 28, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(28, 29, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(29, 24, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(27, 30, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(30, 31, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(31, 32, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(32, 33, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(33, 17, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(30, 34, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(34, 35, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(35, 36, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(23, 37, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(22, 40, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(40, 39, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(39, 38, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(38, 9, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(22, 41, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(41, 42, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(42, 43, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(43, 44, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(41, 40, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(45, 46, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(45, 47, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(46, 47, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(47, 48, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(48, 49, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(49, 46, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(49, 45, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(46, 50, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(50, 51, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(51, 44, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(51, 52, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(52, 53, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(53, 54, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(54, 55, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(55, 56, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(56, 57, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(56, 37, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(23, 57, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(58, 36, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(58, 59, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(59, 60, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(60, 61, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(61, 62, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(63, 64, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(64, 48, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(62, 65, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(65, 63, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(65, 52, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(47, 66, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(66, 67, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(67, 60, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(33, 68, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(68, 69, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(70, 71, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(71, 72, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(73, 68, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(71, 74, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(74, 75, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(75, 69, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(75, 70, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(72, 76, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(76, 73, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(74, 76, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(77, 78, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(17, 77, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(77, 18, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(78, 68, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(79, 78, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(58, 79, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(79, 37, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(37, 36, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(36, 69, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(80, 16, Empty Array));
- Modify Global Variable(_tempSegments, Append To Array, Vector(80, 3, Empty Array));
- 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("Yeti Pathfind to Meat")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Winston;
- }
- conditions
- {
- Is Using Ultimate(Event Player) == False;
- Is Dummy Bot(Event Player) == True;
- Is Game In Progress == True;
- Is Alive(Event Player) == True;
- Global.Intro == False;
- }
- actions
- {
- Event Player._extendedPlayerCollection[0] = Random Value In Array(Global.MeatPos);
- 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(5, Ignore Condition);
- Loop If(Is Using Ultimate(Event Player) == False);
- }
- }
- rule("Yeti Pathfind to Player in rage")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Winston;
- }
- conditions
- {
- Is Using Ultimate(Event Player) == True;
- Is Dummy Bot(Event Player) == True;
- Is Game In Progress == True;
- Is Alive(Event Player) == True;
- Global.Intro == False;
- }
- actions
- {
- Event Player._extendedPlayerCollection[4] = 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_1 = Empty Array;
- Event Player.Dijkstra_Final_Path_Attributes_1 = Empty Array;
- Event Player.Dijkstra_Current_1 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
- Distance Between(Event Player._extendedPlayerCollection[4], Current Array Element))));
- Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Current_1] = 0.000;
- Event Player.Dijkstra_Unvisited_1 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
- While(Is True For Any(Event Player.Dijkstra_Unvisited_1, Event Player.Dijkstra_Distances_1[Current Array Element] != 0));
- Wait(0.016, Ignore Condition);
- Event Player.Dijkstra_Connected_Segments_1 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
- Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
- Event Player.Dijkstra_Current_1));
- Event Player._extendedPlayerCollection[5] = 0;
- While(Event Player._extendedPlayerCollection[5] < Count Of(Event Player.Dijkstra_Connected_Segments_1));
- Wait(0.016, Ignore Condition);
- Event Player.Dijkstra_Neighbor_Index_1 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
- Event Player.Dijkstra_Connected_Segments_1[Event Player._extendedPlayerCollection[5]])), Y Component Of(
- Event Player.Dijkstra_Connected_Segments_1[Event Player._extendedPlayerCollection[5]])),
- Current Array Element != Event Player.Dijkstra_Current_1));
- Event Player.Dijkstra_Distance_1 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_1],
- Global.Nodes[Global.map][Event Player.Dijkstra_Current_1])
- + Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Current_1];
- Event Player.Dijkstra_Neighbor_Attributes_1 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
- == Event Player.Dijkstra_Current_1 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_1);
- If((
- Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Neighbor_Index_1] == 0 || Event Player.Dijkstra_Distance_1 < Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Neighbor_Index_1])
- && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_1) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_1,
- Array Contains(Null, Z Component Of(Current Array Element)))));
- Event Player.Dijkstra_Distances_1[Event Player.Dijkstra_Neighbor_Index_1] = Event Player.Dijkstra_Distance_1;
- Event Player.Dijkstra_Parent_Array_1[Event Player.Dijkstra_Neighbor_Index_1] = Event Player.Dijkstra_Current_1 + 1;
- End;
- Event Player._extendedPlayerCollection[5] += 1;
- End;
- Modify Player Variable(Event Player, Dijkstra_Unvisited_1, Remove From Array By Value, Event Player.Dijkstra_Current_1);
- Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
- Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_1, 2);
- Event Player.Dijkstra_Current_1 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_1,
- Event Player.Dijkstra_Distances_1[Current Array Element] != 0), Event Player.Dijkstra_Distances_1[Current Array Element]));
- End;
- Event Player.pathmapReference = Global.map;
- Event Player.parentArray = Event Player.Dijkstra_Parent_Array_1;
- Event Player.destination = Event Player._extendedPlayerCollection[4];
- Event Player.pathfinderDoGetCurrent = True;
- Event Player.Dijkstra_Current_1 = 0;
- Event Player.Dijkstra_Distances_1 = 0;
- Event Player.Dijkstra_Connected_Segments_1 = 0;
- Event Player.Dijkstra_Neighbor_Index_1 = 0;
- Event Player.Dijkstra_Distance_1 = 0;
- Event Player.Dijkstra_Parent_Array_1 = 0;
- Wait(5, Ignore Condition);
- Loop If(Is Using Ultimate(Event Player) == True);
- }
- }
- rule("Mei Pathfind to Yeti")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player) == True;
- Global.Intro == False;
- 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)))) > 4;
- Event Player, Current Array Element)))) > 8;
- Is Game In Progress == True;
- }
- actions
- {
- Event Player._extendedPlayerCollection[6] = 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_2 = Empty Array;
- Event Player.Dijkstra_Final_Path_Attributes_2 = Empty Array;
- Event Player.Dijkstra_Current_2 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
- Distance Between(Event Player._extendedPlayerCollection[6], Current Array Element))));
- Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Current_2] = 0.000;
- Event Player.Dijkstra_Unvisited_2 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
- While(Is True For Any(Event Player.Dijkstra_Unvisited_2, Event Player.Dijkstra_Distances_2[Current Array Element] != 0));
- Wait(0.016, Ignore Condition);
- Event Player.Dijkstra_Connected_Segments_2 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
- Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
- Event Player.Dijkstra_Current_2));
- Event Player._extendedPlayerCollection[7] = 0;
- While(Event Player._extendedPlayerCollection[7] < Count Of(Event Player.Dijkstra_Connected_Segments_2));
- Wait(0.016, Ignore Condition);
- Event Player.Dijkstra_Neighbor_Index_2 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
- Event Player.Dijkstra_Connected_Segments_2[Event Player._extendedPlayerCollection[7]])), Y Component Of(
- Event Player.Dijkstra_Connected_Segments_2[Event Player._extendedPlayerCollection[7]])),
- Current Array Element != Event Player.Dijkstra_Current_2));
- Event Player.Dijkstra_Distance_2 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_2],
- Global.Nodes[Global.map][Event Player.Dijkstra_Current_2])
- + Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Current_2];
- Event Player.Dijkstra_Neighbor_Attributes_2 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
- == Event Player.Dijkstra_Current_2 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_2);
- If((
- Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Neighbor_Index_2] == 0 || Event Player.Dijkstra_Distance_2 < Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Neighbor_Index_2])
- && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_2) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_2,
- Array Contains(Null, Z Component Of(Current Array Element)))));
- Event Player.Dijkstra_Distances_2[Event Player.Dijkstra_Neighbor_Index_2] = Event Player.Dijkstra_Distance_2;
- Event Player.Dijkstra_Parent_Array_2[Event Player.Dijkstra_Neighbor_Index_2] = Event Player.Dijkstra_Current_2 + 1;
- End;
- Event Player._extendedPlayerCollection[7] += 1;
- End;
- Modify Player Variable(Event Player, Dijkstra_Unvisited_2, Remove From Array By Value, Event Player.Dijkstra_Current_2);
- Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
- Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_2, 2);
- Event Player.Dijkstra_Current_2 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_2,
- Event Player.Dijkstra_Distances_2[Current Array Element] != 0), Event Player.Dijkstra_Distances_2[Current Array Element]));
- End;
- Event Player.pathmapReference = Global.map;
- Event Player.parentArray = Event Player.Dijkstra_Parent_Array_2;
- Event Player.destination = Event Player._extendedPlayerCollection[6];
- Event Player.pathfinderDoGetCurrent = True;
- Event Player.Dijkstra_Current_2 = 0;
- Event Player.Dijkstra_Distances_2 = 0;
- Event Player.Dijkstra_Connected_Segments_2 = 0;
- Event Player.Dijkstra_Neighbor_Index_2 = 0;
- Event Player.Dijkstra_Distance_2 = 0;
- Event Player.Dijkstra_Parent_Array_2 = 0;
- Wait(5, Ignore Condition);
- Loop If(Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
Distance Between(Event Player, Current Array Element)))) > 4);
- Distance Between(Event Player, Current Array Element)))) > 8);
- }
- }
rule("Mei Stop Pathfinding")
- rule("Mei Run From Yeti")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player) == True;
- Global.Intro == False;
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)))) <= 4;
- Is Game In Progress == True;
- Distance Between(Event Player, Players On Hero(Hero(Winston), Team 1)) <= 8;
- }
- actions
- {
Event Player.parentArray = Null;
Stop Throttle In Direction(Event Player);
- Event Player._extendedPlayerCollection[8] = Nearest Walkable Position(Direction From Angles(20, 20));
- Event Player.Dijkstra_Final_Path_3 = Empty Array;
- Event Player.Dijkstra_Final_Path_Attributes_3 = Empty Array;
- Event Player.Dijkstra_Current_3 = Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map],
- Distance Between(Event Player._extendedPlayerCollection[8], Current Array Element))));
- Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Current_3] = 0.000;
- Event Player.Dijkstra_Unvisited_3 = Mapped Array(Global.Nodes[Global.map], Current Array Index);
- While(Is True For Any(Event Player.Dijkstra_Unvisited_3, Event Player.Dijkstra_Distances_3[Current Array Element] != 0));
- Wait(0.016, Ignore Condition);
- Event Player.Dijkstra_Connected_Segments_3 = Filtered Array(Global.Segments[Global.map], Array Contains(Append To Array(
- Append To Array(Empty Array, X Component Of(Current Array Element)), Y Component Of(Current Array Element)),
- Event Player.Dijkstra_Current_3));
- Event Player._extendedPlayerCollection[9] = 0;
- While(Event Player._extendedPlayerCollection[9] < Count Of(Event Player.Dijkstra_Connected_Segments_3));
- Wait(0.016, Ignore Condition);
- Event Player.Dijkstra_Neighbor_Index_3 = First Of(Filtered Array(Append To Array(Append To Array(Empty Array, X Component Of(
- Event Player.Dijkstra_Connected_Segments_3[Event Player._extendedPlayerCollection[9]])), Y Component Of(
- Event Player.Dijkstra_Connected_Segments_3[Event Player._extendedPlayerCollection[9]])),
- Current Array Element != Event Player.Dijkstra_Current_3));
- Event Player.Dijkstra_Distance_3 = Distance Between(Global.Nodes[Global.map][Event Player.Dijkstra_Neighbor_Index_3],
- Global.Nodes[Global.map][Event Player.Dijkstra_Current_3])
- + Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Current_3];
- Event Player.Dijkstra_Neighbor_Attributes_3 = Filtered Array(Global.Attributes[Global.map], Y Component Of(Current Array Element)
- == Event Player.Dijkstra_Current_3 && X Component Of(Current Array Element) == Event Player.Dijkstra_Neighbor_Index_3);
- If((
- Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Neighbor_Index_3] == 0 || Event Player.Dijkstra_Distance_3 < Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Neighbor_Index_3])
- && (!Count Of(Event Player.Dijkstra_Neighbor_Attributes_3) || Is True For Any(Event Player.Dijkstra_Neighbor_Attributes_3,
- Array Contains(Null, Z Component Of(Current Array Element)))));
- Event Player.Dijkstra_Distances_3[Event Player.Dijkstra_Neighbor_Index_3] = Event Player.Dijkstra_Distance_3;
- Event Player.Dijkstra_Parent_Array_3[Event Player.Dijkstra_Neighbor_Index_3] = Event Player.Dijkstra_Current_3 + 1;
- End;
- Event Player._extendedPlayerCollection[9] += 1;
- End;
- Modify Player Variable(Event Player, Dijkstra_Unvisited_3, Remove From Array By Value, Event Player.Dijkstra_Current_3);
- Skip If(Index Of Array Value(Global.Nodes[Global.map], First Of(Sorted Array(Global.Nodes[Global.map], Distance Between(
- Position Of(Event Player), Current Array Element)))) == Event Player.Dijkstra_Current_3, 2);
- Event Player.Dijkstra_Current_3 = First Of(Sorted Array(Filtered Array(Event Player.Dijkstra_Unvisited_3,
- Event Player.Dijkstra_Distances_3[Current Array Element] != 0), Event Player.Dijkstra_Distances_3[Current Array Element]));
- End;
- Event Player.pathmapReference = Global.map;
- Event Player.parentArray = Event Player.Dijkstra_Parent_Array_3;
- Event Player.destination = Event Player._extendedPlayerCollection[8];
- Event Player.pathfinderDoGetCurrent = True;
- Event Player.Dijkstra_Current_3 = 0;
- Event Player.Dijkstra_Distances_3 = 0;
- Event Player.Dijkstra_Connected_Segments_3 = 0;
- Event Player.Dijkstra_Neighbor_Index_3 = 0;
- Event Player.Dijkstra_Distance_3 = 0;
- Event Player.Dijkstra_Parent_Array_3 = 0;
- Wait(1, Ignore Condition);
- Loop If(Distance Between(Event Player, First Of(Sorted Array(All Living Players(Opposite Team Of(Team Of(Event Player))),
- Distance Between(Event Player, Current Array Element)))) <= 8);
- }
- }
- rule("Intro")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Workshop Setting Toggle(Custom String("Settings"), Custom String("Enable Intro Cutscene"), True) == True;
- }
- actions
- {
- Global.Intro = True;
- Set Slow Motion(50);
- Create Dummy Bot(Hero(Mei), Team 2, -1, Vector(-168.793, -98.085, -69.605), Vector(-168.069, -97.797, -65.020));
- Create Dummy Bot(Hero(Mei), Team 2, -1, Vector(-169.122, -97.804, -67.386), Vector(-168.069, -97.797, -65.020));
- Create Dummy Bot(Hero(Mei), Team 2, -1, Vector(-165.651, -98.020, -68.596), Vector(-168.069, -97.797, -65.020));
- Create Dummy Bot(Hero(Winston), Team 2, -1, Vector(-173.279, -98.082, -70.747), Vector(-174.439, -98.084, -72.521));
- Create Effect(All Players(All Teams), Sphere, Red, Vector(-174.439, -98.084, -72.521), 1, Visible To Position and Radius);
- Start Camera(All Players(All Teams), Vector(-164.542, -97.748, -74.078), Vector(-173.537, -97.649, -64.700), 0);
- Wait(1, Ignore Condition);
- Start Camera(All Players(All Teams), Vector(-174.725, -97.858, -74.814), Vector(-173.537, -97.649, -64.700), 1);
- Wait(2, Ignore Condition);
- Start Camera(All Players(All Teams), Vector(-164.542, -97.748, -74.078), Vector(-173.537, -97.649, -64.700), 1);
- Wait(1, Ignore Condition);
- Stop Camera(All Players(All Teams));
- Destroy All Dummy Bots;
- Global.Intro = False;
- Set Slow Motion(100);
- }
- }
- rule("Me")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
- Create HUD Text(Event Player, Null, Custom String("https://workshop.codes/yetihunter"), Null, Right, -1, Green, Green, Green,
- Visible To and String, Default Visibility);
- Create HUD Text(Event Player, Null, Null, Custom String("Created by Waitedboat4#2760"), Right, -1, Green, Green, Green,
- Visible To and String, Default Visibility);
- }
- }
- rule("Disallow ult")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- actions
- {
- Disallow Button(Event Player, Ultimate);
- }
- }
- rule("Skip Assemble")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Assembling Heroes == True;
- }
- actions
- {
- Set Match Time(0);
- }
- }
- rule("Skip Setup")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is In Setup == True;
- }
- actions
- {
- Wait(0.250, Ignore Condition);
- Set Match Time(0);
- }
- }
rule("Pause")
{
event
{
Ongoing - Global;
}
conditions
{
Is Game In Progress == True;
}
actions
{
Pause Match Time;
}
}
- rule("Disable - Global")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Disable Built-In Game Mode Announcer;
- Disable Built-In Game Mode Music;
- }
- }
- rule("Disable - Players")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- actions
- {
- Disable Game Mode HUD(Event Player);
- Disable Built-In Game Mode Respawning(Event Player);
- }
- }
- rule("Set Variables")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Global.Lives = 5;
- Global.LivesYetiPOV = 0;
- Global.TextArray = Empty Array;
- Global.EffectArray = Empty Array;
- Global.TempMeatPos = Empty Array;
- Global.Preulthealth = 5000;
- }
- }
- rule("Spawn - Hunters")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Alive(Event Player) == True;
- Has Spawned(Event Player) == True;
- (Is Game In Progress || Is Waiting For Players == True) == True;
- Is Dummy Bot(Event Player) == False;
- }
- actions
- {
- Teleport(Event Player, Vector(-158.692, -96.221, -77.853));
- }
- }
- rule("Spawn - Yeti")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Is Alive(Event Player) == True;
- Has Spawned(Event Player) == True;
- (Is Game In Progress || Is Waiting For Players == True) == True;
- }
- actions
- {
- Teleport(Event Player, Vector(-158.249, -94.801, 79.319));
- Set Max Health(Event Player, 1000);
- Wait(0.016, Ignore Condition);
- Set Player Health(Event Player, 5000);
- }
- }
- rule("Big Message")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Intro == False;
- }
- actions
- {
- Wait(0.500, Ignore Condition);
- Small Message(All Players(All Teams), Custom String("Created by Waitedboat4#2760"));
- Big Message(All Players(Team 1), Custom String("YOU ARE THE YETI"));
- Wait(0.250, Ignore Condition);
- Big Message(All Players(Team 1), Custom String("GO!"));
- Big Message(All Players(Team 2), Custom String("YOU ARE A HUNTER"));
- Wait(0.250, Ignore Condition);
- Big Message(All Players(Team 2), Custom String("GO!"));
- }
- }
- rule("HUD - Yeti")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Intro == False;
- }
- actions
- {
- Wait(0.250, Ignore Condition);
- Abort If(Global.Intro == True);
- Create HUD Text(All Players(Team 1), Null, Null, Custom String("{0} {1}/4", Ability Icon String(Hero(Winston), Button(Ultimate)),
- Global.MeatEaten), Top, 0, White, White, White, Visible To and String, Default Visibility);
- Create HUD Text(Event Player, Custom String("{0} {1}/5", Hero Icon String(Hero(Mei)), Global.LivesYetiPOV), Null, Null, Top, 0,
- White, White, White, Visible To and String, Default Visibility);
Create HUD Text(Event Player, Null, Null, Custom String("Search For Meat"), Top, 0, White, White, White, Visible To and String,
- Create HUD Text(Event Player, Null, Null, Global.YetiHUDChange, Top, 0, White, White, White, Visible To and String,
- Default Visibility);
- Global.YetiHUDChange = Custom String("SEARCH FOR MEAT");
- }
- }
- rule("HUD - Hunters")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Intro == False;
- }
- actions
- {
- Wait(0.250, Ignore Condition);
- Abort If(Global.Intro == True);
- Create HUD Text(Event Player, Custom String("{0}/4", Global.MeatEaten), Null, Null, Right, 0, White, White, White,
- Visible To and String, Default Visibility);
- Create HUD Text(Event Player, Null, Null, Custom String("MEAT EATEN BY YETI"), Right, 0, White, White, White,
- Visible To and String, Default Visibility);
- Create HUD Text(Event Player, Custom String("{0} {1}", Hero Icon String(Hero(Mei)), Global.Lives), Null, Null, Right, 0, White,
- White, White, Visible To and String, Default Visibility);
- Create HUD Text(Event Player, Null, Null, Custom String("TEAM LIVES"), Right, 0, White, White, White, Visible To and String,
- Default Visibility);
- Create HUD Text(Event Player, Custom String("{0} {1}", Hero Icon String(Hero(Winston)), Round To Integer(Health(Players On Hero(
- Hero(Winston), Team 1)), To Nearest)), Null, Null, Top, 0, White, White, White, Visible To and String, Default Visibility);
Create HUD Text(Event Player, Null, Null, Custom String("HUNT THE YETI"), Top, 0, White, White, White, Visible To and String,
- Create HUD Text(Event Player, Null, Null, Global.HuntersHUDChange, Top, 0, White, White, White, Visible To and String,
- Default Visibility);
- Global.HuntersHUDChange = Custom String("HUNT THE YETI");
- }
- }
- rule("Player Died - Subtract Lives")
- {
- event
- {
- Player Died;
- Team 2;
- Mei;
- }
- conditions
- {
- Global.Lives > 0;
- }
- actions
- {
- Global.Lives -= 1;
- Global.LivesYetiPOV += 1;
- }
- }
- rule("Meat Positions")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.MeatPos = Empty Array;
- Global.MeatPos = Array(Vector(-167.802, -88.625, 42.024), Vector(-194.375, -92.619, 35.076), Vector(-220.658, -92.072, -0.084),
- Vector(-206.196, -86.484, 0.344), Vector(-194.835, -92.360, 0.049), Vector(-161.938, -87.703, -0.023), Vector(-194.230,
- -92.551, -34.561));
- }
- }
- disabled rule("Set Meat Pos")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Interact) == True;
- }
- actions
- {
- Create Effect(Event Player, Sphere, Red, Eye Position(Event Player), 1, Visible To);
- Modify Global Variable(MeatPos, Append To Array, Eye Position(Event Player));
- }
- }
- rule("Meat Eaten")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Is Using Ultimate(Event Player) == False;
- Distance Between(Event Player, First Of(Sorted Array(Global.MeatPos, Distance Between(Event Player, Current Array Element)))) <= 2;
- Is Game In Progress == True;
- }
- actions
- {
Wait(0.250, Ignore Condition);
- Global.MeatEaten += 1;
- Destroy Effect(Global.EffectArray[Index Of Array Value(Global.MeatPos, First Of(Sorted Array(Global.MeatPos, Distance Between(
- Event Player, Current Array Element))))]);
- Destroy In-World Text(Global.TextArray[Index Of Array Value(Global.MeatPos, First Of(Sorted Array(Global.MeatPos, Distance Between(
- Event Player, Current Array Element))))]);
Global.MeatEaten += 1;
- Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player) + 25);
- Wait(0.250, Ignore Condition);
- Modify Global Variable(EffectArray, Remove From Array By Value, Global.EffectArray[Index Of Array Value(Global.MeatPos, First Of(
- Sorted Array(Global.MeatPos, Distance Between(Event Player, Current Array Element))))]);
- Modify Global Variable(TextArray, Remove From Array By Value, Global.TextArray[Index Of Array Value(Global.MeatPos, First Of(
- Sorted Array(Global.MeatPos, Distance Between(Event Player, Current Array Element))))]);
- Modify Global Variable(TempMeatPos, Append To Array, First Of(Sorted Array(Global.MeatPos, Distance Between(Event Player,
- Current Array Element))));
- Modify Global Variable(MeatPos, Remove From Array By Value, First Of(Sorted Array(Global.MeatPos, Distance Between(Event Player,
- Current Array Element))));
- Play Effect(All Players(All Teams), Good Pickup Effect, Red, Event Player, 200);
- Play Effect(All Players(All Teams), Buff Impact Sound, Red, Event Player, 200);
- }
- }
- rule("Auto Ult")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Ultimate Charge Percent(Event Player) == 100;
- Has Status(Event Player, Frozen) == False;
- }
- actions
- {
Global.Preulthealth = Health(Event Player);
Wait(0.250, Ignore Condition);
- Global.Preulthealth = Health(Event Player) + 500;
- Start Modifying Hero Voice Lines(Event Player, 0.500, True);
- Wait(0.160, Ignore Condition);
- Press Button(Event Player, Ultimate);
- Global.HuntersHUDChange = Custom String("RUN AND HIDE");
- Global.YetiHUDChange = Custom String("KILL THE HUNTERS");
- Big Message(Event Player, Custom String("ENRAGED!"));
- Big Message(All Players(Team 2), Custom String("RUN FOR YOUR LIFE!"));
- Global.UltTimer = 20;
- Chase Global Variable Over Time(UltTimer, 0, 20, Destination and Duration);
Create HUD Text(All Players(Team 2), Null, Null, Custom String("{0}s"), Top, 1, White, White, White, Visible To and String,
Default Visibility);
- Create HUD Text(All Players(Team 2), Null, Null, Custom String("{0}s", Round To Integer(Global.UltTimer, To Nearest)), Top, 1,
- White, White, White, Visible To and String, Default Visibility);
- Global.UltText = Last Text ID;
- Global.MeatEaten = 0;
- Global.Ulted += 1;
- }
- }
- rule("Destroy Ult Text")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Global.UltTimer <= 0;
- Global.Ulted > 0;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Destroy HUD Text(Global.UltText);
Set Player Health(Event Player, Global.Preulthealth);
- Global.YetiHUDChange = Custom String("SEARCH FOR MEAT");
- Global.HuntersHUDChange = Custom String("HUNT THE YETI");
- }
- }
- rule("Health")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Is Using Ultimate(Event Player) == True;
- }
- actions
- {
- Set Player Health(Event Player, Global.Preulthealth);
- }
- }
- rule("Stop Modifying Voice")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Is Using Ultimate(Event Player) == False;
- }
- actions
- {
- Stop Modifying Hero Voice Lines(Event Player);
- }
- }
- rule("Create Effect")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Intro == False;
- }
- actions
- {
- Wait(1, Ignore Condition);
- Create Effect(All Players(All Teams), Sphere, Red, Global.MeatPos[Global.EffectIndex], 1, None);
- Modify Global Variable(EffectArray, Append To Array, Last Created Entity);
- Create In-World Text(All Players(Team 1), Custom String("MEAT"), Global.MeatPos[Global.EffectIndex], 1, Do Not Clip, None, Red,
- Default Visibility);
- Modify Global Variable(TextArray, Append To Array, Last Text ID);
- Global.EffectIndex += 1;
- Loop If(Global.EffectIndex < Count Of(Global.MeatPos));
- }
- }
- rule("Respawn")
- {
- event
- {
- Player Died;
- Team 2;
- All;
- }
- conditions
- {
- Workshop Setting Toggle(Custom String("Settings"), Custom String("Respawn"), True) == True;
- }
- actions
- {
- Small Message(Event Player, Custom String("Respawning..."));
- Wait(10, Ignore Condition);
- Resurrect(Event Player);
- Teleport(Event Player, Vector(-158.692, -96.221, -77.853));
- }
- }
- rule("Yeti Win")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Lives == 0;
- Is Game In Progress == True;
- }
- actions
- {
- Wait(0.250, Abort When False);
- Declare Team Victory(Team 1);
- }
- }
- rule("Hunters Win")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- Number of Living Players(Team 1) == 0;
- }
- actions
- {
- Wait(0.250, Abort When False);
- Declare Round Victory(Team 2);
- }
- }
- rule("Wait")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- All;
- }
- conditions
- {
- Is Using Ultimate(Event Player) == False;
Distance Between(Event Player, First Of(Sorted Array(Global.MeatPos, Distance Between(Event Player, Current Array Element)))) <= 2;
- Is Game In Progress == True;
- Count Of(Global.MeatPos) < 3;
- }
- actions
- {
- Wait(30, Ignore Condition);
- Abort If(Count Of(Global.MeatPos) >= 3);
- Create Effect(All Players(All Teams), Sphere, Red, First Of(Global.TempMeatPos), 1, None);
- Modify Global Variable(EffectArray, Append To Array, Last Created Entity);
- Create In-World Text(All Players(Team 1), Custom String("MEAT"), First Of(Global.TempMeatPos), 1, Do Not Clip, None, Red,
- Default Visibility);
- Modify Global Variable(TextArray, Append To Array, Last Text ID);
- Wait(0.250, Ignore Condition);
- Modify Global Variable(MeatPos, Append To Array, First Of(Global.TempMeatPos));
- Modify Global Variable(TempMeatPos, Remove From Array By Value, First Of(Global.TempMeatPos));
- Loop If(Count Of(Global.TempMeatPos) > 0);
- }
- }
- rule("Create Junkrat")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Global.Intro == False;
- Is Game In Progress == True;
- }
- actions
- {
- Wait(0.250, Ignore Condition);
- Abort If(Global.Intro == True);
- Create Dummy Bot(Hero(Junkrat), Team Of(Event Player), Slot Of(Event Player) + 6, Position Of(Event Player), Vector(Empty Array,
- Empty Array, Empty Array));
- }
- }
- rule("Junkrat")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Set Status(Event Player, Null, Phased Out, 9999);
- Set Status(Event Player, Null, Invincible, 9999);
- Set Invisible(Event Player, All);
- Attach Players(Event Player, Players In Slot(Slot Of(Event Player) - 6, Team 2), Vector(Empty Array, Empty Array, Empty Array));
- Start Facing(Event Player, Facing Direction Of(Players In Slot(Slot Of(Event Player) - 6, Team 2)), 100000000, To World,
- Direction and Turn Rate);
- }
- }
- rule("Junkrat")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- All;
- }
- conditions
- {
- Is Button Held(Event Player, Ultimate) == True;
- Ultimate Charge Percent(Event Player) == 100;
- Is Using Ability 1(Event Player) == False;
- Is Alive(Event Player) == True;
- }
- actions
- {
- Set Ultimate Charge(Event Player, 0);
- }
- }
- rule("Junkrat")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is Alive(Event Player) == True;
- Is Button Held(Players In Slot(Slot Of(Event Player) - 6, Team 2), Ultimate) == True;
- Ultimate Charge Percent(Players In Slot(Slot Of(Event Player) - 6, Team 2)) == 100;
- Is Using Ability 1(Players In Slot(Slot Of(Event Player) - 6, Team 2)) == False;
- Is Alive(Players In Slot(Slot Of(Event Player) - 6, Team 2)) == True;
- }
- actions
- {
- Press Button(Event Player, Ability 2);
- }
- }
- rule("Junkrat")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Junkrat;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Distance Between(Event Player, Players In Slot(Slot Of(Event Player) - 6, Team 2)) > 2;
- }
- actions
- {
- Attach Players(Event Player, Players In Slot(Slot Of(Event Player) - 6, Team 2), Vector(Empty Array, Empty Array, Empty Array));
- }
- }
- rule("Setup")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is In Setup == True;
- }
- actions
- {
- Set Status(Event Player, Null, Rooted, 9999);
- }
- }
- rule("Setup")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Intro == False;
- }
- actions
- {
- Clear Status(Event Player, Rooted);
- }
- }
- rule("Go Back to cave")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Winston;
- }
- conditions
- {
- Y Component Of(Position Of(Event Player)) <= -105.994;
- Workshop Setting Toggle(Custom String("Settings"), Custom String("Go back to cave when fallen off map"), True) == True;
- }
- actions
- {
- Teleport(Event Player, Vector(-158.249, -94.801, 79.319));
- Damage(Event Player, Null, 1000);
- Big Message(All Players(Team 2), Custom String("YETI RETURNED TO CAVE"));
- }
- }
- rule("Mei Ice Wall")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Mei;
- }
- conditions
- {
- Is Using Ability 2(Event Player) == True;
- Is Button Held(Event Player, Primary Fire) == True;
- }
- actions
- {
- Wait(3, Ignore Condition);
- Abort If(Is Using Ability 2(Event Player) == False);
- Press Button(Event Player, Ability 2);
- }
- }
- rule("Mei Cryo")
- {
- event
- {
- Ongoing - Each Player;
- All;
- Mei;
- }
- conditions
- {
- Is Using Ability 1(Event Player) == True;
- }
- actions
- {
- Wait(2, Abort When False);
- Press Button(Event Player, Primary Fire);
- }
- }
- rule("Left")
- {
- event
- {
- Player Left Match;
- Team 2;
- All;
- }
- actions
- {
- Destroy Dummy Bot(Team 2, Slot Of(Event Player) - 6);
- }
- }
- rule("Wait")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Winston;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Intro == True;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Wait(2, Ignore Condition);
- Destroy All Effects;
- Play Effect(All Players(All Teams), Good Pickup Effect, Red, Event Player, 200);
- Set Ultimate Charge(Event Player, 100);
- Wait(0.250, Ignore Condition);
- Press Button(Event Player, Ultimate);
- Start Facing(Event Player, Direction Towards(Event Player, First Of(Sorted Array(Filtered Array(Players On Hero(Hero(Mei), Team 2),
- Is Dummy Bot(Current Array Element)), Distance Between(Event Player, Current Array Element)))), 200, To World,
- Direction and Turn Rate);
- Wait(1, Ignore Condition);
- Press Button(Event Player, Ability 1);
- }
- }
- rule("Wait")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- conditions
- {
- Is Game In Progress == True;
- Global.Intro == True;
- Is Dummy Bot(Event Player) == True;
- }
- actions
- {
- Start Holding Button(Event Player, Primary Fire);
- Wait(2, Ignore Condition);
- Stop Holding Button(Event Player, Primary Fire);
- Start Facing(Event Player, Direction Towards(Event Player, Vector(-162.608, -97.692, -66.357)), 200, To World,
- Direction and Turn Rate);
- Start Throttle In Direction(Event Player, Facing Direction Of(Event Player), 1, To World, Replace existing throttle,
- Direction and Magnitude);
- }
- }
- rule("Revive - join")
- {
- event
- {
- Player Joined Match;
- All;
- All;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Resurrect(Event Player);
- }
- }
- rule("---- Add AI ----")
- {
- event
- {
- Ongoing - Global;
- }
- actions
- {
- Global.AddAI = Workshop Setting Toggle(Custom String("Settings"), Custom String("Add AI"), False);
- }
- }
- rule("Create Dummy bot to start game")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.AddAI == True;
- }
- actions
- {
- Create Dummy Bot(Hero(Winston), Team 1, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- Create Dummy Bot(Hero(Mei), Team 2, -1, Vector(0, 0, 0), Vector(0, 0, 0));
- }
- }
- rule("Create Dummy bot to start game")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Is Game In Progress == True;
- }
- actions
- {
- Destroy All Dummy Bots;
- }
- }
- rule("Create Dummy Bots - Hunters")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Intro == False;
- Is Game In Progress == True;
- Number of Heroes(Hero(Mei), Team 2) < 5;
- Global.AddAI == True;
- }
- actions
- {
- Create Dummy Bot(Hero(Mei), Team 2, -1, Vector(-158.692, -96.221, -77.853), Vector(0, 0, 0));
Loop If(Number of Heroes(Hero(Mei), Team 2) < 5);
- Loop If(Number of Heroes(Hero(Mei), Team 2) < Workshop Setting Integer(Custom String("Settings"), Custom String(
- "Max Amount of Mei AI"), 5, 1, 5));
- }
- }
- rule("Create Dummy Bots - Yeti")
- {
- event
- {
- Ongoing - Global;
- }
- conditions
- {
- Global.Intro == False;
- Is Game In Progress == True;
- Number of Players(Team 1) < 1;
- Global.AddAI == True;
- }
- actions
- {
- Create Dummy Bot(Hero(Winston), Team 1, -1, Vector(-158.249, -94.801, 79.319), Vector(0, 0, 0));
- Loop If(Number of Players(Team 1) < 1);
- }
- }
- rule("Facing")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Global.Intro == False;
- Is Game In Progress == True;
- }
- actions
- {
- Start Facing(Event Player, Direction Towards(Event Player, First Of(Sorted Array(Filtered Array(All Living Players(
- Opposite Team Of(Team Of(Event Player))), Is In Line of Sight(Event Player, Current Array Element, Barriers Do Not Block LOS)),
- Distance Between(Event Player, Current Array Element)))), 200, To World, Direction and Turn Rate);
- }
- }
- rule("Mei Ice")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- conditions
- {
- Health(Event Player) <= Max Health(Event Player) / 2;
- Is Dummy Bot(Event Player) == True;
- Ability Cooldown(Event Player, Button(Ability 1)) == 0;
- Is Using Ability 2(Event Player) == False;
- }
- actions
- {
- Press Button(Event Player, Ability 1);
- }
- }
- rule("Mei Wall")
- {
- event
- {
- Player Took Damage;
- Team 2;
- Mei;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is In Line of Sight(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player))),
- Barriers Do Not Block LOS) == True;
- Ability Cooldown(Event Player, Button(Ability 2)) == 0;
- Is Using Ability 1(Event Player) == False;
- }
- actions
- {
- Press Button(Event Player, Ability 2);
- Wait(0.250, Ignore Condition);
- Press Button(Event Player, Primary Fire);
- }
- }
- rule("Mei Ult")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- conditions
- {
- Ultimate Charge Percent(Event Player) == 100;
- Is Dummy Bot(Event Player) == True;
- Is In Line of Sight(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player))),
- Barriers Do Not Block LOS) == True;
- }
- actions
- {
- Wait(0.500, Abort When False);
- Press Button(Event Player, Ultimate);
- }
- }
- rule("Mei Secondary")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Is In Line of Sight(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player))),
- Barriers Do Not Block LOS) == True;
- Distance Between(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player)))) > 10;
- Global.Intro == False;
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- Wait(0.250, Ignore Condition);
- Start Holding Button(Event Player, Secondary Fire);
- }
- }
- rule("Shoot - Mei")
- {
- event
- {
- Ongoing - Each Player;
- Team 2;
- Mei;
- }
- 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;
- Distance Between(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player)))) <= 10;
- Is Using Ability 2(Event Player) == False;
- Global.Intro == False;
- }
- actions
- {
- Stop Holding Button(Event Player, Secondary Fire);
- Wait(0.250, Ignore Condition);
- Start Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Stop Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Mei;
- }
- 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) == False;
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- Wait(0.250, Ignore Condition);
- Stop Holding Button(Event Player, Secondary Fire);
- }
- }
- rule("Winston Jump")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Winston;
- }
- 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;
- Ability Cooldown(Event Player, Button(Ability 1)) == 0;
- Global.Intro == False;
- Is Using Ultimate(Event Player) == True;
- }
- actions
- {
- Press Button(Event Player, Ability 1);
- }
- }
- rule("Winston Shield")
- {
- event
- {
- Player Took Damage;
- Team 1;
- Winston;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Ability Cooldown(Event Player, Button(Ability 2)) == 0;
- }
- actions
- {
- Press Button(Event Player, Ability 2);
- }
- }
- rule("Shoot - Winston")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Winston;
- }
- 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;
- Distance Between(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player)))) <= 8;
- Global.Intro == False;
- }
- actions
- {
- Start Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Stop Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Winston;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Distance Between(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(Event Player)))) > 8;
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Stop Shooting")
- {
- event
- {
- Ongoing - Each Player;
- Team 1;
- Winston;
- }
- 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) == False;
- }
- actions
- {
- Stop Holding Button(Event Player, Primary Fire);
- }
- }
- rule("Jump")
- {
- event
- {
- Ongoing - Each Player;
- All;
- All;
- }
- conditions
- {
- Is Dummy Bot(Event Player) == True;
- Horizontal Speed Of(Event Player) < 1;
- Global.Intro == False;
- Is Moving(Event Player) == True;
- }
- actions
- {
- Press Button(Event Player, Jump);
- Wait(0.250, Ignore Condition);
- Loop If Condition Is True;
- }
- }