Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Learn and practice Doomfist rollouts and various map spots with this parkour! Visit (https://workshop.codes/doomfist-academy) for more information. Version 1.6.1 by Big Smoke. CODE: E7MMF"
  • }
  • lobby
  • {
  • Allow Players Who Are In Queue: Yes
  • Map Rotation: After A Game
  • Match Voice Chat: Enabled
  • Max Spectators: 12
  • Max Team 1 Players: 12
  • Max Team 2 Players: 0
  • Return To Lobby: Never
  • }
  • modes
  • {
  • Skirmish
  • {
  • enabled maps
  • {
  • Busan
  • Dorado
  • King's Row
  • Hanamura Winter
  • Rialto
  • Temple of Anubis
  • Lijiang Tower Lunar New Year
  • }
  • }
  • Team Deathmatch
  • {
  • enabled maps
  • {
  • }
  • }
  • General
  • {
  • Allow Hero Switching: Off
  • Game Mode Start: Immediately
  • Hero Limit: Off
  • Kill Feed: Off
  • Respawn As Random Hero: On
  • Spawn Health Packs: Disabled
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Damage Dealt: 10%
  • Infinite Ultimate Duration: On
  • Spawn With Ultimate Ready: On
  • Ultimate Generation: 500%
  • Ultimate Generation - Combat: 500%
  • Ultimate Generation - Passive: 500%
  • enabled heroes
  • {
  • Doomfist
  • }
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 00: TempIter
  • 01: TempArray
  • 02: Level_Text
  • 03: Level_Color
  • 04: Level_Effects
  • 05: Start_Origin
  • 06: Start_Radius
  • 07: Start_Camera
  • 08: Start_Abilities
  • 09: Start_LevelFlag
  • 10: End_Origin
  • 11: End_Radius
  • 12: Hint_Origin
  • 13: Hint_Text
  • 14: Hint_IndexFlag
  • 15: Lava_Origin
  • 16: Lava_Radius
  • 17: Lava_IndexFlag
  • 18: Time_Recorded
  • 19: Time_Proper
  • 20: Time_Rank
  • 21: Time_LevelFlag
  • 22: Time_PlayerID
  • 23: Time_HUD
  • 24: Time_Updating
  • 25: Setting_MapRotation
  • 26: Setting_ServerLoad
  • 27: Setting_ScoreboardMax
  • 28: Setting_EnableInspector
  • player:
  • 00: TempIter
  • 01: TempArray
  • 02: Initialized
  • 03: Transitioning
  • 04: FreeMode
  • 05: UsingPunch
  • 06: GracePeriod
  • 07: MidAirPeriod
  • 08: Stopwatch
  • 09: HUD_Text
  • 10: HUD_ControlsDisabled
  • 11: HUD_ScoreboardDisabled
  • 12: Level_Current
  • 13: Level_Checkpoints
  • 14: Level_LocalIndex
  • 15: Level_GlobalIndex
  • 16: Checkpoint_Hints
  • 17: Checkpoint_Lavas
  • 18: Checkpoint_Effects
  • 19: Developer_Mode
  • 20: Developer_EffectType
  • 21: Developer_StartRadius
  • 22: Developer_EndRadius
  • 23: Developer_LavaRadius
  • 24: Developer_Distance
  • }
  • subroutines
  • {
  • 00: Reposition
  • 01: AbilityRefresh
  • 02: Calculate_Checkpoints
  • 03: Calculate_MissingEnds
  • 04: Calculate_ExtraEffects
  • 05: Calculate_RecordTime
  • 06: Effects_DestroyPlayer
  • 07: Effects_RefreshPlayer
  • 08: Effects_RefreshGlobal
  • 09: Effects_RefreshDeveloper
  • 10: HUD_DestroyText
  • 11: HUD_RefreshText
  • 12: HUD_RefreshScoreboard
  • 13: HUD_RefreshDeveloper
  • }
  • rule("Visit (https://workshop.codes/doomfist-academy) for more information! CODE: E7MMF")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • }
  • actions
  • {
  • Global.Setting_EnableInspector = Workshop Setting Toggle(Custom String("General Settings"), Custom String("Enable Inspector"), False, 1);
  • If(Global.Setting_EnableInspector == False);
  • Disable Inspector Recording;
  • End;
  • }
  • }
  • rule("Made using Simple Multi-Level Doomfist Parkour Creator by Big Smoke. CODE: J8CA1")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • }
  • actions
  • {
  • }
  • }
  • disabled rule("### CHECKPOINT PARAMETERS ###")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("CHECKPOINT PARAMETERS --- RIALTO")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map == Map(Rialto);
  • }
  • actions
  • {
  • Global.Level_Text = Array(0, Custom String("Level 1\r\nRollouts"), Custom String("Level 2\r\nBounces"), Custom String("Level 3\r\nDiags"), Custom String("Level 4\r\nBalance"));
  • Global.Start_Origin = Array(Vector(42.962, 5.750, -49.246), Vector(58.614, 0.778, -55.398), Vector(72.649, -0.400, -49.194),
  • Vector(55.160, 4.750, -34.570), Vector(66.063, 4.750, -25.189), Vector(111.078, 5.750, -33.817), Vector(111.078, 5.750,
  • -33.817), Vector(110.510, 5.750, -8.890), Vector(109.759, 5.755, -8.972), Vector(96.521, -0.250, -45.028), Vector(74.469,
  • 3.758, -15.692), Vector(58.923, 4.748, -25.090), Vector(35.439, 5.750, -70.078), Vector(-10.196, -0.250, -67.093), Vector(
  • 8.521, -0.400, -50.053), Vector(-42.130, 2.730, -91.180), Vector(96.870, 5.750, -33.190), Vector(76.520, -1.400, -23.050),
  • Vector(71.820, -1.250, -12.280), Vector(62.820, -1.250, -12.830), Vector(46, -0.250, -46.250), Vector(68.485, -0.252, -57.738),
  • Vector(33.265, 0.855, -32.006), Vector(29.486, 1.674, -45.720), Vector(20.372, 1.812, -74.696), Vector(5.770, -0.400, -62.120),
  • Vector(9.327, -0.398, -53.945), Vector(10.012, -0.250, -54.553), Vector(-10.400, -3.110, -73.720), Vector(-34.130, -1.400,
  • -77.220), Vector(-44.148, -1.250, -60.479), Vector(-77.802, 2.750, -118.428), Vector(97.235, -0.250, -47.717), Vector(96.737,
  • -0.250, -49.035), Vector(85.794, -0.398, -49.064), Vector(54.710, 4.750, -39.740), Vector(48.110, 4.750, -34.350), Vector(
  • 43.820, 5.760, -42.690), Vector(12.930, 0.200, -62.310), Vector(20.550, 1.790, -74.550), Vector(22.540, 1.700, -62.300),
  • Vector(28.570, 0, -62.310), Vector(-15.600, 5.750, -48.320), Vector(-16.360, 1.410, -38.670), Vector(-48.920, -0.500, -68.470),
  • Vector(-40.045, 0.882, -90.322), Vector(-64.541, 2.750, -128.205), Vector(-29.655, -1.038, -41.516), Vector(63.086, -0.250,
  • -62.385), Vector(18.297, 1.682, -62.304), Vector(31.342, 0.650, -45.295), Vector(41.351, 0.785, -31.005), Vector(97.111, 5.750,
  • -33.557), Vector(83.206, 7.906, -36.101), Vector(83.206, 7.906, -36.101), Vector(82.258, -0.400, -51.020), Vector(84.322,
  • 3.915, -53.295), Vector(21.252, 1.729, -62.749), Vector(6.507, 12.375, -29.333), Vector(-16.103, 5.746, -48.086), Vector(
  • 11.539, 12.336, -29.514), Vector(-36.055, 4.790, -81.861), Vector(-31.390, 13.867, -104.604), Vector(-35.896, 4.750, -82.048),
  • Vector(-60.828, 16.708, -85.276));
  • Global.Start_Radius = Array(3, 3, 3, 3, 3, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2, 2.500, 2.500,
  • 2, 2.300, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 1.800, 2.500, 2, 1.700, 2.500, 2, 2, 2, 2.500, 2, 2.500, 2.500, 3, 2.500, 2.500, 2, 2, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2, 2.500, 2.500);
  • Global.Start_Camera = Array(70.807, -31.470, -68.533, -133.797, -178.781, -48.164, -48.164, -86.180, -35.458, 2.049, -70.406,
  • 179.901, -88.967, 69.576, 68.588, 33.170, -105.830, -83.529, -71.500, 67.930, 119.930, -65.396, 97.899, -99.036, -91.099,
  • -89.200, 18.073, 147.849, 13.010, 120.490, -103.398, 122.514, -94.059, -23.093, 25.384, 88.520, -93.010, -178.120, 45.560,
  • 131.870, -61.860, -52.130, 64.780, -153.380, 60.920, -139.213, 18.814, -172.623, -4.900, 33.453, -100.547, -119.553, -101.376,
  • 9.597, -105.084, 141.394, 25.867, -18.023, -135.659, 61.078, 116.735, 141.866, -11.673, -118.658, -179.379);
  • Global.Start_Abilities = Array(Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(1, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1),
  • Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1,
  • 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1,
  • 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(1, 0, 1), Vector(0, 1, 0),
  • Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(
  • 0, 1, 0));
  • Global.Start_LevelFlag = Array(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3,
  • 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4);
  • Global.End_Origin = Array(Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(76.553,
  • 3.750, -31.334), Vector(67.070, 4.750, -21.586), Vector(57.920, -1.250, -10.680), Vector(83.090, 3.760, -12.810), Vector(
  • 94.346, -0.999, -25.942), Vector(42.785, 0.650, -28.939), Vector(40.667, 5.750, -67.006), Vector(0.626, 5.750, -69.373),
  • Vector(36.115, 5.750, -67.463), Vector(50.150, 4.750, -33.934), Vector(-9.610, 5.750, -78.580), Vector(68.500, -0.890,
  • -36.180), Vector(61.157, 4.748, -35.434), Vector(74.450, 3.760, -13.520), Vector(79.310, 3.750, -25.790), Vector(60.970, 4.750,
  • -35.460), Vector(43.061, 5.750, -49.746), Vector(51.589, 4.750, -33.916), Vector(-3.501, 5.748, -50.232), Vector(-1.723, 5.750,
  • -63.902), Vector(-1.920, 5.750, -45.870), Vector(0.361, 3.750, -33.183), Vector(37.003, 5.750, -68.129), Vector(-3, 5.750,
  • -51.260), Vector(-34.080, 4.750, -78.750), Vector(-62.320, 1.750, -100.833), Vector(-45.495, 4.750, -142.929), Vector(55.477,
  • 4.750, -39.058), Vector(82.244, 3.758, -14.215), Vector(110.820, 5.750, -10.237), Vector(89.786, -0.396, -21.970), Vector(
  • -11.010, -1.340, -42.560), Vector(27.100, 0.480, -68.180), Vector(50.486, -0.400, -50.781), Vector(34.830, 5.750, -86.040),
  • Vector(1.490, 5.750, -51.470), Vector(-11.650, -1.380, -42.260), Vector(7.780, -0.400, -59.570), Vector(-36.180, 4.750,
  • -78.550), Vector(-7.684, 5.750, -51.002), Vector(-57.016, 2.600, -127.454), Vector(-52.798, -1.250, -65.284), Vector(-36.151,
  • 4.750, -78.251), Vector(62.587, 4.750, -39.307), Vector(50.850, 4.750, -33.628), Vector(0.768, 5.750, -51.478), Vector(-1.386,
  • 5.750, -42.207), Vector(83.286, 7.898, -36.093), Vector(66.053, 4.750, -25.479), Vector(56.331, 4.750, -39.585), Vector(84.322,
  • 3.915, -53.295), Vector(81.042, 3.758, -14.920), Vector(5.032, 11.999, -30.751), Vector(-21.367, -1.400, -67.824), Vector(
  • 5.032, 11.999, -30.751), Vector(42.021, 5.750, -48.939), Vector(-31.025, 13.867, -104.604), Vector(-14.523, 5.067, -55.149),
  • Vector(-59.284, 16.839, -83.247), Vector(-45.450, 4.750, -143.611));
  • Global.End_Radius = Array(3, 3, 3, 3, 3, 3, 3, 3, 3, 3.500, 3, 3, 3, 3.500, 3, 3, 4.300, 4, 2.500, 2.700, 3, 3.500, 4, 3, 3.300, 3,
  • 3, 4, 3, 3, 8, 3, 3.500, 3.500, 3.500, 5, 3, 3.600, 5, 2.500, 2.500, 3.500, 3, 4, 3.300, 4, 6, 4, 4, 4, 3, 3.500, 1.800, 3, 3,
  • 1.500, 3.500, 6.500, 4, 6.500, 4, 2, 3, 7, 3.500);
  • Global.Hint_Origin = Array(Vector(105.266, 11.301, -8.230), Vector(86.720, 8.180, -36.630), Vector(57.514, -0.174, -20.733),
  • Vector(59.993, -0.326, -8.277), Vector(71.638, -0.247, -9.237), Vector(40.011, 2.074, -32.949), Vector(12.134, 4.177, -74.877),
  • Vector(11.972, 0.552, -45.944), Vector(14.284, 1.719, -61.321), Vector(-21.414, -0.540, -85.089), Vector(-52.427, 0.117,
  • -62.424), Vector(-65.076, 4.711, -126.593), Vector(70.401, 10.734, -40.319), Vector(16.051, 11.194, -36.259));
  • Global.Hint_Text = Array(Custom String("Uppercut here\r\nPunch through roof"),
  • Custom String("Bounce"), Custom String("Bounce"), Custom String("Bounce"), Custom String("Bounce"), Custom String("Bounce"),
  • Custom String("Bounce"), Custom String("Bounce"), Custom String("Bounce"), Custom String("Bounce"), Custom String("Bounce"),
  • Custom String("Bounce"), Custom String("Diag then bounce"), Custom String("Slide along roof"));
  • Global.Hint_IndexFlag = Array(7, 16, 17, 18, 19, 22, 24, 26, 27, 29, 30, 31, 35, 36);
  • Global.Lava_Origin = Array(Vector(101.680, 6.095, -19.681), Vector(101.472, 6.533, -19.874), Vector(84.040, 5.743, -22.901), Vector(83.033, 6.250, -47.922),
  • Vector(-36.544, 7.700, -78.571), Vector(69.207, 2.795, -27.491), Vector(34.031, 5.353, -42.723), Vector(37.514, 5.661, -68.438), Vector(34.501, 5.262,
  • -38.121), Vector(34.579, 4.353, -66.880), Vector(-1.003, 3.795, -41.783), Vector(-5.749, 5.990, -51.968));
  • Global.Lava_Radius = Array(9.400, 9.600, 7.200, 7.200, 10, 9.600, 7.200, 5, 5.600, 6.700, 6.700, 6.700);
  • Global.Lava_IndexFlag = Array(7, 8, 16, 16, 30, 35, 37, 37, 38, 38, 42, 42);
  • }
  • }
  • rule("CHECKPOINT PARAMETERS --- HANAMURA")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Array Contains(Current Map, Map(Hanamura)) || Array Contains(Current Map, Map(Hanamura Winter))) == True;
  • }
  • actions
  • {
  • Global.Level_Text = Array(0, Custom String("Level 1\r\nRollouts"), Custom String("Level 2\r\nBounces"),
  • Custom String("Level 3\r\nDiags"), Custom String("Level 4\r\nWall Diags"), Custom String("Level 5\r\nBalance"));
  • Global.Start_Origin = Array(Vector(13.075, 7.146, -49.044), Vector(13.050, 0, -27.810), Vector(0.635, 5, -40.641), Vector(29.597,
  • 2, -31.793), Vector(12.900, 6.740, -21.520), Vector(5.263, 7.717, -1.142), Vector(48.559, 5.998, -8.539), Vector(34.715,
  • 13.953, 22.354), Vector(48.666, 6, -7.323), Vector(34.952, 2.472, -10.157), Vector(-13.739, -0.999, -7.984), Vector(9.907,
  • 11.228, 17.712), Vector(7.701, 12.008, 16.958), Vector(12.890, 7.142, -49.123), Vector(13.639, 7.134, -48.857), Vector(14.471,
  • 4, -74.241), Vector(66.466, -2.005, 25.974), Vector(72.623, -1.969, 0.172), Vector(72.941, -1.971, -0.857), Vector(22.149, 0,
  • 2.858), Vector(13.400, -0.984, -13.753), Vector(18.773, -1.117, 33.588), Vector(18.773, -1.117, 33.588), Vector(18.067, 4.055,
  • 8.122), Vector(18.067, 4.055, 8.122), Vector(-1.350, -1.409, -48.448), Vector(5.250, -1, -69.073), Vector(-11.672, 1, -98.480),
  • Vector(49.409, -0.915, 8.627), Vector(49.906, 6, 8.407), Vector(36.809, 5.998, 16.246), Vector(11.550, -0.979, -5.054), Vector(
  • 14.827, -0.954, -6.078), Vector(15.088, -0.979, -2.954), Vector(6.637, 9.436, 20.209), Vector(10.272, -1.236, 38.246), Vector(
  • 0.830, -0.767, -14.716), Vector(-13.447, -0.933, -24.924), Vector(-12.765, -0.978, -36.197), Vector(10.472, -1.893, -35.079),
  • Vector(17.304, -1.978, -33.427), Vector(22.237, -0.953, -38.782), Vector(10.913, -1.600, -59.886), Vector(44.488, -2.084,
  • -56.056), Vector(-3.843, 0.020, -73.220), Vector(65.548, -1.999, 5.129), Vector(65.537, -1.999, 5.209), Vector(36.740, -0.039,
  • -9.657), Vector(6.764, 0, -18.661), Vector(-13.438, 0.725, -3.863), Vector(5.547, 0, -3.974), Vector(-6.950, 1, -18.881),
  • Vector(-0.453, 1, -10.257), Vector(7.856, 0, -29.247), Vector(9.302, 0, -22.840), Vector(-1.976, 1, -29.082), Vector(9.265, 0,
  • -25.433), Vector(-13.104, 1, -27.815), Vector(-13.104, 1, -27.815), Vector(-1.502, 0.291, -54.258), Vector(-1.502, 0.291,
  • -54.258), Vector(-16.801, -5, -69.962), Vector(-10.115, -5, -70.362), Vector(3.629, -5, -81.905), Vector(61.862, 6, -10.491),
  • Vector(68.136, 9.432, -14.253), Vector(-14.287, 1, 3.112), Vector(-40.870, 3.145, 10.511), Vector(29.313, 2.320, -37.483),
  • Vector(27.789, 9.277, -23.572), Vector(27.789, 9.277, -23.572), Vector(12.934, 7.071, -49.269), Vector(41.991, 13.086,
  • -32.832));
  • Global.Start_Radius = Array(3, 3, 3, 3, 3, 3, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 3, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 3, 3, 2.500, 2.500, 2.500, 2.500, 2.500);
  • Global.Start_Camera = Array(-0.181, 0, 0, 0, 0, 109.534, -53.174, 177.583, -68.571, 29.257, -158.577, -173.562, -108.704, 139.883,
  • -90.527, 41.017, -122.289, -146.255, -53.723, 133.418, 2.148, -82.227, -82.227, 179.659, 179.659, 131.852, 50.521, 28.059,
  • -82.683, -99.476, -123.234, 84.606, -21.561, -133.709, 120.828, -89.105, -92.862, -174.139, -7.449, -69.423, -146.190,
  • -169.486, -41.902, -158.934, 111.143, -58.112, -58.793, -67.527, -135.346, 140.916, -135.209, -135.714, 40.534, -51.075,
  • -45.159, 40.583, -140.927, 32.838, 32.838, 174.699, 174.699, -174.996, 175.204, -92.714, 116.895, -5.191, -74.196, 130.248,
  • -5.554, -174.512, -174.512, 59.293, -92.769);
  • Global.Start_Abilities = Array(0, 0, 0, 0, 0, 0, Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), 0, Vector(1, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 0, 0),
  • Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1,
  • 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1),
  • Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 0, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 0,
  • 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(1, 0, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 0, 0), Vector(0, 0, 1), Vector(1, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 0, 1), Vector(0, 1, 1));
  • Global.Start_LevelFlag = Array(0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
  • 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5);
  • Global.End_Origin = Array(0, 0, 0, 0, 0, 0, Vector(34.715, 13.953, 22.477), Vector(11.494, -0.988, -1.560), Vector(14.009, 11.222,
  • 19.164), Vector(49.306, 14.559, 18.008), Vector(-26.785, 0.876, -52.542), Vector(-4.151, 7, -20.833), Vector(-19.047, -1.259,
  • -18.556), Vector(28.854, 3, -90.541), Vector(-25.633, 1, -65.493), Vector(32.077, 3, -74.506), Vector(48.118, 6, 5.058),
  • Vector(61.239, 6, -11.935), Vector(45.133, 6, 1.917), Vector(47.812, 6, -11.385), Vector(11.645, 11.263, 18.867), Vector(
  • -4.445, 4, 15.407), Vector(11.813, 11.347, 21.273), Vector(11.918, 6.774, -21.425), Vector(-5.333, 7.974, -10.177), Vector(
  • 30.770, 3, -72.769), Vector(15.489, 4.235, -53.212), Vector(-0.612, 4, -61.078), Vector(26.766, 6, 10.604), Vector(28.622,
  • 10.441, 4.177), Vector(5.405, 7.712, -2.250), Vector(41.967, 6, -4.131), Vector(5.396, 7.098, 14.087), Vector(-3.917, 7,
  • -21.765), Vector(41.311, 6, -3.800), Vector(5.189, 7.947, 11.460), Vector(-15.752, 3, -47.491), Vector(-17.630, 4, -53.985),
  • Vector(-8.381, 1, 3.618), Vector(-9.781, 7, -26.707), Vector(-0.150, 4, -59.236), Vector(14.315, 4, -74.148), Vector(-1.750, 5,
  • -40.932), Vector(34.973, 3, -76.192), Vector(20.471, 4, -83.773), Vector(47.702, 6, 15.424), Vector(34.729, 13.953, 22.456),
  • Vector(8.769, 6.939, -21.154), Vector(-7.649, 7, -23.045), Vector(-2.769, 7, -21.811), Vector(-8.519, 7, -22.697), Vector(
  • -16.058, 3, -47.857), Vector(14.803, 4.051, 7.976), Vector(-15.425, 3, -47.985), Vector(-1.047, 7.954, -10.177), Vector(13.521,
  • 6.747, -20.777), Vector(-0.347, 4, -60.072), Vector(-7.350, 1, 4.876), Vector(-0.464, 7.952, -10.186), Vector(2.796, 7.010,
  • -91.783), Vector(-12.278, 9, -67.368), Vector(-16.837, 9.183, -90.874), Vector(6.071, 7.010, -90.571), Vector(-1.323, 4,
  • -62.571), Vector(68.139, 9.432, -14.251), Vector(48.322, 6, 15.775), Vector(-40.722, 3.151, 10.817), Vector(-2.407, 6.999,
  • -21.967), Vector(27.793, 9.281, -22.993), Vector(13.036, 0, -29.920), Vector(13.651, 4, -74.986), Vector(41.729, 13.060,
  • -32.832), Vector(12.756, 6.746, -21.789));
  • Global.End_Radius = Array(0, 0, 0, 0, 0, 0, 2, 4, 4, 2, 3, 3, 3, 3.500, 3.500, 3, 3, 3, 3, 3.500, 4, 3.500, 5, 3.500, 2.500, 3.500,
  • 3, 3, 3.500, 3, 3.500, 4, 3.500, 4, 4, 3, 5, 3.500, 4, 3, 3, 3, 4, 4.500, 3, 3.500, 2, 3.500, 4, 5, 3.500, 5, 3, 5, 4, 5,
  • 3.500, 3.500, 3.500, 3.500, 4.500, 4, 6, 4.500, 2, 3, 2.500, 3.500, 1.800, 3.500, 3.500, 2.500, 3.500);
  • Global.Hint_Origin = Array(Vector(40.646, 12.237, -2.694), Vector(-2.866, 13.606, -48.831), Vector(56.975, -0.803, 19.836), Vector(
  • 66.979, 0.472, -9.298));
  • Global.Hint_Text = Array(Custom String("Punch across roof"), Custom String("Pass through roof"), Custom String("Bounce"), Custom String("Bounce"));
  • Global.Hint_IndexFlag = Array(9, 14, 16, 17);
  • Global.Lava_Origin = Array(Vector(29.151, 11.554, 4.710), Vector(7.084, 8.649, -9.029), Vector(9.805, 13.141, 10.094), Vector(
  • -0.807, 6.319, -60.300));
  • Global.Lava_Radius = Array(3, 5, 5, 5);
  • Global.Lava_IndexFlag = Array(7, 11, 12, 14);
  • }
  • }
  • rule("CHECKPOINT PARAMETERS --- KINGS ROW")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map == Map(King's Row);
  • }
  • actions
  • {
  • Global.Level_Text = Array(0, Custom String("Level 1\r\nRollouts"), Custom String("Level 2\r\nBounces"), Custom String("Level 3\r\nDiags"), Custom String("Level 4\r\nBalance"));
  • Global.Start_Origin = Array(Vector(-3.020, 14.355, -24.155), Vector(-18.897, -0.110, -32.573), Vector(-9.156, 6, -42.601), Vector(
  • 4.004, 6.026, -36.976), Vector(-33.760, 9, -34.459), Vector(-19.767, 0.074, 24.824), Vector(-16.237, 6, -0.293), Vector(
  • -16.411, 6, -0.543), Vector(-3.217, 13.989, 17.936), Vector(-29.004, 9, -15.851), Vector(-35.266, 9, -34.655), Vector(-92.521,
  • 7.488, -30.688), Vector(-61.254, 3, -4.663), Vector(-71.172, 4.500, -38.533), Vector(-102.547, 6.929, -6.034), Vector(-130.422,
  • 6.315, 7.895), Vector(-127.110, -1.275, 0.388), Vector(-8.203, -0.127, 2.236), Vector(-18.083, -0.120, -29.425), Vector(
  • -13.794, 0.060, -10.739), Vector(-3.466, -0.162, -28.437), Vector(6.463, 6.110, -26.860), Vector(-25.059, -0.134, -25.535),
  • Vector(-17.911, -0.115, -32.378), Vector(-35.766, 0.072, -27.228), Vector(-51.315, -0.188, -34.031), Vector(-54.989, -0.398,
  • -32.725), Vector(-80.579, 0.296, -47.047), Vector(-80.991, 4.500, -42.938), Vector(-91.262, 0.900, -6.348), Vector(-10.592,
  • 0.070, -35.159), Vector(1.841, -0.095, 8.365), Vector(-12.448, 0.074, -1.268), Vector(-8.798, 0.072, -9.738), Vector(-0.356,
  • -0.120, 2.183), Vector(-5.914, -0.098, 3.818), Vector(3.540, 6, -4.690), Vector(1.148, 0.029, -22.921), Vector(-9.046, -0.111,
  • -22.906), Vector(-8.633, 0.041, -24.943), Vector(-2.951, 0.049, -19.711), Vector(0.638, 0.057, -25.515), Vector(-13.671, 6.108,
  • -12.914), Vector(-12.399, 0.068, -35.670), Vector(-9.516, -0.129, -33.978), Vector(-93.766, 6.939, -4.071), Vector(-66.016,
  • -0.006, -33.791), Vector(-80.127, 0.317, 0.675), Vector(-97.975, 1.490, -22.003), Vector(-97.976, 1.749, -19.023), Vector(
  • -105.456, 0.544, -6.302), Vector(-104.235, 0.836, -8.413), Vector(-119.243, 1.071, -13.939), Vector(-132.738, -1.016, -5.551),
  • Vector(-11.795, 0.853, -2.235), Vector(-40.551, 8.573, -13.357), Vector(-59.740, 12.420, -11.638), Vector(-78.439, 4.500,
  • -40.207), Vector(-79.534, 9.811, -37.484));
  • Global.Start_Radius = Array(2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.700, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 1.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.700, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.700, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.700, 2.500);
  • Global.Start_Camera = Array(-154.078, 74.564, 4.241, -40.430, 146.678, -161.851, 164.982, 165.734, -179.786, 150.145, -85.765,
  • 88.369, -171.837, -34.865, -80.700, 126.343, -45.269, 178.704, 60.743, 132.973, 68.231, -39.990, 123.376, -95.438, 53.328,
  • 73.065, -91.038, -46.230, -43.160, -95.839, 37.809, -174.573, 140.762, 113.516, -155.781, 115.939, -142.830, -136.340, 131.578,
  • 35.305, -132.539, -93.719, 168.926, 20.286, -75.872, 155.577, -18.896, -106.804, -13.986, -33.036, 127.809, -60.645, -16.265,
  • 38.688, 139.252, -98.893, -120.053, -21.149, -25.433);
  • Global.Start_Abilities = Array(Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), 0, Vector(0, 0, 1), Vector(0, 1,
  • 0), Vector(0, 0, 0), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), 0, 0, Vector(0, 1, 1), Vector(0, 1,
  • 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 1),
  • Vector(0, 1, 1), Vector(0, 0, 0), Vector(0, 0, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1,
  • 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 1), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 1), Vector(0, 0, 0), Vector(1, 0, 1), Vector(0, 1, 0));
  • Global.Start_LevelFlag = Array(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3,
  • 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4);
  • Global.End_Origin = Array(0, 0, 0, 0, 0, Vector(-26.206, 5.998, 1.582), Vector(-26.397, 6, -44.380), Vector(-29.277, 9, -15.378),
  • Vector(-3.073, 14.438, -23.811), Vector(10.671, 6.026, -36.680), Vector(-83.924, 0.525, -23.373), Vector(-48.646, 9.123,
  • -37.744), Vector(-48.960, 9.123, -37.482), Vector(-101.067, 6.929, -6.602), Vector(-129.666, 6.315, 8.213), Vector(-87.344,
  • 6.934, -12.898), Vector(-147.875, -3.108, 29.308), Vector(-12.363, -0.110, -29.153), Vector(-7.540, -0.123, -1.602), Vector(
  • 4.094, 6.002, -2.716), Vector(3.655, 6.002, -1.017), Vector(-10.436, 16.935, 5.866), Vector(-9.457, 6, -42.039), Vector(
  • -33.479, 9, -33.970), Vector(-33.934, 9, -34.332), Vector(-34.322, 9, -34.323), Vector(-68.324, 4.500, -34.892), Vector(
  • -92.295, 7.487, -32.459), Vector(-89.317, 6.929, -5.521), Vector(-130.112, 6.315, 8.917), Vector(9.134, 6.026, -36.484),
  • Vector(3.477, 6.026, -35.420), Vector(-8.302, 6, -41.412), Vector(17.416, 6.024, -37.193), Vector(-3.832, 4.531, -21.203),
  • Vector(3.063, 6.026, -35.064), Vector(-33.478, 9, -33.960), Vector(-11.035, 6, -42.807), Vector(10.635, 6.026, -37.031),
  • Vector(-17.309, 6, -0.209), Vector(-31.565, 6, -48.407), Vector(-29.685, 9, -13.900), Vector(-33.478, 9, -33.960), Vector(
  • -17.146, 6, -0.208), Vector(-50.088, -0.215, -32.694), Vector(-60.990, -0.362, -33.299), Vector(-94.391, 1.065, -15.700),
  • Vector(-99.320, 6.939, -6.837), Vector(-102.716, 7.071, -2.220), Vector(-129.759, 6.315, 8.782), Vector(-58.645, 4.956,
  • -16.826), Vector(-130.238, 6.315, 8.700), Vector(-131.973, 7.071, 30.937), Vector(-131.560, 7.071, 30.777), Vector(-15.474,
  • -0.114, -30.938), Vector(-59.739, 12.421, -11.641), Vector(-100.845, 6.929, -6.393), Vector(-79.641, 9.811, -37.523), Vector(
  • -108.608, 0.081, -6.883));
  • Global.End_Radius = Array(0, 0, 0, 0, 0, 3, 3.300, 3.300, 1.800, 3, 3, 2.500, 3, 3.400, 3.300, 3, 4, 5, 3.500, 3, 3, 3, 4, 3,
  • 3.400, 3, 3, 3.500, 3, 3.500, 3, 3.500, 3.500, 3.500, 3, 3, 3, 3.800, 3.800, 3.500, 3, 4.500, 3, 3.500, 3.500, 5, 3.500, 3.400,
  • 3.400, 3.500, 3.500, 4, 4, 4, 3.300, 1.800, 3, 1.800, 3);
  • Global.Hint_Origin = Array(Vector(-3.780, 0.888, -19.993), Vector(7.022, 1.215, -23.954), Vector(-30.995, 1.195, -33.777), Vector(
  • -7.949, 1.415, -31.096));
  • Global.Hint_Text = Array(Custom String("Bounce"), Custom String("Bounce"),
  • Custom String("Bounce"), Custom String("Punch between tree and car\r\nJump at the end to perform super jump"));
  • Global.Hint_IndexFlag = Array(19, 20, 23, 30);
  • Global.Lava_Origin = Array(Vector(-55.471, 10.118, -10.968), Vector(-82.684, 5.798, -41.333), Vector(-127.426, 5.097, 11.574),
  • Vector(-1.527, 1.473, -14.501), Vector(-82.857, 5.842, -32.806), Vector(-78.973, 5.583, -23.512));
  • Global.Lava_Radius = Array(6.700, 5, 7.800, 5, 4, 5);
  • Global.Lava_IndexFlag = Array(12, 13, 16, 17, 28, 45);
  • }
  • }
  • rule("CHECKPOINT PARAMETERS --- BUSAN")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map == Map(Busan);
  • }
  • actions
  • {
  • Global.Level_Text = Array(0, Custom String("Level 1\r\nRollouts"), Custom String("Level 2\r\nBounces"), Custom String("Level 3\r\nDiags"), Custom String("Level 4\r\nWall Diags"), Custom String("Level 5\r\nBalance"));
  • Global.Start_Origin = Array(Vector(51.980, 21.398, -127.432), Vector(52.062, 14.500, -116.812), Vector(51.921, 11.930, -100.798),
  • Vector(32.455, 20, -110.130), Vector(71.060, 20, -110.220), Vector(67.310, 14.991, -123.683), Vector(12.187, 22.961, -133.600),
  • Vector(52.686, 21.398, -127.628), Vector(76.109, 22.750, -108.887), Vector(69.652, 20, -108.224), Vector(70.436, 20, -110.429),
  • Vector(70.136, 20, -110.188), Vector(50.706, 21.398, -127.994), Vector(50.307, 21.398, -127.737), Vector(279.651, 10.279,
  • 209.564), Vector(187.660, 5.088, 251.063), Vector(206.624, 11.095, 268.424), Vector(205.177, 17.097, 221.948), Vector(208.711,
  • 17.188, 209.776), Vector(193.369, 21.350, 246.731), Vector(-291.151, 12.211, 144.892), Vector(-320.866, 14.610, 126.179),
  • Vector(-14.563, 17, -125.290), Vector(34.253, 15, -122.593), Vector(71.874, 11.061, -116.329), Vector(40.693, 11.930, -95.621),
  • Vector(215.900, 17.098, 208.635), Vector(179.605, 13.095, 230.400), Vector(213.319, 10.095, 234.276), Vector(-341.760, 12.071,
  • 166.648), Vector(-358.992, 10.866, 152.393), Vector(-338.338, 8.120, 127.179), Vector(-293.594, 14.228, 130.789), Vector(
  • 20.821, 12.938, -119.551), Vector(106.461, 15.935, -137.103), Vector(59.406, 12, -97.167), Vector(56.495, 6, -85.582), Vector(
  • 46.791, 9.069, -107.449), Vector(58.801, 10.781, -125.531), Vector(78.100, 20, -111.658), Vector(279.050, 10.166, 229.320),
  • Vector(253.978, 11.359, 248.289), Vector(209.054, 17.098, 230.642), Vector(220.590, 17.097, 218.480), Vector(223.984, 16.117,
  • 247.039), Vector(-388.077, 9.753, 170.055), Vector(-354.191, 10.851, 150.824), Vector(-359.032, 12.052, 169.057), Vector(
  • -350.158, 12.071, 170.340), Vector(-350.160, 12.073, 172.252), Vector(-359.650, 12.050, 171.328), Vector(-354.625, 11.106,
  • 149.975), Vector(-321.136, 13.437, 124.668), Vector(-333.349, 9.489, 125.030), Vector(239.266, 13.093, 231.425), Vector(
  • 242.521, 13.094, 239.467), Vector(225.631, 16.095, 210.373), Vector(218.150, 9.590, 253.100), Vector(-348.821, 8.290, 156.158),
  • Vector(-346.771, 8.288, 138.731), Vector(-352.346, 10.459, 139.889), Vector(-356.660, 10.459, 141.964), Vector(-342.439, 8.290,
  • 152.718), Vector(-341.827, 8.290, 156.206), Vector(80.590, 20, -107.402), Vector(79.737, 22.536, -97.925), Vector(88.015, 10,
  • -93.230), Vector(88.182, 15.554, -86.196), Vector(-359.228, 12.169, 127.197), Vector(-336.199, 14.680, 126.258), Vector(
  • -368.826, 20.724, 115.175), Vector(-356.867, 16.467, 169.104), Vector(-339.996, 25.301, 156.729), Vector(-298.007, 12.169,
  • 128.712));
  • Global.Start_Radius = Array(3, 3, 3, 3, 3, 3, 2.500, 4.100, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 3, 2.500, 1.600, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500);
  • Global.Start_Camera = Array(0, 0, 0, 0, 0, 0, 92.977, 52.224, 67.006, -58.975, -93.400, -125.184, -12.090, -54.739, -94.037,
  • 39.661, -91.835, -65.198, 23.928, 114.318, -95.598, -79.547, 128.337, 100.481, -115.510, 148.387, -49.345, 110.923, -73.905,
  • 88.885, 112.258, -48.389, -79.964, 75.795, -46.494, -109.589, -110.303, 108.545, -9.772, -78.574, -32.585, -69.999, 91.862,
  • 77.014, -88.605, 154.885, 141.411, 51.910, 48.878, 128.090, 88.193, 79.360, 23.533, -41.050, -92.922, -99.102, -19.946,
  • 160.610, -147.596, -50.630, -42.610, 135.132, 164.114, 72.059, -4.054, -178.402, 2.543, -69.538, 172.496, -84.957, 1.445,
  • 141.784, 129.133, 179.637);
  • Global.Start_Abilities = Array(0, 0, 0, 0, 0, Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(1, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1, 1), Vector(
  • 1, 1, 0), Vector(1, 1, 0), Vector(1, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1,
  • 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1,
  • 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(1, 0, 1), Vector(0, 1, 0), Vector(1, 0, 1), Vector(0, 1, 0), Vector(0, 0,
  • 1), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 0, 1));
  • Global.Start_LevelFlag = Array(0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  • 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5);
  • Global.End_Origin = Array(0, 0, 0, 0, 0, 0, Vector(51.384, 21.400, -128.038), Vector(75.921, 22.750, -109.478), Vector(64.085,
  • 11.930, -88.499), Vector(52.185, 6, -93.494), Vector(24.416, 20, -112.104), Vector(24.958, 13.034, -135.289), Vector(33.164, 8,
  • -80.375), Vector(7.334, 15.721, -125.618), Vector(235.849, 15.991, 206.101), Vector(221.859, 9.095, 256.980), Vector(186.827,
  • 5.088, 249.158), Vector(191.066, 16.095, 226.469), Vector(212.357, 9.483, 218.023), Vector(208.263, 10.095, 239.998), Vector(
  • -320.699, 13.552, 124.814), Vector(-367.804, 11.823, 139.032), Vector(5.332, 22.961, -134.248), Vector(71.429, 20, -110.546),
  • Vector(51.961, 14.500, -116.503), Vector(33.041, 20, -109.044), Vector(179.271, 13.095, 230.900), Vector(214.180, 17.095,
  • 210.798), Vector(195.073, 16.095, 229.296), Vector(-310.130, 12.071, 165.486), Vector(-324.530, 8.813, 136.103), Vector(
  • -358.125, 10.653, 146.639), Vector(-335.693, 8.301, 138.039), Vector(71.500, 20, -111.032), Vector(70.731, 20, -109.791),
  • Vector(33.165, 20, -108.850), Vector(41.318, 11.930, -97.021), Vector(87.183, 12.950, -117.721), Vector(37.663, 6.183,
  • -80.319), Vector(28.130, 22.750, -108.620), Vector(240.060, 9.095, 253.243), Vector(226.416, 16.117, 251.482), Vector(244.865,
  • 21.095, 224.149), Vector(244.738, 21.095, 224.019), Vector(194.056, 21.095, 246.208), Vector(-351.944, 10.655, 145.867),
  • Vector(-320.702, 14.715, 126.230), Vector(-328.706, 14.073, 180.446), Vector(-312.330, 14.198, 172.274), Vector(-337.032,
  • 16.413, 161.876), Vector(-337.107, 16.411, 172.026), Vector(-310.509, 12.243, 159.991), Vector(-313.313, 14.196, 171.694),
  • Vector(-369.517, 11.821, 141.915), Vector(192.403, 16.095, 227.837), Vector(194.092, 21.095, 246.205), Vector(203.285, 13.092,
  • 257.762), Vector(228.130, 16.090, 222.500), Vector(-375.543, 11.821, 154.949), Vector(-374.551, 11.821, 153.900), Vector(
  • -394.604, 9.160, 158.779), Vector(-314.581, 8.208, 126.118), Vector(-331.842, 9.810, 109.423), Vector(-317.563, 12.073,
  • 166.997), Vector(79.720, 22.536, -97.989), Vector(51.556, 14.500, -117.711), Vector(88.181, 15.554, -86.192), Vector(60.343,
  • 11.930, -98.894), Vector(-368.834, 20.724, 115.178), Vector(-368.976, 20.724, 115.234), Vector(-358.879, 12.047, 165.712),
  • Vector(-339.812, 25.309, 156.632), Vector(-284.863, 11.826, 144.951), Vector(-288.837, 20.680, 114.802));
  • Global.End_Radius = Array(0, 0, 0, 0, 0, 0, 4, 2.500, 3.500, 3, 3, 3, 3, 3, 3, 3.500, 4, 3.500, 3.500, 3, 2.300, 3, 3, 3.500,
  • 3.500, 3.500, 3, 3, 3.500, 3, 3, 3, 3, 3.500, 3.500, 3.500, 4, 3.500, 3.500, 2.500, 3.500, 3.500, 3, 3, 3, 3, 2, 3, 3.500, 2,
  • 2, 3, 3.500, 3.500, 3.500, 3, 3.500, 3, 3, 3, 3, 3, 3.500, 3.500, 2, 3.500, 1.500, 3.500, 2, 2, 3, 3, 3.500, 2);
  • Global.Lava_Origin = Array(Vector(64.572, 24.672, -112.685), Vector(-347.351, 11.279, 140.621));
  • Global.Lava_Radius = Array(9, 5);
  • Global.Lava_IndexFlag = Array(8, 30);
  • }
  • }
  • rule("CHECKPOINT PARAMETERS --- TEMPLE OF ANUBIS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map == Map(Temple of Anubis);
  • }
  • actions
  • {
  • Global.Level_Text = Array(0, Custom String("Level 1\r\nRollouts"), Custom String("Level 2\r\nBounces"), Custom String("Level 3\r\nDiags"), Custom String("Level 4\r\nWall Diags"));
  • Global.Start_Origin = Array(Vector(-9.206, 14.419, 81.063), Vector(-20.666, 6.388, 63.318), Vector(-12.466, 10.384, 53.241),
  • Vector(-4.064, 16.229, 62.577), Vector(6.099, 8.507, 68.111), Vector(2.929, 0.541, -19.873), Vector(19.369, 12.378, 11.349),
  • Vector(-0.679, 13.927, 14.142), Vector(-34.331, 10.200, 45.042), Vector(-27.335, 10.903, 17.981), Vector(-10.275, 11.965,
  • 15.740), Vector(-27.335, 10.903, 17.981), Vector(-4.421, 8.845, 31.704), Vector(-49.015, 9.508, 34.527), Vector(-11.828, 4.509,
  • 41.198), Vector(-10.932, 10.370, 53.308), Vector(-6.920, 16.745, 53.957), Vector(-12.339, 10.370, 52.816), Vector(-12.416,
  • 10.393, 53.696), Vector(-4.154, 16.229, 62.619), Vector(-4.154, 16.229, 62.619), Vector(-4.281, 16.229, 62.719), Vector(23.865,
  • 0.299, -14.789), Vector(15.209, 4.107, 19.677), Vector(-23.438, 0.995, -2.601), Vector(-12.197, 0.939, 7.396), Vector(-15.451,
  • 0.928, 15.729), Vector(-9.329, 1.076, 19.396), Vector(-0.060, 0.954, 26.817), Vector(-0.060, 0.954, 26.817), Vector(-14.150,
  • 4.521, 37.486), Vector(-47.221, 1.513, 35.143), Vector(-31.891, 9.005, 55.746), Vector(-31.891, 9.005, 55.746), Vector(-32.040,
  • 9.005, 56.320), Vector(-24.842, 4.642, 84.725), Vector(-11.854, 3.991, 73.600), Vector(2.349, 4.878, 105.261), Vector(4.036,
  • 4.559, 114.854), Vector(-9.650, 4.744, 93.798), Vector(16.496, 0.647, -4.930), Vector(12.534, 0.429, -0.325), Vector(-6.983,
  • -2.252, -11.896), Vector(-14.855, 2.048, -1.538), Vector(9.080, 5.530, 15.210), Vector(12.322, 5.552, 9.272), Vector(-10.556,
  • 0.892, 17.169), Vector(0.692, 0.876, 39.841), Vector(-7.144, 2.509, 41.468), Vector(-46.616, 1.668, 44.976), Vector(-15.012,
  • 7.078, 33.358), Vector(-34.919, 5.509, 24.979), Vector(-25.226, 4.509, 31.165), Vector(-26.437, 4.509, 33.281), Vector(-36.064,
  • 5.509, 26.676), Vector(-14.569, 10.518, 52.149), Vector(-23.906, 4.597, 77.789), Vector(4.194, 2.612, 89.139), Vector(-25.677,
  • 4.607, 115.184), Vector(-25.418, 5.200, 111.899), Vector(-10.287, 4.720, 116.049), Vector(-4.311, 5.184, 93.408), Vector(
  • -25.456, -2.278, -27.211), Vector(-17.034, -2.260, -21.849), Vector(-38.112, 5.484, 27.052), Vector(-38.847, 5.009, 14.637),
  • Vector(-32.028, 10.200, 45.729), Vector(-34.489, 10.200, 48.149), Vector(-34.489, 10.200, 48.149), Vector(-25.164, 1.474,
  • 55.494), Vector(-23.259, 1.512, 53.803), Vector(-22.031, 4.636, 78.431), Vector(-25.339, 1.525, 74.867), Vector(-23.810, 4.675,
  • 79.902), Vector(-24.073, 4.654, 89.630), Vector(2.850, 3.556, 76.334), Vector(4.360, 3.770, 77.958), Vector(18.245, 2.399,
  • 87.479), Vector(-24.882, 4.624, 122.389), Vector(-21.691, 2.795, 102.805), Vector(-25.939, 3.638, 109.575), Vector(-30.801,
  • 4.586, 116.563));
  • Global.Start_Radius = Array(4, 3, 3, 3, 3, 2.500, 2.500, 3, 2.500, 2.500, 4.100, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 3, 3, 3, 3, 3, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.800, 2.800, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500);
  • Global.Start_Camera = Array(-173.079, 81.321, -12.980, 25.142, -90.170, 30.174, -81.343, -87.896, 165.471, 57.008, 130.000, 57.008,
  • -96.960, 60.738, 55.668, 146.063, -63.237, -26.884, 20.638, -22.440, -9.558, -61.831, -41.446, -99.860, 59.628, -17.095,
  • 134.714, 159.247, -17.133, -17.133, -106.842, 12.821, 34.156, 34.156, 24.901, 0.621, -151.441, -46.461, -155.209, 2.955,
  • -54.695, -62.402, -23.538, 7.833, -113.920, -77.662, -64.885, -80.480, -91.642, 143.866, 164.454, 100.986, -168.904, -84.518,
  • 6.746, 13.414, -156.396, -35.464, 166.454, 141.141, 139.889, -91.599, 42.775, 35.909, -64.836, 22.703, 66.407, 19.644, 19.644,
  • -172.216, -83.535, 53.015, 55.349, 24.774, 35.980, -46.615, -25.670, 36.634, 156.511, 129.968, 145.613, 129.375);
  • Global.Start_Abilities = Array(0, 0, 0, 0, 0, Vector(0, 0, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1),
  • Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(1, 0, 0), Vector(1, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 0, 0), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 0, 0), Vector(0, 0, 1), Vector(0, 0,
  • 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 0, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1),
  • Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 1), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1));
  • Global.Start_LevelFlag = Array(0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  • 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
  • 4, 4, 4, 4, 4, 4, 4);
  • Global.End_Origin = Array(0, 0, 0, 0, 0, Vector(18.104, 12.199, 11.812), Vector(-1.170, 14.057, 14.385), Vector(-33.214, 10.200,
  • 45.510), Vector(-27.284, 10.903, 18.002), Vector(-10.631, 11.964, 16.074), Vector(14.301, 9.963, -4.711), Vector(-5.184, 8.834,
  • 31.933), Vector(-49.438, 9.510, 34.571), Vector(-8.721, 12.343, 50.088), Vector(-8.811, 12.489, 50.319), Vector(-2.727, 2.509,
  • 41.217), Vector(-9.494, 14.419, 81.422), Vector(-19.021, 10.929, 105.598), Vector(-3.930, 16.229, 62.633), Vector(-17.287,
  • 10.937, 105.577), Vector(0.238, 4.670, 113.458), Vector(-32.378, 9.005, 55.432), Vector(18.478, 12.244, 11.552), Vector(-0.951,
  • 13.923, 14.191), Vector(-15.383, 13.989, 5.683), Vector(-13.035, 4.509, 40.707), Vector(13.356, 10.091, 11.901), Vector(14.085,
  • 9.962, -4.944), Vector(-16.703, 4.509, 38.302), Vector(-4.886, 8.835, 32.231), Vector(-34.934, 10.200, 52.470), Vector(-37.728,
  • 10.200, 48.356), Vector(-9.471, 14.421, 81.470), Vector(-3.852, 16.229, 62.646), Vector(-27.307, 14.217, 85.787), Vector(
  • -27.181, 4.454, 122.352), Vector(-35.443, 10.200, 51.420), Vector(-16.636, 10.938, 107.771), Vector(-9.469, 4.752, 89.320),
  • Vector(-30.083, 9.932, 122.377), Vector(-1.133, 14.094, 14.439), Vector(-11.107, 11.955, 15.354), Vector(-5.232, 1, 20.372),
  • Vector(-21.111, 4.509, 31.021), Vector(-15.458, 13.987, 5.535), Vector(-23.551, 4.509, 33.482), Vector(-49.818, 9.509, 34.134),
  • Vector(-33.811, 10.200, 45.393), Vector(-49.638, 9.508, 34.178), Vector(-27.381, 10.903, 17.933), Vector(14.126, 10.096,
  • 11.843), Vector(-11.116, 11.960, 15.896), Vector(-27.314, 10.903, 17.977), Vector(-55.971, 9.508, 33.521), Vector(-33.029,
  • 10.200, 45.156), Vector(-9.677, 14.419, 81.052), Vector(-34.113, 9.907, 53.465), Vector(-26.748, 4.557, 118.124), Vector(
  • -22.941, 6.420, 68.647), Vector(-5.759, 12.876, 84.764), Vector(5.680, 3.525, 73.573), Vector(-27.203, 14.217, 88.433), Vector(
  • -0.981, 14.001, 14.397), Vector(18.211, 12.192, 11.443), Vector(-56.153, 9.508, 33.135), Vector(-36.230, 10.200, 51.507),
  • Vector(-7.008, 16.743, 53.989), Vector(-27.005, 14.217, 88.243), Vector(-3.964, 16.229, 62.530), Vector(-13.447, 4.509,
  • 40.163), Vector(-32.550, 9.005, 55.126), Vector(-6.411, 12.875, 83.801), Vector(-3.947, 16.229, 62.645), Vector(-4.855, 4.664,
  • 110.146), Vector(-23.105, 4.464, 127.160), Vector(-17.346, 10.936, 105.535), Vector(-14.853, 4.663, 112.870), Vector(18.981,
  • 4.521, 118.131), Vector(-9.607, 4.749, 92.823), Vector(5.368, 3.974, 80.980), Vector(-27.343, 14.217, 85.836), Vector(-18.705,
  • 10.935, 108.514));
  • Global.End_Radius = Array(0, 0, 0, 0, 0, 3.500, 2, 3, 2.500, 4, 2, 3, 4, 1.700, 3, 3, 3.500, 3, 2.500, 3.500, 3, 3.500, 3.500, 2,
  • 2, 3, 4, 2, 3, 3, 3, 3.500, 3.500, 2.300, 3.500, 3.500, 4, 3.500, 3.500, 2, 2, 4.500, 3, 4, 2, 4, 4, 3.500, 4, 2.500, 4, 4.500,
  • 2.500, 3, 3, 4, 4, 3.500, 3, 3.200, 3, 3.500, 2, 4, 3.500, 3.500, 2.500, 3, 2.500, 4, 4, 4, 2.500, 3.500, 3, 3.500, 4, 3.500,
  • 3.500, 3.500, 3.500, 3.500);
  • Global.Lava_Origin = Array(Vector(-7.265, 4.979, 105.825), Vector(-20.337, 7.031, 100.542));
  • Global.Lava_Radius = Array(5, 9);
  • Global.Lava_IndexFlag = Array(38, 39);
  • }
  • }
  • rule("CHECKPOINT PARAMETERS --- LIJIANG TOWER")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Array Contains(Current Map, Map(Lijiang Tower)) || Array Contains(Current Map, Map(Lijiang Tower Lunar New Year))) == True;
  • }
  • actions
  • {
  • Global.Level_Text = Array(0, Custom String("Level 1\r\nRollouts"), Custom String("Level 2\r\nBounces"), Custom String("Level 3\r\nDiags"), Custom String("Level 4\r\nBalance"));
  • Global.Start_Origin = Array(Vector(23.714, 6, -27.669), Vector(0.862, -1.142, -35.122), Vector(-22.523, 6, -27.529), Vector(-3.014,
  • 8.006, -52.288), Vector(1.066, -1, -64.239), Vector(67.626, 3.743, -32.329), Vector(67.757, 8.501, -15.217), Vector(57.790,
  • 1.860, -46.654), Vector(30.981, 6.029, -45.220), Vector(17.277, 6, -15.769), Vector(24.218, 6, -27.980), Vector(23.964, 6,
  • -28.036), Vector(5.396, 8.006, -52.107), Vector(23.759, 6, -27.569), Vector(16.862, -0.140, -46.809), Vector(14.742, 2.292,
  • -44.311), Vector(11.634, -1, -74.474), Vector(-14.718, -0.920, -67.553), Vector(57.545, 1.858, -39.296), Vector(32.333, 0,
  • -42.969), Vector(25.865, 0.001, -43.874), Vector(19.587, 0.001, -15.345), Vector(6.254, -0.979, -46.164), Vector(6.225, -1.140,
  • -33.929), Vector(47.247, 2, -40.514), Vector(47.247, 2, -40.514), Vector(14.426, 0.843, -42.904), Vector(14.495, 2.302,
  • -45.640), Vector(22.280, -3, -55.422), Vector(11.546, 1.320, -29.938), Vector(-22.050, 6, -26.980), Vector(-8.951, 13.800,
  • -51.310), Vector(-20.071, 20.672, -30.169), Vector(-20.071, 20.672, -30.169), Vector(-8.530, 25.857, -51.653), Vector(65.581,
  • 98, 160.755), Vector(69.602, 96.120, 146.010), Vector(41.526, 94.900, 137.203), Vector(20.933, 96.433, 130.855), Vector(8.364,
  • 98, 172.312), Vector(8.364, 98, 172.312), Vector(-12.564, 94.149, 147.882), Vector(9.150, 94.147, 143.291), Vector(10.716,
  • 94.147, 156.905), Vector(0.336, 95.998, 106.032), Vector(-16.215, 97.898, 181.988), Vector(-41.790, 98, 164.303), Vector(
  • 37.743, 94.921, 159.644), Vector(19.664, 96.421, 138.683), Vector(-18.976, 96.500, 137.396), Vector(-0.437, 94, 176.806),
  • Vector(0.699, 94, 159.931), Vector(47.337, 95.481, 143.830), Vector(49.188, 95.381, 155.686), Vector(28.675, 94.500, 150.973),
  • Vector(28.200, 94.501, 151.544), Vector(23.192, 94.500, 157.228), Vector(17.676, 96.331, 124.560), Vector(13.541, 94, 169.611),
  • Vector(10.054, 95, 126.102), Vector(17.740, 97.900, 182.268), Vector(23.762, 102.583, 185.727), Vector(39.990, 98, 164.812),
  • Vector(80.143, 112.207, 148.259), Vector(5.402, 94.147, 160.861), Vector(5.521, 98.568, 164.694), Vector(0.398, 125.661,
  • 187.847), Vector(54.288, 267.091, 334.649), Vector(44.263, 267, 301.519), Vector(-1.438, 270, 301.687), Vector(1.445, 278,
  • 292.257), Vector(31.858, 267.124, 313.293), Vector(20.121, 267, 290.409), Vector(4.668, 270, 297.802), Vector(1.844, 267.333,
  • 286.673), Vector(0.135, 270, 267), Vector(-30.768, 267, 312.390), Vector(33.233, 267.676, 302.940), Vector(31.606, 267.001,
  • 283.565), Vector(-3.665, 270, 258.048), Vector(-4.784, 267.167, 290.575), Vector(31.421, 267, 322.808), Vector(35.087, 273.505,
  • 316.386), Vector(32.518, 270.854, 343.324), Vector(59.320, 282.520, 340.743));
  • Global.Start_Radius = Array(3, 3, 3, 3, 3, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 1.500, 1.500, 2.500, 1.500, 2.500, 2.500, 2, 2, 2, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 1.800, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500);
  • Global.Start_Camera = Array(-129.183, -178.792, 86.567, 2.120, 1.324, -104.799, -110.489, -151.963, -26.960, -154.325, -103.749,
  • -140.762, -48.686, -90.115, -97.646, -179.577, -87.039, -12.420, -90.280, 76.311, -47.411, -149.672, 7.399, 77.256, -48.406,
  • -48.406, 177.506, 10.871, -15.090, -87.731, 131.830, -26.016, -61.694, 151.155, 61.501, -112.522, -108.875, -132.303, 95.993,
  • -147.156, -129.573, -87.325, -32.871, -56.041, -24.994, -131.204, 91.148, -97.432, -100.684, -30.564, -81.612, 56.547,
  • -147.469, -81.497, -95.592, -135.428, -74.130, -10.025, 162.872, -83.600, 52.119, -152.375, 129.128, -90.621, -8.718, -84.985,
  • 170.024, -163.707, 1.620, 20.374, 122.613, -171.958, 42.435, 118.180, 150.491, -1.571, 175.232, -139.471, -141.537, 5.927,
  • 105.194, 158.209, -134.912, 117.999, -138.175);
  • Global.Start_Abilities = Array(Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0,
  • 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1),
  • Vector(0, 0, 0), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(1, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 0, 1), Vector(0, 0, 1), Vector(0, 0, 1), Vector(0, 0, 1), Vector(0, 0, 1),
  • Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(1, 1, 0), Vector(0, 1, 0), Vector(1, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0,
  • 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(1, 0, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(1, 1, 0), Vector(
  • 1, 0, 1), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(1, 1, 0), Vector(0, 0, 0), Vector(1, 1, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0),
  • Vector(0, 1, 0), Vector(0, 1, 0), Vector(1, 0, 1), Vector(1, 1, 0), Vector(0, 0, 1), Vector(1, 1, 0));
  • Global.Start_LevelFlag = Array(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4,
  • 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 2, 2, 2, 2,
  • 2, 2, 3, 3, 3, 3, 4, 4, 4, 4);
  • Global.End_Origin = Array(0, 0, 0, 0, 0, Vector(29.804, 9.450, -27.397), Vector(29.920, 9.440, -27.050), Vector(15.181, -1,
  • -71.885), Vector(18.235, -0.140, -40.339), Vector(-22.071, 6, -28.155), Vector(-15.630, -0.140, -46.313), Vector(1.655, -1,
  • -63.918), Vector(-22.053, 6, -27.985), Vector(-28.469, 9.450, -27.104), Vector(-16.290, -0.002, -46.321), Vector(0.939, 2,
  • -77.422), Vector(-27.230, -3, -57.124), Vector(-17.852, 0, -49.413), Vector(30.046, 9.440, -27.104), Vector(51.813, 6.016,
  • -25.660), Vector(18.775, 6, -10.703), Vector(5.317, 8.016, -52.667), Vector(25.009, 6, -28.001), Vector(24.089, 6, -29.045),
  • Vector(30.055, 9.440, -27.190), Vector(16.979, 6, -16.580), Vector(-3.977, -1.002, -73.465), Vector(27.165, 6.029, -40.136),
  • Vector(18.168, 6, -15.480), Vector(-22.179, 6, -28.010), Vector(-9.312, 13.822, -50.838), Vector(-20.071, 20.672, -30.187),
  • Vector(-29.274, 20.139, -25.656), Vector(-8.440, 25.857, -51.561), Vector(22.167, 24.437, -25.964), Vector(15.768, 94,
  • 174.532), Vector(20.450, 96, 133.096), Vector(7.824, 96, 115.964), Vector(64.412, 93.993, 138.173), Vector(-4.235, 94,
  • 153.797), Vector(-20.798, 96, 135.194), Vector(-33.935, 94.595, 150.106), Vector(-11.317, 94, 179.864), Vector(-24.100, 94,
  • 145.116), Vector(-22.979, 94.500, 153.849), Vector(-65.393, 94, 146.044), Vector(7.646, 98, 172.641), Vector(-1.454, 94,
  • 145.363), Vector(-13.912, 95, 130.922), Vector(-45.097, 98, 164.305), Vector(-23.171, 97.900, 179.895), Vector(25.732, 98,
  • 180.205), Vector(7.624, 96, 115.707), Vector(7.491, 98, 173.060), Vector(4.472, 94, 149.532), Vector(-14.789, 95, 130.626),
  • Vector(-22.391, 97.898, 180.238), Vector(7.486, 98, 173.302), Vector(48.170, 94.930, 149.854), Vector(-28.826, 94, 146.253),
  • Vector(23.763, 102.583, 185.726), Vector(26.448, 93.998, 141.893), Vector(79.941, 111.737, 148.253), Vector(52.394, 93.984,
  • 149.618), Vector(5.618, 98.553, 164.563), Vector(-0.165, 123.134, 176.772), Vector(14.085, 95, 129.517), Vector(40.559, 267,
  • 298.134), Vector(38.492, 267, 320.245), Vector(0.128, 278.014, 310.178), Vector(22.633, 267, 285.738), Vector(13.923, 267.135,
  • 284.364), Vector(35.898, 267, 317.922), Vector(27.497, 267, 303.134), Vector(-9.517, 270, 260.994), Vector(0.028, 278,
  • 293.006), Vector(-10.451, 267.165, 283.021), Vector(-4.241, 267.333, 284.073), Vector(-5.933, 270, 260.521), Vector(0.050,
  • 278.122, 296.009), Vector(30.433, 267, 294.088), Vector(35.135, 273.505, 316.432), Vector(26.670, 267, 307.687), Vector(59.865,
  • 282.651, 341.675), Vector(40.098, 267, 321.705));
  • Global.End_Radius = Array(0, 0, 0, 0, 0, 3.500, 3.500, 3.500, 3.500, 3.500, 3.500, 3.500, 3.500, 2.500, 5, 3.200, 3.500, 2.500, 3,
  • 3, 3, 3, 4, 3, 3, 4, 3.200, 3.500, 3.500, 3.500, 2.500, 1.500, 2, 2.500, 2.500, 5.500, 3.500, 3, 3.500, 3, 3.500, 3, 3, 3, 3,
  • 3.500, 3.500, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3.500, 3, 2, 4, 7, 3.500, 1.700, 7, 3.500, 3, 3, 3, 3, 3.500, 3, 3, 3.500,
  • 3.500, 3.500, 3.500, 3.500, 5.500, 3.500, 3.500, 3.500, 6, 4);
  • Global.Hint_Origin = Array(Vector(0.534, 102.871, 165.381));
  • Global.Hint_Text = Array(Custom String("Bounce"));
  • Global.Hint_IndexFlag = Array(65);
  • Global.Lava_Origin = Array(Vector(-0.461, 97.820, 160.988), Vector(-8.548, 89.037, 120.037), Vector(-28.702, 95.080, 174.664),
  • Vector(-28.970, 95.226, 161.584), Vector(15.880, 96.782, 129.062), Vector(17.987, 270.864, 299.726), Vector(-18.512, 268.136,
  • 276.973), Vector(-1.015, 267.400, 273.293));
  • Global.Lava_Radius = Array(5, 15, 9, 9, 5, 5, 5, 5);
  • Global.Lava_IndexFlag = Array(40, 44, 45, 46, 48, 73, 74, 79);
  • }
  • }
  • rule("CHECKPOINT PARAMETERS --- DORADO")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map == Map(Dorado);
  • }
  • actions
  • {
  • Global.Level_Text = Array(0, Custom String("Level 1\r\nRollouts"), Custom String("Level 2\r\nBounces"), Custom String("Level 3\r\nDiags"), Custom String("Level 4\r\nBalance"));
  • Global.Start_Origin = Array(Vector(79.903, 17.129, -6.980), Vector(64.439, 10.938, -17.369), Vector(76.474, 11, -19.031), Vector(
  • 61.021, 7, -33.487), Vector(37.364, 11.012, -17.694), Vector(-3.396, 8.012, -0.721), Vector(-3.130, 8.012, -1.184), Vector(
  • 30.158, 10.437, 21.733), Vector(55.385, 13.216, 24.551), Vector(54.870, 13.349, 28.525), Vector(67.610, 17, 41.948), Vector(
  • 37.713, 11.012, -17.838), Vector(80.497, 17.146, -7.353), Vector(80.537, 17.132, -5.169), Vector(81.252, 17.131, -6.102),
  • Vector(106.426, 18, -6.154), Vector(124.930, 12.747, -19.259), Vector(93.658, 18.361, 6.774), Vector(155.011, 14.012, 43.885),
  • Vector(149.855, 18.012, 59.851), Vector(188.754, 13.904, 43.474), Vector(-2.190, 8.198, -0.860), Vector(-3.708, -0.388, 3.957),
  • Vector(20.893, 3.525, -8.639), Vector(25.881, 4.012, -27.545), Vector(32.707, 4.012, -25.827), Vector(61.681, 7, -32.238),
  • Vector(45.660, 7.012, -9.703), Vector(51.104, 6.781, -16.524), Vector(115.847, 11, -26.005), Vector(133.630, 11, -12.469),
  • Vector(78.416, 13, 24.356), Vector(96.756, 13.012, 20.594), Vector(179.966, 11.850, 61.173), Vector(19.870, 2.210, 25.800),
  • Vector(20.875, 3.520, -8.514), Vector(12.433, 9.500, 11.977), Vector(47.695, 6.880, -24.860), Vector(66.587, 6.933, -15.748),
  • Vector(67.545, 6.934, -18.704), Vector(45.644, 6.647, -29.172), Vector(62.353, 7, -30.240), Vector(105.585, 10.001, -4.694),
  • Vector(110.546, 11, -19.324), Vector(126.835, 11.001, -19.394), Vector(124.369, 11.001, -21.203), Vector(128.896, 9.109,
  • 0.871), Vector(89.548, 14.474, 36.245), Vector(110.724, 11.081, 27.662), Vector(110.879, 11.083, 20.358), Vector(110.121,
  • 19.222, 33.074), Vector(126.206, 18, 37.370), Vector(182.229, 14.833, 30.191), Vector(9.991, 9.500, 12.083), Vector(-11.534,
  • 19.138, 11.632), Vector(57.938, 9, 6.852), Vector(33.009, 7.507, 29.996), Vector(25.287, 10, -33.399), Vector(24.553, 17.554,
  • -52.236), Vector(34.678, 21.711, -49.611), Vector(105.243, 18, -3.914), Vector(79.678, 17.439, -35.648), Vector(120.998,
  • 17.933, 10.227), Vector(107.939, 29.345, 2.901), Vector(172.912, 19, 47.430), Vector(205.125, 30.029, 61.124), Vector(178.518,
  • 68.476, 43.986));
  • Global.Start_Radius = Array(3.500, 2.800, 3, 3, 3, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 1.800, 1.800, 2.500, 2, 2.500, 2.500, 2.500, 2.500, 3,
  • 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 2.500, 4, 2.500, 2.500);
  • Global.Start_Camera = Array(-132.116, -142.773, -160.906, -45.604, 91.412, 76.921, 60.930, 156.764, -172.991, -13.661, -98.256,
  • 83.925, -95.757, 18.127, 83.974, -88.401, 51.504, 55.382, 61.957, 96.954, -55.668, 143.564, 27.614, 91.664, 179.099, -35.739,
  • -60.068, 173.930, 88.116, -3.521, -59.952, 46.313, -26.763, 91.670, 178.445, 151.683, 132.155, -29.927, -94.395, -118.394,
  • 54.739, 16.880, -148.513, 23.016, -72.955, 3.593, -27.224, -170.953, 129.842, 43.566, -151.705, 165.350, -63.303, -86.545,
  • 103.332, -36.837, -88.401, 178.616, 77.871, -4.417, -115.790, -61.946, -124.118, -127.705, 91.423, -128.672, -63.611);
  • Global.Start_Abilities = Array(Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 0, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 0), Vector(0, 1, 0), Vector(0, 0, 0),
  • Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 0, 0), Vector(0, 0, 1), Vector(0, 0, 0), Vector(1, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1,
  • 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1),
  • Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(
  • 0, 1, 0), Vector(0, 1, 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 1), Vector(0, 1,
  • 1), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 1, 0), Vector(0, 0, 1), Vector(1, 1, 0), Vector(0, 0, 1), Vector(0, 1, 0),
  • Vector(0, 0, 1), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 0, 1), Vector(1, 1, 0), Vector(
  • 0, 0, 1), Vector(1, 1, 0), Vector(0, 0, 0));
  • Global.Start_LevelFlag = Array(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  • 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4);
  • Global.End_Origin = Array(0, 0, 0, 0, 0, Vector(40.111, 9, -5.436), Vector(38.241, 10.437, 23.645), Vector(47.694, 6.881, -30.841),
  • Vector(80.010, 17.116, -6.263), Vector(74.376, 19.450, 31.469), Vector(15.442, 9.500, 15.039), Vector(77.304, 11, -19.078),
  • Vector(27.003, 1.236, -0.460), Vector(86.957, 18.361, 15.396), Vector(105.406, 18, -4.424), Vector(47.765, 9, 3.505), Vector(
  • 138.869, 17.750, 14.246), Vector(115.807, 18, 34.644), Vector(170.146, 11.850, 56.464), Vector(188.744, 13.943, 43.691),
  • Vector(160.383, 11, 42.306), Vector(21.917, 11, -25.185), Vector(11.124, 9.500, 19.069), Vector(36.465, 9.271, -5.436), Vector(
  • 27.184, 11, -27.778), Vector(20.927, 9.533, -5.576), Vector(36.613, 9, 1.682), Vector(29.159, 10, -32.738), Vector(82.546,
  • 10.857, -21.695), Vector(121.584, 17.933, 7.647), Vector(106.016, 18, -4.189), Vector(107.440, 19.950, 33.936), Vector(85.105,
  • 20, 18.129), Vector(206.271, 15, 43.545), Vector(20.506, 9.533, -0.521), Vector(35.479, 10, -34.987), Vector(59.537, 6.745,
  • -14.456), Vector(39.093, 9, 0.010), Vector(36.746, 11.012, -18.051), Vector(29.145, 10, -32.044), Vector(80.103, 17.122,
  • -5.970), Vector(76.714, 8, 9.009), Vector(76.993, 6.839, -12.407), Vector(121.575, 17.933, 7.943), Vector(80.439, 17.120,
  • -5.786), Vector(137.791, 17.750, 14.362), Vector(138.373, 11, 27.657), Vector(80.229, 17.118, -6.079), Vector(128.302, 17.750,
  • 12.037), Vector(133.762, 16.202, 42.808), Vector(80.214, 17.116, -6.252), Vector(130.012, 9.016, -20.801), Vector(139.644,
  • 14.012, 47.315), Vector(-11.540, 19.138, 11.627), Vector(10.801, -0.248, 5.759), Vector(33.009, 7.507, 29.993), Vector(-1.119,
  • -0.566, 4.981), Vector(24.370, 17.563, -52.229), Vector(34.678, 21.711, -49.613), Vector(57.087, 6.792, -14.948), Vector(
  • 80.345, 18.318, -32.536), Vector(31.881, 3.789, -17.760), Vector(108.042, 29.614, 3.355), Vector(102.591, 8.766, -15.036),
  • Vector(205.755, 30.296, 61.700), Vector(181.474, 13.850, 45.854), Vector(163.454, 11.810, 51.347));
  • Global.End_Radius = Array(0, 0, 0, 0, 0, 3, 3.500, 3.500, 4, 3.500, 4, 3, 4, 3, 3.500, 3.600, 3.500, 3.500, 3.500, 3.500, 3.500, 4,
  • 3.500, 3.500, 4, 3.500, 3.500, 3.500, 2.500, 3.500, 3.500, 3.500, 3.500, 3.500, 3.500, 3.500, 3.500, 3, 3.500, 3.500, 3.500,
  • 3.500, 4, 4, 4, 4, 3.500, 4.500, 2.500, 3.500, 3.500, 5, 3.500, 2.500, 3.500, 1.600, 3.500, 2.500, 2.500, 3.500, 6.500, 3.500,
  • 3, 4.300, 6.500, 4, 4);
  • Global.Hint_Origin = Array(Vector(154.986, 26.897, 49.665), Vector(32.979, 4.263, -8.938));
  • Global.Hint_Text = Array(Custom String(
  • "Climb this roof with ult\r\nto get up there\r\nTry it in free mode!"), Custom String("Bounce"));
  • Global.Hint_IndexFlag = Array(66, 23);
  • Global.Lava_Origin = Array(Vector(122.829, 15.297, -4.769), Vector(83.714, 21.898, 18.453), Vector(87.745, 10.039, -10.160),
  • Vector(86.386, 20.366, 19.112), Vector(120.579, 16.041, 8.488), Vector(138.555, 11.738, 14.261), Vector(138.555, 11.738,
  • 14.261));
  • Global.Lava_Radius = Array(8, 8, 5, 5, 8.600, 5, 5);
  • Global.Lava_IndexFlag = Array(16, 17, 42, 50, 51, 46, 47);
  • }
  • }
  • disabled rule("### GAMEPLAY EVENTS ###")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Event - Initialize Global Variables & Map (do any necessary preliminary calculations, effects, etc.)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Disable Built-In Game Mode Announcer;
  • Disable Built-In Game Mode Completion;
  • Disable Built-In Game Mode Scoring;
  • Global.TempIter = 0;
  • Global.TempArray = Empty Array;
  • Global.Level_Color = Array(Color(White), Color(Green), Color(Yellow), Color(Red), Color(Purple), Color(Sky Blue), Color(Blue));
  • Global.Time_Recorded = Empty Array;
  • Global.Time_Proper = Empty Array;
  • Global.Time_Rank = Empty Array;
  • Global.Time_LevelFlag = Empty Array;
  • Global.Time_PlayerID = Empty Array;
  • Global.Time_HUD = Empty Array;
  • Global.Time_Updating = False;
  • Global.Setting_MapRotation = Workshop Setting Toggle(Custom String("General Settings"), Custom String("Enable Map Rotation"), True, 0);
  • Global.Setting_ServerLoad = Workshop Setting Toggle(Custom String("General Settings"), Custom String("Show Server Load"), False, 1);
  • Call Subroutine(Effects_RefreshGlobal);
  • If(Global.Setting_ServerLoad == True);
  • Create HUD Text(Host Player, Null, Null, Custom String("Server Load | Cur {0} | Avg {1} | Peak {2}", Server Load, Server Load Average, Server Load Peak), Right, 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • End;
  • If(Current Game Mode != Game Mode(Skirmish));
  • Wait(0.250, Ignore Condition);
  • Set Match Time(1);
  • Wait(1.250, Ignore Condition);
  • Set Match Time(1);
  • Wait(1.250, Ignore Condition);
  • End;
  • Set Match Time(3600);
  • If(Global.Setting_MapRotation == False);
  • While(True);
  • Wait(600, Ignore Condition);
  • Set Match Time(3600);
  • End;
  • End;
  • }
  • }
  • rule("Event - Initialize Player Variables")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • }
  • actions
  • {
  • Preload Hero(Event Player, Hero(Doomfist));
  • Event Player.TempIter = 0;
  • Event Player.TempArray = Empty Array;
  • Event Player.Initialized = False;
  • Event Player.Transitioning = True;
  • Event Player.FreeMode = False;
  • Event Player.UsingPunch = False;
  • Event Player.GracePeriod = 0;
  • Event Player.MidAirPeriod = 0;
  • Event Player.Stopwatch = 0;
  • Event Player.HUD_Text = Empty Array;
  • Event Player.HUD_ControlsDisabled = False;
  • Event Player.HUD_ScoreboardDisabled = False;
  • Event Player.Level_Current = 0;
  • Event Player.Level_Checkpoints = Empty Array;
  • Event Player.Level_LocalIndex = 0;
  • Event Player.Level_GlobalIndex = 0;
  • Event Player.Checkpoint_Effects = Empty Array;
  • Event Player.Developer_Mode = False;
  • }
  • }
  • rule("Event - Spawn In Player (draw effects & HUD, enter parkour mode)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == False;
  • Is In Spawn Room(Event Player) == True;
  • }
  • actions
  • {
  • Clear Status(Event Player, Phased Out);
  • Call Subroutine(Calculate_Checkpoints);
  • Call Subroutine(Effects_RefreshPlayer);
  • Wait(0.100, Ignore Condition);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Call Subroutine(Reposition);
  • Event Player.Initialized = True;
  • While(Facing Direction Of(Event Player) != Direction From Angles(Global.Start_Camera[Event Player.Level_GlobalIndex], 0));
  • Wait(0.100, Ignore Condition);
  • Set Facing(Event Player, Direction From Angles(Global.Start_Camera[Event Player.Level_GlobalIndex], 0), To World);
  • End;
  • If(Global.Setting_MapRotation == False);
  • Disable Game Mode HUD(Event Player);
  • Disable Scoreboard(Event Player);
  • End;
  • Disable Kill Feed(Event Player);
  • Wait(0.100, Ignore Condition);
  • While(Event Player.HUD_Text == Empty Array || Count Of(Filtered Array(Event Player.HUD_Text, Current Array Index == Index Of Array Value(Event Player.HUD_Text, Current Array Element))) < Count Of(Event Player.HUD_Text));
  • Call Subroutine(HUD_RefreshText);
  • Wait(Random Real(0.1, 0.5), Ignore Condition);
  • End;
  • }
  • }
  • rule("Event - Update Scoreboard (refresh scoreboard HUD whenever updating variable is true)")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.Time_Updating == True;
  • }
  • actions
  • {
  • Wait(0.100, Ignore Condition);
  • Loop If(Global.TempIter != 0);
  • Call Subroutine(HUD_RefreshScoreboard);
  • Loop If( Count Of(Filtered Array(Global.Time_HUD, Current Array Index == Index Of Array Value(Global.Time_HUD, Current Array Element))) < Count Of(Global.Time_HUD) );
  • Global.Time_Updating = False;
  • }
  • }
  • rule("Event - Quick Respawn (press RELOAD while in parkour mode to quickly reposition)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.FreeMode == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • }
  • actions
  • {
  • Skip If(Is Using Ability 1(Event Player) == False, 2);
  • Cancel Primary Action(Event Player);
  • Wait(0.250, Ignore Condition);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Event - On Death (Whenever player dies, respawn & reposition)")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • Respawn(Event Player);
  • Clear Status(Event Player, Phased Out);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Event Player.Transitioning = False;
  • }
  • }
  • rule("Event - Level Select (If standing on a level selector in main hub, start that level)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.GracePeriod == 0;
  • Event Player.FreeMode == False;
  • Event Player.Level_Current == 0;
  • Is On Ground(Event Player) == True;
  • Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_GlobalIndex])
  • > Global.Start_Radius[Event Player.Level_GlobalIndex];
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • For Player Variable(Event Player, TempIter, 1, Count Of(Event Player.Level_Checkpoints), 1);
  • If(Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_Checkpoints[Event Player.TempIter]])
  • <= Global.Start_Radius[Event Player.Level_Checkpoints[Event Player.TempIter]]);
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 50);
  • Event Player.Level_Current = Event Player.TempIter;
  • Call Subroutine(Calculate_Checkpoints);
  • Call Subroutine(Effects_RefreshPlayer);
  • Event Player.Stopwatch = 0;
  • Break;
  • End;
  • End;
  • If(Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_GlobalIndex])
  • < Global.Start_Radius[Event Player.Level_GlobalIndex]);
  • Cancel Primary Action(Event Player);
  • Wait(0.100, Ignore Condition);
  • Call Subroutine(AbilityRefresh);
  • Else;
  • Call Subroutine(Reposition);
  • End;
  • Event Player.TempIter = 0;
  • Event Player.Transitioning = False;
  • }
  • }
  • rule("Event - Start Timer (Start timer stopwatch when leaving first checkpoint)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.FreeMode == False;
  • Event Player.Level_Current > 0;
  • Event Player.Level_LocalIndex == 0;
  • Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_GlobalIndex])
  • > Global.Start_Radius[Event Player.Level_GlobalIndex];
  • }
  • actions
  • {
  • Event Player.Stopwatch = 0;
  • Chase Player Variable At Rate(Event Player, Stopwatch, 9999, 1, None);
  • }
  • }
  • rule("Event - Checkpoint Fail (If standing anywhere outside of checkpoint start/end, go back to start)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.GracePeriod == 0;
  • Event Player.FreeMode == False;
  • Event Player.Level_Current > 0;
  • Is On Ground(Event Player) == True;
  • Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_GlobalIndex])
  • > Global.Start_Radius[Event Player.Level_GlobalIndex];
  • Distance Between(Position Of(Event Player), Global.End_Origin[Event Player.Level_GlobalIndex])
  • > Global.End_Radius[Event Player.Level_GlobalIndex];
  • }
  • actions
  • {
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Event - Checkpoint Pass (Landing or floating for 3 seconds at goal will pass)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.FreeMode == False;
  • Event Player.Level_Current > 0;
  • Distance Between(Position Of(Event Player), Global.End_Origin[Event Player.Level_GlobalIndex])
  • < Global.End_Radius[Event Player.Level_GlobalIndex];
  • }
  • actions
  • {
  • Event Player.MidAirPeriod = 3;
  • Chase Player Variable At Rate(Event Player, MidAirPeriod, 0, 1, None);
  • While(Is On Ground(Event Player) == False && Event Player.MidAirPeriod > 0);
  • Wait(0.200, Abort When False);
  • End;
  • Event Player.MidAirPeriod = 0;
  • Event Player.Transitioning = True;
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 50);
  • If(Event Player.Level_LocalIndex < Count Of(Event Player.Level_Checkpoints) - 1);
  • Event Player.Level_LocalIndex += 1;
  • Event Player.Level_GlobalIndex = Event Player.Level_Checkpoints[Event Player.Level_LocalIndex];
  • Else;
  • Skip If(Event Player.Stopwatch == 0, 1);
  • Call Subroutine(Calculate_RecordTime);
  • Event Player.Level_Current = 0;
  • Call Subroutine(Calculate_Checkpoints);
  • End;
  • Call Subroutine(Effects_RefreshPlayer);
  • If(Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_GlobalIndex])
  • < Global.Start_Radius[Event Player.Level_GlobalIndex]);
  • Cancel Primary Action(Event Player);
  • Wait(0.100, Ignore Condition);
  • Call Subroutine(AbilityRefresh);
  • Else;
  • Wait(0.050, Ignore Condition);
  • Call Subroutine(Reposition);
  • End;
  • Event Player.Transitioning = False;
  • }
  • }
  • rule("Event - Lava Sphere (Touching lava sphere resets player)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.FreeMode == False;
  • Event Player.Checkpoint_Lavas != Empty Array;
  • Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_GlobalIndex])
  • > Global.Start_Radius[Event Player.Level_GlobalIndex];
  • Is True For Any(Mapped Array(Event Player.Checkpoint_Lavas, Distance Between(Position Of(Event Player),
  • Global.Lava_Origin[Current Array Element]) - Global.Lava_Radius[Current Array Element]), Current Array Element < 0) == True;
  • }
  • actions
  • {
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Event - Rocket Punch Check (checks if player is using rocket punch)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.FreeMode == False;
  • (Is Firing Secondary(Event Player) && X Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]) == 0) == True;
  • }
  • actions
  • {
  • Event Player.UsingPunch = True;
  • }
  • }
  • rule("Event - Rocket Punch Grace (releasing punch gives grace period)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.FreeMode == False;
  • Is Firing Secondary(Event Player) == False;
  • Event Player.UsingPunch == True;
  • }
  • actions
  • {
  • Event Player.UsingPunch = False;
  • Event Player.GracePeriod = 0.500;
  • Chase Player Variable At Rate(Event Player, GracePeriod, 0, 1, None);
  • }
  • }
  • rule("Event - Slam/Uppercut Grace (using ability gives initial grace period)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Event Player.FreeMode == False;
  • (Is Using Ability 1(Event Player) || Is Using Ability 2(Event Player)) == True;
  • }
  • actions
  • {
  • Event Player.GracePeriod = 0.500;
  • Chase Player Variable At Rate(Event Player, GracePeriod, 0, 1, None);
  • }
  • }
  • rule("Event - Starting Abilities (while inside starting checkpoint, refreshes usable abilities)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.FreeMode == False;
  • Distance Between(Position Of(Event Player), Global.Start_Origin[Event Player.Level_GlobalIndex])
  • <= Global.Start_Radius[Event Player.Level_GlobalIndex];
  • Is Firing Secondary(Event Player) == False;
  • Is Using Ability 1(Event Player) == False;
  • Is Using Ability 2(Event Player) == False;
  • }
  • actions
  • {
  • Abort If(Event Player.Transitioning == True);
  • Wait(0.500, Abort When False);
  • Call Subroutine(AbilityRefresh);
  • }
  • }
  • rule("Event - Free Roam Abilities (while in free mode, refreshes abilities when you use them, grants ultimate)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.FreeMode == True;
  • (Is Button Held(Event Player, Button(Secondary Fire)) || Is Button Held(Event Player, Button(Ability 1)) || Is Button Held(
  • Event Player, Button(Ability 2)) || Is Button Held(Event Player, Button(Ultimate))) == True;
  • }
  • actions
  • {
  • Call Subroutine(AbilityRefresh);
  • }
  • }
  • disabled rule("### INTERACTION ###")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Interact Disallow Buttons (while interacting, disallow buttons)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • Disallow Button(Event Player, Button(Primary Fire));
  • Disallow Button(Event Player, Button(Secondary Fire));
  • Disallow Button(Event Player, Button(Ability 1));
  • Disallow Button(Event Player, Button(Ability 2));
  • Disallow Button(Event Player, Button(Ultimate));
  • Disallow Button(Event Player, Button(Jump));
  • Disallow Button(Event Player, Button(Crouch));
  • Disallow Button(Event Player, Button(Melee));
  • }
  • }
  • rule("Interact Allow Buttons (while not interacting, allow buttons)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • }
  • actions
  • {
  • Wait(0.150, Abort When False);
  • Allow Button(Event Player, Button(Primary Fire));
  • Allow Button(Event Player, Button(Secondary Fire));
  • Allow Button(Event Player, Button(Ability 1));
  • Allow Button(Event Player, Button(Ability 2));
  • Allow Button(Event Player, Button(Ultimate));
  • Allow Button(Event Player, Button(Jump));
  • Allow Button(Event Player, Button(Crouch));
  • Allow Button(Event Player, Button(Melee));
  • }
  • }
  • rule("Toggle Controls HUD (INTERACT + MELEE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Melee)) == True;
  • }
  • actions
  • {
  • Event Player.HUD_ControlsDisabled = !Event Player.HUD_ControlsDisabled;
  • }
  • }
  • rule("Toggle Free Mode (INTERACT + PRIMARY FIRE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 50);
  • Wait(0.100, Ignore Condition);
  • If(Event Player.FreeMode == True);
  • Event Player.FreeMode = False;
  • If(Event Player.Developer_Mode == True);
  • Event Player.Level_Current = 0;
  • Call Subroutine(Calculate_Checkpoints);
  • Call Subroutine(Effects_RefreshGlobal);
  • Call Subroutine(HUD_RefreshText);
  • End;
  • Call Subroutine(Reposition);
  • Skip If(Event Player.Stopwatch == 0 || Event Player.Level_LocalIndex == 0, 1);
  • Chase Player Variable At Rate(Event Player, Stopwatch, 9999, 1, None);
  • Else;
  • Event Player.FreeMode = True;
  • Call Subroutine(AbilityRefresh);
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • If(Event Player.Developer_Mode == True);
  • Call Subroutine(Effects_RefreshDeveloper);
  • Call Subroutine(HUD_RefreshDeveloper);
  • End;
  • End;
  • Event Player.Transitioning = False;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Checkpoint Skip (INTERACT + JUMP)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Is Using Ultimate(Event Player) == False;
  • (Event Player.Developer_Mode && Event Player.FreeMode) == False;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • If(Event Player.Level_LocalIndex < Count Of(Event Player.Level_Checkpoints) - 1 && Event Player.Level_Current > 0);
  • Event Player.Level_LocalIndex += 1;
  • Event Player.Level_GlobalIndex = Event Player.Level_Checkpoints[Event Player.Level_LocalIndex];
  • Else If((Event Player.Level_LocalIndex >= Count Of(Event Player.Level_Checkpoints) - 1 && Event Player.Level_Current < Count Of(
  • Filtered Array(Global.Start_LevelFlag, Current Array Element == 0)) - 1) || (Event Player.Level_Current == 0));
  • Event Player.Level_Current += 1;
  • Call Subroutine(Calculate_Checkpoints);
  • Else If(Event Player.Level_Current >= Count Of(Filtered Array(Global.Start_LevelFlag, Current Array Element == 0)) - 1);
  • Event Player.Level_Current = 0;
  • Call Subroutine(Calculate_Checkpoints);
  • End;
  • Call Subroutine(Effects_RefreshPlayer);
  • Call Subroutine(Reposition);
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • Event Player.Stopwatch = 0;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Checkpoint Previous (INTERACT + CROUCH)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Crouch)) == True;
  • Is Using Ultimate(Event Player) == False;
  • (Event Player.Developer_Mode && Event Player.FreeMode) == False;
  • Event Player.Level_Current > 0;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • If(Event Player.Level_LocalIndex > 0);
  • Event Player.Level_LocalIndex -= 1;
  • Event Player.Level_GlobalIndex = Event Player.Level_Checkpoints[Event Player.Level_LocalIndex];
  • Else If(Event Player.Level_LocalIndex == 0 && Event Player.Level_Current > 0);
  • Event Player.Level_Current -= 1;
  • Call Subroutine(Calculate_Checkpoints);
  • Skip If(Event Player.Level_Current == 0, 2);
  • Event Player.Level_LocalIndex = Count Of(Event Player.Level_Checkpoints) - 1;
  • Event Player.Level_GlobalIndex = Event Player.Level_Checkpoints[Event Player.Level_LocalIndex];
  • End;
  • Call Subroutine(Effects_RefreshPlayer);
  • Call Subroutine(Reposition);
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • Event Player.Stopwatch = 0;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Level End / Next Level (INTERACT + ABILITY 2)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Ability 2)) == True;
  • Is Using Ultimate(Event Player) == False;
  • (Event Player.Developer_Mode && Event Player.FreeMode) == False;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • If(Event Player.Level_Current < Count Of(Filtered Array(Global.Start_LevelFlag, Current Array Element == 0)) - 1);
  • Event Player.Level_Current += 1;
  • Else;
  • Event Player.Level_Current = 0;
  • End;
  • Call Subroutine(Calculate_Checkpoints);
  • Call Subroutine(Effects_RefreshPlayer);
  • Call Subroutine(Reposition);
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • Event Player.Stopwatch = 0;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Level Start / Previous Level (INTERACT + ULTIMATE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Is Using Ultimate(Event Player) == False;
  • (Event Player.Developer_Mode && Event Player.FreeMode) == False;
  • Event Player.Level_Current > 0;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • If(Event Player.Level_LocalIndex > 0);
  • Event Player.Level_LocalIndex = 0;
  • Event Player.Level_GlobalIndex = Event Player.Level_Checkpoints[Event Player.Level_LocalIndex];
  • Else;
  • Event Player.Level_Current -= 1;
  • Call Subroutine(Calculate_Checkpoints);
  • End;
  • Call Subroutine(Effects_RefreshPlayer);
  • Call Subroutine(Reposition);
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • Event Player.Stopwatch = 0;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Main Hub (INTERACT + ABILITY 1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Ability 1)) == True;
  • Is Using Ultimate(Event Player) == False;
  • (Event Player.Developer_Mode && Event Player.FreeMode) == False;
  • Event Player.Level_Current > 0;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • Event Player.Level_Current = 0;
  • Call Subroutine(Calculate_Checkpoints);
  • Call Subroutine(Effects_RefreshPlayer);
  • Call Subroutine(Reposition);
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • Event Player.Stopwatch = 0;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • disabled rule("### SUBROUTINES ###")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Subroutine - Reposition at start of current checkpoint")
  • {
  • event
  • {
  • Subroutine;
  • Reposition;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Cancel Primary Action(Event Player);
  • Apply Impulse(Event Player, Down, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Event Player, Up, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Event Player, Backward, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Event Player, Forward, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Event Player, Right, 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Event Player, Left, 0.001, To World, Cancel Contrary Motion);
  • Set Facing(Event Player, Direction From Angles(Global.Start_Camera[Event Player.Level_GlobalIndex], 0), To World);
  • Skip If(Global.Start_Origin[Event Player.Level_GlobalIndex] == 0, 1);
  • Teleport(Event Player, Global.Start_Origin[Event Player.Level_GlobalIndex]);
  • Set Status(Event Player, Null, Rooted, 0.100);
  • Skip If(Event Player.Level_LocalIndex > 0, 2);
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • Event Player.Stopwatch = 0;
  • Wait(0.100, Ignore Condition);
  • Call Subroutine(AbilityRefresh);
  • Set Facing(Event Player, Direction From Angles(Global.Start_Camera[Event Player.Level_GlobalIndex], 0), To World);
  • Wait(0.050, Ignore Condition);
  • Event Player.Transitioning = False;
  • }
  • }
  • rule("Subroutine - Ability refresh at current checkpoint")
  • {
  • event
  • {
  • Subroutine;
  • AbilityRefresh;
  • }
  • actions
  • {
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 0);
  • Set Ability Cooldown(Event Player, Button(Ability 1), 0);
  • Set Ability Cooldown(Event Player, Button(Ability 2), 0);
  • If(Event Player.FreeMode == False);
  • Set Secondary Fire Enabled(Event Player, X Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]) == 0);
  • Set Ability 1 Enabled(Event Player, Y Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]) == 0);
  • Set Ability 2 Enabled(Event Player, Z Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]) == 0);
  • Set Ultimate Ability Enabled(Event Player, False);
  • Else;
  • Set Secondary Fire Enabled(Event Player, True);
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Ultimate Ability Enabled(Event Player, True);
  • Set Ultimate Charge(Event Player, 100);
  • End;
  • }
  • }
  • rule("Subroutine - Calculate level length and checkpoints at current level, start at first checkpoint")
  • {
  • event
  • {
  • Subroutine;
  • Calculate_Checkpoints;
  • }
  • actions
  • {
  • Event Player.Level_Checkpoints = Filtered Array(Mapped Array(Global.Start_LevelFlag, Current Array Element == Event Player.Level_Current ? Current Array Index : -1), Current Array Element > -1);
  • Event Player.Level_LocalIndex = 0;
  • Event Player.Level_GlobalIndex = Event Player.Level_Checkpoints[Event Player.Level_LocalIndex];
  • }
  • }
  • rule("Subroutine - Find extra effects at current checkpoint")
  • {
  • event
  • {
  • Subroutine;
  • Calculate_ExtraEffects;
  • }
  • actions
  • {
  • Event Player.Checkpoint_Hints = Empty Array;
  • Skip If(Index Of Array Value(Global.Hint_IndexFlag, Event Player.Level_GlobalIndex) == -1, 1);
  • Event Player.Checkpoint_Hints = Filtered Array(Mapped Array(Global.Hint_IndexFlag, Current Array Element == Event Player.Level_GlobalIndex ? Current Array Index : -1), Current Array Element > -1);
  • Event Player.Checkpoint_Lavas = Empty Array;
  • Skip If(Index Of Array Value(Global.Lava_IndexFlag, Event Player.Level_GlobalIndex) == -1, 1);
  • Event Player.Checkpoint_Lavas = Filtered Array(Mapped Array(Global.Lava_IndexFlag, Current Array Element == Event Player.Level_GlobalIndex ? Current Array Index : -1), Current Array Element > -1);
  • }
  • }
  • rule("Subroutine - Record Time To Global Variables")
  • {
  • event
  • {
  • Subroutine;
  • Calculate_RecordTime;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, Stopwatch);
  • For Player Variable(Event Player, TempIter, 0, Count Of(Global.Time_LevelFlag) + 1, 1);
  • If(Global.Time_LevelFlag[Event Player.TempIter] == Event Player.Level_Current && Global.Time_PlayerID[Event Player.TempIter] == Custom String("{0}", Event Player));
  • If(Global.Time_Recorded[Event Player.TempIter] <= Event Player.Stopwatch);
  • Event Player.TempIter = 0;
  • Wait(1, Ignore Condition);
  • Abort;
  • Else;
  • Global.Time_Recorded[Event Player.TempIter] = Event Player.Stopwatch;
  • Global.Time_Proper[Event Player.TempIter] = Custom String("{0}:{1}{2}", Round To Integer(Event Player.Stopwatch / 60, Down), Event Player.Stopwatch % 60 < 10 ? 0 : String(""), Event Player.Stopwatch % 60);
  • Global.Time_Rank[Event Player.TempIter] = (100*Event Player.Level_Current) + Square Root(Event Player.Stopwatch);
  • Break;
  • End;
  • Else If(Event Player.TempIter == Count Of(Global.Time_LevelFlag));
  • Modify Global Variable(Time_LevelFlag, Append To Array, Event Player.Level_Current);
  • Modify Global Variable(Time_PlayerID, Append To Array, Custom String("{0}", Event Player));
  • Modify Global Variable(Time_Recorded, Append To Array, Event Player.Stopwatch);
  • Modify Global Variable(Time_Proper, Append To Array, Custom String("{0}:{1}{2}", Round To Integer(Event Player.Stopwatch / 60, Down), Event Player.Stopwatch % 60 < 10 ? 0 : String(""), Event Player.Stopwatch % 60));
  • Modify Global Variable(Time_Rank, Append To Array, (100*Event Player.Level_Current) + Square Root(Event Player.Stopwatch));
  • Break;
  • End;
  • End;
  • Wait(0.100, Ignore Condition);
  • Global.Time_Updating = True;
  • Big Message(Filtered Array(All Players(All Teams), Current Array Element.HUD_ScoreboardDisabled == False),
  • Custom String("{0} - Level {1} Time - {2}", Event Player, Event Player.Level_Current, Global.Time_Proper[Event Player.TempIter]));
  • Wait(3, Ignore Condition);
  • Event Player.TempIter = 0;
  • }
  • }
  • rule("Subroutine - Destroy HUD Text")
  • {
  • event
  • {
  • Subroutine;
  • HUD_DestroyText;
  • }
  • actions
  • {
  • For Player Variable(Event Player, TempIter, 0, Count Of(Event Player.HUD_Text), 1);
  • Destroy HUD Text(Event Player.HUD_Text[Event Player.TempIter]);
  • End;
  • Event Player.HUD_Text = Empty Array;
  • Event Player.TempIter = 0;
  • }
  • }
  • rule("Subroutine - Refresh HUD Text")
  • {
  • event
  • {
  • Subroutine;
  • HUD_RefreshText;
  • }
  • actions
  • {
  • Call Subroutine(HUD_DestroyText);
  • While(True);
  • If(Count Of(Event Player.HUD_Text) == 0);
  • Create HUD Text(Null, Null, Null, String(""), Left, 100, Color(White), Color(White), Color(White), None, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 1);
  • Create HUD Text(Event Player, Null, Null, Custom String("Doomfist Parkour Academy"), Right, 0.1, Color(White), Color(White), Color(White), String, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 2);
  • Create HUD Text(Event Player, Null, Null, Custom String("v1.6.1 Code: E7MMF"), Right, 0.2, Color(White), Color(White), Color(White), String, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 3);
  • Create HUD Text(Event Player, Null, Null, Custom String("Level: {0} / {1}", Event Player.Level_Current, Count Of(Filtered Array( Global.Start_LevelFlag, Current Array Element == 0)) - 1), Left, 1, Color(White), Color(White), Color(White), String, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 4);
  • Create HUD Text(Event Player, Null, Null, Custom String("Checkpoint: {0} / {1}", Event Player.Level_LocalIndex + 1, Count Of(Event Player.Level_Checkpoints)), Left, 1.100, Color(White), Color(White), Color(White), String, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 5);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.FreeMode == True), Null, Null, Custom String("Free Mode Enabled"), Top, 1, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 6);
  • Create HUD Text(Event Player, Null, Null, Custom String("Time: {0}", Custom String("{0}:{1}{2}", Round To Integer(Event Player.Stopwatch / 60, Down), Event Player.Stopwatch % 60 < 10 ? 0 : String(""), Event Player.Stopwatch % 60)), Top, 2, Color(White), Color(White), Color(White), String, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 7);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False), Null, Custom String(" "), Null, Left, 2, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 8);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False), Null, Null, Custom String("Reload = Quick Respawn"), Left, 2.100, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 9);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False), Null, Null, Custom String("Interact = Show Controls"), Left, 2.200, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 10);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False && Is Button Held(Current Array Element, Button(Interact)) == True), Null, Null, Custom String(" + Melee = Toggle Controls HUD"), Left, 2.300, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 11);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False && Is Button Held(Current Array Element, Button(Interact)) == True), Null, Null, Custom String(" + Primary Fire = Toggle Free Mode"), Left, 2.400, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 12);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False && Is Button Held(Current Array Element, Button(Interact)) == True), Null, Null, Custom String(" + Crouch/Jump = Next/Previous Checkpoint"), Left, 2.500, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 13);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False && Is Button Held(Current Array Element, Button(Interact)) == True), Null, Null, Custom String(" + Ult/Slam = Next/Previous Level"), Left, 2.600, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) == 14);
  • Create HUD Text(Filtered Array(Event Player, Current Array Element.HUD_ControlsDisabled == False && Is Button Held(Current Array Element, Button(Interact)) == True), Null, Null, Custom String(" + Uppercut = Back To Main Hub"), Left, 2.700, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • ElseIf(Count Of(Event Player.HUD_Text) > 14);
  • Break;
  • End;
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • If(Last Of(Event Player.HUD_Text) == Value In Array(Event Player.HUD_Text, Count Of(Event Player.HUD_Text) - 2));
  • Modify Player Variable(Event Player, HUD_Text, Remove From Array By Index, Count Of(Event Player.HUD_Text) - 1);
  • Wait(Random Real(0.1, 0.5), Ignore Condition);
  • End;
  • End;
  • }
  • }
  • rule("Subroutine - Refresh Scoreboard HUD Text")
  • {
  • event
  • {
  • Subroutine;
  • HUD_RefreshScoreboard;
  • }
  • actions
  • {
  • For Global Variable(TempIter, 0, Count Of(Global.Time_HUD), 1);
  • Destroy HUD Text(Global.Time_HUD[Global.TempIter]);
  • End;
  • Global.Time_HUD = Empty Array;
  • For Global Variable(TempIter, -1, Count Of(Global.Time_LevelFlag), 1);
  • If(Global.TempIter < 0);
  • Create HUD Text(Null, Null, Null, String(""), Left, 100, Color(White), Color(White), Color(White), None, Default Visibility);
  • Else;
  • Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.HUD_ScoreboardDisabled == False), Null, Null, Custom String("{0} - {1}", Global.Time_PlayerID[Global.TempIter], Global.Time_Proper[Global.TempIter]), Right, Global.Time_Rank[Global.TempIter], Color(White), Color(White), Global.Level_Color[Global.Time_LevelFlag[Global.TempIter]], Visible To, Default Visibility);
  • End;
  • Modify Global Variable(Time_HUD, Append To Array, Last Text ID);
  • If(Last Of(Global.Time_HUD) == Value In Array(Global.Time_HUD, Count Of(Global.Time_HUD) - 2));
  • Modify Global Variable(Time_HUD, Remove From Array By Index, Count Of(Global.Time_HUD) - 1);
  • Global.TempIter -= 1;
  • Wait(Random Real(0.1, 0.5), Ignore Condition);
  • End;
  • End;
  • Global.TempArray = Filtered Array(Global.Time_LevelFlag, Current Array Index == Index Of Array Value(Global.Time_LevelFlag, Current Array Element));
  • For Global Variable(TempIter, 0, Count Of(Global.TempArray), 1);
  • While(True);
  • Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.HUD_ScoreboardDisabled == False), Null, Custom String(" "), Null, Right, (100*Global.TempArray[Global.TempIter]) - 0.01, Color(White), Color(White), Color(White), Visible To, Default Visibility);
  • Modify Global Variable(Time_HUD, Append To Array, Last Text ID);
  • Skip If(Last Of(Global.Time_HUD) != Value In Array(Global.Time_HUD, Count Of(Global.Time_HUD) - 2), 3);
  • Modify Global Variable(Time_HUD, Remove From Array By Index, Count Of(Global.Time_HUD) - 1);
  • Wait(Random Real(0.1, 0.5), Ignore Condition);
  • Continue;
  • Break;
  • End;
  • While(True);
  • Create HUD Text(Filtered Array(All Players(All Teams), Current Array Element.HUD_ScoreboardDisabled == False), Null, Null, Custom String("Level {0} Scores:", Global.TempArray[Global.TempIter]), Right, 100*Global.TempArray[Global.TempIter], Color(White), Color(White), Global.Level_Color[Global.TempArray[Global.TempIter]], Visible To, Default Visibility);
  • Modify Global Variable(Time_HUD, Append To Array, Last Text ID);
  • Skip If(Last Of(Global.Time_HUD) != Value In Array(Global.Time_HUD, Count Of(Global.Time_HUD) - 2), 3);
  • Modify Global Variable(Time_HUD, Remove From Array By Index, Count Of(Global.Time_HUD) - 1);
  • Wait(Random Real(0.1, 0.5), Ignore Condition);
  • Continue;
  • Break;
  • End;
  • End;
  • Global.TempIter = 0;
  • Global.TempArray = Empty Array;
  • }
  • }
  • rule("Subroutine - Destroy Player Checkpoint Effects")
  • {
  • event
  • {
  • Subroutine;
  • Effects_DestroyPlayer;
  • }
  • actions
  • {
  • For Player Variable(Event Player, TempIter, 0, Count Of(Event Player.Checkpoint_Effects), 1);
  • Destroy Effect(Event Player.Checkpoint_Effects[Event Player.TempIter]);
  • Destroy Icon(Event Player.Checkpoint_Effects[Event Player.TempIter]);
  • Destroy In-World Text(Event Player.Checkpoint_Effects[Event Player.TempIter]);
  • End;
  • Event Player.Checkpoint_Effects = Empty Array;
  • Event Player.TempIter = 0;
  • }
  • }
  • rule("Subroutine - Refresh Player Checkpoint Effects")
  • {
  • event
  • {
  • Subroutine;
  • Effects_RefreshPlayer;
  • }
  • actions
  • {
  • Call Subroutine(Calculate_ExtraEffects);
  • Call Subroutine(Effects_DestroyPlayer);
  • If(Event Player.Level_Current > 0);
  • Create Effect(Filtered Array(Event Player, Current Array Element.FreeMode == False), Ring, Global.Level_Color[Event Player.Level_Current], Global.Start_Origin[Event Player.Level_GlobalIndex], Global.Start_Radius[Event Player.Level_GlobalIndex], Visible To);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Create Effect(Filtered Array(Event Player, Current Array Element.FreeMode == False), Ring, Global.Level_Color[Event Player.Level_Current], Global.End_Origin[Event Player.Level_GlobalIndex], Global.End_Radius[Event Player.Level_GlobalIndex], Visible To);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Create Effect(Filtered Array(Event Player, Current Array Element.FreeMode == False), Light Shaft, Global.Level_Color[Event Player.Level_Current], Global.End_Origin[Event Player.Level_GlobalIndex], Global.End_Radius[Event Player.Level_GlobalIndex], Visible To);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Create Icon(Filtered Array(Event Player, Current Array Element.FreeMode == False), Global.End_Origin[Event Player.Level_GlobalIndex] + Vector(0, 0.100, 0), Flag, Visible To, Global.Level_Color[Event Player.Level_Current], True);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • End;
  • For Player Variable(Event Player, TempIter, 0, Count Of(Event Player.Checkpoint_Hints), 1);
  • Create Effect(Filtered Array(Event Player, Current Array Element.Level_Current != 0 && Current Array Element.FreeMode == False), Good Aura, Color(White), Global.Hint_Origin[Event Player.Checkpoint_Hints[Event Player.TempIter]], 0.300, Visible To);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Skip If(Global.Hint_Text[Event Player.Checkpoint_Hints[Event Player.TempIter]] == 0, 3);
  • Create In-World Text(Filtered Array(Event Player, Current Array Element.Level_Current != 0 && Current Array Element.FreeMode == False), Global.Hint_Text[Event Player.Checkpoint_Hints[Event Player.TempIter]], Global.Hint_Origin[Event Player.Checkpoint_Hints[Event Player.TempIter]], 1.250, Do Not Clip, Visible To, Color(White), Default Visibility);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Text ID);
  • Wait(0.010, Ignore Condition);
  • End;
  • For Player Variable(Event Player, TempIter, 0, Count Of(Event Player.Checkpoint_Lavas), 1);
  • Create Effect(Filtered Array(Event Player, Current Array Element.Level_Current != 0 && Current Array Element.FreeMode == False), Sphere, Color(Red), Global.Lava_Origin[Event Player.Checkpoint_Lavas[Event Player.TempIter]], Global.Lava_Radius[Event Player.Checkpoint_Lavas[Event Player.TempIter]], Visible To);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • End;
  • Event Player.TempIter = 0;
  • }
  • }
  • rule("Subroutine - Refresh Global Effects")
  • {
  • event
  • {
  • Subroutine;
  • Effects_RefreshGlobal;
  • }
  • actions
  • {
  • For Global Variable(TempIter, 0, Count Of(Global.Level_Effects), 1);
  • Destroy Effect(Global.Level_Effects[Global.TempIter]);
  • Destroy Icon(Global.Level_Effects[Global.TempIter]);
  • Destroy In-World Text(Global.Level_Effects[Global.TempIter]);
  • End;
  • Global.Level_Effects = Empty Array;
  • Event Player.TempIter = 0;
  • Global.TempArray = Filtered Array(Mapped Array(Global.Start_LevelFlag, Current Array Element == 0 ? Current Array Index : -1), Current Array Element > -1);
  • For Global Variable(TempIter, 0, Count Of(Global.TempArray), 1);
  • Create Effect(Filtered Array(All Players(All Teams), Current Array Element.Level_Current == 0 && Current Array Element.FreeMode == False), Ring, Evaluate Once(Global.Level_Color[Global.TempIter]), Global.Start_Origin[Global.TempArray[Global.TempIter]], Global.Start_Radius[Global.TempArray[Global.TempIter]], Visible To);
  • Modify Global Variable(Level_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Skip If(Global.TempIter == 0, 3);
  • Create Icon(Filtered Array(All Players(All Teams), Current Array Element.Level_Current == 0 && Current Array Element.FreeMode == False), Global.Start_Origin[Global.TempArray[Global.TempIter]] + Vector(0, 1.500, 0), Flag, Visible To, Evaluate Once(Global.Level_Color[Global.TempIter]), False);
  • Modify Global Variable(Level_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Skip If(Global.Level_Text[Global.TempIter] == 0, 3);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.Level_Current == 0 && Current Array Element.FreeMode == False), Global.Level_Text[Global.TempIter], Global.Start_Origin[Global.TempArray[Global.TempIter]], 1.750, Do Not Clip, Visible To, Evaluate Once(Global.Level_Color[Global.TempIter]), Default Visibility);
  • Modify Global Variable(Level_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • End;
  • Global.TempIter = 0;
  • Global.TempArray = Empty Array;
  • }
  • }
  • disabled rule("### DEVELOPER ###")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • }
  • rule("Developer - ENABLE DEVELOPER MODE - PRESS AND HOLD RELOAD TO ACTIVATE - HOST PLAYER ONLY")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == False;
  • Is Button Held(Host Player, Button(Reload)) == True;
  • Host Player == Event Player;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("3"));
  • Wait(1, Abort When False);
  • Small Message(Event Player, Custom String("2"));
  • Wait(1, Abort When False);
  • Small Message(Event Player, Custom String("1"));
  • Wait(1, Abort When False);
  • Small Message(Event Player, Custom String("Developer Mode Engaged!"));
  • Pause Match Time;
  • Event Player.Developer_Mode = True;
  • Event Player.Developer_StartRadius = 2.500;
  • Event Player.Developer_EndRadius = 3;
  • Event Player.Developer_LavaRadius = 5;
  • Event Player.Developer_Distance = 10;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Call Subroutine(HUD_RefreshDeveloper);
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 50);
  • }
  • }
  • rule("Developer - Developer Menu (while holding reload, disallow buttons)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • }
  • actions
  • {
  • Skip If(Event Player.Developer_EffectType < 2, 1);
  • Set Move Speed(Event Player, 5);
  • disabled Set Gravity(Event Player, 0);
  • Disallow Button(Event Player, Button(Primary Fire));
  • Disallow Button(Event Player, Button(Secondary Fire));
  • Disallow Button(Event Player, Button(Ability 1));
  • Disallow Button(Event Player, Button(Ability 2));
  • Disallow Button(Event Player, Button(Ultimate));
  • Disallow Button(Event Player, Button(Jump));
  • Disallow Button(Event Player, Button(Crouch));
  • Disallow Button(Event Player, Button(Melee));
  • Disallow Button(Event Player, Button(Interact));
  • }
  • }
  • rule("Developer - Remove Menu (while not holding reload, allow buttons and refresh HUD)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • }
  • actions
  • {
  • Wait(0.150, Abort When False);
  • Set Move Speed(Event Player, 100);
  • disabled Set Gravity(Event Player, 100);
  • Allow Button(Event Player, Button(Primary Fire));
  • Allow Button(Event Player, Button(Secondary Fire));
  • Allow Button(Event Player, Button(Ability 1));
  • Allow Button(Event Player, Button(Ability 2));
  • Allow Button(Event Player, Button(Ultimate));
  • Allow Button(Event Player, Button(Jump));
  • Allow Button(Event Player, Button(Crouch));
  • Allow Button(Event Player, Button(Melee));
  • Allow Button(Event Player, Button(Interact));
  • }
  • }
  • disabled rule("Developer - Teleport Toward Facing Angle (MELEE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Melee)) == True;
  • }
  • actions
  • {
  • Teleport(Event Player, Eye Position(Event Player) + 10 * Facing Direction Of(Event Player));
  • }
  • }
  • rule("Developer - Change Effect Type (RELOAD + PRIMARY FIRE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • }
  • actions
  • {
  • Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 50);
  • Event Player.Developer_EffectType += 1;
  • Skip If(Event Player.Developer_EffectType <= 1, 1);
  • Set Move Speed(Event Player, 5);
  • Skip If(Event Player.Developer_EffectType <= 3, 2);
  • Event Player.Developer_EffectType = 0;
  • Set Move Speed(Event Player, 100);
  • }
  • }
  • rule("Developer - Ring Radius Increase (RELOAD + JUMP)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • }
  • actions
  • {
  • If(Event Player.Developer_EffectType == 0);
  • Event Player.Developer_StartRadius += 0.100;
  • Else If(Event Player.Developer_EffectType == 1);
  • Event Player.Developer_EndRadius += 0.100;
  • Else If(Event Player.Developer_EffectType == 3);
  • Event Player.Developer_LavaRadius += 0.100;
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Developer - Ring Radius Decrease (RELOAD + CROUCH)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Crouch)) == True;
  • }
  • actions
  • {
  • If(Event Player.Developer_EffectType == 0);
  • Skip If(Event Player.Developer_StartRadius <= 1.500, 1);
  • Event Player.Developer_StartRadius -= 0.100;
  • Else If(Event Player.Developer_EffectType == 1);
  • Skip If(Event Player.Developer_EndRadius <= 1.500, 1);
  • Event Player.Developer_EndRadius -= 0.100;
  • Else If(Event Player.Developer_EffectType == 3);
  • Skip If(Event Player.Developer_LavaRadius <= 1.500, 1);
  • Event Player.Developer_LavaRadius -= 0.100;
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Developer - Toggle Allow/Disallow Rocket Punch (RELOAD + SECONDARY FIRE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Secondary Fire)) == True;
  • }
  • actions
  • {
  • Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 50);
  • If(X Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]) == 0);
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Vector(1, Y Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), Z Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]));
  • Else;
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Vector(0, Y Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), Z Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]));
  • End;
  • Wait(0.150, Ignore Condition);
  • }
  • }
  • rule("Developer - Toggle Allow/Disallow Rising Uppercut (RELOAD + ABILITY 1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Ability 1)) == True;
  • }
  • actions
  • {
  • Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 50);
  • If(Y Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]) == 0);
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Vector(X Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), 1, Z Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]));
  • Else;
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Vector(X Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), 0, Z Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]));
  • End;
  • Wait(0.150, Ignore Condition);
  • }
  • }
  • rule("Developer - Toggle Allow/Disallow Seismic Slam (RELOAD + ABILITY 2)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Ability 2)) == True;
  • }
  • actions
  • {
  • Play Effect(Event Player, Debuff Impact Sound, Color(White), Event Player, 50);
  • If(Z Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]) == 0);
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Vector(X Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), Y Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), 1);
  • Else;
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Vector(X Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), Y Component Of(
  • Global.Start_Abilities[Event Player.Level_GlobalIndex]), 0);
  • End;
  • Wait(0.150, Ignore Condition);
  • }
  • }
  • rule("Developer - Developer Distance Increase (RELOAD + W)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Speed Of In Direction(Event Player, Facing Direction Of(Event Player)) > 0.100;
  • Event Player.Developer_EffectType >= 2;
  • }
  • actions
  • {
  • Event Player.Developer_Distance += 0.500;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Developer - Developer Distance Decrease (RELOAD + S)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Speed Of In Direction(Event Player, Facing Direction Of(Event Player)) < -0.100;
  • Event Player.Developer_EffectType >= 2;
  • }
  • actions
  • {
  • Skip If(Event Player.Developer_Distance <= 0, 1);
  • Event Player.Developer_Distance -= 0.500;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Developer - Place Effect at Array Index (RELOAD + ULTIMATE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 50);
  • If(Event Player.Developer_EffectType == 0);
  • Global.Start_Origin[Event Player.Level_GlobalIndex] = Position Of(Event Player);
  • Global.Start_Radius[Event Player.Level_GlobalIndex] = Event Player.Developer_StartRadius;
  • Global.Start_Camera[Event Player.Level_GlobalIndex] = Horizontal Facing Angle Of(Event Player);
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Vector(
  • X Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]),
  • Y Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]),
  • Z Component Of(Global.Start_Abilities[Event Player.Level_GlobalIndex]));
  • Skip If(Global.Start_LevelFlag[Event Player.Level_GlobalIndex] != 0, 1);
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex] = Global.Start_LevelFlag[Event Player.Level_GlobalIndex - 1];
  • Else If(Event Player.Developer_EffectType == 1);
  • Global.End_Origin[Event Player.Level_GlobalIndex] = Position Of(Event Player);
  • Global.End_Radius[Event Player.Level_GlobalIndex] = Event Player.Developer_EndRadius;
  • Else If(Event Player.Developer_EffectType == 2);
  • Modify Global Variable(Hint_Origin, Append To Array, Eye Position(Event Player) + Event Player.Developer_Distance * Facing Direction Of(Event Player));
  • Modify Global Variable(Hint_Text, Append To Array, Custom String("Sample Text {0}", Event Player.Level_GlobalIndex));
  • Modify Global Variable(Hint_IndexFlag, Append To Array, Event Player.Level_GlobalIndex);
  • Else If(Event Player.Developer_EffectType == 3);
  • Modify Global Variable(Lava_Origin, Append To Array, Eye Position(Event Player) + Event Player.Developer_Distance * Facing Direction Of(Event Player));
  • Modify Global Variable(Lava_Radius, Append To Array, Event Player.Developer_LavaRadius);
  • Modify Global Variable(Lava_IndexFlag, Append To Array, Event Player.Level_GlobalIndex);
  • End;
  • Call Subroutine(Effects_RefreshDeveloper);
  • }
  • }
  • rule("Developer - Remove Effect at Array Index (RELOAD + MELEE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Developer_Mode == True;
  • Event Player.FreeMode == True;
  • Is Button Held(Event Player, Button(Interact)) == False;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Melee)) == True;
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Play Effect(Event Player, Buff Explosion Sound, Color(White), Event Player, 50);
  • If(Event Player.Developer_EffectType == 0);
  • Abort;
  • Else If(Event Player.Developer_EffectType == 1);
  • Global.End_Origin[Event Player.Level_GlobalIndex] = 0;
  • Global.End_Radius[Event Player.Level_GlobalIndex] = 0;
  • Else If(Event Player.Developer_EffectType == 2 && Event Player.Checkpoint_Hints != Empty Array);
  • Modify Global Variable(Hint_Origin, Remove From Array By Index, Last Of(Event Player.Checkpoint_Hints));
  • Modify Global Variable(Hint_Text, Remove From Array By Index, Last Of(Event Player.Checkpoint_Hints));
  • Modify Global Variable(Hint_IndexFlag, Remove From Array By Index, Last Of(Event Player.Checkpoint_Hints));
  • Else If(Event Player.Developer_EffectType == 3 && Event Player.Checkpoint_Lavas != Empty Array);
  • Modify Global Variable(Lava_Origin, Remove From Array By Index, Last Of(Event Player.Checkpoint_Lavas));
  • Modify Global Variable(Lava_Radius, Remove From Array By Index, Last Of(Event Player.Checkpoint_Lavas));
  • Modify Global Variable(Lava_IndexFlag, Remove From Array By Index, Last Of(Event Player.Checkpoint_Lavas));
  • End;
  • Call Subroutine(Effects_RefreshDeveloper);
  • }
  • }
  • rule("Developer - Increase Array Index (INTERACT + JUMP)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Event Player.Level_GlobalIndex <= Count Of(Global.Start_Origin);
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • If(Event Player.Level_GlobalIndex == Count Of(Global.Start_Origin));
  • Event Player.Level_GlobalIndex = 0;
  • Else;
  • Event Player.Level_GlobalIndex += 1;
  • End;
  • Event Player.Developer_EffectType = 0;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Skip If(Event Player.Level_GlobalIndex >= Count Of(Global.Start_Origin), 1);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Event Player.Transitioning = False;
  • }
  • }
  • rule("Developer - Decrease Array Index (INTERACT + CROUCH)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Crouch)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • If(Event Player.Level_GlobalIndex == 0);
  • Event Player.Level_GlobalIndex = Count Of(Global.Start_Origin);
  • Else;
  • Event Player.Level_GlobalIndex -= 1;
  • End;
  • Event Player.Developer_EffectType = 0;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Skip If(Event Player.Level_GlobalIndex >= Count Of(Global.Start_Origin), 1);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Event Player.Transitioning = False;
  • }
  • }
  • rule("Developer - Increase Level Flag (INTERACT + ABILITY 2)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Ability 2)) == True;
  • Is Using Ultimate(Event Player) == False;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex] < Count Of(Filtered Array(Global.Start_LevelFlag,
  • Current Array Element == 0)) - 1;
  • }
  • actions
  • {
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex] += 1;
  • }
  • }
  • rule("Developer - Decrease Level Flag (INTERACT + ULTIMATE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == False;
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex] > 0;
  • }
  • actions
  • {
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex] -= 1;
  • }
  • }
  • rule("Developer - Shift Current Index Backward (RELOAD + INTERACT + CROUCH)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Crouch)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Event Player.Level_GlobalIndex > 0;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • Global.TempArray = Global.Start_Origin;
  • Global.Start_Origin[Event Player.Level_GlobalIndex - 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Origin[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex - 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Radius;
  • Global.Start_Radius[Event Player.Level_GlobalIndex - 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Radius[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex - 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Camera;
  • Global.Start_Camera[Event Player.Level_GlobalIndex - 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Camera[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex - 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Abilities;
  • Global.Start_Abilities[Event Player.Level_GlobalIndex - 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex - 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_LevelFlag;
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex - 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex - 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Origin;
  • Global.End_Origin[Event Player.Level_GlobalIndex - 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.End_Origin[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex - 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Radius;
  • Global.End_Radius[Event Player.Level_GlobalIndex - 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.End_Radius[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex - 1];
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Hint_IndexFlag), 1);
  • If(Global.Hint_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex);
  • Global.Hint_IndexFlag[Global.TempIter] -= 1;
  • Else If(Global.Hint_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex - 1);
  • Global.Hint_IndexFlag[Global.TempIter] += 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Lava_IndexFlag), 1);
  • If(Global.Lava_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex);
  • Global.Lava_IndexFlag[Global.TempIter] -= 1;
  • Else If(Global.Lava_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex - 1);
  • Global.Lava_IndexFlag[Global.TempIter] += 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempIter = 0;
  • Global.TempArray = Empty Array;
  • Event Player.Level_GlobalIndex -= 1;
  • Event Player.Developer_EffectType = 0;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Skip If(Event Player.Level_GlobalIndex >= Count Of(Global.Start_Origin), 1);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Event Player.Transitioning = False;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Developer - Shift Current Index Forward (RELOAD + INTERACT + JUMP)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Event Player.Level_GlobalIndex < Count Of(Global.Start_Origin);
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • Global.TempArray = Global.Start_Origin;
  • Global.Start_Origin[Event Player.Level_GlobalIndex + 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Origin[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex + 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Radius;
  • Global.Start_Radius[Event Player.Level_GlobalIndex + 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Radius[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex + 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Camera;
  • Global.Start_Camera[Event Player.Level_GlobalIndex + 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Camera[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex + 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Abilities;
  • Global.Start_Abilities[Event Player.Level_GlobalIndex + 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_Abilities[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex + 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_LevelFlag;
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex + 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.Start_LevelFlag[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex + 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Origin;
  • Global.End_Origin[Event Player.Level_GlobalIndex + 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.End_Origin[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex + 1];
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Radius;
  • Global.End_Radius[Event Player.Level_GlobalIndex + 1] = Global.TempArray[Event Player.Level_GlobalIndex];
  • Global.End_Radius[Event Player.Level_GlobalIndex] = Global.TempArray[Event Player.Level_GlobalIndex + 1];
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Hint_IndexFlag), 1);
  • If(Global.Hint_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex);
  • Global.Hint_IndexFlag[Global.TempIter] += 1;
  • Else If(Global.Hint_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex + 1);
  • Global.Hint_IndexFlag[Global.TempIter] -= 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Lava_IndexFlag), 1);
  • If(Global.Lava_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex);
  • Global.Lava_IndexFlag[Global.TempIter] += 1;
  • Else If(Global.Lava_IndexFlag[Global.TempIter] == Event Player.Level_GlobalIndex + 1);
  • Global.Lava_IndexFlag[Global.TempIter] -= 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempIter = 0;
  • Global.TempArray = Empty Array;
  • Event Player.Level_GlobalIndex += 1;
  • Event Player.Developer_EffectType = 0;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Skip If(Event Player.Level_GlobalIndex >= Count Of(Global.Start_Origin), 1);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Event Player.Transitioning = False;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Developer - Duplicate Current Index (RELOAD + INTERACT + ULTIMATE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Event Player.Level_GlobalIndex < Count Of(Global.Start_Origin);
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • Global.TempArray = Global.Start_Origin;
  • For Global Variable(TempIter, Event Player.Level_GlobalIndex, Count Of(Global.TempArray), 1);
  • Global.Start_Origin[Global.TempIter + 1] = Global.TempArray[Global.TempIter];
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Radius;
  • For Global Variable(TempIter, Event Player.Level_GlobalIndex, Count Of(Global.TempArray), 1);
  • Global.Start_Radius[Global.TempIter + 1] = Global.TempArray[Global.TempIter];
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Camera;
  • For Global Variable(TempIter, Event Player.Level_GlobalIndex, Count Of(Global.TempArray), 1);
  • Global.Start_Camera[Global.TempIter + 1] = Global.TempArray[Global.TempIter];
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Abilities;
  • For Global Variable(TempIter, Event Player.Level_GlobalIndex, Count Of(Global.TempArray), 1);
  • Global.Start_Abilities[Global.TempIter + 1] = Global.TempArray[Global.TempIter];
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_LevelFlag;
  • For Global Variable(TempIter, Event Player.Level_GlobalIndex, Count Of(Global.TempArray), 1);
  • Global.Start_LevelFlag[Global.TempIter + 1] = Global.TempArray[Global.TempIter];
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Origin;
  • For Global Variable(TempIter, Event Player.Level_GlobalIndex, Count Of(Global.TempArray), 1);
  • Global.End_Origin[Global.TempIter + 1] = Global.TempArray[Global.TempIter];
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Radius;
  • For Global Variable(TempIter, Event Player.Level_GlobalIndex, Count Of(Global.TempArray), 1);
  • Global.End_Radius[Global.TempIter + 1] = Global.TempArray[Global.TempIter];
  • End;
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Hint_IndexFlag), 1);
  • If(Global.Hint_IndexFlag[Global.TempIter] > Event Player.Level_GlobalIndex);
  • Global.Hint_IndexFlag[Global.TempIter] += 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Lava_IndexFlag), 1);
  • If(Global.Lava_IndexFlag[Global.TempIter] > Event Player.Level_GlobalIndex);
  • Global.Lava_IndexFlag[Global.TempIter] += 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Event Player.Checkpoint_Hints), 1);
  • Modify Global Variable(Hint_Origin, Append To Array, Global.Hint_Origin[Event Player.Checkpoint_Hints[Global.TempIter]]);
  • Modify Global Variable(Hint_Text, Append To Array, Global.Hint_Text[Event Player.Checkpoint_Hints[Global.TempIter]]);
  • Modify Global Variable(Hint_IndexFlag, Append To Array, Event Player.Level_GlobalIndex + 1);
  • End;
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Event Player.Checkpoint_Lavas), 1);
  • Modify Global Variable(Lava_Origin, Append To Array, Global.Lava_Origin[Event Player.Checkpoint_Lavas[Global.TempIter]]);
  • Modify Global Variable(Lava_Radius, Append To Array, Global.Lava_Radius[Event Player.Checkpoint_Lavas[Global.TempIter]]);
  • Modify Global Variable(Lava_IndexFlag, Append To Array, Event Player.Level_GlobalIndex + 1);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempIter = 0;
  • Global.TempArray = Empty Array;
  • Event Player.Level_GlobalIndex += 1;
  • Event Player.Developer_EffectType = 0;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Skip If(Event Player.Level_GlobalIndex >= Count Of(Global.Start_Origin), 1);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Event Player.Transitioning = False;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Developer - Delete Current Index (RELOAD + INTERACT + MELEE)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Melee)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • Event Player.Level_GlobalIndex < Count Of(Global.Start_Origin);
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • Modify Global Variable(Start_Origin, Remove From Array By Index, Event Player.Level_GlobalIndex);
  • Modify Global Variable(Start_Radius, Remove From Array By Index, Event Player.Level_GlobalIndex);
  • Modify Global Variable(Start_Camera, Remove From Array By Index, Event Player.Level_GlobalIndex);
  • Modify Global Variable(Start_Abilities, Remove From Array By Index, Event Player.Level_GlobalIndex);
  • Modify Global Variable(Start_LevelFlag, Remove From Array By Index, Event Player.Level_GlobalIndex);
  • Modify Global Variable(End_Origin, Remove From Array By Index, Event Player.Level_GlobalIndex);
  • Modify Global Variable(End_Radius, Remove From Array By Index, Event Player.Level_GlobalIndex);
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Event Player.Checkpoint_Hints), 1);
  • Global.Hint_Origin[Event Player.Checkpoint_Hints[Global.TempIter]] = -1;
  • Global.Hint_Text[Event Player.Checkpoint_Hints[Global.TempIter]] = -1;
  • Global.Hint_IndexFlag[Event Player.Checkpoint_Hints[Global.TempIter]] = -1;
  • End;
  • Global.Hint_Origin = Filtered Array(Global.Hint_Origin, Current Array Element != -1);
  • Global.Hint_Text = Filtered Array(Global.Hint_Text, Current Array Element != -1);
  • Global.Hint_IndexFlag = Filtered Array(Global.Hint_IndexFlag, Current Array Element != -1);
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Event Player.Checkpoint_Lavas), 1);
  • Global.Lava_Origin[Event Player.Checkpoint_Lavas[Global.TempIter]] = -1;
  • Global.Lava_Radius[Event Player.Checkpoint_Lavas[Global.TempIter]] = -1;
  • Global.Lava_IndexFlag[Event Player.Checkpoint_Lavas[Global.TempIter]] = -1;
  • End;
  • Global.Lava_Origin = Filtered Array(Global.Lava_Origin, Current Array Element != -1);
  • Global.Lava_Radius = Filtered Array(Global.Lava_Radius, Current Array Element != -1);
  • Global.Lava_IndexFlag = Filtered Array(Global.Lava_IndexFlag, Current Array Element != -1);
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Hint_IndexFlag), 1);
  • If(Global.Hint_IndexFlag[Global.TempIter] > Event Player.Level_GlobalIndex);
  • Global.Hint_IndexFlag[Global.TempIter] -= 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • For Global Variable(TempIter, 0, Count Of(Global.Lava_IndexFlag), 1);
  • If(Global.Lava_IndexFlag[Global.TempIter] > Event Player.Level_GlobalIndex);
  • Global.Lava_IndexFlag[Global.TempIter] -= 1;
  • End;
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempIter = 0;
  • Event Player.Developer_EffectType = 0;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Skip If(Event Player.Level_GlobalIndex >= Count Of(Global.Start_Origin), 1);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Event Player.Transitioning = False;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Developer - Organize Checkpoints (RELOAD + INTERACT + ABILITY 1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.Initialized == True;
  • Event Player.Transitioning == False;
  • Is Button Held(Event Player, Button(Interact)) == True;
  • Is Button Held(Event Player, Button(Reload)) == True;
  • Is Button Held(Event Player, Button(Ability 1)) == True;
  • Event Player.FreeMode == True;
  • Event Player.Developer_Mode == True;
  • }
  • actions
  • {
  • Event Player.Transitioning = True;
  • Wait(0.100, Ignore Condition);
  • Event Player.TempArray = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Filtered Array(Global.Start_LevelFlag, Current Array Element == 0)), 1);
  • Event Player.Level_Current = Global.TempIter;
  • Call Subroutine(Calculate_Checkpoints);
  • For Player Variable(Event Player, TempIter, 0, Count Of(Event Player.Level_Checkpoints), 1);
  • Modify Player Variable(Event Player, TempArray, Append To Array, Event Player.Level_Checkpoints[Event Player.TempIter]);
  • End;
  • End;
  • Global.TempArray = Global.Start_Origin;
  • Global.Start_Origin = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Event Player.TempArray), 1);
  • Modify Global Variable(Start_Origin, Append To Array, Global.TempArray[Event Player.TempArray[Global.TempIter]]);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Radius;
  • Global.Start_Radius = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Event Player.TempArray), 1);
  • Modify Global Variable(Start_Radius, Append To Array, Global.TempArray[Event Player.TempArray[Global.TempIter]]);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Camera;
  • Global.Start_Camera = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Event Player.TempArray), 1);
  • Modify Global Variable(Start_Camera, Append To Array, Global.TempArray[Event Player.TempArray[Global.TempIter]]);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_Abilities;
  • Global.Start_Abilities = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Event Player.TempArray), 1);
  • Modify Global Variable(Start_Abilities, Append To Array, Global.TempArray[Event Player.TempArray[Global.TempIter]]);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.Start_LevelFlag;
  • Global.Start_LevelFlag = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Event Player.TempArray), 1);
  • Modify Global Variable(Start_LevelFlag, Append To Array, Global.TempArray[Event Player.TempArray[Global.TempIter]]);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Origin;
  • Global.End_Origin = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Event Player.TempArray), 1);
  • Modify Global Variable(End_Origin, Append To Array, Global.TempArray[Event Player.TempArray[Global.TempIter]]);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempArray = Global.End_Radius;
  • Global.End_Radius = Empty Array;
  • For Global Variable(TempIter, 0, Count Of(Event Player.TempArray), 1);
  • Modify Global Variable(End_Radius, Append To Array, Global.TempArray[Event Player.TempArray[Global.TempIter]]);
  • End;
  • Wait(0.050, Ignore Condition);
  • Global.TempIter = 0;
  • Global.TempArray = Empty Array;
  • Event Player.TempIter = 0;
  • Event Player.TempArray = Empty Array;
  • Event Player.Level_Current = 0;
  • Call Subroutine(Calculate_Checkpoints);
  • Event Player.Developer_EffectType = 0;
  • Call Subroutine(Effects_RefreshDeveloper);
  • Skip If(Event Player.Level_GlobalIndex >= Count Of(Global.Start_Origin), 1);
  • Call Subroutine(Reposition);
  • Wait(0.100, Ignore Condition);
  • Event Player.Transitioning = False;
  • Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("Developer - Subroutine Refresh Developer Effects")
  • {
  • event
  • {
  • Subroutine;
  • Effects_RefreshDeveloper;
  • }
  • actions
  • {
  • Call Subroutine(Calculate_ExtraEffects);
  • Call Subroutine(Effects_DestroyPlayer);
  • Create Effect(Filtered Array(Event Player, Current Array Element.Developer_EffectType == 0), Ring, Color(Green), Event Player, Event Player.Developer_StartRadius, Visible To Position and Radius);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Create Effect(Filtered Array(Event Player, Current Array Element.Developer_EffectType == 1), Ring, Color(Blue), Event Player, Event Player.Developer_EndRadius, Visible To Position and Radius);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Create Effect(Filtered Array(Event Player, Current Array Element.Developer_EffectType == 2), Good Aura, Color(White), Eye Position(Event Player) + Event Player.Developer_Distance * Facing Direction Of(Event Player), 0.300, Visible To Position and Radius);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Create Effect(Filtered Array(Event Player, Current Array Element.Developer_EffectType == 3), Sphere, Color(Red), Eye Position(Event Player) + Event Player.Developer_Distance * Facing Direction Of(Event Player), Event Player.Developer_LavaRadius, Visible To Position and Radius);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Create Effect(Event Player, Ring, Color(Green), Global.Start_Origin[Event Player.Level_GlobalIndex], Global.Start_Radius[Event Player.Level_GlobalIndex], None);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • Create Effect(Event Player, Ring, Color(Blue), Global.End_Origin[Event Player.Level_GlobalIndex], Global.End_Radius[Event Player.Level_GlobalIndex], None);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • For Player Variable(Event Player, TempIter, 0, Count Of(Event Player.Checkpoint_Hints), 1);
  • Create Effect(Event Player, Good Aura, Color(White), Global.Hint_Origin[Event Player.Checkpoint_Hints[Event Player.TempIter]], 0.300, None);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • End;
  • For Player Variable(Event Player, TempIter, 0, Count Of(Event Player.Checkpoint_Lavas), 1);
  • Create Effect(Event Player, Sphere, Color(Red), Global.Lava_Origin[Event Player.Checkpoint_Lavas[Event Player.TempIter]], Global.Lava_Radius[Event Player.Checkpoint_Lavas[Event Player.TempIter]], None);
  • Modify Player Variable(Event Player, Checkpoint_Effects, Append To Array, Last Created Entity);
  • Wait(0.010, Ignore Condition);
  • End;
  • Event Player.TempIter = 0;
  • }
  • }
  • rule("Developer - Subroutine Refresh Developer HUD Text")
  • {
  • event
  • {
  • Subroutine;
  • HUD_RefreshDeveloper;
  • }
  • actions
  • {
  • Call Subroutine(HUD_DestroyText);
  • Wait(0.100, Ignore Condition);
  • Create HUD Text(Event Player, Null, Null, Custom String("Modifying Array Index: {0} / {1}", Event Player.Level_GlobalIndex,
  • Count Of(Global.Start_Origin) - 1), Left, 1, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Developer Mode Controls:"), Left, 1.100, Color(White), Color(
  • White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • "------------------------------------------------------------------------------------------------------"), Left, 2, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Interact + Primary Fire = Toggle Free Mode"), Null, Left, 2.100, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Interact + Crouch/Jump = Navigate Array Index"), Null, Left, 2.200, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Interact + Ult/Slam = Increase/Decrease Level Flag"), Null, Left, 2.300,
  • Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • "------------------------------------------------------------------------------------------------------"), Left, 3, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Reload + Primary Fire = Cycle Effect Type"), Null, Left, 3.100, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Reload + Crouch/Jump = Increase/Decrease Radius"), Null, Left, 3.200, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Reload + Move = Increase/Decrease Distance"), Null, Left, 3.300, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Reload + Ability = Toggle Ability (0 = Allowed)"), Null, Left, 3.400, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Reload + Ultimate = Place Effect"), Null, Left, 3.500, Color(White), Color(
  • White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Reload + Melee = Remove Effect"), Null, Left, 3.600, Color(White), Color(
  • White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • "------------------------------------------------------------------------------------------------------"), Left, 4, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Interact + Reload + Crouch/Jump = Shift Current Array Index Back/Forward"),
  • Null, Left, 4.100, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Interact + Reload + Ultimate = Duplicate Current Array Index"), Null, Left,
  • 4.200, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Interact + Reload + Melee = Delete Current Array Index"), Null, Left, 4.300,
  • Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Custom String("Interact + Reload + Uppercut = Organize Array By Level Flag"), Null, Left,
  • 4.400, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Start Position / Radius: {0} / {1}",
  • Global.Start_Origin[Event Player.Level_GlobalIndex], Global.Start_Radius[Event Player.Level_GlobalIndex]), Right, 1, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("End Position / Radius: {0} / {1}",
  • Global.End_Origin[Event Player.Level_GlobalIndex], Global.End_Radius[Event Player.Level_GlobalIndex]), Right, 1.100, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("# Checkpoint Hints: {0}", Count Of(Event Player.Checkpoint_Hints)), Right,
  • 1.200, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("# Checkpoint Lavas: {0}", Count Of(Event Player.Checkpoint_Lavas)), Right,
  • 1.300, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Abilities: {0}", Global.Start_Abilities[Event Player.Level_GlobalIndex]),
  • Right, 1.400, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Camera: {0}", Global.Start_Camera[Event Player.Level_GlobalIndex]), Right,
  • 1.500, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Level Flag: {0}", Global.Start_LevelFlag[Event Player.Level_GlobalIndex]),
  • Right, 1.600, Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • "----------------------------------------------------------------------------------", Event Player.FreeMode), Right, 2, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Position: {0}", Position Of(Event Player)), Right, 2.100, Color(White),
  • Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("View Angle: {0}", Horizontal Facing Angle Of(Event Player)), Right, 2.200,
  • Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Start Radius: {0}", Event Player.Developer_StartRadius), Right, 2.300,
  • Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("End Radius: {0}", Event Player.Developer_EndRadius), Right, 2.400, Color(
  • White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("Lava Radius: {0}", Event Player.Developer_LavaRadius), Right, 2.500,
  • Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • Create HUD Text(Event Player, Null, Null, Custom String("View Distance: {0}", Event Player.Developer_Distance), Right, 2.600,
  • Color(White), Color(White), Color(White), String, Default Visibility);
  • Modify Player Variable(Event Player, HUD_Text, Append To Array, Last Text ID);
  • }
  • }
Join the Workshop.codes Discord