private void Disappear(BadelineDummy badeline, bool silent = false) { if (!silent) { Audio.Play("event:/char/badeline/disappear", badeline.Position); } SceneAs <Level>()?.Displacement.AddBurst(badeline.Center, 0.5f, 24f, 96f, 0.4f); SceneAs <Level>()?.Particles.Emit(BadelineOldsite.P_Vanish, 12, badeline.Center, Vector2.One * 6f); badeline.RemoveSelf(); }
private IEnumerator BadelineRejoin() { Audio.Play("event:/new_content/char/badeline/maddy_join_quick", badeline.Position); Vector2 from = badeline.Position; for (var p = 0.0f; (double)p < 1.0; p += Engine.DeltaTime / 0.25f) { badeline.Position = Vector2.Lerp(from, player.Position, Ease.CubeIn(p)); yield return(null); } Level.Displacement.AddBurst(player.Center, 0.5f, 8f, 32f, 0.5f); badeline.RemoveSelf(); }
public override void OnEnd(Level level) { level.OnEndOfFrame += (Action)(() => { level.Session.Inventory.Dashes = maxDashes; player.Dashes = maxDashes; player.Depth = 0; player.Active = true; player.Visible = true; player.StateMachine.State = Player.StNormal; badeline?.RemoveSelf(); if (endLevel) { level.CompleteArea(true, false, false); player.StateMachine.State = Player.StDummy; SpotlightWipe.FocusPoint += new Vector2(0.0f, 0f); } }); }
private IEnumerator Appear(BadelineDummy badeline, bool silent = false) { if (Scene == null) { badeline.RemoveSelf(); yield break; } badelines.Add(badeline); ResetPosition(); if (!silent) { Audio.Play("event:/char/badeline/appear", badeline.Position); } SceneAs <Level>().Displacement.AddBurst(badeline.Center, 0.5f, 24f, 96f, 0.4f); SceneAs <Level>().Particles.Emit(BadelineOldsite.P_Vanish, 12, badeline.Center, Vector2.One * 6f); }