private static void PlayerOnWindMove(On.Celeste.Player.orig_WindMove orig, Player self, Vector2 move)
        {
            List <Entity> theoCrystalBarrier = self.Scene.Tracker.GetEntities <TheoCrystalBarrier>().ToList();

            if (self.Holding?.Entity is TheoCrystal)
            {
                theoCrystalBarrier.ForEach(entity => entity.Collidable = true);

                if (CollideCheckOutside(self, Vector2.UnitX))
                {
                    return;
                }

                if (CollideCheckOutside(self, -Vector2.UnitX))
                {
                    return;
                }

                if (CollideCheckOutside(self, Vector2.UnitY * 3))
                {
                    return;
                }

                CollideCheckOutside(self, -Vector2.UnitY);
            }

            orig(self, move);
        }
Example #2
0
        private static void PlayerOnWindMove(On.Celeste.Player.orig_WindMove orig, Player self, Vector2 move)
        {
            var featherBarriers =
                self.Scene.Tracker.GetEntities <FeatherBarrier>().Cast <FeatherBarrier>().ToList();

            TryMakeBarrierCollidable(self, featherBarriers);

            orig(self, move);
        }