public void OnHoldable(Holdable h) { Player entity = base.Scene.Tracker.GetEntity <Player>(); if (!collected && entity != null && h.Dangerous(holdableCollider)) { Collect(entity); } }
public void onHoldable(Holdable holdable) { Player player = Scene.Tracker.GetEntity <Player>(); if (player != null && holdable.Dangerous(holdableCollider)) { heartBroken(player, holdable, SceneAs <Level>()); } }
public void OnHoldable(Holdable holdable) { Player player = Scene.Tracker.GetEntity <Player>(); if (!Collected && player != null && holdable.Dangerous(holdableCollider)) { Collect(player, Scene as Level); } }
private static void HeartGem_OnHoldable(On.Celeste.HeartGem.orig_OnHoldable orig, HeartGem self, Holdable h) { if (self is MultiDashHeartGem gem) { if (h.Dangerous(gem.baseData.Get <HoldableCollider>("holdableCollider"))) { Player player = gem.Scene.Tracker.GetEntity <Player>(); if (!gem.baseData.Get <bool>("collected") && player != null && gem.health > 1) { // Basically just HeartGem.OnPlayer if (gem.baseData.Get <float>("bounceSfxDelay") <= 0f) { Audio.Play(SFX.game_gen_crystalheart_bounce, gem.Position); gem.baseData["bounceSfxDelay"] = 0.1f; } h.PointBounce(self.Center); gem.baseData.Get <Wiggler>("moveWiggler").Start(); gem.ScaleWiggler.Start(); gem.baseData["moveWiggleDir"] = (gem.Center - player.Center).SafeNormalize(Vector2.UnitY); Input.Rumble(RumbleStrength.Medium, RumbleLength.Medium); } else { // Collect normally orig(self, h); } Console.WriteLine(gem.health); TryStartCutscene(gem.cutscenes[3 - gem.health], player); gem.Crack(player); } } else { orig(self, h); } }