Table of Contents

Sewers Level - Code References

Sewers is the first level of Remixed Dungeon (depths 1-5). It serves as the tutorial area and introduces basic game mechanics.

Entity Type

Level/Dungeon Branch

Java Classes

Level Generation: SewerLevel.java

Level Transition: Dungeon.java

Level Generator: LevelGenerator.java

Boss Level: SewerBossLevel.java

JSON Configuration

Bestiary Spawns: Bestiary.json

"levels": {
  "1": { "mobs": [{"Rat": 1}, {"Snail": 1}] },
  "2": { "mobs": [{"Rat": 1}, {"Snail": 1}, {"DeepSnail": 0.03}] },
  "3": { "mobs": [{"Rat": 1}, {"Snail": 0.5}, {"Crab": 0.3}, {"DeepSnail": 0.1}] },
  "4": { "mobs": [{"Rat": 0.8}, {"Crab": 0.5}, {"DeepSnail": 0.2}, {"Gnoll": 0.05}] },
  "5": { "mobs": [{"Goo": 1}] } // Boss level
}

Level Objects: `assets/levelObjects/` - Pedestals, statues, wells, barricades, traps

String Resources

English (values/strings_all.xml):

<string name="Sewers_Title">Sewers</string>
<string name="Sewers_Desc">The ancient sewers beneath the city. Damp, dark, and inhabited by vermin.</string>
<string name="SewerLevel_Water">water</string>
<string name="SewerLevel_Grass">grass</string>
<string name="SewerLevel_SecretDoor">secret door</string>

Russian (values-ru/strings_all.xml):

<string name="Sewers_Title">Канализация</string>
<string name="Sewers_Desc">Древняя канализация под городом. Влажная, темная и населенная грызунами.</string>

Lua Scripts

Game Mechanics

Mob Spawn Weights (from Bestiary.json)

Depth Rat Snail Deep Snail Crab Gnoll Goo
——-—–——-————————-—–
1 1.0 1.0 - - - -
2 1.0 1.0 0.03 - - -
3 1.0 0.5 0.1 0.3 - -
4 0.8 - 0.2 0.5 0.05 -
5 - - - - - 1.0

Level Objects

Code Fragments

SewerLevel generation:

// SewerLevel.java
public class SewerLevel extends Level {
    @Override
    protected void createMap() {
        // Water pool generation
        // Grass patch placement
        // Standard room/corridor layout
    }
 
    @Override
    public String tilesTex() {
        return "tiles/sewer.png";
    }
}

Boss level check:

// Dungeon.java
public static boolean isBossLevel() {
    return Dungeon.depth % 5 == 0; // 5, 10, 15, 20, 25
}