private void TryAttachToPlayer(Player player) { ParentCollection.TryAttachToPlayer(player, this); if (Slot != null && Slot.Active) { Slot.Deactivate(); Slot = null; } }
private IEnumerator ResetCoroutine() { Level level = Scene as Level; reachedLastPosition = true; player = null; if (Slot != null) { Slot.Deactivate(); Slot = null; } if (tween != null) { tween.Stop(); tween = null; } Collidable = false; Activating = false; Activated = false; Audio.Play("event:/game/general/seed_poof", Position); yield return(rng.NextFloat() * 0.025f + 0.025f); Visible = false; Input.Rumble(RumbleStrength.Medium, RumbleLength.Medium); for (int i = 0; i < 6; i++) { float dir = Calc.Random.NextFloat((float)Math.PI * 2f); level.ParticlesFG.Emit(requiresDash ? P_Burst : P_BurstNoDash, 1, Position + Calc.AngleToVector(dir, 4f), Vector2.Zero, dir); } while (ParentCollection.killCircle != null) { yield return(null); } yield return(rng.NextFloat() * 0.2f + 0.3f); Position = defaultPosition; Audio.Play("event:/game/general/seed_reappear", Position, "count", 1); Visible = true; Collidable = true; level.Displacement.AddBurst(Position, 0.2f, 8f, 28f, 0.2f); sprite.Play(requiresDash ? "idle" : "noDash", true, true); ParentCollection.ResetDone(this); }