@Override public boolean canConnect(Room r) { //never connects at the entrance return !(r instanceof SewerBossEntranceRoom) && super.canConnect(r); }
protected int xyToPatchCoords(int x, int y){ return (x-left-1) + ((y-top-1) * (width()-2)); } }
@Override public int minWidth() { return Math.max(7, super.minWidth()); }
@Override public void paint(Level level) { super.paint(level); Painter.fill(level, this, Terrain.WALL); Painter.fill(level, this, 1, Terrain.SECRET_TRAP); Point center = center(); level.drop(Generator.random(), level.pointToCell(center)).setHauntedIfCursed(0.75f).type = Heap.Type.SKELETON; for (Point p : getPoints()){ int cell = level.pointToCell(p); if (level.map[cell] == Terrain.SECRET_TRAP){ level.setTrap(new SummoningTrap().hide(), cell); } } entrance().set(Door.Type.HIDDEN); }
@Override public boolean canPlaceCharacter(Point p, Level l) { return super.canPlaceCharacter(p, l) && l.map[l.pointToCell(p)] != Terrain.EMPTY_SP; } }
@Override public int minHeight() { return Math.max(7, super.minHeight()); }
private void placeItem(Item item, Level level){ int itemPos; do { itemPos = level.pointToCell(random()); } while (level.heaps.get(itemPos) != null); level.drop(item, itemPos); } }
private int plantPos( Level level ){ int pos; do{ pos = level.pointToCell(random()); } while (level.plants.get(pos) != null); return pos; }
@Override protected ArrayList<Room> initRooms() { ArrayList<Room> initRooms = new ArrayList<>(); initRooms.add ( roomEntrance = roomExit = new SewerBossEntranceRoom()); int standards = standardRooms(); for (int i = 0; i < standards; i++) { initRooms.add(new EmptyRoom()); } initRooms.add(new RatKingRoom()); return initRooms; }
public static void restoreRoomsFromBundle( Bundle bundle ) { runSecrets.clear(); if (bundle.contains( ROOMS )) { for (Class<? extends SecretRoom> type : bundle.getClassArray(ROOMS)) { if (type != null) runSecrets.add(type); } regionSecretsThisRun = bundle.getIntArray(REGIONS); } else { initForRun(); ShatteredPixelDungeon.reportException(new Exception("secrets array didn't exist!")); } }
@Override public void paint(Level level) { super.paint(level); Painter.fill(level, this, Terrain.WALL); Painter.fill(level, this, 1, Terrain.SECRET_TRAP); Point center = center(); level.drop(Generator.random(), level.pointToCell(center)).setHauntedIfCursed(0.75f).type = Heap.Type.SKELETON; for (Point p : getPoints()){ int cell = level.pointToCell(p); if (level.map[cell] == Terrain.SECRET_TRAP){ level.setTrap(new SummoningTrap().hide(), cell); } } entrance().set(Door.Type.HIDDEN); }
@Override public boolean canConnect(Point p) { //refuses connections next to corners return super.canConnect(p) && ((p.x > left+1 && p.x < right-1) || (p.y > top+1 && p.y < bottom-1)); }
protected int xyToPatchCoords(int x, int y){ return (x-left-1) + ((y-top-1) * (width()-2)); } }
@Override public boolean canPlaceCharacter(Point p, Level l) { return super.canPlaceCharacter(p, l) && l.map[l.pointToCell(p)] != Terrain.EMPTY_SP; } }
@Override public int minWidth() { return Math.max(7, super.minWidth()); }
@Override public int minHeight() { return Math.max(7, super.minHeight()); }
private void placeItem(Item item, Level level){ int itemPos; do { itemPos = level.pointToCell(random()); } while (level.heaps.get(itemPos) != null); level.drop(item, itemPos); } }
private int plantPos( Level level ){ int pos; do{ pos = level.pointToCell(random()); } while (level.plants.get(pos) != null); return pos; }
@Override public boolean canConnect(Room r) { //never connects at the entrance return !(r instanceof SewerBossEntranceRoom) && super.canConnect(r); }
@Override public boolean canConnect(Point p) { //refuses connections next to corners return super.canConnect(p) && ((p.x > left+1 && p.x < right-1) || (p.y > top+1 && p.y < bottom-1)); }