Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • modes
  • {
  • Deathmatch
  • {
  • Game Length In Minutes: 15
  • Score To Win: 50
  • enabled maps
  • {
  • Horizon Lunar Colony
  • }
  • }
  • General
  • {
  • Hero Limit: Off
  • Respawn As Random Hero: On
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Ammunition Clip Size Scalar: 25%
  • Damage Dealt: 150%
  • Health: 50%
  • Ultimate Ability: Off
  • enabled heroes
  • {
  • Bastion
  • }
  • }
  • }
  • workshop
  • {
  • jetpack flight duration from full fuel: 1.330
  • jetpack fuel recharge time from empty: 2.500
  • max speed: 8.000
  • }
  • }
  • variables
  • {
  • global:
  • 0: upScale
  • 1: downScale
  • 2: T1Kills
  • 3: T2Kills
  • 4: speed
  • 6: maxSpeed
  • 7: acceleration
  • 9: fuelDepletionRate
  • 10: fuelChargeRate
  • 11: fuelChargePauseTime
  • player:
  • 0: maxMoveSpeed
  • 1: jumpCharge
  • 2: jumpBoosting
  • 3: jumpSoundEffect
  • 4: slide
  • 5: canJump
  • 6: deaccel
  • 16: grappleRememberPos
  • 17: grappleRememberDirection
  • 18: grappleDeviate
  • 19: grappleEffectIds
  • 20: grappleRememberDistances
  • 21: grappleMovingDistance
  • 22: grapplePoss
  • 23: textIDs
  • 25: boostCharges
  • }
  • rule("init global")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.acceleration = Workshop Setting Real(Custom String("Movement Settings"), Custom String("strafe acceleration"), 40, 0, 120,
  • 0);
  • Global.maxSpeed = Workshop Setting Real(Custom String("Movement Settings"), Custom String("max speed"), 12, 0, 60, 0);
  • Global.upScale = 4;
  • Global.downScale = 0.650;
  • Global.T1Kills = 0;
  • Global.T2Kills = 0;
  • disabled Create HUD Text(All Players(Team 1), Custom String("{0} kills", Global.T1Kills), Null, Null, Left, 0, Color(Blue), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • disabled Create HUD Text(All Players(Team 1), Custom String("{0} kills", Global.T2Kills), Null, Null, Right, 0, Color(Red), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • disabled Create HUD Text(All Players(Team 2), Custom String("{0} kills", Global.T2Kills), Null, Null, Left, 0, Color(Blue), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • disabled Create HUD Text(All Players(Team 2), Custom String("{0} kills", Global.T1Kills), Null, Null, Right, 0, Color(Red), Color(White),
  • Color(White), Visible To and String, Default Visibility);
  • Global.speed = 1000;
  • Global.fuelDepletionRate = 100 / Workshop Setting Real(Custom String("Jetpack Settings"), Custom String(
  • "jetpack flight duration from full fuel"), 1.333, 0.100, 30, 0);
  • Global.fuelChargeRate = 100 / Workshop Setting Real(Custom String("Jetpack Settings"), Custom String(
  • "jetpack fuel recharge time from empty"), 2.500, 0.100, 30, 0);
  • Global.fuelChargePauseTime = Workshop Setting Real(Custom String("Jetpack Settings"), Custom String(
  • "pause time before recharge begins"), 0.500, 0, 5, 0);
  • }
  • }
  • rule("init player")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • disabled Set Jump Vertical Speed(Event Player, 150 * Square Root(Global.downScale));
  • disabled Set Aim Speed(Event Player, 60);
  • Start Scaling Player(Event Player, Global.downScale, True);
  • Event Player.maxMoveSpeed = 110 * Square Root(Global.downScale);
  • Start Forcing Throttle(Event Player, 0, Event Player.maxMoveSpeed / Global.speed, 0, Event Player.maxMoveSpeed / Global.speed, 0,
  • Event Player.maxMoveSpeed / Global.speed);
  • Set Gravity(Event Player, 100 * Square Root(Global.downScale));
  • disabled Set Gravity(Event Player, 100 * Square Root(Global.downScale));
  • Set Move Speed(Event Player, Global.speed);
  • disabled Event Player.boostCharges = 3;
  • disabled Create HUD Text(Event Player, Ability Icon String(Hero(D.Va), Button(Primary Fire)), Null, Null, Top, 0, Color(White), Color(
  • White), Color(White), Visible To and String, Default Visibility);
  • disabled Event Player.textIDs[0] = Last Text ID;
  • disabled Create HUD Text(Event Player, Ability Icon String(Hero(D.Va), Button(Primary Fire)), Null, Null, Top, 0, Color(White), Color(
  • White), Color(White), Visible To and String, Default Visibility);
  • disabled Event Player.textIDs[1] = Last Text ID;
  • disabled Create HUD Text(Event Player, Ability Icon String(Hero(D.Va), Button(Primary Fire)), Null, Null, Top, 0, Color(White), Color(
  • White), Color(White), Visible To and String, Default Visibility);
  • disabled Event Player.textIDs[2] = Last Text ID;
  • disabled Set Max Health(Event Player, 100 * Square Root(Global.downScale));
  • Event Player.grapplePoss = Null;
  • Event Player.grappleDeviate = 0.400;
  • Disable Movement Collision With Players(Event Player);
  • Set Secondary Fire Enabled(Event Player, False);
  • Event Player.jumpCharge = 100;
  • Create Progress Bar HUD Text(Event Player, Event Player.jumpCharge, Custom String("FUEL"), Top, 0, Custom Color(255, 188, 0, 255),
  • Custom Color(255, 188, 0, 255), Values, Default Visibility);
  • }
  • }
  • rule("grapple trigger")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Button(Secondary Fire)) == True;
  • Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Event Player.grappleRememberPos = Position Of(Event Player);
  • Event Player.grappleRememberDirection = Facing Direction Of(Event Player);
  • Event Player.grappleMovingDistance = 0;
  • Event Player.grapplePoss = Empty Array;
  • Chase Player Variable At Rate(Event Player, grappleMovingDistance, 60, 100, Destination and Rate);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player, Event Player.grapplePoss[0] == Null ? Vector(0, 1, 0)
  • + Event Player.grappleRememberPos + Event Player.grappleMovingDistance * Normalize(
  • Event Player.grappleRememberDirection + 0 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation))
  • : Event Player.grapplePoss[0], Color(White), Visible To Position and Radius);
  • Event Player.grappleEffectIds[0] = Last Created Entity;
  • Event Player.slide = True;
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player, Event Player.grapplePoss[0] == Null ? Vector(0, 1, 0)
  • + Position Of(Event Player) + Event Player.grappleMovingDistance * Normalize(Facing Direction Of(Event Player)
  • + 1 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)) : Event Player.grapplePoss[0], Color(
  • White), Visible To Position and Radius);
  • disabled Event Player.grappleEffectIds[0] = Last Created Entity;
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player, Event Player.grapplePoss[1] == Null ? Vector(0, 1, 0)
  • + Position Of(Event Player) + Event Player.grappleMovingDistance * Normalize(Facing Direction Of(Event Player)
  • + -1 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)) : Event Player.grapplePoss[1], Color(
  • White), Visible To Position and Radius);
  • disabled Event Player.grappleEffectIds[1] = Last Created Entity;
  • Play Effect(All Players(All Teams), Explosion Sound, Color(White), Event Player, 100);
  • disabled Wait(0.200, Ignore Condition);
  • }
  • }
  • disabled rule("grapple right off")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (!Is Button Held(Event Player, Button(Secondary Fire)) || !Is In Line of Sight(Eye Position(Event Player),
  • Event Player.grapplePoss[0], Barriers Do Not Block LOS)) == True;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, grappleMovingDistance);
  • Destroy Effect(Event Player.grappleEffectIds[0]);
  • Event Player.grapplePoss[0] = Null;
  • Stop Accelerating(Event Player);
  • If(Event Player.grapplePoss[1] != Null);
  • Start Accelerating(Event Player, Direction Towards(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[1]),
  • 90 * Distance Between(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[1]) / 30, 60, To World,
  • Direction Rate and Max Speed);
  • End;
  • }
  • }
  • disabled rule("grapple left off")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • disabled (!Is Button Held(Event Player, Button(Secondary Fire)) || !Is In Line of Sight(Eye Position(Event Player),
  • Event Player.grapplePoss[1], Barriers Do Not Block LOS)) == True;
  • (!Is Button Held(Event Player, Button(Secondary Fire)) || False) == True;
  • }
  • actions
  • {
  • Stop Chasing Player Variable(Event Player, grappleMovingDistance);
  • Destroy Effect(Event Player.grappleEffectIds[1]);
  • Event Player.grapplePoss[1] = Null;
  • Stop Accelerating(Event Player);
  • If(Event Player.grapplePoss[0] != Null);
  • Start Accelerating(Event Player, Direction Towards(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[0]),
  • 90 * Distance Between(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[0]) / 30, 60, To World,
  • Direction Rate and Max Speed);
  • End;
  • }
  • }
  • rule("grapple off")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • disabled (!Is Button Held(Event Player, Button(Secondary Fire)) || !Is In Line of Sight(Eye Position(Event Player),
  • Event Player.grapplePoss[1], Barriers Do Not Block LOS)) == True;
  • (!Is Button Held(Event Player, Button(Secondary Fire)) || !Is Alive(Event Player)) == True;
  • }
  • actions
  • {
  • Event Player.grappleMovingDistance = 0;
  • Stop Chasing Player Variable(Event Player, grappleMovingDistance);
  • Destroy Effect(Event Player.grappleEffectIds[0]);
  • Destroy Effect(Event Player.grappleEffectIds[1]);
  • Event Player.grapplePoss = Empty Array;
  • disabled Stop Accelerating(Event Player);
  • disabled Set Gravity(Event Player, 100 * Square Root(Global.downScale));
  • Event Player.slide = False;
  • }
  • }
  • rule("grapple hit right")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Line of Sight(Vector(0, 1, 0) + Position Of(Event Player), Vector(0, 1, 0)
  • + Event Player.grappleRememberPos + Event Player.grappleMovingDistance * Normalize(
  • Event Player.grappleRememberDirection + 0 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)),
  • Barriers Do Not Block LOS) == False;
  • Event Player.grapplePoss[0] == Null;
  • Event Player.grappleMovingDistance > 0;
  • disabled Event Player.grappleMovingDistance < 30;
  • }
  • actions
  • {
  • Event Player.grapplePoss[0] = Ray Cast Hit Position(Vector(0, 1, 0) + Position Of(Event Player), Vector(0, 1, 0)
  • + Event Player.grappleRememberPos + Event Player.grappleMovingDistance * Normalize(
  • Event Player.grappleRememberDirection + 0 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)),
  • Empty Array, All Players(All Teams), True);
  • Event Player.grappleRememberDistances[0] = Distance Between(Vector(0, 1, 0) + Position Of(Event Player),
  • Event Player.grapplePoss[0]);
  • Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), Event Player.grapplePoss[0], 100);
  • disabled Start Accelerating(Event Player, Direction Towards(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[0]), 100,
  • 60, To World, Direction Rate and Max Speed);
  • disabled Start Accelerating(Event Player, Direction Towards(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[0]),
  • 90 * Distance Between(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[0]) / 30, 60, To World,
  • Direction Rate and Max Speed);
  • disabled Start Accelerating(Event Player, Vector(0, -1, 0), 17.500 * Square Root(Global.downScale), 60, To World,
  • Direction Rate and Max Speed);
  • disabled Set Gravity(Event Player, 0);
  • disabled Set Gravity(Event Player, 100 * Square Root(Global.downScale));
  • }
  • }
  • disabled rule("grapple hit left")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Line of Sight(Vector(0, 1, 0) + Position Of(Event Player), Vector(0, 1, 0) + Position Of(Event Player)
  • + Event Player.grappleMovingDistance * Normalize(Facing Direction Of(Event Player)
  • + -1 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)), Barriers Do Not Block LOS) == False;
  • Event Player.grapplePoss[1] == Null;
  • Event Player.grappleMovingDistance > 0;
  • disabled Event Player.grappleMovingDistance < 60;
  • }
  • actions
  • {
  • Event Player.grapplePoss[1] = Ray Cast Hit Position(Vector(0, 1, 0) + Position Of(Event Player), Vector(0, 1, 0) + Position Of(
  • Event Player) + Event Player.grappleMovingDistance * Normalize(Facing Direction Of(Event Player)
  • + -1 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)), Empty Array, All Players(All Teams),
  • True);
  • Event Player.grappleRememberDistances[1] = Distance Between(Vector(0, 1, 0) + Position Of(Event Player),
  • Event Player.grapplePoss[1]);
  • Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), Event Player.grapplePoss[1], 100);
  • disabled Start Accelerating(Event Player, Direction Towards(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[1]), 100,
  • 60, To World, Direction Rate and Max Speed);
  • disabled Start Accelerating(Event Player, Direction Towards(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[1]),
  • 90 * Distance Between(Vector(0, 1, 0) + Position Of(Event Player), Event Player.grapplePoss[1]) / 30, 60, To World,
  • Direction Rate and Max Speed);
  • }
  • }
  • rule("grapple hitting right")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.grapplePoss[0] != Null;
  • disabled Distance Between(Event Player, Event Player.grapplePoss[0]) > Event Player.grappleRememberDistances[0];
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Direction Towards(Event Player, Event Player.grapplePoss[0]), 0.010, To World,
  • Cancel Contrary Motion XYZ);
  • disabled Play Effect(All Players(All Teams), Good Explosion, Color(White), Event Player, 1);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("grapple hitting left")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.grapplePoss[1] != Null;
  • Distance Between(Event Player, Event Player.grapplePoss[1]) > Event Player.grappleRememberDistances[1];
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Direction Towards(Event Player, Event Player.grapplePoss[1]), 0.010, To World,
  • Cancel Contrary Motion XYZ);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("grapple miss right")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Line of Sight(Vector(0, 1, 0) + Position Of(Event Player), Vector(0, 1, 0) + Position Of(Event Player)
  • + Event Player.grappleMovingDistance * Normalize(Facing Direction Of(Event Player)
  • + 1 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)), Barriers Do Not Block LOS) == False;
  • Event Player.grappleMovingDistance == 60;
  • Event Player.grapplePoss[0] == Null;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.grappleEffectIds[0]);
  • }
  • }
  • disabled rule("grapple miss left")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Line of Sight(Vector(0, 1, 0) + Position Of(Event Player), Vector(0, 1, 0) + Position Of(Event Player)
  • + Event Player.grappleMovingDistance * Normalize(Facing Direction Of(Event Player)
  • + -1 * Event Player.grappleDeviate * World Vector Of(Right, Event Player, Rotation)), Barriers Do Not Block LOS) == False;
  • Event Player.grappleMovingDistance == 30;
  • Event Player.grapplePoss[1] == Null;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.grappleEffectIds[1]);
  • }
  • }
  • rule("scoring")
  • disabled rule("scoring")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • actions
  • {
  • If(Array Contains(All Players(Opposite Team Of(Team Of(Event Player))), Attacker));
  • If(Team Of(Event Player) == Team 1);
  • Global.T2Kills += 1;
  • Else;
  • Global.T1Kills += 1;
  • End;
  • Else;
  • If(Team Of(Event Player) == Team 1);
  • Global.T1Kills -= 1;
  • Else;
  • Global.T2Kills -= 1;
  • End;
  • End;
  • }
  • }
  • rule("team1 wins")
  • disabled rule("team1 wins")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.T1Kills >= 15;
  • }
  • actions
  • {
  • Declare Team Victory(Team 1);
  • }
  • }
  • rule("team2 wins")
  • disabled rule("team2 wins")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.T2Kills >= 30;
  • }
  • actions
  • {
  • Declare Team Victory(Team 2);
  • }
  • }
  • rule("Rule 31")
  • disabled rule("Rule 31")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Air(Event Player) == True;
  • }
  • actions
  • {
  • Start Forcing Throttle(Event Player, 0, 0, 0, 0, 0, 0);
  • }
  • }
  • rule("Rule 31")
  • disabled rule("Rule 31")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is In Air(Event Player) == False;
  • }
  • actions
  • {
  • disabled Start Forcing Throttle(Event Player, 0, 0, 0, 0, 0, 0);
  • Start Forcing Throttle(Event Player, 0, Event Player.maxMoveSpeed / 200, 0, Event Player.maxMoveSpeed / 200, 0,
  • Event Player.maxMoveSpeed / 200);
  • }
  • }
  • rule("can Button(Jump)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Bastion;
  • }
  • conditions
  • {
  • Y Component Of(Position Of(Event Player)) <= 0 + Y Component Of(Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + 5 * Down, Empty Array, Empty Array, False));
  • disabled Is On Ground(Event Player) == True;
  • disabled Event Player.slide == False;
  • }
  • actions
  • {
  • Event Player.canJump = True;
  • Wait(0.050, Abort When False);
  • Event Player.deaccel = True;
  • }
  • }
  • rule("cant Button(Jump)")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Bastion;
  • }
  • conditions
  • {
  • disabled Altitude Of(Event Player) > 0.100;
  • Y Component Of(Position Of(Event Player)) > 0 + Y Component Of(Ray Cast Hit Position(Eye Position(Event Player), Eye Position(
  • Event Player) + 5 * Down, Empty Array, Empty Array, False));
  • disabled Event Player.deaccel == True;
  • disabled Event Player.slide == True;
  • }
  • actions
  • {
  • Event Player.canJump = False;
  • disabled Set Move Speed(Event Player, 1000);
  • Event Player.deaccel = False;
  • }
  • }
  • rule("jump")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Bastion;
  • }
  • conditions
  • {
  • Event Player.canJump == True;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, Vector(0, 1, 0), 7, To World, Cancel Contrary Motion);
  • Event Player.canJump = False;
  • }
  • }
  • rule("not in sentry")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • Bastion;
  • }
  • conditions
  • {
  • Is In Alternate Form(Event Player) == False;
  • }
  • actions
  • {
  • Stop Accelerating(Event Player);
  • Allow Button(Event Player, Button(Ability 1));
  • Press Button(Event Player, Button(Ability 1));
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • disabled Start Accelerating(Event Player, World Vector Of(Throttle Of(Event Player), Event Player, Rotation), Throttle Of(Event Player)
  • == True ? 20 * Max(0, 5.500 - Dot Product(Normalize(World Vector Of(Throttle Of(Event Player), Event Player, Rotation)),
  • Vector(1, 0, 1) * Velocity Of(Event Player))) : 0, 60, To World, Direction Rate and Max Speed);
  • disabled Start Accelerating(Event Player, World Vector Of(Throttle Of(Event Player), Event Player, Rotation), Throttle Of(Event Player)
  • == True ? (Dot Product(Velocity Of(Event Player), World Vector Of(Throttle Of(Event Player), Event Player, Rotation))
  • + 11 > 5.500 ? 62.500 * (5.500 - Dot Product(Velocity Of(Event Player), World Vector Of(Throttle Of(Event Player),
  • Event Player, Rotation))) : 11) : 0, 60, To World, Direction Rate and Max Speed);
  • Set Gravity(Event Player, 0);
  • Start Accelerating(Event Player, Vector(0, -1, 0), 15, 60, To World, Direction Rate and Max Speed);
  • Set Move Speed(Event Player, 1000);
  • disabled Start Accelerating(Event Player, -1 * Velocity Of(Event Player), Event Player.deaccel ? 4 * Speed Of(Event Player) : 0, 60,
  • To World, Direction Rate and Max Speed);
  • disabled Start Accelerating(Event Player, World Vector Of(Throttle Of(Event Player), Event Player, Rotation), Dot Product(Velocity Of(
  • Event Player), Normalize(World Vector Of(Throttle Of(Event Player), Event Player, Rotation)))
  • + 0.016 * Global.acceleration > Global.maxSpeed + 1 ? 31.250 * (Global.maxSpeed - Dot Product(Velocity Of(Event Player),
  • Normalize(World Vector Of(Throttle Of(Event Player), Event Player, Rotation)))) : (Throttle Of(Event Player)
  • == True ? Global.acceleration : 0), 60, To World, Direction Rate and Max Speed);
  • disabled Start Accelerating(Event Player, -1 * Velocity Of(Event Player), Event Player.deaccel && Throttle Of(Event Player)
  • == False ? 4 * Speed Of(Event Player) : 0, 60, To World, Direction Rate and Max Speed);
  • disabled Start Accelerating(Event Player, World Vector Of(Throttle Of(Event Player), Event Player, Rotation), Throttle Of(Event Player)
  • == True ? Max(7, Global.acceleration * (Global.maxSpeed - Dot Product(Normalize(World Vector Of(Throttle Of(Event Player),
  • Event Player, Rotation)), Vector(1, 0, 1) * Velocity Of(Event Player)))) : 0, 60, To World, Direction Rate and Max Speed);
  • Start Accelerating(Event Player, Min(Max(0, Global.maxSpeed - Horizontal Speed Of(Event Player)), Dot Product(Normalize(Vector(1,
  • 0, 1) * Velocity Of(Event Player)), Global.acceleration * Normalize(World Vector Of(Throttle Of(Event Player), Event Player,
  • Rotation)))) * Normalize(Vector(1, 0, 1) * Velocity Of(Event Player)) + Dot Product(Direction From Angles(
  • Horizontal Angle From Direction(Velocity Of(Event Player)) + 90, 0), Global.acceleration * Normalize(World Vector Of(
  • Throttle Of(Event Player), Event Player, Rotation))) * Direction From Angles(Horizontal Angle From Direction(Velocity Of(
  • Event Player)) + 90, 0), Throttle Of(Event Player) == True ? Max(0, Magnitude Of(Min(Max(0,
  • Global.maxSpeed - Horizontal Speed Of(Event Player)), Dot Product(Normalize(Vector(1, 0, 1) * Velocity Of(Event Player)),
  • Global.acceleration * Normalize(World Vector Of(Throttle Of(Event Player), Event Player, Rotation)))) * Normalize(Vector(1, 0,
  • 1) * Velocity Of(Event Player)) + Dot Product(Direction From Angles(Horizontal Angle From Direction(Velocity Of(Event Player))
  • + 90, 0), Global.acceleration * Normalize(World Vector Of(Throttle Of(Event Player), Event Player, Rotation)))
  • * Direction From Angles(Horizontal Angle From Direction(Velocity Of(Event Player)) + 90, 0))) : 0, 60, To World,
  • Direction Rate and Max Speed);
  • Disallow Button(Event Player, Button(Ability 1));
  • }
  • }
  • disabled rule("Rule 23")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • 0 == 0;
  • }
  • }
  • disabled rule("jump to boost")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • disabled Is Button Held(Event Player, Button(Primary Fire)) == True;
  • }
  • actions
  • {
  • disabled Start Accelerating(Event Player, Vector(0, 2, 0) + Facing Direction Of(Event Player),
  • Event Player.jumpCharge > 0 && Is Button Held(Event Player, Button(Jump)) ? 20 : 0, 60, To World,
  • Direction Rate and Max Speed);
  • }
  • }
  • rule("jump boost start")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.jumpCharge > 0;
  • Is Button Held(Event Player, Button(Jump)) == True;
  • Is Alive(Event Player) == True;
  • (Is Waiting For Players || Is Game In Progress) == True;
  • }
  • actions
  • {
  • Chase Player Variable At Rate(Event Player, jumpCharge, -1, Global.fuelDepletionRate, Destination and Rate);
  • Event Player.jumpBoosting = True;
  • Create Effect(All Players(All Teams), Smoke Sound, Color(White), Event Player, 200, Visible To Position and Radius);
  • Event Player.jumpSoundEffect = Last Created Entity;
  • }
  • }
  • rule("jump boost over")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (Event Player.jumpCharge <= 0 || !Is Button Held(Event Player, Button(Jump)) || Is Dead(Event Player)) == True;
  • disabled Is Alive(Event Player) == True;
  • }
  • actions
  • {
  • Destroy Effect(Event Player.jumpSoundEffect);
  • Stop Chasing Player Variable(Event Player, jumpCharge);
  • Event Player.jumpBoosting = False;
  • Wait(Global.fuelChargePauseTime, Abort When False);
  • Chase Player Variable At Rate(Event Player, jumpCharge, 100, Global.fuelChargeRate, Destination and Rate);
  • }
  • }
  • rule("jump boosting")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • disabled (Event Player.jumpCharge <= 0 || !Is Button Held(Event Player, Button(Jump))) == True;
  • Event Player.jumpBoosting == True;
  • }
  • actions
  • {
  • Apply Impulse(Event Player, World Vector Of(Vector(0, 1, 0), Event Player, Rotation), 0.001, To World, Cancel Contrary Motion);
  • Apply Impulse(Event Player, World Vector Of(Vector(0, 1.500, 1), Event Player, Rotation), 0.350, To World,
  • Incorporate Contrary Motion);
  • Play Effect(All Players(All Teams), Good Explosion, Custom Color(2 * (Absolute Value(200 * Total Time Elapsed % 768 - 384) - 128),
  • 2 * (Absolute Value((200 * Total Time Elapsed + 256) % 768 - 384) - 128), 2 * (Absolute Value((200 * Total Time Elapsed + 512)
  • % 768 - 384) - 128), 255), Position Of(Event Player) + Down, 0.500);
  • disabled Play Effect(All Players(All Teams), Good Explosion, Color(Red), Position Of(Event Player) + Down, 0.500);
  • disabled Play Effect(Event Player, Good Explosion, Color(Blue), Position Of(Event Player) + Vector(0, -2, 0), 1);
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • disabled Event Player.jumpBoosting = 0;
  • disabled Play Effect(All Players(All Teams), Buff Impact Sound, Color(White), Event Player, 1);
  • }
  • }
  • disabled rule("player died")
  • {
  • event
  • {
  • Player Died;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.grappleMovingDistance = 0;
  • Stop Chasing Player Variable(Event Player, grappleMovingDistance);
  • Destroy Effect(Event Player.grappleEffectIds[0]);
  • Destroy Effect(Event Player.grappleEffectIds[1]);
  • Event Player.grapplePoss = Empty Array;
  • disabled Stop Accelerating(Event Player);
  • disabled Set Gravity(Event Player, 100 * Square Root(Global.downScale));
  • Event Player.slide = False;
  • }
  • }
Join the Workshop.codes Discord