@Override public Group addVisuals() { super.addVisuals(); addCavesVisuals( this, visuals ); return visuals; }
@Override protected boolean build() { feeling = Feeling.CHASM; if (super.build()){ for (int i=0; i < length(); i++) { if (map[i] == Terrain.SECRET_DOOR) { map[i] = Terrain.DOOR; } } return true; } else { return false; } }
@Override protected boolean build() { builder = builder(); ArrayList<Room> initRooms = initRooms(); Random.shuffle(initRooms); do { for (Room r : initRooms){ r.neigbours.clear(); r.connected.clear(); } rooms = builder.build((ArrayList<Room>)initRooms.clone()); } while (rooms == null); return painter().paint(this, rooms); }
@Override protected void createMobs() { int mobsToSpawn = Dungeon.depth == 1 ? 10 : nMobs(); Room roomToSpawn = stdRoomIter.next(); Mob mob = createMob(); mob.pos = pointToCell(roomToSpawn.random()); if (findMob(mob.pos) == null && passable[mob.pos] && mob.pos != exit) { mobsToSpawn--; mobs.add(mob); mob = createMob(); mob.pos = pointToCell(roomToSpawn.random()); if (findMob(mob.pos) == null && passable[mob.pos] && mob.pos != exit) { mobsToSpawn--; mobs.add(mob);
@Override public int randomRespawnCell() { int count = 0; int cell = -1; while (true) { if (++count > 30) { return -1; } Room room = randomRoom( StandardRoom.class ); if (room == null || room == roomEntrance) { continue; } cell = pointToCell(room.random(1)); if (!heroFOV[cell] && Actor.findChar( cell ) == null && passable[cell] && room.canPlaceCharacter(cellToPoint(cell), this) && cell != exit) { return cell; } } }
int cell = randomDropCell(); if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) { map[cell] = Terrain.GRASS; Heap dropped = drop( toDrop, cell ); if (heaps.get(cell) == dropped) { dropped.type = Heap.Type.LOCKED_CHEST; addItemToSpawn(new GoldenKey(Dungeon.depth)); Heap dropped = drop( toDrop, cell ); dropped.type = type; if (type == Heap.Type.SKELETON){ int cell = randomDropCell(); drop( item, cell ).type = Heap.Type.HEAP; if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) { map[cell] = Terrain.GRASS; int cell = randomDropCell(); if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) { map[cell] = Terrain.GRASS; losBlocking[cell] = false; drop( item, cell ).setHauntedIfCursed(1f).type = Heap.Type.REMAINS; GuidePage p = new GuidePage(); p.page(missingPages.get(0)); int cell = randomDropCell(); if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) {
@Override public void create() { addItemToSpawn( new Torch() ); super.create(); }
@Override protected void createItems() { if (!Dungeon.LimitedDrops.DEW_VIAL.dropped()) { addItemToSpawn( new DewVial() ); Dungeon.LimitedDrops.DEW_VIAL.drop(); } Ghost.Quest.spawn( this ); super.createItems(); }
@Override protected void createMobs() { Imp.Quest.spawn( this ); super.createMobs(); }
public Room room( int pos ) { for (Room room : rooms) { if (room.inside( cellToPoint(pos) )) { return room; } } return null; }
@Override protected void createMobs() { int mobsToSpawn = Dungeon.depth == 1 ? 10 : nMobs(); Room roomToSpawn = stdRoomIter.next(); Mob mob = createMob(); mob.pos = pointToCell(roomToSpawn.random()); if (findMob(mob.pos) == null && passable[mob.pos] && mob.pos != exit) { mobsToSpawn--; mobs.add(mob); mob = createMob(); mob.pos = pointToCell(roomToSpawn.random()); if (findMob(mob.pos) == null && passable[mob.pos] && mob.pos != exit) { mobsToSpawn--; mobs.add(mob);
@Override public int randomRespawnCell() { int count = 0; int cell = -1; while (true) { if (++count > 30) { return -1; } Room room = randomRoom( StandardRoom.class ); if (room == null || room == roomEntrance) { continue; } cell = pointToCell(room.random(1)); if (!heroFOV[cell] && Actor.findChar( cell ) == null && passable[cell] && room.canPlaceCharacter(cellToPoint(cell), this) && cell != exit) { return cell; } } }
int cell = randomDropCell(); if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) { map[cell] = Terrain.GRASS; Heap dropped = drop( toDrop, cell ); if (heaps.get(cell) == dropped) { dropped.type = Heap.Type.LOCKED_CHEST; addItemToSpawn(new GoldenKey(Dungeon.depth)); Heap dropped = drop( toDrop, cell ); dropped.type = type; if (type == Heap.Type.SKELETON){ int cell = randomDropCell(); drop( item, cell ).type = Heap.Type.HEAP; if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) { map[cell] = Terrain.GRASS; int cell = randomDropCell(); if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) { map[cell] = Terrain.GRASS; losBlocking[cell] = false; drop( item, cell ).setHauntedIfCursed(1f).type = Heap.Type.REMAINS; GuidePage p = new GuidePage(); p.page(missingPages.get(0)); int cell = randomDropCell(); if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) {
@Override public void create() { addItemToSpawn( new Torch() ); super.create(); }
@Override protected void createItems() { if (!Dungeon.LimitedDrops.DEW_VIAL.dropped()) { addItemToSpawn( new DewVial() ); Dungeon.LimitedDrops.DEW_VIAL.drop(); } Ghost.Quest.spawn( this ); super.createItems(); }
@Override protected void createMobs() { Imp.Quest.spawn( this ); super.createMobs(); }
public Room room( int pos ) { for (Room room : rooms) { if (room.inside( cellToPoint(pos) )) { return room; } } return null; }
@Override protected boolean build() { builder = builder(); ArrayList<Room> initRooms = initRooms(); Random.shuffle(initRooms); do { for (Room r : initRooms){ r.neigbours.clear(); r.connected.clear(); } rooms = builder.build((ArrayList<Room>)initRooms.clone()); } while (rooms == null); return painter().paint(this, rooms); }
@Override public Group addVisuals() { super.addVisuals(); addSewerVisuals(this, visuals); return visuals; }
@Override protected boolean build() { feeling = Feeling.CHASM; if (super.build()){ for (int i=0; i < length(); i++) { if (map[i] == Terrain.SECRET_DOOR) { map[i] = Terrain.DOOR; } } return true; } else { return false; } }