Exemple #1
0
            public override void PostUpdate()
            {
                if (Main.dedServ || !DisplayWorldTooltips)
                {
                    return;
                }
                Mod displayMod   = null;
                Mod modLoaderMod = ModLoader.GetMod("ModLoader");                 //modmodloadermodmodloadermodmodloader
                int mysteryTile  = modLoaderMod.TileType("MysteryTile");
                int mysteryTile2 = modLoaderMod.TileType("PendingMysteryTile");

                var tile = Main.tile[Player.tileTargetX, Player.tileTargetY];

                if (tile != null)
                {
                    if (tile.active() && tile.type != mysteryTile && tile.type != mysteryTile2)
                    {
                        var modTile = TileLoader.GetTile(tile.type);
                        if (modTile != null)
                        {
                            displayMod = modTile.mod;
                        }
                    }
                    else
                    {
                        var modWall = WallLoader.GetWall(tile.wall);
                        if (modWall != null)
                        {
                            displayMod = modWall.mod;
                        }
                    }
                }

                var mousePos = Main.MouseWorld;

                for (int i = 0; i < Main.maxNPCs; i++)
                {
                    var npc = Main.npc[i];
                    if (mousePos.Between(npc.TopLeft, npc.BottomRight))
                    {
                        var modNPC = NPCLoader.GetNPC(npc.type);
                        if (modNPC != null && npc.active && !NPCID.Sets.ProjectileNPC[npc.type])
                        {
                            displayMod = modNPC.mod;
                            SecondLine = true;
                            break;
                        }
                    }
                }
                if (displayMod != null)
                {
                    MouseText = String.Format("[c/{1}:[{0}][c/{1}:]]", displayMod.DisplayName, Colors.RarityBlue.Hex3());
                    if (Main.mouseText)
                    {
                        SecondLine = true;
                    }
                }
            }
Exemple #2
0
        internal static TagCompound SaveTiles()
        {
            var hasTile = new bool[TileLoader.TileCount];
            var hasWall = new bool[WallLoader.WallCount];

            using (var ms = new MemoryStream())
                using (var writer = new BinaryWriter(ms))
                {
                    WriteTileData(writer, hasTile, hasWall);

                    var tileList = new List <TagCompound>();
                    for (int type = TileID.Count; type < hasTile.Length; type++)
                    {
                        if (!hasTile[type])
                        {
                            continue;
                        }

                        var modTile = TileLoader.GetTile(type);
                        tileList.Add(new TagCompound
                        {
                            ["value"]  = (short)type,
                            ["mod"]    = modTile.mod.Name,
                            ["name"]   = modTile.Name,
                            ["framed"] = Main.tileFrameImportant[type],
                        });
                    }
                    var wallList = new List <TagCompound>();
                    for (int wall = WallID.Count; wall < hasWall.Length; wall++)
                    {
                        if (!hasWall[wall])
                        {
                            continue;
                        }

                        var modWall = WallLoader.GetWall(wall);
                        wallList.Add(new TagCompound
                        {
                            ["value"] = (short)wall,
                            ["mod"]   = modWall.mod.Name,
                            ["name"]  = modWall.Name,
                        });
                    }
                    if (tileList.Count == 0 && wallList.Count == 0)
                    {
                        return(null);
                    }

                    return(new TagCompound
                    {
                        ["tileMap"] = tileList,
                        ["wallMap"] = wallList,
                        ["data"] = ms.ToArray()
                    });
                }
        }
Exemple #3
0
            public override void PostUpdate()
            {
                if (Main.dedServ || !DisplayWorldTooltips)
                {
                    return;
                }
                MouseText  = String.Empty;
                SecondLine = false;
                var modLoaderMod = ModLoader.GetMod("ModLoader");                 //modmodloadermodmodloadermodmodloader
                int mysteryTile  = modLoaderMod.TileType("MysteryTile");
                int mysteryTile2 = modLoaderMod.TileType("PendingMysteryTile");

                var tile = Main.tile[Player.tileTargetX, Player.tileTargetY];

                if (tile != null)
                {
                    if (tile.active() && tile.type != mysteryTile && tile.type != mysteryTile2)
                    {
                        var modTile = TileLoader.GetTile(tile.type);
                        if (modTile != null)
                        {
                            MouseText = DisplayTechnicalNames ? (modTile.mod.Name + ":" + modTile.Name) : modTile.mod.DisplayName;
                        }
                    }
                    else
                    {
                        var modWall = WallLoader.GetWall(tile.wall);
                        if (modWall != null)
                        {
                            MouseText = DisplayTechnicalNames ? (modWall.mod.Name + ":" + modWall.Name) : modWall.mod.DisplayName;
                        }
                    }
                }

                var mousePos = Main.MouseWorld;

                for (int i = 0; i < Main.maxNPCs; i++)
                {
                    var npc = Main.npc[i];
                    if (mousePos.Between(npc.TopLeft, npc.BottomRight))
                    {
                        var modNPC = NPCLoader.GetNPC(npc.type);
                        if (modNPC != null && npc.active && !NPCID.Sets.ProjectileNPC[npc.type])
                        {
                            MouseText  = DisplayTechnicalNames ? (modNPC.mod.Name + ":" + modNPC.Name) : modNPC.mod.DisplayName;
                            SecondLine = true;
                            break;
                        }
                    }
                }
                if (MouseText != String.Empty && Main.mouseText)
                {
                    SecondLine = true;
                }
            }
Exemple #4
0
        internal static bool WriteModMap(BinaryWriter writer)
        {
            ISet <ushort> types = new HashSet <ushort>();

            for (int i = 0; i < Main.maxTilesX; i++)
            {
                for (int j = 0; j < Main.maxTilesY; j++)
                {
                    ushort type = Main.Map[i, j].Type;
                    if (type >= MapHelper.modPosition)
                    {
                        types.Add(type);
                    }
                }
            }
            if (types.Count == 0)
            {
                return(false);
            }
            writer.Write((ushort)types.Count);
            foreach (ushort type in types)
            {
                writer.Write(type);
                if (MapLoader.entryToTile.ContainsKey(type))
                {
                    ModTile tile = TileLoader.GetTile(MapLoader.entryToTile[type]);
                    writer.Write(true);
                    writer.Write(tile.Mod.Name);
                    writer.Write(tile.Name);
                    writer.Write((ushort)(type - MapHelper.tileLookup[tile.Type]));
                }
                else if (MapLoader.entryToWall.ContainsKey(type))
                {
                    ModWall wall = WallLoader.GetWall(MapLoader.entryToWall[type]);
                    writer.Write(false);
                    writer.Write(wall.Mod.Name);
                    writer.Write(wall.Name);
                    writer.Write((ushort)(type - MapHelper.wallLookup[wall.Type]));
                }
                else
                {
                    writer.Write(true);
                    writer.Write("");
                    writer.Write("");
                    writer.Write((ushort)0);
                }
            }
            WriteMapData(writer);
            return(true);
        }
Exemple #5
0
        public override void PostUpdate()
        {
            if (Main.dedServ || !ModContent.GetInstance <Config>().DisplayWorldTooltips)
            {
                return;
            }
            WMITFModSystem.MouseText  = String.Empty;
            WMITFModSystem.SecondLine = false;

            var tile = Main.tile[Player.tileTargetX, Player.tileTargetY];

            if (tile.HasTile && !WMITF.IsUnloadedTile(tile))
            {
                var modTile = TileLoader.GetTile(tile.TileType);
                if (modTile != null)
                {
                    WMITFModSystem.MouseText = ModContent.GetInstance <Config>().DisplayTechnicalNames ? (modTile.Mod.Name + ":" + modTile.Name) : modTile.Mod.DisplayName;
                }
            }
            else
            {
                var modWall = WallLoader.GetWall(tile.WallType);
                if (modWall != null)
                {
                    WMITFModSystem.MouseText = ModContent.GetInstance <Config>().DisplayTechnicalNames ? (modWall.Mod.Name + ":" + modWall.Name) : modWall.Mod.DisplayName;
                }
            }


            var mousePos = Main.MouseWorld;

            for (int i = 0; i < Main.maxNPCs; i++)
            {
                var npc = Main.npc[i];
                if (mousePos.Between(npc.TopLeft, npc.BottomRight))
                {
                    var modNPC = NPCLoader.GetNPC(npc.type);
                    if (modNPC != null && npc.active && !NPCID.Sets.ProjectileNPC[npc.type])
                    {
                        WMITFModSystem.MouseText  = ModContent.GetInstance <Config>().DisplayTechnicalNames ? (modNPC.Mod.Name + ":" + modNPC.Name) : modNPC.Mod.DisplayName;
                        WMITFModSystem.SecondLine = true;
                        break;
                    }
                }
            }
            if (WMITFModSystem.MouseText != String.Empty && Main.mouseText)
            {
                WMITFModSystem.SecondLine = true;
            }
        }
        public static string GetUniqueKey(int type)
        {
            if (type < 0 || type >= WallLoader.WallCount)
            {
                throw new ArgumentOutOfRangeException("Invalid type: " + type);
            }
            if (type < WallID.Count)
            {
                return("Terraria " + TileWallIdentityHelpers.WallIdSearch.GetName(type));
            }

            ModWall modWall = WallLoader.GetWall(type);

            return($"{modWall.mod.Name} {modWall.Name}");
        }
Exemple #7
0
        internal static bool WriteTiles(BinaryWriter writer)
        {
            ISet <ushort> types = new HashSet <ushort>();
            ISet <ushort> walls = new HashSet <ushort>();

            for (int i = 0; i < Main.maxTilesX; i++)
            {
                for (int j = 0; j < Main.maxTilesY; j++)
                {
                    Tile tile = Main.tile[i, j];
                    if (tile.active() && tile.type >= TileID.Count)
                    {
                        types.Add(tile.type);
                    }
                    if (tile.wall >= WallID.Count)
                    {
                        walls.Add(tile.wall);
                    }
                }
            }
            if (types.Count > 0 || walls.Count > 0)
            {
                writer.Write((ushort)types.Count);
                foreach (ushort type in types)
                {
                    writer.Write(type);
                    ModTile modTile = TileLoader.GetTile(type);
                    writer.Write(modTile.mod.Name);
                    writer.Write(modTile.Name);
                    writer.Write(Main.tileFrameImportant[type]);
                }
                writer.Write((ushort)walls.Count);
                foreach (ushort wall in walls)
                {
                    writer.Write(wall);
                    ModWall modWall = WallLoader.GetWall(wall);
                    writer.Write(modWall.mod.Name);
                    writer.Write(modWall.Name);
                }
                WriteTileData(writer);
                return(true);
            }
            return(false);
        }
Exemple #8
0
        public static bool InfectWall(int i, int j)
        {
            // Don't infect invalid walls
            if (WorldGen.InWorld(i, j))
            {
                Tile tile = Framing.GetTileSafely(i, j);

                // No Lihzahrd infection pre-golem
                if (tile.wall == WallID.LihzahrdBrickUnsafe && !NPC.downedGolemBoss)
                {
                    return(false);
                }

                // Check if we should bother
                if (tile.wall != WallID.None)
                {
                    // Check that the tile isn't already infected
                    if (!(WallLoader.GetWall(tile.wall) is InfectiousWall))
                    {
                        // Find a matching wall
                        InfectiousWall convertTo = infectiousWalls.FirstOrDefault(t => t.CanInfect(tile.wall));
                        if (convertTo != null)
                        {
                            // If we found one, convert it
                            tile.wall = convertTo.Type;
                            return(true);
                        }
                        else
                        {
                            // If not, default to Infected Glob (Stone for now)
                            tile.wall = (ushort)Default;
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }
        public void QueryModOrigin()
        {
            Point mouseTile = Main.MouseWorld.ToTileCoordinates();

            int   closestNPCIndex    = -1;
            float closestNPCDistance = float.MaxValue;

            for (int l = 0; l < 200; l++)
            {
                if (Main.npc[l].active)
                {
                    float distance = Utils.Distance(Main.npc[l].getRect(), Main.MouseWorld);
                    if (distance < closestNPCDistance)
                    {
                        closestNPCDistance = distance;
                        closestNPCIndex    = l;
                    }
                }
            }

            int   closestItemIndex    = -1;
            float closestItemDistance = float.MaxValue;

            for (int i = 0; i < 400; i++)
            {
                if (Main.item[i].active)
                {
                    float distance = Utils.Distance(Main.item[i].getRect(), Main.MouseWorld);
                    if (distance < closestItemDistance)
                    {
                        closestItemDistance = distance;
                        closestItemIndex    = i;
                    }
                }
            }


            int hoverBuffIndex = -1;
            int hoverBuffID    = -1;

            for (int k = 0; k < 22; k++)
            {
                if (Main.player[Main.myPlayer].buffType[k] > 0)
                {
                    int buffID = Main.player[Main.myPlayer].buffType[k];
                    int buffX  = 32 + k * 38;
                    int buffY  = 76;
                    if (k >= 11)
                    {
                        buffX  = 32 + (k - 11) * 38;
                        buffY += 50;
                    }

                    if (Main.mouseX < buffX + Main.buffTexture[buffID].Width && Main.mouseY <buffY + Main.buffTexture[buffID].Height && Main.mouseX> buffX && Main.mouseY > buffY)
                    {
                        hoverBuffIndex = k;
                        hoverBuffID    = buffID;
                    }
                }
            }

            //Top to Bottom:

            // Hover Buff
            if (hoverBuffIndex > -1 && !Main.playerInventory)
            {
                if (hoverBuffID >= BuffID.Count)
                {
                    ModBuff hoverBuff = BuffLoader.GetBuff(hoverBuffID);
                    Main.NewText("This buff is from: " + hoverBuff.mod.DisplayName);
                    if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                    {
                        Main.NewText($"Developer Info: ModName: {hoverBuff.mod.Name}, InternalName: {hoverBuff.Name}, FullName: {hoverBuff.GetType().FullName}");
                    }
                }
                else
                {
                    Main.NewText("This is a vanilla buff.");
                }
            }

            // Item in inventory
            else if (Main.HoverItem.type > 0 && Main.HoverItem != null)
            {
                if (Main.HoverItem.modItem != null)
                {
                    Main.NewText("This item is from: " + Main.HoverItem.modItem.mod.DisplayName);
                    if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                    {
                        Main.NewText($"Developer Info: ModName: {Main.HoverItem.modItem.mod.Name}, InternalName: {Main.HoverItem.modItem.Name}, FullName: {Main.HoverItem.modItem.GetType().FullName}");
                    }
                }
                else
                {
                    Main.NewText("This is a vanilla item.");
                    if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                    {
                        Main.NewText($"Developer Info: ItemID: {ItemID.Search.GetName(Main.HoverItem.type)}, ItemID#: {Main.HoverItem.type}");
                    }
                }
            }

            // NPC
            else if (closestNPCDistance < 30)
            {
                NPC closestNPC = Main.npc[closestNPCIndex];
                if (closestNPC.modNPC != null)
                {
                    Main.NewText("This npc is from: " + closestNPC.modNPC.mod.DisplayName);
                    if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                    {
                        Main.NewText($"Developer Info: ModName: {closestNPC.modNPC.mod.Name}, InternalName: {closestNPC.modNPC.Name}, FullName: {closestNPC.modNPC.GetType().FullName}");
                    }
                }
                else
                {
                    Main.NewText("This is a vanilla npc.");
                    if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                    {
                        Main.NewText($"Developer Info: NPCID: {NPCID.Search.GetName(closestNPC.type)}, NPCID#: {closestNPC.type}");
                    }
                }
            }

            // Tile
            else if (Main.tile[mouseTile.X, mouseTile.Y].type >= TileID.Count)
            {
                ModTile modTile = TileLoader.GetTile(Main.tile[mouseTile.X, mouseTile.Y].type);
                Main.NewText("This tile is from: " + modTile.mod.DisplayName);
                if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                {
                    Main.NewText($"Developer Info: ModName: {modTile.mod.Name}, InternalName: {modTile.Name}, FullName: {modTile.GetType().FullName}");
                }
                //Main.NewText("This tile is active: " + Main.tile[mouseTile.X, mouseTile.Y].active());
                //Main.NewText("This tile is inactive: " + Main.tile[mouseTile.X, mouseTile.Y].inActive());
                //Main.NewText("This tile is nactive: " + Main.tile[mouseTile.X, mouseTile.Y].nactive());
            }

            // Wall
            else if (Main.tile[mouseTile.X, mouseTile.Y].wall >= WallID.Count)
            {
                ModWall modWall = WallLoader.GetWall(Main.tile[mouseTile.X, mouseTile.Y].wall);
                Main.NewText("This wall is from: " + modWall.mod.DisplayName);
                if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                {
                    Main.NewText($"Developer Info: ModName: {modWall.mod.Name}, InternalName: {modWall.Name}, FullName: {modWall.GetType().FullName}");
                }
            }

            // Item on ground
            else if (closestItemDistance < 5)
            {
                if (Main.item[closestItemIndex].modItem != null)
                {
                    ModItem modItem = Main.item[closestItemIndex].modItem;
                    Main.NewText("This item is from: " + modItem.mod.DisplayName);
                    if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                    {
                        Main.NewText($"Developer Info: ModName: {modItem.mod.Name}, InternalName: {modItem.Name}, FullName: {modItem.GetType().FullName}");
                    }
                }
                else
                {
                    Main.NewText("This is a vanilla item.");
                    if (HelpfulHotkeysClientConfig.Instance.ShowDeveloperInfoQueryModOrigin)
                    {
                        Main.NewText($"Developer Info: ItemID: {ItemID.Search.GetName(Main.item[closestItemIndex].type)}, ItemID#: {Main.item[closestItemIndex].type}");
                    }
                }
            }

            // How to Use
            else if (true)
            {
                Main.NewText("Hover over an item, npc, tile, or wall to identify which mod it is from.");
            }
        }
        public override void PreUpdate()
        {
            //if (SGAWorld.CutsceneActive)
            if (SpaceBoss.film.IsActive || CaliburnGuardianHardmode.film.IsActive)
            {
                player.AddBuff(ModContent.BuffType <Buffs.InvincibleBuff>(), 2);
            }


            if (!Main.gameMenu)
            {
                bool spacey = Spacey;

                enterlimbo += 1;

                SGAmod.anysubworld = SGAPocketDim.WhereAmI != null;

                if (Main.netMode != NetmodeID.Server && !Main.dedServ && Main.LocalPlayer == player)
                {
                    Projectile.NewProjectile(Main.screenPosition + new Vector2(Main.screenWidth, Main.screenHeight) / 2, Vector2.Zero, mod.ProjectileType("DrawOverride"), 0, 0f);
                    if (spacey)
                    {
                        Projectile.NewProjectile(Main.screenPosition + new Vector2(Main.screenWidth, Main.screenHeight) / 2, Vector2.Zero, mod.ProjectileType("AsteriodDraw"), 0, 0f);
                    }
                }

                if (SGAPocketDim.WhereAmI != null)
                {
                    if (SLWorld.currentSubworld is SGAPocketDim sub)
                    {
                        SLWorld.noReturn = false;
                        int limit = sub.LimitPlayers;
                        if (limit % 16 == 0 && limit > 0)
                        {
                            player.AddBuff(BuffID.NoBuilding, 2);
                        }
                        player.GetModPlayer <SGAPlayer>().noModTeleport = true;

                        if (sub.GetType() == typeof(SpaceDim))
                        {
                            Point loc = new Point((int)(player.Center.X) >> 4, (int)(player.Center.Y) >> 4);
                            if (WorldGen.InWorld(loc.X, loc.Y))
                            {
                                Tile tilez = Framing.GetTileSafely(loc.X, loc.Y);
                                if (tilez != null)
                                {
                                    if (tilez.wall >= 0)
                                    {
                                        ModWall wallz = WallLoader.GetWall(tilez.wall);
                                        if (wallz != null && wallz is IBreathableWallType)
                                        {
                                            goto movingOn;
                                        }
                                    }
                                }
                            }
                            player.AddBuff(ModContent.BuffType <SharkvernDrown>(), 3);
                        }
                    }

movingOn:

                    if (spacey)
                    {
                        SLWorld.noReturn = true;
                        player.gravity   = 0.12f;
                        if (spacevar < 1)//Arriving in Space now
                        {
                            player.velocity = new Vector2(0, -16);
                            player.Center   = new Vector2(spaceX * (Main.maxTilesX * 16f), (Main.maxTilesY * 16f) - (16 * 50));
                        }
                        if (player.velocity.Y > 0 && player.Center.Y > (Main.maxTilesY * 16f) - (16 * 50) && spacevar == 1)
                        {
                            //SGAPocketDim.EnterSubworld(mod.GetType().Name + "_SpaceDim");
                            SGAPocketDim.Exit();
                        }
                        targetedAsteriod = null;

                        if (player.HeldItem.pick > 0)
                        {
                            List <Projectile> allAsteriods2 = Main.projectile.Where(testby => testby.active && testby?.modProjectile is IMineableAsteriod).ToList();
                            List <Projectile> allAsteriods  = new List <Projectile>();
                            if (allAsteriods2.Count > 0)
                            {
                                foreach (Projectile proj in allAsteriods2)
                                {
                                    double length3 = Math.Sqrt((Math.Abs(proj.Center.X - player.Center.X) * Math.Abs(proj.Center.X - player.Center.X)) + (Math.Abs(proj.Center.Y - player.Center.Y) * Math.Abs(proj.Center.Y - player.Center.Y)));
                                    if (length3 < (Math.Sqrt(Player.tileRangeX * Player.tileRangeY) + player.blockRange) * 48)
                                    {
                                        allAsteriods.Add(proj);
                                    }
                                }

                                Vector2 from = Main.MouseWorld;

                                if (Main.SmartCursorEnabled)
                                {
                                    from = player.MountedCenter + Vector2.Normalize(from) * 16f;
                                }

                                //Main.NewText(allAsteriods.Count);
                                allAsteriods = allAsteriods.OrderBy(testby => ((Math.Abs(from.X - testby.Center.X) * Math.Abs(from.X - testby.Center.X)) + (Math.Abs(from.Y - testby.Center.Y) * Math.Abs(from.Y - testby.Center.Y)))
                                                                    + 0).ToList();

restartHere:
                                if (allAsteriods.Count > 0)
                                {
                                    MineableAsteriod targetedasteriod = allAsteriods[0].modProjectile as MineableAsteriod;

                                    //double length2 = Math.Sqrt(Math.Abs(targetedasteriod.projectile.Center.X - player.Center.X) * Math.Abs(targetedasteriod.projectile.Center.Y - player.Center.Y));

                                    // if (length2 < (Math.Sqrt(Player.tileRangeX * Player.tileRangeY) + player.blockRange) * 16)
                                    // {
                                    targetedAsteriod = targetedasteriod;
                                    targetedasteriod.miningTargeted = targetedasteriod.miningTargeted + 2;
                                    //break;
                                    // }
                                }
                            }
                        }

                        spacevar = 1;
                    }

                    if (SGAPocketDim.WhereAmI == typeof(LimboDim))
                    {
                        SLWorld.noReturn = true;
                    }
                }
                else //No subworld entered atm
                {
                    if (spacevar > 0)//dropping out of Space
                    {
                        player.Center   = new Vector2(spaceX * (Main.maxTilesX * 16f), 48);
                        player.velocity = new Vector2(0, 16);
                    }

                    if (player.wings > 0 && player.velocity.Y < 0 && player.Center.Y < (16 * 50) && spacevar == 0 && player.controlJump && !IdgNPC.bossAlive)
                    {
                        SpaceDim.postMoonLord = NPC.downedMoonlord;
                        SGAPocketDim.EnterSubworld(mod.GetType().Name + "_SpaceDim");
                    }
                    spacevar = 0;
                }

                spaceX = player.Center.X / (Main.maxTilesX * 16f);

                if (SGAPocketDim.WhereAmI == typeof(LimboDim))
                {
                    player.AddBuff(Idglib.Instance.BuffType("LimboFading"), 1);
                    if (enterlimbo > 0)
                    {
                        enterlimbo = -6;
                    }
                    if (enterlimbo == -5)
                    {
                        Main.PlaySound(mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Custom/crack"), new Vector2(-1, -1));
                        player.Center = new Vector2(Main.rand.Next(200, Main.maxTilesX - 400) * 16, 64);
                    }
                    if (enterlimbo > -2)
                    {
                        enterlimbo = -2;
                        if (Framing.GetTileSafely((int)(player.Center.X / 16f), (int)(player.Center.Y / 16f)).wall == mod.WallType("NullWall") && DimDingeonsWorld.ancientLockedFabric)
                        {
                            enterlimbo = -6;
                        }
                    }
                }
                if (SGAPocketDim.WhereAmI == typeof(Limborinth))
                {
                    if (Framing.GetTileSafely((int)(player.Center.X / 16f), (int)(player.Center.Y / 16f)).wall == mod.WallType("NullWallBossArena"))
                    {
                        if (NullBossArenaSpot == default)
                        {
                            Idglib.Chat("There's no turning back now...", 120, 15, 15);
                        }
                        NullBossArenaSpot = player.Center;
                    }
                    else
                    {
                        if (NullBossArenaSpot != default)
                        {
                            player.velocity = Vector2.Normalize(NullBossArenaSpot - player.Center) * 12f;
                            player.Center   = NullBossArenaSpot;
                        }
                    }
                }
                else
                {
                    NullBossArenaSpot = default;
                }
            }
        }