if (!enteredArena && outsideEntraceRoom( cell ) && hero == Dungeon.hero) { seal(); boss.state = boss.WANDERING; do { boss.pos = Random.Int( length() ); } while ( !passable[boss.pos] || !outsideEntraceRoom( boss.pos ) || heroFOV[boss.pos]); GameScene.add( boss ); set( arenaDoor, Terrain.WALL ); GameScene.updateMap( arenaDoor ); Dungeon.observe();
setSize(WIDTH, HEIGHT); exit = space.left + space.width()/2 + (space.top - 1) * width(); arenaDoor = Random.Int( ROOM_LEFT, ROOM_RIGHT ) + (ROOM_BOTTOM + 1) * width(); map[arenaDoor] = Terrain.DOOR; Random.Int( ROOM_TOP + 1, ROOM_BOTTOM - 1 ) * width(); map[entrance] = Terrain.ENTRANCE; for (int i=0; i < length(); i++) { if (map[i] == Terrain.EMPTY && patch[i]) { map[i] = Terrain.WATER; for (int i=0; i < length(); i++) { if (map[i] == Terrain.EMPTY && Random.Int( 6 ) == 0) { map[i] = Terrain.INACTIVE_TRAP; Trap t = new ToxicTrap().reveal(); t.active = false; setTrap(t, i); for (int i=width() + 1; i < length() - width(); i++) { if (map[i] == Terrain.EMPTY) { int n = 0; if (map[i+width()] == Terrain.WALL) { n++; if (map[i-width()] == Terrain.WALL) {
@Override public Heap drop( Item item, int cell ) { if (!keyDropped && item instanceof SkeletonKey) { keyDropped = true; unseal(); CellEmitter.get( arenaDoor ).start( Speck.factory( Speck.ROCK ), 0.07f, 10 ); set( arenaDoor, Terrain.EMPTY_DECO ); GameScene.updateMap( arenaDoor ); Dungeon.observe(); } return super.drop( item, cell ); }
@Override protected void createItems() { Item item = Bones.get(); if (item != null) { int pos; do { pos = Random.IntRange( ROOM_LEFT, ROOM_RIGHT ) + Random.IntRange( ROOM_TOP + 1, ROOM_BOTTOM ) * width(); } while (pos == entrance); drop( item, pos ).setHauntedIfCursed(1f).type = Heap.Type.REMAINS; } }
break; case 15: level = new CavesBossLevel(); break; case 16:
if (!enteredArena && outsideEntraceRoom( cell ) && hero == Dungeon.hero) { seal(); boss.state = boss.WANDERING; do { boss.pos = Random.Int( length() ); } while ( !passable[boss.pos] || !outsideEntraceRoom( boss.pos ) || heroFOV[boss.pos]); GameScene.add( boss ); set( arenaDoor, Terrain.WALL ); GameScene.updateMap( arenaDoor ); Dungeon.observe();
setSize(WIDTH, HEIGHT); exit = space.left + space.width()/2 + (space.top - 1) * width(); arenaDoor = Random.Int( ROOM_LEFT, ROOM_RIGHT ) + (ROOM_BOTTOM + 1) * width(); map[arenaDoor] = Terrain.DOOR; Random.Int( ROOM_TOP + 1, ROOM_BOTTOM - 1 ) * width(); map[entrance] = Terrain.ENTRANCE; for (int i=0; i < length(); i++) { if (map[i] == Terrain.EMPTY && patch[i]) { map[i] = Terrain.WATER; for (int i=0; i < length(); i++) { if (map[i] == Terrain.EMPTY && Random.Int( 6 ) == 0) { map[i] = Terrain.INACTIVE_TRAP; Trap t = new ToxicTrap().reveal(); t.active = false; setTrap(t, i); for (int i=width() + 1; i < length() - width(); i++) { if (map[i] == Terrain.EMPTY) { int n = 0; if (map[i+width()] == Terrain.WALL) { n++; if (map[i-width()] == Terrain.WALL) {
@Override public Heap drop( Item item, int cell ) { if (!keyDropped && item instanceof SkeletonKey) { keyDropped = true; unseal(); CellEmitter.get( arenaDoor ).start( Speck.factory( Speck.ROCK ), 0.07f, 10 ); set( arenaDoor, Terrain.EMPTY_DECO ); GameScene.updateMap( arenaDoor ); Dungeon.observe(); } return super.drop( item, cell ); }
@Override protected void createItems() { Item item = Bones.get(); if (item != null) { int pos; do { pos = Random.IntRange( ROOM_LEFT, ROOM_RIGHT ) + Random.IntRange( ROOM_TOP + 1, ROOM_BOTTOM ) * width(); } while (pos == entrance); drop( item, pos ).setHauntedIfCursed(1f).type = Heap.Type.REMAINS; } }
break; case 15: level = new CavesBossLevel(); break; case 16: