Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Dealing damage creates a small sphere, this can be used to confirm the size of hitboxes. R - Remove all dots created by dealing damage. F - Change the 2 leftmost bots, useful for comparing hitbox sizes."
  • Description: "Moira - Hitbox and ability visualizer. By Lotto. _____________________________________ Dealing damage creates dots for easier comparison of the hitboxes. Reload - Remove all dots created by dealing damage. Interact - Change the 2 leftmost bots. The green text highlights the active hitbox."
  • }
  • lobby
  • {
  • Max Team 1 Players: 4
  • Max Team 2 Players: 8
  • Max Team 2 Players: 0
  • }
  • modes
  • {
  • Assault
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Control
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Escort
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Hybrid
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • enabled maps
  • {
  • }
  • }
  • Skirmish
  • {
  • enabled maps
  • {
  • Workshop Chamber
  • }
  • }
  • General
  • {
  • Hero Limit: Off
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Moira
  • {
  • Biotic Orb Cooldown Time: 70%
  • }
  • }
  • }
  • extensions
  • {
  • Play More Effects
  • }
  • }
  • variables
  • {
  • global:
  • 0: bot
  • 1: smallHitbox
  • 2: bigHitbox
  • 3: lastText
  • player:
  • 0: currentHero
  • 1: entities
  • 2: healEntities
  • 3: beamEntities
  • 5: RayCast
  • 6: angle
  • 7: heals
  • 8: H0
  • 9: H1
  • 10: H2
  • 11: H3
  • 12: H4
  • 13: H5
  • 14: H6
  • 15: H7
  • 16: H8
  • 18: circleEntityHealing
  • 20: circleEntityDamage
  • }
  • subroutines
  • {
  • 0: Highlight
  • 1: CreateUltBeams
  • 2: DestroyUltBeams
  • 3: DestroyDots
  • 4: DestroyHealEffects
  • }
  • rule("init")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), Custom String(""), Null, Custom String("Press R to remove dots (from damage done)"), Left,
  • 0, Color(White), Color(White), Color(White), Visible To and String, Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String(""), Custom String("Press [{0}] to remove dots (from damage done)",
  • Input Binding String(Button(Reload))), Null, Left, 1, Color(White), Color(White), Color(White), Visible To and String,
  • Default Visibility);
  • Create HUD Text(All Players(All Teams), Custom String("Hero {0} - {1}", Host Player.currentHero + 1,
  • All Heroes[Host Player.currentHero]), Custom String("The green text highlights the active hitbox."), Custom String(
  • "{0} Press F to change the active hero.", Icon String(Arrow: Left)), Left, 0, Color(White), Color(Green), Color(White),
  • "{0} Press [{1}] to change the active hero.\n([{2}] + [{1}] to go back)", Icon String(Arrow: Left), Input Binding String(
  • Button(Interact)), Input Binding String(Button(Crouch))), Left, 0, Color(White), Color(Green), Color(White),
  • Visible To and String, Default Visibility);
  • Global.smallHitbox = Empty Array;
  • Global.bigHitbox = Empty Array;
  • Global.smallHitbox = Array(Hero(Reaper), Hero(Tracer), Hero(Mercy), Hero(Hanzo), Hero(Pharah), Hero(Widowmaker), Hero(Symmetra),
  • Hero(Zenyatta), Hero(Genji), Hero(McCree), Hero(Junkrat), Hero(Zarya), Hero(Soldier: 76), Hero(Lúcio), Hero(Mei), Hero(Sombra),
  • Hero(Ana), Hero(Brigitte), Hero(Moira), Hero(Ashe), Hero(Echo), Hero(Baptiste));
  • Global.bigHitbox = Array(Hero(Reinhardt), Hero(Bastion), Hero(Roadhog), Hero(Doomfist), Hero(Orisa));
  • Global.bot = Empty Array;
  • Wait(1, Ignore Condition);
  • Start Forcing Player To Be Hero(Host Player, Hero(Moira));
  • Wait(1, Ignore Condition);
  • disabled Start Forcing Player To Be Hero(Host Player, Hero(Moira));
  • disabled Wait(1, Ignore Condition);
  • Start Forcing Player To Be Hero(Host Player, Hero(Moira));
  • Create In-World Text(All Players(All Teams), Custom String(
  • "Normal character hitbox is used by:\r\n{0} Biotic Grasp (Primary fire - Healing) \r\n{1} Biotic Orb (Ability 2 - Damage and healing)",
  • Ability Icon String(Hero(Moira), Button(Primary Fire)), Ability Icon String(Hero(Moira), Button(Ability 2))), Vector(-10, 12,
  • -20), 1.500, Do Not Clip, Visible To Position and String, Custom Color(120, 242, 242, 255), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String(
  • "'Capsule' shaped hitbox is used by:\r\n{0} Biotic Grasp (Secondary fire - Damage)\r\n{1} Coalescence (Ultimate - Damage and healing)",
  • "'Capsule' shaped hurtbox is hit by:\r\n{0} Biotic Grasp (Secondary fire - Damage)\r\n{1} Coalescence (Ultimate - Damage and healing)",
  • Ability Icon String(Hero(Moira), Button(Secondary Fire)), Ability Icon String(Hero(Moira), Button(Ultimate))), Vector(10, 12,
  • -20), 1.500, Do Not Clip, Visible To Position and String, Custom Color(250, 85, 85, 250), Default Visibility);
  • Wait(0.250, Ignore Condition);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(20, 0, -2.502), Vector(20, 6, -2.500), Color(White),
  • Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(20, 6, -12.500), Vector(20, 6, -2.500), Color(White),
  • Visible To Position and Radius);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(20, 0, -12.502), Vector(20, 6, -12.500), Color(White),
  • Visible To Position and Radius);
  • Pause Match Time;
  • }
  • }
  • rule("player init")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Has Spawned(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.entities = Empty Array;
  • Teleport(Event Player, Vector(8, 1, -5));
  • Set Facing(Event Player, Direction Towards(Eye Position(Event Player), Vector(19.495, 3, -5)), To World);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Set Ultimate Charge(Event Player, 100);
  • Wait(Random Real(0.016, 0.300), Ignore Condition);
  • Chase Player Variable At Rate(Event Player, angle, 100000000, 720, Destination and Rate);
  • Disable Game Mode HUD(Event Player);
  • Start Forcing Player To Be Hero(Host Player, Hero(Moira));
  • }
  • }
  • rule("Dealt damage")
  • {
  • event
  • {
  • Player Dealt Damage;
  • All;
  • All;
  • }
  • actions
  • {
  • Heal(Victim, Null, Event Damage);
  • If(Event Ability == Button(Ability 2));
  • Abort;
  • End;
  • Event Player.T = Distance Between(Eye Position(Event Player), Eye Position(Victim)) / Cosine From Degrees(Angle Between Vectors(
  • Vector Towards(Eye Position(Event Player), Eye Position(Victim)), Facing Direction Of(Event Player)));
  • Event Player.R = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * Event Player.T, All Players(All Teams), Event Player, True);
  • If(Count Of(Event Player.entities) >= 85);
  • Destroy Effect(First Of(Event Player.entities));
  • Modify Player Variable(Event Player, entities, Remove From Array By Index, 0);
  • End;
  • Create Effect(All Players(All Teams), Sphere, Color(Orange), Event Player.R, 0.020, None);
  • Modify Player Variable(Event Player, entities, Append To Array, Last Created Entity);
  • If(Is Using Ultimate(Event Player));
  • Play Effect(All Players(All Teams), Bad Explosion, Color(White), Event Player.R, 0.100);
  • End;
  • }
  • }
  • rule("Dealt healing")
  • {
  • event
  • {
  • Player Dealt Healing;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Healing != 0;
  • }
  • actions
  • {
  • Damage(Healee, Null, Event Healing);
  • If(Is Using Ultimate(Event Player));
  • Event Player.R = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(Event Player)
  • * 200, All Players(All Teams), Event Player, True);
  • Play Effect(All Players(All Teams), Bad Explosion, Color(Lime Green), Event Player.R, 0.100);
  • End;
  • }
  • }
  • rule("Reload (destroy dots)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Reload)) == True;
  • }
  • actions
  • {
  • Call Subroutine(DestroyDots);
  • }
  • }
  • rule("[sub] destroy dots")
  • {
  • event
  • {
  • Subroutine;
  • DestroyDots;
  • }
  • actions
  • {
  • For Player Variable(Event Player, W, 0, Count Of(Event Player.entities), 1);
  • Destroy Effect(Event Player.entities[Event Player.W]);
  • End;
  • Event Player.entities = Empty Array;
  • }
  • }
  • rule("F (change bot hero)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Interact)) == True;
  • }
  • actions
  • {
  • If(Event Player.currentHero >= 31);
  • Event Player.currentHero = 0;
  • If(Is Button Held(Event Player, Button(Crouch)));
  • If(Event Player.currentHero <= 0);
  • Event Player.currentHero = 31;
  • Else;
  • Event Player.currentHero -= 1;
  • End;
  • Else;
  • Event Player.currentHero += 1;
  • If(Event Player.currentHero >= 31);
  • Event Player.currentHero = 0;
  • Else;
  • Event Player.currentHero += 1;
  • End;
  • End;
  • Start Forcing Player To Be Hero(Global.bot[0], All Heroes[Event Player.currentHero]);
  • Start Forcing Player To Be Hero(Global.bot[1], All Heroes[Event Player.currentHero]);
  • If(All Heroes[Event Player.currentHero] == Hero(Winston));
  • Start Forcing Player To Be Hero(Global.bot[5], Hero(Winston));
  • Else If(All Heroes[Event Player.currentHero] == Hero(Sigma));
  • Start Forcing Player To Be Hero(Global.bot[5], Hero(Sigma));
  • End;
  • Call Subroutine(Highlight);
  • Wait(0.400, Ignore Condition);
  • }
  • }
  • rule("[sub] highlight bot")
  • {
  • event
  • {
  • Subroutine;
  • Highlight;
  • }
  • actions
  • {
  • Destroy In-World Text(Global.lastText);
  • If(Array Contains(Global.smallHitbox, All Heroes[Host Player.currentHero]));
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(20, 3.800, -5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(Array Contains(Global.bigHitbox, All Heroes[Host Player.currentHero]));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.3m"), Vector(20, 3.800, -10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Torbjörn));
  • Create In-World Text(All Players(All Teams), Custom String("2m x 2.55m"), Vector(20, 3.800, 0), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Wrecking Ball));
  • Create In-World Text(All Players(All Teams), Custom String("3m x 3m"), Vector(20, 3.800, 5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(D.Va));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3m"), Vector(20, 3.800, 10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Sigma));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4.200, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • Else If(All Heroes[Host Player.currentHero] == Hero(Winston));
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4.200, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Color(Green), Default Visibility);
  • End;
  • Global.lastText = Last Text ID;
  • }
  • }
  • rule("create Big hitbox bot")
  • rule("create Big hurtbox bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(First Of(All Heroes), Team 2, -1, Vector(19.495, 0, -10), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[0], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[0], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[0], Vector(19.495, 0.900, -10), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[0]) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.3m"), Vector(20, 3.800, -10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create Small hitbox bot")
  • rule("create Small hurtbox bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(First Of(All Heroes), Team 2, -1, Vector(19.495, 0, -5), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[1], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[1], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[1], Vector(19.495, 0.900, -5), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 1.500, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 1.200, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 0.900, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[1]) + Vector(0, 0.500, 0), 1,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(20, 3.800, -5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • Call Subroutine(Highlight);
  • }
  • }
  • rule("create torb bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(Hero(Torbjörn), Team 2, -1, Vector(19.495, 0, 0), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[2], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[2], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[2], Vector(19.495, 0.900, 0), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[2]) + Vector(0, 1.500, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[2]) + Vector(0, 1.050, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[2]) + Vector(0, 0.850, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[2]) + Vector(0, 0.500, 0), 1,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 2.55m"), Vector(20, 3.800, 0), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create hammond bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(Hero(Wrecking Ball), Team 2, -1, Vector(19.495, 0, 5), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[3], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[3], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[3], Vector(19.495, 0.900, 5), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Global.bot[3], 1.500, Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[3]) + Vector(0, 0.750, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("3m x 3m"), Vector(20, 3.800, 5), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create D.va bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(Hero(D.Va), Team 2, -1, Vector(19.495, 0, 10), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[4], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[4], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[4], Vector(19.495, 0.900, 10), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[4]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[4]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[4]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[4]) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3m"), Vector(20, 3.800, 10), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create sigma/winston bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(1, Ignore Condition);
  • Create Dummy Bot(Hero(Sigma), Team 2, -1, Vector(19.495, 0, 15), Vector(-0.996, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[5], 0);
  • Wait(1, Ignore Condition);
  • Set Status(Global.bot[5], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[5], Vector(19.495, 0.900, 15), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Blue), Position Of(Global.bot[5]) + Vector(0, 1.600, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 1.800, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 1.300, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 1, 0), 1.200,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Red), Position Of(Global.bot[5]) + Vector(0, 0.700, 0), 1.200,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2.4m x 3.5m"), Vector(20, 4.200, 15), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • Create In-World Text(All Players(All Teams), Custom String("Winston / Sigma"), Vector(20, 4, 15), 0.700, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • }
  • }
  • rule("create friendly ana bot")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Wait(2, Ignore Condition);
  • Create Dummy Bot(Hero(Ana), Team 1, -1, Vector(-19.495, 1, 0), Vector(1, -0.087, 0));
  • Modify Global Variable(bot, Append To Array, Last Created Entity);
  • Set Gravity(Global.bot[6], 0);
  • Wait(0.500, Ignore Condition);
  • Set Status(Global.bot[6], Null, Unkillable, 9999);
  • Start Forcing Player Position(Global.bot[6], Vector(-19.495, 0.900, 0), False);
  • Wait(0.500, Ignore Condition);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 1.500, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 1.200, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 0.900, 0), 1,
  • Visible To Position and Radius);
  • Create Effect(All Players(All Teams), Sphere, Color(Rose), Position Of(Global.bot[6]) + Vector(0, 0.500, 0), 1,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("2m x 3m"), Vector(-20, 3.800, 0), 1.500, Do Not Clip,
  • Visible To Position and String, Color(White), Default Visibility);
  • Set Player Health(Global.bot[6], 100);
  • }
  • }
  • rule("Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Moira;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Ultimate)) == True;
  • Hero Of(Event Player) == Hero(Moira);
  • }
  • actions
  • {
  • Call Subroutine(DestroyDots);
  • Disable Hero HUD(Event Player);
  • Event Player.RayCast = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(
  • Event Player) * 30, All Players(All Teams), Event Player, True);
  • Start Camera(Event Player, Facing Direction Of(Event Player) * 0.200 + Ray Cast Hit Position(Eye Position(Event Player),
  • Eye Position(Event Player) + World Vector Of(Vector(0, 5, 2), Event Player, Rotation) + Facing Direction Of(Event Player)
  • * Vector(-3, -3, -3), All Players(All Teams), Event Player, True), Event Player.RayCast, 30);
  • Set Move Speed(Event Player, 40);
  • Call Subroutine(CreateUltBeams);
  • Wait(8.500, Ignore Condition);
  • Set Ultimate Charge(Event Player, 100);
  • Stop Camera(Event Player);
  • Call Subroutine(DestroyUltBeams);
  • Stop Facing(Event Player);
  • Set Move Speed(Event Player, 100);
  • Enable Hero HUD(Event Player);
  • }
  • }
  • rule("Ray cast Ultimate")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Moira;
  • }
  • conditions
  • {
  • Is Using Ultimate(Event Player) == True;
  • Hero Of(Event Player) == Hero(Moira);
  • }
  • actions
  • {
  • Event Player.RayCast = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(
  • Event Player) * 30, All Players(All Teams), Event Player, True);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("[sub] Create ult beams")
  • {
  • event
  • {
  • Subroutine;
  • CreateUltBeams;
  • }
  • actions
  • {
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360) * Direction From Angles(Horizontal Angle From Direction(
  • Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)), Eye Position(
  • Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360) * Cross Product(Facing Direction Of(Event Player),
  • Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(
  • Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 45) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 45) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 45)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 45) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 90) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 90) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 90)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 90) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 135) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 135) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 135)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 135) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 180) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 180) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 180)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 180) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 225) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 225) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 225)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 225) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 270) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 270) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 270)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 270) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + 315) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + 315) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + 315)
  • * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(
  • Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90)) + Sine From Degrees(
  • Event Player.angle % 360 + 315) * Direction From Angles(Horizontal Angle From Direction(Facing Direction Of(Event Player)),
  • Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(
  • White), Position and Radius);
  • disabled Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • For Global Variable(N, 0, 360, 45);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Eye Position(Event Player) + 0.515 * (Cosine From Degrees(
  • Event Player.angle % 360 + Evaluate Once(Global.N)) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)) + Sine From Degrees(Event Player.angle % 360 + Evaluate Once(Global.N)) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90)), Eye Position(Event Player) + 0.515 * (Cosine From Degrees(Event Player.angle % 360 + Evaluate Once(
  • Global.N)) * Cross Product(Facing Direction Of(Event Player), Direction From Angles(Horizontal Angle From Direction(
  • Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(Event Player)) - 90))
  • + Sine From Degrees(Event Player.angle % 360 + Evaluate Once(Global.N)) * Direction From Angles(
  • Horizontal Angle From Direction(Facing Direction Of(Event Player)), Vertical Angle From Direction(Facing Direction Of(
  • Event Player)) - 90) + 58.250 * Facing Direction Of(Event Player)), Color(White), Position and Radius);
  • Modify Player Variable(Event Player, beamEntities, Append To Array, Last Created Entity);
  • End;
  • }
  • }
  • rule("[sub] Destroy ult beams")
  • {
  • event
  • {
  • Subroutine;
  • DestroyUltBeams;
  • }
  • actions
  • {
  • For Player Variable(Event Player, E, 0, Count Of(Event Player.beamEntities), 1);
  • Destroy Effect(Event Player.beamEntities[Event Player.E]);
  • End;
  • Event Player.beamEntities = Empty Array;
  • }
  • }
  • rule("Primary fire (heal) effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Moira;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Primary Fire)) == True;
  • Hero Of(Event Player) == Hero(Moira);
  • Is Button Held(Event Player, Button(Secondary Fire)) == False;
  • Is Using Ultimate(Event Player) == False;
  • Is Using Ability 1(Event Player) == False;
  • Is Using Ability 2(Event Player) == False;
  • }
  • actions
  • {
  • Set Projectile Speed(Event Player, 100);
  • Create Effect(All Players(All Teams), Ring, Color(Yellow), Event Player, 15, Visible To Position and Radius);
  • Event Player.circleEntityHealing = Last Created Entity;
  • Wait(0.080, Ignore Condition);
  • While(Is Button Held(Event Player, Button(Primary Fire)));
  • Event Player.RayCast = Ray Cast Hit Position(Eye Position(Event Player), Eye Position(Event Player) + Facing Direction Of(
  • Event Player) * 15, Empty Array, Event Player, False);
  • If(Event Player.heals == 0);
  • Event Player.H0 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H0, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H0, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 1);
  • Event Player.H1 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H1, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H1, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 2);
  • Event Player.H2 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H2, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H2, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 3);
  • Event Player.H3 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H3, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H3, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 4);
  • Event Player.H4 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H4, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H4, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 5);
  • Event Player.H5 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H5, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H5, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 6);
  • Event Player.H6 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H6, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H6, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals == 7);
  • Event Player.H7 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H7, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H7, 0.750, Visible To Position and Radius);
  • Else If(Event Player.heals >= 8);
  • Event Player.H8 = Eye Position(Event Player);
  • Chase Player Variable At Rate(Event Player, H8, Event Player.RayCast, 40, None);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Event Player.H8, 0.750, Visible To Position and Radius);
  • Event Player.heals = -1;
  • End;
  • If(Count Of(Event Player.healEntities) >= 8);
  • Destroy Effect(First Of(Event Player.healEntities));
  • Modify Player Variable(Event Player, healEntities, Remove From Array By Index, 0);
  • End;
  • Event Player.heals += 1;
  • Modify Player Variable(Event Player, healEntities, Append To Array, Last Created Entity);
  • Wait(0.048, Ignore Condition);
  • If(Ability Resource(Event Player, Button(Primary Fire)) <= 2);
  • Wait(0.500, Ignore Condition);
  • Call Subroutine(DestroyHealEffects);
  • While(Ability Resource(Event Player, Button(Primary Fire)) < 5.200);
  • Wait(0.048, Ignore Condition);
  • End;
  • End;
  • End;
  • Destroy Effect(Event Player.circleEntityHealing);
  • }
  • }
  • rule("Destroy heal effects")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Moira;
  • }
  • conditions
  • {
  • Is Dummy Bot(Event Player) == False;
  • Is Button Held(Event Player, Button(Primary Fire)) == False;
  • }
  • actions
  • {
  • Wait(0.500, Ignore Condition);
  • Wait(0.180, Ignore Condition);
  • Call Subroutine(DestroyHealEffects);
  • }
  • }
  • rule("[sub] Destroy heal effects")
  • {
  • event
  • {
  • Subroutine;
  • DestroyHealEffects;
  • }
  • actions
  • {
  • For Player Variable(Event Player, Z, 0, Count Of(Event Player.healEntities), 1);
  • Destroy Effect(Event Player.healEntities[Event Player.Z]);
  • End;
  • }
  • }
  • rule("Secondary fire ring effect")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Moira;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Secondary Fire)) == True;
  • }
  • actions
  • {
  • Event Player.circleEntityDamage = Empty Array;
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Event Player, 20, Visible To Position and Radius);
  • Modify Player Variable(Event Player, circleEntityDamage, Append To Array, Last Created Entity);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Event Player, 19.950, Visible To Position and Radius);
  • Modify Player Variable(Event Player, circleEntityDamage, Append To Array, Last Created Entity);
  • Create Effect(All Players(All Teams), Ring, Color(Purple), Event Player, 20.050, Visible To Position and Radius);
  • Modify Player Variable(Event Player, circleEntityDamage, Append To Array, Last Created Entity);
  • Wait Until(Is Button Held(Event Player, Button(Secondary Fire)) == False, 1);
  • Destroy Effect(Event Player.circleEntityDamage[0]);
  • Destroy Effect(Event Player.circleEntityDamage[1]);
  • Destroy Effect(Event Player.circleEntityDamage[2]);
  • }
  • }
  • rule("Ability 2 Biotic Orb")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • Moira;
  • }
  • conditions
  • {
  • Is Using Ability 2(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.V = Empty Array;
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Update Every Frame(Eye Position(Event Player)), 5,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Update Every Frame(Eye Position(Event Player)), 4,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • Set Projectile Speed(Event Player, 0);
  • While(Is Using Ability 2(Event Player));
  • If(Is Button Held(Event Player, Button(Primary Fire)) == True);
  • Create Effect(All Players(All Teams), Sphere, Color(Yellow), Evaluate Once(Eye Position(Event Player)), 5,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • Else If(Is Button Held(Event Player, Button(Secondary Fire)) == True);
  • Create Effect(All Players(All Teams), Sphere, Color(Purple), Evaluate Once(Eye Position(Event Player)), 4,
  • Visible To Position and Radius);
  • Modify Player Variable(Event Player, V, Append To Array, Last Created Entity);
  • End;
  • Wait(0.016, Ignore Condition);
  • If(Entity Exists(Event Player.V[2]));
  • Destroy Effect(Event Player.V[0]);
  • Destroy Effect(Event Player.V[1]);
  • Wait Until(Ability Cooldown(Event Player, Button(Ability 2)) == 0, 7);
  • Destroy Effect(Event Player.V[2]);
  • End;
  • End;
  • Destroy Effect(Event Player.V[0]);
  • Destroy Effect(Event Player.V[1]);
  • Destroy Effect(Event Player.V[2]);
  • }
  • }
Join the Workshop.codes Discord