public override void HandleCrewmanCollision(Crewman crewman) { if (!Activated) { Activated = true; game.ExecuteScript(Script, this, crewman); } }
public override void HandleCrewmanCollision(Crewman crewman) { if (crewman.CurrentCheckpoint != this || crewman.PendingTrinkets.Count > 0) { if (crewman.CurrentCheckpoint != null) { crewman.CurrentCheckpoint.Deactivate(); } crewman.CurrentCheckpoint = this; crewman.CheckpointFlipX = flipX; crewman.CheckpointFlipY = flipY; crewman.CheckpointX = CenterX; crewman.CheckpointY = flipY ? Y : Bottom; if (crewman.PendingTrinkets.Count > 0) { foreach (Trinket tr in crewman.PendingTrinkets) { crewman.HeldTrinkets.Add(tr.ID); } crewman.PendingTrinkets.Clear(); } Activate(); } }
public override void HandleCrewmanCollision(Crewman crewman) { crewman.CenterX = OutX + Width / 2; crewman.PreviousX = crewman.X; switch (Settings) { case FlipSettings.ReverseFlip: crewman.Gravity *= -1; break; case FlipSettings.Flip: crewman.Gravity = -Math.Abs(crewman.Gravity); break; case FlipSettings.Unflip: crewman.Gravity = Math.Abs(crewman.Gravity); break; } if (crewman.Gravity < 0) { crewman.Y = OutY; } else { crewman.Bottom = OutY + Height; } crewman.PreviousY = crewman.Y; crewman.YVelocity = 0; if (crewman.IsPlayer) { game.LoadRoom(OutRoomX, OutRoomY); } game.Flash(10); game.Shake(40); WarpSound?.Play(); }