Back to home

Island Party - Heroes Minigames

2JZMY
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:
Jokaes

Rating:
4

Version:
0.6.0-14.alpha

Posted:
about 1 month ago

Last updated:
3 hours ago

Tags:
party minigames island while you wait jokaes

Project Links

Share this workshop!

Options

Join my discord.gg/ZdukXgB

This game mode is still in alpha development

Island Party - Heroes Minigames

Play fast rounds of 14/? minigames with some classic custom games such as Ana paintball, Widow HS only, Torb Hammer only, McCree Hot Potato...

Hero Gamemode Play it more on Creator Dev notes
Ana Paintball Implemented
Ashe Shooting Gallery To do
Bastion World of Tanks Implemented
Brigitte Boop 55MMT / VQVRG Farron / Block Implemented
Doomfist Sumo 9G11W Crebos & Caluminium Implemented
Echo Rings To do
Dva Air Race To do
Genji Dash DDNSZ Gantz Implemented
McCree Hot Potato E515J Kevlar Implemented
Mercy 1 Punch Implemented
Phara Pharmercy Simulated DKKKD Seita Implemented
Reinhardt Last Man Bouncing YDCCV Kevlar & Jinko To do
Roadhog 12 Hooks 1 Hole 1NNNR Block To do
Sigma Dodgeball 1RM7M / GYPF6 Pug / Voxcae To do
Soldier: 76 Sprint Racing STJTC Darwin Implemented
Sombra Hack To Kill YJK0D6 TehFoot Implemented
Torbjörn Hammer only Implemented
Tracer Steal the crown 1FM74 Kevlar Implemented
Widowmaker HS Only Implemented
Winston Sumo To do
Zenyatta Sparta Darwin Implemented

If you're a creator and want your name delete it from the list or if you want your game in the list. Write me in Discord Jokaes#7137 or Battle.net Jokaes#2263.

Example of credit Example of credit

Version scheme => mayorUpdate.minorUpdate.fix-nMinigames[.prerelease]

settings
{
	main
	{
		Description: "Island Party - Heroes Minigames || Play rounds of 14/? classic custom games as minigames and score points. Ana paintball, Widow HS only, Torb Hammer only...  v0.6.0-14.alpha Join my discord.gg/ZdukXgB ~Created by Jokaes#2263 Updated code & more: jokaes.github.io"
	}

	lobby
	{
		Allow Players Who Are In Queue: Yes
		Match Voice Chat: Enabled
		Max Spectators: 6
	}

	modes
	{
		Deathmatch
		{
			enabled maps
			{
				Workshop Island
			}
		}

		General
		{
			Allow Hero Switching: Off
			Game Mode Start: Immediately
			Hero Limit: Off
			Kill Cam: Off
			Respawn As Random Hero: On
			Self Initiated Respawn: Off
			Skins: Off
		}
	}

	heroes
	{
		General
		{
			Ana
			{
				Biotic Grenade: Off
				Damage Dealt: 500%
				Damage Received: 500%
				Health: 10%
				No Ammunition Requirement: On
				Quick Melee: Off
				Sleep Dart Cooldown Time: 25%
				Ultimate Ability Nano Boost: Off
			}

			Bastion
			{
				Infinite Ultimate Duration: On
				No Ammunition Requirement: On
				Quick Melee: Off
				Reconfigure: Off
				Self-Repair: Off
				Spawn With Ultimate Ready: On
				Ultimate Duration: 500%
				Ultimate Generation - Combat Configuration: Tank: 500%
				Ultimate Generation - Passive Configuration: Tank: 500%
				Ultimate Generation Configuration: Tank: 500%
			}

			Brigitte
			{
				Barrier Shield Cooldown Time: 200%
				Barrier Shield Recharge Rate: 150%
				Damage Dealt: 500%
				Jump Vertical Speed: 200%
				Primary Fire: Off
				Quick Melee: Off
				Repair Pack: Off
				Shield Bash Cooldown Time: 35%
				Ultimate Generation - Combat Rally: 200%
				Ultimate Generation - Passive Rally: 0%
				Whip Shot Cooldown Time: 30%
				Whip Shot Knockback Scalar: 200%
			}

			Doomfist
			{
				Damage Dealt: 10%
				Damage Received: 10%
				Health: 500%
				Primary Fire: Off
				Quick Melee: Off
				Rising Uppercut Cooldown Time: 80%
				Rocket Punch Cooldown Time: 50%
				Rocket Punch Knockback Scalar: 250%
				Seismic Slam: Off
				Ultimate Generation - Combat Meteor Strike: 50%
				Ultimate Generation - Passive Meteor Strike: 0%
			}

			Genji
			{
				Damage Dealt: 500%
				Deflect: Off
				Primary Fire: Off
				Secondary Fire: Off
				Swift Strike Cooldown Time: 30%
				Ultimate Generation - Combat Dragonblade: 500%
				Ultimate Generation - Passive Dragonblade: 0%
				Ultimate Generation Dragonblade: 200%
			}

			McCree
			{
				Combat Roll Cooldown Time: 80%
				Damage Dealt: 10%
				Damage Received: 10%
				Flashbang: Off
				Jump Vertical Speed: 300%
				No Ammunition Requirement: On
				Secondary Fire: Off
				Ultimate Ability Deadeye: Off
			}

			Mercy
			{
				Damage Dealt: 500%
				Damage Received: 500%
				Guardian Angel Cooldown Time: 0%
				Movement Speed: 150%
				Primary Fire: Off
				Secondary Fire: Off
				Ultimate Generation - Combat Valkyrie: 500%
				Ultimate Generation Valkyrie: 500%
			}

			Soldier: 76
			{
				Biotic Field: Off
				Helix Rockets: Off
				Primary Fire: Off
				Quick Melee: Off
				Ultimate Ability Tactical Visor: Off
			}

			Sombra
			{
				Hack Cooldown Time: 0%
				Primary Fire: Off
				Quick Melee: Off
				Ultimate Generation - Combat EMP: 10%
				Ultimate Generation - Passive EMP: 500%
			}

			Torbjörn
			{
				Deploy Turret: Off
				Overload Cooldown Time: 25%
				Secondary Fire: Off
				Ultimate Ability Molten Core: Off
				Weapons Enabled: Forge Hammer Only
			}

			Tracer
			{
				Damage Dealt: 10%
				Damage Received: 10%
				Movement Speed: 130%
				Primary Fire: Off
				Recall Cooldown Time: 1%
				Ultimate Ability Pulse Bomb: Off
			}

			Widowmaker
			{
				Grappling Hook Cooldown Time: 25%
				No Ammunition Requirement: On
				No Automatic Fire: On
				Quick Melee: Off
				Receive Headshots Only: On
				Ultimate Ability Infra-Sight: Off
				Venom Mine: Off
			}

			Zenyatta
			{
				Damage Dealt: 10%
				Damage Received: 10%
				Orb of Discord: Off
				Orb of Harmony: Off
				Primary Fire: Off
				Secondary Fire: Off
				Ultimate Ability Transcendence: Off
			}

			enabled heroes
			{
				Ana
				Bastion
				Brigitte
				Doomfist
				Genji
				McCree
				Mercy
				Pharah
				Soldier: 76
				Sombra
				Torbjörn
				Tracer
				Widowmaker
				Zenyatta
			}
		}
	}
}

variables
{
	global:
		0: timeCounter
		1: roundTimer
		2: roundNumber
		3: playersStartOfTheRound
		4: heroList
		5: heroModeSelector
		6: heroesRounds
		7: heroOfTheRound
		8: heroOfPreviousRound
		9: crownPos
		10: crownEffect
		11: tracerQueen
		12: soldierObjectivePos
		13: soldierObjective
		14: soldierObjective2
		15: soldierObjective3
		16: soldierObjectiveIcon
		17: potatoPos
		18: potatoHolder
		19: potatoEffect
		20: potatoIcon

	player:
		0: queenPoints
		1: queenPointsHUD
		2: sprint
		3: soldierPoints
		4: soldierPointsHUD
		5: mccreeInvincibleTime
		6: mccreeInvincibleText
		7: mccreeInvincibleHUD
		8: mccreeHealthHUD
		9: pharahHealEffect
		10: pharahDamageBoostEffect
		11: pharahHeal
		12: pharahDamageBoost
}

subroutines
{
	0: gameModeDescriptionMessages
}

rule("Disable bulit-in game mode & start timer variables {Game in progress GLOBAL}")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
	}

	actions
	{
		Disable Built-In Game Mode Completion;
		Disable Built-In Game Mode Music;
		Disable Built-In Game Mode Announcer;
		Disable Built-In Game Mode Scoring;
		Enable Death Spectate All Players(All Players(All Teams));
		Disable Built-In Game Mode Respawning(All Players(All Teams));
		disabled Disable Inspector Recording;
		Pause Match Time;
		Set Global Variable(timeCounter, 0.001);
		Set Global Variable(roundTimer, 60);
		"Creates a HUD in the top with [svr load: {0} | svr avg: {1} | svr peak: {2}]"
		Create HUD Text(Filtered Array(Host Player, Compare(Custom String("#Jokaes", Null, Null, Null), ==, String("#{0}", Host Player,
			Null, Null))), Null, Custom String("svr load: {0} | svr avg: {1} | svr peak: {2}", Server Load, Server Load Average,
			Server Load Peak), Null, Top, -100, White, Purple, White, Visible To and String, Default Visibility);
		"Timer or the round HUD {Standard}"
		Create HUD Text(Filtered Array(All Players(All Teams), Compare(Global Variable(roundTimer), >, 10)), Custom String(":{0}",
			Round To Integer(Global Variable(roundTimer), To Nearest), Null, Null), Null, Null, Right, -999, White, White, White,
			Visible To and String, Default Visibility);
		"Timer or the round HUD {Last moments}"
		Create HUD Text(Filtered Array(All Players(All Teams), Compare(Global Variable(roundTimer), <=, 10)), Custom String(":{0}",
			Round To Integer(Global Variable(roundTimer), To Nearest), Null, Null), Null, Null, Right, -999, Red, White, White,
			Visible To and String, Default Visibility);
	}
}

rule("Time Counter - Add minute")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
	}

	actions
	{
		Set Match Time(Global Variable(timeCounter));
		Wait(60, Ignore Condition);
		Modify Global Variable(timeCounter, Add, 1);
		Loop;
	}
}

rule("Is in setup {GLOBAL}")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is In Setup == True;
	}

	actions
	{
		Enable Death Spectate All Players(All Players(All Teams));
		Disable Built-In Game Mode Respawning(All Players(All Teams));
		Set Global Variable(roundNumber, -1);
		Set Global Variable(heroModeSelector, Random Integer(0, Subtract(Count Of(Global Variable(heroList)), 1)));
		Set Global Variable(heroList, Empty Array);
		Modify Global Variable(heroList, Append To Array, Hero(Ana));
		Modify Global Variable(heroList, Append To Array, Hero(Bastion));
		Modify Global Variable(heroList, Append To Array, Hero(Brigitte));
		Modify Global Variable(heroList, Append To Array, Hero(Doomfist));
		Modify Global Variable(heroList, Append To Array, Hero(Genji));
		Modify Global Variable(heroList, Append To Array, Hero(McCree));
		Modify Global Variable(heroList, Append To Array, Hero(Mercy));
		Modify Global Variable(heroList, Append To Array, Hero(Pharah));
		Modify Global Variable(heroList, Append To Array, Hero(Soldier: 76));
		Modify Global Variable(heroList, Append To Array, Hero(Sombra));
		Modify Global Variable(heroList, Append To Array, Hero(Torbjörn));
		Modify Global Variable(heroList, Append To Array, Hero(Tracer));
		Modify Global Variable(heroList, Append To Array, Hero(Widowmaker));
		Modify Global Variable(heroList, Append To Array, Hero(Zenyatta));
		Set Global Variable(heroOfTheRound, Value In Array(Global Variable(heroList), Global Variable(heroModeSelector)));
		Create HUD Text(All Players(All Teams), Null, Null, Custom String("Island Party - Heroes Minigames v0.6.0-14.alpha", Null, Null,
			Null), Left, -998, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(
			"Play rounds of {0}/? classic custom games as minigames and score points", Count Of(Global Variable(heroList)), Null, Null),
			Left, -997, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String("Updated code and my codes in: jokaes.github.io", Null, Null,
			Null), Left, -996, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String("Created by Jokaes#2263", Null, Null, Null), Left, -995, White,
			White, White, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, String("{0} {1} {2}", String("Round", Null, Null, Null), String("{0}:",
			Global Variable(roundNumber), Null, Null), Global Variable(heroOfTheRound)), Null, Left, 999, White, White, White,
			Visible To and String, Default Visibility);
		Wait(1.500, Ignore Condition);
		Start Forcing Player To Be Hero(All Players(All Teams), Global Variable(heroOfTheRound));
		Set Global Variable(potatoPos, Vector(500, 500, 500));
		Create HUD Text(Global Variable(tracerQueen), Custom String("QUEEN", Null, Null, Null), Null, Null, Left, 2, Yellow, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ", Null, Null, Null), Left, -999, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ", Null, Null, Null), Left, -999, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ", Null, Null, Null), Left, -999, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ", Null, Null, Null), Left, -999, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ", Null, Null, Null), Left, -999, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ", Null, Null, Null), Left, -999, White, White, White,
			Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String(" ", Null, Null, Null), Left, -999, White, White, White,
			Visible To and String, Default Visibility);
	}
}

rule("Is game in progress {PLAYER}")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
	}

	actions
	{
		Start Rule(gameModeDescriptionMessages, Do Nothing);
		Enable Death Spectate All Players(Event Player);
		Disable Built-In Game Mode Respawning(Event Player);
		Preload Hero(Event Player, Global Variable(heroList));
		Set Global Variable(playersStartOfTheRound, All Players(All Teams));
		Set Player Variable(Event Player, pharahHeal, True);
		Set Player Variable(Event Player, pharahDamageBoost, False);
	}
}

rule("Player join in setup")
{
	event
	{
		Player Joined Match;
		All;
		All;
	}

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

	actions
	{
		Wait(0.512, Ignore Condition);
		Set Player Variable(Event Player, queenPoints, 0);
		Set Player Variable(Event Player, soldierPoints, 0);
		Set Player Variable(Event Player, pharahHeal, True);
		Set Player Variable(Event Player, pharahDamageBoost, False);
		Start Forcing Player To Be Hero(Event Player, Global Variable(heroOfTheRound));
		Preload Hero(Event Player, Global Variable(heroList));
		Set Respawn Max Time(Event Player, 9999);
	}
}

rule("Player join with game in progress")
{
	event
	{
		Player Joined Match;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
	}

	actions
	{
		Start Rule(gameModeDescriptionMessages, Do Nothing);
		Set Player Variable(Event Player, queenPoints, 0);
		Set Player Variable(Event Player, soldierPoints, 0);
		Set Player Variable(Event Player, pharahHeal, True);
		Set Player Variable(Event Player, pharahDamageBoost, False);
		Disable Built-In Game Mode Respawning(Event Player);
		Wait(0.512, Ignore Condition);
		Start Forcing Player To Be Hero(Event Player, Global Variable(heroOfTheRound));
		Teleport(Event Player, Vector(500, 500, 500));
		Clear Status(Event Player, Unkillable);
		Wait(0.512, Ignore Condition);
		Kill(Event Player, Null);
		Preload Hero(Event Player, Global Variable(heroList));
		Set Respawn Max Time(Event Player, 9999);
	}
}

rule("Force players to be the hero of the round")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

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

	actions
	{
		Start Forcing Player To Be Hero(Event Player, Global Variable(heroOfTheRound));
	}
}

rule("Create new round {OUT OF TIME}")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Global Variable(roundTimer) <= 0;
	}

	actions
	{
		Set Global Variable(roundTimer, 60);
		Wait(0.032, Ignore Condition);
		Set Global Variable(heroOfPreviousRound, Global Variable(heroOfTheRound));
		Set Global Variable(heroModeSelector, Random Integer(0, Subtract(Count Of(Global Variable(heroList)), 1)));
		Set Global Variable At Index(heroesRounds, Global Variable(heroModeSelector), True);
		Set Global Variable(heroOfTheRound, Value In Array(Global Variable(heroList), Global Variable(heroModeSelector)));
		Wait(0.032, Ignore Condition);
		Loop If(Compare(Global Variable(heroOfTheRound), ==, Global Variable(heroOfPreviousRound)));
		Respawn(All Players(All Teams));
		Resurrect(All Players(All Teams));
		Wait(0.250, Ignore Condition);
		Start Forcing Player To Be Hero(All Players(All Teams), Global Variable(heroOfTheRound));
		Modify Global Variable(roundNumber, Add, 1);
		Big Message(All Players(All Teams), Custom String("ROUND {0}", Global Variable(roundNumber), Null, Null));
		Chase Global Variable At Rate(roundTimer, 0, 1, None);
		Set Global Variable(playersStartOfTheRound, All Players(All Teams));
	}
}

rule("Create new round {LAST PLAYER ALIVE}")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Number of Living Players(All Teams) <= 1;
	}

	actions
	{
		Set Global Variable(roundTimer, 60);
		Wait(0.032, Ignore Condition);
		Set Global Variable(heroOfPreviousRound, Global Variable(heroOfTheRound));
		Set Global Variable(heroModeSelector, Random Integer(0, Subtract(Count Of(Global Variable(heroList)), 1)));
		Set Global Variable At Index(heroesRounds, Global Variable(heroModeSelector), True);
		Set Global Variable(heroOfTheRound, Value In Array(Global Variable(heroList), Global Variable(heroModeSelector)));
		Wait(0.032, Ignore Condition);
		Loop If(Compare(Global Variable(heroOfTheRound), ==, Global Variable(heroOfPreviousRound)));
		Respawn(All Players(All Teams));
		Resurrect(All Players(All Teams));
		Wait(0.250, Ignore Condition);
		Start Forcing Player To Be Hero(All Players(All Teams), Global Variable(heroOfTheRound));
		Modify Global Variable(roundNumber, Add, 1);
		Big Message(All Players(All Teams), Custom String("ROUND {0}", Global Variable(roundNumber), Null, Null));
		Chase Global Variable At Rate(roundTimer, 0, 1, None);
		Set Global Variable(playersStartOfTheRound, All Players(All Teams));
	}
}

rule("Full heal and score on kill")
{
	event
	{
		Player Dealt Final Blow;
		All;
		All;
	}

	conditions
	{
		Hero Of(Event Player) != Hero(McCree);
	}

	actions
	{
		Play Effect(All Players(All Teams), Good Pickup Effect, Green, Event Player, 1);
		Heal(Event Player, Null, Max Health(Event Player));
		Modify Player Score(Event Player, 1);
		Small Message(Event Player, Custom String(" 1 point with {0} {1}", Hero Icon String(Hero Of(Event Player)), Hero Of(Event Player),
			Null));
	}
}

rule("String Arrays (Title, credit, code and instructions)")
{
	event
	{
		Ongoing - Global;
	}

	actions
	{
		Create HUD Text(All Players(All Teams), Value In Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Empty Array, Custom String("{0} PAINTBALL {0}", Hero Icon String(Hero(Ana)),
			Null, Null)), Custom String("{0} WORLD OF TANKS {0}", Hero Icon String(Hero(Bastion)), Null, Null)), Custom String(
			"{0} BOOP {0}", Hero Icon String(Hero(Brigitte)), Null, Null)), Custom String("{0} SUMO {0}", Hero Icon String(Hero(Doomfist)),
			Null, Null)), Custom String("{0} DASH {0}", Hero Icon String(Hero(Genji)), Null, Null)), Custom String("{0} HOT POTATO {0}",
			Hero Icon String(Hero(McCree)), Null, Null)), Custom String("{0} 1 PUNCH {0}", Hero Icon String(Hero(Mercy)), Null, Null)),
			Custom String("{0} PHARMERCY SIMULATED {0}", Hero Icon String(Hero(Pharah)), Null, Null)), Custom String(
			"{0} SPRINT RACING {0}", Hero Icon String(Hero(Soldier: 76)), Null, Null)), Custom String("{0} HACK TO KILL {0}",
			Hero Icon String(Hero(Sombra)), Null, Null)), Custom String("{0} HAMMER ONLY {0}", Hero Icon String(Hero(Torbjörn)), Null,
			Null)), Custom String("{0} STEAL THE CROWN {0}", Hero Icon String(Hero(Tracer)), Null, Null)), Custom String("{0} HS ONLY {0}",
			Hero Icon String(Hero(Widowmaker)), Null, Null)), Custom String("{0} SPARTA MODE {0}", Hero Icon String(Hero(Zenyatta)), Null,
			Null)), Global Variable(heroModeSelector)), Custom String("", Null, Null, Null), Custom String("", Null, Null, Null), Top, -3,
			Orange, White, White, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Value In Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Empty Array, Custom String("", Null, Null, Null)), Custom String("", Null,
			Null, Null)), Custom String("Play it more on 55MMT / VQVRG", Null, Null, Null)), Custom String("Play it more on 9G11W", Null,
			Null, Null)), Custom String("Play it more on DDNSZ", Null, Null, Null)), Custom String("Play it more on E515J", Null, Null,
			Null)), Custom String("", Null, Null, Null)), Custom String("Play it more on DKKKD", Null, Null, Null)), Custom String(
			"Play it more on STJTC", Null, Null, Null)), Custom String("Play it more on YJK0D6", Null, Null, Null)), Custom String("",
			Null, Null, Null)), Custom String("Play it more on 1FM74", Null, Null, Null)), Custom String("", Null, Null, Null)),
			Custom String("", Null, Null, Null)), Global Variable(heroModeSelector)), Top, -2, White, White, White, Visible To and String,
			Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Value In Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Empty Array, Custom String("", Null, Null, Null)), Custom String("", Null,
			Null, Null)), Custom String("BY FARRON / BLOCK", Null, Null, Null)), Custom String("BY CREBOS & CLAMINUIM", Null, Null, Null)),
			Custom String("BY GANTZ", Null, Null, Null)), Custom String("BY KEVLAR", Null, Null, Null)), Custom String("", Null, Null,
			Null)), Custom String("BY SEITA", Null, Null, Null)), Custom String("BY DARWIN", Null, Null, Null)), Custom String(
			"BY TEHFOOT", Null, Null, Null)), Custom String("", Null, Null, Null)), Custom String("BY KEVLAR", Null, Null, Null)),
			Custom String("", Null, Null, Null)), Custom String("ORIGINALLY CREATED BY DARWIN", Null, Null, Null)), Global Variable(
			heroModeSelector)), Top, -1, White, White, White, Visible To and String, Default Visibility);
		Create HUD Text(All Players(All Teams), Null, Null, Value In Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(Append To Array(
			Append To Array(Append To Array(Append To Array(Empty Array, Custom String("One shoot to kill!", Null, Null, Null)),
			Custom String(
			"A tank is made up of thousands of moving parts, but the most important is YOU. Take control of the ultimate strategic shoo{0}",
			Custom String("ter!", Null, Null, Null), Null, Null)), Custom String("Boop them out of the Island!", Null, Null, Null)),
			Custom String("Get everyone out of the plataform!", Null, Null, Null)), Custom String("Dash!", Null, Null, Null)),
			Custom String("Pass the hot potato to someone else!", Null, Null, Null)), Custom String("Punch to kill and get ultimate!",
			Null, Null, Null)), Custom String("Kill them all with your Mercy pocket simulated!", Null, Null, Null)), Custom String(
			"Gotta go fast to the objectives!", Null, Null, Null)), Custom String("Hack an opponent to kill them!", Null, Null, Null)),
			Custom String("Overload and hammer down!", Null, Null, Null)), Custom String("Meele to steal the crown!", Null, Null, Null)),
			Custom String("Aim to head!", Null, Null, Null)), Custom String("Kick them for Spartaaa!", Null, Null, Null)), Global Variable(
			heroModeSelector)), Top, 1, White, White, White, Visible To and String, Default Visibility);
	}
}

rule("Description and credit (Small Messages)")
{
	event
	{
		Subroutine;
		gameModeDescriptionMessages;
	}

	actions
	{
		Wait(3.500, Ignore Condition);
		Small Message(Event Player, Custom String("Island Party - Heroes Minigames v0.6.0-14.alpha", Null, Null, Null));
		Wait(3.500, Ignore Condition);
		Small Message(Event Player, Custom String("Play rounds of {0} minigames", Count Of(Global Variable(heroList)), Null, Null));
		Wait(3.500, Ignore Condition);
		Small Message(Event Player, Custom String("Created by Jokaes#2263", Null, Null, Null));
	}
}

rule("----- HEROES -----")
{
	event
	{
		Ongoing - Global;
	}
}

rule("ZEN mega-kick")
{
	event
	{
		Player Dealt Damage;
		All;
		Zenyatta;
	}

	actions
	{
		Apply Impulse(Victim, Add(Facing Direction Of(Event Player), Vector(0, 0.100, 0)), 75, To World, Cancel Contrary Motion);
	}
}

rule("TRACER create crown")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Tracer);
		Global Variable(tracerQueen) == Null;
	}

	actions
	{
		Destroy Effect(Global Variable(crownEffect));
		Set Global Variable(crownPos, Vector(0, 1.500, 0));
		Create Effect(All Players(All Teams), Good Aura, Yellow, Global Variable(crownPos), 1, Visible To Position and Radius);
		Set Global Variable(crownEffect, Last Created Entity);
	}
}

rule("TRACER stun & steal")
{
	event
	{
		Player Dealt Damage;
		All;
		Tracer;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Tracer);
	}

	actions
	{
		Set Status(Victim, Event Player, Stunned, 0.750);
		If(Compare(Global Variable(tracerQueen), ==, Victim));
			Play Effect(All Players(All Teams), Buff Impact Sound, Yellow, Event Player, 50);
			Set Global Variable(tracerQueen, Attacker);
			Set Global Variable(crownPos, Attacker);
		End;
	}
}

rule("TRACER init queen")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Tracer);
	}

	actions
	{
		Set Player Variable(Event Player, queenPoints, 0);
		Wait(0.256, Ignore Condition);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} : {1} / 10", Event Player, Player Variable(Event Player,
			queenPoints), Null), Left, Multiply(Add(Player Variable(Event Player, queenPoints), 10), -1), White, White, Yellow,
			Visible To Sort Order and String, Default Visibility);
		Set Player Variable(Event Player, queenPointsHUD, Last Text ID);
	}
}

rule("TRACER first queen")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Distance Between(Event Player, Position Of(Global Variable(crownEffect))) <= 1.500;
		Global Variable(heroOfTheRound) == Hero(Tracer);
		Global Variable(tracerQueen) == Null;
	}

	actions
	{
		Wait(0.064, Abort When False);
		Set Global Variable(tracerQueen, Event Player);
		Set Global Variable(crownPos, Event Player);
	}
}

rule("TRACER queen points")
{
	event
	{
		Ongoing - Each Player;
		All;
		Tracer;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Global Variable(heroOfTheRound) == Hero(Tracer);
		Global Variable(tracerQueen) == Event Player;
	}

	actions
	{
		Wait(1, Abort When False);
		Modify Player Variable(Event Player, queenPoints, Add, 1);
		Play Effect(All Players(All Teams), Good Pickup Effect, Yellow, Event Player, 1);
		Play Effect(All Players(All Teams), Buff Explosion Sound, Yellow, Event Player, 50);
		Loop If Condition Is True;
	}
}

rule("TRACER queen winner")
{
	event
	{
		Ongoing - Each Player;
		All;
		Tracer;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Tracer);
		Global Variable(tracerQueen) == Event Player;
		Player Variable(Event Player, queenPoints) >= 10;
	}

	actions
	{
		Modify Player Score(Event Player, Count Of(Global Variable(playersStartOfTheRound)));
		Small Message(Event Player, Custom String(" {0} points with {1} {2}", Count Of(Global Variable(playersStartOfTheRound)),
			Hero Icon String(Hero Of(Event Player)), Hero Of(Event Player)));
		Kill(Remove From Array(All Players(All Teams), Event Player), Null);
	}
}

rule("TRACER dead queen")
{
	event
	{
		Player Died;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Tracer);
		Global Variable(tracerQueen) == Event Player;
	}

	actions
	{
		Set Global Variable(tracerQueen, Null);
		Set Global Variable(crownPos, Vector(0, 1.500, 0));
	}
}

rule("TRACER leaver queen")
{
	event
	{
		Player Left Match;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Tracer);
		Global Variable(tracerQueen) == Event Player;
	}

	actions
	{
		Set Global Variable(tracerQueen, Null);
		Set Global Variable(crownPos, Vector(0, 1.500, 0));
	}
}

rule("TRACER destroy crown")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(Tracer);
	}

	actions
	{
		Destroy Effect(Global Variable(crownEffect));
	}
}

rule("TRACER queen end of the round")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(Tracer);
	}

	actions
	{
		Set Player Variable(Event Player, queenPoints, 0);
		Destroy HUD Text(Player Variable(Event Player, queenPointsHUD));
		Set Global Variable(tracerQueen, Null);
	}
}

rule("SOLDIER init & phased out")
{
	event
	{
		Ongoing - Each Player;
		All;
		Soldier: 76;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Soldier: 76);
	}

	actions
	{
		Set Status(Event Player, Null, Phased Out, Global Variable(roundTimer));
		Set Player Variable(Event Player, soldierPoints, 0);
		Wait(0.256, Ignore Condition);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} : {1} / 5", Event Player, Player Variable(Event Player,
			soldierPoints), Null), Left, Multiply(Add(Player Variable(Event Player, soldierPoints), 10), -1), White, White, Blue,
			Visible To Sort Order and String, Default Visibility);
		Set Player Variable(Event Player, soldierPointsHUD, Last Text ID);
	}
}

rule("SOLDIER sprint")
{
	event
	{
		Ongoing - Each Player;
		All;
		Soldier: 76;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Using Ability 1(Event Player) == True;
		Horizontal Speed Of(Event Player) > 5;
		Global Variable(heroOfTheRound) == Hero(Soldier: 76);
	}

	actions
	{
		Set Status(Event Player, Null, Phased Out, 60);
		Modify Player Variable(Event Player, sprint, Add, 1);
		Set Move Speed(Event Player, Player Variable(Event Player, sprint));
		Wait(0.100, Ignore Condition);
		Loop If Condition Is True;
		Set Player Variable(Event Player, sprint, 100);
		Set Move Speed(Event Player, 100);
	}
}

rule("SOLDIER off phased out and speed")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(Soldier: 76);
		Hero Of(Event Player) != Hero(Soldier: 76);
	}

	actions
	{
		Clear Status(Event Player, Phased Out);
		Set Move Speed(Event Player, 100);
	}
}

rule("SOLDIER objective")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Soldier: 76);
	}

	actions
	{
		Set Global Variable(soldierObjectivePos, Vector(Random Real(-16, 16), 0, Random Real(-16, 16)));
		Create Effect(All Players(All Teams), Light Shaft, Blue, Global Variable(soldierObjectivePos), 1.500,
			Visible To Position and Radius);
		Set Global Variable(soldierObjective, Last Created Entity);
		Create Effect(All Players(All Teams), Light Shaft, Blue, Global Variable(soldierObjectivePos), 1.500,
			Visible To Position and Radius);
		Set Global Variable(soldierObjective2, Last Created Entity);
		Create Effect(All Players(All Teams), Light Shaft, Blue, Global Variable(soldierObjectivePos), 1.500,
			Visible To Position and Radius);
		Set Global Variable(soldierObjective3, Last Created Entity);
		Wait(0.016, Ignore Condition);
		Create Icon(All Players(All Teams), Global Variable(soldierObjectivePos), Flag, Visible To and Position, Blue, True);
		Set Global Variable(soldierObjectiveIcon, Last Created Entity);
	}
}

rule("SOLDIER point")
{
	event
	{
		Ongoing - Each Player;
		All;
		Soldier: 76;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Distance Between(Event Player, Global Variable(soldierObjectivePos)) <= 1.550;
		Global Variable(heroOfTheRound) == Hero(Soldier: 76);
	}

	actions
	{
		Modify Player Score(Event Player, 1);
		Small Message(Event Player, Custom String(" 1 point with {0} {1}", Hero Icon String(Hero Of(Event Player)), Hero Of(Event Player),
			Null));
		Modify Player Variable(Event Player, soldierPoints, Add, 1);
		Set Global Variable(soldierObjectivePos, Vector(Random Real(-16, 16), 0, Random Real(-16, 16)));
		Play Effect(All Players(All Teams), Good Pickup Effect, Blue, Event Player, 1);
		Play Effect(All Players(All Teams), Buff Explosion Sound, Blue, Event Player, 100);
	}
}

rule("SOLDIER winner")
{
	event
	{
		Ongoing - Each Player;
		All;
		Soldier: 76;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Soldier: 76);
		Player Variable(Event Player, soldierPoints) >= 5;
	}

	actions
	{
		disabled Kill(Remove From Array(All Living Players(All Teams), Event Player), Event Player);
		Set Global Variable(roundTimer, 0);
	}
}

rule("SOLDIER end of the round {GLOBAL}")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(Soldier: 76);
	}

	actions
	{
		Destroy Effect(Global Variable(soldierObjective));
		Destroy Effect(Global Variable(soldierObjective2));
		Destroy Effect(Global Variable(soldierObjective3));
		Destroy Icon(Global Variable(soldierObjectiveIcon));
	}
}

rule("SOLDIER end of the round {EACH PLAYER}")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(Soldier: 76);
	}

	actions
	{
		Set Player Variable(Event Player, soldierPoints, 0);
		Destroy HUD Text(Player Variable(Event Player, soldierPointsHUD));
	}
}

rule("MCCREE init player")
{
	event
	{
		Ongoing - Each Player;
		All;
		McCree;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
	}

	actions
	{
		Wait(0.256, Ignore Condition);
		Create HUD Text(All Players(All Teams), Null, Null, Custom String("{0} : {1}", Event Player, Round To Integer(Health(Event Player),
			Up), Null), Left, Multiply(Health(Event Player), -1), White, White, Red, Visible To Sort Order and String, Default Visibility);
		Set Player Variable(Event Player, mccreeHealthHUD, Last Text ID);
	}
}

rule("MCCREE choose a potato holder")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Global Variable(potatoHolder) == Null;
	}

	actions
	{
		Set Global Variable(potatoHolder, Random Value In Array(All Living Players(All Teams)));
		Set Global Variable(potatoPos, Global Variable(potatoHolder));
	}
}

rule("MCCREE potato effect")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
	}

	actions
	{
		Create Effect(All Players(All Teams), Bad Aura, Red, Global Variable(potatoPos), 1, Visible To Position and Radius);
		Set Global Variable(potatoEffect, Last Created Entity);
		Create Icon(All Players(All Teams), Global Variable(potatoPos), Fire, Visible To and Position, Red, True);
		Set Global Variable(potatoIcon, Last Created Entity);
	}
}

rule("MCCREE potato holder")
{
	event
	{
		Ongoing - Each Player;
		All;
		McCree;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Event Player == Global Variable(potatoHolder);
	}

	actions
	{
		Set Status(Event Player, Null, Burning, Global Variable(roundTimer));
		Play Effect(All Players(All Teams), Debuff Impact Sound, White, Event Player, 50);
		Start Damage Over Time(Event Player, Null, Global Variable(roundTimer), 250);
		Set Move Speed(Event Player, 110);
		Allow Button(Event Player, Primary Fire);
		Allow Button(Event Player, Melee);
	}
}

rule("MCCREE not potato holder")
{
	event
	{
		Ongoing - Each Player;
		All;
		McCree;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Event Player != Global Variable(potatoHolder);
	}

	actions
	{
		Clear Status(Event Player, Burning);
		Stop All Damage Over Time(Event Player);
		Set Move Speed(Event Player, 100);
		Disallow Button(Event Player, Primary Fire);
		Disallow Button(Event Player, Melee);
	}
}

rule("MCCREE pas​s the potato")
{
	event
	{
		Player Dealt Damage;
		All;
		McCree;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Event Player == Global Variable(potatoHolder);
	}

	actions
	{
		Destroy In-World Text(Player Variable(Event Player, mccreeInvincibleText));
		Destroy HUD Text(Player Variable(Event Player, mccreeInvincibleHUD));
		Set Global Variable(potatoHolder, Victim);
		Set Global Variable(potatoPos, Victim);
		Set Player Variable(Event Player, mccreeInvincibleTime, 1);
		Set Status(Event Player, Null, Invincible, Player Variable(Event Player, mccreeInvincibleTime));
		Create In-World Text(Filtered Array(All Players(All Teams), Compare(Player Variable(Event Player, mccreeInvincibleTime), >, 0)),
			Custom String("INVINCIBLE: {0}", Player Variable(Event Player, mccreeInvincibleTime), Null, Null), Attacker, 1,
			Clip Against Surfaces, Visible To Position and String, Yellow, Default Visibility);
		Set Player Variable(Event Player, mccreeInvincibleText, Last Text ID);
		Wait(0.016, Ignore Condition);
		Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, mccreeInvincibleTime), >, 0)), Custom String(
			"INVINCIBLE: {0}", Player Variable(Event Player, mccreeInvincibleTime), Null, Null), Null, Null, Left, 2, Yellow, White, White,
			Visible To and String, Default Visibility);
		Set Player Variable(Event Player, mccreeInvincibleHUD, Last Text ID);
		Wait(0.016, Ignore Condition);
		Chase Player Variable Over Time(Event Player, mccreeInvincibleTime, 0, Player Variable(Event Player, mccreeInvincibleTime),
			Destination and Duration);
	}
}

rule("MCCREE potato holder dies")
{
	event
	{
		Player Died;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Event Player == Global Variable(potatoHolder);
	}

	actions
	{
		Set Global Variable(potatoHolder, Null);
	}
}

rule("MCCREE potato holder leaves")
{
	event
	{
		Player Left Match;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Event Player == Global Variable(potatoHolder);
	}

	actions
	{
		Set Global Variable(potatoHolder, Null);
	}
}

rule("MCCREE end of the round {GLOBAL}")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(McCree);
	}

	actions
	{
		Destroy Effect(Global Variable(potatoEffect));
		Destroy Icon(Global Variable(potatoIcon));
		Set Global Variable(potatoHolder, Null);
	}
}

rule("MCCREE end of the round {EACH PLAYER}")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(McCree);
	}

	actions
	{
		Clear Status(Event Player, Burning);
		Stop Damage Over Time(Last Damage Over Time ID);
		Set Move Speed(Event Player, 100);
		Allow Button(Event Player, Primary Fire);
		Allow Button(Event Player, Melee);
		Destroy HUD Text(Player Variable(Event Player, mccreeHealthHUD));
	}
}

rule("MCCREE win {OUT OF TIME}")
{
	event
	{
		Ongoing - Each Player;
		All;
		McCree;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Global Variable(roundTimer) <= 0.500;
		Number of Players(All Teams) > 1;
	}

	actions
	{
		Play Effect(All Players(All Teams), Good Pickup Effect, White, Event Player, 1);
		Play Effect(All Players(All Teams), Buff Explosion Sound, White, Event Player, 100);
		Modify Player Score(Event Player, Round To Integer(Divide(Count Of(Global Variable(playersStartOfTheRound)),
			Number of Living Players(All Teams)), Up));
		Small Message(Event Player, Custom String(" {0} points with {1} {2}", Round To Integer(Divide(Count Of(Global Variable(
			playersStartOfTheRound)), Number of Living Players(All Teams)), Up), Hero Icon String(Hero Of(Event Player)), Hero Of(
			Event Player)));
	}
}

rule("MCCREE win {LAST PLAYER ALIVE}")
{
	event
	{
		Ongoing - Each Player;
		All;
		McCree;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Global Variable(heroOfTheRound) == Hero(McCree);
		Number of Living Players(All Teams) <= 1;
		Number of Players(All Teams) > 1;
	}

	actions
	{
		Play Effect(All Players(All Teams), Good Pickup Effect, White, Event Player, 1);
		Play Effect(All Players(All Teams), Buff Explosion Sound, White, Event Player, 100);
		Modify Player Score(Event Player, Count Of(Global Variable(playersStartOfTheRound)));
		Small Message(Event Player, Custom String(" {0} points with {1} {2}", Count Of(Global Variable(playersStartOfTheRound)),
			Hero Icon String(Hero Of(Event Player)), Hero Of(Event Player)));
	}
}

rule("DOOM ult stun")
{
	event
	{
		Player Dealt Damage;
		All;
		Doomfist;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Doomfist);
		Is Using Ultimate(Attacker) == True;
	}

	actions
	{
		Set Status(Victim, Event Player, Stunned, 3);
	}
}

rule("DOOM using ult")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Doomfist);
		Is Using Ultimate(Event Player) == True;
	}

	actions
	{
		Set Move Speed(Event Player, 150);
	}
}

rule("DOOM not using ult")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Doomfist);
		Is Using Ultimate(Event Player) == False;
	}

	actions
	{
		Set Move Speed(Event Player, 100);
	}
}

rule("BASTION tank")
{
	event
	{
		Ongoing - Each Player;
		All;
		Bastion;
	}

	conditions
	{
		Is Game In Progress == True;
		Is Alive(Event Player) == True;
		Global Variable(heroOfTheRound) == Hero(Bastion);
	}

	actions
	{
		Press Button(Event Player, Ultimate);
		Wait(0.016, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule("SOMBRA hack to kill")
{
	event
	{
		Ongoing - Each Player;
		All;
		Sombra;
	}

	conditions
	{
		Has Status(Event Player, Hacked) == True;
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Sombra);
	}

	actions
	{
		disabled Kill(Event Player, Null);
		Teleport(Event Player, Vector(-500, -500, -500));
	}
}

rule("SOMBRA limit stealth duration")
{
	event
	{
		Ongoing - Each Player;
		All;
		Sombra;
	}

	conditions
	{
		Is Using Ability 1(Event Player) == True;
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Sombra);
	}

	actions
	{
		Wait(6, Abort When False);
		Press Button(Event Player, Ability 1);
		Small Message(Event Player, Custom String("Maximum Stealth Duration Reached", Null, Null, Null));
	}
}

rule("BRIG init")
{
	event
	{
		Ongoing - Each Player;
		All;
		Brigitte;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Brigitte);
	}

	actions
	{
		Set Status(Event Player, Null, Unkillable, Global Variable(roundTimer));
	}
}

rule("BRIG standard gravity")
{
	event
	{
		Ongoing - Each Player;
		All;
		Brigitte;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Brigitte);
		Is Firing Secondary(Event Player) != True;
		Has Status(Event Player, Stunned) == False;
	}

	actions
	{
		Set Gravity(Event Player, 100);
	}
}

rule("BRIG shield gravity")
{
	event
	{
		Ongoing - Each Player;
		All;
		Brigitte;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Brigitte);
		Is Firing Secondary(Event Player) == True;
	}

	actions
	{
		Set Gravity(Event Player, 200);
	}
}

rule("BRIG stunned gravity & buff")
{
	event
	{
		Ongoing - Each Player;
		All;
		Brigitte;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Brigitte);
		Has Status(Event Player, Stunned) == True;
	}

	actions
	{
		Set Status(Event Player, Null, Stunned, 1.500);
		Set Gravity(Event Player, 25);
	}
}

rule("BRIG speed-boosted shield bash")
{
	event
	{
		Ongoing - Each Player;
		All;
		Brigitte;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Brigitte);
		Is Firing Primary(Event Player) == True;
		Is Firing Secondary(Event Player) == True;
	}

	actions
	{
		Set Move Speed(Event Player, 200);
		Wait(0.250, Ignore Condition);
		Set Move Speed(Event Player, 100);
	}
}

rule("BRIG auto-healing")
{
	event
	{
		Ongoing - Each Player;
		All;
		Brigitte;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Brigitte);
		Health(Event Player) < Max Health(Event Player);
	}

	actions
	{
		Heal(Event Player, Null, Max Health(Event Player));
		Wait(0.032, Ignore Condition);
		Loop If Condition Is True;
	}
}

rule("BRIG end of the round {EACH PLAYER}")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(Brigitte);
	}

	actions
	{
		Clear Status(Event Player, Unkillable);
		Set Gravity(Event Player, 100);
		Set Move Speed(Event Player, 100);
	}
}

rule("PHARAH init effects")
{
	event
	{
		Ongoing - Each Player;
		All;
		Pharah;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Pharah);
	}

	actions
	{
		disabled Create Effect(Filtered Array(All Players(All Teams), Compare(Player Variable(Event Player, pharahHeal), ==, True)), Good Aura,
			Yellow, Event Player, 1, Visible To Position and Radius);
		Create Effect(Filtered Array(All Players(All Teams), Compare(Player Variable(Event Player, pharahHeal), ==, True)), Good Aura,
			Yellow, Event Player, 1, Visible To Position and Radius);
		Set Player Variable(Event Player, pharahHealEffect, Last Created Entity);
		Wait(0.256, Ignore Condition);
		Create Effect(Filtered Array(All Players(All Teams), Compare(Player Variable(Event Player, pharahDamageBoost), ==, True)),
			Good Aura, Aqua, Event Player, 1, Visible To Position and Radius);
		disabled Create Effect(Filtered Array(All Players(All Teams), Compare(Health(Event Player), ==, 200)), Good Aura, Aqua, Event Player, 1,
			Visible To Position and Radius);
		Set Player Variable(Event Player, pharahDamageBoostEffect, Last Created Entity);
	}
}

rule("PHARAH damage boost")
{
	event
	{
		Ongoing - Each Player;
		All;
		Pharah;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Pharah);
		Health(Event Player) == 200;
		Player Variable(Event Player, pharahHeal) == True;
	}

	actions
	{
		Set Player Variable(Event Player, pharahHeal, False);
		Set Player Variable(Event Player, pharahDamageBoost, True);
		Set Damage Dealt(Event Player, 130);
		Stop All Heal Over Time(Event Player);
		Wait(0.016, Ignore Condition);
	}
}

rule("PHARAH healing")
{
	event
	{
		Ongoing - Each Player;
		All;
		Pharah;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Pharah);
		Health(Event Player) < 200;
	}

	actions
	{
		Set Player Variable(Event Player, pharahDamageBoost, False);
		Wait(0.500, Ignore Condition);
		Set Player Variable(Event Player, pharahHeal, True);
		Set Damage Dealt(Event Player, 100);
		Start Heal Over Time(Event Player, Null, Global Variable(roundTimer), 50);
	}
}

rule("PHARAH dead")
{
	event
	{
		Player Died;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) == Hero(Pharah);
	}

	actions
	{
		Wait(0.032, Ignore Condition);
		Set Player Variable(Event Player, pharahHeal, False);
		Set Player Variable(Event Player, pharahDamageBoost, False);
		Wait(0.032, Ignore Condition);
		Destroy Effect(Player Variable(Event Player, pharahHealEffect));
		Wait(0.032, Ignore Condition);
		Destroy Effect(Player Variable(Event Player, pharahDamageBoostEffect));
		Stop All Heal Over Time(Event Player);
		Set Damage Dealt(Event Player, 100);
	}
}

rule("PHARAH end of the round {EACH PLAYER}")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Game In Progress == True;
		Global Variable(heroOfTheRound) != Hero(Pharah);
	}

	actions
	{
		Set Player Variable(Event Player, pharahHeal, False);
		Set Player Variable(Event Player, pharahDamageBoost, False);
		Destroy Effect(Player Variable(Event Player, pharahHealEffect));
		Destroy Effect(Player Variable(Event Player, pharahDamageBoostEffect));
		Stop All Heal Over Time(Event Player);
		Set Damage Dealt(Event Player, 100);
	}
}

disabled rule("----- TEST -----")
{
	event
	{
		Ongoing - Global;
	}
}

disabled rule("Lobby with Dummies (TEST)")
{
	event
	{
		Ongoing - Global;
	}

	conditions
	{
		Is In Setup == True;
	}

	actions
	{
		Create Dummy Bot(Hero(Ashe), All Teams, -1, Vector(0, 0, 0), Vector(0, 0, 0));
		Loop If(Compare(Count Of(All Players(All Teams)), <, 5));
		disabled Loop If(Compare(Count Of(All Players(All Teams)), <, 12));
	}
}

disabled rule("Dummys Summon (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Communicating(Event Player, Hello) == True;
	}

	actions
	{
		Create Dummy Bot(Hero(Ashe), All Teams, -1, Position Of(Event Player), Vector(0, 0, 0));
	}
}

disabled rule("Dummy Aim Bot (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Dummy Bot(Event Player) == True;
	}

	actions
	{
		Start Facing(Event Player, Direction Towards(Event Player, Value In Array(Sorted Array(Filtered Array(All Players(All Teams),
			Is Alive(Current Array Element)), Distance Between(Event Player, Current Array Element)), 1)), 10000, To World,
			Direction and Turn Rate);
		Start Holding Button(Event Player, Primary Fire);
		Start Holding Button(Event Player, Ability 1);
		Start Holding Button(Event Player, Secondary Fire);
		Wait(1, Ignore Condition);
		Loop If Condition Is True;
	}
}

disabled rule("Dummy Ult (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Dummy Bot(Event Player) == True;
		Ultimate Charge Percent(Event Player) == 100;
	}

	actions
	{
		Press Button(Event Player, Ultimate);
	}
}

disabled rule("Dummy Meele loop (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Dummy Bot(Event Player) == True;
	}

	actions
	{
		Start Facing(Event Player, Direction Towards(Event Player, Closest Player To(Event Player, Opposite Team Of(Team Of(
			Event Player)))), 10000, To World, Direction and Turn Rate);
		Press Button(Event Player, Melee);
		Wait(Random Real(0.250, 0.350), Ignore Condition);
		Loop If Condition Is True;
	}
}

disabled rule("Dummy Walking (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Dummy Bot(Event Player) == True;
	}

	actions
	{
		Start Throttle In Direction(Event Player, Direction Towards(Event Player, Value In Array(Sorted Array(Filtered Array(All Players(
			All Teams), Is Alive(Current Array Element)), Distance Between(Event Player, Current Array Element)), 1)), 1, To World,
			Replace existing throttle, Direction and Magnitude);
	}
}

disabled rule("Skip round (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

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

	actions
	{
		disabled Kill(All Players(All Teams), Null);
		Set Global Variable(roundTimer, 1);
	}
}

disabled rule("Force dummy to be hero of the round (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	conditions
	{
		Is Dummy Bot(Event Player) == True;
		Hero Of(Event Player) == Hero(Ashe);
	}

	actions
	{
		Start Forcing Player To Be Hero(Event Player, Global Variable(heroOfTheRound));
	}
}

disabled rule("Player horizontal speed (TEST)")
{
	event
	{
		Ongoing - Each Player;
		All;
		All;
	}

	actions
	{
		Create HUD Text(Event Player, Custom String("{0}", Horizontal Speed Of(Event Player), Null, Null), Null, Null, Left, 0, White,
			White, White, Visible To and String, Default Visibility);
	}
}

Changelog

3 hours ago 0.6.0-14.alpha

  • NEW MINIGAME Brig - Boop
  • NEW MINIGAME Pharah - Pharmercy Simulated
  • Description HUD moved down to avoid overlaping with 'while you wait' and voice chat HUD
  • Soldier - Sprint Racing necessary points changed from 6 to 5
  • Little bugfixes
  • KNOW BUG: Sometimes at the start of Pharah minigame the effects dont show up

https://www.diffchecker.com/34h8qWKM

2JZMY
click to copy
11 days ago 0.5.0-12.alpha

  • New totally new version of Sombra - Hack To Kill thanks to TehFoot
  • McCree Hot Potato new scoring system bugfix

https://www.diffchecker.com/PydGlAKk

ZEBR2
click to copy
11 days ago 0.4.0-12.alpha

  • Sombra - Hack to kill
  • Bastion - World of tanks
  • McCree Hot Potato and Tracer Steal the Crown reworked with tons of bugfixes
  • McCree Hot Potato new HUD with HP
  • Scoring system changed in some minigames
  • New small message when you win points
  • Description updated
  • New Soldier objective icon
  • Doom ult modified a bit
  • Variables reconstructed and resorted
  • Skins off. For optimization reasons (now the minigames load faster)

https://www.diffchecker.com/kueaBawO

P3232
click to copy
17 days ago 0.3.0-10.alpha

3 NEW MINIGAMES ADDED And bugfixes...

HCKGM
click to copy
24 days ago 0.2.0-7.alpha

Variables restructured New HUDs Player joining and not dying fixed New feedback effects Lots of little fixes Crown grab range increased 50% Now Soldier Sprint Racing is a first to 6 New rounds not starting fix More...

S9E9Q
click to copy
about 1 month ago 0.1.6-7.alpha

Player joining fix. Steal the Crown looks like it's working.

WWX7S
click to copy
about 1 month ago 0.1.5-7.alpha

Tons of small fixes most of then to Steal the Crown Soldier objective radius 1 -> 1.5

A5TNX
click to copy
about 1 month ago 0.1.4-7.alpha

Bug fixes and HUD updated

KA3Z9
click to copy
about 1 month ago 0.1.3-7.alpha

This revision contains no notes

3JDCF
click to copy