Return to post
- 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;
- }
- }