Back to home

Press F to Upgrade (BALANCED)

68NN7
click to copy
This game is archived.
If you with to unarchive it, click the "restore" button in the options menu.

Category:
Custom game mode

Author:
SameFlame

Rating:
2

Version:
1.1.0

Posted:
12 days ago

Last updated:
12 days ago

Tags:
f to upgrade f idle

Project Links

Share this workshop!

Options

Hold interact to go to the shop, then crouch and interact for fast buy (roughly 16 a second), or hold crouch, interact, and secondary fire, for a super buy (roughly 400 a second). To setup this mode, change the mode to assault, name team 1 Projectile, and team 2 Speed. Then just swap back to deathmatch, select any of the seven maps (Blizzard World, Dorado, Hanamura, Hollywood, King's Row, Lijiang Garden, and Paris). This changes it from saying "attack fast" which implies that you shoot faster, to what it actually does, which is make your bullets faster.

rule("Setup - Shop Bug 2")
{
	event
	{
		Player Dealt Damage;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, W) == True;
		Player Variable(Event Player, Y) == False;
	}

	actions
	{
		Start Forcing Player To Be Hero(Event Player, Hero(Ana));
		Wait(0.500, Ignore Condition);
		Kill(Event Player, Null);
		Wait(0.500, Ignore Condition);
		Stop Forcing Player To Be Hero(Event Player);
	}
}

rule("Setup - Shop Bug 1")
{
	event
	{
		Player Died;
		All;
		All;
	}

	actions
	{
		Set Player Variable(Event Player, L, 0);
	}
}

rule("Setup - Map Detector - Global Variable Z")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Set Global Variable(Z, Round To Integer(X Component Of(Nearest Walkable Position(Vector(100, 100, 100))), Up));
		Skip If(Compare(Objective Position(0), ==, Null), 1);
		Modify Global Variable(Z, Add, Add(300, Round To Integer(X Component Of(Objective Position(0)), Up)));
	}
}

rule("Setup - No Free Death")
{
	event
	{
		Player Died;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, W) == True;
	}

	actions
	{
		Clear Status(Event Player, Invincible);
		Clear Status(Event Player, Phased Out);
		Set Player Variable(Event Player, Y, True);
		Set Player Variable(Event Player, W, False);
		Wait(0.250, Ignore Condition);
		Respawn(Event Player);
		Wait(0.250, Ignore Condition);
		Create HUD Text(Event Player, String("{0} {1}", String("{0} {1}", String("Trading", Null, Null, Null), String("{0}:", String(
			"Cooldown", Null, Null, Null), Null, Null), Null), String("{0} sec", Subtract(16, Player Variable(Event Player, X)), Null,
			Null), Null), Null, Null, Left, 0, Red, White, White, Visible To and String, Default Visibility);
		Set Player Variable(Event Player, Z, Last Text ID);
		Allow Button(Event Player, Primary Fire);
		Allow Button(Event Player, Secondary Fire);
		Allow Button(Event Player, Ability 1);
		Allow Button(Event Player, Ability 2);
		Skip If(And(Compare(Value In Array(Global Variable(A), 1), ==, True), Compare(Hero Of(Event Player), ==, Hero(Soldier: 76))), 1);
		Allow Button(Event Player, Ultimate);
		Set Damage Dealt(Event Player, Add(Value In Array(Global Variable(A), 1), 100));
		Set Max Health(Event Player, Add(Value In Array(Player Variable(Event Player, A), 2), 100));
		Set Projectile Speed(Event Player, Add(Value In Array(Global Variable(A), 3), 100));
		Set Move Speed(Event Player, Add(Value In Array(Player Variable(Event Player, A), 4), 100));
		Start Heal Over Time(Event Player, Event Player, 9999, Value In Array(Player Variable(Event Player, A), 6));
		Wait(0.250, Ignore Condition);
		Heal(Event Player, Null, Multiply(1200, 100));
	}
}

rule("Setup - Death Counter")
{
	event
	{
		Player Died;
		All;
		All;
	}

	conditions
	{
		Attacker != Victim;
	}

	actions
	{
		Modify Global Variable(S, Add, 1);
		Modify Global Variable(T, Add, 1);
	}
}

rule("Setup - Faster Match Start")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Assembling Heroes == True;
	}

	actions
	{
		Set Match Time(11);
		Set Player Allowed Heroes(All Players(All Teams), All Heroes);
	}
}

disabled rule("Setup - Fix Pharah")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(R) < 30;
	}

	actions
	{
		Wait(1, Ignore Condition);
		Set Player Allowed Heroes(All Players(All Teams), All Heroes);
		Loop If Condition Is True;
	}
}

rule("Setup - Disable Pharah after 30 minutes")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(R) == 30;
	}

	actions
	{
		Reset Player Hero Availability(All Players(All Teams));
	}
}

rule("Setup - Set all players playing Pharah to Lucio after 30 minutes")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Global Variable(R) == 30;
	}

	actions
	{
		disabled Start Forcing Player To Be Hero(Event Player, Hero(Lúcio));
		disabled Stop Forcing Player To Be Hero(Event Player);
		Skip If(Compare(Hero Of(Event Player), !=, Hero(Pharah)), 2);
		Start Forcing Player To Be Hero(Event Player, Hero(Lúcio));
		Stop Forcing Player To Be Hero(Event Player);
	}
}

disabled rule("Setup - Disable Soldier's Ultimate After 30 Minutes")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(R) >= 30;
	}

	actions
	{
		Wait(10, Ignore Condition);
		Set Ultimate Ability Enabled(Players On Hero(Hero(Soldier: 76), All Teams), False);
		Set Player Variable At Index(Event Player, A, 14, False);
		Loop;
	}
}

rule("Setup - Global R Timer")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Wait(60, Ignore Condition);
		Modify Global Variable(R, Add, 1);
		Modify Global Variable(R, Min, 180);
		Loop;
	}
}

rule("Setup - HUD")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Has Spawned(Event Player) == True;
	}

	actions
	{
		Create HUD Text(Event Player, String("Money", Null, Null, Null), String("{0}: {1}", String("{0} {1}", String("On", Null, Null,
			Null), String("Kills", Null, Null, Null), Null), Value In Array(Player Variable(Event Player, A), 8), Null), String("{0}: {1}",
			String("{0} {1}", String("Over", Null, Null, Null), String("Time", Null, Null, Null), Null), Value In Array(Player Variable(
			Event Player, A), 7), Null), Left, 1, Yellow, Yellow, White, Visible To and String, Default Visibility);
		Create HUD Text(Event Player, String("Attack", Null, Null, Null), String("{0}: {1}", String("{0} {1}", Team 1, Team 2, Null),
			String("{0}%", Value In Array(Player Variable(Event Player, A), 3), Null, Null), Null), String("{0}: {1}", String("Damage",
			Null, Null, Null), String("{0}%", Add(100, Value In Array(Player Variable(Event Player, A), 1)), Null, Null), Null), Left, 2,
			Blue, Blue, White, Visible To and String, Default Visibility);
		Create HUD Text(Event Player, String("Life", Null, Null, Null), String("{0}   {1}", String("", Null, Null, Null), String("{0}%",
			Value In Array(Player Variable(Event Player, A), 2), Null, Null), Null), String("{0}: {1}", String("Healing", Null, Null,
			Null), String("{0} / {1}", Value In Array(Player Variable(Event Player, A), 6), String("{0} sec", String("", Null, Null, Null),
			Null, Null), Null), Null), Left, 3, Green, Green, White, Visible To and String, Default Visibility);
		Create HUD Text(Event Player, Hero Icon String(Hero Of(Event Player)), Event Player, String("{0} -> {1}", String("Money", Null,
			Null, Null), Value In Array(Player Variable(Event Player, A), 9), Null), Top, 10000, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(Event Player, String("{0} {1} {2}", String("Healing", Null, Null, Null), String("On", Null, Null, Null), String(
			"{0}: {1}", String("Attack", Null, Null, Null), Value In Array(Player Variable(Event Player, A), 5), Null)), Null, Null, Right,
			1, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(Event Player, String("{0}: {1}", String("{0} {1}", String("Run", Null, Null, Null), String("Fast", Null, Null,
			Null), Null), Add(Value In Array(Player Variable(Event Player, A), 4), 100), Null), Null, Null, Right, 6, White, Purple,
			Purple, Visible To and String, Default Visibility);
		Create HUD Text(Event Player, String("{0} {1}", String("Dead", Null, Null, Null), Global Variable(S), Null), Null, Null, Top, 0,
			Red, White, White, Visible To and String, Default Visibility);
	}
}

rule("Setup - Global Things")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
	}

	actions
	{
		Pause Match Time;
		Disable Built-In Game Mode Scoring;
	}
}

rule("Setup - New Player")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
	}

	actions
	{
		Modify Player Score(Event Player, 0);
		Set Match Time(3600);
		Wait(1, Ignore Condition);
		Set Player Variable At Index(Event Player, A, 12, False);
		Set Player Variable At Index(Event Player, A, 13, False);
		Set Player Variable At Index(Event Player, A, 14, False);
		Set Player Variable At Index(Event Player, A, 1, 0);
		Set Player Variable At Index(Event Player, A, 2, 0);
		Set Player Variable At Index(Event Player, A, 3, 0);
		Set Player Variable At Index(Event Player, A, 4, 0);
		Set Player Variable At Index(Event Player, A, 5, False);
		Set Player Variable At Index(Event Player, A, 6, 0);
		Set Player Variable At Index(Event Player, A, 7, 5);
		Set Player Variable At Index(Event Player, A, 8, 50);
		Set Player Variable At Index(Event Player, A, 9, 600);
		Set Player Variable(Event Player, Y, False);
		Modify Player Variable At Index(Event Player, A, 9, Add, Global Variable(Y));
		Set Ultimate Ability Enabled(Event Player, False);
		Set Ability 2 Enabled(Event Player, False);
		Set Ability 1 Enabled(Event Player, False);
		Skip If(Compare(Global Variable(R), <, 30), 2);
		Set Player Variable At Index(Event Player, A, 14, True);
		Set Ultimate Ability Enabled(Event Player, True);
	}
}

rule("Setup - Late Start Benefits Sub 10")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(R) >= 30;
		Number of Players(All Teams) < 10;
	}

	actions
	{
		Wait(60, Ignore Condition);
		Set Global Variable(Y, Multiply(Global Variable(R), 2500));
		Loop;
	}
}

rule("Setup - Late Start Benefits 10 and Up")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(R) >= 30;
		Number of Players(All Teams) >= 10;
	}

	actions
	{
		Wait(60, Ignore Condition);
		Set Global Variable(Y, Multiply(Global Variable(R), 5000));
		Loop;
	}
}

disabled rule("Setup - Disable Ability 1")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Event Player, A), 12) == False;
	}

	actions
	{
		Set Ability 1 Enabled(Event Player, False);
	}
}

disabled rule("Setup - Disable Ability 2")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Event Player, A), 13) == False;
	}

	actions
	{
		Set Ability 2 Enabled(Event Player, False);
	}
}

disabled rule("Setup - Disable Ultimate Ability")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Event Player, A), 14) == False;
	}

	actions
	{
		Set Ultimate Ability Enabled(Event Player, False);
	}
}

rule("Setup - Vectors - Global Variable V")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Skip If(Compare(Global Variable(Z), !=, 54), 15);
		Set Global Variable At Index(V, 1, Vector(-8.700, -4.802, -58.000));
		Set Global Variable At Index(V, 2, Vector(-8.700, -4.802, -68.000));
		Set Global Variable At Index(V, 3, Vector(-8.700, -4.802, -78.000));
		Set Global Variable At Index(V, 4, Vector(2.800, -4.802, -58.000));
		Set Global Variable At Index(V, 5, Vector(2.800, -4.802, -68.000));
		Set Global Variable At Index(V, 6, Vector(2.800, -4.802, -78.000));
		Set Global Variable At Index(V, 7, Vector(14.300, -4.802, -58.000));
		Set Global Variable At Index(V, 8, Vector(14.300, -4.802, -78.000));
		Set Global Variable At Index(V, 9, Vector(2.634, -4.801, -62.646));
		Set Global Variable At Index(V, 10, Vector(3.090, -3.801, -90.549));
		Set Global Variable At Index(V, 11, Vector(3.090, -4.801, -85.000));
		Set Global Variable At Index(V, 12, Vector(-8.700, -4.802, -53.000));
		Set Global Variable At Index(V, 13, Vector(2.800, -4.802, -53.000));
		Set Global Variable At Index(V, 14, Vector(14.300, -4.802, -53.000));
		Set Global Variable At Index(V, 15, Vector(-29.765, 13.047, 88.309));
		Skip If(Compare(Global Variable(Z), !=, 102), 15);
		Set Global Variable At Index(V, 1, Vector(123, 95.250, 143.500));
		Set Global Variable At Index(V, 2, Vector(123, 95.250, 140.330));
		Set Global Variable At Index(V, 3, Vector(123, 95.250, 146.670));
		Set Global Variable At Index(V, 4, Vector(116.660, 95.250, 146.670));
		Set Global Variable At Index(V, 5, Vector(113.330, 95.250, 140));
		Set Global Variable At Index(V, 6, Vector(113.330, 95.250, 147));
		Set Global Variable At Index(V, 7, Vector(110, 95.250, 140));
		Set Global Variable At Index(V, 8, Vector(110, 95.250, 147));
		Set Global Variable At Index(V, 9, Vector(105, 95.250, 128));
		Set Global Variable At Index(V, 10, Vector(105, 95.250, 162));
		Set Global Variable At Index(V, 11, Vector(105, 95.500, 143.500));
		Set Global Variable At Index(V, 12, Vector(96, 96.250, 140));
		Set Global Variable At Index(V, 13, Vector(96, 96.250, 143.500));
		Set Global Variable At Index(V, 14, Vector(96, 96.250, 147));
		Set Global Variable At Index(V, 15, Vector(0, 96, 143));
		Skip If(Compare(Global Variable(Z), !=, -3.000), 15);
		Set Global Variable At Index(V, 1, Vector(-16.425, 11.189, 26.661));
		Set Global Variable At Index(V, 2, Vector(-22.149, 11.189, 32.189));
		Set Global Variable At Index(V, 3, Vector(-19.287, 11.189, 29.425));
		Set Global Variable At Index(V, 4, Vector(-23.907, 11.189, 24.576));
		Set Global Variable At Index(V, 5, Vector(-25.255, 11.189, 30.158));
		Set Global Variable At Index(V, 6, Vector(-18.380, 11.189, 23.585));
		Set Global Variable At Index(V, 7, Vector(-27.166, 11.189, 27.991));
		Set Global Variable At Index(V, 8, Vector(-20.000, 11.189, 21.163));
		Set Global Variable At Index(V, 9, Vector(-28.162, 11.189, 20.507));
		Set Global Variable At Index(V, 10, Vector(-28.736, 11.189, 36.650));
		Set Global Variable At Index(V, 11, Vector(-21.725, 11.189, 26.896));
		Set Global Variable At Index(V, 12, Vector(-13.228, 11.189, 44.091));
		Set Global Variable At Index(V, 13, Vector(-8.987, 11.189, 39.583));
		Set Global Variable At Index(V, 14, Vector(-4.573, 11.189, 35.521));
		Set Global Variable At Index(V, 15, Vector(-92.946, 13.299, -77.548));
		Skip If(Compare(Global Variable(Z), !=, 25), 15);
		Set Global Variable At Index(V, 1, Vector(-19.384, 3.199, 92.608));
		Set Global Variable At Index(V, 2, Vector(-19.816, 3.199, 84.970));
		Set Global Variable At Index(V, 3, Vector(-20.772, 3.198, 79.399));
		Set Global Variable At Index(V, 4, Vector(-11.967, 3.199, 84.327));
		Set Global Variable At Index(V, 5, Vector(-3.271, 3.199, 92.966));
		Set Global Variable At Index(V, 6, Vector(-3.579, 3.198, 87.055));
		Set Global Variable At Index(V, 7, Vector(-3.481, 3.199, 79.527));
		Set Global Variable At Index(V, 8, Vector(-6.919, 3.199, 89.936));
		Set Global Variable At Index(V, 9, Vector(6.084, 2.199, 82.331));
		Set Global Variable At Index(V, 10, Vector(-30.613, 2.199, 82.845));
		Set Global Variable At Index(V, 11, Vector(-12.164, 2.199, 153));
		Set Global Variable At Index(V, 12, Vector(-15.187, 3.199, 78.750));
		Set Global Variable At Index(V, 13, Vector(-12.187, 3.199, 78.750));
		Set Global Variable At Index(V, 14, Vector(-9.153, 3.199, 78.750));
		Set Global Variable At Index(V, 15, Vector(-29.765, -25.000, 88.309));
		Skip If(Compare(Global Variable(Z), !=, 78), 15);
		Set Global Variable At Index(V, 1, Vector(-42.132, 2.348, -118.962));
		Set Global Variable At Index(V, 2, Vector(-46.484, 2.348, -114.350));
		Set Global Variable At Index(V, 3, Vector(-50.715, 2.348, -110.108));
		Set Global Variable At Index(V, 4, Vector(-38.705, 1.602, -111.134));
		Set Global Variable At Index(V, 5, Vector(-42.946, 1.602, -106.903));
		Set Global Variable At Index(V, 6, Vector(-44.147, 2.349, -100.910));
		Set Global Variable At Index(V, 7, Vector(-38.647, 1.602, -106.528));
		Set Global Variable At Index(V, 8, Vector(-32.900, 2.348, -112.341));
		Set Global Variable At Index(V, 9, Vector(-24.268, 2.349, -111.137));
		Set Global Variable At Index(V, 10, Vector(-43.902, 2.349, -92.379));
		Set Global Variable At Index(V, 11, Vector(-50.177, 2.348, -118.693));
		Set Global Variable At Index(V, 12, Vector(-30.234, 2.349, -105.528));
		Set Global Variable At Index(V, 13, Vector(-33.778, 2.349, -102.092));
		Set Global Variable At Index(V, 14, Vector(-38.245, 2.349, -97.950));
		Set Global Variable At Index(V, 15, Vector(-38.245, -25.000, -97.950));
	}
}

rule("Setup - Vectors 2 - Global Variable V")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Skip If(Compare(Global Variable(Z), !=, 144), 15);
		Set Global Variable At Index(V, 1, Vector(184.250, 15.192, 35.894));
		Set Global Variable At Index(V, 2, Vector(178.263, 15.448, 39.584));
		Set Global Variable At Index(V, 3, Vector(189.900, 15.448, 42.062));
		Set Global Variable At Index(V, 4, Vector(182.331, 15.198, 47.381));
		Set Global Variable At Index(V, 5, Vector(195.820, 16.349, 44.101));
		Set Global Variable At Index(V, 6, Vector(198.008, 16.349, 39.108));
		Set Global Variable At Index(V, 7, Vector(195.231, 16.349, 49.112));
		Set Global Variable At Index(V, 8, Vector(200.962, 16.352, 53.213));
		Set Global Variable At Index(V, 9, Vector(178.902, 13.197, 59.152));
		Set Global Variable At Index(V, 10, Vector(189.395, 16.360, 21.595));
		Set Global Variable At Index(V, 11, Vector(183.929, 15.148, 41.131));
		Set Global Variable At Index(V, 12, Vector(182.957, 16.348, 26.793));
		Set Global Variable At Index(V, 13, Vector(188.188, 16.348, 27.571));
		Set Global Variable At Index(V, 14, Vector(191.424, 16.349, 28.996));
		Set Global Variable At Index(V, 15, Vector(-29.765, -25.000, 88.309));
		Skip If(Compare(Global Variable(Z), !=, 17), 15);
		Set Global Variable At Index(V, 1, Vector(-144.119, -1.768, 23.526));
		Set Global Variable At Index(V, 2, Vector(-148.901, -2.003, 29.790));
		Set Global Variable At Index(V, 3, Vector(-149.523, -2.002, 18.677));
		Set Global Variable At Index(V, 4, Vector(-152.691, -1.711, 13.290));
		Set Global Variable At Index(V, 5, Vector(-151.185, -2.002, 32.428));
		Set Global Variable At Index(V, 6, Vector(-138.349, -1.327, 25.124));
		Set Global Variable At Index(V, 7, Vector(-139.579, -1.418, 19.542));
		Set Global Variable At Index(V, 8, Vector(-135.112, -0.169, 21.971));
		Set Global Variable At Index(V, 9, Vector(-152.358, 1.273, 4.562));
		Set Global Variable At Index(V, 10, Vector(-126.804, -0.022, 20.494));
		Set Global Variable At Index(V, 11, Vector(-149.183, -1.658, 24.298));
		Set Global Variable At Index(V, 12, Vector(-158.614, -1.727, 22.166));
		Set Global Variable At Index(V, 13, Vector(-159.476, -1.727, 25.889));
		Set Global Variable At Index(V, 14, Vector(-157.335, -1.727, 29.165));
		Set Global Variable At Index(V, 15, Vector(-29.765, -25.000, 88.309));
	}
}

rule("Setup - Buy Circles")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Create Effect(All Players(All Teams), Ring, Red, Value In Array(Global Variable(V), 1), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Green, Value In Array(Global Variable(V), 2), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Blue, Value In Array(Global Variable(V), 3), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Blue, Value In Array(Global Variable(V), 4), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Purple, Value In Array(Global Variable(V), 5), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Purple, Value In Array(Global Variable(V), 6), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Yellow, Value In Array(Global Variable(V), 7), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Yellow, Value In Array(Global Variable(V), 8), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Orb, White, Value In Array(Global Variable(V), 9), 1, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Orb, White, Value In Array(Global Variable(V), 10), 1, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Purple, Value In Array(Global Variable(V), 12), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Purple, Value In Array(Global Variable(V), 13), 1.500, Visible To Position and Radius);
		Create Effect(All Players(All Teams), Ring, Purple, Value In Array(Global Variable(V), 14), 1.500, Visible To Position and Radius);
	}
}

rule("Setup - Prices - Global Variable P")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Set Global Variable At Index(P, 1, 70);
		Set Global Variable At Index(P, 2, 30);
		Set Global Variable At Index(P, 3, 50);
		Set Global Variable At Index(P, 4, 50);
		Set Global Variable At Index(P, 5, Multiply(1000, 100));
		Set Global Variable At Index(P, 6, 200);
		Set Global Variable At Index(P, 7, 100);
		Set Global Variable At Index(P, 8, 100);
		Set Global Variable At Index(P, 12, 350);
		Set Global Variable At Index(P, 13, 350);
		Set Global Variable At Index(P, 14, 600);
	}
}

rule("Setup - Worth - Global Variable W")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Set Global Variable At Index(W, 1, 0.400);
		Set Global Variable At Index(W, 2, 0.500);
		Set Global Variable At Index(W, 3, 0.500);
		Set Global Variable At Index(W, 4, 0.020);
		Set Global Variable At Index(W, 5, 0.200);
		Set Global Variable At Index(W, 6, 0.250);
		Set Global Variable At Index(W, 7, 0.500);
		Set Global Variable At Index(W, 8, 1.250);
	}
}

rule("Setup - Text")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("Damage", Null,
			Null, Null), Value In Array(Global Variable(P), 1)), Value In Array(Global Variable(V), 1), 1, Clip Against Surfaces,
			Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("Life", Null, Null,
			Null), Value In Array(Global Variable(P), 2)), Value In Array(Global Variable(V), 2), 1, Clip Against Surfaces,
			Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("{0} {1}", Team 1,
			Team 2, Null), Value In Array(Global Variable(P), 3)), Value In Array(Global Variable(V), 3), 1, Clip Against Surfaces,
			Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("{0} {1}", String(
			"Running", Null, Null, Null), String("Fast", Null, Null, Null), Null), Value In Array(Global Variable(P), 4)), Value In Array(
			Global Variable(V), 4), 1, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("{0} {1} {2}",
			String("Healing", Null, Null, Null), String("On", Null, Null, Null), String("Attack", Null, Null, Null)), Value In Array(
			Global Variable(P), 5)), Value In Array(Global Variable(V), 5), 1, Clip Against Surfaces, Visible To Position and String,
			White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("{0} / {1}", String(
			"Healing", Null, Null, Null), String("Time", Null, Null, Null), Null), Value In Array(Global Variable(P), 6)), Value In Array(
			Global Variable(V), 6), 1, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("{0} / {1}", String(
			"Money", Null, Null, Null), String("Time", Null, Null, Null), Null), Value In Array(Global Variable(P), 7)), Value In Array(
			Global Variable(V), 7), 1, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Upgrade", Null, Null, Null), String("{0} {1} {2}",
			String("Money", Null, Null, Null), String("On", Null, Null, Null), String("Elimination", Null, Null, Null)), Value In Array(
			Global Variable(P), 8)), Value In Array(Global Variable(V), 8), 1, Clip Against Surfaces, Visible To Position and String,
			White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("Exit", Null, Null, Null), Value In Array(Global Variable(V), 9), 1,
			Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("Exit", Null, Null, Null), Value In Array(Global Variable(V), 10), 1,
			Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Unlock", Null, Null, Null), String("Ability 1", Null,
			Null, Null), Value In Array(Global Variable(P), 12)), Value In Array(Global Variable(V), 12), 1, Clip Against Surfaces,
			Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1} {2}", String("Unlock", Null, Null, Null), String("Ability 2", Null,
			Null, Null), Value In Array(Global Variable(P), 13)), Value In Array(Global Variable(V), 13), 1, Clip Against Surfaces,
			Visible To Position and String, White, Default Visibility);
		Create In-World Text(All Players(All Teams), String("{0} {1}", String("{0} {1}", String("Unlock", Null, Null, Null), String(
			"Ultimate Ability", Null, Null, Null), Null), Value In Array(Global Variable(P), 14), Null), Value In Array(Global Variable(V),
			14), 1, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
	}
}

rule("Shop - Teleport")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, L) >= 3;
	}

	actions
	{
		Set Player Variable(Event Player, W, True);
		Set Facing(Event Player, Value In Array(Global Variable(V), 13), To World);
		Teleport(Event Player, Value In Array(Global Variable(V), 11));
		Skip If(Compare(Hero Of(Event Player), ==, Hero(Bastion)), 1);
		Disallow Button(Event Player, Ability 1);
		Disallow Button(Event Player, Ability 2);
		Disallow Button(Event Player, Primary Fire);
		Disallow Button(Event Player, Secondary Fire);
		Disallow Button(Event Player, Ultimate);
		Set Status(Event Player, Null, Phased Out, 9999);
		Set Status(Event Player, Null, Invincible, 9999);
		Stop Heal Over Time(Value In Array(Player Variable(Event Player, A), 6));
		Set Move Speed(Event Player, 200);
		Set Player Variable(Event Player, Y, False);
	}
}

rule("Shop - Counter")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Is Alive(Event Player) == True;
	}

	actions
	{
		Skip If(Compare(Is Moving(Event Player), ==, True), 15);
		Skip If(Compare(Is Using Ability 2(Event Player), ==, True), 14);
		Skip If(Compare(Is Using Ultimate(Event Player), ==, True), 13);
		Skip If(Compare(Is Firing Secondary(Event Player), ==, True), 12);
		Skip If(Compare(Is Firing Primary(Event Player), ==, True), 11);
		Skip If(Compare(Player Variable(Event Player, W), !=, False), 10);
		Skip If(Compare(Player Variable(Event Player, Y), !=, False), 9);
		Skip If(Compare(Player Variable(Event Player, K), >=, 10), 8);
		Skip If(Compare(Hero Of(Event Player), ==, Hero(Lúcio)), 1);
		Skip If(Compare(Is Using Ability 1(Event Player), ==, True), 6);
		Skip If(Compare(Player Variable(Event Player, L), ==, 3), 5);
		Small Message(Event Player, String("{0} {1} {2}", String("Trade", Null, Null, Null), String("Connecting", Null, Null, Null),
			Subtract(3, Player Variable(Event Player, L))));
		Wait(0.984, Ignore Condition);
		Modify Player Variable(Event Player, L, Add, 1);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Set Player Variable(Event Player, L, 0);
	}
}

rule("Shop - Player Dealt Damage")
{
	event
	{
		Player Dealt Damage;
		All;
		All;
	}

	actions
	{
		Set Player Variable(Event Player, L, 0);
	}
}

rule("Shop - Player Received Damage")
{
	event
	{
		Player Took Damage;
		All;
		All;
	}

	actions
	{
		Set Player Variable(Event Player, L, 0);
	}
}

rule("Shop - Remove Combat Tags")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, N) == True;
	}

	actions
	{
		Wait(1, Ignore Condition);
		Set Player Variable(Event Player, N, False);
	}
}

rule("Shop - Leave Shop")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Player Variable(Event Player, W) == True;
		Or(Compare(Distance Between(Event Player, Value In Array(Global Variable(V), 9)), <=, 2.250), Compare(Distance Between(
			Event Player, Value In Array(Global Variable(V), 10)), <=, 2.250)) == True;
	}

	actions
	{
		Clear Status(Event Player, Invincible);
		Clear Status(Event Player, Phased Out);
		Set Player Variable(Event Player, Y, True);
		Set Player Variable(Event Player, W, False);
		Skip If(Compare(Hero Of(Event Player), !=, Hero(D.Va)), 5);
		Wait(0.250, Ignore Condition);
		Kill(Event Player, Null);
		Wait(1, Ignore Condition);
		Kill(Event Player, Null);
		Wait(0.250, Ignore Condition);
		Skip If(Compare(Hero Of(Event Player), ==, Hero(D.Va)), 3);
		Wait(0.250, Ignore Condition);
		Respawn(Event Player);
		Wait(0.250, Ignore Condition);
		Create HUD Text(Event Player, String("{0} {1}", String("{0} {1}", String("Trading", Null, Null, Null), String("{0}:", String(
			"Cooldown", Null, Null, Null), Null, Null), Null), String("{0} sec", Subtract(16, Player Variable(Event Player, X)), Null,
			Null), Null), Null, Null, Left, 0, Red, White, White, Visible To and String, Default Visibility);
		Set Player Variable(Event Player, Z, Last Text ID);
		Allow Button(Event Player, Primary Fire);
		Allow Button(Event Player, Secondary Fire);
		Allow Button(Event Player, Ability 1);
		Allow Button(Event Player, Ability 2);
		Skip If(And(Compare(Value In Array(Global Variable(A), 1), ==, True), Compare(Hero Of(Event Player), ==, Hero(Soldier: 76))), 1);
		Allow Button(Event Player, Ultimate);
		Set Player Variable(Event Player, Y, True);
		Set Damage Dealt(Event Player, Add(Value In Array(Player Variable(Event Player, A), 1), 100));
		Set Max Health(Event Player, Add(Value In Array(Player Variable(Event Player, A), 2), 100));
		Set Projectile Speed(Event Player, Add(Value In Array(Player Variable(Event Player, A), 3), 100));
		Set Move Speed(Event Player, Add(Value In Array(Player Variable(Event Player, A), 4), 100));
		Start Heal Over Time(Event Player, Event Player, 9999, Value In Array(Player Variable(Event Player, A), 6));
		Wait(0.250, Ignore Condition);
		Heal(Event Player, Null, Multiply(1200, 100));
	}
}

rule("Shop - Teleport Cooldown")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, Y) == True;
	}

	actions
	{
		Modify Player Variable(Event Player, X, Add, 1);
		Wait(1, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule("Shop - Teleport Cooldown Reset")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, X) > 15;
	}

	actions
	{
		Set Player Variable(Event Player, Y, False);
		Set Player Variable(Event Player, X, 0);
		Destroy HUD Text(Player Variable(Event Player, Z));
	}
}

rule("Stats - Money on Damage")
{
	event
	{
		Player Dealt Damage;
		All;
		All;
	}

	conditions
	{
		Attacker != Victim;
	}

	actions
	{
		Modify Player Variable At Index(Event Player, A, 9, Add, Multiply(Event Damage, 0.250));
	}
}

rule("Upgrades - Damage")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 1)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 1);
		disabled Value In Array(Player Variable(Event Player, A), 1) < 10000;
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 1), <, 10000), 3);
		Small Message(Event Player, String("Max", Null, Null, Null));
		Set Player Variable At Index(Event Player, A, 1, 10000);
		Abort;
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 9), <, Multiply(Value In Array(Global Variable(P), 1), 25)), 4);
		Skip If(Compare(Is Button Held(Event Player, Secondary Fire), !=, True), 3);
		Modify Player Variable At Index(Event Player, A, 1, Add, Multiply(Value In Array(Global Variable(W), 1), 25));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Multiply(Value In Array(Global Variable(P), 1), 25));
		Skip(2);
		Modify Player Variable At Index(Event Player, A, 1, Add, Value In Array(Global Variable(W), 1));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 1));
		Skip If(Compare(Is Button Held(Event Player, Crouch), ==, False), 2);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 1)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 1)), 1), Z Component Of(Value In Array(Global Variable(V), 1))), 4);
	}
}

rule("Upgrades - Life")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 2)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 2);
		disabled Value In Array(Player Variable(Event Player, A), 2) < 10000;
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 2), <, 9900), 3);
		Small Message(Event Player, String("Max", Null, Null, Null));
		Set Player Variable At Index(Event Player, A, 2, 9900);
		Abort;
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 9), <, Multiply(Value In Array(Global Variable(P), 2), 25)), 4);
		Skip If(Compare(Is Button Held(Event Player, Secondary Fire), !=, True), 3);
		Modify Player Variable At Index(Event Player, A, 2, Add, Multiply(Value In Array(Global Variable(W), 2), 25));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Multiply(Value In Array(Global Variable(P), 2), 25));
		Skip(2);
		Modify Player Variable At Index(Event Player, A, 2, Add, Value In Array(Global Variable(W), 2));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 2));
		Skip If(Compare(Is Button Held(Event Player, Crouch), ==, False), 2);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 2)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 2)), 1), Z Component Of(Value In Array(Global Variable(V), 2))), 4);
	}
}

rule("Upgrades - Projectile Speed")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 3)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 3);
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 3), <, 500), 3);
		Small Message(Event Player, String("Max", Null, Null, Null));
		Set Player Variable At Index(Event Player, A, 3, 500);
		Abort;
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 9), <, Multiply(Value In Array(Global Variable(P), 3), 25)), 4);
		Skip If(Compare(Is Button Held(Event Player, Secondary Fire), !=, True), 3);
		Modify Player Variable At Index(Event Player, A, 3, Add, Multiply(Value In Array(Global Variable(W), 3), 25));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Multiply(Value In Array(Global Variable(P), 2), 25));
		Skip(2);
		Modify Player Variable At Index(Event Player, A, 3, Add, Value In Array(Global Variable(W), 3));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 3));
		Skip If(Compare(Is Button Held(Event Player, Crouch), ==, False), 2);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 3)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 3)), 1), Z Component Of(Value In Array(Global Variable(V), 3))), 4);
	}
}

rule("Upgrades - Movement Speed")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 4)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 4);
		disabled Value In Array(Player Variable(Event Player, A), 4) < 100;
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 4), <, 100), 3);
		Small Message(Event Player, String("Max", Null, Null, Null));
		Set Player Variable At Index(Event Player, A, 4, 100);
		Abort;
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 9), <, Multiply(Value In Array(Global Variable(P), 4), 25)), 4);
		Skip If(Compare(Is Button Held(Event Player, Secondary Fire), !=, True), 3);
		Modify Player Variable At Index(Event Player, A, 4, Add, Multiply(Value In Array(Global Variable(W), 4), 25));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Multiply(Value In Array(Global Variable(P), 4), 25));
		Skip(2);
		Modify Player Variable At Index(Event Player, A, 4, Add, Value In Array(Global Variable(W), 4));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 4));
		Skip If(Compare(Is Button Held(Event Player, Crouch), ==, False), 2);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 4)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 4)), 1), Z Component Of(Value In Array(Global Variable(V), 4))), 4);
	}
}

rule("Upgrades - Healing on Attack")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 5)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(A), 5);
		disabled Value In Array(Player Variable(Event Player, A), 5) == False;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 5);
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 5), ==, False), 2);
		Small Message(Event Player, String("Max", Null, Null, Null));
		Abort;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Subtract(Y Component Of(Value In Array(Global Variable(V), 5)), 1), 3);
		Set Player Variable At Index(Event Player, A, 5, True);
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 5));
	}
}

rule("Upgrades - Healing on Attack")
{
	event
	{
		Player Dealt Damage;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Event Player, A), 5) == True;
	}

	actions
	{
		Heal(Event Player, Null, Multiply(Event Damage, Value In Array(Global Variable(W), 5)));
	}
}

rule("Upgrades - Healing per Second")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 6)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 6);
		Value In Array(Player Variable(Event Player, A), 6) < 500;
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 9), <, Multiply(Value In Array(Global Variable(P), 6), 25)), 4);
		Skip If(Compare(Is Button Held(Event Player, Secondary Fire), !=, True), 3);
		Modify Player Variable At Index(Event Player, A, 6, Add, Multiply(Value In Array(Global Variable(W), 6), 25));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Multiply(Value In Array(Global Variable(P), 6), 25));
		Skip(2);
		Modify Player Variable At Index(Event Player, A, 6, Add, Value In Array(Global Variable(W), 6));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 6));
		Skip If(Compare(Is Button Held(Event Player, Crouch), ==, False), 2);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 6)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 6)), 1), Z Component Of(Value In Array(Global Variable(V), 6))), 4);
	}
}

rule("Upgrade - Money Over Time")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 7)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 7);
		Value In Array(Player Variable(Event Player, A), 7) < 75;
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 7), >=, 62.500), 5);
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 9), <, Multiply(Value In Array(Global Variable(P), 7), 25)), 4);
		Skip If(Compare(Is Button Held(Event Player, Secondary Fire), !=, True), 3);
		Modify Player Variable At Index(Event Player, A, 7, Add, Multiply(Value In Array(Global Variable(W), 7), 25));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Multiply(Value In Array(Global Variable(P), 7), 25));
		Skip(2);
		Modify Player Variable At Index(Event Player, A, 7, Add, Value In Array(Global Variable(W), 7));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 7));
		Skip If(Compare(Is Button Held(Event Player, Crouch), ==, False), 2);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 7)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 7)), 1), Z Component Of(Value In Array(Global Variable(V), 7))), 4);
	}
}

rule("Uprades - Money Over Time Application")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Has Spawned(Event Player) == True;
	}

	actions
	{
		Modify Player Variable At Index(Event Player, A, 9, Add, Value In Array(Player Variable(Event Player, A), 7));
		Wait(1, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule("Upgrades - Elimination Money")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 8)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 8);
	}

	actions
	{
		Skip If(Compare(Value In Array(Player Variable(Event Player, A), 9), <, Multiply(Value In Array(Global Variable(P), 8), 25)), 4);
		Skip If(Compare(Is Button Held(Event Player, Secondary Fire), !=, True), 3);
		Modify Player Variable At Index(Event Player, A, 8, Add, Multiply(Value In Array(Global Variable(W), 8), 25));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Multiply(Value In Array(Global Variable(P), 8), 25));
		Skip(2);
		Modify Player Variable At Index(Event Player, A, 8, Add, Value In Array(Global Variable(W), 8));
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 8));
		Skip If(Compare(Is Button Held(Event Player, Crouch), ==, False), 2);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
		Small Message(Event Player, String("{0} {1}", String("Upgrade", Null, Null, Null), String("Bought", Null, Null, Null), Null));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 8)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 8)), 1), Z Component Of(Value In Array(Global Variable(V), 8))), 4);
	}
}

rule("Upgrades - Elimination Money Application")
{
	event
	{
		Player Earned Elimination;
		All;
		All;
	}

	conditions
	{
		Attacker != Victim;
	}

	actions
	{
		Modify Player Variable At Index(Event Player, A, 9, Add, Value In Array(Player Variable(Event Player, A), 8));
	}
}

rule("Upgrades - Elimination Money Application (Finals)")
{
	event
	{
		Player Dealt Final Blow;
		All;
		All;
	}

	conditions
	{
		Attacker != Victim;
	}

	actions
	{
		Modify Player Variable At Index(Event Player, A, 9, Add, Add(Value In Array(Player Variable(Event Player, A), 8), 50));
	}
}

rule("Upgrades - Unlock Ability 1")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 12)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 12);
		Value In Array(Player Variable(Event Player, A), 12) == False;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 12);
	}

	actions
	{
		Small Message(Event Player, String("{0} {1}", String("Ability 1", Null, Null, Null), String("Unlocked", Null, Null, Null), Null));
		Set Player Variable At Index(Event Player, A, 12, True);
		Set Ability 1 Enabled(Event Player, True);
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 12));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 12)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 12)), 1), Z Component Of(Value In Array(Global Variable(V), 12))), 4);
	}
}

disabled rule("Upgrade - Unlock Ability 1")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Event Player, A), 12) == True;
	}

	actions
	{
		Set Ability 1 Enabled(Event Player, True);
	}
}

rule("Upgrades - Unlock Ability 2")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 13)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 13);
		Value In Array(Player Variable(Event Player, A), 13) == False;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 13);
	}

	actions
	{
		Small Message(Event Player, String("{0} {1}", String("Ability 2", Null, Null, Null), String("Unlocked", Null, Null, Null), Null));
		Set Player Variable At Index(Event Player, A, 13, True);
		Set Ability 2 Enabled(Event Player, True);
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 13));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 13)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 13)), 1), Z Component Of(Value In Array(Global Variable(V), 13))), 4);
	}
}

disabled rule("Upgrades - Unlock Ability 2")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Event Player, A), 13) == True;
	}

	actions
	{
		Set Ability 2 Enabled(Event Player, True);
	}
}

rule("Upgrades - Unlock Ultimate Ability")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Button Held(Event Player, Interact) == True;
		Distance Between(Event Player, Value In Array(Global Variable(V), 14)) <= 1.500;
		Value In Array(Player Variable(Event Player, A), 9) >= Value In Array(Global Variable(P), 14);
		Value In Array(Player Variable(Event Player, A), 14) == False;
	}

	actions
	{
		Small Message(Event Player, String("{0} {1}", String("Ultimate Ability", Null, Null, Null), String("Unlocked", Null, Null, Null),
			Null));
		Set Player Variable At Index(Event Player, A, 14, True);
		Set Ultimate Ability Enabled(Event Player, True);
		Modify Player Variable At Index(Event Player, A, 9, Subtract, Value In Array(Global Variable(P), 14));
		Play Effect(All Players(All Teams), Ring Explosion, White, Vector(X Component Of(Value In Array(Global Variable(V), 14)), Subtract(
			Y Component Of(Value In Array(Global Variable(V), 14)), 1), Z Component Of(Value In Array(Global Variable(V), 14))), 4);
	}
}

rule("Upgrades - Unlock Ultimate Ability")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Event Player, A), 14) == True;
	}

	actions
	{
		Set Ultimate Ability Enabled(Event Player, True);
	}
}

rule("Killstreaks")
{
	event
	{
		Player Dealt Final Blow;
		All;
		All;
	}

	conditions
	{
		Value In Array(Player Variable(Attacker, A), 1) >= Multiply(Add(Value In Array(Player Variable(Victim, A), 1), 100), 3);
	}

	actions
	{
		Modify Player Variable(Event Player, K, Add, 1);
	}
}

rule("Killstreaks")
{
	event
	{
		Player Died;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, K) < 10;
	}

	actions
	{
		Set Player Variable(Event Player, K, 0);
	}
}

rule("Killstreaks")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Player Variable(Event Player, K) == 10;
	}

	actions
	{
		Big Message(Event Player, String("{0} {1} {2}", String("Stop", Null, Null, Null), String("Kill", Null, Null, Null), String(
			"Initial Players", Null, Null, Null)));
		Set Status(Event Player, Null, Frozen, 30);
		Modify Player Variable At Index(Event Player, A, 1, Multiply, 0.750);
		Teleport(Event Player, Value In Array(Global Variable(V), 15));
		Create Icon(All Players(All Teams), Event Player, Skull, Visible To and Position, Red, True);
		Wait(30, Ignore Condition);
		Set Player Variable(Event Player, K, 0);
	}
}

disabled rule("Event - 75 Deaths")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Global Variable(T) == 75;
		disabled Player Variable(Event Player, W) == False;
	}

	actions
	{
		Skip If(Compare(Is Using Ultimate(Event Player), !=, True), 2);
		Skip If(Compare(Player Variable(Event Player, W), ==, True), 1);
		Teleport(Event Player, Value In Array(Global Variable(V), 15));
		Set Global Variable(T, 0);
		Big Message(All Players(All Teams), String("{0} {1} {2}", 75, String("Sudden Death", Null, Null, Null), String("Game", Null, Null,
			Null)));
	}
}

disabled rule("Event - Kill Ulting People at 75 Deaths")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Global Variable(T) == 0;
		Is Using Ultimate(Event Player) == True;
	}

	actions
	{
		Wait(0.250, Ignore Condition);
		Kill(Event Player, Null);
		Loop If Condition Is True;
	}
}

Changelog

12 days ago 1.1.0

Fixed a bug where widowmaker and junkrat using their secondary ability wouldn't allow them to go to the shop. Also added Ilios Well.

68NN7
click to copy
12 days ago 1.1.0

This revision contains no notes

9T11G
click to copy