public override void Paint(Level level) { base.Paint(level); var entrance = new HiddenEntrance { id = "dm" }; level.Area.Add(entrance); entrance.Position = new Vector2(Left + (int)((GetWidth() - 1) / 2f), Top + (int)((GetHeight() - 1) / 2f)) * 16; }
public override void Paint(Level level) { base.Paint(level); var hw = (int)((GetWidth() - 1) / 2f); var entrance = new HiddenEntrance { id = "dm" }; level.Area.Add(entrance); entrance.Position = new Vector2(Left + hw, Top + 2) * 16; if (Rnd.Chance()) { Painter.Fill(level, new Rect(Left + 1, Top + 1).Resize(GetWidth() - 2, 3), Tiles.Pick(Tile.WallA, Tile.Chasm, Tile.Planks, Tile.WallB)); } Painter.Fill(level, new Rect(Left + hw - 1, Top + 1).Resize(3, 3), Rnd.Chance(10) ? Tile.FloorD : Tiles.RandomFloor()); Painter.DrawLine(level, new Dot(Left + 1, Top + 4), new Dot(Right - 1, Top + 4), LevelSave.BiomeGenerated is IceBiome ? Tile.WallB : Tile.WallA); var d = new Dot(Left + hw, Top + 4); Painter.Set(level, d, Tiles.RandomFloor()); var door = new HeadDoor(); level.Area.Add(door); var offset = door.GetOffset(); door.CenterX = d.X * 16 + 8 + offset.X; door.Bottom = d.Y * 16 + 17.01f + offset.Y - 8; // .1f so that it's depth sorted to the front of the wall var sign = new Sign(); level.Area.Add(sign); sign.SetMessage("darkmarket_tip"); sign.Bottom = d.Y * 16 + 24; sign.CenterX = d.X * 16 - 16; }