GAME 1303 — Tier 3: Movement Add-ons & Signature Mechanics

Eighteen scripts that bolt onto the Tier 1 player. Most are true drop-ins: add the component, done. Three Tier 1 files get a small v1.1 update (in Tier1_Updates/ — replace the originals):

Scripts/
  Movement/  Dash, DoubleJump, Glide, Sprint, WallSlideJump, Ladder + LadderClimber,
             MomentumLauncher, GrapplingHook
  Balloon/   BalloonController, FuelSystem, FuelPickup, WindZone2D
  Special/   MagnetPull + MetalObject, RailRide + Rail, CharacterDefinition + CharacterSwapper
Tier1_Updates/  PlayerController2D, Health, DamageOnContact  (v1.1)

How the modules cooperate (worth explaining once)

PlayerInput in Send Messages mode calls OnJump, OnMove, OnAttack... on every component on the player. So DoubleJump, WallSlideJump, LadderClimber, RailRide and GrapplingHook all hear the Jump press and decide among themselves who acts: the controller if grounded/coyote, otherwise wall jump > ladder jump > double jump. While a module owns the body (dash, wall-jump lock, ladder, rail, rope) it sets controller.MovementLocked = true so the base controller stops writing velocity, and clears it when done. Anything that grants temporary i-frames goes through Health.SetInvulnerable.

Input actions to add (Input Actions asset → Player map)

Action Type Suggested bindings Used by
Dash Button Left Shift, gamepad B/East Dash (or tick Use Sprint Action)
Grapple Button Right Mouse, gamepad LT GrapplingHook
Magnet Button Right Mouse, gamepad LT MagnetPull
Character1…Character4 Button 1–4 keys CharacterSwapper (optional; Q/E Previous/Next already exist)

Everything else uses the default Move, Jump, Attack, Sprint, Previous, Next.

Per-game quick recipes

Animator parameters these scripts use (all optional — they check first)

Triggers: Dash, DoubleJump, Launch. Bools: IsGliding, IsWallSliding, IsClimbing, IsRiding. Float: ClimbSpeed.

AudioManager names referenced

dash, jump, launch, magnet, throw, rail_on, collect.

Notes for the instructor