Wizards

18YYX

You are a wizard. Start by choosing class. You gain abilities by leveling up. Press interact key to switch class.

Code Snippet

View variables

Rules

No Rules are declared.
variables { player: 0: Class 1: Mana 2: Ability1Pos 3: Ability1End 4: Ability1Cooldown 5: BurnTimer 6: LastAttacker 7: Levels 8: Exp 9: Abiliy1Extra 10: Ability2Pos 11: Ability2End 12: Ability2Cooldown 13: Ability2Extra 14: XpToLevel 15: SlowTimer 16: FreezeTimer 17: Ability3Pos 18: Ability3End 19: Ability3Cooldown 20: Ability3Extra 21: ManaSpeed 22: MaxMana 23: CanShoot 25: LoopIncrement 26: Effect1 27: Effect2 28: Effect3 29: Effect4 30: Hud1 31: Hud2 32: Hud3 33: Hud4 34: Hud5 35: Hud6 36: Hud7 37: Hud8 } subroutines { 0: VortexImpulse } disabled rule("l") { event { Ongoing - Global; } actions { Create HUD Text(Host Player, String("{0}: {1}", String("Server Load", Null, Null, Null), String("{0}%", Server Load, Null, Null), Null), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility); Create HUD Text(Host Player, String("{0}: {1}", String("Server Load Average", Null, Null, Null), String("{0}%", Server Load Average, Null, Null), Null), Null, Null, Left, 1, White, White, White, Visible To and String, Default Visibility); Create HUD Text(Host Player, String("{0}: {1}", String("Server Load Peak", Null, Null, Null), String("{0}%", Server Load Peak, Null, Null), Null), Null, Null, Left, 2, White, White, White, Visible To and String, Default Visibility); } } disabled rule("Debug") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Reload) == True; } actions { Create Dummy Bot(Hero(Mercy), All Teams, -1, Position Of(Event Player), Vector(0, 0, 0)); } } rule("Disable Fly") { event { Ongoing - Each Player; All; All; } conditions { Is In Air(Event Player) == True; Is Alive(Event Player) == True; } actions { Disallow Button(Event Player, Jump); } } rule("Enable Jump") { event { Ongoing - Each Player; All; All; } conditions { Or(Is On Ground(Event Player), Is Dead(Event Player)) == True; } actions { Allow Button(Event Player, Jump); } } rule("Emote") { event { Ongoing - Each Player; All; All; } conditions { Is Communicating Any Emote(Event Player) == True; } actions { Set Player Variable(Event Player, CanShoot, False); } } rule("Knocked Down") { event { Ongoing - Each Player; All; All; } conditions { Has Status(Event Player, Knocked Down) == True; } actions { Set Player Variable(Event Player, CanShoot, False); } } rule("Mana From HP") { event { Player Received Healing; All; All; } conditions { Event Was Health Pack == True; } actions { If(Compare(Subtract(100, Player Variable(Event Player, Mana)), >=, 50)); Modify Player Variable(Event Player, Mana, Add, 50); Else; Modify Player Variable(Event Player, Mana, Add, Subtract(100, Player Variable(Event Player, Mana))); } } rule("Frozen") { event { Ongoing - Each Player; All; All; } conditions { Has Status(Event Player, Frozen) == True; } actions { Set Player Variable(Event Player, CanShoot, False); } } rule("Died") { event { Player Died; All; All; } actions { Set Player Variable(Event Player, CanShoot, False); } } rule("Can Shoot") { event { Ongoing - Each Player; All; All; } conditions { Has Status(Event Player, Knocked Down) == False; Has Status(Event Player, Frozen) == False; Is Alive(Event Player) == True; Is Communicating Any Emote(Event Player) == False; } actions { Set Player Variable(Event Player, CanShoot, True); } } rule("Player Init") { event { Ongoing - Each Player; All; All; } actions { Set Player Variable(Event Player, XpToLevel, 100); Set Player Variable(Event Player, Levels, 1); Set Player Variable(Event Player, Mana, 100); Set Respawn Max Time(Event Player, 1); Create In-World Text(Filtered Array(All Players(All Teams), Compare(Is Alive(Event Player), ==, True)), Custom String( "Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Event Player, 1, Clip Against Surfaces, Visible To Position and String, White, Default Visibility); Set Player Variable(Event Player, ManaSpeed, 3); Set Player Variable(Event Player, MaxMana, 100); Set Player Variable At Index(Event Player, Levels, 1, 1); Set Player Variable At Index(Event Player, Levels, 2, 1); Set Player Variable At Index(Event Player, Levels, 3, 1); Set Player Variable At Index(Event Player, Levels, 4, 1); Set Player Variable At Index(Event Player, Levels, 5, 1); Set Player Variable At Index(Event Player, Levels, 6, 1); Set Player Variable At Index(Event Player, Levels, 7, 1); Set Player Variable At Index(Event Player, Exp, 1, 0); Set Player Variable At Index(Event Player, Exp, 2, 0); Set Player Variable At Index(Event Player, Exp, 3, 0); Set Player Variable At Index(Event Player, Exp, 4, 0); Set Player Variable At Index(Event Player, Exp, 5, 0); Set Player Variable At Index(Event Player, Exp, 6, 0); Set Player Variable At Index(Event Player, Exp, 7, 0); } } rule("Global Init") { event { Ongoing - Global; } conditions { Is In Setup == False; } actions { disabled Set Match Time(10); Disable Built-In Game Mode Completion; Disable Built-In Game Mode Scoring; Disable Built-In Game Mode Announcer; Disable Built-In Game Mode Music; Wait(0.250, Ignore Condition); Pause Match Time; } } rule("Exp") { event { Player Dealt Damage; All; All; } actions { Modify Player Variable At Index(Event Player, Exp, Player Variable(Event Player, Class), Add, Round To Integer(Divide(Event Damage, Random Integer(4, 7)), To Nearest)); } } rule("Mana") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Mana) < Player Variable(Event Player, MaxMana); } actions { Chase Player Variable At Rate(Event Player, Mana, Player Variable(Event Player, MaxMana), Player Variable(Event Player, ManaSpeed), Destination and Rate); } } rule("Refill Mana") { event { Ongoing - Each Player; All; All; } conditions { Is Alive(Event Player) == True; } actions { Set Player Variable(Event Player, Mana, Player Variable(Event Player, MaxMana)); Set Player Variable(Event Player, BurnTimer, 0); Set Player Variable(Event Player, LastAttacker, 0); Set Player Variable(Event Player, SlowTimer, 0); } } rule("Choose Class") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is In Setup == False; } actions { Destroy HUD Text(Player Variable(Event Player, Hud1)); Destroy HUD Text(Player Variable(Event Player, Hud2)); Destroy HUD Text(Player Variable(Event Player, Hud3)); Destroy HUD Text(Player Variable(Event Player, Hud4)); Destroy HUD Text(Player Variable(Event Player, Hud5)); Destroy HUD Text(Player Variable(Event Player, Hud6)); Destroy HUD Text(Player Variable(Event Player, Hud7)); Destroy HUD Text(Player Variable(Event Player, Hud8)); Wait(0.100, Ignore Condition); Set Status(Event Player, Null, Rooted, 9999); Destroy Effect(Player Variable(Event Player, Effect1)); Destroy Effect(Player Variable(Event Player, Effect2)); Destroy Effect(Player Variable(Event Player, Effect3)); Destroy Effect(Player Variable(Event Player, Effect4)); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 0)), Icon String(Fire), Custom String("Press Ability 1 For:", Null, Null, Null), Custom String("Fire", Null, Null, Null), Top, 1, Red, Red, Red, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud1, Last Text ID); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 0)), Icon String(Moon), Custom String("Press Ability 2 For:", Null, Null, Null), Custom String("Ice", Null, Null, Null), Top, 1, Blue, Blue, Blue, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud2, Last Text ID); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 0)), Icon String(Bolt), Custom String("Press Left Click For:", Null, Null, Null), Custom String("Lightning", Null, Null, Null), Top, 1, Yellow, Yellow, Yellow, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud3, Last Text ID); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 0)), Icon String(Dizzy), Custom String("Press Right Click For:", Null, Null, Null), Custom String("Wind", Null, Null, Null), Top, 1, White, White, White, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud4, Last Text ID); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 0)), Icon String(Recycle), Custom String("Press Ultimate For:", Null, Null, Null), Custom String("Earth", Null, Null, Null), Top, 1, Green, Green, Green, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud5, Last Text ID); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 0)), Icon String(Halo), Custom String("Press Reload For:", Null, Null, Null), Custom String("Light", Null, Null, Null), Top, 1, White, White, White, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud6, Last Text ID); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 0)), Icon String(Poison), Custom String("Press Crouch For:", Null, Null, Null), Custom String("Shadow", Null, Null, Null), Top, 1, Purple, Purple, Purple, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud7, Last Text ID); } } rule("Last Attacker") { event { Player Took Damage; All; All; } conditions { Attacker != Event Player; } actions { Set Player Variable(Event Player, LastAttacker, Attacker); Wait(5, Restart When True); Set Player Variable(Event Player, LastAttacker, 0); } } rule("Kill") { event { Player Died; All; All; } actions { Modify Player Score(Player Variable(Event Player, LastAttacker), 1); disabled Modify Player Variable(Player Variable(Event Player, LastAttacker), Exp, Add, Random Integer(15, 35)); disabled Modify Player Variable(Player Variable(Event Player, LastAttacker), Mana, Add, 25); } } rule("Level Up") { event { Ongoing - Each Player; All; All; } conditions { Value In Array(Player Variable(Event Player, Exp), Player Variable(Event Player, Class)) >= Player Variable(Event Player, XpToLevel); } actions { disabled Modify Player Variable(Event Player, MaxMana, Add, 10); Modify Player Variable At Index(Event Player, Levels, Player Variable(Event Player, Class), Add, 1); Set Player Variable At Index(Event Player, Exp, Player Variable(Event Player, Class), 0); Big Message(Event Player, Custom String("Level Up!", Null, Null, Null)); Set Player Variable(Event Player, Mana, Player Variable(Event Player, MaxMana)); Set Player Variable(Event Player, BurnTimer, 0); Heal(Event Player, Null, 100000); disabled Modify Player Variable(Event Player, XpToLevel, Multiply, Random Integer(1.250, 1.500)); Modify Player Variable(Event Player, ManaSpeed, Add, 0.250); } } rule("Change Class") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, LastAttacker) == 0; Is Button Held(Event Player, Interact) == True; } actions { Set Player Variable(Event Player, Class, 0); } } rule("Destroy Choose Class Hud") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) > 0; } actions { Destroy HUD Text(Player Variable(Event Player, Hud1)); Destroy HUD Text(Player Variable(Event Player, Hud2)); Destroy HUD Text(Player Variable(Event Player, Hud3)); Destroy HUD Text(Player Variable(Event Player, Hud4)); Destroy HUD Text(Player Variable(Event Player, Hud5)); Destroy HUD Text(Player Variable(Event Player, Hud6)); Destroy HUD Text(Player Variable(Event Player, Hud7)); Wait(0.250, Ignore Condition); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), !=, 0)), Icon String(Spiral), Custom String("Mana", Null, Null, Null), Player Variable(Event Player, Mana), Left, 1, Blue, Blue, Blue, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud1, Last Text ID); Create HUD Text(Event Player, Null, Custom String("Full ability list at:", Null, Null, Null), Custom String("bit.ly/webbdiscord", Null, Null, Null), Top, 2, White, White, White, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud2, Last Text ID); Create HUD Text(Event Player, Null, Custom String("Press Interact To Change Class", Null, Null, Null), Null, Right, 0, White, White, White, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud3, Last Text ID); } } disabled rule("Fire") { event { Ongoing - Global; } } rule("Fire Init") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is Button Held(Event Player, Ability 1) == True; Is Game In Progress == True; } actions { Wait(0.250, Ignore Condition); Clear Status(Event Player, Rooted); Set Player Variable(Event Player, Class, 1); Set Player Variable(Event Player, Ability2Extra, False); Set Player Variable(Event Player, Ability2Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 1), Compare( Player Variable(Event Player, Ability1Pos), !=, Player Variable(Event Player, Ability1End)))), Orb, Red, Player Variable( Event Player, Ability1Pos), 0.250, Visible To Position and Radius); Set Player Variable(Event Player, Effect1, Last Created Entity); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 1)), Icon String(Fire), Custom String("Fire Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Custom String("{0} Exp / {1} Exp", Value In Array(Player Variable(Event Player, Exp), Player Variable( Event Player, Class)), Player Variable(Event Player, XpToLevel), Null), Left, 0, Red, Red, Red, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud8, Last Text ID); } } rule("Fireball Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; Player Variable(Event Player, Class) == 1; Player Variable(Event Player, Ability1Cooldown) == 0; Player Variable(Event Player, CanShoot) == True; Player Variable(Event Player, Mana) >= 15; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 15); Set Player Variable(Event Player, Ability1Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability1End, Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000))); Chase Player Variable Over Time(Event Player, Ability1End, Subtract(Player Variable(Event Player, Ability1End), Vector(0, 1000, 0)), 2.500, Destination and Duration); Chase Player Variable At Rate(Event Player, Ability1Pos, Player Variable(Event Player, Ability1End), 30, Destination and Rate); Set Player Variable(Event Player, Ability1Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability1Cooldown, 0, 1, Destination and Rate); } } rule("Fireball End On Surface") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 1; Distance Between(Player Variable(Event Player, Ability1Pos), Ray Cast Hit Position(Player Variable(Event Player, Ability1Pos), Add( Player Variable(Event Player, Ability1Pos), Multiply(Direction Towards(Player Variable(Event Player, Ability1Pos), Player Variable(Event Player, Ability1End)), 1000)), Null, Event Player, False)) <= 2; } actions { Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); Stop Chasing Player Variable(Event Player, Ability1Pos); Stop Chasing Player Variable(Event Player, Ability1End); Play Effect(All Players(All Teams), Good Explosion, Red, Player Variable(Event Player, Ability1Pos), 2); Damage(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, 30); Start Damage Over Time(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, 1, 40); Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, Burning, 1); } } rule("Fireball End On Player") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 1; Is True For Any(Remove From Array(All Living Players(All Teams), Event Player), Compare(Distance Between(Current Array Element, Player Variable(Event Player, Ability1Pos)), <=, 2)) == True; Player Variable(Event Player, Ability1Pos) != Player Variable(Event Player, Ability1End); } actions { Play Effect(All Players(All Teams), Good Explosion, Red, Player Variable(Event Player, Ability1Pos), 2); Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); Stop Chasing Player Variable(Event Player, Ability1End); Damage(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, 40); Start Damage Over Time(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, 1, 40); Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, Burning, 1); } } rule("Fire Storm Unlock") { event { Ongoing - Each Player; All; All; } conditions { Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; Player Variable(Event Player, Class) == 1; } actions { Big Message(Event Player, Custom String("You Have Unlocked Fire Storm", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 1 To Toggle", Null, Null, Null)); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 1), Compare( Player Variable(Event Player, Ability2Extra), ==, True))), Sphere, Red, Eye Position(Event Player), 5, Visible To Position and Radius); Set Player Variable(Event Player, Effect2, Last Created Entity); } } rule("Fire Storm Toggle") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 1; Player Variable(Event Player, Mana) >= 5; Is Button Held(Event Player, Ability 1) == True; Player Variable(Event Player, Ability2Cooldown) == 0; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Set Player Variable(Event Player, Ability2Extra, Not(Player Variable(Event Player, Ability2Extra))); Set Player Variable(Event Player, Ability2Cooldown, 0.500); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); } } rule("Fire Storm Mana") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 1; Player Variable(Event Player, Mana) >= 5; Player Variable(Event Player, Ability2Extra) == True; Is Alive(Event Player) == True; Player Variable(Event Player, CanShoot) == True; } actions { Modify Player Variable(Event Player, Mana, Subtract, 5); Wait(0.250, Ignore Condition); Loop If Condition Is True; Set Player Variable(Event Player, Ability2Extra, False); } } rule("Fire Storm Damage") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 1; Player Variable(Event Player, Ability2Extra) == True; Count Of(Remove From Array(Players Within Radius(Event Player, 5, All Teams, Off), Event Player)) > 0; } actions { Start Damage Over Time(Remove From Array(Players Within Radius(Event Player, 5, All Teams, Off), Event Player), Event Player, 0.500, 40); Set Status(Remove From Array(Players Within Radius(Position Of(Event Player), 5, All Teams, Off), Event Player), Event Player, Burning, 0.500); Wait(0.500, Ignore Condition); Loop If Condition Is True; } } rule("Disable Mana Regen") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 1; Player Variable(Event Player, Ability2Extra) == True; } actions { Stop Chasing Player Variable(Event Player, Mana); disabled Abort If Condition Is False; Wait(0.500, Ignore Condition); Loop If Condition Is True; } } rule("Enable Mana Regen") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 1; Player Variable(Event Player, Ability2Extra) == False; Player Variable(Event Player, Mana) < Player Variable(Event Player, MaxMana); } actions { Chase Player Variable At Rate(Event Player, Mana, Player Variable(Event Player, MaxMana), Player Variable(Event Player, ManaSpeed), Destination and Rate); disabled Abort If Condition Is False; } } disabled rule("Ice") { event { Ongoing - Global; } } rule("Ice Init") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is Button Held(Event Player, Ability 2) == True; Is Game In Progress == True; } actions { Wait(0.250, Ignore Condition); Clear Status(Event Player, Rooted); Set Player Variable(Event Player, Ability2Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); Set Player Variable(Event Player, Class, 2); Create Beam Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 2), Compare( Player Variable(Event Player, Ability1Pos), !=, Player Variable(Event Player, Ability1End)))), Bad Beam, Player Variable( Event Player, Ability1Pos), Add(Player Variable(Event Player, Ability1Pos), Multiply(Direction Towards(Player Variable( Event Player, Ability1Pos), Player Variable(Event Player, Ability1End)), 2)), Sky Blue, Visible To Position and Radius); Set Player Variable(Event Player, Effect1, Last Created Entity); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 2)), Icon String(Moon), Custom String("Ice Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Custom String("{0} Exp / {1} Exp", Value In Array(Player Variable(Event Player, Exp), Player Variable( Event Player, Class)), Player Variable(Event Player, XpToLevel), Null), Left, 0, Blue, Blue, Blue, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud8, Last Text ID); } } rule("Icicle Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; Player Variable(Event Player, Class) == 2; Player Variable(Event Player, Ability1Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 10; Player Variable(Event Player, CanShoot) == True; } actions { Play Effect(Event Player, Buff Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 10); Set Player Variable(Event Player, Ability1Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability1End, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000)), Null, Event Player, True)); Chase Player Variable At Rate(Event Player, Ability1Pos, Player Variable(Event Player, Ability1End), 140, Destination and Rate); Set Player Variable(Event Player, Ability1Cooldown, 0.500); Chase Player Variable At Rate(Event Player, Ability1Cooldown, 0, 1, Destination and Rate); } } rule("Icicle Headshot") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Is True For Any(Remove From Array(All Living Players(All Teams), Event Player), Compare(Distance Between(Eye Position( Current Array Element), Player Variable(Event Player, Ability1Pos)), <=, 0.750)) == True; Player Variable(Event Player, Ability1Pos) != Player Variable(Event Player, Ability1End); } actions { Damage(First Of(Remove From Array(Sorted Array(All Living Players(All Teams), Distance Between(Eye Position(Current Array Element), Player Variable(Event Player, Ability1Pos))), Event Player)), Event Player, 75); Set Player Variable(First Of(Remove From Array(Sorted Array(All Living Players(All Teams), Distance Between(Eye Position( Current Array Element), Player Variable(Event Player, Ability1Pos))), Event Player)), FreezeTimer, 1); Play Effect(All Players(All Teams), Bad Explosion, Blue, Player Variable(Event Player, Ability1Pos), 0.500); Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); } } rule("Icicle End On Player") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Is True For Any(Remove From Array(All Living Players(All Teams), Event Player), Compare(Distance Between(Subtract(Eye Position( Current Array Element), Vector(0, 1, 0)), Player Variable(Event Player, Ability1Pos)), <=, 1)) == True; Player Variable(Event Player, Ability1Pos) != Player Variable(Event Player, Ability1End); } actions { Damage(Filtered Array(Remove From Array(All Players(All Teams), Event Player), Compare(Distance Between(Subtract(Eye Position( Current Array Element), Vector(0, 1, 0)), Player Variable(Event Player, Ability1Pos)), <=, 1)), Event Player, 50); Set Player Variable(Filtered Array(Remove From Array(All Players(All Teams), Event Player), Compare(Distance Between(Subtract( Eye Position(Current Array Element), Vector(0, 1, 0)), Player Variable(Event Player, Ability1Pos)), <=, 1)), FreezeTimer, 1); Play Effect(All Players(All Teams), Bad Explosion, Blue, Player Variable(Event Player, Ability1Pos), 0.500); Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); } } rule("Freeze") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, FreezeTimer) > 0; } actions { Modify Player Variable(Event Player, FreezeTimer, Subtract, 0.500); Set Move Speed(Event Player, 60); Wait(0.500, Ignore Condition); Loop If Condition Is True; Set Move Speed(Event Player, 100); } } rule("Snowball Unlock") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Big Message(Event Player, Custom String("You Have Unlocked Snowball", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 2 To Use", Null, Null, Null)); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 2), Compare( Player Variable(Event Player, Ability2Pos), !=, Player Variable(Event Player, Ability2End)))), Orb, White, Player Variable( Event Player, Ability2Pos), 0.250, Visible To Position and Radius); Set Player Variable(Event Player, Effect2, Last Created Entity); } } rule("Snowball Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 2) == True; Player Variable(Event Player, Class) == 2; Player Variable(Event Player, Ability2Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 30; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 30); Set Player Variable(Event Player, Ability2Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability2End, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000)), Null, All Players(All Teams), True)); Chase Player Variable At Rate(Event Player, Ability2Pos, Player Variable(Event Player, Ability2End), 60, Destination and Rate); Set Player Variable(Event Player, Ability2Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); } } rule("Snowball End On Surface") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Player Variable(Event Player, Ability2Pos) == Player Variable(Event Player, Ability2End); } actions { Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); Stop Chasing Player Variable(Event Player, Ability1Pos); Stop Chasing Player Variable(Event Player, Ability1End); Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability2Pos), 2, All Teams, Off), Event Player), Null, Frozen, 0.750); } } rule("Snowball End On Player") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Is True For Any(Remove From Array(All Living Players(All Teams), Event Player), Compare(Distance Between(Current Array Element, Player Variable(Event Player, Ability2Pos)), <=, 2)) == True; Player Variable(Event Player, Ability2Pos) != Player Variable(Event Player, Ability2End); } actions { Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability2Pos), 2, All Teams, Off), Event Player), Null, Frozen, 0.750); Stop Chasing Player Variable(Event Player, Ability2Pos); Set Player Variable(Event Player, Ability2Pos, Player Variable(Event Player, Ability2End)); Stop Chasing Player Variable(Event Player, Ability2End); } } rule("Avalanche Unlock") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Big Message(Event Player, Custom String("You Have Unlocked Avalanche", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 1 To Use", Null, Null, Null)); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 2), Compare( Player Variable(Event Player, Ability3Pos), !=, Player Variable(Event Player, Ability3End)))), Orb, White, Player Variable( Event Player, Ability3Pos), 1, Visible To Position and Radius); Set Player Variable(Event Player, Effect3, Last Created Entity); } } rule("Avalanche Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 1) == True; Player Variable(Event Player, Class) == 2; Player Variable(Event Player, Ability3Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 40; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 40); Set Player Variable(Event Player, Ability3Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability3End, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000)), Null, All Players(All Teams), True)); Chase Player Variable At Rate(Event Player, Ability3Pos, Player Variable(Event Player, Ability3End), 10, Destination and Rate); Set Player Variable(Event Player, Ability3Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability3Cooldown, 0, 1, Destination and Rate); } } rule("Avalanche End On Surface") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Player Variable(Event Player, Ability3Pos) == Player Variable(Event Player, Ability3End); } actions { Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); Stop Chasing Player Variable(Event Player, Ability1Pos); Stop Chasing Player Variable(Event Player, Ability1End); Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability3Pos), 2, All Teams, Off), Event Player), Null, Frozen, 2); } } rule("Avalanche End On Player") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 2; Is True For Any(Remove From Array(All Living Players(All Teams), Event Player), Compare(Distance Between(Current Array Element, Player Variable(Event Player, Ability3Pos)), <=, 2)) == True; Player Variable(Event Player, Ability3Pos) != Player Variable(Event Player, Ability3End); } actions { Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability3Pos), 2, All Teams, Off), Event Player), Null, Frozen, 2); } } disabled rule("Lightning") { event { Ongoing - Global; } } rule("Lightning Init") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is Button Held(Event Player, Primary Fire) == True; Is Game In Progress == True; } actions { Wait(0.250, Ignore Condition); Clear Status(Event Player, Rooted); Set Player Variable(Event Player, Ability1Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability1Cooldown, 0, 1, Destination and Rate); Set Player Variable(Event Player, Class, 3); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 3), Compare( Player Variable(Event Player, Ability1Pos), !=, Player Variable(Event Player, Ability1End)))), Orb, Yellow, Player Variable( Event Player, Ability1Pos), 0.250, Visible To Position and Radius); Set Player Variable(Event Player, Effect1, Last Created Entity); Create Beam Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 3), Compare( Count Of(Player Variable(Event Player, Abiliy1Extra)), >, 0))), Bad Beam, Player Variable(Event Player, Ability1Pos), First Of( Player Variable(Event Player, Abiliy1Extra)), Yellow, Visible To Position and Radius); Set Player Variable(Event Player, Effect2, Last Created Entity); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 3)), Icon String(Bolt), Custom String("Lightning Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Custom String("{0} Exp / {1} Exp", Value In Array(Player Variable(Event Player, Exp), Player Variable( Event Player, Class)), Player Variable(Event Player, XpToLevel), Null), Left, 0, Yellow, Yellow, Yellow, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud8, Last Text ID); } } rule("Bolt Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; Player Variable(Event Player, Class) == 3; Player Variable(Event Player, Ability1Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 15; Player Variable(Event Player, CanShoot) == True; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 15); Set Player Variable(Event Player, Ability1Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability1End, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000)), Null, Event Player, True)); Chase Player Variable At Rate(Event Player, Ability1Pos, Player Variable(Event Player, Ability1End), 55, Destination and Rate); Set Player Variable(Event Player, Ability1Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability1Cooldown, 0, 1, Destination and Rate); } } rule("Bolt End On Surface") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 3; Distance Between(Player Variable(Event Player, Ability1Pos), Player Variable(Event Player, Ability1End)) <= 0.500; Player Variable(Event Player, Ability1Pos) != Player Variable(Event Player, Ability1End); } actions { Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Abiliy1Extra, Array Slice(Sorted Array(Filtered Array(Remove From Array(All Living Players( All Teams), Event Player), Compare(Distance Between(Current Array Element, Player Variable(Event Player, Ability1Pos)), <=, 3.500)), Distance Between(Current Array Element, Player Variable(Event Player, Ability1Pos))), 0, 3)); disabled Damage(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player, 20); disabled Set Player Variable(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), BurnTimer, 3); } } rule("Bolt End On Player") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 3; Is True For Any(Remove From Array(All Living Players(All Teams), Event Player), Compare(Distance Between(Current Array Element, Player Variable(Event Player, Ability1Pos)), <=, 2)) == True; Distance Between(Player Variable(Event Player, Ability1Pos), Player Variable(Event Player, Ability1End)) > 0.500; } actions { Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Abiliy1Extra, Array Slice(Sorted Array(Filtered Array(Remove From Array(All Living Players( All Teams), Event Player), Compare(Distance Between(Current Array Element, Player Variable(Event Player, Ability1Pos)), <=, 3.500)), Distance Between(Current Array Element, Player Variable(Event Player, Ability1Pos))), 0, 3)); disabled Damage(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player, 20); disabled Set Player Variable(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), BurnTimer, 3); } } rule("Bolt Damage") { event { Ongoing - Each Player; All; All; } conditions { Count Of(Player Variable(Event Player, Abiliy1Extra)) > 0; Player Variable(Event Player, Class) == 3; Player Variable(Event Player, Ability1Pos) != Player Variable(Event Player, Ability1End); } actions { Damage(First Of(Player Variable(Event Player, Abiliy1Extra)), Event Player, 35); Set Player Variable(First Of(Player Variable(Event Player, Abiliy1Extra)), SlowTimer, 1); Play Effect(Event Player, Buff Impact Sound, White, Event Player, 20); Wait(0.050, Ignore Condition); Modify Player Variable(Event Player, Abiliy1Extra, Remove From Array By Value, First Of(Player Variable(Event Player, Abiliy1Extra))); Wait(0.250, Ignore Condition); Loop If Condition Is True; } } rule("Bolt End") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Abiliy1Extra) == Empty Array; Player Variable(Event Player, Class) == 3; } actions { Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); } } rule("Slow") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, SlowTimer) > 0; } actions { Modify Player Variable(Event Player, SlowTimer, Subtract, 0.500); Set Move Speed(Event Player, 80); Wait(0.500, Ignore Condition); Loop If Condition Is True; Set Move Speed(Event Player, 100); } } rule("Unlock Shockwave") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 3; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Big Message(Event Player, Custom String("You Have Unlocked Shockwave", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 2 To Use", Null, Null, Null)); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 3), Compare( Value In Array(Player Variable(Event Player, Ability3Extra), 0), ==, 1))), Sphere, Yellow, Eye Position(Event Player), 2, Visible To Position and Radius); Set Player Variable(Event Player, Effect3, Last Created Entity); } } rule("Shockwave Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 2) == True; Player Variable(Event Player, Class) == 3; Player Variable(Event Player, Ability3Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 50; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Set Player Variable At Index(Event Player, Ability3Extra, 1, 0); Set Player Variable(Event Player, Ability3Cooldown, 3); Play Effect(Event Player, Explosion Sound, White, Event Player, 10); disabled Play Effect(Event Player, Good Explosion, Green, Event Player, 5); Modify Player Variable(Event Player, Mana, Subtract, 50); Set Player Variable At Index(Event Player, Ability3Extra, 0, 1); Disallow Button(Event Player, Primary Fire); Set Player Variable(Event Player, CanShoot, False); Disallow Button(Event Player, Melee); Set Status(Event Player, Null, Unkillable, 3); Wait(3, Ignore Condition); Set Player Variable At Index(Event Player, Ability3Extra, 0, 2); Allow Button(Event Player, Melee); Allow Button(Event Player, Primary Fire); } } rule("Shockwave Damage") { event { Player Took Damage; All; All; } conditions { Player Variable(Event Player, Class) == 3; Value In Array(Player Variable(Event Player, Ability3Extra), 0) == 1; } actions { Modify Player Variable At Index(Event Player, Ability3Extra, 1, Add, Event Damage); Heal(Event Player, Event Player, Event Damage); } } rule("Shockwave Release") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 3; Value In Array(Player Variable(Event Player, Ability3Extra), 0) == 2; } actions { Play Effect(All Players(All Teams), Ring Explosion, Yellow, Event Player, 10); Play Effect(Players Within Radius(Event Player, 5, All Teams, Surfaces), Debuff Impact Sound, White, Event Player, 20); Damage(Remove From Array(Players Within Radius(Event Player, 10, All Teams, Off), Event Player), Event Player, Value In Array( Player Variable(Event Player, Ability3Extra), 1)); Chase Player Variable At Rate(Event Player, Ability3Cooldown, 0, 1, Destination and Rate); Set Player Variable At Index(Event Player, Ability3Extra, 0, 0); } } rule("Enable Spells") { event { Ongoing - Each Player; All; All; } conditions { Value In Array(Player Variable(Event Player, Ability3Extra), 0) == 0; } actions { Set Player Variable(Event Player, CanShoot, True); } } rule("Speed Boost Unlock") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 3; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Big Message(Event Player, Custom String("You Have Unlocked Speed Boost", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 1 To Use", Null, Null, Null)); } } rule("Speed Boost Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 1) == True; Player Variable(Event Player, Class) == 3; Player Variable(Event Player, Ability2Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 20; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Set Player Variable(Event Player, Ability2Cooldown, 2); Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Play Effect(Event Player, Good Explosion, Yellow, Event Player, 5); Modify Player Variable(Event Player, Mana, Subtract, 20); Set Move Speed(Event Player, 200); Wait(3, Ignore Condition); disabled Disallow Button(Event Player, Ability 1); Set Move Speed(Event Player, 100); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); disabled Wait(3, Ignore Condition); disabled Allow Button(Event Player, Ability 1); } } disabled rule("Wind") { event { Ongoing - Global; } } rule("Wind Init") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is Button Held(Event Player, Secondary Fire) == True; Is Game In Progress == True; } actions { Wait(0.250, Ignore Condition); Clear Status(Event Player, Rooted); Set Player Variable(Event Player, Class, 4); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 4), Compare( Player Variable(Event Player, Ability1Pos), !=, Player Variable(Event Player, Ability1End)))), Sphere, White, Player Variable( Event Player, Ability1Pos), 0.250, Visible To Position and Radius); Set Player Variable(Event Player, Effect1, Last Created Entity); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 4)), Icon String(Dizzy), Custom String("Wind Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Custom String("{0} Exp / {1} Exp", Value In Array(Player Variable(Event Player, Exp), Player Variable( Event Player, Class)), Player Variable(Event Player, XpToLevel), Null), Left, 0, White, White, White, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud8, Last Text ID); } } rule("Windball Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; Player Variable(Event Player, Class) == 4; Player Variable(Event Player, Ability1Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 10; Player Variable(Event Player, CanShoot) == True; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 10); Set Player Variable(Event Player, Ability1Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability1End, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000)), Null, Event Player, True)); Chase Player Variable At Rate(Event Player, Ability1Pos, Player Variable(Event Player, Ability1End), 15, Destination and Rate); Set Player Variable(Event Player, Ability1Cooldown, 0.600); Chase Player Variable At Rate(Event Player, Ability1Cooldown, 0, 0.600, Destination and Rate); Wait(0.650, Ignore Condition); Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); } } rule("Windball Gust") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 4; Player Variable(Event Player, Ability1Pos) != Player Variable(Event Player, Ability1End); Count Of(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 5, All Teams, Off), Event Player)) > 0; } actions { Apply Impulse(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 4, All Teams, Off), Event Player), Up, 6.500, To World, Cancel Contrary Motion); Apply Impulse(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 4, All Teams, Off), Event Player), Direction Towards(Player Variable(Event Player, Ability1Pos), Player Variable(Event Player, Ability1End)), 7, To World, Cancel Contrary Motion); Damage(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 4, All Teams, Off), Event Player), Event Player, 27.500); Wait(0.200, Ignore Condition); Loop If Condition Is True; } } rule("Unlock Wind Jump") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 4; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Big Message(Event Player, Custom String("You Have Unlocked Wind Jump", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 1 To Use", Null, Null, Null)); } } rule("Wind Jump Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 1) == True; Player Variable(Event Player, Class) == 4; Player Variable(Event Player, Ability2Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 30; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Play Effect(Event Player, Good Explosion, White, Event Player, 5); Modify Player Variable(Event Player, Mana, Subtract, 30); Apply Impulse(Players Within Radius(Event Player, 5, All Teams, Off), Up, 20, To World, Cancel Contrary Motion); Damage(Remove From Array(Players Within Radius(Event Player, 5, All Teams, Off), Event Player), Event Player, 15); Set Player Variable(Event Player, Ability2Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); } } disabled rule("Earth") { event { Ongoing - Global; } } rule("Earth Init") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is Button Held(Event Player, Ultimate) == True; Is Game In Progress == True; } actions { Wait(0.250, Ignore Condition); Clear Status(Event Player, Rooted); Set Player Variable(Event Player, Class, 5); Set Player Variable(Event Player, Ability3Extra, False); Set Player Variable(Event Player, Ability2Extra, False); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 5), Compare( Player Variable(Event Player, Ability1Pos), !=, Player Variable(Event Player, Ability1End)))), Orb, Green, Player Variable( Event Player, Ability1Pos), 0.250, Visible To Position and Radius); Set Player Variable(Event Player, Effect1, Last Created Entity); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 5)), Icon String(Recycle), Custom String("Earth Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Custom String("{0} Exp / {1} Exp", Value In Array(Player Variable(Event Player, Exp), Player Variable( Event Player, Class)), Player Variable(Event Player, XpToLevel), Null), Left, 0, Green, Green, Green, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud8, Last Text ID); } } rule("Rock Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; Player Variable(Event Player, Class) == 5; Player Variable(Event Player, Ability1Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 20; Player Variable(Event Player, CanShoot) == True; } actions { disabled Wait(0.300, Ignore Condition); Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 20); Set Player Variable(Event Player, Ability1Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability1End, Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000))); Chase Player Variable Over Time(Event Player, Ability1End, Subtract(Player Variable(Event Player, Ability1End), Vector(0, 1000, 0)), 3, Destination and Duration); Chase Player Variable At Rate(Event Player, Ability1Pos, Player Variable(Event Player, Ability1End), 20, Destination and Rate); Set Player Variable(Event Player, Ability1Cooldown, 1.850); Chase Player Variable At Rate(Event Player, Ability1Cooldown, 0, 1, Destination and Rate); } } rule("Rock End On Surface") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 5; Distance Between(Player Variable(Event Player, Ability1Pos), Ray Cast Hit Position(Player Variable(Event Player, Ability1Pos), Add( Player Variable(Event Player, Ability1Pos), Multiply(Direction Towards(Player Variable(Event Player, Ability1Pos), Player Variable(Event Player, Ability1End)), 1000)), Null, Event Player, True)) <= 2; } actions { Damage(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, 45); Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Null, Knocked Down, 0.500); Set Move Speed(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 20, All Teams, Off), Event Player), 100); Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); Stop Chasing Player Variable(Event Player, Ability1End); } } rule("Rock End On Player") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 5; Is True For Any(Remove From Array(All Living Players(All Teams), Event Player), Compare(Distance Between(Current Array Element, Player Variable(Event Player, Ability1Pos)), <=, 2)) == True; Player Variable(Event Player, Ability1Pos) != Player Variable(Event Player, Ability1End); } actions { Set Move Speed(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 20, All Teams, Off), Event Player), 100); Damage(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Event Player, 60); Set Status(Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 2, All Teams, Off), Event Player), Null, Knocked Down, 0.550); Stop Chasing Player Variable(Event Player, Ability1Pos); Set Player Variable(Event Player, Ability1End, Player Variable(Event Player, Ability1Pos)); Stop Chasing Player Variable(Event Player, Ability1End); } } rule("Unlock Nature's Gift") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 5; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Big Message(Event Player, Custom String("You Have Unlocked Nature's Gift", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 1 To Use", Null, Null, Null)); } } rule("Nature's Gift Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 1) == True; Player Variable(Event Player, Class) == 5; Player Variable(Event Player, Ability2Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 25; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Play Effect(Event Player, Good Explosion, Green, Event Player, 5); Modify Player Variable(Event Player, Mana, Subtract, 25); Heal(Event Player, Event Player, 50); Set Player Variable(Event Player, BurnTimer, 0); Set Player Variable(Event Player, SlowTimer, 0); Set Player Variable(Event Player, Ability2Cooldown, 2); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); } } rule("Unlock Earthquake") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 5; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Big Message(Event Player, Custom String("You Have Unlocked Earthquake", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 2 To Use", Null, Null, Null)); } } rule("Earthquake Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 2) == True; Player Variable(Event Player, Class) == 5; Player Variable(Event Player, Ability3Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 50; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Set Player Variable(Event Player, Ability3Cooldown, 4); Play Effect(Event Player, Explosion Sound, White, Event Player, 10); disabled Play Effect(Event Player, Good Explosion, Green, Event Player, 5); Modify Player Variable(Event Player, Mana, Subtract, 50); Apply Impulse(Event Player, Up, 5, To World, Cancel Contrary Motion); Set Gravity(Event Player, 0); Wait(0.750, Ignore Condition); Set Player Variable(Event Player, Ability3Extra, True); Set Gravity(Event Player, 10000); Apply Impulse(Event Player, Down, 20, To World, Cancel Contrary Motion); } } rule("Earthquake Damage") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 5; Is On Ground(Event Player) == True; Player Variable(Event Player, Ability3Extra) == True; } actions { Set Player Variable(Event Player, Ability3Extra, False); Play Effect(All Players(All Teams), Ring Explosion, Green, Event Player, 10); Play Effect(Players Within Radius(Event Player, 5, All Teams, Surfaces), Debuff Impact Sound, White, Event Player, 20); Set Status(Remove From Array(Players Within Radius(Event Player, 10, All Teams, Surfaces), Event Player), Event Player, Knocked Down, 3); Chase Player Variable At Rate(Event Player, Ability3Cooldown, 0, 1, Destination and Rate); Set Gravity(Event Player, 100); } } disabled rule("Light") { event { Ongoing - Global; } } rule("Light Init") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is Button Held(Event Player, Reload) == True; Is Game In Progress == True; } actions { Wait(0.250, Ignore Condition); Clear Status(Event Player, Rooted); Set Player Variable(Event Player, Abiliy1Extra, False); Set Player Variable(Event Player, Class, 6); Create Beam Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Abiliy1Extra), ==, True), Compare(Player Variable(Event Player, Class), ==, 6))), Good Beam, Subtract(Eye Position(Event Player), Vector(0, 1, 0)), Player Closest To Reticle(Event Player, All Teams), White, Visible To Position and Radius); Set Player Variable(Event Player, Effect1, Last Created Entity); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 6)), Icon String(Halo), Custom String("Light Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Custom String("{0} Exp / {1} Exp", Value In Array(Player Variable(Event Player, Exp), Player Variable( Event Player, Class)), Player Variable(Event Player, XpToLevel), Null), Left, 0, White, White, White, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud8, Last Text ID); } } rule("Light Beam Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; Player Variable(Event Player, Class) == 6; Player Variable(Event Player, Ability1Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 5; Is In View Angle(Event Player, Player Closest To Reticle(Event Player, All Teams), 25) == True; Distance Between(Event Player, Player Closest To Reticle(Event Player, All Teams)) <= 10; Is Alive(Player Closest To Reticle(Event Player, All Teams)) == True; Is In Line of Sight(Event Player, Player Closest To Reticle(Event Player, All Teams), Barriers Do Not Block LOS) == True; Player Variable(Event Player, Ability2Extra) == False; Player Variable(Event Player, CanShoot) == True; } actions { Play Effect(Event Player, Buff Impact Sound, White, Event Player, 20); Set Player Variable(Event Player, Abiliy1Extra, True); While(And(Is Button Held(Event Player, Primary Fire), And(And(Compare(Player Variable(Event Player, Mana), >=, 5), Compare( Distance Between(Event Player, Player Closest To Reticle(Event Player, All Teams)), <=, 10)), And(Compare(Is In View Angle( Event Player, Player Closest To Reticle(Event Player, All Teams), 25), ==, True), And(Compare(Is In Line of Sight(Event Player, Player Closest To Reticle(Event Player, All Teams), Barriers Do Not Block LOS), ==, True), And(And(Player Variable( Event Player, CanShoot), Not(Has Status(Event Player, Knocked Down))), And(Is Alive(Player Closest To Reticle(Event Player, All Teams)), Compare(Player Variable(Event Player, Ability2Extra), ==, False)))))))); Damage(Player Closest To Reticle(Event Player, All Teams), Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 3); Set Move Speed(Event Player, 90); Wait(0.250, Ignore Condition); End; Set Player Variable(Event Player, Abiliy1Extra, False); Set Move Speed(Event Player, 100); } } rule("Light Screen Unlock") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 6; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Big Message(Event Player, Custom String("You Have Unlocked Light Screen", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 1 To Use", Null, Null, Null)); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 6), Compare( Player Variable(Event Player, Ability2Extra), ==, True))), Sphere, White, Eye Position(Event Player), 2, Visible To Position and Radius); Set Player Variable(Event Player, Effect2, Last Created Entity); } } rule("Light Screen Cast") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 6; Player Variable(Event Player, Mana) >= 30; Is Button Held(Event Player, Ability 1) == True; Player Variable(Event Player, Ability2Cooldown) == 0; Has Status(Event Player, Frozen) == False; Has Status(Event Player, Knocked Down) == False; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Set Player Variable(Event Player, BurnTimer, 0); Modify Player Variable(Event Player, Mana, Subtract, 30); Set Player Variable(Event Player, Ability2Cooldown, 2); Set Player Variable(Event Player, Ability2Extra, True); Set Damage Received(Event Player, 0); Set Status(Event Player, Null, Phased Out, 1.500); Wait(1.500, Ignore Condition); Disallow Button(Event Player, Ability 1); Set Player Variable(Event Player, Ability2Extra, False); Set Damage Received(Event Player, 100); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); Wait(2, Ignore Condition); Allow Button(Event Player, Ability 1); } } rule("Blinding Light Unlock") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 6; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Big Message(Event Player, Custom String("You Have Unlocked Blinding Light", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 2 To Use", Null, Null, Null)); Create Effect(Filtered Array(All Players(All Teams), Compare(Player Variable(Event Player, Ability3Extra), !=, 0)), Orb, White, Add(Eye Position(Player Variable(Event Player, Ability3Pos)), Multiply(Facing Direction Of(Player Variable(Event Player, Ability3Pos)), 0.750)), 10, Visible To Position and Radius); Set Player Variable(Event Player, Effect3, Last Created Entity); } } rule("Blinding Light Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 2) == True; Player Variable(Event Player, Class) == 6; Player Variable(Event Player, Ability3Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 30; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Set Player Variable(Event Player, Ability3Cooldown, 1); Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Play Effect(Event Player, Good Explosion, White, Eye Position(Event Player), 10); Modify Player Variable(Event Player, Mana, Subtract, 30); Set Player Variable(Event Player, Ability3Extra, Remove From Array(Players Within Radius(Event Player, 5, All Teams, Off), Event Player)); Wait(0.250, Ignore Condition); Set Player Variable(Event Player, Ability3Pos, First Of(Player Variable(Event Player, Ability3Extra))); While(Compare(Player Variable(Event Player, Ability3End), <, 50)); Set Player Variable(Event Player, Ability3Pos, Value In Array(Player Variable(Event Player, Ability3Extra), Add( Index Of Array Value(Player Variable(Event Player, Ability3Extra), Player Variable(Event Player, Ability3Pos)), 1))); If(Compare(Player Variable(Event Player, Ability3Pos), ==, Last Of(Player Variable(Event Player, Ability3Extra)))); Modify Player Variable(Event Player, Ability3End, Add, 1); End; Wait(0.010, Ignore Condition); End; Set Player Variable(Event Player, Ability3Extra, Empty Array); Set Player Variable(Event Player, Ability3Extra, 0); Set Player Variable(Event Player, Ability3Pos, 0); Set Player Variable(Event Player, Ability3End, 0); Chase Player Variable At Rate(Event Player, Ability3Cooldown, 0, 1, Destination and Rate); } } disabled rule("Shadow") { event { Ongoing - Global; } } rule("Shadow Init") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 0; Is Button Held(Event Player, Crouch) == True; Is Game In Progress == True; } actions { Wait(0.250, Ignore Condition); Clear Status(Event Player, Rooted); Set Player Variable(Event Player, Class, 7); Create HUD Text(Filtered Array(Event Player, Compare(Player Variable(Event Player, Class), ==, 7)), Icon String(Poison), Custom String("Shadow Mastery {0}", Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)), Null, Null), Custom String("{0} Exp / {1} Exp", Value In Array(Player Variable(Event Player, Exp), Player Variable( Event Player, Class)), Player Variable(Event Player, XpToLevel), Null), Left, 0, Purple, Purple, Purple, Visible To and String, Default Visibility); Set Player Variable(Event Player, Hud8, Last Text ID); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 7), Compare( Player Variable(Event Player, Ability1Pos), !=, Player Variable(Event Player, Ability1End)))), Orb, Purple, Player Variable( Event Player, Ability1Pos), 0.250, Visible To Position and Radius); Set Player Variable(Event Player, Effect1, Last Created Entity); Create Effect(Filtered Array(All Players(All Teams), And(Compare(Player Variable(Event Player, Class), ==, 7), Compare( Player Variable(Event Player, Ability2Extra), ==, True))), Bad Aura, Purple, Event Player, 1, Visible To Position and Radius); Set Player Variable(Event Player, Effect2, Last Created Entity); } } rule("Vortex Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Primary Fire) == True; Player Variable(Event Player, Class) == 7; Player Variable(Event Player, Ability1Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 15; Player Variable(Event Player, CanShoot) == True; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Modify Player Variable(Event Player, Mana, Subtract, 15); Set Player Variable(Event Player, Ability1Pos, Eye Position(Event Player)); Set Player Variable(Event Player, Ability1End, Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 1000)), All Players(All Teams), Event Player, True)); Chase Player Variable At Rate(Event Player, Ability1Pos, Player Variable(Event Player, Ability1End), 10, Destination and Rate); Set Player Variable(Event Player, Ability1Cooldown, 2); Chase Player Variable At Rate(Event Player, Ability1Cooldown, 0, 1, Destination and Rate); Start Rule(VortexImpulse, Restart Rule); } } rule("Vortex Impulse") { event { Subroutine; VortexImpulse; } actions { Wait(0.100, Ignore Condition); Set Player Variable(Event Player, Abiliy1Extra, Remove From Array(Players Within Radius(Player Variable(Event Player, Ability1Pos), 3, All Teams, Off), Event Player)); For Player Variable(Event Player, LoopIncrement, 0, Count Of(Player Variable(Event Player, Abiliy1Extra)), 1); Apply Impulse(Value In Array(Player Variable(Event Player, Abiliy1Extra), Player Variable(Event Player, LoopIncrement)), Direction Towards(Player Variable(Event Player, Ability1Pos), Position Of(Value In Array(Player Variable(Event Player, Abiliy1Extra), Player Variable(Event Player, LoopIncrement)))), -7, To World, Cancel Contrary Motion); Damage(Value In Array(Player Variable(Event Player, Abiliy1Extra), Player Variable(Event Player, LoopIncrement)), Event Player, 15); End; Loop If(Compare(Player Variable(Event Player, Ability1Pos), !=, Player Variable(Event Player, Ability1End))); } } rule("Unlock Shadowstep") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 7; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Big Message(Event Player, Custom String("You Have Unlocked Shadowstep", Null, Null, Null)); Big Message(Event Player, Custom String("Press Secondary Fire To Use", Null, Null, Null)); } } rule("Shadowstep Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Secondary Fire) == True; Player Variable(Event Player, Class) == 7; Player Variable(Event Player, Ability2Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 20; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 2; } actions { Set Invisible(Event Player, All); Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Set Player Variable(Event Player, Ability2Extra, True); Modify Player Variable(Event Player, Mana, Subtract, 20); Wait(0.250, Ignore Condition); disabled If(Compare(Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of( Event Player), 5)), Null, Event Player, True), ==, Null)); disabled Teleport(Event Player, Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 5))); disabled End; disabled If(Compare(Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of( Event Player), 5)), Null, Event Player, True), !=, Null)); Teleport(Event Player, Nearest Walkable Position(Ray Cast Hit Position(Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), Subtract(Distance Between(Eye Position(Event Player), Ray Cast Hit Position( Eye Position(Event Player), Add(Eye Position(Event Player), Multiply(Facing Direction Of(Event Player), 15)), All Players( All Teams), Event Player, True)), 2))), All Players(All Teams), Event Player, True))); disabled End; Wait(0.250, Ignore Condition); Set Player Variable(Event Player, Ability2Extra, False); Set Player Variable(Event Player, Ability2Cooldown, 1); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); Set Invisible(Event Player, None); } } rule("Unlock Death Touch") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 7; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; } actions { Big Message(Event Player, Custom String("You Have Unlocked Death Touch", Null, Null, Null)); Big Message(Event Player, Custom String("Press Ability 2 To Use", Null, Null, Null)); Create Icon(Filtered Array(Event Player, And(Compare(Player Variable(Event Player, Class), ==, 7), Compare(Value In Array( Player Variable(Event Player, Ability3Extra), 0), ==, True))), Value In Array(Player Variable(Event Player, Ability3Extra), 1), Skull, Visible To and Position, Purple, True); Set Player Variable(Event Player, Effect3, Last Created Entity); } } rule("Death Touch Cast") { event { Ongoing - Each Player; All; All; } conditions { Is Button Held(Event Player, Ability 2) == True; Player Variable(Event Player, Class) == 7; Player Variable(Event Player, Ability3Cooldown) == 0; Is Alive(Event Player) == True; Player Variable(Event Player, Mana) >= 35; Player Variable(Event Player, CanShoot) == True; Value In Array(Player Variable(Event Player, Levels), Player Variable(Event Player, Class)) >= 4; Is In View Angle(Event Player, Player Closest To Reticle(Event Player, All Teams), 45) == True; Is In Line of Sight(Event Player, Player Closest To Reticle(Event Player, All Teams), Barriers Do Not Block LOS) == True; } actions { Play Effect(Event Player, Explosion Sound, White, Event Player, 10); Set Player Variable At Index(Event Player, Ability3Extra, 0, True); Set Player Variable At Index(Event Player, Ability3Extra, 1, Player Closest To Reticle(Event Player, All Teams)); Modify Player Variable(Event Player, Mana, Subtract, 35); Set Player Variable(Event Player, Ability2Cooldown, 1); Big Message(Value In Array(Player Variable(Event Player, Ability3Extra), 1), Custom String("You are being mana drained!", Null, Null, Null)); Wait(3, Ignore Condition); Set Player Variable At Index(Event Player, Ability3Extra, 0, False); Set Player Variable At Index(Event Player, Ability3Extra, 1, Null); Chase Player Variable At Rate(Event Player, Ability2Cooldown, 0, 1, Destination and Rate); } } rule("Death Touch Mana") { event { Ongoing - Each Player; All; All; } conditions { Player Variable(Event Player, Class) == 7; Value In Array(Player Variable(Event Player, Ability3Extra), 0) == True; Player Variable(Value In Array(Player Variable(Event Player, Ability3Extra), 1), Mana) > 5; } actions { Modify Player Variable(Value In Array(Player Variable(Event Player, Ability3Extra), 1), Mana, Subtract, 5); Damage(Value In Array(Player Variable(Event Player, Ability3Extra), 1), Event Player, 2.500); Play Effect(All Players(All Teams), Ring Explosion, Purple, Value In Array(Player Variable(Event Player, Ability3Extra), 1), 1); Wait(0.250, Ignore Condition); Loop If Condition Is True; } }
View Fullscreen
Copy current Rule
Copy all Rules
Categories | Free for all
Tags | wizards
Heroes | Mercy
Maps | All
Created at |
Last updated |
Current version | 1.0.0

1 Comments

Log in or Sign up to place a comment.
Ariaistheculprit

Hello, Webb! I have recently played your game with 2 of my friends and it was really addicting and fun, one of the best Overwatch Workshop experiences I've had! But I still consider it fair for me to write down some things about the game as they are my opinions on what could be future changes in the game.

As much as it is fun experimenting with all the classes in the gamemode, it feels like you, the player, revolve just around getting the new skills and not doing much else; which can make the game become tedious after some time of playing. Because of that, I'd suggest you add more skills for each class (maybe make level requirements higher too, with each class having an equal number of abilities); add an on-screen list of the abilities you've unlocked or have yet to, in a darker shade to resemble that you can't use it; add in-game events to get players to participate more in-game, aside from pvp (a.i bosses, loot drops with maybe special gear items with powerups, etc.); and finally for this session, I think one of the essentials for this mode is: balancing the classes.
I will use this session for things I do not recommend adding into the mode: -Adding upgrades through a money system, or just quests with money rewards; -Other playable heroes, mercy works well and fits into the theme; That is all I can remember at the moment and I thank you for your consideration. P. S: Please update your discord link.

Workshop.codes - Background image