Create
Return to post

Comparing difference between and

View raw
  • variables
  • {
  • global:
  • 0: circle_speed
  • 1: circle_health
  • 2: circle_heal
  • 3: circle_damage
  • 4: circle_projectiles
  • 5: circle_ability_1
  • 6: health_pack_1
  • 7: circle_ability_2
  • 8: player_brigitte
  • 9: circle_ultimate
  • 10: capture_players
  • 11: health_pack_2
  • 12: health_pack_3
  • 13: time
  • 14: speed_110
  • 15: money
  • 16: health_pack_4
  • 17: health_pack_6
  • 18: health_pack_5
  • 19: health_pack_1_cd
  • 20: player_health_pack_6
  • 21: health_pack_2_cd
  • 23: speed_114
  • 24: speed_116
  • 25: speed_120
  • 26: speed_124
  • 27: ability_3_hud
  • 28: player_generator_1
  • 29: health_pack_3_cd
  • 30: health_pack_4_cd
  • 31: health_pack_7
  • 32: random_boss
  • 33: speed_change
  • 34: generator_1
  • 35: generator_1_cd
  • 36: health_pack_5_cd
  • 37: player_health_pack_7
  • 38: generator_2
  • 39: generator_2_cd
  • 40: player_generator_2
  • 41: player_health_pack_1
  • 42: player_health_pack_2
  • 43: player_health_pack_3
  • 44: player_health_pack_4
  • 45: player_health_pack_5
  • 46: biotic_grenade
  • 47: health_pack_8
  • 48: circle_reset
  • 49: numercial_order
  • 50: speed_108
  • 51: speed_106
  • 52: speed_104
  • 53: player_health_pack_8
  • 54: health_pack_6_cd
  • 55: health_pack_7_cd
  • 56: health_pack_8_cd
  • 57: tracer_ult
  • 58: damage_dealt
  • 59: healing_dealt
  • 60: damage_received
  • player:
  • 0: speed
  • 1: health
  • 2: heal
  • 3: damage
  • 4: special_ability_1
  • 5: projectiles
  • 6: ability_1
  • 7: ability_1_array
  • 8: ability_2
  • 9: ability_2_array
  • 10: ultimate
  • 11: use_ability
  • 12: ability_3
  • 13: special_ability_2
  • 14: damage_received
  • 15: money
  • 16: price
  • 17: damage_modification
  • 18: soldier_ability_2
  • 19: use_ult
  • 20: symmetra_health_pool
  • 21: hud_or_effect
  • 22: ability_cooldown
  • 23: heal_or_damage_over_time
  • 24: totem_projectile
  • 25: boss_barrier
  • 26: orisa_ability_3
  • 27: icon
  • 28: old_player
  • 29: angle
  • 30: widow_damage
  • 31: damage_dealt
  • 32: healing_dealt
  • 34: speed_var
  • 35: health_var
  • 36: heal_var
  • 37: damage_var
  • 38: projectiles_var
  • 40: closest_to_reticle
  • 45: ability_3_array
  • 46: ability_count
  • }
  • rule("Global Vars | Health Packs, Generators, Upgrades, Effects, Text")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Disable Inspector Recording;
  • Chase Global Variable At Rate(time, False, 1, Destination and Rate);
  • Global.speed_104 = Array(Hero(Хандзо), Hero(Эш), Hero(Эхо), Hero(Фарра), Hero(Роковая Вдова));
  • Global.speed_106 = Array(Hero(Крысавчик), Hero(Гэндзи), Hero(Ангел), Hero(Трейсер));
  • Global.speed_108 = Array(Hero(Лусио), Hero(Солдат-76), Hero(Сомбра), Hero(Кулак Смерти));
  • Global.speed_110 = Array(Hero(Мэй), Hero(Жнец), Hero(D.Va));
  • Global.speed_114 = Array(Hero(Маккри), Hero(Торбьорн), Hero(Симметра), Hero(Сигма), Hero(Бастион));
  • Global.speed_116 = Array(Hero(Ана), Hero(Уинстон), Hero(Дзенъятта), Hero(Батист));
  • Global.speed_120 = Array(Hero(Бригитта), Hero(Заря), Hero(Ориса), Hero(Турбосвин), Hero(Мойра));
  • Global.speed_124 = Array(Hero(Райнхардт));
  • Global.ability_3_hud = Array(Hero(D.Va), Hero(Таран), Hero(Кулак Смерти), Hero(Эхо), Hero(Солдат-76), Hero(Лусио), Hero(Хандзо),
  • Hero(Сомбра), Hero(Бригитта), Hero(Ориса), Hero(Батист));
  • Global.speed_change = 0.050;
  • Global.money = 27;
  • Global.health_pack_1_cd = 20;
  • Global.health_pack_2_cd = 20;
  • Global.health_pack_3_cd = 20;
  • Global.health_pack_4_cd = 20;
  • Global.health_pack_5_cd = 30;
  • Global.health_pack_6_cd = 30;
  • Global.health_pack_7_cd = 30;
  • Global.health_pack_8_cd = 30;
  • Global.generator_1_cd = 30;
  • Global.generator_2_cd = 30;
  • If(Current Map == Map(Некрополь));
  • "Health Packs, Generators"
  • Global.health_pack_1 = Vector(-29.500, 2, 0);
  • Global.health_pack_2 = Vector(-17.250, 1, -18.750);
  • Global.health_pack_3 = Vector(-17.250, 1, 18.750);
  • Global.health_pack_4 = Vector(28.350, 1.250, 0);
  • Global.health_pack_5 = Vector(3.875, -6, 0);
  • Global.generator_1 = Vector(9.100, 10, 24.200);
  • Global.generator_2 = Vector(9.100, 10, -24.200);
  • "Upgrades | Team 1"
  • Global.circle_reset[False] = Vector(10.350, 3.300, 24.325);
  • Global.circle_damage[False] = Vector(-6, 3.100, 19.500);
  • Global.circle_speed[False] = Vector(-2.500, 3.100, 20.125);
  • Global.circle_health[False] = Vector(1, 3.100, 21);
  • Global.circle_heal = Vector(4.500, 3.100, 20.375);
  • Global.circle_projectiles[False] = Vector(8, 3.100, 19.500);
  • Global.circle_ability_1[False] = Vector(5.750, 3.100, 24.325);
  • Global.circle_ultimate[False] = Vector(1, 3.100, 25.750);
  • Global.circle_ability_2[False] = Vector(-4, 3.100, 24.325);
  • "Upgrades | Team 2"
  • Global.circle_reset[1] = Vector(10.350, 3.100, -24.325);
  • Global.circle_damage[1] = Vector(-5.750, 3.100, -19.500);
  • Global.circle_speed[1] = Vector(-1.250, 3.100, -20.750);
  • Global.circle_health[1] = Vector(3.250, 3.100, -20.750);
  • Global.circle_projectiles[1] = Vector(7.750, 3.100, -19.500);
  • Global.circle_ability_1[1] = Vector(-4, 3.100, -24.500);
  • Global.circle_ultimate[1] = Vector(1, 3.100, -27);
  • Global.circle_ability_2[1] = Vector(6, 3.100, -24.500);
  • Else If(Current Map == Map(Аюттайя));
  • "Health Packs, Generators"
  • Global.health_pack_1 = Vector(36, 0.100, -18);
  • Global.health_pack_2 = Vector(-1, 0.100, 4);
  • Global.health_pack_3 = Vector(6, 5.100, -20);
  • Global.health_pack_4 = Vector(28, 5.100, 6);
  • Global.health_pack_5 = Vector(-2, 0.100, -28.475);
  • Global.health_pack_6 = Vector(36.250, 0.100, 15.225);
  • Global.health_pack_7 = Vector(36.500, 5.100, -34);
  • Global.health_pack_8 = Vector(-3, 5.100, 20);
  • Global.generator_1 = Vector(18, 6.100, -36.250);
  • Global.generator_2 = Vector(16, 6.100, 22.500);
  • "Upgrades | Team 1"
  • Global.circle_reset[False] = Vector(16, 1.100, -116);
  • Global.circle_damage[False] = Vector(24.500, 1.100, -103.750);
  • Global.circle_speed[False] = Vector(21.250, 1.100, -103.750);
  • Global.circle_health[False] = Vector(18, 1.100, -103.750);
  • Global.circle_heal = Vector(14.750, 1.100, -103.750);
  • Global.circle_projectiles[0] = Vector(11.500, 1.100, -103.750);
  • Global.circle_ability_1[False] = Vector(21.500, 1.100, -107.750);
  • Global.circle_ultimate[False] = Vector(18, 1.100, -107.750);
  • Global.circle_ability_2[False] = Vector(14.500, 1.100, -107.750);
  • "Upgrades | Team 2"
  • Global.circle_reset[1] = Vector(16, 1.100, 101.500);
  • Global.circle_speed[1] = Vector(10.750, 1.100, 89.750);
  • Global.circle_damage[1] = Vector(14.250, 1.100, 89.750);
  • Global.circle_health[1] = Vector(17.750, 1.100, 89.750);
  • Global.circle_projectiles[1] = Vector(21.250, 1.100, 89.750);
  • Global.circle_ability_1[1] = Vector(20, 1.100, 94.250);
  • Global.circle_ultimate[1] = Vector(16, 1.100, 94.250);
  • Global.circle_ability_2[1] = Vector(12, 1.100, 94.250);
  • Else If(Current Map == Map(Илиос: развалины));
  • Global.health_pack_1 = Vector(43.500, 60.470, -160);
  • Global.health_pack_2 = Vector(13.500, 60.470, -160);
  • Global.health_pack_3 = Vector(28.500, 57.470, -142);
  • Global.health_pack_5 = Vector(28.600, 60.730, -177.550);
  • Global.health_pack_6 = Vector(28.500, 61.500, -148.675);
  • Global.health_pack_7 = Vector(63.200, 60.470, -140.370);
  • Global.health_pack_8 = Vector(-5.530, 60.470, -140.160);
  • Global.generator_1 = Vector(60.750, 60.475, -157.200);
  • Global.generator_2 = Vector(-3.450, 60.475, -157.200);
  • "Upgrades | Team 1"
  • Global.circle_reset[False] = Vector(146.625, 60.700, -160);
  • Global.circle_damage[False] = Vector(152.600, 60.700, -153.500);
  • Global.circle_speed[False] = Vector(152.600, 60.700, -156.750);
  • Global.circle_health[False] = Vector(152.600, 60.700, -160);
  • Global.circle_heal = Vector(152.600, 60.700, -163.250);
  • Global.circle_projectiles[False] = Vector(152.500, 60.700, -166.500);
  • Global.circle_ability_1[False] = Vector(157.750, 59.600, -156);
  • Global.circle_ultimate[False] = Vector(157.750, 59.600, -160);
  • Global.circle_ability_2[False] = Vector(157.750, 59.600, -164);
  • "Upgrades | Team 2"
  • Global.circle_reset[1] = Vector(-89.375, 60.700, -160);
  • Global.circle_speed[1] = Vector(-95.500, 60.700, -155.125);
  • Global.circle_damage[1] = Vector(-95.500, 60.700, -158.375);
  • Global.circle_health[1] = Vector(-95.500, 60.700, -161.625);
  • Global.circle_projectiles[1] = Vector(-95.500, 60.700, -164.875);
  • Global.circle_ability_1[1] = Vector(-100.750, 59.600, -156);
  • Global.circle_ultimate[1] = Vector(-100.750, 59.600, -160);
  • Global.circle_ability_2[1] = Vector(-100.750, 59.600, -164);
  • End;
  • "Health Packs"
  • Create Effect(Global.health_pack_1_cd == 20 ? All Players(All Teams) : Empty Array, Ring, Yellow, Global.health_pack_1, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_1_cd != 20 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_1, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_1_cd != 20 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_1_cd, Up)), Global.health_pack_1 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Yellow, Default Visibility);
  • Create Effect(Global.health_pack_2_cd == 20 ? All Players(All Teams) : Empty Array, Ring, Yellow, Global.health_pack_2, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_2_cd != 20 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_2, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_2_cd != 20 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_2_cd, Up)), Global.health_pack_2 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Yellow, Default Visibility);
  • Create Effect(Global.health_pack_3_cd == 20 ? All Players(All Teams) : Empty Array, Ring, Yellow, Global.health_pack_3, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_3_cd != 20 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_3, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_3_cd != 20 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_3_cd, Up)), Global.health_pack_3 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Yellow, Default Visibility);
  • Skip If(Current Map == Map(Илиос: развалины), 3);
  • Create Effect(Global.health_pack_4_cd == 20 ? All Players(All Teams) : Empty Array, Ring, Yellow, Global.health_pack_4, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_4_cd != 20 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_4, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_4_cd != 20 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_4_cd, Up)), Global.health_pack_4 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Yellow, Default Visibility);
  • Create Effect(Global.health_pack_5_cd == 30 ? All Players(All Teams) : Empty Array, Ring, Red, Global.health_pack_5, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_5_cd != 30 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_5, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_5_cd != 30 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_5_cd, Up)), Global.health_pack_5 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Red, Default Visibility);
  • Skip If(Current Map == Map(Некрополь), 9);
  • Create Effect(Global.health_pack_6_cd == 30 ? All Players(All Teams) : Empty Array, Ring, Red, Global.health_pack_6, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_6_cd != 30 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_6, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_6_cd != 30 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_6_cd, Up)), Global.health_pack_6 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Red, Default Visibility);
  • Create Effect(Global.health_pack_7_cd == 30 ? All Players(All Teams) : Empty Array, Ring, Red, Global.health_pack_7, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_7_cd != 30 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_7, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_7_cd != 30 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_7_cd, Up)), Global.health_pack_7 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Red, Default Visibility);
  • Create Effect(Global.health_pack_8_cd == 30 ? All Players(All Teams) : Empty Array, Ring, Red, Global.health_pack_8, 0.500,
  • Visible To);
  • Create Effect(Global.health_pack_8_cd != 30 ? All Players(All Teams) : Empty Array, Ring, White, Global.health_pack_8, 0.500,
  • Visible To);
  • Create In-World Text(Global.health_pack_8_cd != 30 ? All Players(All Teams) : Empty Array, Custom String("{0} sec",
  • Round To Integer(Global.health_pack_8_cd, Up)), Global.health_pack_8 + Vector(False, 0.500, False), 1.200,
  • Clip Against Surfaces, Visible To and String, Red, Default Visibility);
  • "Generators"
  • Create Effect(Global.generator_1_cd == 30 ? All Players(All Teams) : Empty Array, Ring, Blue, Global.generator_1, 0.500,
  • Visible To);
  • Create Effect(Global.generator_1_cd != 30 ? All Players(All Teams) : Empty Array, Ring, White, Global.generator_1, 0.500,
  • Visible To);
  • Create In-World Text(Global.generator_1_cd != 30 ? All Players(All Teams) : Empty Array, Custom String("{0} sec", Round To Integer(
  • Global.generator_1_cd, Up)), Global.generator_1 + Vector(False, 0.500, False), 1.200, Clip Against Surfaces,
  • Visible To and String, Blue, Default Visibility);
  • Create Effect(Global.generator_2_cd == 30 ? All Players(All Teams) : Empty Array, Ring, Blue, Global.generator_2, 0.500,
  • Visible To);
  • Create Effect(Global.generator_2_cd != 30 ? All Players(All Teams) : Empty Array, Ring, White, Global.generator_2, 0.500,
  • Visible To);
  • Create In-World Text(Global.generator_2_cd != 30 ? All Players(All Teams) : Empty Array, Custom String("{0} sec", Round To Integer(
  • Global.generator_2_cd, Up)), Global.generator_2 + Vector(False, 0.500, False), 1.200, Clip Against Surfaces,
  • Visible To and String, Blue, Default Visibility);
  • "Team 1"
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, White, Global.circle_reset[0], 0.800, Visible To);
  • Create Icon(Is In Setup ? All Players(Team 1) : Empty Array, Global.circle_reset[0] + Vector(0, 0.250, 0), Recycle, Visible To,
  • White, False);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Purple, Global.circle_damage[0], 1.200, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Green, Global.circle_speed[0], 1.200, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Red, Global.circle_health[0], 1.200, Visible To);
  • Create Effect(Is In Setup ? Filtered Array(All Players(All Teams), Array Contains(Remove From Array(All Support Heroes, Hero(
  • Бригитта)), Hero Of(Current Array Element))) : Empty Array, Ring, Yellow, Global.circle_heal, 1.200, Visible To);
  • Create Effect(Is In Setup ? Filtered Array(All Players(All Teams), !Array Contains(Array(Hero(Бастион), Hero(Бригитта), Hero(Жнец),
  • Hero(Кулак Смерти), Hero(Маккри), Hero(Роковая Вдова), Hero(Солдат-76), Hero(Таран), Hero(Трейсер), Hero(Уинстон), Hero(Эш),
  • Hero(D.Va), Hero(Ангел), Hero(Заря), Hero(Ориса), Hero(Райнхардт), Hero(Турбосвин), Hero(Сигма), Hero(Мойра)), Hero Of(
  • Current Array Element))) : Empty Array, Ring, Blue, Global.circle_projectiles[0], 1.200, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Orange, Global.circle_ability_1[0], 1.200, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Blue, Global.circle_ultimate[0], 1.200, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Turquoise, Global.circle_ability_2[0], 1.200, Visible To);
  • "Team 2"
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, White, Global.circle_reset[1], 0.800, Visible To);
  • Create Icon(Is In Setup ? All Players(Team 2) : Empty Array, Global.circle_reset[1], Recycle, Visible To, White, False);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Purple, Global.circle_damage[1], 1.250, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Green, Global.circle_speed[1], 1.250, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Red, Global.circle_health[1], 1.250, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Blue, Global.circle_projectiles[1], 1.250, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Orange, Global.circle_ability_1[1], 1.250, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Blue, Global.circle_ultimate[1], 1.250, Visible To);
  • Create Effect(Is In Setup ? All Players(All Teams) : Empty Array, Ring, Turquoise, Global.circle_ability_2[1], 1.250, Visible To);
  • "Team 1"
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("reset"), Global.circle_reset[0], 1.050,
  • Clip Against Surfaces, Visible To, White, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("damage"), Global.circle_damage[0], 1.250,
  • Clip Against Surfaces, Visible To, Purple, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("speed"), Global.circle_speed[0], 1.250,
  • Clip Against Surfaces, Visible To, Green, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("health"), Global.circle_health[0], 1.250,
  • Clip Against Surfaces, Visible To, Red, Default Visibility);
  • Create In-World Text(Is In Setup ? Filtered Array(All Players(All Teams), Array Contains(Remove From Array(All Support Heroes,
  • Hero(Бригитта)), Hero Of(Current Array Element))) : Empty Array, Custom String("heal"), Global.circle_heal, 1.250,
  • Clip Against Surfaces, Visible To, Yellow, Default Visibility);
  • Create In-World Text(Is In Setup ? Filtered Array(All Players(All Teams), !Array Contains(Array(Hero(Бастион), Hero(Бригитта),
  • Hero(Жнец), Hero(Кулак Смерти), Hero(Маккри), Hero(Роковая Вдова), Hero(Солдат-76), Hero(Таран), Hero(Трейсер), Hero(Уинстон),
  • Hero(Эш), Hero(D.Va), Hero(Ангел), Hero(Заря), Hero(Ориса), Hero(Райнхардт), Hero(Турбосвин), Hero(Сигма), Hero(Мойра)),
  • Hero Of(Current Array Element))) : Empty Array, Custom String("projectiles"), Global.circle_projectiles[0], 1.250,
  • Clip Against Surfaces, Visible To, Blue, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("ability 1"), Global.circle_ability_1[0],
  • 1.250, Clip Against Surfaces, Visible To, Orange, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("ultimate"), Global.circle_ultimate[0],
  • 1.250, Clip Against Surfaces, Visible To, Blue, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("ability 2"), Global.circle_ability_2[0],
  • 1.250, Clip Against Surfaces, Visible To, Turquoise, Default Visibility);
  • "Team 2"
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("reset"), Global.circle_reset[1], 1.050,
  • Clip Against Surfaces, Visible To, White, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("damage"), Global.circle_damage[1], 1.300,
  • Clip Against Surfaces, Visible To, Purple, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("speed"), Global.circle_speed[1], 1.300,
  • Clip Against Surfaces, Visible To, Green, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("health"), Global.circle_health[1], 1.300,
  • Clip Against Surfaces, Visible To, Red, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("projectiles"),
  • Global.circle_projectiles[1], 1.300, Clip Against Surfaces, Visible To, Blue, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("ability 1"), Global.circle_ability_1[1],
  • 1.300, Clip Against Surfaces, Visible To, Orange, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("ultimate"), Global.circle_ultimate[1],
  • 1.300, Clip Against Surfaces, Visible To, Blue, Default Visibility);
  • Create In-World Text(Is In Setup ? All Players(All Teams) : Empty Array, Custom String("ability 2"), Global.circle_ability_2[1],
  • 1.300, Clip Against Surfaces, Visible To, Turquoise, Default Visibility);
  • Create Effect(Is Using Ability 1(Players On Hero(Hero(Райнхардт), Team 2)) ? All Players(All Teams) : Empty Array, Ring, Red,
  • Players On Hero(Hero(Райнхардт), Team 2), 4.250, Visible To Position and Radius);
  • }
  • }
  • rule("Player Vars")
  • {
  • event
  • {
  • Player Joined Match;
  • All;
  • Все;
  • }
  • actions
  • {
  • Event Player.old_player = False;
  • Event Player.damage = 0;
  • Event Player.speed = 0;
  • Event Player.health = 0;
  • Event Player.heal = 0;
  • Event Player.projectiles = 0;
  • Event Player.ability_1 = 1;
  • Event Player.ability_2 = 1;
  • Event Player.ability_3 = 1;
  • Event Player.ultimate = 1;
  • If(Team Of(Event Player) == Team 1);
  • Event Player.price = Array(4, 4, 4, 4, 2, 12, 12, 12);
  • Else;
  • Event Player.price = Array(4, 4, 4, False, 2, 8, 10, 10);
  • End;
  • }
  • }
  • rule("HUDs, Money, Speed, Health, Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.damage_dealt = False;
  • Event Player.healing_dealt = False;
  • Event Player.damage_received = False;
  • If(Team Of(Event Player) == Team 1);
  • Skip If(Current Map != Map(Илиос: развалины), 2);
  • Create Icon(Filtered Array(Event Player, Distance Between(Current Array Element, Players In Slot(0, Team 2)) <= 20),
  • Players In Slot(0, Team 2), Skull, Visible To and Position, Red, True);
  • Event Player.icon = Last Created Entity;
  • End;
  • Set Gravity(Event Player, Team Of(Event Player) == Team 1 ? 95 : 90);
  • Set Jump Vertical Speed(Event Player, Current Map == Map(Аюттайя) ? 110 : 125);
  • Allow Button(Event Player, Ability 1);
  • Allow Button(Event Player, Ability 2);
  • Allow Button(Event Player, Secondary Fire);
  • Allow Button(Event Player, Jump);
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Set Crouch Enabled(Event Player, True);
  • Disable Movement Collision With Players(Event Player);
  • If(Event Player.old_player == True);
  • Event Player.money += Global.money;
  • Small Message(Event Player, Custom String("money: +{1}$", Null, Global.money));
  • Else;
  • Event Player.old_player = True;
  • If(Match Round == 1);
  • Event Player.money = 36;
  • Else If(Match Round == 2);
  • Event Player.money = 81;
  • Else If(Match Round == 3);
  • Event Player.money = 135;
  • Else If(Match Round == 4);
  • Event Player.money = 198;
  • Else If(Match Round == 5);
  • Event Player.money = 270;
  • Else If(Match Round == 6);
  • Event Player.money = 351;
  • Else If(Match Round == 7);
  • Event Player.money = 441;
  • Else If(Match Round == 8);
  • Event Player.money = 540;
  • Else If(Match Round == 9);
  • Event Player.money = 648;
  • End;
  • End;
  • Skip If(Hero Of(Event Player) == Hero(Таран), 1);
  • Create HUD Text(Event Player, Custom String("ability 1: {0}", Ability Icon String(Hero Of(Event Player), Button(Ability 1))),
  • Custom String("level: {1}", Null, Event Player.ability_1), Custom String("price: {1}$", Null, Event Player.price[5]), Left, 1,
  • Orange, Orange, White, String, Default Visibility);
  • Skip If(Hero Of(Event Player) != Hero(Таран), 1);
  • Create HUD Text(Event Player, Custom String("ability 1: {0}", Ability Icon String(Hero Of(Event Player), Button(Crouch))),
  • Custom String("level: {1}", Null, Event Player.ability_1), Custom String("price: {1}$", Null, Event Player.price[5]), Left, 1,
  • Orange, Orange, White, String, Default Visibility);
  • Skip If(Hero Of(Event Player) == Hero(Бастион), 1);
  • Create HUD Text(Event Player, Custom String("ability 2: {0}", Ability Icon String(Hero Of(Event Player), Button(Ability 2))),
  • Custom String("level: {1}", Null, Event Player.ability_2), Custom String("price: {1}$", Null, Event Player.price[6]), Left, 2,
  • Turquoise, Turquoise, White, String, Default Visibility);
  • Skip If(Hero Of(Event Player) != Hero(Бастион), 1);
  • Create HUD Text(Event Player, Custom String("ability 2: {0}", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))),
  • Custom String("level: {1}", Null, Event Player.ability_2), Custom String("price: {1}$", Null, Event Player.price[6]), Left, 2,
  • Turquoise, Turquoise, White, String, Default Visibility);
  • Create HUD Text(Event Player, Custom String("ultimate: {0}", Ability Icon String(Hero Of(Event Player), Button(Ultimate))),
  • Custom String("level: {1}", Null, Event Player.ultimate), Custom String("price: {1}$", Null, Event Player.price[7]), Left, 4,
  • Blue, Blue, White, String, Default Visibility);
  • Skip If(!Array Contains(Global.ability_3_hud, Hero Of(Event Player)), 6);
  • If(Hero Of(Event Player) == Hero(Хандзо));
  • Create HUD Text(Event Player, Custom String("ability 3: {0}", Ability Icon String(Hero Of(Event Player), Button(Jump))),
  • Custom String("level: {1}", Null, Event Player.ability_3), Null, Left, 3, Red, Red, White, String, Default Visibility);
  • Else If(Hero Of(Event Player) == Hero(Батист));
  • Create HUD Text(Event Player, Custom String("ability 3: {0}", Ability Icon String(Hero Of(Event Player), Button(Crouch))),
  • Custom String("level: {1}", Null, Event Player.ability_3), Null, Left, 3, Red, Red, White, String, Default Visibility);
  • Else;
  • Create HUD Text(Event Player, Custom String("ability 3: {0}", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))),
  • Custom String("level: {1}", Null, Event Player.ability_3), Null, Left, 3, Red, Red, White, String, Default Visibility);
  • End;
  • Wait(0.050, Ignore Condition);
  • Create HUD Text(Event Player, Custom String("damage"), Custom String("lvl: {1} ({2}%)", Null, Event Player.damage,
  • Event Player.damage_var), Custom String("price: {1}$", Null, Event Player.price[0]), Right, 0, Purple, Purple, White, String,
  • Default Visibility);
  • Create HUD Text(Event Player, Custom String("speed"), Custom String("lvl: {1} ({2}%)", Null, Event Player.speed,
  • Event Player.speed_var), Custom String("price: {1}$", Null, Event Player.price[1]), Right, 1, Green, Green, White, String,
  • Default Visibility);
  • Create HUD Text(Event Player, Custom String("health"), Custom String("lvl: {1} ({2}%)", Null, Event Player.health,
  • Event Player.health_var), Custom String("price: {1}$", Null, Event Player.price[2]), Right, 2, Red, Red, White, String,
  • Default Visibility);
  • Skip If(!Array Contains(Remove From Array(All Support Heroes, Hero(Бригитта)), Hero Of(Event Player)), 1);
  • Create HUD Text(Event Player, Custom String("heal"), Custom String("lvl: {1} ({2}%)", Null, Event Player.heal,
  • Event Player.heal_var), Custom String("price: {1}$", Null, Event Player.price[3]), Right, 3, Yellow, Yellow, White, String,
  • Default Visibility);
  • Skip If(Team Of(Event Player) == Team 2, 1);
  • Skip If(Array Contains(Array(Hero(Бастион), Hero(Бригитта), Hero(Жнец), Hero(Кулак Смерти), Hero(Маккри), Hero(Роковая Вдова),
  • Hero(Солдат-76), Hero(Таран), Hero(Трейсер), Hero(Уинстон), Hero(Эш), Hero(D.Va), Hero(Ангел), Hero(Заря), Hero(Ориса), Hero(
  • Райнхардт), Hero(Турбосвин), Hero(Сигма), Hero(Мойра)), Hero Of(Event Player)), 1);
  • Create HUD Text(Event Player, Custom String("projectiles"), Custom String("lvl: {1} ({2}%)", Null, Event Player.projectiles,
  • Event Player.projectiles_var), Custom String("price: {1}$", Null, Event Player.price[4]), Right, 4, Blue, Blue, White, String,
  • Default Visibility);
  • Create HUD Text(Event Player, Custom String("money: {0}$", Event Player.money), Null, Custom String(" \r\n "), Left, 0, White,
  • White, White, String, Default Visibility);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • Set Max Health(Event Player, Event Player.health_var);
  • Set Projectile Speed(Event Player, Event Player.projectiles_var);
  • Wait(0.050, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • }
  • }
  • rule("Money, HUDs, Round, Match Time")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Assembling Heroes == True;
  • }
  • actions
  • {
  • Stop Forcing Player To Be Hero(All Players(All Teams));
  • Set Match Time(15);
  • Global.money += 9;
  • Global.numercial_order = 4;
  • Global.player_brigitte = Null;
  • Global.biotic_grenade = False;
  • Global.damage_dealt = Empty Array;
  • Global.healing_dealt = Empty Array;
  • Global.damage_received = Empty Array;
  • Remove All Health Pools From Player(All Players(All Teams));
  • Destroy All HUD Text;
  • Stop All Damage Modifications;
  • Destroy Dummy Bot(Team 1, 6);
  • Destroy Dummy Bot(Team 2, 2);
  • }
  • }
  • rule("Canceling the end of match")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Number of Players(Team 2) == False;
  • }
  • actions
  • {
  • Create Dummy Bot(Hero(Райнхардт), Team 2, 1, Null, Null);
  • Wait(0.250, Ignore Condition);
  • Kill(Players In Slot(1, Team 2), Null);
  • Wait(0.750, Ignore Condition);
  • Destroy Dummy Bot(Team 2, 1);
  • }
  • }
  • rule("Player Left Match | Slot 0")
  • {
  • event
  • {
  • Player Left Match;
  • Team 1;
  • Ячейка 0;
  • }
  • actions
  • {
  • Destroy Icon(Event Player.icon);
  • Event Player.damage_dealt = False;
  • Event Player.healing_dealt = False;
  • Event Player.damage_received = False;
  • Global.damage_dealt[False] = False;
  • Global.healing_dealt[False] = False;
  • Global.damage_received[False] = False;
  • }
  • }
  • rule("Player Left Match | Slot 1")
  • {
  • event
  • {
  • Player Left Match;
  • Team 1;
  • Ячейка 1;
  • }
  • actions
  • {
  • Destroy Icon(Event Player.icon);
  • Event Player.damage_dealt = False;
  • Event Player.healing_dealt = False;
  • Event Player.damage_received = False;
  • Global.damage_dealt[1] = False;
  • Global.healing_dealt[1] = False;
  • Global.damage_received[1] = False;
  • }
  • }
  • rule("Player Left Match | Slot 2")
  • {
  • event
  • {
  • Player Left Match;
  • Team 1;
  • Ячейка 2;
  • }
  • actions
  • {
  • Destroy Icon(Event Player.icon);
  • Event Player.damage_dealt = False;
  • Event Player.healing_dealt = False;
  • Event Player.damage_received = False;
  • Global.damage_dealt[2] = False;
  • Global.healing_dealt[2] = False;
  • Global.damage_received[2] = False;
  • }
  • }
  • rule("Player Left Match | Slot 3")
  • {
  • event
  • {
  • Player Left Match;
  • Team 1;
  • Ячейка 3;
  • }
  • actions
  • {
  • Destroy Icon(Event Player.icon);
  • Event Player.damage_dealt = False;
  • Event Player.healing_dealt = False;
  • Event Player.damage_received = False;
  • Global.damage_dealt[3] = False;
  • Global.healing_dealt[3] = False;
  • Global.damage_received[3] = False;
  • }
  • }
  • rule("Player Left Match | Slot 4")
  • {
  • event
  • {
  • Player Left Match;
  • Team 1;
  • Ячейка 4;
  • }
  • actions
  • {
  • Destroy Icon(Event Player.icon);
  • Event Player.damage_dealt = False;
  • Event Player.healing_dealt = False;
  • Event Player.damage_received = False;
  • Global.damage_dealt[4] = False;
  • Global.healing_dealt[4] = False;
  • Global.damage_received[4] = False;
  • }
  • }
  • rule("Player Left Match | Slot 5")
  • {
  • event
  • {
  • Player Left Match;
  • Team 1;
  • Ячейка 5;
  • }
  • actions
  • {
  • Destroy Icon(Event Player.icon);
  • Event Player.damage_dealt = False;
  • Event Player.healing_dealt = False;
  • Event Player.damage_received = False;
  • Global.damage_dealt[5] = False;
  • Global.healing_dealt[5] = False;
  • Global.damage_received[5] = False;
  • }
  • }
  • rule("HUDs")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Enable Movement Collision With Players(All Players(All Teams));
  • Skip If(Current Map != Map(Некрополь), 1);
  • Set Status(All Players(Team 2), Null, Rooted, 2);
  • Set Damage Received(Filtered Array(All Players(All Teams), Hero Of(Current Array Element) != Hero(Эш)), 100);
  • Skip If(!Is Hero Being Played(Hero(Эш), Team 1), 2);
  • Set Damage Received(Players On Hero(Hero(Эш), Team 1), 10);
  • Start Damage Modification(Players On Hero(Hero(Эш), Team 1), Players On Hero(Hero(Райнхардт), Team 2), 1000, None);
  • Destroy All HUD Text;
  • Create HUD Text(All Players(All Teams), Null, String("{0} {1}", String(""), String("")), Null, Top, 0, White, White, White,
  • Visible To, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("{0}: {1}%", Icon String(Heart), Round To Integer(Health(Players On Hero(
  • Hero(Райнхардт), Team 2)) / Max Health(Players On Hero(Hero(Райнхардт), Team 2)) * 100, Up)), Null, Null, Top, 1, Red, White,
  • White, Visible To and String, Default Visibility);
  • Create HUD Text(Last Of(Sorted Array(Global.damage_dealt, Current Array Element)) > False ? All Players(Team 1) : Empty Array,
  • Ability Icon String(Hero(D.Va), Button(Melee)), Custom String("most damage dealt"), Count Of(Filtered Array(
  • Global.damage_dealt, Current Array Element > False)) == 1 ? Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(
  • Sorted Array(All Players(Team 1), Current Array Element.damage_dealt)))), Last Of(Sorted Array(All Players(Team 1),
  • Current Array Element.damage_dealt)), Round To Integer(Last Of(Sorted Array(Global.damage_dealt, Current Array Element)),
  • To Nearest)) : (Count Of(Filtered Array(Global.damage_dealt, Current Array Element > False)) == 2 ? Custom String(
  • "{0} \r\n{1}", Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_dealt > False), Current Array Element.damage_dealt)))), Last Of(Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_dealt > False), Current Array Element.damage_dealt)), Round To Integer(
  • Last Of(Sorted Array(Filtered Array(Global.damage_dealt, Current Array Element > False), Current Array Element)), To Nearest)),
  • Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_dealt > False), 100 / Current Array Element.damage_dealt)[1])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_dealt > False), 100 / Current Array Element.damage_dealt)[1],
  • Round To Integer(Sorted Array(Filtered Array(Global.damage_dealt, Current Array Element > False), 100 / Current Array Element)
  • [1], To Nearest))) : Custom String("{0} \r\n{1} \r\n{2}", Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(
  • Sorted Array(Filtered Array(All Players(Team 1), Current Array Element.damage_dealt > False),
  • Current Array Element.damage_dealt)))), Last Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_dealt > False), Current Array Element.damage_dealt)), Round To Integer(Last Of(Sorted Array(
  • Filtered Array(Global.damage_dealt, Current Array Element > False), Current Array Element)), To Nearest)), Custom String(
  • "{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_dealt > False), 100 / Current Array Element.damage_dealt)[1])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_dealt > False), 100 / Current Array Element.damage_dealt)[1],
  • Round To Integer(Sorted Array(Filtered Array(Global.damage_dealt, Current Array Element > False), 100 / Current Array Element)
  • [1], To Nearest)), Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_dealt > False), 100 / Current Array Element.damage_dealt)[2])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_dealt > False), 100 / Current Array Element.damage_dealt)[2],
  • Round To Integer(Sorted Array(Filtered Array(Global.damage_dealt, Current Array Element > False), 100 / Current Array Element)
  • [2], To Nearest)))), Left, 1, Purple, Purple, White, Visible To and String, Default Visibility);
  • Create HUD Text(Last Of(Sorted Array(Global.healing_dealt, Current Array Element)) > False ? All Players(Team 1) : Empty Array,
  • Null, String("{0} {1}", String(""), String("")), Null, Left, 1.500, White, White, White, Visible To, Default Visibility);
  • Create HUD Text(Last Of(Sorted Array(Global.healing_dealt, Current Array Element)) > False ? All Players(Team 1) : Empty Array,
  • Ability Icon String(Hero(Батист), Button(Ability 1)), Custom String("most healing dealt"), Count Of(Filtered Array(
  • Global.healing_dealt, Current Array Element > False)) == 1 ? Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(
  • Sorted Array(All Players(Team 1), Current Array Element.healing_dealt)))), Last Of(Sorted Array(All Players(Team 1),
  • Current Array Element.healing_dealt)), Round To Integer(Last Of(Sorted Array(Global.healing_dealt, Current Array Element)),
  • To Nearest)) : (Count Of(Filtered Array(Global.healing_dealt, Current Array Element > False)) == 2 ? Custom String(
  • "{0} \r\n{1}", Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.healing_dealt > False), Current Array Element.healing_dealt)))), Last Of(Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.healing_dealt > False), Current Array Element.healing_dealt)), Round To Integer(
  • Last Of(Sorted Array(Filtered Array(Global.healing_dealt, Current Array Element > False), Current Array Element)),
  • To Nearest)), Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.healing_dealt > False), 100 / Current Array Element.healing_dealt)[1])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.healing_dealt > False), 100 / Current Array Element.healing_dealt)[1],
  • Round To Integer(Sorted Array(Filtered Array(Global.healing_dealt, Current Array Element > False), 100 / Current Array Element)
  • [1], To Nearest))) : Custom String("{0} \r\n{1} \r\n{2}", Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(
  • Sorted Array(Filtered Array(All Players(Team 1), Current Array Element.healing_dealt > False),
  • Current Array Element.healing_dealt)))), Last Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.healing_dealt > False), Current Array Element.healing_dealt)), Round To Integer(Last Of(Sorted Array(
  • Filtered Array(Global.healing_dealt, Current Array Element > False), Current Array Element)), To Nearest)), Custom String(
  • "{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.healing_dealt > False), 100 / Current Array Element.healing_dealt)[1])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.healing_dealt > False), 100 / Current Array Element.healing_dealt)[1],
  • Round To Integer(Sorted Array(Filtered Array(Global.healing_dealt, Current Array Element > False), 100 / Current Array Element)
  • [1], To Nearest)), Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.healing_dealt > False), 100 / Current Array Element.healing_dealt)[2])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.healing_dealt > False), 100 / Current Array Element.healing_dealt)[2],
  • Round To Integer(Sorted Array(Filtered Array(Global.healing_dealt, Current Array Element > False), 100 / Current Array Element)
  • [2], To Nearest)))), Left, 2, Yellow, Yellow, White, Visible To and String, Default Visibility);
  • Create HUD Text(Last Of(Sorted Array(Global.damage_received, Current Array Element)) > False ? All Players(Team 1) : Empty Array,
  • Null, String("{0} {1}", String(""), String("")), Null, Left, 2.500, White, White, White, Visible To, Default Visibility);
  • Create HUD Text(Last Of(Sorted Array(Global.damage_received, Current Array Element)) > False ? All Players(Team 1) : Empty Array,
  • Ability Icon String(Hero(Бригитта), Button(Secondary Fire)), Custom String("most damage received"), Count Of(Filtered Array(
  • Global.damage_received, Current Array Element > False)) == 1 ? Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(
  • Sorted Array(All Players(Team 1), Current Array Element.damage_received)))), Last Of(Sorted Array(All Players(Team 1),
  • Current Array Element.damage_received)), Round To Integer(Last Of(Sorted Array(Global.damage_received, Current Array Element)),
  • To Nearest)) : (Count Of(Filtered Array(Global.damage_received, Current Array Element > False)) == 2 ? Custom String(
  • "{0} \r\n{1}", Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Last Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_received > False), Current Array Element.damage_received)))), Last Of(Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_received > False), Current Array Element.damage_received)), Round To Integer(
  • Last Of(Sorted Array(Filtered Array(Global.damage_received, Current Array Element > False), Current Array Element)),
  • To Nearest)), Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_received > False), 100 / Current Array Element.damage_received)[1])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_received > False), 100 / Current Array Element.damage_received)[1],
  • Round To Integer(Sorted Array(Filtered Array(Global.damage_received, Current Array Element > False),
  • 100 / Current Array Element)[1], To Nearest))) : Custom String("{0} \r\n{1} \r\n{2}", Custom String("{0} {1} - {2}",
  • Hero Icon String(Hero Of(Last Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_received > False), Current Array Element.damage_received)))), Last Of(Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_received > False), Current Array Element.damage_received)), Round To Integer(
  • Last Of(Sorted Array(Filtered Array(Global.damage_received, Current Array Element > False), Current Array Element)),
  • To Nearest)), Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_received > False), 100 / Current Array Element.damage_received)[1])), Sorted Array(Filtered Array(
  • All Players(Team 1), Current Array Element.damage_received > False), 100 / Current Array Element.damage_received)[1],
  • Round To Integer(Sorted Array(Filtered Array(Global.damage_received, Current Array Element > False),
  • 100 / Current Array Element)[1], To Nearest)), Custom String("{0} {1} - {2}", Hero Icon String(Hero Of(Sorted Array(
  • Filtered Array(All Players(Team 1), Current Array Element.damage_received > False),
  • 100 / Current Array Element.damage_received)[2])), Sorted Array(Filtered Array(All Players(Team 1),
  • Current Array Element.damage_received > False), 100 / Current Array Element.damage_received)[2], Round To Integer(Sorted Array(
  • Filtered Array(Global.damage_received, Current Array Element > False), 100 / Current Array Element)[2], To Nearest)))), Left,
  • 3, Red, Red, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 1), Null, String("{0} {1}", String(""), String("")), Null, Left, 3.500, White, White, White,
  • Visible To, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Райнхардт), Team 2), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Райнхардт), Team 2)) ? Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n")
  • : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"),
  • Top, 2, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(Team 2), Custom String("{0}: {1} sec", Ability Icon String(Hero(Райнхардт), Button(Secondary Fire)),
  • Round To Integer(Players On Hero(Hero(Райнхардт), Team 2).boss_barrier, Up)), Null, Custom String(" \r\n"), Top, 3, White,
  • White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Солдат-76), Team 1), 2);
  • Create HUD Text(Players On Hero(Hero(Солдат-76), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Солдат-76), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Солдат-76), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Солдат-76), Team 1).ability_cooldown * 0.600, To Nearest)], Null, Null, Top, 3, White,
  • White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Трейсер), Team 1), 3);
  • Create HUD Text(Players On Hero(Hero(Трейсер), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Трейсер), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Трейсер), Team 1), Array(Custom String("□ □ □"), Custom String("{0} □ □", Ability Icon String(
  • Hero(Трейсер), Button(Ability 1))), Custom String("{0} {1} □", Ability Icon String(Hero(Трейсер), Button(Ability 1)),
  • Ability Icon String(Hero(Трейсер), Button(Ability 1))), Custom String("{0} {1} {2}", Ability Icon String(Hero(Трейсер), Button(
  • Ability 1)), Ability Icon String(Hero(Трейсер), Button(Ability 1)), Ability Icon String(Hero(Трейсер), Button(Ability 1))))
  • [Players On Hero(Hero(Трейсер), Team 1).ability_count], Null, Null, Top, 4, White, White, White, Visible To and String,
  • Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Трейсер), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Трейсер), Team 1).ability_cooldown / (1 - 0.125 * (Players On Hero(Hero(Трейсер),
  • Team 1).ability_1 - 1)), To Nearest)], Null, Null, Top, 5, White, White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Крысавчик), Team 1), 3);
  • Create HUD Text(Players On Hero(Hero(Крысавчик), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Крысавчик), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Крысавчик), Team 1), Array(Custom String("□ □"), Custom String("{0} □", Ability Icon String(
  • Hero(Крысавчик), Button(Ability 1))), Custom String("{0} {1}", Ability Icon String(Hero(Крысавчик), Button(Ability 1)),
  • Ability Icon String(Hero(Крысавчик), Button(Ability 1))))[Players On Hero(Hero(Крысавчик), Team 1).ability_count], Null, Null,
  • Top, 3, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Крысавчик), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Крысавчик), Team 1).ability_cooldown / (2 - 0.250 * (Players On Hero(Hero(Крысавчик),
  • Team 1).ability_1 - 1)), To Nearest)], Null, Null, Top, 4, White, White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Симметра), Team 1), 3);
  • Create HUD Text(Players On Hero(Hero(Симметра), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Симметра), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Симметра), Team 1), Array(Custom String("□ □ □"), Custom String("{0} □ □",
  • Ability Icon String(Hero(Симметра), Button(Ability 1))), Custom String("{0} {1} □", Ability Icon String(Hero(Симметра), Button(
  • Ability 1)), Ability Icon String(Hero(Симметра), Button(Ability 1))), Custom String("{0} {1} {2}", Ability Icon String(Hero(
  • Симметра), Button(Ability 1)), Ability Icon String(Hero(Симметра), Button(Ability 1)), Ability Icon String(Hero(Симметра),
  • Button(Ability 1))))[Players On Hero(Hero(Симметра), Team 1).ability_count], Null, Null, Top, 3, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Симметра), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Симметра), Team 1).ability_cooldown * (0.500 / (1 - 0.125 * (Players On Hero(Hero(
  • Симметра), Team 1).ability_1 - 1))), To Nearest)], Null, Null, Top, 4, White, White, White, Visible To and String,
  • Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Лусио), Team 1), 2);
  • Create HUD Text(Players On Hero(Hero(Лусио), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Лусио), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Лусио), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Лусио), Team 1).ability_cooldown * 0.600, To Nearest)], Null, Null, Top, 3, White,
  • White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Эхо), Team 1), 2);
  • Create HUD Text(Players On Hero(Hero(Эхо), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(Эхо),
  • Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Эхо), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Эхо), Team 1).ability_cooldown * 1.500, To Nearest)], Null, Null, Top, 3, White, White,
  • White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Бастион), Team 1), 2);
  • Create HUD Text(Players On Hero(Hero(Бастион), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Бастион), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Бастион), Team 1), Array(Custom String("     "), Custom String("▒    "), Custom String(
  • "▒▒   "), Custom String("▒▒▒  "), Custom String("▒▒▒▒ "), Custom String("▒▒▒▒▒"))[Round To Integer(Players On Hero(Hero(
  • Бастион), Team 1).special_ability_1 * 0.500, To Nearest)], Null, Null, Top, 2.500, White, White, White, Visible To and String,
  • Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Бастион), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Бастион), Team 1).ability_cooldown * 1.500, To Nearest)], Null, Null, Top, 3, White,
  • White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Торбьорн), Team 1), 4);
  • Create HUD Text(Players On Hero(Hero(Торбьорн), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Торбьорн), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Торбьорн), Team 1), Null, Null, Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"),
  • Top, 4, White, White, White, Visible To, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Торбьорн), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Торбьорн), Team 1).ability_cooldown * 0.500, To Nearest)], Null, Null, Top, 3, White,
  • White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Торбьорн), Team 1), Custom String("↔: {0} + {1}", Input Binding String(Button(Ability 1)),
  • Input Binding String(Button(Ability 1))), Null, Null, Top, 5, White, White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Уинстон), Team 1), 3);
  • Create HUD Text(Players On Hero(Hero(Уинстон), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Уинстон), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Уинстон), Team 1), Array(Custom String("□ □"), Custom String("{0} □", Ability Icon String(
  • Hero(Уинстон), Button(Ability 1))), Custom String("{0} {1}", Ability Icon String(Hero(Уинстон), Button(Ability 1)),
  • Ability Icon String(Hero(Уинстон), Button(Ability 1))))[Players On Hero(Hero(Уинстон), Team 1).ability_count], Null, Null, Top,
  • 3, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Уинстон), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Уинстон), Team 1).ability_cooldown / (1.333 - 0.167 * (Players On Hero(Hero(Уинстон),
  • Team 1).ability_1 - 1)), To Nearest)], Null, Null, Top, 4, White, White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Мойра), Team 1), 5);
  • Create HUD Text(Players On Hero(Hero(Мойра), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Мойра), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Мойра), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Мойра), Team 1).ability_cooldown / 2, To Nearest)], Null, Null, Top, 3, White, White,
  • White, Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Мойра), Team 1), Null, Null, Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top,
  • 4, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Мойра), Team 1), Custom String("{0}: {1} + {2}", Ability Icon String(Hero(Дзенъятта), Button(
  • Ability 1)), Input Binding String(Button(Ability 2)), Input Binding String(Button(Primary Fire))), Null, Null, Top, 5, Yellow,
  • White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Мойра), Team 1), Custom String("{0}: {1} + {2}", Ability Icon String(Hero(Дзенъятта), Button(
  • Ability 2)), Input Binding String(Button(Ability 2)), Input Binding String(Button(Secondary Fire))), Null, Null, Top, 6,
  • Purple, White, White, Visible To and String, Default Visibility);
  • Skip If(!Is Hero Being Played(Hero(Батист), Team 1), 2);
  • Create HUD Text(Players On Hero(Hero(Батист), Team 1), Null, Null, Array Contains(Global.capture_players, Players On Hero(Hero(
  • Мойра), Team 1)) ? Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Players On Hero(Hero(Батист), Team 1), Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String(
  • "■■□□□□"), Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))
  • [Round To Integer(Players On Hero(Hero(Батист), Team 1).ability_cooldown * 0.500, To Nearest)], Null, Null, Top, 5, White,
  • White, White, Visible To and String, Default Visibility);
  • Abort If(!Is Hero Being Played(Hero(Бригитта), Team 1));
  • Start Forcing Player To Be Hero(Global.player_brigitte, Hero(Бастион));
  • Wait(0.400, Ignore Condition);
  • Start Forcing Player To Be Hero(Global.player_brigitte, Hero(Бригитта));
  • Create HUD Text(Global.player_brigitte, Null, Null, Array Contains(Global.capture_players, Global.player_brigitte) ? Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n") : Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 2, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Global.player_brigitte, Array(Custom String("□ □ □"), Custom String("{0} □ □", Ability Icon String(Hero(Бригитта),
  • Button(Ability 2))), Custom String("{0} {1} □", Ability Icon String(Hero(Бригитта), Button(Ability 2)), Ability Icon String(
  • Hero(Бригитта), Button(Ability 2))), Custom String("{0} {1} {2}", Ability Icon String(Hero(Бригитта), Button(Ability 2)),
  • Ability Icon String(Hero(Бригитта), Button(Ability 2)), Ability Icon String(Hero(Бригитта), Button(Ability 2))))
  • [Global.player_brigitte.ability_count], Null, Null, Top, 3, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Global.player_brigitte, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"),
  • Custom String("■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Global.player_brigitte.ability_cooldown / (2 - 0.250 * (Global.player_brigitte.ability_2 - 1)), To Nearest)], Null, Null, Top,
  • 4, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Global.player_brigitte, Null, Null, Custom String(" \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 5, White, White,
  • White, Visible To, Default Visibility);
  • Create HUD Text(Global.player_brigitte, Is Firing Secondary(Global.player_brigitte) && Is In View Angle(Global.player_brigitte,
  • Players On Hero(Hero(Райнхардт), Team 2), 45) ? Custom String("dmg. reduction: 25%") : Custom String("dmg. reduction: 0%"),
  • Null, Null, Top, 6, White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Pits")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Все;
  • }
  • conditions
  • {
  • ((Current Map == Map(Некрополь) && X Component Of(Position Of(Event Player)) >= 25 && Y Component Of(Position Of(Event Player))
  • <= -6.250) || (Current Map == Map(Некрополь) && Y Component Of(Position Of(Event Player)) <= -16.250) || (Current Map == Map(
  • Аюттайя) && Y Component Of(Position Of(Event Player)) <= -3.500) || (Current Map == Map(Илиос: развалины) && Y Component Of(
  • Position Of(Event Player)) <= 51.500)) == True;
  • }
  • actions
  • {
  • Abort If(Team Of(Event Player) == Team 1 && Count Of(Filtered Array(All Living Players(Team 1), Has Spawned(Current Array Element)
  • && !Is Dummy Bot(Current Array Element))) == 1);
  • Set Status(Event Player, Null, Stunned, 0.100);
  • Cancel Primary Action(Event Player);
  • Wait(0.016, Ignore Condition);
  • Teleport(Event Player, Nearest Walkable Position(Event Player));
  • Set Status(Event Player, Null, Frozen, Team Of(Event Player) == Team 1 ? 1.750 : 1.250);
  • }
  • }
  • rule("Pause")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • }
  • actions
  • {
  • Start Damage Modification(All Players(Team 1), All Players(Team 1), False, Receivers and Damagers);
  • Start Damage Modification(All Players(Team 1), Players On Hero(Hero(Торбьорн), Team 2), False, Receivers and Damagers);
  • Global.time = (Current Map == Map(Некрополь) ? 18 : 21) + Match Round * 2;
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String(" \r\n\r\n"), Top, 0, White, White, White, Visible To,
  • Default Visibility);
  • Create HUD Text(Has Spawned(Players In Slot(0, Team 1)) || Has Spawned(Players In Slot(1, Team 1)) || Has Spawned(Players In Slot(
  • 2, Team 1)) ? All Players(Team 2) : Empty Array, Custom String("{0} {1} {2}", Hero Icon String(Hero Of(Players In Slot(0,
  • Team 1))), Hero Icon String(Hero Of(Players In Slot(1, Team 1))), Hero Icon String(Hero Of(Players In Slot(2, Team 1)))), Null,
  • Custom String(" \r\n"), Top, 1, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Has Spawned(Players In Slot(3, Team 1)) || Has Spawned(Players In Slot(4, Team 1)) || Has Spawned(Players In Slot(
  • 5, Team 1)) ? All Players(Team 2) : Empty Array, Custom String("{0} {1} {2}", Hero Icon String(Hero Of(Players In Slot(3,
  • Team 1))), Hero Icon String(Hero Of(Players In Slot(4, Team 1))), Hero Icon String(Hero Of(Players In Slot(5, Team 1)))), Null,
  • Custom String(" \r\n"), Top, 2, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("press [{0}] to buy upgrades", Input Binding String(Button(Interact))), Null,
  • Null, Top, 2.500, Purple, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("buy time: {0} sec", Round To Integer(Global.time, Up)), Null, Null, Top, 3,
  • Green, White, White, Visible To and String, Default Visibility);
  • Pause Match Time;
  • Wait((Current Map == Map(Некрополь) ? 13 : 16) + Match Round * 2, Ignore Condition);
  • Unpause Match Time;
  • }
  • }
  • rule("Damage Dealt")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Attacker != Victim;
  • }
  • actions
  • {
  • Event Player.damage_dealt += Event Damage;
  • Global.damage_dealt[Slot Of(Event Player)] += Event Damage;
  • }
  • }
  • rule("Healing Dealt")
  • {
  • event
  • {
  • Player Dealt Healing;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Event Player.healing_dealt += Event Healing;
  • Global.healing_dealt[Slot Of(Event Player)] += Event Healing;
  • }
  • }
  • rule("Damage Received")
  • {
  • event
  • {
  • Player took damage;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Attacker != Victim;
  • }
  • actions
  • {
  • Event Player.damage_received += Event Damage;
  • Global.damage_received[Slot Of(Event Player)] += Event Damage;
  • }
  • }
  • rule("HUD | Player Died")
  • {
  • event
  • {
  • Player Died;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Alive(Players On Hero(Hero(Райнхардт), Team 2)) == True;
  • Is Dummy Bot(Event Player) == False;
  • }
  • actions
  • {
  • Global.numercial_order += 1;
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} {1}", Hero Icon String(Hero Of(Event Player)),
  • Event Player), Left, Global.numercial_order, White, White, Red, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Capture | Append To Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Все;
  • }
  • conditions
  • {
  • Is On Objective(Event Player) == True;
  • }
  • actions
  • {
  • Global.capture_players = Append To Array(Global.capture_players, Event Player);
  • }
  • }
  • rule("Capture | Remove From Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Все;
  • }
  • conditions
  • {
  • Has Spawned(Event Player) == True;
  • Is On Objective(Event Player) == False;
  • }
  • actions
  • {
  • Global.capture_players = Remove From Array(Global.capture_players, Event Player);
  • }
  • }
  • rule("Black List")
  • {
  • event
  • {
  • Player Joined Match;
  • All;
  • Все;
  • }
  • conditions
  • {
  • Array Contains(Array(Custom String("ORLOFF"), Custom String("Avery"), Custom String("Niszczyciel"), Custom String("Gruitmand"),
  • Custom String("EeGor5000"), Custom String("VA1KGD"), Custom String("Svel"), Custom String("zenfrog"), Custom String("First")),
  • Custom String("{0}", Event Player)) == True;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0}", Event Player), Right, 5, White, White, Purple,
  • Visible To and String, Default Visibility);
  • Set Healing Received(Event Player, False);
  • Start Damage Over Time(Event Player, Null, 9999, 20);
  • Set Status(Event Player, Null, Burning, 9999);
  • Set Status(Event Player, Null, Hacked, 9999);
  • }
  • }
  • rule("Vars | Team 1")
  • {
  • event
  • {
  • Player Joined Match;
  • Team 1;
  • Все;
  • }
  • actions
  • {
  • Event Player.speed_var = 100;
  • Event Player.projectiles_var = 100;
  • Event Player.health_var = 100;
  • Event Player.heal_var = 100;
  • Event Player.damage_var = 100;
  • }
  • }
  • rule("Speed | Setup")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • If(Array Contains(Global.speed_104, Hero Of(Event Player)));
  • Event Player.speed_var += 4;
  • Else If(Array Contains(Global.speed_106, Hero Of(Event Player)));
  • Event Player.speed_var += 6;
  • Else If(Array Contains(Global.speed_108, Hero Of(Event Player)));
  • Event Player.speed_var += 8;
  • Else If(Array Contains(Global.speed_110, Hero Of(Event Player)));
  • Event Player.speed_var += 10;
  • Else If(Array Contains(Global.speed_114, Hero Of(Event Player)));
  • Event Player.speed_var += 14;
  • Else If(Array Contains(Global.speed_116, Hero Of(Event Player)));
  • Event Player.speed_var += 16;
  • Else If(Array Contains(Global.speed_120, Hero Of(Event Player)));
  • Event Player.speed_var += 20;
  • Else If(Array Contains(Global.speed_124, Hero Of(Event Player)));
  • Event Player.speed_var += 24;
  • End;
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Speed | Not Setup")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Between Rounds == True;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Destroy Icon(Event Player.icon);
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • Stop Chasing Player Variable(Event Player, special_ability_1);
  • Stop Chasing Player Variable(Event Player, special_ability_2);
  • Stop Chasing Player Variable(Event Player, angle);
  • Stop Chasing Player Variable(Event Player, widow_damage);
  • Event Player.ability_cooldown = False;
  • Event Player.use_ult = False;
  • Destroy Effect(Players On Hero(Hero(Ориса), Team 1).hud_or_effect[False]);
  • Destroy Effect(Players On Hero(Hero(Ориса), Team 1).hud_or_effect[1]);
  • Destroy Effect(Players On Hero(Hero(Ориса), Team 1).hud_or_effect[2]);
  • Destroy Effect(Players On Hero(Hero(Ориса), Team 1).hud_or_effect[3]);
  • Destroy Effect(Players On Hero(Hero(Торбьорн), Team 1).special_ability_1[1]);
  • Destroy Effect(Players On Hero(Hero(Торбьорн), Team 1).special_ability_1[3]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[False]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[1]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[2]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[3]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[4]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[5]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[6]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[7]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[8]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[9]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[10]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[11]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[12]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[13]);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[14]);
  • If(Array Contains(Global.speed_104, Hero Of(Event Player)));
  • Event Player.speed_var -= 4;
  • Else If(Array Contains(Global.speed_106, Hero Of(Event Player)));
  • Event Player.speed_var -= 6;
  • Else If(Array Contains(Global.speed_108, Hero Of(Event Player)));
  • Event Player.speed_var -= 8;
  • Else If(Array Contains(Global.speed_110, Hero Of(Event Player)));
  • Event Player.speed_var -= 10;
  • Else If(Array Contains(Global.speed_114, Hero Of(Event Player)));
  • Event Player.speed_var -= 14;
  • Else If(Array Contains(Global.speed_116, Hero Of(Event Player)));
  • Event Player.speed_var -= 16;
  • Else If(Array Contains(Global.speed_120, Hero Of(Event Player)));
  • Event Player.speed_var -= 20;
  • Else If(Array Contains(Global.speed_124, Hero Of(Event Player)));
  • Event Player.speed_var -= 24;
  • End;
  • }
  • }
  • rule("Projectile Speed, Healing")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Hero Of(Event Player) != Hero(Дзенъятта);
  • }
  • actions
  • {
  • Set Healing Dealt(Event Player, Array Contains(Remove From Array(All Support Heroes, Hero(Бригитта)), Hero Of(Event Player))
  • ? Event Player.heal_var : (Hero Of(Event Player) == Hero(Жнец) || Hero Of(Event Player) == Hero(Мэй) ? 100 : False));
  • If(Array Contains(Array(Hero(D.Va), Hero(Ангел), Hero(Бастион), Hero(Бригитта), Hero(Жнец), Hero(Заря), Hero(Кулак Смерти), Hero(
  • Маккри), Hero(Мойра), Hero(Ориса), Hero(Райнхардт), Hero(Роковая Вдова), Hero(Сигма), Hero(Солдат-76), Hero(Таран), Hero(
  • Трейсер), Hero(Турбосвин), Hero(Уинстон), Hero(Эш)), Hero Of(Event Player)));
  • Set Projectile Speed(Event Player, 100);
  • End;
  • }
  • }
  • rule("Upgrade | Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_damage[False], Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[False]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.damage += 1;
  • Event Player.damage_var += 20;
  • Event Player.money -= Event Player.price[False];
  • Event Player.price[False] += 1;
  • Small Message(Event Player, Custom String("damage: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Purple, Global.circle_damage[False], 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Speed")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_speed[False], Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[1]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.speed += 1;
  • Event Player.speed_var += 2;
  • Event Player.money -= Event Player.price[1];
  • Event Player.price[1] += 1;
  • Small Message(Event Player, Custom String("speed: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Green, Global.circle_speed[False], 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Health")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_health[False], Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[2]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.health += 1;
  • Event Player.health_var += 25;
  • Event Player.money -= Event Player.price[2];
  • Event Player.price[2] += 1;
  • Small Message(Event Player, Custom String("health: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Red, Global.circle_health[False], 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Max Health(Event Player, Event Player.health_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Heal")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Array Contains(Remove From Array(All Support Heroes, Hero(Бригитта)), Hero Of(Event Player)) == True;
  • Distance Between(Global.circle_heal, Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[3]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.heal += 1;
  • Event Player.heal_var += 25;
  • Event Player.money -= Event Player.price[3];
  • Event Player.price[3] += 1;
  • Small Message(Event Player, Custom String("heal: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Global.circle_heal, 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Healing Dealt(Event Player, Event Player.heal_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Projectiles")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Array Contains(Array(Hero(Бастион), Hero(Бригитта), Hero(Жнец), Hero(Кулак Смерти), Hero(Маккри), Hero(Роковая Вдова), Hero(
  • Солдат-76), Hero(Таран), Hero(Трейсер), Hero(Уинстон), Hero(Эш), Hero(D.Va), Hero(Ангел), Hero(Заря), Hero(Ориса), Hero(
  • Райнхардт), Hero(Турбосвин), Hero(Сигма)), Hero Of(Event Player)) == False;
  • Distance Between(Global.circle_projectiles[False], Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[4]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.projectiles += 1;
  • Event Player.projectiles_var += 7.500;
  • Event Player.money -= Event Player.price[4];
  • Event Player.price[4] += 0.500;
  • Small Message(Event Player, Custom String("projectile speed: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Global.circle_projectiles[False], 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Projectile Speed(Event Player, Event Player.projectiles_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_ability_1[False], Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.ability_1 == 5);
  • Small Message(Event Player, Custom String("you already have the max level!"));
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.money >= Event Player.price[5]);
  • Event Player.ability_1 += 1;
  • Event Player.ability_3 += 0.500;
  • Event Player.money -= Event Player.price[5];
  • Event Player.price[5] += 3;
  • Play Effect(All Players(All Teams), Ring Explosion, Orange, Global.circle_ability_1[False], 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 65);
  • Else;
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.ability_1 < 5);
  • If(Hero Of(Event Player) == Hero(Таран));
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Crouch))));
  • Else;
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Ability 1))));
  • End;
  • Else;
  • Modify Player Variable At Index(Event Player, price, 5, Remove From Array By Value, 24);
  • If(Hero Of(Event Player) == Hero(Таран));
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Crouch))));
  • Else;
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Ability 1))));
  • End;
  • End;
  • If(Array Contains(Global.ability_3_hud, Hero Of(Event Player)) && (Event Player.ability_1 + Event Player.ability_2) % 2 == False);
  • If(Hero Of(Event Player) == Hero(Хандзо));
  • Big Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Jump))));
  • Else If(Hero Of(Event Player) == Hero(Батист));
  • Big Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Crouch))));
  • Else;
  • Big Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))));
  • End;
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Ability 1 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Все;
  • }
  • conditions
  • {
  • Ability Cooldown(Event Player, Button(Ability 1)) > Event Player.ability_1_array[False];
  • Hero Of(Event Player) != Hero(Лусио);
  • Hero Of(Event Player) != Hero(Уинстон);
  • Hero Of(Event Player) != Hero(Таран);
  • }
  • actions
  • {
  • Set Ability Cooldown(Event Player, Button(Ability 1), Event Player.ability_1_array[Event Player.ability_1 - 1]);
  • }
  • }
  • rule("Upgrade | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_ability_2[False], Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.ability_2 == 5);
  • Small Message(Event Player, Custom String("you already have the max level!"));
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.money >= Event Player.price[6]);
  • Event Player.ability_2 += 1;
  • Event Player.ability_3 += 0.500;
  • Event Player.money -= Event Player.price[6];
  • Event Player.price[6] += 3;
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.circle_ability_2[False], 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 65);
  • Else;
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.ability_2 < 5);
  • If(Hero Of(Event Player) == Hero(Бастион));
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))));
  • Else;
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Ability 2))));
  • End;
  • Else;
  • Modify Player Variable At Index(Event Player, price, 6, Remove From Array By Value, 24);
  • If(Hero Of(Event Player) == Hero(Бастион));
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))));
  • Else;
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Ability 2))));
  • End;
  • End;
  • If(Array Contains(Global.ability_3_hud, Hero Of(Event Player)) && (Event Player.ability_1 + Event Player.ability_2) % 2 == False);
  • If(Hero Of(Event Player) == Hero(Хандзо));
  • Big Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Jump))));
  • Else If(Hero Of(Event Player) == Hero(Батист));
  • Big Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Crouch))));
  • Else;
  • Big Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))));
  • End;
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Ability 2 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Все;
  • }
  • conditions
  • {
  • Ability Cooldown(Event Player, Button(Ability 2)) > Event Player.ability_2_array[False];
  • Hero Of(Event Player) != Hero(Ориса);
  • }
  • actions
  • {
  • Set Ability Cooldown(Event Player, Button(Ability 2), Event Player.ability_2_array[Event Player.ability_2 - 1]);
  • }
  • }
  • rule("Ability 3 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Ability Cooldown(Event Player, Button(Secondary Fire)) > Event Player.ability_3_array[False];
  • Array Contains(Global.ability_3_hud, Hero Of(Event Player)) == True;
  • Hero Of(Event Player) != Hero(Бригитта);
  • Hero Of(Event Player) != Hero(D.Va);
  • Hero Of(Event Player) != Hero(Ориса);
  • Hero Of(Event Player) != Hero(Батист);
  • }
  • actions
  • {
  • If(Event Player.ability_3 < 2);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), Event Player.ability_3_array[False]);
  • Else If(Event Player.ability_3 < 3);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), Event Player.ability_3_array[1]);
  • Else If(Event Player.ability_3 < 4);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), Event Player.ability_3_array[2]);
  • Else If(Event Player.ability_3 < 5);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), Event Player.ability_3_array[3]);
  • Else;
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), Event Player.ability_3_array[4]);
  • End;
  • }
  • }
  • rule("Upgrade | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_ultimate[False], Event Player) <= 1.200;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.ultimate == 5);
  • Small Message(Event Player, Custom String("you already have the max level!"));
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.money >= Event Player.price[7]);
  • Event Player.ultimate += 1;
  • Event Player.money -= Event Player.price[7];
  • Event Player.price[7] += 3;
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Global.circle_ultimate[False], 2.400);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 65);
  • Else;
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.ultimate < 5);
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Ultimate))));
  • Else;
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Ultimate))));
  • Modify Player Variable At Index(Event Player, price, 7, Remove From Array By Value, 24);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Ultimate | Charge")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Ultimate Charge Percent(Event Player) < 100;
  • Is Using Ultimate(Event Player) == False;
  • Is Duplicating(Event Player) == False;
  • }
  • actions
  • {
  • Abort If(Hero Of(Event Player) == Hero(D.Va) && Is In Alternate Form(Event Player));
  • If(Team Of(Event Player) == Team 1);
  • Wait(Array(False, 5, 4.250, 3.500, 2.750, 2)[Event Player.ultimate], Abort When False);
  • Else;
  • Wait(Array(False, 4, 3.400, 2.800, 2.200, 1.600)[Event Player.ultimate], Abort When False);
  • End;
  • Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player) + 5);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("| | | | | | | | | | Ana | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Ana | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ана;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Ана);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(16, 14, 12, 10, 8);
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • }
  • }
  • rule("Ana | Projectile Speed")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ана;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Set Projectile Speed(Event Player, Event Player.projectiles_var / 1.200);
  • Wait(0.300, Ignore Condition);
  • Set Projectile Speed(Event Player, Event Player.projectiles_var);
  • }
  • }
  • rule("Ana | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Ана;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 1);
  • }
  • actions
  • {
  • Wait(3, Ignore Condition);
  • Clear Status(Victim, Asleep);
  • }
  • }
  • rule("Ana | Ability 2")
  • {
  • event
  • {
  • Player took damage;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Hero Of(Attacker) == Hero(Ана);
  • Event Ability == Button(Ability 2);
  • }
  • actions
  • {
  • Global.biotic_grenade = True;
  • Small Message(Event Player, Custom String("damage: -25%"));
  • Wait(4, Ignore Condition);
  • Global.biotic_grenade = False;
  • }
  • }
  • rule("Ana | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ана;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ultimate(Event Player) == True;
  • Count Of(Filtered Array(All Living Players(Team 1), Has Spawned(Current Array Element) && !Is Dummy Bot(Current Array Element)))
  • >= 2;
  • }
  • actions
  • {
  • Event Player.closest_to_reticle = Player Closest To Reticle(Event Player, Team 1);
  • Small Message(Event Player.closest_to_reticle, Custom String("healing: {0} hp/sec", Event Player.heal_var * 0.300));
  • "healing: 30 hp/sec"
  • Start Heal Over Time(Event Player.closest_to_reticle, Event Player, 8, Event Player.heal_var * 0.300);
  • }
  • }
  • rule("Ana | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ана;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Count Of(Filtered Array(All Living Players(Team 1), Has Spawned(Current Array Element))) == 1;
  • Ultimate Charge Percent(Event Player) == 100;
  • Is Button Held(Event Player, Ultimate) == True;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Frozen) == False;
  • }
  • actions
  • {
  • Set Ultimate Charge(Event Player, False);
  • Create Dummy Bot(Hero(Ана), Team 1, 6, Vector(False, 100, False), Null);
  • Set Invisible(Players In Slot(6, Team 1), All);
  • Set Status(Players In Slot(6, Team 1), Null, Phased Out, 0.500);
  • Attach Players(Players In Slot(6, Team 1), Event Player, Vector(False, 1.500, False));
  • Wait(0.100, Ignore Condition);
  • Set Facing(Players In Slot(6, Team 1), Down, To World);
  • Set Ultimate Charge(Players In Slot(6, Team 1), 100);
  • Wait(0.100, Ignore Condition);
  • Press Button(Players In Slot(6, Team 1), Ultimate);
  • Wait(0.250, Ignore Condition);
  • Teleport(Players In Slot(6, Team 1), Vector(False, 10000, False));
  • Kill(Players In Slot(6, Team 1), Null);
  • Wait(4, Ignore Condition);
  • Set Ultimate Charge(Event Player, False);
  • Wait(4, Ignore Condition);
  • Set Ultimate Charge(Event Player, False);
  • Destroy Dummy Bot(Team 1, 6);
  • }
  • }
  • disabled rule("| | | | | | | | | | Ashe | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Ashe | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эш;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Эш);
  • }
  • actions
  • {
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(18, 15.750, 13.500, 11.250, 9);
  • Else;
  • Event Player.ability_1_array = Array(12, 10.500, 9, 7.500, 6);
  • End;
  • Event Player.ability_2_array = Array(13, 11, 9, 7, 5);
  • }
  • }
  • disabled rule("| | | | | | | | | | Baptiste | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Baptiste | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Батист;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Батист);
  • }
  • actions
  • {
  • Set Ammo(Event Player, False, 30);
  • Set Max Ammo(Event Player, False, 30);
  • Set Ammo(Event Player, 1, 12);
  • Set Max Ammo(Event Player, 1, 12);
  • Event Player.ability_1_array = Array(15, 12.750, 10.500, 8.250, 6);
  • Event Player.ability_2_array = Array(28, 24.500, 21, 17.500, 14);
  • Abort If(!Is In Setup);
  • Event Player.ability_cooldown = 12;
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown * 0.500, To Nearest)], Null, Null, Top, 5, White, White, White, Visible To and String,
  • Default Visibility);
  • }
  • }
  • rule("Baptiste | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Батист;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • "healing: 400 (80 hp/sec)"
  • Start Heal Over Time(Players Within Radius(Event Player, 10, Team 1, Surfaces), Event Player, 5, Event Player.heal_var * 0.620);
  • }
  • }
  • rule("Baptiste | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Has Status(Event Player, Unkillable) == True;
  • }
  • actions
  • {
  • Set Status(Event Player, Event Player, Invincible, 0.100);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • Clear Status(Event Player, Invincible);
  • }
  • }
  • rule("Baptiste | Ability 3 | Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Батист;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Vertical Speed Of(Event Player) > 7.500;
  • Event Player.ability_cooldown == 12;
  • }
  • actions
  • {
  • Event Player.ability_cooldown = False;
  • Set Crouch Enabled(Event Player, False);
  • If(Event Player.ability_3 < 2);
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 12, 0.750, Destination and Rate);
  • Else If(Event Player.ability_3 < 3);
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 12, 0.857, Destination and Rate);
  • Else If(Event Player.ability_3 < 4);
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 12, 1, Destination and Rate);
  • Else If(Event Player.ability_3 < 5);
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 12, 1.200, Destination and Rate);
  • Else;
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 12, 1.500, Destination and Rate);
  • End;
  • }
  • }
  • rule("Baptiste | Ability 3 | Stop Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Батист;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown == 12;
  • }
  • actions
  • {
  • Set Crouch Enabled(Event Player, True);
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • }
  • }
  • disabled rule("| | | | | | | | | | Bastion | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Bastion | HUD")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Бастион);
  • Global.player_brigitte != Event Player;
  • }
  • actions
  • {
  • Abort If(!Is In Setup);
  • Event Player.special_ability_1 = 10;
  • Event Player.ability_cooldown = 4;
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("     "), Custom String("▒    "), Custom String("▒▒   "), Custom String("▒▒▒  "),
  • Custom String("▒▒▒▒ "), Custom String("▒▒▒▒▒"))[Round To Integer(Event Player.special_ability_1 * 0.500, To Nearest)], Null,
  • Null, Top, 4.500, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown * 1.500, To Nearest)], Null, Null, Top, 5, White, White, White, Visible To and String,
  • Default Visibility);
  • }
  • }
  • rule("Bastion | Alternate Form")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • Is In Alternate Form(Event Player) == True;
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • Set Damage Received(Event Player, 125);
  • }
  • }
  • rule("Bastion | Not Alternate Form")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • Is In Alternate Form(Event Player) == False;
  • Is Using Ability 1(Event Player) == False;
  • Global.player_brigitte != Event Player;
  • }
  • actions
  • {
  • Set Damage Received(Event Player, 100);
  • }
  • }
  • rule("Bastion | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is In Alternate Form(Event Player) == True;
  • Is Using Ability 1(Event Player) == False;
  • Is Using Ultimate(Event Player) == False;
  • Is Button Held(Event Player, Interact) == True;
  • Event Player.special_ability_1 == 10;
  • }
  • actions
  • {
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • Small Message(Event Player, Custom String("invincible: 2 sec"));
  • Set Status(Event Player, Event Player, Invincible, 2);
  • Set Status(Event Player, Event Player, Burning, 2);
  • Chase Player Variable Over Time(Event Player, special_ability_1, False, 2, Destination and Duration);
  • Wait(2, Ignore Condition);
  • "20 - 8 sec"
  • Chase Player Variable At Rate(Event Player, special_ability_1, 10, Array(False, 0.500, 0.588, 0.714, 0.909, 1.250)
  • [Event Player.ability_1], Destination and Rate);
  • }
  • }
  • rule("Bastion | Ability 1 | Message")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is In Alternate Form(Event Player) == True;
  • Is Using Ability 1(Event Player) == False;
  • Is Using Ultimate(Event Player) == False;
  • Event Player.special_ability_1 == 10;
  • }
  • actions
  • {
  • Wait(4, Abort When False);
  • Small Message(Event Player, Custom String("press [{0}] to become invincible for 2 sec", Input Binding String(Button(Interact))));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Bastion | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Is Firing Secondary(Event Player) == True;
  • Global.player_brigitte != Event Player;
  • }
  • actions
  • {
  • "4 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, False, 1, Destination and Rate);
  • Small Message(Event Player, Custom String("speed: +15%"));
  • Set Move Speed(Event Player, Event Player.speed_var * 1.150);
  • }
  • }
  • rule("Bastion | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Is Firing Secondary(Event Player) == False;
  • Event Player.ability_cooldown < 4;
  • Global.player_brigitte != Event Player;
  • }
  • actions
  • {
  • "16 - 8 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 4, Array(False, 0.250, 0.286, 0.333, 0.400, 0.500)
  • [Event Player.ability_2], Destination and Rate);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Bastion | Ability 2 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_cooldown == False;
  • Global.player_brigitte != Event Player;
  • }
  • actions
  • {
  • Disallow Button(Event Player, Secondary Fire);
  • Set Secondary Fire Enabled(Event Player, False);
  • }
  • }
  • rule("Bastion | Ability 2 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бастион;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown > 0.333;
  • Global.player_brigitte != Event Player;
  • }
  • actions
  • {
  • Allow Button(Event Player, Secondary Fire);
  • Set Secondary Fire Enabled(Event Player, True);
  • }
  • }
  • disabled rule("| | | | | | | | | | Brigitte | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Brigitte | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Бригитта);
  • }
  • actions
  • {
  • Event Player.ability_cooldown = False;
  • Event Player.ability_count = 3;
  • Event Player.ability_1_array = Array(12, 10.500, 9, 7.500, 6);
  • Abort If(!Is In Setup);
  • Global.player_brigitte = Event Player;
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□ □ □"), Custom String("{0} □ □", Ability Icon String(Hero(Бригитта), Button(
  • Ability 2))), Custom String("{0} {1} □", Ability Icon String(Hero(Бригитта), Button(Ability 2)), Ability Icon String(Hero(
  • Бригитта), Button(Ability 2))), Custom String("{0} {1} {2}", Ability Icon String(Hero(Бригитта), Button(Ability 2)),
  • Ability Icon String(Hero(Бригитта), Button(Ability 2)), Ability Icon String(Hero(Бригитта), Button(Ability 2))))
  • [Event Player.ability_count], Null, Null, Top, 5, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown / (2 - 0.250 * (Event Player.ability_2 - 1)), To Nearest)], Null, Null, Top, 6, White, White,
  • White, Visible To and String, Default Visibility);
  • Disallow Button(Event Player, Ability 2);
  • }
  • }
  • rule("Brigitte | Self-Healing")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • Event Damage > Event Player.damage_var * 0.500;
  • }
  • actions
  • {
  • "90 hp / 6 sec"
  • Start Heal Over Time(Event Player, Event Player, 6, Event Player.damage_var * 0.150);
  • Wait(1, Ignore Condition);
  • }
  • }
  • rule("Brigitte | Ability 2 | Modify Var (+1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • ((Event Player.ability_2 == 1 && Event Player.ability_cooldown == 12) || (
  • Event Player.ability_2 == 2 && Event Player.ability_cooldown == 10.500) || (
  • Event Player.ability_2 == 3 && Event Player.ability_cooldown == 9) || (
  • Event Player.ability_2 == 4 && Event Player.ability_cooldown == 7.500) || (
  • Event Player.ability_2 == 5 && Event Player.ability_cooldown == 6)) == True;
  • Event Player.ability_count <= 2;
  • }
  • actions
  • {
  • Event Player.ability_count += 1;
  • Event Player.ability_cooldown = False;
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • }
  • }
  • rule("Brigitte | Ability 2 | Modify Var (-1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Button Held(Event Player, Ability 2) == True;
  • Event Player.ability_count > False;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Frozen) == False;
  • }
  • actions
  • {
  • Event Player.ability_count -= 1;
  • Small Message(Event Player, Custom String("health: +25%"));
  • Play Effect(Event Player, Good Explosion, Yellow, Event Player, 0.500);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 80);
  • Heal(Event Player, Event Player, Max Health(Event Player) * 0.250);
  • }
  • }
  • rule("Brigitte | Ability 2 | Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_count < 3;
  • }
  • actions
  • {
  • "12 - 6 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, Array(False, 12, 10.500, 9, 7.500, 6)[Event Player.ability_2], 1,
  • Destination and Rate);
  • }
  • }
  • rule("Brigitte | Ability 2 | Stop Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • Event Player.ability_count == 3;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • }
  • }
  • rule("Brigitte | Ability 2 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_count > False;
  • }
  • actions
  • {
  • Set Ability 2 Enabled(Event Player, True);
  • }
  • }
  • rule("Brigitte | Ability 2 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_count == False;
  • }
  • actions
  • {
  • Set Ability 2 Enabled(Event Player, False);
  • }
  • }
  • rule("Brigitte | Ability 3 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • Ability Cooldown(Event Player, Button(Primary Fire)) > False;
  • }
  • actions
  • {
  • If(Event Player.ability_3 < 2);
  • Set Ability Cooldown(Event Player, Button(Primary Fire), 12);
  • Else If(Event Player.ability_3 < 3);
  • Set Ability Cooldown(Event Player, Button(Primary Fire), 10.500);
  • Else If(Event Player.ability_3 < 4);
  • Set Ability Cooldown(Event Player, Button(Primary Fire), 9);
  • Else If(Event Player.ability_3 < 5);
  • Set Ability Cooldown(Event Player, Button(Primary Fire), 7.500);
  • Else;
  • Set Ability Cooldown(Event Player, Button(Primary Fire), 6);
  • End;
  • }
  • }
  • rule("Brigitte | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Set Move Speed(Event Player, Event Player.speed_var / 1.300);
  • Wait(10, Ignore Condition);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Brigitte | Shield")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • (Is Firing Secondary(Event Player) && Is In View Angle(Event Player, Players On Hero(Hero(Райнхардт), Team 2), 45)) == True;
  • Is Hero Being Played(Hero(Райнхардт), Team 2) == True;
  • }
  • actions
  • {
  • Set Damage Received(Event Player, 75);
  • }
  • }
  • rule("Brigitte | Shield")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Бригитта;
  • }
  • conditions
  • {
  • (!Is Firing Secondary(Event Player) || (Is Firing Secondary(Event Player) && !Is In View Angle(Event Player, Players On Hero(Hero(
  • Райнхардт), Team 2), 45))) == True;
  • Is Hero Being Played(Hero(Райнхардт), Team 2) == True;
  • }
  • actions
  • {
  • Set Damage Received(Event Player, 100);
  • }
  • }
  • disabled rule("| | | | | | | | | | Doom | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Doom | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Кулак Смерти;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Кулак Смерти);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(10, 8.750, 7.500, 6.250, 5);
  • Event Player.ability_2_array = Array(10, 8.750, 7.500, 6.250, 5);
  • Event Player.ability_3_array = Array(10, 8.750, 7.500, 6.250, 5);
  • }
  • }
  • rule("Doom | Knockback")
  • {
  • event
  • {
  • Player Dealt Knockback;
  • Team 1;
  • Кулак Смерти;
  • }
  • conditions
  • {
  • (Event Ability == Button(Ultimate) || Event Ability == Button(Ability 2)) == True;
  • }
  • actions
  • {
  • If(Event Ability == Button(Ultimate));
  • Set Status(Victim, Event Player, Knocked Down, 2.750);
  • Else;
  • Set Move Speed(Victim, Victim.speed_var * 0.700);
  • Wait(0.500, Ignore Condition);
  • Set Move Speed(Victim, Victim.speed_var);
  • End;
  • }
  • }
  • disabled rule("| | | | | | | | | | Dva | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("D.Va | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • D.Va;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(D.Va);
  • }
  • actions
  • {
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(12, 10.500, 9, 7.500, 6);
  • Else;
  • Event Player.ability_1_array = Array(10, 8.750, 7.500, 6.250, 5);
  • End;
  • Event Player.ability_2_array = Array(12, 10, 8, 6, 4);
  • }
  • }
  • rule("D.Va | Primary Fire")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • D.Va;
  • }
  • conditions
  • {
  • Is Firing Primary(Event Player) == True;
  • Is Using Ability 1(Event Player) == False;
  • Is In Alternate Form(Event Player) == False;
  • }
  • actions
  • {
  • "-20% (not -40%)"
  • Set Move Speed(Event Player, Event Player.speed_var / 0.750);
  • }
  • }
  • rule("D.Va | Primary Fire")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • D.Va;
  • }
  • conditions
  • {
  • (!Is Firing Primary(Event Player) || Is Using Ability 1(Event Player)) == True;
  • }
  • actions
  • {
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("D.Va | Ability 3 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • D.Va;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == False;
  • Ability Cooldown(Event Player, Button(Secondary Fire)) != False;
  • }
  • actions
  • {
  • If(Event Player.ability_3 < 2);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 24);
  • Else If(Event Player.ability_3 < 3);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 21);
  • Else If(Event Player.ability_3 < 4);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 18);
  • Else If(Event Player.ability_3 < 5);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 15);
  • Else;
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 12);
  • End;
  • }
  • }
  • rule("D.Va | Ultimate | Charge")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • D.Va;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is In Alternate Form(Event Player) == True;
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Wait(Array(False, 4, 3.400, 2.800, 2.200, 1.600)[Event Player.ultimate], Abort When False);
  • Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player) + 10);
  • Loop If Condition Is True;
  • }
  • }
  • rule("D.Va | Ultimate | Charge")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • D.Va;
  • }
  • conditions
  • {
  • Is In Alternate Form(Event Player) == False;
  • }
  • actions
  • {
  • Set Ultimate Charge(Event Player, False);
  • }
  • }
  • rule("D.Va | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ultimate(Players On Hero(Hero(D.Va), Team 1)) == True;
  • Event Player.boss_barrier > False;
  • }
  • actions
  • {
  • Wait(2, Abort When False);
  • Abort If(Event Player.boss_barrier <= False);
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 80);
  • Small Message(Event Player, Custom String("{0} is disabled!", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))));
  • Set Secondary Fire Enabled(Event Player, False);
  • Wait(1, Ignore Condition);
  • Small Message(Event Player, Custom String("{0} is enabled!", Ability Icon String(Hero Of(Event Player), Button(Secondary Fire))));
  • Set Secondary Fire Enabled(Event Player, True);
  • }
  • }
  • disabled rule("| | | | | | | | | | Echo | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Echo | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Эхо);
  • }
  • actions
  • {
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(18, 15.750, 13.500, 11.250, 9);
  • Else;
  • Event Player.ability_1_array = Array(15, 13.125, 11.250, 9.375, 7.500);
  • End;
  • Event Player.ability_2_array = Array(20, 17, 14, 11, 8);
  • Event Player.ability_3_array = Array(10, 8.500, 7, 5.500, 4);
  • Abort If(!Is In Setup);
  • Event Player.ability_cooldown = 4;
  • }
  • }
  • rule("Echo | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Wait(0.175, Ignore Condition);
  • Press Button(Event Player, Ability 1);
  • }
  • }
  • rule("Echo | Glide")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 1(Event Player) == False;
  • Is Button Held(Event Player, Jump) == True;
  • Altitude Of(Event Player) >= 2.750;
  • }
  • actions
  • {
  • "4 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, False, 1, Destination and Rate);
  • }
  • }
  • rule("Echo | Glide")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • (Is On Ground(Event Player) || Is Using Ability 1(Event Player) || (!Is Using Ability 1(Event Player) && !Is Button Held(
  • Event Player, Jump))) == True;
  • }
  • actions
  • {
  • "12 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 4, 0.333, Destination and Rate);
  • }
  • }
  • rule("Echo | Glide | Disable Jump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown == False;
  • }
  • actions
  • {
  • Disallow Button(Event Player, Jump);
  • }
  • }
  • rule("Echo | Glide | Enable Jump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • (Is Using Ability 1(Event Player) || Event Player.ability_cooldown >= 0.400) == True;
  • }
  • actions
  • {
  • Allow Button(Event Player, Jump);
  • }
  • }
  • rule("Echo | Ultimate | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • Is Duplicating(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(14, 12, 10, 8, 6);
  • Event Player.ability_2_array = Array(10, 8.500, 7, 5.500, 4);
  • }
  • }
  • rule("Echo | Ultimate | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • Is Duplicating(Event Player) == True;
  • Event Ability == Button(Ability 1);
  • Event Damage >= Event Player.damage_var * 2.900;
  • }
  • actions
  • {
  • Set Status(Victim, Event Player, Knocked Down, 2);
  • }
  • }
  • rule("Echo | Ultimate | Ability 2")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • Is Duplicating(Event Player) == True;
  • Event Ability == Button(Ability 2);
  • }
  • actions
  • {
  • Set Status(Victim, Event Player, Burning, 2);
  • Start Damage Over Time(Victim, Event Player, 2, Event Player.damage_var * 0.750);
  • }
  • }
  • rule("Echo | Ultimate | Charge")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Эхо;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Duplicating(Event Player) == True;
  • }
  • actions
  • {
  • Wait(2, Abort When False);
  • Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player) + 4);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("| | | | | | | | | | Genji | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Genji | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Гэндзи;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Гэндзи);
  • }
  • actions
  • {
  • Set Jump Vertical Speed(Event Player, 100);
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(18, 15.750, 13.500, 11.250, 9);
  • Event Player.ability_2_array = Array(18, 15.750, 13.500, 11.250, 9);
  • Else;
  • Event Player.ability_1_array = Array(16, 14, 12, 10, 8);
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • End;
  • }
  • }
  • rule("Genji | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Гэндзи;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Add Health Pool To Player(Event Player, Health, Max Health(Event Player) * 1.250, False, True);
  • Event Player.hud_or_effect = Last Created Health Pool;
  • Small Message(Event Player, Custom String("health: +125%"));
  • Small Message(Event Player, Custom String("damage: +100%"));
  • Set Damage Dealt(Event Player, Event Player.damage_var * 2);
  • Wait(7.500, Ignore Condition);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • Remove Health Pool From Player(Event Player.hud_or_effect);
  • }
  • }
  • disabled rule("| | | | | | | | | | Hanzo | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Hanzo | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Хандзо;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Хандзо);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(16, 14, 12, 10, 8);
  • Event Player.ability_2_array = Array(15, 12.750, 10.500, 8.250, 6);
  • }
  • }
  • rule("Hanzo | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Хандзо;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 1);
  • }
  • actions
  • {
  • Abort If(Is Using Ability 1(Victim));
  • Set Status(Victim, Event Player, Stunned, 0.750);
  • }
  • }
  • rule("Hanzo | Ability 3 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Хандзо;
  • }
  • conditions
  • {
  • Ability Cooldown(Event Player, Button(Jump)) > False;
  • }
  • actions
  • {
  • If(Event Player.ability_3 < 2);
  • Set Ability Cooldown(Event Player, Button(Jump), 16);
  • Else If(Event Player.ability_3 < 3);
  • Set Ability Cooldown(Event Player, Button(Jump), 14);
  • Else If(Event Player.ability_3 < 4);
  • Set Ability Cooldown(Event Player, Button(Jump), 12);
  • Else If(Event Player.ability_3 < 5);
  • Set Ability Cooldown(Event Player, Button(Jump), 10);
  • Else;
  • Set Ability Cooldown(Event Player, Button(Jump), 8);
  • End;
  • }
  • }
  • rule("Hanzo | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Хандзо;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Rooted, 2.500);
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • Press Button(Event Player, Ultimate);
  • Wait(1, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • Press Button(Event Player, Ultimate);
  • Wait(5, Ignore Condition);
  • }
  • }
  • disabled rule("| | | | | | | | | | Junk | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Junkrat | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Крысавчик;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Крысавчик);
  • }
  • actions
  • {
  • Event Player.ability_count = 2;
  • Event Player.ability_2_array = Array(12, 10, 8, 6, 4);
  • Abort If(!Is In Setup);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□ □"), Custom String("{0} □", Ability Icon String(Hero(Крысавчик), Button(
  • Ability 1))), Custom String("{0} {1}", Ability Icon String(Hero(Крысавчик), Button(Ability 1)), Ability Icon String(Hero(
  • Крысавчик), Button(Ability 1))))[Event Player.ability_count], Null, Null, Top, 5, White, White, White, Visible To and String,
  • Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown / (2 - 0.250 * (Event Player.ability_1 - 1)), To Nearest)], Null, Null, Top, 6, White, White,
  • White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Junkrat | Ability 1 | Modify Var (+1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Крысавчик;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • ((Event Player.ability_1 == 1 && Event Player.ability_cooldown == 12) || (
  • Event Player.ability_1 == 2 && Event Player.ability_cooldown == 10.500) || (
  • Event Player.ability_1 == 3 && Event Player.ability_cooldown == 9) || (
  • Event Player.ability_1 == 4 && Event Player.ability_cooldown == 7.500) || (
  • Event Player.ability_1 == 5 && Event Player.ability_cooldown == 6)) == True;
  • Event Player.ability_count <= 1;
  • }
  • actions
  • {
  • Event Player.ability_count += 1;
  • Event Player.ability_cooldown = False;
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • }
  • }
  • rule("Junkrat | Ability 1 | Modify Var (-1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Крысавчик;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.ability_count -= 1;
  • }
  • }
  • rule("Junkrat | Ability 1 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Крысавчик;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_count > False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • rule("Junkrat | Ability 1 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Крысавчик;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_count == False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Junkrat | Ability 1 | Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Крысавчик;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_count < 2;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, ability_cooldown, Array(False, 12, 10.500, 9, 7.500, 6)[Event Player.ability_1], 1,
  • Destination and Rate);
  • }
  • }
  • rule("Junkrat | Ability 1 | Stop Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Крысавчик;
  • }
  • conditions
  • {
  • Event Player.ability_count == 2;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • }
  • }
  • disabled rule("| | | | | | | | | | Lucio | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Lucio | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Лусио;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Лусио);
  • }
  • actions
  • {
  • Event Player.ability_2_array = Array(15, 12.750, 10.500, 8.250, 6);
  • Event Player.ability_3_array = Array(10, 8.500, 7, 5.500, 4);
  • Abort If(!Is In Setup);
  • Event Player.ability_cooldown = 10;
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown * 0.600, To Nearest)], Null, Null, Top, 5, White, White, White, Visible To and String,
  • Default Visibility);
  • }
  • }
  • rule("Lucio | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Лусио;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Is In Alternate Form(Event Player) == True;
  • }
  • actions
  • {
  • "10 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, False, 1, Destination and Rate);
  • }
  • }
  • rule("Lucio | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Лусио;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Is In Alternate Form(Event Player) == False;
  • Event Player.ability_cooldown < 10;
  • }
  • actions
  • {
  • "20 - 10 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 10, Array(False, 0.500, 0.571, 0.667, 0.800, 1)
  • [Event Player.ability_1], Destination and Rate);
  • }
  • }
  • rule("Lucio | Ability 1 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Лусио;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_cooldown == False;
  • }
  • actions
  • {
  • Press Button(Event Player, Ability 1);
  • Wait(0.100, Ignore Condition);
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Lucio | Ability 1 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Лусио;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown >= 1;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • disabled rule("| | | | | | | | | | Mccree | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Mccree | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Маккри;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Маккри);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(8, 7, 6, 5, 4);
  • Event Player.ability_2_array = Array(15, 12.750, 10.500, 8.250, 6);
  • }
  • }
  • rule("Mccree | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Маккри;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • Ability Cooldown(Event Player, Button(Ability 1)) != False;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("speed: +10%"));
  • Set Move Speed(Event Player, Event Player.speed_var * 1.100);
  • Wait(2, Ignore Condition);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Mccree | Ability 2")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Маккри;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 2);
  • }
  • actions
  • {
  • Set Status(Victim, Event Player, Stunned, 1);
  • }
  • }
  • rule("Mccree | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Маккри;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Set Move Speed(Event Player, Event Player.speed_var / 0.300);
  • Wait(0.050, Ignore Condition);
  • Loop If Condition Is True;
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Mei | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Mei | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мэй;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Мэй);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(16, 14, 12, 10, 8);
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • }
  • }
  • rule("Mei | Primary Fire")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мэй;
  • }
  • conditions
  • {
  • Is On Ground(Event Player) == True;
  • Is Firing Primary(Event Player) == True;
  • Y Component Of(Facing Direction Of(Event Player)) <= -0.300;
  • }
  • actions
  • {
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 80);
  • Small Message(Event Player, Custom String("speed: +10%"));
  • Set Move Speed(Event Player, Event Player.speed_var * 1.100);
  • }
  • }
  • rule("Mei | Primary Fire")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мэй;
  • }
  • conditions
  • {
  • (Is In Air(Event Player) || !Is Firing Primary(Event Player) || Y Component Of(Facing Direction Of(Event Player)) > -0.300)
  • == True;
  • }
  • actions
  • {
  • Set Move Speed(Event Player, Event Player.speed_var);
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 60);
  • }
  • }
  • rule("Mei | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мэй;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Start Heal Over Time(Event Player, Event Player, 4, Max Health(Event Player) * 0.500);
  • }
  • }
  • rule("Mei | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мэй;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • Ability Cooldown(Event Player, Button(Ability 1)) != False;
  • }
  • actions
  • {
  • Play Effect(All Players(All Teams), Ring Explosion, Aqua, World Vector Of(Vector(False, 0.500, False), Event Player,
  • Rotation And Translation), 12);
  • Play Effect(All Players(All Teams), Ring Explosion, White, World Vector Of(Vector(False, 0.500, False), Event Player,
  • Rotation And Translation), 9.600);
  • Set Status(Players Within Radius(Event Player, 6, Team 2, Surfaces And All Barriers), Event Player, Frozen, 1.250);
  • }
  • }
  • disabled rule("| | | | | | | | | | Mercy | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Mercy | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ангел;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Ангел);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Current Map != Map(Аюттайя) ? Array(6, 5, 4, 3, 2) : Array(4.500, 3.750, 3, 2.250, 1.500);
  • Event Player.ability_2_array = Array(130, 110, 90, 70, 50);
  • }
  • }
  • rule("Mercy | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ангел;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • Ability Cooldown(Event Player, Button(Ability 2)) <= 15;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("{0} is disabled!", Ability Icon String(Hero Of(Event Player), Button(Ability 2))));
  • Set Ability 2 Enabled(Event Player, False);
  • Wait(15, Ignore Condition);
  • Small Message(Event Player, Custom String("{0} is enabled!", Ability Icon String(Hero Of(Event Player), Button(Ability 2))));
  • Set Ability 2 Enabled(Event Player, True);
  • }
  • }
  • disabled rule("| | | | | | | | | | Moira | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Moira | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мойра;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Мойра);
  • }
  • actions
  • {
  • Event Player.totem_projectile = False;
  • Event Player.use_ability = False;
  • Event Player.ability_1_array = Array(12, 10.500, 9, 7.500, 6);
  • Abort If(!Is In Setup);
  • Event Player.ability_cooldown = 12;
  • Set Ability 2 Enabled(Event Player, False);
  • }
  • }
  • rule("Moira | Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мойра;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == True;
  • Normalized Health(Players On Hero(Hero(Райнхардт), Team 2)) > 0.600;
  • }
  • actions
  • {
  • Set Damage Dealt(Event Player, Event Player.damage_var / 0.700);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • rule("Moira | Totem")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мойра;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.ability_cooldown == 12;
  • Is Button Held(Event Player, Ability 2) == True;
  • (Is Button Held(Event Player, Primary Fire) || Is Button Held(Event Player, Secondary Fire)) == True;
  • Is Alive(Event Player) == True;
  • Is On Ground(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Frozen) == False;
  • }
  • actions
  • {
  • If(Is Button Held(Event Player, Primary Fire));
  • Event Player.use_ability = 1;
  • Else;
  • Event Player.use_ability = 2;
  • End;
  • Event Player.ability_cooldown = False;
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 80);
  • "20 - 10 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 12, Array(0.600, 0.686, 0.800, 0.960, 1.200)
  • [Event Player.ability_2 - 1], Destination and Rate);
  • Event Player.special_ability_1 = Array(World Vector Of(Vector(0.300, 0, 0.300), Event Player, Rotation And Translation),
  • World Vector Of(Vector(0.300, 0, -0.300), Event Player, Rotation And Translation), World Vector Of(Vector(-0.300, 0, -0.300),
  • Event Player, Rotation And Translation), World Vector Of(Vector(-0.300, 0, 0.300), Event Player, Rotation And Translation),
  • World Vector Of(Vector(0.301, 1, 0.300), Event Player, Rotation And Translation), World Vector Of(Vector(0.301, 1, -0.300),
  • Event Player, Rotation And Translation), World Vector Of(Vector(-0.299, 1, -0.300), Event Player, Rotation And Translation),
  • World Vector Of(Vector(-0.299, 1, 0.300), Event Player, Rotation And Translation), World Vector Of(Vector(0, 0, 0),
  • Event Player, Rotation And Translation), World Vector Of(Vector(0.001, 1, 0), Event Player, Rotation And Translation));
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[0], Event Player.special_ability_1[1],
  • White, Visible To);
  • Event Player.hud_or_effect[0] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[1], Event Player.special_ability_1[2],
  • White, Visible To);
  • Event Player.hud_or_effect[1] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[2], Event Player.special_ability_1[3],
  • White, Visible To);
  • Event Player.hud_or_effect[2] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[3], Event Player.special_ability_1[0],
  • White, Visible To);
  • Event Player.hud_or_effect[3] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[0], Event Player.special_ability_1[4],
  • White, Visible To);
  • Event Player.hud_or_effect[4] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[1], Event Player.special_ability_1[5],
  • White, Visible To);
  • Event Player.hud_or_effect[5] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[2], Event Player.special_ability_1[6],
  • White, Visible To);
  • Event Player.hud_or_effect[6] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[3], Event Player.special_ability_1[7],
  • White, Visible To);
  • Event Player.hud_or_effect[7] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[4], Event Player.special_ability_1[5],
  • White, Visible To);
  • Event Player.hud_or_effect[8] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[5], Event Player.special_ability_1[6],
  • White, Visible To);
  • Event Player.hud_or_effect[9] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[6], Event Player.special_ability_1[7],
  • White, Visible To);
  • Event Player.hud_or_effect[10] = Last Created Entity;
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[7], Event Player.special_ability_1[4],
  • White, Visible To);
  • Event Player.hud_or_effect[11] = Last Created Entity;
  • If(Event Player.use_ability == 1);
  • Create Beam Effect(All Players(All Teams), Bad Beam, Event Player.special_ability_1[8], Event Player.special_ability_1[9], Yellow,
  • Visible To);
  • Else;
  • Create Beam Effect(All Players(All Teams), Bad Beam, Event Player.special_ability_1[8], Event Player.special_ability_1[9], Purple,
  • Visible To);
  • End;
  • Event Player.hud_or_effect[12] = Last Created Entity;
  • If(Event Player.use_ability == 1);
  • Create Effect(All Players(All Teams), Ring, Yellow, Event Player.special_ability_1[8], 15, Visible To);
  • Else;
  • Create Effect(All Players(All Teams), Ring, Purple, Event Player.special_ability_1[8], 12, Visible To);
  • End;
  • Event Player.hud_or_effect[13] = Last Created Entity;
  • Wait(10, Ignore Condition);
  • Destroy Effect(Event Player.hud_or_effect[0]);
  • Destroy Effect(Event Player.hud_or_effect[1]);
  • Destroy Effect(Event Player.hud_or_effect[2]);
  • Destroy Effect(Event Player.hud_or_effect[3]);
  • Destroy Effect(Event Player.hud_or_effect[4]);
  • Destroy Effect(Event Player.hud_or_effect[5]);
  • Destroy Effect(Event Player.hud_or_effect[6]);
  • Destroy Effect(Event Player.hud_or_effect[7]);
  • Destroy Effect(Event Player.hud_or_effect[8]);
  • Destroy Effect(Event Player.hud_or_effect[9]);
  • Destroy Effect(Event Player.hud_or_effect[10]);
  • Destroy Effect(Event Player.hud_or_effect[11]);
  • Destroy Effect(Event Player.hud_or_effect[12]);
  • Destroy Effect(Event Player.hud_or_effect[13]);
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 60);
  • If(Event Player.use_ability == 1);
  • Play Effect(All Players(All Teams), Bad Explosion, Yellow, Event Player.special_ability_1[8], 1);
  • Else;
  • Play Effect(All Players(All Teams), Bad Explosion, Purple, Event Player.special_ability_1[8], 1);
  • End;
  • Event Player.use_ability = 0;
  • }
  • }
  • rule("Moira | Totem 1 | Start Heal Over Time")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Hero Being Played(Hero(Мойра), Team 1) == True;
  • Players On Hero(Hero(Мойра), Team 1).use_ability == 1;
  • Distance Between(Event Player, Players On Hero(Hero(Мойра), Team 1).special_ability_1[8]) <= 15;
  • Is In Line of Sight(Event Player, Event Player.special_ability_1[8] + Vector(0, 0.500, 0), Barriers Do Not Block LOS) == True;
  • }
  • actions
  • {
  • "60 hp/sec"
  • Start Heal Over Time(Event Player, Players On Hero(Hero(Мойра), Team 1), 10, Players On Hero(Hero(Мойра), Team 1)
  • .heal_var * 0.600);
  • Event Player.heal_or_damage_over_time = Last Heal Over Time ID;
  • }
  • }
  • rule("Moira | Totem 1 | Stop Heal Over Time")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Hero Being Played(Hero(Мойра), Team 1) == True;
  • (!Is In Line of Sight(Event Player, Players On Hero(Hero(Мойра), Team 1).special_ability_1[8] + Vector(0, 0.500, 0),
  • Barriers Do Not Block LOS) || Distance Between(Event Player, Players On Hero(Hero(Мойра), Team 1).special_ability_1[8])
  • > 15 || Players On Hero(Hero(Мойра), Team 1).use_ability != 1) == True;
  • }
  • actions
  • {
  • Stop Heal Over Time(Event Player.heal_or_damage_over_time);
  • }
  • }
  • rule("Moira | Totem 2 | Debuff")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мойра;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.use_ability == 2;
  • Distance Between(Eye Position(Players On Hero(Hero(Райнхардт), Team 2)), Event Player.special_ability_1[8]) <= 12;
  • Is In Line of Sight(Eye Position(Players On Hero(Hero(Райнхардт), Team 2)), Event Player.special_ability_1[8] + Vector(False,
  • 0.500, False), Barriers Do Not Block LOS) == True;
  • Event Player.totem_projectile == False;
  • }
  • actions
  • {
  • Event Player.totem_projectile = Event Player.special_ability_1[8] + Vector(False, 0.500, False);
  • Create Effect(All Players(All Teams), Good Aura, Purple, Event Player.totem_projectile, 0.250, Visible To Position and Radius);
  • Event Player.hud_or_effect[14] = Last Created Entity;
  • Chase Player Variable At Rate(Event Player, totem_projectile, Eye Position(Players On Hero(Hero(Райнхардт), Team 2)),
  • Players On Hero(Hero(Райнхардт), Team 2).speed_var * 0.165, Destination and Rate);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Moira | Totem 2 | Debuff")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Hero Being Played(Hero(Мойра), Team 1) == True;
  • Distance Between(Players On Hero(Hero(Мойра), Team 1).totem_projectile, Eye Position(Event Player)) <= 1.500;
  • Players On Hero(Hero(Мойра), Team 1).totem_projectile != False;
  • }
  • actions
  • {
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • Wait(0.010, Ignore Condition);
  • Stop Chasing Player Variable(Players On Hero(Hero(Мойра), Team 1), totem_projectile);
  • Destroy Effect(Players On Hero(Hero(Мойра), Team 1).hud_or_effect[14]);
  • Play Effect(All Players(All Teams), Bad Explosion, Purple, Event Player, 1);
  • Damage(Event Player, Players On Hero(Hero(Мойра), Team 1), 75);
  • Set Move Speed(Event Player, Event Player.speed_var * 0.700);
  • Wait(0.250, Ignore Condition);
  • Players On Hero(Hero(Мойра), Team 1).totem_projectile = False;
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Moira | Totem | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мойра;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.ability_cooldown == 12;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • Small Message(Event Player, Custom String("totem is ready!"));
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • }
  • }
  • rule("Moira | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Мойра;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • "90 hp/sec"
  • Set Healing Dealt(Event Player, Event Player.heal_var * 0.560);
  • Wait(6, Ignore Condition);
  • Set Healing Dealt(Event Player, Event Player.heal_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Orisa | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Orisa | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Ориса);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(16, 14, 12, 10, 8);
  • Abort If(!Is In Setup);
  • Disallow Button(Event Player, Ability 2);
  • Disallow Button(Event Player, Secondary Fire);
  • }
  • }
  • rule("Orisa | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("healing: 60% of damage dealt"));
  • }
  • }
  • rule("Orisa | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Heal(Event Player, Null, Event Damage * 0.600);
  • }
  • }
  • rule("Orisa | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Ability Cooldown(Event Player, Button(Ability 2)) == False;
  • Is Button Held(Event Player, Ability 2) == True;
  • Ray Cast Hit Player(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player) * 15,
  • Filtered Array(All Living Players(All Teams), !Is Using Ultimate(Current Array Element)), Event Player, False) != Null;
  • Is Using Ultimate(Event Player) == False;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Frozen) == False;
  • }
  • actions
  • {
  • Event Player.closest_to_reticle = Ray Cast Hit Player(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(
  • Event Player) * 15, Filtered Array(All Living Players(All Teams), !Is Using Ultimate(Current Array Element)), Event Player,
  • False);
  • If((Team Of(Event Player.closest_to_reticle) == Team 1 && Ultimate Charge Percent(Event Player.closest_to_reticle) == 100) || (
  • Team Of(Event Player.closest_to_reticle) == Team 2 && Ultimate Charge Percent(Event Player) == 100));
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 60);
  • Abort;
  • End;
  • Set Ability Cooldown(Event Player, Button(Ability 2), Array(False, 24, 21, 18, 15, 12)[Event Player.ability_2]);
  • Create Effect(Filtered Array(All Players(All Teams),
  • Current Array Element == Event Player || Event Player.closest_to_reticle == Current Array Element), Energy Sound, White,
  • Event Player, 75, Visible To Position and Radius);
  • Event Player.hud_or_effect[False] = Last Created Entity;
  • If(Team Of(Event Player.closest_to_reticle) == Team 1);
  • Create Beam Effect(All Players(All Teams), Good Beam, Event Player, Event Player.closest_to_reticle, Blue,
  • Visible To Position and Radius);
  • Else;
  • Create Beam Effect(All Players(All Teams), Bad Beam, Event Player, Event Player.closest_to_reticle, Blue,
  • Visible To Position and Radius);
  • End;
  • Event Player.hud_or_effect[1] = Last Created Entity;
  • Event Player.special_ability_1 = 6;
  • Chase Player Variable Over Time(Event Player, special_ability_1, False, 6.500, Destination and Duration);
  • Wait(0.250, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Orisa | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Ability Cooldown(Event Player, Button(Ability 2)) != False;
  • Event Player.special_ability_1 != False;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Frozen) == False;
  • }
  • actions
  • {
  • Wait(1.500, Abort When False);
  • If(Team Of(Event Player.closest_to_reticle) == Team 1);
  • Skip If(Ultimate Charge Percent(Event Player) < 5, 15);
  • Play Effect(Event Player.closest_to_reticle, Ring Explosion, White, Event Player.closest_to_reticle, 70);
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 70);
  • Small Message(Event Player, Ultimate Charge Percent(Event Player) >= 10 && Ultimate Charge Percent(Event Player.closest_to_reticle)
  • <= 90 ? Custom String("ultimate: -10%") : Custom String("ultimate: -5%"));
  • Small Message(Event Player.closest_to_reticle, Ultimate Charge Percent(Event Player) >= 10 && Ultimate Charge Percent(
  • Event Player.closest_to_reticle) <= 90 ? Custom String("ultimate: +10%") : Custom String("ultimate: +5%"));
  • Set Ultimate Charge(Event Player.closest_to_reticle, Ultimate Charge Percent(Event Player.closest_to_reticle) + (
  • Ultimate Charge Percent(Event Player) >= 10 && Ultimate Charge Percent(Event Player.closest_to_reticle) <= 90 ? 10 : 5));
  • Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player) - (Ultimate Charge Percent(Event Player)
  • >= 10 && Ultimate Charge Percent(Event Player.closest_to_reticle) <= 90 ? 10 : 5));
  • Else;
  • Skip If(Ultimate Charge Percent(Event Player.closest_to_reticle) < 5, 7);
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 70);
  • Play Effect(Event Player.closest_to_reticle, Debuff Impact Sound, White, Event Player.closest_to_reticle, 70);
  • Small Message(Event Player.closest_to_reticle, Ultimate Charge Percent(Event Player) <= 90 && Ultimate Charge Percent(
  • Event Player.closest_to_reticle) >= 10 ? Custom String("ultimate: -10%") : Custom String("ultimate: -5%"));
  • Small Message(Event Player, Ultimate Charge Percent(Event Player.closest_to_reticle) >= 10 && Ultimate Charge Percent(Event Player)
  • <= 90 ? Custom String("ultimate: +10%") : Custom String("ultimate: +5%"));
  • Set Ultimate Charge(Event Player.closest_to_reticle, Ultimate Charge Percent(Event Player.closest_to_reticle) - (
  • Ultimate Charge Percent(Event Player.closest_to_reticle) >= 10 && Ultimate Charge Percent(Event Player) <= 90 ? 10 : 5));
  • Set Ultimate Charge(Event Player, Ultimate Charge Percent(Event Player) + (Ultimate Charge Percent(Event Player.closest_to_reticle)
  • >= 10 && Ultimate Charge Percent(Event Player) <= 90 ? 10 : 5));
  • End;
  • Loop If Condition Is True;
  • }
  • }
  • rule("Orisa | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Ability Cooldown(Event Player, Button(Ability 2)) == True;
  • (Is Dead(Event Player.closest_to_reticle) || (Team Of(Event Player.closest_to_reticle) == Team 2 && Ultimate Charge Percent(
  • Event Player) == 100) || (Team Of(Event Player.closest_to_reticle) == Team 2 && !Ultimate Charge Percent(Event Player)
  • && Is Button Held(Event Player, Ultimate)) || (Team Of(Event Player.closest_to_reticle) == Team 1 && Ultimate Charge Percent(
  • Event Player.closest_to_reticle) == 100) || Is Dead(Event Player) || Has Status(Event Player, Knocked Down)
  • || Distance Between(Event Player, Event Player.closest_to_reticle) > 20 || !Event Player.special_ability_1) == True;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.hud_or_effect[False]);
  • Destroy Effect(Event Player.hud_or_effect[1]);
  • Stop Chasing Player Variable(Event Player, special_ability_1);
  • Event Player.special_ability_1 = False;
  • }
  • }
  • rule("Orisa | Ability 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Button Held(Event Player, Secondary Fire) == True;
  • Ability Cooldown(Event Player, Button(Secondary Fire)) == False;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Frozen) == False;
  • Event Player.use_ability == False;
  • }
  • actions
  • {
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • Wait(0.090, Ignore Condition);
  • Event Player.special_ability_2 = Eye Position(Event Player);
  • Event Player.orisa_ability_3[False] = Facing Direction Of(Event Player) * 100;
  • Start Rule(Sub0, Do Nothing);
  • If(Event Player.ability_3 < 2);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 20);
  • Else If(Event Player.ability_3 < 3);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 17.500);
  • Else If(Event Player.ability_3 < 4);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 15);
  • Else If(Event Player.ability_3 < 5);
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 12.500);
  • Else;
  • Set Ability Cooldown(Event Player, Button(Secondary Fire), 10);
  • End;
  • Chase Player Variable At Rate(Event Player, special_ability_2, Event Player.orisa_ability_3[1], 25, Destination and Rate);
  • Create Effect(All Players(All Teams), Sphere, Aqua, Event Player.special_ability_2, 0.500, Visible To Position and Radius);
  • Event Player.hud_or_effect[2] = Last Created Entity;
  • Create Effect(All Players(All Teams), Bad Aura, White, Event Player.special_ability_2, 0.500, Visible To Position and Radius);
  • Event Player.hud_or_effect[3] = Last Created Entity;
  • Wait(0.160, Ignore Condition);
  • Event Player.use_ability = True;
  • }
  • }
  • rule("Orisa | Ability 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.use_ability == True;
  • Distance Between(Event Player.special_ability_2, Event Player.orisa_ability_3[1]) <= 0.150;
  • }
  • actions
  • {
  • Event Player.use_ability = False;
  • Stop Chasing Player Variable(Event Player, special_ability_2);
  • Wait(0.450, Ignore Condition);
  • Destroy Effect(Event Player.hud_or_effect[2]);
  • Destroy Effect(Event Player.hud_or_effect[3]);
  • Play Effect(All Players(All Teams), Ring Explosion, Aqua, Event Player.special_ability_2, 12);
  • Play Effect(All Players(All Teams), Ring Explosion, White, Event Player.special_ability_2, 9.600);
  • Play Effect(Event Player, Explosion Sound, White, Event Player.special_ability_2, 80);
  • Set Status(Players Within Radius(Event Player.special_ability_2, 6, Team 2, Surfaces And All Barriers), Event Player, Frozen,
  • 1.250);
  • }
  • }
  • rule("Orisa | Ability 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.use_ability == True;
  • Is Button Held(Event Player, Secondary Fire) == True;
  • Is Alive(Event Player) == True;
  • Has Status(Event Player, Knocked Down) == False;
  • Has Status(Event Player, Frozen) == False;
  • }
  • actions
  • {
  • Event Player.use_ability = False;
  • Stop Chasing Player Variable(Event Player, special_ability_2);
  • Wait(0.450, Ignore Condition);
  • Destroy Effect(Event Player.hud_or_effect[2]);
  • Destroy Effect(Event Player.hud_or_effect[3]);
  • Play Effect(All Players(All Teams), Ring Explosion, Aqua, Event Player.special_ability_2, 12);
  • Play Effect(All Players(All Teams), Ring Explosion, White, Event Player.special_ability_2, 9.600);
  • Play Effect(Event Player, Explosion Sound, White, Event Player.special_ability_2, 80);
  • Set Status(Players Within Radius(Event Player.special_ability_2, 6, Team 2, Surfaces And All Barriers), Event Player, Frozen,
  • 1.250);
  • }
  • }
  • rule("Orisa | Ability 3")
  • {
  • event
  • {
  • Subroutine;
  • Sub0;
  • }
  • actions
  • {
  • Event Player.orisa_ability_3[1] = Ray Cast Hit Position(Event Player.special_ability_2,
  • Event Player.special_ability_2 + Event Player.orisa_ability_3[False], All Players(Team 2), Event Player, False);
  • Wait(0.050, Ignore Condition);
  • Loop If(Entity Exists(Event Player.hud_or_effect[2]));
  • }
  • }
  • rule("Orisa | Primary Fire")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Is Firing Primary(Event Player) == True;
  • }
  • actions
  • {
  • "-15%"
  • Set Move Speed(Event Player, Event Player.speed_var * 1.215);
  • }
  • }
  • rule("Orisa | Primary Fire")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Ориса;
  • }
  • conditions
  • {
  • Is Firing Primary(Event Player) == False;
  • }
  • actions
  • {
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Pharah | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Pharah | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Фарра;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Фарра);
  • }
  • actions
  • {
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(18, 15.750, 13.500, 11.250, 9);
  • Else;
  • Event Player.ability_1_array = Array(12, 10.500, 9, 7.500, 6);
  • End;
  • Event Player.ability_2_array = Array(12, 10.500, 9, 7.500, 6);
  • }
  • }
  • rule("Pharah | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Фарра;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • Cancel Primary Action(Event Player);
  • }
  • }
  • rule("Pharah | Ultimate | Message")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Фарра;
  • }
  • conditions
  • {
  • Is Alive(Event Player) == True;
  • Ultimate Charge Percent(Event Player) == 100;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("press [{0}] to cancel {1} ahead of time", Input Binding String(Button(Interact)),
  • Ability Icon String(Hero(Фарра), Button(Ultimate))));
  • Wait(10, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("| | | | | | | | | | Reaper | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Reaper | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Жнец;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Жнец);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(10, 8.750, 7.500, 6.250, 5);
  • Event Player.ability_2_array = Array(10, 8.750, 7.500, 6.250, 5);
  • }
  • }
  • rule("Reaper | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Жнец;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("damage: +75%"));
  • Set Damage Dealt(Event Player, Event Player.damage_var * 1.750);
  • Wait(3, Ignore Condition);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Rein | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Rein | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Райнхардт);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(14, 12, 10, 8, 6);
  • Event Player.ability_2_array = Array(10, 8.500, 7, 5.500, 4);
  • }
  • }
  • rule("Rein | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • Ability Cooldown(Event Player, Button(Ability 1)) != False;
  • }
  • actions
  • {
  • Event Player.use_ability = False;
  • Small Message(Event Player, Custom String("speed: +20%"));
  • Set Move Speed(Event Player, Event Player.speed_var * 1.200);
  • Wait(4, Ignore Condition);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Rein | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 1);
  • }
  • actions
  • {
  • Set Status(Victim, Event Player, Knocked Down, Event Damage >= Event Player.damage_var * 4.400 ? 2 : 0.500);
  • }
  • }
  • rule("Rein | Ability 1 | Cancel")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Wait(1.500, Abort When False);
  • Event Player.use_ability = True;
  • }
  • }
  • rule("Rein | Ability 1 | Cancel")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • Is Button Held(Event Player, Ability 1) == True;
  • Event Player.use_ability == True;
  • }
  • actions
  • {
  • Event Player.use_ability = False;
  • Cancel Primary Action(Event Player);
  • }
  • }
  • rule("Rein | Ability 2")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 2);
  • }
  • actions
  • {
  • Set Status(Victim, Event Player, Burning, 2);
  • "damage: 300 (150 + 150)"
  • Start Damage Over Time(Victim, Event Player, 2, Event Player.damage_var * 0.750);
  • }
  • }
  • rule("Rein | Shield")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • (Is Firing Secondary(Event Player) && Is In View Angle(Event Player, Players On Hero(Hero(Райнхардт), Team 2), 50)) == True;
  • Is Hero Being Played(Hero(Райнхардт), Team 2) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("dmg. reduction: 40%"));
  • Set Damage Received(Event Player, 60);
  • }
  • }
  • rule("Rein | Shield")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Райнхардт;
  • }
  • conditions
  • {
  • (!Is Firing Secondary(Event Player) || (Is Firing Secondary(Event Player) && !Is In View Angle(Event Player, Players On Hero(Hero(
  • Райнхардт), Team 2), 50))) == True;
  • Is Hero Being Played(Hero(Райнхардт), Team 2) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("dmg. reduction: 0%"));
  • Set Damage Received(Event Player, 100);
  • }
  • }
  • disabled rule("| | | | | | | | | | Roadhog | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Roadhog | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Турбосвин;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Турбосвин);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(20, 17.500, 15, 12.500, 10);
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • Else;
  • Event Player.ability_2_array = Array(14, 12.250, 10.500, 8.750, 7);
  • End;
  • }
  • }
  • rule("Roadhog | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Турбосвин;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 1);
  • }
  • actions
  • {
  • Cancel Primary Action(Event Player);
  • Set Status(Victim, Event Player, Rooted, 1.500);
  • }
  • }
  • rule("Roadhog | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Турбосвин;
  • }
  • conditions
  • {
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("speed: +20%"));
  • Set Move Speed(Event Player, Event Player.speed_var * 1.200);
  • Wait(0.500, Abort When False);
  • Small Message(Event Player, Custom String("health: +50%"));
  • Start Heal Over Time(Event Player, Event Player, 1, Max Health(Event Player) * 0.500);
  • Wait(1.500, Ignore Condition);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Sigma | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Sigma | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Сигма;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Сигма);
  • }
  • actions
  • {
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(20, 17.500, 15, 12.500, 10);
  • Else;
  • Event Player.ability_1_array = Array(16, 14, 12, 10, 8);
  • End;
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • }
  • }
  • rule("Sigma | Ultimate")
  • {
  • event
  • {
  • Player Dealt Knockback;
  • Team 1;
  • Сигма;
  • }
  • conditions
  • {
  • Event Ability == Button(Ultimate);
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Wait(2, Abort When False);
  • "damage: 250"
  • Damage(Victim, Event Player, 200);
  • Set Damage Dealt(Event Player, False);
  • Set Status(Victim, Event Player, Knocked Down, 2);
  • Wait(0.500, Ignore Condition);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Soldier | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Soldier | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Солдат-76;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Солдат-76);
  • }
  • actions
  • {
  • Event Player.ability_2_array = Array(30, 26.250, 22.500, 18.750, 15);
  • Event Player.ability_3_array = Array(10, 8.500, 7, 5.500, 4);
  • Abort If(!Is In Setup);
  • Event Player.ability_cooldown = 10;
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown * 0.600, To Nearest)], Null, Null, Top, 5, White, White, White, Visible To and String,
  • Default Visibility);
  • }
  • }
  • rule("Soldier | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Солдат-76;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • "5 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, False, 2, Destination and Rate);
  • }
  • }
  • rule("Soldier | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Солдат-76;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Is Using Ability 1(Event Player) == False;
  • Event Player.ability_cooldown < 10;
  • }
  • actions
  • {
  • "16 - 8 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 10, Array(False, 0.625, 0.714, 0.833, 1, 1.250)
  • [Event Player.ability_1], Destination and Rate);
  • }
  • }
  • rule("Soldier | Ability 1 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Солдат-76;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown == False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Soldier | Ability 1 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Солдат-76;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown >= 1;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • rule("Soldier | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Солдат-76;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.soldier_ability_2[1] = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Vector(False,
  • -50, False), Null, All Players(All Teams), False);
  • Wait(5, Ignore Condition);
  • All Players(Team 1).soldier_ability_2[False] = False;
  • All Players(Team 1).soldier_ability_2[1] = Null;
  • All Players(Team 1).soldier_ability_2[2] = 10;
  • }
  • }
  • rule("Soldier | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Distance Between(Event Player, Players On Hero(Hero(Солдат-76), Team 1).soldier_ability_2[1]) <= 4.750;
  • Players On Hero(Hero(Солдат-76), Team 1).soldier_ability_2[1] != Null;
  • Altitude Of(Event Player) <= 2.500;
  • }
  • actions
  • {
  • Skip If(Event Player.soldier_ability_2[False], 2);
  • Event Player.soldier_ability_2[False] = True;
  • Event Player.soldier_ability_2[2] = 10;
  • Apply Impulse(Event Player, Up, Event Player.soldier_ability_2[2], To World, Cancel Contrary Motion);
  • Event Player.soldier_ability_2[2] += 3;
  • Wait(0.400, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Soldier | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • (Distance Between(Event Player, Players On Hero(Hero(Солдат-76), Team 1).soldier_ability_2[1]) > 4.750 && Is On Ground(
  • Event Player)) == True;
  • Players On Hero(Hero(Солдат-76), Team 1).soldier_ability_2[1] != Null;
  • Event Player.soldier_ability_2[False] == True;
  • }
  • actions
  • {
  • Event Player.soldier_ability_2[False] = False;
  • Event Player.soldier_ability_2[2] = 10;
  • }
  • }
  • rule("Soldier | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Солдат-76;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("damage: +100%"));
  • Set Damage Dealt(Event Player, Event Player.damage_var * 2);
  • Wait(10.200, Ignore Condition);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Sombra | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Sombra | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Сомбра;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Сомбра);
  • }
  • actions
  • {
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(24, 21, 18, 15, 12);
  • Event Player.ability_2_array = Array(24, 21, 18, 15, 12);
  • Event Player.ability_3_array = Array(36, 31.500, 27, 22.500, 18);
  • Else;
  • Event Player.ability_1_array = Array(20, 17.500, 15, 12.500, 10);
  • Event Player.ability_2_array = Array(20, 17.500, 15, 12.500, 10);
  • Event Player.ability_3_array = Array(32, 28, 24, 20, 16);
  • End;
  • }
  • }
  • rule("Sombra | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Сомбра;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Wait(2, Abort When False);
  • Small Message(Event Player, Custom String("6 sec..."));
  • Wait(2, Abort When False);
  • Small Message(Event Player, Custom String("4 sec..."));
  • Wait(2, Abort When False);
  • Small Message(Event Player, Custom String("2 sec..."));
  • Wait(2, Abort When False);
  • Press Button(Event Player, Ability 1);
  • }
  • }
  • rule("Sombra | Ability 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Сомбра;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == True;
  • }
  • actions
  • {
  • Set Move Speed(Event Player, Event Player.speed_var * 0.800);
  • Wait(0.050, Ignore Condition);
  • Loop If Condition Is True;
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Sombra | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Сомбра;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Ultimate) == True;
  • Ultimate Charge Percent(Event Player) == False;
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • Set Secondary Fire Enabled(Event Player, False);
  • Wait(1, Ignore Condition);
  • Set Secondary Fire Enabled(Event Player, True);
  • }
  • }
  • rule("Sombra | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Сомбра;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ultimate(Event Player) == True;
  • Is Firing Secondary(Event Player) == False;
  • Has Status(Players On Hero(Hero(Райнхардт), Team 2), Hacked) == True;
  • Event Player.use_ult == False;
  • }
  • actions
  • {
  • Event Player.use_ult = True;
  • Players On Hero(Hero(Райнхардт), Team 2).boss_barrier -= 3;
  • Small Message(Players On Hero(Hero(Райнхардт), Team 2), Custom String("{0}: -3 sec", Ability Icon String(Hero(Райнхардт), Button(
  • Secondary Fire))));
  • Wait(5, Ignore Condition);
  • Event Player.use_ult = False;
  • }
  • }
  • disabled rule("| | | | | | | | | | Symmetra | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Symmetra | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Симметра);
  • }
  • actions
  • {
  • Event Player.ability_count = 3;
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_2_array = Array(24, 21, 18, 15, 12);
  • Else;
  • Event Player.ability_2_array = Array(14, 12.250, 10.500, 8.750, 7);
  • End;
  • Abort If(!Is In Setup);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□ □ □"), Custom String("{0} □ □", Ability Icon String(Hero(Симметра), Button(
  • Ability 1))), Custom String("{0} {1} □", Ability Icon String(Hero(Симметра), Button(Ability 1)), Ability Icon String(Hero(
  • Симметра), Button(Ability 1))), Custom String("{0} {1} {2}", Ability Icon String(Hero(Симметра), Button(Ability 1)),
  • Ability Icon String(Hero(Симметра), Button(Ability 1)), Ability Icon String(Hero(Симметра), Button(Ability 1))))
  • [Event Player.ability_count], Null, Null, Top, 5, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown * (0.500 / (1 - 0.125 * (Event Player.ability_1 - 1))), To Nearest)], Null, Null, Top, 6, White,
  • White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Symmetra | Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • Normalized Health(Players On Hero(Hero(Райнхардт), Team 2)) > 0.600;
  • Is Firing Primary(Event Player) == True;
  • }
  • actions
  • {
  • Set Damage Dealt(Event Player, Event Player.damage_var / 0.700);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • rule("Symmetra | Ability 1 | Modify Var (+1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • ((Event Player.ability_1 == 1 && Event Player.ability_cooldown == 12) || (
  • Event Player.ability_1 == 2 && Event Player.ability_cooldown == 10.500) || (
  • Event Player.ability_1 == 3 && Event Player.ability_cooldown == 9) || (
  • Event Player.ability_1 == 4 && Event Player.ability_cooldown == 7.500) || (
  • Event Player.ability_1 == 5 && Event Player.ability_cooldown == 6)) == True;
  • Event Player.ability_count <= 2;
  • }
  • actions
  • {
  • Event Player.ability_count += 1;
  • Event Player.ability_cooldown = False;
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • }
  • }
  • rule("Symmetra | Ability 1 | Modify Var (-1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 1(Event Player) == True;
  • Event Player.ability_count > False;
  • }
  • actions
  • {
  • Event Player.ability_count -= 1;
  • Wait(0.550, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Symmetra | Ability 1 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_count > False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • rule("Symmetra | Ability 1 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_count == False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Symmetra | Ability 1 | Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_count < 3;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, ability_cooldown, Array(False, 12, 10.500, 9, 7.500, 6)[Event Player.ability_1], 1,
  • Destination and Rate);
  • }
  • }
  • rule("Symmetra | Ability 1 | Stop Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Симметра;
  • }
  • conditions
  • {
  • Event Player.ability_count == 3;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • }
  • }
  • rule("Symmetra | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ultimate(Players On Hero(Hero(Симметра), Team 1)) == True;
  • }
  • actions
  • {
  • Add Health Pool To Player(Event Player, Shields, Hero Of(Event Player) != Hero(Симметра) ? Max Health(Event Player)
  • / 3 : Max Health(Event Player), False, True);
  • Event Player.symmetra_health_pool = Last Created Health Pool;
  • Wait(12, Ignore Condition);
  • Remove Health Pool From Player(Event Player.symmetra_health_pool);
  • }
  • }
  • disabled rule("| | | | | | | | | | Torbjorn | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Torbjorn | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Торбьорн);
  • }
  • actions
  • {
  • Event Player.use_ability = False;
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • Abort If(!Is In Setup);
  • Event Player.ability_cooldown = 12;
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Torbjorn | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Damage(Event Player, Null, Max Health(Event Player) / 3.500 + 5);
  • Small Message(Event Player, Custom String("speed: +20%"));
  • Set Move Speed(Event Player, Event Player.speed_var / 1.083);
  • Wait(5, Ignore Condition);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Torbjorn | Trip Wire | 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Button Held(Event Player, Ability 1) == True;
  • Distance Between(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 1000, Null, Null, False)) <= 5;
  • Event Player.ability_cooldown == 12;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.special_ability_1[1]);
  • Destroy Effect(Event Player.special_ability_1[3]);
  • Event Player.use_ability = 1;
  • Event Player.special_ability_1[False] = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 1000, Null, Null, False);
  • Create Beam Effect(Distance Between(Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + Facing Direction Of(Event Player) * 5, Null, Null, False)) <= 10 && Is In Line of Sight(
  • Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 5, Null, Null, False), Barriers Do Not Block LOS) ? All Players(All Teams) : Empty Array,
  • Grapple Beam, Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 5, Null, Null, False), White, Visible To Position and Radius);
  • Event Player.special_ability_1[1] = Last Created Entity;
  • Create Effect(Event Player, Ring, White, Event Player.special_ability_1[False], 10, None);
  • Event Player.special_ability_1[3] = Last Created Entity;
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 75);
  • Event Player.ability_cooldown = 6;
  • }
  • }
  • rule("Torbjorn | Trip Wire | Message")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown == 6;
  • Event Player.use_ability == 1;
  • }
  • actions
  • {
  • Wait(3, Abort When False);
  • Small Message(Event Player, Custom String("press [{0}] to cancel the placement of the trip wire", Input Binding String(Button(
  • Interact))));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Torbjorn | Trip Wire | Cancel")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • (Is Button Held(Event Player, Interact) || Distance Between(Eye Position(Event Player), Event Player.special_ability_1[False])
  • > 15) == True;
  • Event Player.use_ability == 1;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.special_ability_1[1]);
  • Destroy Effect(Event Player.special_ability_1[3]);
  • Event Player.use_ability = False;
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 60);
  • Event Player.ability_cooldown = 12;
  • }
  • }
  • rule("Torbjorn | Trip Wire | 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Button Held(Event Player, Ability 1) == True;
  • Event Player.use_ability == 1;
  • Is In Line of Sight(Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 1000, Null, Null, False), Barriers Do Not Block LOS) == True;
  • Distance Between(Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 1000, Null, Null, False)) <= 10;
  • Distance Between(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 1000, Null, Null, False)) <= 5;
  • Distance Between(Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 1000, Null, Null, False)) >= 2;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.special_ability_1[1]);
  • Destroy Effect(Event Player.special_ability_1[3]);
  • Event Player.special_ability_1[2] = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 1000, Null, Null, False);
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 70);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.special_ability_1[False], Event Player.special_ability_1[2],
  • White, Visible To);
  • Event Player.special_ability_1[1] = Last Created Entity;
  • Event Player.ability_cooldown = False;
  • "16 - 8 sec"
  • Chase Player Variable At Rate(Event Player, ability_cooldown, 12, Array(False, 0.750, 0.857, 1, 1.200, 1.500)
  • [Event Player.ability_1], Destination and Rate);
  • Event Player.use_ability = 2;
  • }
  • }
  • rule("Torbjorn | Trip Wire | Message")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Button Held(Event Player, Ability 1) == True;
  • Event Player.use_ability == 1;
  • Distance Between(Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 1000, Null, Null, False)) > 10;
  • Distance Between(Eye Position(Event Player), Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player)
  • + Facing Direction Of(Event Player) * 1000, Null, Null, False)) <= 5;
  • Distance Between(Event Player.special_ability_1[False], Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + Facing Direction Of(Event Player) * 1000, Null, Null, False)) >= 2;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("trip wire is too long!"));
  • Play Effect(Event Player, Explosion Sound, White, Event Player, 60);
  • }
  • }
  • rule("Torbjorn | Trip Wire | 3")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.use_ability == 2;
  • Ray Cast Hit Player(Event Player.special_ability_1[False], Event Player.special_ability_1[2], Players On Hero(Hero(Райнхардт),
  • Team 2), Null, False) != Null;
  • }
  • actions
  • {
  • Set Status(Players On Hero(Hero(Райнхардт), Team 2), Event Player, Stunned, 1);
  • Damage(Players On Hero(Hero(Райнхардт), Team 2), Event Player, 250);
  • Event Player.special_ability_1[False] = Vector(False, 100, False);
  • Event Player.special_ability_1[2] = Vector(False, 100, False);
  • Wait(0.050, Ignore Condition);
  • Destroy Effect(Event Player.special_ability_1[1]);
  • }
  • }
  • rule("Torbjorn | Trip Wire | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Торбьорн;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_cooldown == 12;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • Small Message(Event Player, Custom String("trip wire is ready!"));
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • }
  • }
  • disabled rule("| | | | | | | | | Tracer | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Tracer | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Трейсер);
  • }
  • actions
  • {
  • Event Player.ability_count = 3;
  • Event Player.ability_2_array = Array(24, 21, 18, 15, 12);
  • Abort If(!Is In Setup);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□ □ □"), Custom String("{0} □ □", Ability Icon String(Hero(Трейсер), Button(
  • Ability 1))), Custom String("{0} {1} □", Ability Icon String(Hero(Трейсер), Button(Ability 1)), Ability Icon String(Hero(
  • Трейсер), Button(Ability 1))), Custom String("{0} {1} {2}", Ability Icon String(Hero(Трейсер), Button(Ability 1)),
  • Ability Icon String(Hero(Трейсер), Button(Ability 1)), Ability Icon String(Hero(Трейсер), Button(Ability 1))))
  • [Event Player.ability_count], Null, Null, Top, 5, White, White, White, Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown / (1 - 0.125 * (Event Player.ability_1 - 1)), To Nearest)], Null, Null, Top, 6, White, White,
  • White, Visible To and String, Default Visibility);
  • Set Ultimate Charge(Event Player, 1);
  • }
  • }
  • rule("Tracer | Ability 1 | Modify Var (+1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • ((Event Player.ability_1 == 1 && Event Player.ability_cooldown == 6) || (
  • Event Player.ability_1 == 2 && Event Player.ability_cooldown == 5.250) || (
  • Event Player.ability_1 == 3 && Event Player.ability_cooldown == 4.500) || (
  • Event Player.ability_1 == 4 && Event Player.ability_cooldown == 3.750) || (
  • Event Player.ability_1 == 5 && Event Player.ability_cooldown == 3)) == True;
  • Event Player.ability_count <= 2;
  • }
  • actions
  • {
  • Event Player.ability_count += 1;
  • Event Player.ability_cooldown = False;
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • }
  • }
  • rule("Tracer | Ability 1 | Modify Var (-1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.ability_count -= 1;
  • }
  • }
  • rule("Tracer | Ability 1 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_count > False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • rule("Tracer | Ability 1 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_count == False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Tracer | Ability 1 | Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_count < 3;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, ability_cooldown, Array(False, 6, 5.250, 4.500, 3.750, 3)[Event Player.ability_1], 1,
  • Destination and Rate);
  • }
  • }
  • rule("Tracer | Ability 1 | Stop Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • Event Player.ability_count == 3;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • }
  • }
  • rule("Tracer | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Button Held(Event Player, Ultimate) == True;
  • Ultimate Charge Percent(Event Player) == False;
  • Global.tracer_ult == False;
  • }
  • actions
  • {
  • Cancel Primary Action(Event Player);
  • Global.tracer_ult = True;
  • Set Move Speed(Event Player, Event Player.speed_var * (100 / 60));
  • Set Max Ammo(Event Player, False, 1000);
  • Set Ammo(Event Player, False, 1000);
  • Set Slow Motion(60);
  • Set Aim Speed(Filtered Array(All Players(All Teams), Current Array Element != Event Player), 60);
  • Create HUD Text(Event Player, Custom String("■■■■"), Null, Null, Top, 3, Green, White, White, Visible To and String,
  • Default Visibility);
  • Event Player.hud_or_effect = Last Text ID;
  • Wait(1.200, Ignore Condition);
  • Destroy HUD Text(Event Player.hud_or_effect);
  • Create HUD Text(Event Player, Custom String("■■■"), Null, Null, Top, 3, Yellow, White, White, Visible To and String,
  • Default Visibility);
  • Event Player.hud_or_effect = Last Text ID;
  • Wait(1.200, Ignore Condition);
  • Destroy HUD Text(Event Player.hud_or_effect);
  • Create HUD Text(Event Player, Custom String("■■"), Null, Null, Top, 3, Orange, White, White, Visible To and String,
  • Default Visibility);
  • Event Player.hud_or_effect = Last Text ID;
  • Wait(1.200, Ignore Condition);
  • Destroy HUD Text(Event Player.hud_or_effect);
  • Create HUD Text(Event Player, Custom String("■"), Null, Null, Top, 3, Red, White, White, Visible To and String,
  • Default Visibility);
  • Event Player.hud_or_effect = Last Text ID;
  • Wait(1.200, Ignore Condition);
  • Destroy HUD Text(Event Player.hud_or_effect);
  • Global.tracer_ult = False;
  • Set Slow Motion(100);
  • Set Aim Speed(All Players(All Teams), 100);
  • Set Ultimate Charge(Event Player, 1);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • Set Max Ammo(Event Player, False, 40);
  • Set Ammo(Event Player, False, 40);
  • }
  • }
  • rule("Tracer | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Трейсер;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Dead(Event Player) == True;
  • Global.tracer_ult == True;
  • }
  • actions
  • {
  • Global.tracer_ult = False;
  • Set Slow Motion(100);
  • Set Aim Speed(All Players(All Teams), 100);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • Set Ultimate Charge(Event Player, 1);
  • Set Max Ammo(Event Player, False, 40);
  • Set Ammo(Event Player, False, 40);
  • }
  • }
  • rule("Tracer | Ultimate")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.tracer_ult == True;
  • Entity Exists(Players On Hero(Hero(Трейсер), Team 1)) == False;
  • }
  • actions
  • {
  • Global.tracer_ult = False;
  • Set Slow Motion(100);
  • Set Aim Speed(All Players(All Teams), 100);
  • }
  • }
  • disabled rule("| | | | | | | | | | Widow | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Widow | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Роковая Вдова;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Роковая Вдова);
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, angle, 60 / Distance Between(Eye Position(Event Player), Players On Hero(Hero(
  • Райнхардт), Team 2)), 10000, Destination and Rate);
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(20, 17.500, 15, 12.500, 10);
  • Else;
  • Event Player.ability_1_array = Array(12, 10.500, 9, 7.500, 6);
  • End;
  • Event Player.ability_2_array = Array(20, 17, 14, 11, 8);
  • }
  • }
  • rule("Widow | Ability 2")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Роковая Вдова;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 2);
  • }
  • actions
  • {
  • Start Damage Over Time(Victim, Event Player, 5, Event Player.damage_var * (Is Using Ultimate(Event Player) ? 0.900 : 0.450));
  • Wait(5, Ignore Condition);
  • }
  • }
  • rule("Widow | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Роковая Вдова;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("damage: +100%"));
  • Set Damage Dealt(Event Player, Event Player.damage_var * 2);
  • Wait(9.500, Ignore Condition);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • rule("Widow | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Роковая Вдова;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • Is Firing Secondary(Event Player) == True;
  • Is Firing Primary(Event Player) == True;
  • (Is In Line of Sight(Eye Position(Event Player), Eye Position(Players On Hero(Hero(Райнхардт), Team 2)), All Barriers Block LOS)
  • || Is In Line of Sight(Eye Position(Event Player), Players On Hero(Hero(Райнхардт), Team 2), All Barriers Block LOS)) == False;
  • Is In View Angle(Event Player, Players On Hero(Hero(Райнхардт), Team 2), Event Player.angle) == True;
  • }
  • actions
  • {
  • Damage(Players On Hero(Hero(Райнхардт), Team 2), Event Player, Is Firing Secondary(Players On Hero(Hero(Райнхардт), Team 2))
  • && Is In View Angle(Players On Hero(Hero(Райнхардт), Team 2), Eye Position(Event Player), 80)
  • ? 6 + 0.500 * Event Player.widow_damage : 12 + Event Player.widow_damage);
  • }
  • }
  • rule("Widow | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Роковая Вдова;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == True;
  • Is Firing Primary(Event Player) == False;
  • }
  • actions
  • {
  • Event Player.widow_damage = False;
  • Wait(0.330, Abort When False);
  • Chase Player Variable At Rate(Event Player, widow_damage, 108, 120, Destination and Rate);
  • }
  • }
  • rule("Widow | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Роковая Вдова;
  • }
  • conditions
  • {
  • ((Is Firing Secondary(Event Player) && Is Firing Primary(Event Player)) || !Is Firing Secondary(Event Player)) == True;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, widow_damage);
  • Event Player.widow_damage = False;
  • }
  • }
  • disabled rule("| | | | | | | | | | Winston | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Winston | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Уинстон);
  • }
  • actions
  • {
  • Event Player.ability_count = 2;
  • Event Player.ability_2_array = Array(20, 17.500, 15, 12.500, 10);
  • Abort If(!Is In Setup);
  • Create HUD Text(Event Player, Null, Null, Custom String(
  • " \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"), Top, 4, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□ □"), Custom String("{0} □", Ability Icon String(Hero(Уинстон), Button(
  • Ability 1))), Custom String("{0} {1}", Ability Icon String(Hero(Уинстон), Button(Ability 1)), Ability Icon String(Hero(
  • Уинстон), Button(Ability 1))))[Event Player.ability_count], Null, Null, Top, 5, White, White, White, Visible To and String,
  • Default Visibility);
  • Create HUD Text(Event Player, Array(Custom String("□□□□□□"), Custom String("■□□□□□"), Custom String("■■□□□□"), Custom String(
  • "■■■□□□"), Custom String("■■■■□□"), Custom String("■■■■■□"), Custom String("■■■■■■"))[Round To Integer(
  • Event Player.ability_cooldown / (1.333 - 0.167 * (Event Player.ability_1 - 1)), To Nearest)], Null, Null, Top, 6, White, White,
  • White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("Winston | Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Normalized Health(Players On Hero(Hero(Райнхардт), Team 2)) > 0.600;
  • Is Firing Primary(Event Player) == True;
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Set Damage Dealt(Event Player, Event Player.damage_var / 0.700);
  • Wait(1, Ignore Condition);
  • Loop If Condition Is True;
  • Abort If(Is Using Ultimate(Event Player));
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • rule("Winston | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Event Ability == Button(Ability 1);
  • Is Using Ability 1(Event Player) == False;
  • }
  • actions
  • {
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • Wait(0.010, Ignore Condition);
  • Damage(Victim, Event Player, Event Damage);
  • Set Move Speed(Victim, Victim.speed_var * 0.900);
  • Wait(2, Restart When True);
  • Set Move Speed(Victim, Victim.speed_var);
  • }
  • }
  • rule("Winston | Ability 1 | Modify Var (+1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • ((Event Player.ability_1 == 1 && Event Player.ability_cooldown == 8) || (
  • Event Player.ability_1 == 2 && Event Player.ability_cooldown == 7) || (
  • Event Player.ability_1 == 3 && Event Player.ability_cooldown == 6) || (
  • Event Player.ability_1 == 4 && Event Player.ability_cooldown == 5) || (
  • Event Player.ability_1 == 5 && Event Player.ability_cooldown == 4)) == True;
  • Event Player.ability_count <= 1;
  • }
  • actions
  • {
  • Event Player.ability_count += 1;
  • Event Player.ability_cooldown = False;
  • Play Effect(Event Player, Ring Explosion Sound, White, Event Player, 80);
  • }
  • }
  • rule("Winston | Ability 1 | Modify Var (-1)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 1(Event Player) == True;
  • Is Using Ultimate(Event Player) == False;
  • }
  • actions
  • {
  • Event Player.ability_count -= 1;
  • }
  • }
  • rule("Winston | Ability 1 | Enable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • Event Player.ability_count > False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, True);
  • }
  • }
  • rule("Winston | Ability 1 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • Is On Ground(Event Player) == False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Winston | Ability 1 | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Event Player.ability_count == False;
  • }
  • actions
  • {
  • Set Ability 1 Enabled(Event Player, False);
  • }
  • }
  • rule("Winston | Ability 1 | Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Has Spawned(Event Player) == True;
  • Event Player.ability_count < 2;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, ability_cooldown, Array(False, 8, 7, 6, 5, 4)[Event Player.ability_1], 1,
  • Destination and Rate);
  • }
  • }
  • rule("Winston | Ability 1 | Stop Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Event Player.ability_count == 2;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, ability_cooldown);
  • }
  • }
  • rule("Winston | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.special_ability_1 = Position Of(Event Player) + Vector(False, 1, False);
  • Event Player.special_ability_2 = Ray Cast Hit Position(Event Player.special_ability_1, Event Player.special_ability_1 + Vector(
  • False, -50, False), Null, All Players(All Teams), False);
  • Wait(0.250, Ignore Condition);
  • Chase Player Variable At Rate(Event Player, special_ability_1, Ray Cast Hit Position(Event Player.special_ability_1,
  • Event Player.special_ability_2, Null, All Players(All Teams), False), 8, None);
  • }
  • }
  • rule("Winston | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Distance Between(Event Player.special_ability_1, Event Player.special_ability_2) <= 0.050;
  • Event Player.special_ability_1 != False;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, special_ability_1);
  • Wait(1.500, Ignore Condition);
  • Create Dummy Bot(Hero(Торбьорн), Team 2, 2, Vector(False, 100, False), Null);
  • Set Status(Players On Hero(Hero(Торбьорн), Team 2), Null, Phased Out, 2);
  • Disable Movement Collision With Environment(Players On Hero(Hero(Торбьорн), Team 2), False);
  • Stop Holding Button(Players On Hero(Hero(Торбьорн), Team 2), Primary Fire);
  • Set Invisible(Players On Hero(Hero(Торбьорн), Team 2), All);
  • Wait(0.100, Ignore Condition);
  • Set Damage Dealt(Players On Hero(Hero(Торбьорн), Team 2), 10000 * 10000);
  • Set Weapon(Players On Hero(Hero(Торбьорн), Team 2), 2);
  • Wait(0.500, Ignore Condition);
  • Start Holding Button(Players On Hero(Hero(Торбьорн), Team 2), Primary Fire);
  • Wait(0.900, Ignore Condition);
  • Event Player.special_ability_1 = False;
  • Destroy Dummy Bot(Team 2, 2);
  • }
  • }
  • rule("Winston | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Hero Being Played(Hero(Уинстон), Team 1) == True;
  • Players On Hero(Hero(Уинстон), Team 1).special_ability_1 != False;
  • Distance Between(Event Player.special_ability_1, Event Player.special_ability_2) <= 0.050;
  • ((Distance Between(Event Player, Players On Hero(Hero(Уинстон), Team 1).special_ability_1) >= 4 && Distance Between(Event Player,
  • Players On Hero(Hero(Уинстон), Team 1).special_ability_1) <= 4.750) || (Distance Between(Event Player, Players On Hero(Hero(
  • Уинстон), Team 1).special_ability_1) >= 5.250 && Distance Between(Event Player, Players On Hero(Hero(Уинстон), Team 1)
  • .special_ability_1) <= 6)) == True;
  • }
  • actions
  • {
  • Start Forcing Throttle(Event Player, False, False, False, False, False, False);
  • Set Status(Event Player, Null, Rooted, 0.150);
  • If(Distance Between(Event Player, Players On Hero(Hero(Уинстон), Team 1).special_ability_1) >= 4 && Distance Between(Event Player,
  • Players On Hero(Hero(Уинстон), Team 1).special_ability_1) <= 4.750);
  • Apply Impulse(Event Player, Direction Towards(Position Of(Event Player), Players On Hero(Hero(Уинстон), Team 1).special_ability_1),
  • Max(10, Horizontal Speed Of(Players On Hero(Hero(Райнхардт), Team 2)) * 1.750), To World, Cancel Contrary Motion);
  • Else;
  • Apply Impulse(Event Player, Direction Towards(Players On Hero(Hero(Уинстон), Team 1).special_ability_1, Event Player), Max(10,
  • Horizontal Speed Of(Players On Hero(Hero(Райнхардт), Team 2)) * 1.750), To World, Cancel Contrary Motion);
  • End;
  • Wait(0.100, Ignore Condition);
  • Stop Forcing Throttle(Event Player);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Winston | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Торбьорн;
  • }
  • conditions
  • {
  • Entity Exists(Event Player) == True;
  • }
  • actions
  • {
  • Start Forcing Player Position(Event Player, Players On Hero(Hero(Уинстон), Team 1).special_ability_1 + World Vector Of(Vector(
  • Random Real(1, -1), Random Real(1, -1), Random Real(1, -1)), Event Player, Rotation), False);
  • Set Facing(Event Player, Random Value In Array(Array(Up, Left, Right, Forward, Backward)), To World);
  • Wait(0.050, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Winston | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Уинстон;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • }
  • actions
  • {
  • Small Message(Event Player, Custom String("damage: +100%"));
  • Set Damage Dealt(Event Player, Event Player.damage_var * 2);
  • Wait(5, Ignore Condition);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • disabled rule("| | | | | | | | | | Wrecking Ball | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Wrecking Ball | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Таран;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Таран);
  • }
  • actions
  • {
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • Event Player.ability_3_array = Array(8, 7, 6, 5, 4);
  • }
  • }
  • rule("Wrecking Ball | Ability 1 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Таран;
  • }
  • conditions
  • {
  • Ability Cooldown(Event Player, Button(Crouch)) > False;
  • }
  • actions
  • {
  • Set Ability Cooldown(Event Player, Button(Crouch), Array(False, 12, 10.500, 9, 7.500, 6)[Event Player.ability_1]);
  • }
  • }
  • rule("Wrecking Ball | Ability 1")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Таран;
  • }
  • conditions
  • {
  • Event Ability == Button(Crouch);
  • }
  • actions
  • {
  • Set Status(Victim, Event Player, Stunned, 0.750);
  • }
  • }
  • rule("Wrecking Ball | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Таран;
  • }
  • conditions
  • {
  • (Is In Setup || Is Game In Progress) == True;
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • If(Health Of Type(Event Player, Shields) <= Max Health(Event Player) / 7);
  • Damage(Event Player, Null, Max Health(Event Player) / 7);
  • Else;
  • Damage(Event Player, Null, Max Health(Event Player) / 4);
  • End;
  • Wait(0.010, Ignore Condition);
  • Event Player.special_ability_1 = Max Health(Event Player) * 2;
  • Add Health Pool To Player(Event Player, Shields, Event Player.special_ability_1, True, True);
  • Event Player.hud_or_effect = Last Created Health Pool;
  • Chase Player Variable Over Time(Event Player, special_ability_1, False, 4, Destination and Duration);
  • Wait(4, Ignore Condition);
  • Remove Health Pool From Player(Event Player.hud_or_effect);
  • }
  • }
  • rule("Wrecking Ball | Ultimate")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 1;
  • Таран;
  • }
  • conditions
  • {
  • Event Ability == Button(Ultimate);
  • }
  • actions
  • {
  • Damage(Victim, Event Player, 130);
  • }
  • }
  • disabled rule("| | | | | | | | | | Zarya | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Zarya | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Заря;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Заря);
  • }
  • actions
  • {
  • If(Current Map == Map(Некрополь));
  • Event Player.ability_1_array = Array(16, 14, 12, 10, 8);
  • Event Player.ability_2_array = Array(20, 17.500, 15, 12.500, 10);
  • Else;
  • Event Player.ability_1_array = Array(14, 12.250, 10.500, 8.750, 7);
  • Event Player.ability_2_array = Array(16, 14, 12, 10, 8);
  • End;
  • }
  • }
  • rule("Zarya | Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Заря;
  • }
  • conditions
  • {
  • Normalized Health(Players On Hero(Hero(Райнхардт), Team 2)) > 0.600;
  • Is Firing Primary(Event Player) == True;
  • }
  • actions
  • {
  • Set Damage Dealt(Event Player, Event Player.damage_var / 0.700);
  • Wait(0.500, Ignore Condition);
  • Loop If Condition Is True;
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • }
  • }
  • rule("Zarya | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Заря;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == True;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Invincible, 2);
  • Small Message(Event Player, Custom String("speed: +30%"));
  • Set Move Speed(Event Player, Event Player.speed_var * 1.300);
  • Wait(2, Ignore Condition);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • }
  • }
  • rule("Zarya | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Заря;
  • }
  • conditions
  • {
  • Is Using Ability 1(Event Player) == False;
  • Ability Cooldown(Event Player, Button(Ability 1)) != False;
  • }
  • actions
  • {
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • Wait(0.010, Ignore Condition);
  • "damage: 250"
  • Damage(Players Within Radius(Event Player, 10, Team 2, Surfaces), Event Player, 200);
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, World Vector Of(Vector(False, 1, False), Event Player,
  • Rotation And Translation), 20);
  • Play Effect(All Players(All Teams), Ring Explosion, Purple, World Vector Of(Vector(False, 1, False), Event Player,
  • Rotation And Translation), 16);
  • }
  • }
  • disabled rule("| | | | | | | | | | Zen | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Zen | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Дзенъятта;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • }
  • actions
  • {
  • Set Healing Dealt(Event Player, Event Player.heal_var * Array(False, 1, 1.125, 1.250, 1.375, 1.500)[Event Player.ability_1]);
  • }
  • }
  • rule("Zen | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Дзенъятта;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • "8%"
  • If(Event Player.ability_2 == 1);
  • Start Damage Modification(All Players(Team 2), All Players(Team 1), 83.077, Receivers and Damagers);
  • "12%"
  • Else If(Event Player.ability_2 == 2);
  • Start Damage Modification(All Players(Team 2), All Players(Team 1), 86.154, Receivers and Damagers);
  • "16%"
  • Else If(Event Player.ability_2 == 3);
  • Start Damage Modification(All Players(Team 2), All Players(Team 1), 89.231, Receivers and Damagers);
  • "20%"
  • Else If(Event Player.ability_2 == 4);
  • Start Damage Modification(All Players(Team 2), All Players(Team 1), 92.308, Receivers and Damagers);
  • "24%"
  • Else;
  • Start Damage Modification(All Players(Team 2), All Players(Team 1), 95.385, Receivers and Damagers);
  • End;
  • Event Player.damage_modification = Last Damage Modification ID;
  • }
  • }
  • rule("Zen | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Дзенъятта;
  • }
  • conditions
  • {
  • Is Using Ability 2(Event Player) == False;
  • }
  • actions
  • {
  • Stop Damage Modification(Event Player.damage_modification);
  • }
  • }
  • disabled rule("| | | | | | | | | | Rein | | | | | | | | | |")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • }
  • rule("Vars | Team 2")
  • {
  • event
  • {
  • Player Joined Match;
  • Team 2;
  • Все;
  • }
  • actions
  • {
  • Event Player.health_var = 350;
  • Event Player.damage_var = 100;
  • Event Player.speed_var = Current Map == Map(Некрополь) ? 120 : 115;
  • Event Player.projectiles_var = Current Map == Map(Некрополь) ? 150 : 130;
  • Set Move Speed(Event Player, Event Player.speed_var);
  • Set Max Health(Event Player, Event Player.health_var);
  • Set Projectile Speed(Event Player, Event Player.projectiles_var);
  • }
  • }
  • rule("Rein | Array")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Hero Of(Event Player) == Hero(Райнхардт);
  • }
  • actions
  • {
  • Event Player.ability_1_array = Array(13, 11.250, 9.500, 7.750, 6);
  • Event Player.ability_2_array = Array(8, 7, 6, 5, 4);
  • Event Player.boss_barrier = Current Map == Map(Некрополь) ? 30 : 20;
  • }
  • }
  • rule("Upgrade | Damage")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_damage[1], Event Player) <= 1.250;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[False]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.damage += 1;
  • Event Player.damage_var += 25;
  • Event Player.money -= Event Player.price[False];
  • Event Player.price[False] += 1;
  • Small Message(Event Player, Custom String("damage: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Purple, Global.circle_damage[1], 2.500);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Speed")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_speed[1], Event Player) <= 1.250;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[1]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.speed += 1;
  • Event Player.speed_var += 2;
  • Event Player.money -= Event Player.price[1];
  • Event Player.price[1] += 1;
  • Small Message(Event Player, Custom String("speed: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Green, Global.circle_speed[1], 2.500);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Health")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_health[1], Event Player) <= 1.250;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[2]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.health += 1;
  • Event Player.health_var += 70;
  • Event Player.money -= Event Player.price[2];
  • Event Player.price[2] += 1;
  • Small Message(Event Player, Custom String("health: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Red, Global.circle_health[1], 2.500);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Max Health(Event Player, Event Player.health_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Projectiles")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_projectiles[1], Event Player) <= 1.250;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.money < Event Player.price[4]);
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • Else;
  • Event Player.projectiles += 1;
  • Event Player.projectiles_var += 3.500;
  • Event Player.money -= Event Player.price[4];
  • Event Player.price[4] += 0.500;
  • Small Message(Event Player, Custom String("projectile speed: level up!"));
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Global.circle_projectiles[1], 2.500);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 50);
  • Set Projectile Speed(Event Player, Event Player.projectiles_var);
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_ability_1[1], Event Player) <= 1.250;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.ability_1 == 5);
  • Small Message(Event Player, Custom String("you already have the max level!"));
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.money >= Event Player.price[5]);
  • Event Player.ability_1 += 1;
  • Event Player.money -= Event Player.price[5];
  • Event Player.price[5] += 2;
  • Play Effect(All Players(All Teams), Ring Explosion, Orange, Global.circle_ability_1[1], 2.500);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 65);
  • Else;
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.ability_1 < 5);
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Ability 1))));
  • Else;
  • Modify Player Variable At Index(Event Player, price, 5, Remove From Array By Value, 16);
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Ability 1))));
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Ability 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_ability_2[1], Event Player) <= 1.250;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.ability_2 == 5);
  • Small Message(Event Player, Custom String("you already have the max level!"));
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.money >= Event Player.price[6]);
  • Event Player.ability_2 += 1;
  • Play Effect(All Players(All Teams), Ring Explosion, Turquoise, Global.circle_ability_2[1], 2.500);
  • Event Player.money -= Event Player.price[6];
  • Event Player.price[6] += 2.500;
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 65);
  • Else;
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.ability_2 < 5);
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Ability 2))));
  • Else;
  • Modify Player Variable At Index(Event Player, price, 6, Remove From Array By Value, 20);
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Ability 2))));
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Upgrade | Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_ultimate[1], Event Player) <= 1.250;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • If(Event Player.ultimate == 5);
  • Small Message(Event Player, Custom String("you already have the max level!"));
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.money >= Event Player.price[7]);
  • Event Player.ultimate += 1;
  • Event Player.money -= Event Player.price[7];
  • Event Player.price[7] += 2.500;
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Global.circle_ultimate[1], 2.500);
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 65);
  • Else;
  • Play Effect(Event Player, Debuff Impact Sound, White, Event Player, 50);
  • Abort;
  • End;
  • If(Event Player.ultimate < 5);
  • Small Message(Event Player, Custom String("{0}: level up!", Ability Icon String(Hero Of(Event Player), Button(Ultimate))));
  • Else;
  • Modify Player Variable At Index(Event Player, price, 7, Remove From Array By Value, 20);
  • Small Message(Event Player, Custom String("{0}: max level!", Ability Icon String(Hero Of(Event Player), Button(Ultimate))));
  • End;
  • Wait(0.150, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Rein | Ability 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is Using Ability 1(Players On Hero(Hero(Райнхардт), Team 2)) == True;
  • Distance Between(Event Player, Players On Hero(Hero(Райнхардт), Team 2)) <= 4.250;
  • Is In Line of Sight(Eye Position(Event Player), Players On Hero(Hero(Райнхардт), Team 2), Barriers Do Not Block LOS) == True;
  • }
  • actions
  • {
  • Set Status(Event Player, Null, Burning, 3);
  • "damage: 120 or 90 (40 or 30 hp/sec)"
  • Start Damage Over Time(Event Player, Players On Hero(Hero(Райнхардт), Team 2), 3, Players On Hero(Hero(Райнхардт), Team 2)
  • .damage_var * (Global.biotic_grenade ? 0.300 : 0.400));
  • Wait(5, Ignore Condition);
  • }
  • }
  • rule("Rein | Ultimate")
  • {
  • event
  • {
  • Player took damage;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Event Ability == Button(Ultimate);
  • }
  • actions
  • {
  • Wait(1.250, Ignore Condition);
  • Clear Status(Event Player, Knocked Down);
  • }
  • }
  • rule("Rein | Damage")
  • {
  • event
  • {
  • Player dealt damage;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Max Health Of Type(Victim, Armor) > False;
  • }
  • actions
  • {
  • Damage(Victim, Null, 5);
  • }
  • }
  • rule("Rein | Set Damage | Primary Fire = 120, Ability 1 = 360, Ability 2 = 240, Ultimate = 120")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • (Is Firing Primary(Event Player) || Is Using Ability 1(Event Player) || Is Using Ability 2(Event Player) || Is Using Ultimate(
  • Event Player)) == True;
  • }
  • actions
  • {
  • If(Is Firing Primary(Event Player));
  • Set Damage Dealt(Event Player, Event Player.damage_var * (Global.biotic_grenade ? 0.600 : 0.800));
  • Else If(Is Using Ability 1(Event Player));
  • Set Damage Dealt(Event Player, Event Player.damage_var * (Global.biotic_grenade ? 0.450 : 0.600));
  • Else;
  • Set Damage Dealt(Event Player, Event Player.damage_var * (Global.biotic_grenade ? 0.900 : 1.200));
  • End;
  • Wait(0.200, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Rein | Barrier | Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Is Firing Secondary(Event Player) == True;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, boss_barrier, False, 1, Destination and Rate);
  • Event Player.boss_barrier -= Current Map == Map(Некрополь) ? 0.300 : 0.200;
  • }
  • }
  • rule("Rein | Barrier | Stop Chase Var")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Firing Secondary(Event Player) == False;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, boss_barrier);
  • }
  • }
  • rule("Rein | Barrier | Disable Ability")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is Game In Progress == True;
  • Event Player.boss_barrier <= False;
  • }
  • actions
  • {
  • Set Secondary Fire Enabled(Event Player, False);
  • }
  • }
  • rule("Small Health Pack 1 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_1_cd == 20;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_1) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_1 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_1) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_1)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_1));
  • Skip If(Hero Of(Global.player_health_pack_1) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_1), 10);
  • Heal(Global.player_health_pack_1, Null, Max Health(Global.player_health_pack_1) * 0.300);
  • Small Message(Global.player_health_pack_1, Custom String("health: +30%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_1, Null, Max Health(Global.player_health_pack_1) * 0.020);
  • Small Message(Global.player_health_pack_1, Custom String("health: +2%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Global.health_pack_1, 7.200);
  • Play Effect(Global.player_health_pack_1, Buff Impact Sound, White, Global.health_pack_1, 75);
  • Chase Global Variable At Rate(health_pack_1_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Small Health Pack 1 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_1_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_1_cd);
  • Global.health_pack_1_cd = 20;
  • }
  • }
  • rule("Small Health Pack 2 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_2_cd == 20;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_2) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_2 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_2) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_2)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_2));
  • Skip If(Hero Of(Global.player_health_pack_2) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_2), 10);
  • Heal(Global.player_health_pack_2, Null, Max Health(Global.player_health_pack_2) * 0.300);
  • Small Message(Global.player_health_pack_2, Custom String("health: +30%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_2, Null, Max Health(Global.player_health_pack_2) * 0.020);
  • Small Message(Global.player_health_pack_2, Custom String("health: +2%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Global.health_pack_2, 7.200);
  • Play Effect(Global.player_health_pack_2, Buff Impact Sound, White, Global.health_pack_2, 75);
  • Chase Global Variable At Rate(health_pack_2_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Small Health Pack 2 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_2_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_2_cd);
  • Global.health_pack_2_cd = 20;
  • }
  • }
  • rule("Small Health Pack 3 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_3_cd == 20;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_3) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_3 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_3) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_3)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_3));
  • Skip If(Hero Of(Global.player_health_pack_3) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_3), 10);
  • Heal(Global.player_health_pack_3, Null, Max Health(Global.player_health_pack_3) * 0.300);
  • Small Message(Global.player_health_pack_3, Custom String("health: +30%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_3, Null, Max Health(Global.player_health_pack_3) * 0.020);
  • Small Message(Global.player_health_pack_3, Custom String("health: +2%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Global.health_pack_3, 7.200);
  • Play Effect(Global.player_health_pack_3, Buff Impact Sound, White, Global.health_pack_3, 75);
  • Chase Global Variable At Rate(health_pack_3_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Small Health Pack 3 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_3_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_3_cd);
  • Global.health_pack_3_cd = 20;
  • }
  • }
  • rule("Small Health Pack 4 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map != Map(Илиос: развалины);
  • Global.health_pack_4_cd == 20;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_4) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_4 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_4) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_4)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_4));
  • Skip If(Hero Of(Global.player_health_pack_4) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_4), 10);
  • Heal(Global.player_health_pack_4, Null, Max Health(Global.player_health_pack_4) * 0.300);
  • Small Message(Global.player_health_pack_4, Custom String("health: +30%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_4, Null, Max Health(Global.player_health_pack_4) * 0.020);
  • Small Message(Global.player_health_pack_4, Custom String("health: +2%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Yellow, Global.health_pack_4, 7.200);
  • Play Effect(Global.player_health_pack_4, Buff Impact Sound, White, Global.health_pack_4, 75);
  • Chase Global Variable At Rate(health_pack_4_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Small Health Pack 4 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map != Map(Илиос: развалины);
  • Global.health_pack_4_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_4_cd);
  • Global.health_pack_4_cd = 20;
  • }
  • }
  • rule("Large Health Pack 5 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_5_cd == 30;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_5) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_5 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_5) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_5)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_5));
  • Skip If(Hero Of(Global.player_health_pack_5) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_5), 10);
  • Heal(Global.player_health_pack_5, Null, Max Health(Global.player_health_pack_5) * 0.600);
  • Small Message(Global.player_health_pack_5, Custom String("health: +60%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_5, Null, Max Health(Global.player_health_pack_5) * 0.040);
  • Small Message(Global.player_health_pack_5, Custom String("health: +4%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Red, Global.health_pack_5, 7.200);
  • Play Effect(Global.player_health_pack_5, Buff Impact Sound, White, Global.health_pack_5, 75);
  • Chase Global Variable At Rate(health_pack_5_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Large Health Pack 5 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.health_pack_5_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_5_cd);
  • Global.health_pack_5_cd = 30;
  • }
  • }
  • rule("Large Health Pack 6 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map != Map(Некрополь);
  • Global.health_pack_6_cd == 30;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_6) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_6 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_6) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_6)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_6));
  • Skip If(Hero Of(Global.player_health_pack_6) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_6), 10);
  • Heal(Global.player_health_pack_6, Null, Max Health(Global.player_health_pack_6) * 0.600);
  • Small Message(Global.player_health_pack_6, Custom String("health: +60%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_6, Null, Max Health(Global.player_health_pack_6) * 0.040);
  • Small Message(Global.player_health_pack_6, Custom String("health: +4%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Red, Global.health_pack_6, 7.200);
  • Play Effect(Global.player_health_pack_6, Buff Impact Sound, White, Global.health_pack_6, 75);
  • Chase Global Variable At Rate(health_pack_6_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Large Health Pack 6 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Current Map != Map(Некрополь);
  • Global.health_pack_6_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_6_cd);
  • Global.health_pack_6_cd = 30;
  • }
  • }
  • rule("Large Health Pack 7 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Current Map == Map(Аюттайя) || Current Map == Map(Илиос: развалины)) == True;
  • Global.health_pack_7_cd == 30;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_7) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_7 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_7) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_7)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_7));
  • Skip If(Hero Of(Global.player_health_pack_7) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_7), 10);
  • Heal(Global.player_health_pack_7, Null, Max Health(Global.player_health_pack_7) * 0.600);
  • Small Message(Global.player_health_pack_7, Custom String("health: +60%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_7, Null, Max Health(Global.player_health_pack_7) * 0.040);
  • Small Message(Global.player_health_pack_7, Custom String("health: +4%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Red, Global.health_pack_7, 7.200);
  • Play Effect(Global.player_health_pack_7, Buff Impact Sound, White, Global.health_pack_7, 75);
  • Chase Global Variable At Rate(health_pack_7_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Large Health Pack 7 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Current Map == Map(Аюттайя) || Current Map == Map(Илиос: развалины)) == True;
  • Global.health_pack_7_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_7_cd);
  • Global.health_pack_7_cd = 30;
  • }
  • }
  • rule("Large Health Pack 8 | Healing")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Current Map == Map(Аюттайя) || Current Map == Map(Илиос: развалины)) == True;
  • Global.health_pack_8_cd == 30;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.health_pack_8) <= 1.250 && Is Alive(
  • Current Array Element) && Normalized Health(Current Array Element) < 1) == True;
  • }
  • actions
  • {
  • Global.player_health_pack_8 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Is Alive(Current Array Element)
  • && Normalized Health(Current Array Element) < 1 && Distance Between(Current Array Element, Global.health_pack_8) <= 1.250),
  • Distance Between(Current Array Element, Global.health_pack_8)));
  • If(Array Contains(All Players(Team 1), Global.player_health_pack_8));
  • Skip If(Hero Of(Global.player_health_pack_8) == Hero(Кулак Смерти) && Is Using Ultimate(Global.player_health_pack_8), 10);
  • Heal(Global.player_health_pack_8, Null, Max Health(Global.player_health_pack_8) * 0.600);
  • Small Message(Global.player_health_pack_8, Custom String("health: +60%"));
  • Else;
  • Skip If(Global.biotic_grenade, 6);
  • Heal(Global.player_health_pack_8, Null, Max Health(Global.player_health_pack_8) * 0.040);
  • Small Message(Global.player_health_pack_8, Custom String("health: +4%"));
  • End;
  • Play Effect(All Players(All Teams), Ring Explosion, Red, Global.health_pack_8, 7.200);
  • Play Effect(Global.player_health_pack_8, Buff Impact Sound, White, Global.health_pack_8, 75);
  • Chase Global Variable At Rate(health_pack_8_cd, False, 1, Destination and Rate);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("Large Health Pack 8 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • (Current Map == Map(Аюттайя) || Current Map == Map(Илиос: развалины)) == True;
  • Global.health_pack_8_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(health_pack_8_cd);
  • Global.health_pack_8_cd = 30;
  • }
  • }
  • rule("Generator 1 | Charge")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.generator_1_cd == 30;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.generator_1) <= 1.250 && Is Alive(
  • Current Array Element) && Ultimate Charge Percent(Current Array Element) < 100 && !Is Using Ultimate(Current Array Element))
  • == True;
  • }
  • actions
  • {
  • Global.player_generator_1 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Distance Between(Current Array Element,
  • Global.generator_1) <= 1.250 && Is Alive(Current Array Element) && Ultimate Charge Percent(Current Array Element)
  • < 100 && !Is Using Ultimate(Current Array Element)), Distance Between(Current Array Element, Global.generator_1)));
  • Abort If(Global.player_generator_1 == Hero(Ана) && Entity Exists(Players In Slot(6, Team 1)));
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Global.generator_1, 7.200);
  • Play Effect(Global.player_generator_1, Buff Impact Sound, White, Global.generator_1, 75);
  • Chase Global Variable At Rate(generator_1_cd, False, 1, Destination and Rate);
  • If(Global.player_generator_1 == Hero(Эхо) && Is Duplicating(Players On Hero(Hero(Эхо), Team 1)));
  • Set Ultimate Charge(Global.player_generator_1, Ultimate Charge Percent(Global.player_generator_1) + 4);
  • Else;
  • Set Ultimate Charge(Global.player_generator_1, Ultimate Charge Percent(Global.player_generator_1) + 25);
  • Small Message(Global.player_generator_1, Custom String("ultimate: +25%"));
  • End;
  • }
  • }
  • rule("Generator 1 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.generator_1_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(generator_1_cd);
  • Global.generator_1_cd = 30;
  • }
  • }
  • rule("Generator 2 | Charge")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.generator_2_cd == 30;
  • Is True For Any(All Players(All Teams), Distance Between(Current Array Element, Global.generator_2) <= 1.250 && Is Alive(
  • Current Array Element) && Ultimate Charge Percent(Current Array Element) < 100 && !Is Using Ultimate(Current Array Element))
  • == True;
  • }
  • actions
  • {
  • Global.player_generator_2 = First Of(Sorted Array(Filtered Array(All Players(All Teams), Distance Between(Current Array Element,
  • Global.generator_2) <= 1.250 && Is Alive(Current Array Element) && Ultimate Charge Percent(Current Array Element)
  • < 100 && !Is Using Ultimate(Current Array Element)), Distance Between(Current Array Element, Global.generator_2)));
  • Abort If(Global.player_generator_1 == Hero(Ана) && Entity Exists(Players In Slot(6, Team 1)));
  • Play Effect(All Players(All Teams), Ring Explosion, Blue, Global.generator_2, 7.200);
  • Play Effect(Global.player_generator_2, Buff Impact Sound, White, Global.player_generator_2, 75);
  • Chase Global Variable At Rate(generator_2_cd, False, 1, Destination and Rate);
  • If(Global.player_generator_2 == Hero(Эхо) && Is Duplicating(Players On Hero(Hero(Эхо), Team 1)));
  • Set Ultimate Charge(Global.player_generator_2, Ultimate Charge Percent(Global.player_generator_2) + 4);
  • Else;
  • Set Ultimate Charge(Global.player_generator_2, Ultimate Charge Percent(Global.player_generator_2) + 25);
  • Small Message(Global.player_generator_2, Custom String("ultimate: +25%"));
  • End;
  • }
  • }
  • rule("Generator 2 | Cooldown")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.generator_2_cd == False;
  • }
  • actions
  • {
  • Stop Chasing Global Variable(generator_2_cd);
  • Global.generator_2_cd = 30;
  • }
  • }
  • rule("Reset | Team 1")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 1;
  • Все;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_reset[False], Event Player) <= 0.800;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • Big Message(Event Player, Custom String("all your upgrades are reset!"));
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 75);
  • Play Effect(All Players(All Teams), Ring Explosion, White, Global.circle_reset[False], 1.600);
  • Event Player.money = False;
  • Event Player.old_player = False;
  • Event Player.damage = 0;
  • Event Player.speed = 0;
  • Event Player.health = 0;
  • Event Player.heal = 0;
  • Event Player.projectiles = 0;
  • Event Player.speed_var = 100;
  • Event Player.projectiles_var = 100;
  • Event Player.health_var = 100;
  • Event Player.heal_var = 100;
  • Event Player.damage_var = 100;
  • Event Player.ability_1 = 1;
  • Event Player.ability_2 = 1;
  • Event Player.ability_3 = 1;
  • Event Player.ultimate = 1;
  • Event Player.price = Array(4, 4, 4, 4, 2, 12, 12, 12);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • Set Max Health(Event Player, Event Player.health_var);
  • Set Healing Dealt(Event Player, Event Player.heal_var);
  • Set Projectile Speed(Event Player, Event Player.projectiles_var);
  • If(Array Contains(Global.speed_104, Hero Of(Event Player)));
  • Event Player.speed_var += 4;
  • Else If(Array Contains(Global.speed_106, Hero Of(Event Player)));
  • Event Player.speed_var += 6;
  • Else If(Array Contains(Global.speed_108, Hero Of(Event Player)));
  • Event Player.speed_var += 8;
  • Else If(Array Contains(Global.speed_110, Hero Of(Event Player)));
  • Event Player.speed_var += 10;
  • Else If(Array Contains(Global.speed_114, Hero Of(Event Player)));
  • Event Player.speed_var += 14;
  • Else If(Array Contains(Global.speed_116, Hero Of(Event Player)));
  • Event Player.speed_var += 16;
  • Else If(Array Contains(Global.speed_120, Hero Of(Event Player)));
  • Event Player.speed_var += 20;
  • Else If(Array Contains(Global.speed_124, Hero Of(Event Player)));
  • Event Player.speed_var += 24;
  • End;
  • Set Move Speed(Event Player, Event Player.speed_var);
  • Event Player.old_player = True;
  • If(Match Round == 1);
  • Event Player.money = 36;
  • Else If(Match Round == 2);
  • Event Player.money = 81;
  • Else If(Match Round == 3);
  • Event Player.money = 135;
  • Else If(Match Round == 4);
  • Event Player.money = 198;
  • Else If(Match Round == 5);
  • Event Player.money = 270;
  • Else If(Match Round == 6);
  • Event Player.money = 351;
  • Else If(Match Round == 7);
  • Event Player.money = 441;
  • Else If(Match Round == 8);
  • Event Player.money = 540;
  • Else If(Match Round == 9);
  • Event Player.money = 648;
  • End;
  • }
  • }
  • rule("Reset | Team 2")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • Team 2;
  • Райнхардт;
  • }
  • conditions
  • {
  • Is In Setup == True;
  • Distance Between(Global.circle_reset[1], Event Player) <= 0.800;
  • Is Button Held(Event Player, Interact) == True;
  • }
  • actions
  • {
  • Big Message(Event Player, Custom String("all your upgrades are reset!"));
  • Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 75);
  • Play Effect(All Players(All Teams), Ring Explosion, White, Global.circle_reset[1], 1.600);
  • Event Player.money = False;
  • Event Player.old_player = False;
  • Event Player.damage = 0;
  • Event Player.speed = 0;
  • Event Player.health = 0;
  • Event Player.projectiles = 0;
  • Event Player.speed_var = Current Map == Map(Некрополь) ? 120 : 115;
  • Event Player.projectiles_var = Current Map == Map(Некрополь) ? 150 : 130;
  • Event Player.health_var = 350;
  • Event Player.damage_var = 100;
  • Event Player.ability_1 = 1;
  • Event Player.ability_2 = 1;
  • Event Player.ultimate = 1;
  • Event Player.price = Array(4, 4, 4, False, 2, 8, 10, 10);
  • Set Damage Dealt(Event Player, Event Player.damage_var);
  • Set Max Health(Event Player, Event Player.health_var);
  • Set Projectile Speed(Event Player, Event Player.projectiles_var);
  • Set Move Speed(Event Player, Event Player.speed_var);
  • Event Player.old_player = True;
  • If(Match Round == 1);
  • Event Player.money = 36;
  • Else If(Match Round == 2);
  • Event Player.money = 81;
  • Else If(Match Round == 3);
  • Event Player.money = 135;
  • Else If(Match Round == 4);
  • Event Player.money = 198;
  • Else If(Match Round == 5);
  • Event Player.money = 270;
  • Else If(Match Round == 6);
  • Event Player.money = 351;
  • Else If(Match Round == 7);
  • Event Player.money = 441;
  • Else If(Match Round == 8);
  • Event Player.money = 540;
  • Else If(Match Round == 9);
  • Event Player.money = 648;
  • End;
  • Wait(0.050, Ignore Condition);
  • Heal(Event Player, Null, Max Health(Event Player));
  • }
  • }
  • rule("Roulette | Random Boss")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Waiting For Players == True;
  • Global.speed_change == 0.050;
  • Is Button Held(Host Player, Interact) == True;
  • Is Button Held(Host Player, Ultimate) == True;
  • Number of Players(All Teams) >= 4;
  • }
  • actions
  • {
  • Skip If(Global.speed_change > 0.050, 6);
  • Destroy All HUD Text;
  • Big Message(All Players(All Teams), Custom String("the random boss selection has started!"));
  • Wait(0.500, Ignore Condition);
  • Chase Global Variable At Rate(speed_change, 0.500, 0.050, None);
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String(" \r\n\r\n\r\n\r\n"), Top, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("{0}", Global.random_boss), Null, Custom String(" \r\n "), Top, 1, Green,
  • White, White, Visible To Sort Order and String, Default Visibility);
  • Global.random_boss = Random Value In Array(All Players(All Teams));
  • Wait(Global.speed_change, Ignore Condition);
  • Loop If(Global.speed_change != 0.500);
  • Destroy All HUD Text;
  • Skip If(Custom String("{0}", Global.random_boss) != Custom String("Kaneki") && Custom String("{0}", Global.random_boss)
  • != Custom String("Five"), 1);
  • Global.random_boss = Random Value In Array(Filtered Array(All Players(All Teams), Custom String("{0}", Current Array Element)
  • != Custom String("Kaneki") && Custom String("{0}", Current Array Element) != Custom String("Five")));
  • Stop Chasing Global Variable(speed_change);
  • Global.speed_change = 0.050;
  • Create HUD Text(All Players(All Teams), Null, Null, Custom String(" \r\n\r\n\r\n\r\n"), Top, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("{0}", Global.random_boss), Null, Custom String(" \r\n "), Top, 1, Red,
  • White, White, Visible To Sort Order and String, Default Visibility);
  • Wait(0.250, Ignore Condition);
  • Big Message(All Players(All Teams), Custom String("the next boss is {0}!", Global.random_boss));
  • }
  • }
  • rule("Roulette | Host Player")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Is Waiting For Players == True;
  • Global.speed_change == 0.050;
  • Has Spawned(Host Player) == True;
  • Number of Players(All Teams) >= 4;
  • }
  • actions
  • {
  • Small Message(Host Player, Custom String("press [{0}] and [{1}] to select a random boss player", Input Binding String(Button(
  • Interact)), Input Binding String(Button(Ultimate))));
  • Wait(10, Abort When False);
  • Loop If Condition Is True;
  • }
  • }
Join the Workshop.codes Discord