Return to post
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;
}
}