/// <summary> /// Gets where the <see cref="Player" /> should teleport to in the given <see cref="Mode" />. /// </summary> /// <param name="p">The <see cref="Player" /> that will teleport.</param> /// <param name="mode">The teleport mode.</param> /// <returns>The location where the <see cref="Player" /> will teleport to.</returns> public static Vector2 PositionOf(Player p, Mode mode) { switch (mode) { case Mode.Dungeon: return new Vector2(Main.dungeonX, Main.dungeonY - 3f) * 16f; case Mode.Jungle: return new Vector2(MWorld.JunglePosition.X, MWorld.JunglePosition.Y) * 16f; case Mode.LeftOcean: return new Vector2(MWorld.LeftOceanPosition.X , MWorld.LeftOceanPosition.Y ) * 16f; case Mode.RightOcean: return new Vector2(MWorld.RightOceanPosition.X, MWorld.RightOceanPosition.Y) * 16f; case Mode.Spawn: p.Spawn(); break; case Mode.Underworld: return new Vector2(MWorld.UnderworldPosition.X, MWorld.UnderworldPosition.Y) * 16f; } throw new ArgumentOutOfRangeException("mode", "Invalid value " + mode); }