//////////////// public bool TeleportToMirror(int tileX, int tileY) { int mmmTileType = ModContent.TileType <MountedMagicMirrorTile>(); tileX++; Tile tile = Framing.GetTileSafely(tileX, tileY); if (tile.type != mmmTileType) { //bool isInvalid = Main.netMode != 1 || TileChunkHelpers.IsTileSyncedForCurrentClient( tileX, tileY ); //if( isInvalid ) { } if (MMMPlayer.IsMirrorTileInvalid(tileX, tileY) != false) { if (MMMConfig.Instance.DebugModeInfo) { Main.NewText("Cannot teleport - Invalid mirror tile at " + tileX + "," + tileY); } return(false); } } var pos = new Vector2((tileX << 4), (tileY << 4)); PlayerWarpHelpers.Teleport(this.player, pos, PlayerWarpHelpers.MagicMirrorWarpStyle); return(true); }
protected virtual void Teleport(Player player, Vector2 dest) { WormholesPlayer myplayer = player.GetModPlayer <WormholesPlayer>(); if (myplayer.MyPortal == null || (myplayer.MyPortal != null && this.ID != myplayer.MyPortal.ID)) { myplayer.ChartedLinks.Add(this.ID); } PlayerWarpHelpers.Teleport(player, dest); if (player.FindBuffIndex(BuffID.ChaosState) != -1) { int def = player.statDefense; player.statDefense = 0; var dmg = player.Hurt(PlayerDeathReason.ByOther(13), player.statLifeMax2 / 7, 0); player.statDefense = def; } player.AddBuff(BuffID.VortexDebuff, (int)(60f * 2.5f)); // Distorted player.AddBuff(BuffID.ChaosState, 60 * 10); // Chaos State float velX = player.velocity.X * 3; float velY = player.velocity.Y * 3; if (velX > 0 && velX < 1) { velX = 1; } else if (velX < 0 && velX > 1) { velX = -1; } if (velY > 0 && velY < 1) { velY = 1; } else if (velY < 0 && velY > 1) { velY = -1; } for (int i = 0; i < 24; i++) { Dust.NewDust(player.position, player.width, player.height, 245, velX, velY); } //Main.PlaySound( 2, player.position, 100 ); var snd = SoundID.Item100.WithVolume(WormholesConfig.Instance.WormholeEntrySoundVolume); Main.PlaySound(snd, player.position); }