====== mr:water_elemental_mob ====== Machine-readable reference for the Water Elemental mob entity in Remixed Dungeon. ==== Entity Type ==== Mob (Elemental) ==== Java Implementation ==== * **Class**: `com.nyrds.pixeldungeon.mobs.elementals.WaterElemental` * **File**: `RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/elementals/WaterElemental.java` * **Base Class**: `MultiKindMob` (supports multiple variants based on depth) * **Interfaces**: `IDepthAdjustable` (stats scale with dungeon depth) ==== Stats Formula ==== Stats are calculated via `adjustStats(int depth)` method: * **HP/HT**: `depth * 5 + 1` * **Base Defense Skill**: `depth * 2 + 1` * **Base Attack Skill**: `baseDefenseSkill / 2 + 1` * **Damage Min/Max**: `ht() / 2` (both min and max are equal) * **Damage Resistance (DR)**: `expForKill / 3` = `(depth + 1) / 3` * **EXP for Kill**: `depth + 1` * **Max Level**: `depth + 2` * **Kind**: `Math.min(depth/5, 4)` (5 variants, kind 0-4 based on depth) * **Carcass Chance**: 0 (does not drop carcasses) ==== Immunities ==== Set in `adjustStats()` method: * `Frost.class` - Immune to frost effects * `ScrollOfPsionicBlast.class` - Immune to psionic blast * `Bleeding.class` - Immune to bleeding ==== Special Abilities ==== * **Attack Proc** (`attackProc()` method): 50% chance (`Random.Int(2) == 0`) to apply `Freezing.affect()` to enemy position * **Water Healing** (`act()` method): Heals `expForKill` HP when standing on water tiles (`level().water[getPos()]`) * **Frost Buff Handling** (`add()` method): When Frost buff is added and `hp() < ht()`, heals `expForKill` instead of taking damage * **Burning Vulnerability**: Takes `Random.NormalIntRange(1, ht() / 3)` damage from Burning buff ==== Movement Speed ==== * **In Liquid**: `super.speed() * 2f` (2x speed) - checked via `TerrainFlags.is(level().map[getPos()], TerrainFlags.LIQUID)` * **On Dry Land**: `super.speed() * 0.5f` (0.5x speed) ==== Loot Table ==== Defined in constructor: * **PotionOfFrost**: 10% drop chance (`loot(new PotionOfFrost(), 0.1f)`) ==== String Resources ==== * Name and description keys follow pattern: `WaterElemental_Name` and `WaterElemental_Info` * Located in: `RemixedDungeon/src/main/res/values/strings_all.xml` ==== Related Entities ==== * **Parent Class**: `MultiKindMob` - supports variant system * **Related Elementals**: Fire Elemental, Air Elemental, Earth Elemental * **Loot Item**: `PotionOfFrost` class ==== Code References ==== * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/elementals/WaterElemental.java|WaterElemental.java - Full Implementation]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/nyrds/pixeldungeon/mobs/common/MultiKindMob.java|MultiKindMob.java - Base Class]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/blobs/Freezing.java|Freezing.java - Attack Effect]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/buffs/Frost.java|Frost.java - Immunity]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/actors/buffs/Bleeding.java|Bleeding.java - Immunity]] * [[https://github.com/NYRDS/remixed-dungeon/blob/master/RemixedDungeon/src/main/java/com/watabou/pixeldungeon/items/potions/PotionOfFrost.java|PotionOfFrost.java - Drop Item]] ==== Wiki Pages ==== * English: [[en:rpd:water_elemental_mob|Water Elemental]] * Machine-readable namespace: `mr:water_elemental_mob` {{tag> mr mobs elemental water reference}}